-- $Id: CHANGES,v 1.60 2024/09/17 08:25:20 tom Exp $ -- Thomas E. Dickey 2024/09/17 ---------- + improve utility/test scripts, with shellcheck and other checks. + improve test-packages, e.g., for hardening options. + updated configure script macros, for ignored options + update config.guess, config.sub 2024/01/11 ---------- + minor cleanup of manual page + updated configure script macros, for compiler-warnings + update config.guess, config.sub 2023/01/30 ---------- + updated configure script macros, for compiler-warnings 2022/10/02 ---------- + updated configure script macros + update config.guess, config.sub 2021/01/08 ---------- + eliminate archaic "Boolean" enum + updated configure script macros + update config.guess, config.sub 2020/09/22 + remove obsolete makefile-rules + updated configure script macros + update config.guess, config.sub 2018/04/01 + updated configure script macros + update config.guess, config.sub 2015/08/11 + fix an off-by-one in limit-checking for command-line option values (patch by Miriam Ruiz). + updated configure script macros + update config.guess, config.sub 2013/12/09 + updated configure script macros + update config.guess, config.sub 2012/03/18 + add rpm script. + fixes for DESTDIR in makefiles + add cb++ script to install-rules + integrate patch from Debian package, to search for bcpp.cfg in user's home-directory and optionally a compile-time specific directory. + add dpkg script from Debian package, for testing. + updated configure script macros + drop mkdirs.sh, using "mkdir -p" + update config.guess, config.sub 2009/06/30 + updated configure scripts + improve exec-sql parser, detecting inline comments beginning with "--". + fix a case where multi-line indent was set during a #define, and not reset on completion of the #define, causing the following code to be indented. + check for braces or preprocessor-level before indenting comments which are on a line without code. + improve config-file parser, which used strstr... + add keep_code_with_comment option, to merge inline-comments with the code immediately following, rather than merging (for example) with trailing "}" (request by Daniel Lin). 2005/07/25 + add COPYING (request by Peter Hille). + fixes for Intel 9.0 compiler-warnings. + add AC_EXEEXT and AC_OBJEXT checks to configure properly with cygwin. 2005/05/16 + fixes to build with g++ 2.95.3 + add .SUFFIXES rule to build with Solaris make. 2005/04/10 + correct some regressions introduced by 2004/10/27: + check if a line began as part of a quoted string string before computing its indentation. + count indent-level for curly-braces within #define's. + improve configure check for g++ warnings (from ncurses). 2004/10/27 + correct logic that tracks state of preprocessor lines that continue from one line to the next. The additional lines were not marked as preprocessor lines (report by Edward Bishop). + updated configure script, fixes a check that added some gcc warning options which are not recognized by g++. 2003/11/03 + correct one of the valgrind fixes from 2003/04/23 which used delete[] in a special case where delete was correct (reports by Gert van de Kraats and John Whitley ). 2003/04/23 + fix several mismatches between new and delete (versus delete[]) reported by valgrind. + add place_top_brace_on_new_line to config, with corresponding command-line options -tbcl and tbnl to disable or enable it respectively. This is for the special case of the top-level brace, e.g., at the function-level, to better match K&R style braces (request by Daniel Lin). + modified run-test script to facilitate testing variations of bcpp.cfg 2002/11/24 + check in OutputToOutFile() for a trailing C-comment fragment which happened to precede code on the same line, e.g., */ a = b; and split the line to avoid constructing a = b; */ (reports by Andreas Werner and Yanir Lubetkin + add isFinalComment() check to ensure that embedded comments are not moved, e.g., void myFunct(int /*number*/, float* /*data*/); (report by Andreas Werner). 2002/11/23 + add a simple configure script. + rename UNIX makefile to makefile.unx, changing compiler definition from "gcc -x g++" to "g++", since that no longer works with gcc 3.2 (report by Don Park ). + remove obsolete 'unix' subdirectory. 2002/05/18 + add indent_both_braces config-file option and corresponding command-line -nbbi, -ybbi options to allow user to indent both leading/trailing braces of a block by one level (adapted from patch by Brad Mettee ). + add brace_indent config-file option and corresponding command-line -nbi, -ybi options to allow user to indent the trailing brace of a block to align with its content rather than the beginning of the block (detailed request by Edwin Robert Tisdale ) + correct isContinuation() by ignoring backslash characters within comments. This makes it handle comment blocks such as /*******\ * BUG * \*******/ (reported by Andreas Werner ). + add makefile.blc for Borland C (from Chris Elliott ). + remove references to obsolete email address + add CHANGES file, document the sets of changes I marked in RCS + add MANIFEST file. 1999/08/10 + makefile: do not link with -lg++ anymore + makefile: change $D to "./", to make vile follow the compiler warnings more easily + add __FILE__ to traceOutput() calls + fixes to compile on SunOS 4.x, which needs the stuff prototyped also, change interface of traceInput() and traceOutput() to add __FILE__ + fix a case Jeff Gilliat pointed out - an inline C comment fragment resulted in commenting out the code on that line. + mods in IndentNonBraces() which serve to distinguish "public:" which is a class scope from "public" which is a Java type. Otherwise we get odd indention for the latter case. + backup.cpp: had allocated one char too few for ".orig" suffix 1999/01/21 + rename the backup file to .orig, since "~" confuses WinNT's directory scanning, making it return the same file more than once. + open the output in binary mode, so we get ^J's rather than ^M^J's 1999/01/04 + kludge to ifdef for g++ versus M$ Visual C++ + kludge to compile in case we have the misfortune to use gcc 2.8.1 with Solaris's header files (some idiot decided to undef __STDC__ in g++ because they disapprove of using __STDC__ for ifdef'ing). + change defaults in bcpp.cfg to use_tabs=yes, and comments_with_code=33 (the original bpp.cfg is in top-level). + baseq.cpp: fix so we do not try to peek into a negative index + add top-level bcpp.cfg, indent.bat, indent.cfg as part of port to win32. + add txtdocs/manual.txt to distribution, updated wpdocs/manual.doc 1999/01/02 + mods to "work" with tisca.h, which contains a number of comments within long multi-line comments. This isn't quite right, since lines containing only a backslash are deleted, where they should be combined just like blank lines. + add run-test file (used with regression test-cases not part of the distribution). + implement html.cpp, to provide limited support for indenting JavaScript embedded in HTML files. + split-out backup.cpp to support renaming of the original file, preserving its modification-time, to allow recovery if the indent is not needed (makes no change), or otherwise should be discarded. + implement verbose.cpp, to support interactions such as stopping processing a set of files on an error. + change scattered printf's to call verbose(), and fprintf(stderr's to warning(). + rewrote ReadLine so it doesn't use fseek/ftell (which is a porting problem). + config.cpp: removed a lot of ugly/repetitious code + config.cpp: moved ShowConfig here from bcpp.cpp + debug.cpp: change trace() calls to not use stderr explicitly. 1997/04/04 + first draft of logic to reset indent-stack at the end of a multi-line preprocessor command. also, fixed (?) a bug in splitting continuation-line (but there's more) + allow unrecognized preprocessor-lines to be indented + refine a change to allow for things like "else return;" + replaced a couple of strcmp calls by CompareKeyword to allow for matching both "else" and "else if" statements. + fixes for places where we split a line that has continuation-marker on the end. while I was at it, trim redundant whitespace before the '\', to make it uniform. 1997/01/07 + tabs.cpp: fix a place where I trimmed trailing blanks from data w/o trimming state, causing bogus results with baseobj.hh, due to overrun in later logic. + lots of spelling corrections. + fixes for stricter gcc warnings 1996/12/24 + updated copyright notices. + refined adjustment of inline comments to work with hanging.cpp, which doesn't take that into account. + remove unused logic for adjustHangingComment, since I'm doing this in a different way. 1996/12/17 + execsql.cpp: refined hanging-indents to account for statements other than the two block-styles we use + make SqlStruct a class 1996/12/12 + shift-adjust dangling else{} block + makefile: record the debug-ifdefs + hanging.cpp: make HangStruct class to get rid of static variables + bcpp.h: made HangStruct class + change hang_state from an int to a class + made singleIndentLen obsolete via hanging.cpp 1996/12/06 + tabs.cpp: mods to allow tabs in OutputStruct.filler + fix a few leaks + ensure that hanging comments remain hanging when re-indenting. + use tabs for OutputStruct.filler 1996/12/05 + tabs.cpp: correct leading-whitespace conversion (space is printable ;-) + hanging.cpp: remove redundant reset of hang_state + debug.cpp: SunOS 4.x needs stdlib.h for size_t + add InputStruct.offset + add OutputStruct.splitElseIf + remove IndentStruct.firstPass, because hanging.cpp does it better + mods to preserve code-fragment's offset to use in shifting block-indented C-style comments + fixes for offset adjustment due to stripping whitespace from fragments in DecodeLine + first cut of logic to pass offset of code-fragments into InputStruct (to use for categorizing hanging comments) + revised logic for split else/if statement using flag 'splitElseIf'. this fixes the problem of indenting the code undef 'if'. + mods to make TestLineHasCode look at the parse-state (which is more reliable) + remove IndentStruct.firstPass logic, since hanging.cpp does it better + add pBFlag to OutputStruct to use in hanging.cpp 1996/11/15 + tabs.cpp: correct off-by-one in return from skipEscape() that ate trailing quote. + bcpp.h: rename OutputStruct.pState to OutputStruct.pCFlag + bcpp.h: add OutputStruct.pBFlag + use OutputStruct.indentHangs + split-out hanging.cpp + hanging.cpp: add 'do_aggreg' flag + hanging.cpp: use new member of OutputStruct, indentHangs to allow merge with info from execsql.cpp 1996/11/08 + move emptyString to bcpp.h + pass-in Config struct to IndentSQL, making it pass by ref everywhere + move some string-parsing to strings.cpp, to re-use in execsql.cpp + move debug/trace code to debug.cpp + move input/output/indent definitions to bcpp.h + align successive else/if + don't set interfunction-spacing for lines that happen to have R_CURL, if there's more on the line. + add indent_exec_sql to bcpp.cfg + execsql.cpp - quick hack to indent non-keyword stuff extra + move some functions to strings.cpp from bcpp.cpp, for use in execsql.cpp 1996/11/06 + restructured keyword-lookup to add 3rd type (blockLine). use this to fix case (successive lines) with "while", "switch" -- the curly-braces for "switch" weren't indented under "switch". + also, dropped special logic for singleIndentLen, making it the same as a standard indent (was too ugly). 1996/11/05 + propagate parse-state via InputStruct to OutputStruct. + correct potential indention of continued-string fragments. 1996/11/04 + moved string-table to config.cpp + fix uninitialized-memory-ref (Purify) + unused parameter. + add indent_preprocessor + simplify config.cpp a little using overloading + corrected some minor bugs affecting indention + add "#else" to typeOfPreP(), along with all other standard directives. + use enum rather than int for 'attrib' types. change name of one 'attrib' type to make it easier to maintain. fixes for TRACE. + first cut of indent_preprocessor option + modify so that both comma and semicolon are treated specially after '}', to make data lists work properly + correct a couple of special cases with multi-indent 1996/10/31 + fixes for memory leaks + corrections to tab computation + add special state for '#' pre-processor lines + makefile - move some symbols to accommodate non-g++ + add POUNDC + mods to track preprocessor-lines + reduce ConstructLine to a single-level switch, rather than the nested one that will get in the way of mods for execsql + refined logic in dontHangComment(), fixing a case I missed before. + correct a logical-reduction for matching against PreP types + suppress inter-function spacing before "#endif" + add pType to OutputStruct so I can tag them as PreP when needed + fix while-loop that was expressed as for-loop with break + undid unnecessary if-level in ConstructLine + restore leading tabs in comments if we're expanding tabs + moved the non-printing character conversion to tabs.cpp 1996/10/20 + moved delete for lineState into bcpp.cpp + make pString in/out for ExpandTabs + modify ExpandTabs to maintain a string of CharState values + corrected state: allow tab-expansion in // comments + add strings.cpp + make pString in/out for ExpandTabs + fixes for include-order (bcpp.h should be last) + reduce FindStartofComment and FindEndofComment to return index instead of pointers + revised FindPunctuation so it returns an index rather than a pointer, and uses the pLineState info so that we can easily discard quoted punctuation (which didn't work for a complicated string, e.g., "'\\0','\\0'}"). + changed allocation scheme of lineState + drop CComments param of DecodeLine, since pLineState contains proper info + fixes for blank-lines: ensure that we don't emit trailing blank-lines in a file, that except for inter-function blanks, we reduce runs of blank lines to a single blank, and that there's no lines (even comments) that come out with trailing whitespace. + simplify allocation/deallocation in DecodeLine by leaving pLineData alone. + a couple of Purify-fixes + modify ExpandTabs to maintain a string of CharState values; use this to retain parsing state so I can correct blank-trimming (so that continuation lines of a string aren't trimmed!). 1996/10/12 + split-out bcpp.h and tabs.cpp + moved tab-expansion (and tab-spacing) into separate file, first to fix an error in tab-expansion (wrong fill amount), then to allow rewrite to capture left/right CharState, to prevent quoted tabs from being expanded. Also, moved L_CURL, R_CURL, DQUOTE, SQUOTE into config.h, making capitalization consistent. + fixes for multi-line C comments + implement shiftToMatchSingleIndent, peekIndexOfBrace, chainedSingleIndent + better logic in resetSingleIndent(), to reset all pending single-indents + ifdef'd trace code so I don't have to uncomment it added clause in IndentNonBraceCode to (try to) reset singleIndentLen immediately after "{" -- works in one place but not another + eliminate single-char constant-strings to use strchr instead of strstr. use FindPunctuation to simplify some logic + new function CompareKeyword fixes parse ambiguity with strstr allow combination of tabs and spaces.