======================== comofilt.pl Revision Log ======================== ==== 2003 ==== 11/28 (comofilt.pl v1.34) Corrected several r.e. clauses that could possibly have lead to "use of uninitialized value" messages from Perl. 11/22 (comofilt.pl v1.33) Corrected possible problem recognizing "const pointers" (as opposed to pointers-to-const) in certain constructs. 11/20 (comofilt.pl v1.32) Made sure that lines are never wrapped in the middle of pathnames, even if that means an output line length may exceed the /width setting (figuring it is more important for editors to be able to automatically locate the point of the error than it is to unconditionally honor the /width value). 08/08 (comofilt.pl v1.31a) Minor changes to the comments. Added the COPTS internal variable to the comofilt.bat batch file. 06/12 (comofilt.pl v1.31) Cleaned up some unused variables, renamed $continuation_indent to $tabsize. 06/02 (comofilt.pl v1.30) /iter:L now forces $newiter to 'iterator', so the word 'iterator' is never shortened in /iter:L mode. Fixed a bug that caused the script to crash with an out-of-bounds subscript error in some cases when a small /width value was specified. 04/22 (comofilt.pl v1.27) Shortened the primary regex ($t) a tad more. 04/08 (comofilt.pl v1.26) Adjusted handling of the phrase 'iterator' to avoid shortening it unless one of the standard iterator types is involved, and added some comments to the user-configurable section to show how to disable all iterator filtering. 03/12 (comofilt.pl v1.25a) Corrected bug where std header file pathname with 'include' was recognized, but with 'INCLUDE' (upper case) was not. Cleaned up some dumb typos in comofilt.bat: Missing a % after an env. var. name, and used two names, STLFILT and COMOFILT, to refer to the same variable. It is now STLFILT consistently. 02/28 (comofilt.pl v1.25) Corrected bug in detection of Dinkumware header file names containing "." 02/24 Updated the comofilt shell script (for Unix), correcting several issues in that script: 0) Supplied missing double-quote on line initializing DOPTS at top 1) The exit status of the entire script now properly represents the status of the compilation (so that comofilt may be used from an- other script with proper conditional behavior) 2) the PAGER variable may be set to blank to prevent use of any paginator 02/05 (comofilt.pl v1.24) Optimized the primary regex, $t, to avoid "regex too long" blowups under some older versions of Perl. This should also result in substantially faster execution under all Perl implementations. 01/30 (comofilt.pl v1.23) Fixed obscure bug when "[]" sequence present in a "with" clause substituion 01/21 (comofilt.pl v1.22) Fixed several problems with Standard header processing (/hdr:x option): Dinkumware standard headers are now processed correctly, and a bug that caused fragments of suppressed header messages to be emitted has been corrected. Added some EOF processing logic to try to make the Perl script more robust in the face of screwy newlines-around-EOF behavior. This is a "work in progress" controlled by the $simpleeof variable. I'm distributing the script with $simpleeof set to 'N' (use enhanced EOF processing). If you experience problems such as something hangs, try setting this to 'Y' to revert to old, "simple" EOF processing. 01/16 (comofilt.pl v1.21) Minor cosmetic change: decided the recently introduced spaces between template parameters were a mistake and took them back out [I know, I've got way too much time on my hands...] 01/03 (comofilt.pl v1.20) comofilt.pl now supports the Dinkum Comeau library as well as "libcomo" ==== 2002 ==== 12/26 (comofilt.pl v1.10) Corrected the "off-by-1" error in /width:nn processing, so that the nn in /width:nn can be the actual width of the display (instead of one less) and things come out looking right. Corrected indentation bug where the "^" indicator was not aligning correctly with the text it was referring to on the preceding line. Fixed the problem by disabling all filtering for lines representing those code excerpts. 12/19 (comofilt.pl v1.01) Corrected multimap processing. 9/3 (comofilt.pl v1.00) Fixed filtering of direct-initialized iterators for several containers. A New version of the Unix shell script driver, comofilt, now distinguishes compiler options from Decryptor options and dispatches each to the ap- propriate program. 7/23 (comofilt.pl v.993) "with" clause processing now apples to pre-linker and linker messages as well as compiler messages. To take advantage of this feature while using Comeau's "como" command, be sure you have the July 5, 2002 [or a later] version of como.exe ("como --version" tells you what version you have). 6/15 (comofilt.pl v.992) Removed $alloc user-configurable variable (it wasn't being used). Fixed improper substitution of the text "iterator" in certain cases due to lack of proper word boundary detection. Added processing for "with" clauses within "C++ prelinker" messages. 4/11 (comofilt.pl v.991) Removed unnecessary r.e. substitutions still present after porting from previous versions of the Decryptor. 3/12 (comofilt.pl v.99) Added a new variation of the header policy option: /hdr:nn, where nn is a number, sets an internal variable named $headers_to_show so that nn messages are passed thorough from each cluster of standard header messages, and the rest are suppressed. You may change the default value of $headers_to_show by setting the value of $def_hdrs_to_show in the user-configurable section of comofilt.pl, and the new value will apply any time you use /hdr:M. Note: Since the /hdr:M option automatically sets $headers_to_show to the value of $def_hdrs_to_show, do not use /hdr:M and /hdr:nn simultaneously. Whenever headers are suppressed, the filter ends its session by reminding the user to use /hdr:L to get more detail if needed. [If you get sick of seeing the reminders, just set the user-configurable variable "$advise_re_policy_opts" to 0.] The Windows batch script comofilt.bat, and unix driver script comofilt, now look in the environment for a variable named CFILTOPTS. If it is present, its value overrides the setting of OPTIONS built in to the script. This allows the user to try different filtering options without having to edit the script each time or manually enter the entire command pipeline sequence. Updated README.txt to properly describe behavior of /hdr:x 2/26 (comofilt.pl v.98) If the COMO_LIB_BASE environment variable is set, comofilt.pl takes the value for $header_sig from that variable instead of from the value hard-wired into the script (the environment variable overrides the built-in value). Output line wrapping has been cleaned up a bit, so that all messages (with the exception of command-line parameter errors) are consistently wrapped to the desired column. Many miscellaneous Perl coding errors were corrected [next time, I've got to remember to run perl -W *before* releasing a script! ;-) ] 2/25 (comofilt.pl v.97) Eliminated the 'M' iterator policy (actually, made it "officially" the same as 'S'; it wasn't doing anything before anyway) Fixed the /width:xx mechanism. It was messing up rather badly in the presence of terms without spaces or quotes that were longer than the selected output width (i.e., infinite loop land). Enhanced the installation instructions in README.txt to remind users to properly set the $header_sig variable. 2/22 (comofilt.pl v.96) Added two new command-line options: /hdr:x (where x is S, M or L, case insensitive): set header file policy. If 'L', show all standard header messages (like it did before). If 'M', show only the first of each "cluster". If 'S', show none. For both S and M, it'll tell how many it has suppressed. Default is M. /banner:x (where x is Y or N) Show or don't show the sign-on banner. Default: Y. 1/27 Initial beta release.