rob@PacBell.COM (Rob Bernardo) (04/26/89)
About a month ago Jef Poskanzer <jef@helios.ee.lbl.gov> posted a patch to
indent(1), which added some command line flags (-brr, -ccin, and -prs).
I ran into some problems with the -brr flag. The -brr flag was an
alternative to the -bl and -br (the default) flags, which all set
curly braces around blocks of code in different styles. There
were two bugs.
1. The way command line flags were compared against each
possible flag, only first strlen(possible_flag) characters
were compared, causing "-brr" to be interpreted as "-br".
2. Some default values cause the curly brace style of "-brr"
not only to be the default, but to not be overridable when
the "-br" (the alleged default) was explicit on the command line.
Additionally, it trying to get two curly braces to line up in the same
column in an example on the man page, one curly brace was preceded with
a tab, the other with spaces, thereby not guaranteeing that they would
align in the same column when troff'ed.
The following patch corrects these difficulties. Because of #1 above,
it was necessary to rename the flag "-brr"; I chose "-bib" ("brace
indent both").
*** args.c~ Tue Apr 25 16:04:24 1989
--- args.c Tue Apr 25 16:48:21 1989
***************
*** 71,79 ****
"bap", PRO_BOOL, false, ON, &blanklines_after_procs,
"bbb", PRO_BOOL, false, ON, &blanklines_before_blockcomments,
"bc", PRO_BOOL, true, OFF, &ps.leave_comma,
"bl", PRO_BOOL, true, OFF, &btype_2,
"br", PRO_BOOL, true, ON, &btype_2,
- "brr", PRO_BOOL, true, ON, &btype_3,
"bs", PRO_BOOL, false, ON, &Bill_Shannon,
"cdb", PRO_BOOL, true, ON, &comment_delimiter_on_blankline,
"cd", PRO_INT, 0, 0, &ps.decl_com_ind,
--- 71,79 ----
"bap", PRO_BOOL, false, ON, &blanklines_after_procs,
"bbb", PRO_BOOL, false, ON, &blanklines_before_blockcomments,
"bc", PRO_BOOL, true, OFF, &ps.leave_comma,
+ "bib", PRO_BOOL, false, ON, &btype_3,
"bl", PRO_BOOL, true, OFF, &btype_2,
"br", PRO_BOOL, true, ON, &btype_2,
"bs", PRO_BOOL, false, ON, &Bill_Shannon,
"cdb", PRO_BOOL, true, ON, &comment_delimiter_on_blankline,
"cd", PRO_INT, 0, 0, &ps.decl_com_ind,
*** indent.1~ Tue Apr 25 16:04:55 1989
--- indent.1 Tue Apr 25 16:49:52 1989
***************
*** 29,37 ****
[\ \fB\-bap\fR\ |\ \fB\-nbap\fR\ ]
[\ \fB\-bbb\fR\ |\ \fB\-nbbb\fR\ ]
[\ \fB\-bc\fR\ |\ \fB\-nbc\fR\ ]
[\ \fB\-bl\fR\ ]
[\ \fB\-br\fR\ ]
- [\ \fB\-brr\fR\ ]
[\ \fB\-c\fIn\fR\ ]
[\ \fB\-cd\fIn\fR\ ]
[\ \fB\-cdb\fR\ |\ \fB\-ncdb\fR\ ]
--- 29,37 ----
[\ \fB\-bap\fR\ |\ \fB\-nbap\fR\ ]
[\ \fB\-bbb\fR\ |\ \fB\-nbbb\fR\ ]
[\ \fB\-bc\fR\ |\ \fB\-nbc\fR\ ]
+ [\ \fB\-bib\fR\ ]
[\ \fB\-bl\fR\ ]
[\ \fB\-br\fR\ ]
[\ \fB\-c\fIn\fR\ ]
[\ \fB\-cd\fIn\fR\ ]
[\ \fB\-cdb\fR\ |\ \fB\-ncdb\fR\ ]
***************
*** 111,117 ****
turns off this option. The default is
.BR \-bc .
.TP 15
! .BR \-br , \-bl , \-brr
Specifying
.B \-bl
lines up compound statements like this:
--- 111,117 ----
turns off this option. The default is
.BR \-bc .
.TP 15
! .BR \-br , \-bl , \-bib
Specifying
.B \-bl
lines up compound statements like this:
***************
*** 136,148 ****
.ft R
.fi
And specifying
! .B \-brr
makes them look like this:
.ne 3
.nf
.ft L
if (...)
! {
code
}
.ft R
--- 136,148 ----
.ft R
.fi
And specifying
! .B \-bib
makes them look like this:
.ne 3
.nf
.ft L
if (...)
! {
code
}
.ft R
*** indent.c~ Tue Apr 25 16:09:05 1989
--- indent.c Tue Apr 25 16:49:00 1989
***************
*** 130,136 ****
* by an arg, we will set this equal to
* ps.com_ind */
btype_2 = 1; /* -br */
! btype_3 = 0; /* not -brr */
cuddle_else = 1; /* -ce */
ps.unindent_displace = 0; /* -d0 */
ps.case_indent = 0; /* -cli0 */
--- 130,136 ----
* by an arg, we will set this equal to
* ps.com_ind */
btype_2 = 1; /* -br */
! btype_3 = 0; /* not -bib */
cuddle_else = 1; /* -ce */
ps.unindent_displace = 0; /* -d0 */
ps.case_indent = 0; /* -cli0 */
--
Rob Bernardo, Pacific Bell UNIX/C Reusable Code Library
Email: ...![backbone]!pacbell!pbhyf!rob OR rob@pbhyf.PacBell.COM
Office: (415) 823-2417 Room 4E850O San Ramon Valley Administrative Center
Residence: (415) 827-4301 R Bar JB, Concord, Californiarsalz@bbn.com (Rich Salz) (04/27/89)
Keith Bostic of UCB has someone working on INDENT. Please send all code changes to him at <bostic@okeeffe.berkeley.edu> or <uunet!keith>. There will be a new release of the program, and it will appear in comp.sources.unix. /r$ -- Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.