home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / indent-1.9.1-base.tgz / indent-1.9.1-base.tar / fsf / indent / ChangeLog < prev    next >
Text File  |  1994-02-01  |  34KB  |  891 lines

  1. Tue Feb  1 01:03:50 1994  Joseph Arceneaux  (jla@geech.gnu.ai.mit.edu)
  2.  
  3.     * args.c (set_option): Handle new enum `PRO_FUNCTION' by calling
  4.     p->p_obj as a function.
  5.  
  6.     * indent.texinfo: Updated version info, copyright.  Whoops!
  7.     Ignore all references to "-nbbb" and "-bbb".
  8.  
  9. Sat Jan 29 18:15:42 1994  Joseph Arceneaux  (jla@geech.gnu.ai.mit.edu)
  10.  
  11.     * Version 1.9 released.
  12.  
  13.     * indent.texinfo (Option Summary): Describe new option "-lc".
  14.  
  15.     * args.c, indent.c:  `block_comment_max_col' renamed to
  16.     comment_max_col.
  17.     * comments.c: `right_margin' set to `block_comment_max_col'.
  18.     Documentation of `print_comment' changed.
  19.  
  20.     * makefile.in (NOTES): Changed to include COPYING.
  21.     * COPYING: Upgraded to version 2 of the GNU license.
  22.  
  23.     * NEWS, README, VMS.README: Updated for version 1.9.
  24.  
  25. Wed Jan 19 17:54:32 1994  Joe Arceneaux  (jla at sparky)
  26.  
  27.     * comments.c (print_comment): Handling of standard box comments
  28.     rewritten;  now it all happens in its own little loop as soon as
  29.     the thing is detected.
  30.  
  31. Thu Jan 13 10:37:31 1994  Joe Arceneaux  (jla at sparky)
  32.  
  33.     * comments.c (print_comment): Change of Fri Jun  4 18:10:54 1993
  34.     reinstalled.  How this ever got uninstalled is a mystery to me,
  35.     and makes me wonder about keeping the main source directory on a
  36.     GNU machine.
  37.  
  38. Wed Jan 12 15:08:48 1994  Joe Arceneaux  (jla at sparky)
  39.  
  40.     * comments.c (print_comment): Handle better the cases of formatted
  41.     comments with no contents.
  42.     Make main loops conditional on (! had_eof).  Pop stack and reset
  43.     parser_state_tos->com_col after main loop before returning.
  44.  
  45. Sun Jan  9 23:35:28 1994  Joe Arceneaux  (jla at sparky)
  46.  
  47.     * io.c (fill_buffer): Rewrite main loop.
  48.  
  49. Fri Jan  7 15:10:23 1994  Joe Arceneaux  (jla at sparky)
  50.  
  51.     * io.c (read_file): Complain if file is zero-length.
  52.  
  53. Thu Jan  6 17:10:44 1994  Joe Arceneaux  (jla at sparky)
  54.  
  55.     * indent.c (indent): Removed several calls to `fill_buffer' which
  56.     were superfluous because we know the char just read was not EOL or
  57.     NULL.
  58.  
  59.     * io.c (sys_error): Cleanup realloc buisiness and moved former
  60.     static `errbuf' into this function.  It never returns, so no worry
  61.     about reallocing.
  62.  
  63.     * io.c: Cleaned up several #if 0.
  64.  
  65. Tue Jan  4 20:06:17 1994  Joe Arceneaux  (jla at sparky)
  66.  
  67.     * comments.c (print_comment): In the conditional `if
  68.     (blankline_delims)' removed while clause `(p < buf_end)'.
  69.  
  70. Wed Dec 29 17:21:29 1993  Joe Arceneaux  (jla at sparky)
  71.  
  72.     * makefile.in:  Renamed file `pr_comment.c' to `comments.c'.
  73.  
  74.     * io.c (read_file): Call `xrealloc' on fileptr.data and
  75.     fileptr.name if there is already stuff there.
  76.  
  77. Wed Dec 22 14:11:24 1993  Joe Arceneaux  (jla at sparky)
  78.  
  79.     * indent.c (indent): In case newline, once again modified
  80.     conditional for calling `dump_line':  Added sub-clause of not
  81.     being `parser_state_tos->in_decl'.
  82.  
  83. Mon Jun 28 20:41:52 1993  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
  84.  
  85.     * sys.h: For MSDOS, only define USG if not using GCC.  This breaks
  86.     `memcpy' and stuff from ctypes.h, apparently.
  87.  
  88.     * makefile.in (distclean): Remove config.status.
  89.     * (.c.o): Put ${DEFS} first, and ${CFLAGS} last.
  90.     * RELEASE-NOTES renamed to NEWS globally.
  91.  
  92. Mon Jun 21 17:43:26 1993  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
  93.  
  94.     * indent.c (indent): Check that `code_lines' and `com_lines' are
  95.     both greater than zero before printing out their ratio.
  96.  
  97. Fri Jun 18 17:46:09 1993  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
  98.  
  99.     * version.h: `VERSION_STRING' inc'd to version 1.9.
  100.  
  101.     * backup.c: Removed all instances of old define `SYS_BACKUP_SUFFIX'.
  102.  
  103.     * io.c (vms_read): Fixed while loop to be more correct, and return
  104.     bufp - buffer rather than nread, which may be incorrect value.
  105.  
  106. Thu Jun 17 21:08:14 1993  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
  107.  
  108.     * makefile.in: Changed `CFLAGS' to just "-O".
  109.  
  110. Wed Jun 16 15:32:36 1993  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
  111.  
  112.     * Version 1.8 released.
  113.  
  114.     * makefile.in: New variable VMSFILES describing the files needed
  115.     for indent under VMS.
  116.         Removed comments.texinfo from list of files to tar.
  117.     Use `gzip' utility for compression, rather than tar -z.
  118.     * configure-6-93:
  119.     * configure.in-693: Copies of the configure script and its input
  120.     file from the autoconf directory.  The reliability of the ones in
  121.     the autoconf directory is questionable.  `configure' and
  122.     `configure.in' are now links to these files.
  123.  
  124.     * version.h: Comments rewritten.
  125.  
  126. Tue Jun 15 10:14:47 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  127.  
  128.     * Thanks to MEHRDAD@glum.dev.cf.ac.uk for the VMS patches.
  129.     * io.c (read_file): Use SYS_READ, conditional expansion, instead
  130.     of read.
  131.     (vms_read): Substitute for `read' under VMS.
  132.  
  133.     * backup.c: Set `simple_backup_suffix' from new define
  134.     BACKUP_SUFFIX_STR.  Define this (to "~") if undefined.
  135.     Likewise, BACKUP_SUFFIX_CHAR and BACKUP_SUFFIX_FORMAT.
  136.     * sys.h: Conditional defines for VMS added.
  137.     * args.c (set_profile): Use new define PROFILE_FORMAT for
  138.     formatting homedir/profile path.
  139.  
  140. Mon Jun 14 11:37:14 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  141.  
  142.     * indent.texinfo (Comments): Section completely rewritten.  Old
  143.      text in file old-comments.texinfo.
  144.  
  145.     * indent.texinfo (Statements): Explained how -bl and -br affect
  146.     struct declarations.
  147.  
  148.     * indent.c (indent): In case newline, modified conditional
  149.     determining whether or not to call `dump_line' to avoid doing so
  150.     after a right brace if user has specified `btype_2'.  This makes
  151.     enums and structs more consistent -- in default mode, the name of
  152.     the struct goes on a separate line from the rbrace and on the same
  153.     line in K&R mode, and does so consistently whether in or outside a
  154.     procedure block.
  155.  
  156.     * sys.h: Added some defines for compilation under MS-DOS, under
  157.     #ifdef __MSDOS__.  Thanks to hnyman@lesti.hut.fi.
  158.  
  159.     * io.c (read_file):  Adjust `fileptr.size' to be what `read'
  160.     returned, if different from the results of `stat'.  This is
  161.     because the DOS `read' converts the CR-LF on disc to '\n' in
  162.     memory.
  163.  
  164. Fri Jun 11 12:39:38 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  165.  
  166.     * lexi.c (lexi): Accept LL and ULL as suffixes to numbers as well.
  167.     Suggested by rdh@key.amdahl.com.
  168.  
  169.     * indent.c (indent): In case `rbrace', when conditionally setting
  170.     `force_nl', extended the first clause of the if conditional to
  171.     make `rw_decl' equivalent to `rw_struct_like', and also depend on
  172.     `btype_2'.  This keeps the structure name on the same line when
  173.     running with -kr option.
  174.     * parse.c (parse): In case `lbrace', in conditional for adding
  175.     `brace_indent', also consider `btype_2'.
  176.  
  177. Thu Jun 10 17:21:54 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  178.  
  179.     * io.c (count_columns): Rewritten and renamed from `count_spaces'.
  180.  
  181. Wed Jun  9 12:45:07 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  182.  
  183.     * indent.texinfo (Disabling Formatting): New section describing
  184.     the new feature implemented below in io.c.
  185.  
  186.     * io.c (compute_code_target): Rewritten to be clearer.  Note that
  187.     the use of `max_col' is inconsistent with it's use elsewhere,
  188.     where it is primarily for use with comment formatting.
  189.     * (fill_buffer): Rewritten completely.  Now handles command
  190.     comments /* *INDENT-OFF* */ and /* *INDENT-ON* */.
  191.     `inhibit_formatting' is now a local variable;  the reference to it
  192.     in `dump_line' has been removed.  Control of formatting is handled
  193.     entirely within `fill_buffer'.
  194.  
  195. Tue Jun  8 19:03:22 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  196.  
  197.     * indent.c (indent): In case `lbrace', when resetting
  198.     ..->decl_on_line, also reset ->in_decl.  Not doing this had the
  199.     effect that the first statement after the opening '{' of a
  200.     procedure would not be properly continued if it was broken across
  201.     two lines.  There is probably a better place to do this.
  202.  
  203.     * io.c (dump_line): In the loop which outputs `s_code', removed
  204.     the stupid tab calculations, as well as the undocumented feature
  205.     for printing out the character '0200'.
  206.  
  207.     * parse.c (parse): In case `lbrace', if last reserved word was
  208.     `rw_struct_like', don't indent for struct if the last token was an
  209.     `rparen'.  This fixes a bug with a struct pointer parameter.
  210.  
  211.     * regression/TEST: Added new test struct_param.c.
  212.  
  213. Mon Jun  7 17:01:23 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  214.  
  215.     * indent.c (indent): When handling an embedded comment, if there
  216.     is code on the line, set `embedded_comment_on_line' to 2,
  217.     otherwise to 1, to communicate to dump_line () if the line starts
  218.     with code or comment text.
  219.     * io.c (dump_line): In section for code (s_code != e_code), if
  220.     `embedded_comment_on_line' is 1, then use comment indentation,
  221.     otherwise, use code indentation.
  222.  
  223. Fri Jun  4 18:10:54 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  224.  
  225.     * pr_comment.c (print_comment): When looking at a leading '*' to
  226.     decide if it begins the second line of a starred boxed comment (by
  227.     looking at what column it was in), compare that column to
  228.     `found_column' rather than `start_column'.
  229.  
  230.     * indent.c (indent): In case preesc, when handling stuff following
  231.     the '#', set `quote' when we encounter the quoting character the
  232.     first time.  Also merged cases '\'' and '"'.
  233.  
  234.     * regression directory:  Merged all the new comment code tests
  235.     into the standard regression tests.
  236.  
  237. Wed May 19 12:11:10 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  238.  
  239.     * pr_comment.c (print_comment): At `end_line:', don't compress
  240.     into newlines if it's the first line (because it has the starting
  241.     delimiter).
  242.  
  243.     * pr_comment.c (print_comment): Moved checks for `buf_ptr' past
  244.     end outside of while loops (only '\n' and '\0' end the buffer, and
  245.     changed "buf_ptr >= buf_end" to "buf_ptr == buf_end".
  246.  
  247.     * parse.c: `parser_state_tos' elements `comment_delta' and
  248.     `n_comment_delta' eliminated.
  249.     * indent.h: Ditto.
  250.     * pr_comment.c: Ditto.
  251.  
  252.     * io.c: Old comment code removed.
  253.  
  254.     * pr_comment.c (print_comment): New variable `visible_preamble'
  255.     set if the preamble is not whitespace.  Used to make sure lines
  256.     which only have whitespace on them become single newlines.
  257.     Don't use `postfix_blankline_requested' to add newlines.  This
  258.     screwed up the algorithm for dealing with paragraph breaks.
  259.     In the `end_line:' section, only advance `buf_ptr' if it wasn't a
  260.     paragraph break, because in that case we have scanned ahead a
  261.     character to detect "\n\n".
  262.  
  263. Tue May 11 17:26:18 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  264.  
  265.     * pr_comment.c (print_comment): For comment formatting, changed
  266.     comparison of `column' to `right_margin' from >= to >.
  267.  
  268. Tue Apr  6 17:51:41 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  269.  
  270.     * pr_comment.c (print_comment): Also consider the characters '='
  271.     and '_' to make up the top line of a boxed comment.
  272.     * comments.texinfo: Changed to reflect this.
  273.  
  274. Wed Feb 24 15:22:51 1993  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
  275.  
  276.     * makefile.in: Added "-O" to CFLAGS.
  277.  
  278. Thu Feb 11 15:54:10 1993  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
  279.  
  280.     * Version 1.7 released.
  281.  
  282.     * makefile.in: Renamed from zmakefile.in.
  283.     All "-f zmakefile" arguments to `MAKE' removed.  Dependencies on
  284.     "zmakefile.in" changed to "makefile.in".
  285.  
  286.     * Makefile: Changed references to "zmakefile" to "makefile".
  287.  
  288. Wed Feb 10 12:25:04 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  289.  
  290.     * indent.c (indent): In case preesc, when going through the line,
  291.     consider EOL as terminating a C++ comment.
  292.  
  293. Mon Feb  8 04:45:06 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  294.  
  295.     * memcpy.c: Function `memcpy' surrounded by #ifdef USG.  USG is
  296.     only defined if `configure' did not find `bcopy'.  memcpy.o should
  297.     only be loaded if `configure' did not find it.
  298.     * sys.h: If USG not defined, define memcpy to be bcopy.
  299.  
  300.     * makefile.in: Renamed from zmakefile.in.
  301.     * configure: Use "makefile" rather than zmakefile.  Explicitly
  302.     name `indent' in rule for same.
  303.  
  304.     * indent.texinfo: Updated copyright and version information.
  305.     Added new section Bugs.  Added "nlps" option.
  306.  
  307.     * io.c (pad_output): Rewritten.  If `tabsize' is less than one,
  308.     use spaces rather than tabs.
  309.  
  310.     * sys.h: #define TAB and EOL.
  311.     Changed type of element `size' in struct file_buffer to unsigned
  312.     long.
  313.  
  314.     * indent.h, io.c: Type of `in_prog_size' changed to unsigned long.
  315.  
  316.     * indent.c, parse.c, pr_comment.c, lexi.c, io.c: Use new macros
  317.     TAB and EOL instead of '\t' and '\n'.
  318.  
  319.     * args.c, indent.c, backup.c, io.c, parse.c: Cast integer
  320.     arguments to printf.
  321.  
  322.     * indent.c:
  323.     * lexi.c:
  324.     * parse.c: Added missing parameters to calls to `diag'.
  325.  
  326.     * args.c: Added new long option "remove-preprocessor-space".
  327.  
  328. Fri Feb  5 17:40:08 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  329.  
  330.     * indent.c (indent): In case semicolon, case lbrace, and case
  331.     rbrace, disabled code which checked paren levels (with
  332.     parser_state_tos->p_l_follow) to enable passing weird stuff to
  333.     macros.  See comments ending "-jla".
  334.     (indent): In case lparen, if in a declaration, don't indent out to
  335.     `dec_ind' if the paren was '['.
  336.     * Removed several global variables which were shadowed by locals
  337.     to function `indent'.
  338.  
  339.     * args.c: Turned off, by default, "lps" option.  Added "nlps"
  340.     option.
  341.  
  342.     * io.c (current_column): New function.
  343.  
  344.     * lexi.c: In case ':', set parser_state_tos->want_blank under
  345.     certain conditions.
  346.  
  347. Tue Feb  2 14:03:39 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  348.  
  349.     * indent.c (indent): Handle C++ comments, with special attention
  350.     to the code for case preesc.
  351.  
  352. Thu Jan 28 17:31:57 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  353.  
  354.     * parse.c (reset_parser): Initialize parser_state_tos->com_col to
  355.     0.
  356.  
  357. Wed Jan 27 13:45:16 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  358.  
  359.     * indent.c (indent): Handle new code type `cplus_comment'.
  360.  
  361.     * lexi.c (lexi): Handle C++ comments ("//").
  362.  
  363.     * indent.h: Macros CHECK_CODE_SIZE and CHECK_LAB_SIZE moved to
  364.     indent.c.  Macro CHECK_COM_SIZE moved to pr_comment.c.
  365.     New code, `cplus_comment'.
  366.  
  367.     * pr_comment.c (pr_comment): Removed variable `just_saw_decl' and
  368.     it's use.
  369.  
  370. Sat Jan 23 19:36:31 1993  Joseph Arceneaux  (jla@betty-blue.gnu-age.com)
  371.  
  372.     * indent.c (indent): Only reset `com_ind' if it's less than or
  373.     equal to 0.  Don't call parse (semicolon) initially.  Skip any
  374.     leading newlines, resetting col to 1. Don't set
  375.     `parser_state_tos->ind_level' and `parser_state_tos->i_l_follow'
  376.     if col > ind_size.
  377.  
  378.     * parse.c (reset_parser): If tabsize is 0, set it to 1.
  379.  
  380. Fri Oct  9 21:01:49 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  381.  
  382.     * indent.c (indent): Restuctured the conditional for setting
  383.     `force_nl' in case rbrace to be clearer.  Also, only check whether
  384.     to set `postfix_blankline_requested' we're not setting `force_nl'.
  385.  
  386. Wed Oct  7 16:15:25 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  387.  
  388.     * io.c (diag): Only one format of error message now.  Output it on
  389.     the standard error in any case.
  390.  
  391.     * indent.c (indent): In case decl, don't call "parse (decl)" if we
  392.     are in a "sizeof".
  393.  
  394.     * args.c: Make default value for `format_col1_comments' be false,
  395.     to correspond with the "-gnu" spec.
  396.  
  397. Fri Aug 28 19:15:50 1992  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
  398.  
  399.     * args.c (set_option): Added missing argument to call to
  400.     `set_option'.
  401.  
  402. Mon Aug 24 12:47:32 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  403.  
  404.     * sys.h (INLINE): Define this to "__inline__" if __GNUC__ is
  405.     defined, not "inline".  Good thing we have standards...
  406.  
  407.     * indent.c (indent): New variable `embedded_comment_on_line' set
  408.     if an embedded comment is found.
  409.     * io.c (dump_line): Increment `com_lines' in the case where the
  410.     comment buffer is empty, but `embedded_comment_on_line' is true.
  411.     Clear that variable in both cases.  This makes indent include
  412.     embedded comments in its count of total comment lines.
  413.  
  414.     * io.c (read_stdin): If the input buffer is realloc'd, update the
  415.     character pointer `p'.
  416.  
  417. Wed Aug 19 18:25:48 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  418.  
  419.     * Version 1.6 released.
  420.  
  421.     * indent.c (indent): In case comma, use `tabsize' rather than 8 to
  422.     determine if we're past max_col.
  423.     In case newline, also dump the line if we are past max_col.
  424.  
  425. Fri Aug 14 19:08:04 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  426.  
  427.     * io.c (dump_line): Test `swallow_optional_blanklines' separately
  428.     from (prefix_blankline_requested && not_first_line).  Makes "-sob"
  429.     work properly.
  430.  
  431.     * indent.c (indent): Intialize several local variables to 0.
  432.  
  433. Tue Aug 11 18:02:38 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  434.  
  435.     * indent.c (indent): In case rbrace, add clause to conditional for
  436.     setting `force_nl'.  The clause forces a newline after '}' in most
  437.     cases.
  438.     In case swstmt, set `parser_state_tos->in_decl' to false, since we
  439.     know we're not in a declaration if have just seen "switch" (of
  440.     course, who knows what indent might think about things).  This
  441.     corrects the indentation of a case label following the lbrace of
  442.     the switch.
  443.  
  444. Mon Aug 10 16:23:54 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  445.  
  446.     * indent.gperf: "return" generates `rw_return', not `rw_break'.
  447.     How did this happen?  I didn't make this change, and it was not
  448.     present in indent 1.4.  Doubtless this insidious program modifies
  449.     itself destructively...
  450.     * lexi.c (hash, is_reserved): regenerated from indent.gperf.
  451.  
  452.     * args.c: Make the -gnu setting specify "-bli2" rather than
  453.     "-bli4".
  454.  
  455.     * lexi.c (lexi): Accept 'F' suffixes on numeric constants.
  456.  
  457.     * sys.h Require "__GNUC__" to define INLINE, not "__STDC__".
  458.  
  459. Mon Aug  4 21:22:54 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  460.  
  461.     * Version 1.5 released.
  462.  
  463. Mon Aug  3 21:14:40 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  464.  
  465.     * indent.c (indent): In case rparen, removed the change of Jul 28.
  466.     This is now done if the case mask fails and
  467.     parser_state_tos->in_decl is true and ..->block_init is false.
  468.     The old change broke the "-ncs" feature.  Perhaps this could have
  469.     been done otherwise by using ..->last_u_d.
  470.     Also, decrement `parser_state_tos->paren_depth' immediatly.
  471.  
  472.     * All source files formatted with ./indent.
  473.  
  474.     * pr_comment.c (pr_comment): If `parser_state_tos->box_com' is set
  475.     (which means that the comment is presumed to be hand-formatted),
  476.     set `parser_state_tos->n_comment_delta' to
  477.     (1 - parser_state_tos->com_col), rather than using `count_spaces'
  478.     to calculate the space up to the comment column.  Not only is this
  479.     simpler, but the old code used `cur_line' to count those spaces,
  480.     which was pointing to the *NEXT* line in some cases (because some
  481.     code in indent () which ignored newlines (like in the case of
  482.     multi-line comments after #define statments) called fill_buffer ()).
  483.     Another example of just how brain damaged this code is.  For more
  484.     extreme self-abuse, look a the interaction between pr_comment ()
  485.     and dump_line ().
  486.  
  487. Sun Aug  2 02:10:32 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  488.  
  489.     * pr_comment.c (pr_comment): When computing
  490.     `parser_state_tos->com_col' for beyond the normal comment
  491.     position, use (tabsize - 1) instead of 7.
  492.  
  493. Wed Jul 29 22:50:45 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  494.  
  495.     * lexi.c (lexi): If `buf_ptr' == '(' after scanning an alphanum
  496.     which is not a keyword, add clause that paren_depth must be 0
  497.     before considering this as a possible function definition.
  498.  
  499. Tue Jul 28 17:17:08 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  500.  
  501.     * parse.c (parse): In case lbrace, handle state of being in a decl
  502.     specially: If this brace succedes a struct-like thing and it goes
  503.     on a line by itself (! btype_2), then add `brace_indent' to the
  504.     amount of indentation.  This make GNU-style indentation of
  505.     structures, etc. work properly.
  506.  
  507.     * indent.c (indent): In case rparen, if not the beginning of the
  508.     code, and in_decl, set `parser_state_tos->want_blank'.  This is to
  509.     handle ensure a space before the last rparen of cases like
  510.     "int (*fp ()) ()".
  511.  
  512. Fri Jul 24 18:53:15 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  513.  
  514.     * indent.c: Changes to handle spaces between options and their
  515.     values.  It would be better to use `getopt', but this change is
  516.     much simpler.
  517.     Declaration of `set_option' changed to return int.
  518.     (main): Increment `i' by the value of `set_option ()'; also, pass
  519.     argv[i + 1] as second parameter to `set_option'.
  520.     * args.c (set_option): Take new parameter `param'.
  521.     New label `arg_missing', just before label `found', to handle
  522.     missing option value error.
  523.     If `param_start' is 0, set it to `param'.
  524.     (scan_profile): Rewritten to look at two entries at once, and pass
  525.     both to `set_option'.
  526.  
  527. Wed Jul 22 15:55:56 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  528.  
  529.     * indent.c (indent): In case lbrace, set
  530.     `parser_state_tos->want_blank' under certain conditions if not at
  531.     beginning of line and `btype_2' was specified.
  532.  
  533.     * indent.c: Macro `need_chars' moved here from indent.h.
  534.  
  535.     * io.c (read_file, read_stdin): No longer appends " \n" to the end
  536.     of the file, which is now simply delimited with '\0'.  xmalloc 2
  537.     less bytes for the buffer.
  538.     (fill_buffer): Stop and set `had_eof' when '\0' is
  539.     encountered in the file text, then return immediately.
  540.     * lexi.c (lexi): New case in main switch statement for '\0', which
  541.     indicates eof.  Removed code to set this in case '\n'.
  542.  
  543. Fri Jul 10 14:45:25 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  544.  
  545.     * lexi.c (): If keyword "struct" was found inside of parens
  546.     (case rw_struct_like:) set parser_state_tos->cast_mask before
  547.     breaking.
  548.  
  549. Wed Jul  8 21:11:01 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  550.  
  551.     * lexi.c (lexi): Accept 'U' and "UL" suffixes on integer
  552.     constants.
  553.  
  554. Fri Jul  3 16:05:45 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  555.  
  556.     * indent.c (indent): For cases unare_op and comma, don't space out
  557.     to decl_indent (dec_indent) if we are inside parens
  558.     (parser_state_tos->paren_depth > 0).
  559.  
  560. Thu Jul  2 13:36:50 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  561.  
  562.     * indent.c (indent): In case rparen, if paren starts the line,
  563.     check that paren_level is greater than zero before using it to
  564.     index `paren_indents'.
  565.  
  566.     * args.c: New variable `leave_preproc_space'.  Set by new option
  567.     "-lps".
  568.     * indent.h: Declare `leave_preproc_space'.
  569.     * indent.c (indent): In case preesc, don't ignore blanks after '#'
  570.     if `leave_preproc_space' is set.
  571.     * indent.texinfo: Entries added for new option "-lps".
  572.  
  573.     * indent.c: At the end of case preesc, call dump_line() if this
  574.     appears to be a case where it won't get called when processing the
  575.     newline character.
  576.  
  577. Wed Jul  1 16:12:57 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  578.  
  579.     * lexi.c (hash, is_reserved): Regenerated (from gperf) with new
  580.     words "volatile" and "const".
  581.  
  582.     * args.c: Removed the trailing comma from the last element of enum
  583.     profile.  This breaks some compilers.
  584.  
  585.     * Makefile: Changed to drive the configuration process.
  586.     * zmakefile.in: Renamed from Makefile.in
  587.     * CONF-README: Renamed from INSTALL
  588.  
  589. Tue Jun 30 21:34:16 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  590.  
  591.     * globs.c (mymemcpy): Function deleted.
  592.     * sys.h: Declarations and defines for mymemcpy, etc, removed.
  593.     * indent_globs.h: All references to memcpy removed.
  594.     * backup.c: `mymemcpy' changed to `memcpy'.
  595.     * indent.c: Ditto.
  596.     * io.c: Ditto.
  597.  
  598.     * Makefile.in:
  599.     * INSTALL:
  600.     * configure:
  601.     * configure.in:
  602.     * memcpy.c:     New files.
  603.  
  604. Sun Jun 14 13:38:12 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  605.  
  606.     * Version 1.4 released.
  607.  
  608. Fri Jun 12 15:02:37 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  609.  
  610.     * globs.c (mymemcpy): Now a void function.  Don't return anything.
  611.  
  612.     * io.c (dump_line): When printing label, use `tabsize' to
  613.     increment target if `com_st' contains tabs.  Also use
  614.     `tabsize' to calculate target when it's less than zero.
  615.  
  616. Thu Jun 11 20:27:48 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  617.  
  618.     * indent.c (indent): When token_type is a binary_op, if
  619.     parser_state_tos->want_blank is not true, but the preceding
  620.     character is not a space, put one on the line.
  621.  
  622.     * Removed variable `sccsid' from all files.
  623.  
  624. Wed Jun 10 13:00:26 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  625.  
  626.     * args.c: Added long option name "dont-space-special-semicolon"
  627.     for -nss.
  628.  
  629. Tue Jun  9 13:01:21 1992  Joseph Arceneaux  (jla@geech.gnu.ai.mit.edu)
  630.  
  631.     * Makefile: Automatically make the files README and RELEASE-NOTES.
  632.  
  633.     * sys.h: Provide defines for using memcpy or bcopy.
  634.  
  635.     * globs.c: `mymemcpy ()' only defined #ifndef mymemcpy.
  636.  
  637.     * indent.c (main): Set `in_name' to the current input file name.
  638.  
  639.     * io.c (dumpline): Check parser_state_tos->paren_level before
  640.     using it to index parser_state_tos->paren_indents.
  641.  
  642. Mon Jun  8 17:55:07 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  643.  
  644.     * lexi.c (lexi): In conditional (paren_count == 0), add '=' to the
  645.     characters (along with ';', ',', and '(') which constitute a
  646.     function definition.  This was to cause an ugly declaration from
  647.     libc ("int (*foo) __P ((int bar)) = bax;") to remain on one line.
  648.     Note that this is not valid C.
  649.  
  650.     * indent.c (main): When indenting multiple output files, make sure
  651.     to close each output file before continuing.
  652.  
  653. Fri Jun  5 13:56:54 1992  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
  654.  
  655.     * io.c (read_file): Use mymemcpy() instead of bcopy();
  656.  
  657.     * backup.c (max_version):  Don't free dirname unless it was malloc'd.
  658.  
  659. Wed May  6 02:01:18 1992  Joseph Arceneaux  (jla@geech.gnu.ai.mit.edu)
  660.  
  661.     * Version 1.3 released.
  662.  
  663.     * indent.texinfo:  Reorganization of the "Invocation" part, and a
  664.     new menu entry "Backup files", as well as corrections throughout.
  665.     A new option "nip" added.
  666.  
  667.     * indent.c (main): New variable `using_stdin', used to indicate
  668.     when `-' was specified on the command line.
  669.  
  670. Tue May  5 21:28:06 1992  Joseph Arceneaux  (jla@geech.gnu.ai.mit.edu)
  671.  
  672.     * args.c: Set default for `decl_com_ind' to 33.  If
  673.     BERKELEY_DEFAULTS is defined, default `continuation_indent' to 4.
  674.  
  675. Sun May  3 00:43:10 1992  Joseph Arceneaux  (jla at hugo)
  676.  
  677.     * parse.c (reduce):  when reducing <stmt><dolit>,
  678.     do set i_l_follow to il[parser_state_tos].  This was removed
  679.     earlier after a new reduction was added, but this obviously fixes
  680.     some bugs.  It will stay if indent passes all the old tests.
  681.  
  682.     * args.c (set_option):  When calling `addkey' to add a user
  683.     identifier, make it type 'rw_decl' since these are supposed to be
  684.     typedef identifiers.
  685.     Removed "-d4" spec in "-orig" option settings.
  686.     Made default for "-fca" be false.
  687.  
  688.     * args.c (set_profile): Only read one profile.  The one in the
  689.     current directory has priority.  Return the path of the profile read.
  690.     * indent.c (main): If `verbose' and we've read a profile, tell the
  691.     user on the stderr.
  692.  
  693. Sat May  2 18:33:14 1992  Joseph Arceneaux  (jla at hugo)
  694.  
  695.     * args.c: `Bill_Shannon' replaced with `blank_after_sizeof'.
  696.     indent.c: Likewise.
  697.     indent.h: Likewise.
  698.  
  699.     * args.c: New variable, exp_nip, for new option "-nip", which is
  700.     equivalent to "-ip0".  Long option name is
  701.     "no-parameter-indentation".
  702.  
  703.     * config.sh: New shell script which generates "dirent_def.h", and
  704.     include file with directory reading definitions.
  705.     * Makefile:  Take "config.sh" and "dirent_def.h" into account.
  706.  
  707.     * backup.c: Make only simple backups if we can't read directories
  708.     (NODIR is defined).  Functions for numbered backups conditionally
  709.     defined.
  710.     Documented all functions.
  711.  
  712.     * indent_globs.h:  Broken into two new files, indent.h and sys.h.
  713.     All files changed accordingly, including the Makefile.
  714.  
  715. Thu Apr 30 14:53:33 1992  Joseph Arceneaux  (jla at hugo)
  716.  
  717.     * backup.c, backup.h: New files with backup routines.
  718.     * io.c (make_backup): Moved into backup.c.
  719.     * io.c (sys_error): No longer static, called from make_backup.
  720.  
  721. Wed Apr 29 14:56:10 1992  Joseph Arceneaux  (jla at hugo)
  722.  
  723.     * args.c: Make default value for `else_endif_col' 1, as in "-gnu"
  724.     settings.
  725.  
  726. Tue Apr 28 23:18:07 1992  Joseph Arceneaux  (jla at hugo)
  727.  
  728.     * indent.c (main):  Only output to stdout if stdin is used and no
  729.     output file is specified, or one input stream is used and -st is
  730.     specified.
  731.     * args.c: New variable `use_stdout' set with option "-st".
  732.     * indent_globs.h: Declare `use_stdout'.
  733.  
  734. Sun Mar 22 14:59:35 1992  Joseph Arceneaux  (jla at hugo)
  735.  
  736.     * parse.c (init_parser, reset_parser):  Two new functions which
  737.     respectively allocate the neccessary parser data structures, and
  738.     initialize the parser state.
  739.     * indent.c (indent): New function which does the actual indenting
  740.     of it's input, which comes in the form of a file_buffer pointer.
  741.     (main): Command line scan changed to use new option "-o" and read
  742.     possibly multiple files into new variable `in_file_names'.
  743.     Main body changed to use new `indent' function on possibly
  744.     multiple files, and accomodate default standard io specification.
  745.  
  746.     * io.c (make_backup, read_file, read_stdin):  All file io routines
  747.     rewritten (`make_backup' formerly `bakcopy').  read routines
  748.     return pointer to new structure 'file_buffer'.
  749.     `make_backup' only makes backup file, no longer sets up original
  750.     file for writing.
  751.     * indent_globs.h:  Declare struct file_buffer, and io routines.
  752.  
  753. Fri Mar 20 18:33:18 1992  Joseph Arceneaux  (jla at hugo)
  754.  
  755.     * args.c: Option "-st" and associated variable `use_stdinout'
  756.     removed.  Option "-o" and associated variable `expect_output_file'
  757.     added.
  758.  
  759. Mon Feb  3 20:22:04 1992  Joseph Arceneaux  (jla at churchy.gnu.ai.mit.edu)
  760.  
  761.     * args.c: If BERKELEY_DEFAULTS is defined, use the original
  762.     defaults rather than GNU style.
  763.  
  764.     * Version 1.2 released.
  765.  
  766. Thu Jan 23 14:02:06 1992  Joseph Arceneaux  (jla at wombat.gnu.ai.mit.edu)
  767.  
  768.     * Makefile: info version of manual included in distribution.
  769.  
  770.     * args.c: New long options "berkeley-style", "berkeley" added
  771.     which correspond to original style.
  772.  
  773.     * lexi.c ():  Added explicit parens in checks for alphanums.
  774.     * indent.c (main):  On switch default when searching brace, added
  775.     explicit parens to 2nd if statment.
  776.     * indent_globs.h, io.c: Made variable `in_prog_size' unsigned.
  777.          
  778. Wed Jan 15 11:59:35 1992  Joseph Arceneaux  (jla at hugo)
  779.  
  780.     * args.c:  Accept "-gnu" option.
  781.  
  782.     * indent.c (main): In case rbrace, don't use ind_level and il[tos]
  783.     as criteria for setting search_brace.  This allows "-ce" to work
  784.     more strictly.
  785.  
  786.     * indent.c (main): In case lparen, let '(' after an ident which is
  787.     rw_return begin casts.
  788.     * lexi.c (lexi): If ident was a reserved word, save it in
  789.     parser_state_tos->last_rw.
  790.     Changed "return" from `rw_break' to new enum element `rw_return'.
  791.     * indent_globs.h: Moved type "enum codes" to this file from
  792.     lexi.c.  New element of parser state `last_rw'.
  793.  
  794. Sun Jan 12 01:40:23 1992  Joseph Arceneaux  (jla at hugo)
  795.  
  796.     * lexi.c (lexi): if in decl and looking at '(', additionally
  797.     accept, after closing ')',  '(' as constituting a function
  798.     declaration (along with ';' and ',').
  799.  
  800. Thu Jan  9 18:31:44 1992  Joseph Arceneaux  (jla at hugo)
  801.  
  802.     * io.c (dump_line):  When outputting nonblank lines, if
  803.     n_real_blanklines is > 1 and swallow_optional_blanklines is set,
  804.     make n_real_blanklines 1.
  805.  
  806. Wed Jan  8 10:06:43 1992  Joseph Arceneaux  (jla at hugo)
  807.  
  808.     * args.c (option_prefix):  New function to recognize option prefix
  809.     from table.  Now handles both "+" and "--" for long option prefixes.
  810.  
  811. Mon Jan  6 01:15:29 1992  Joseph Arceneaux  (jla at hugo)
  812.  
  813.     * Makefile:  Made more compatible with GNU standards.  Unix man
  814.     file removed from distribution.
  815.  
  816. Fri Dec 27 14:58:13 1991  Joseph Arceneaux  (jla at hugo)
  817.  
  818.     * parse.c:  Correctly handle "do ... while" statements, using new
  819.     stack symbol DOSTMT.
  820.     (parse):  For semicolon, if code DOSTMT is top of stack, replace it
  821.     with STMT.
  822.     (reduce):  New reduction <dohead><whilestmt> => <dostmt>.  Also,
  823.     when reducing <stmt><dolit>, don't change indentation.
  824.  
  825.     * indent.c (main):  In case rbrace, after parse(rbrace), set
  826.     force_nl if top of stack is dohead and ! btype_2.
  827.     (main):  Initialize noncast_mask to 0.
  828.  
  829. Mon Dec 23 18:34:11 1991  Joseph Arceneaux  (jla at hugo)
  830.  
  831.     * args.c (set_option): Recognize long options, using new struct
  832.     option_conversions, if option begins with POSIX_OPTION_PREFIX.
  833.  
  834.     * indent.c (main): Recognize "--no-profile" as well as "-npro".
  835.  
  836.     * indent.texinfo: Describe GNU style as default.  Section reworded.
  837.  
  838. Sat Dec 21 13:27:07 1991  Joseph Arceneaux  (jla at hugo)
  839.  
  840.     * indent.c (main):  In case preesc (~ line 1282), add !had_eof to
  841.     second while clause to avoid hanging in weird text (like test file
  842.     djm-torture-test/t11).
  843.  
  844.     * indent.c (main): In case rparen, (~ line 680) if cast mask was
  845.     set and is reset to zero, then set parser_state_tos->want_blank if
  846.     cast_space was set.  No longer do this (#if 0) in all cases where
  847.     (!parser_state_tos->cast_mask || cast_space).
  848.  
  849. Wed Dec  4 16:41:13 1991  Joseph Arceneaux  (jla at hugo)
  850.  
  851.     * version.h:  Version changed to be simply 1.1.4.  Comments added.
  852.  
  853. Mon Nov 25 15:16:51 1991  Joseph Arceneaux  (jla at hugo)
  854.  
  855.     * indent.c (main):  When handling decl case, don't reset
  856.     PREFIX_BLANKLINE_REQUESTED if we've just encountered the type of a
  857.     procedure delcaration.  This fixes the -bap bug for procedures
  858.     which begin with a line declaring their type, following the line with
  859.     `}' from the last procedure.
  860.  
  861. Fri Nov 22 15:26:59 1991  Joseph Arceneaux  (jla at hugo)
  862.  
  863.     * args.c: Default is now GNU style.  Original obtained by new
  864.     option "-orig".  New variable exp_orig.
  865.  
  866.     * indent.texinfo: Describe the new -ts option.  Removed the -ss
  867.     option from GNU style.
  868.  
  869. Thu Nov 21 17:50:48 1991  Joseph Arceneaux  (jla at hugo)
  870.  
  871.     * args.c: New variables `tabsize' and `exp_ts'.
  872.     * indent_globs.h: Declare `tabsize'.
  873.     * io.c (pad_output, count_spaces): Use `tabsize' to calculate padding.
  874.     * pr_comment.c (pr_comment): Use `tabsize' to compute column.
  875.  
  876.     * args.c: Removed the "-ss" option for GNU style.
  877.  
  878. Fri Sep 13 01:30:18 1991  Joseph Arceneaux  (jla at hugo)
  879.  
  880.     * indent_globs.c: New element to parser_state, `paren_depth',
  881.     which counts global paren nesting.
  882.     * indent.c: Use it in main loop to avoid setting `in_or_st' when
  883.     doing ansii prototyping.
  884.  
  885. Thu Sep 12 15:53:54 1991  Joseph Arceneaux  (jla at hugo)
  886.  
  887.     * io.c (dump_line): Initialize target_column to 0.
  888.  
  889.     * parse.c: New variable debug to control debugging output.
  890.  
  891.