https://invisible-island.net/bcpp/CHANGES
-- $Id: CHANGES,v 1.60 2024/09/17 08:25:20 tom Exp $
--
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 <Gert.vandeKraats@getronics.com> and John Whitley
<JSWHITLEY@mail.dstl.gov.uk>).
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
<yanir.lubetkin@emblaze.com>
+ 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 <don.park@beehivegames.com>).
+ 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 <bmettee@clark.net>).
+ 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
<E.Robert.Tisdale@jpl.nasa.gov>)
+ correct isContinuation() by ignoring backslash characters within
comments. This makes it handle comment blocks such as
/*******\
* BUG *
\*******/
(reported by Andreas Werner <werner@vircinity.com>).
+ add makefile.blc for Borland C (from Chris Elliott <cje2@york.ac.uk>).
+ remove references to obsolete email address <dickey@clark.net>
+ 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 <string.h> 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.