* wishlist from tarjeij@ulrik.uio.no

   struct a {   /* Cuddling variable with declaration independent of other */
      int b;    /* settings */
   } c;

   if (condition)   /* Force a blank line after single statement ifs. */
      whatever;     /* force single statement to begin on new line */


   while (*c = *p)  /* Force semicolon on new line. Same with for and if */
     ;              /* (Force single statement while, do, to begin statement
		    /* on new line) */


* Consider an option to use spaces rather than tabs in output.

* 'whitesmiths style', apparently after the examples shipped with
  that firm's compiler.  It differs from the GNU style mainly in that
  the statements inside braces are lined up with the braces.  E.g.:

  int main(int argc, char *argv[])
      {
      if (argc <= 1)
	  printf("No args\n");
      else
	  {
	  switch (argc)
	      {
	      case 2:
		  printf("One arg\n");
		  break;
	      default:
		  printf("Lotsa args\n");
		  break;
	      }
	  }
      return EXIT_SUCCESS;
      }

* Someone requested an option to keep case statements all on one line.

* Consider an option to produce "char* c" rather than  "char *c"

*  There is no way to specify that a unary & (as in address-of
   operator) not precede its argument by a space.
[rms: I agree that is a desirable mode we should support somehow.]


*  It would be nice to have a different line length for comments than
   for code.
[rms: I agree that is a desirable mode we should support somehow.
It should not be terribly hard.]


*  Indent gets confused by a multiple "C" statements nested in a macro:

   This line:

	CHECK_ZERO(rpmsg->rip_res, tracef(" reserved fields not zero"); break );

   yields these errors:

	../rip.c: 115: Unbalanced parens
	../rip.c: 115: Line broken
	../rip.c: 115: Extra )

[rms: Code like this appears in other programs too.
For example, toplev.c in GCC.  So it is important not to get too upset
when things like this appear in the input.]


Add a new option specifying how goto labels are indented.

Make it so that the line numbers indent reports are the real line
numbers (currently it is often off by a few).

Error recover should probably be enhanced.  At a minimum, "indent
foo.c" should not overwrite foo.c when it gets an error.  Fancy error
recover is probably not worth the effort because indent is pretty
fast.  Stopping after the first error might be more helpful than the
current error cascades.

Make the -nss option cause
  while (foo)
    ;
This is the real alternative to 
  while (foo) ;

Look at all the undocumented options, and determine which of them are
bug-free enough that they should be documented.

	1) Is it possible to control how indent puts white space *within*
an expression?  I notice that "(x*y<5)" comes out like "(x * y < 5)".  Can
I configure "indent" to put spaces around "the following list of characters"
and do not put spaces around "the following list of characters"?  I.E. Can
I make it put spaces around "< > + - || &&" and *not* put spaces around
"* / ^ &", etc. ?


Consider leaving the spacing between the preprocessor
# and the "if", "endif", etc. and indent that line as if it were
a regular if () in C.

Thus, given

main()
{
    int x = 1, y = 1, z = 1;
    if (x)
	if (y)
	    if (z)
#		ifdef FOO
		    printf("hello\n");
#		else FOO
		    printf("world\n");
#		endif FOO
}



main()
{
    int             x = 1, y = 1, z = 1;
    if (x)
	if (y)
	    if (z)
#               ifdef FOO
		    printf("hello\n");
#               else	/* FOO */
		    printf("world\n");
#               endif	/* FOO */
}

