GPP NEWS -- history of user-visible changes

See the end of this file for copying conditions.


Version 2.28

    * Fixed typos in documentation (Issues #57 and #61)
    * Added #sinclude meta-macro for silent includes (Issue #63)

Version 2.27

    * --help and --version now print to stdout, not stderr (Issue #47)
    * Various minor fixes and revisions to the documentation (Issues #38
      through #44)

Version 2.26

    * Made --include work when using a relative path to the infile
      (Issue #16)
    * Various minor fixes and revisions to the documentation
    * Added autoconf checks for popen() and pclose()
    * Moved the openSUSE-specific RPM spec file to a separate repository
    * Avoided possibility of stack overflow during parsing (Issue #26;
      CVE-2018-17076)

Version 2.25

    * Maximum number of include directories increased to 128
    * Licence changed from GNU Lesser GPL 2.1 to GNU Lesser GPL 3.0

Version 2.24

    * Added a #date meta-macro allowing for formatting of dates and
      times

Version 2.23

    * Fixed a bug where #error and #warning directives were processed
      in the false branch of a conditional

Version 2.22

    * Added --include option which allows user to specify a file
      to be processed before the regular input file

Version 2.21

    * Added CPP-style #error and #warning meta-macros

Version 2.20

    * GPP's arithmetic evaluation macro (#eval) now supports
      file-globbing via =~ (POSIX only)
    * there is now an #elif macro to simplify conditional branching
    * fixed a bug where GPP would be off by one when reporting line
      numbers in its error messages or with the #line meta-macro

Version 2.14

    * fixed a crash bug
    * added built-in macros `line' and 'file'
    * GPP documentation is now under a free licence

Version 2.13

    * fixed bug which caused GPP to crash when the same macro was
      defined twice on the command line
    * GPP should compile on more systems now; non-standard C functions
      have been replaced with custom code
    * INSTALL contains installation instructions for Windows, Unix,
      and other systems.
    * GPP now issues a warning on use of deprecated command-line
      options
    * GPP is now packaged in a manner similar to most GNU
      programs, including a `configure' configuration/installation
      script suitable for Unix-like systems
    * credits moved from manual to AUTHORS and THANKS files
    * CHANGELOG superseded by files ChangeLog (detailed, for
      developers) and NEWS (brief, user-visible changes only)
    * added list of bugs and wishes as BUGS and TODO
    * minor changes (mostly typographical) to the manual

Version 2.12

    * New command-line options:
      - -X for XHTML mode
      - --help displays command-line option summary
      - --version displays version information
      - "long options" -nostdinc, -nocurinc, etc. changed to --nostdinc,
        --nocurinc, etc.
    * fixed miscellaneous typographical, grammatical, and spelling
      mistakes in documentation
    * licence changed from GNU Library GPL 2 to GNU Lesser GPL 2.1
    * distribution now includes copy of the licence
    * new project maintainer: Tristan Miller
      <psychonaut@nothingisreal.com>


Version 2.1

    * Bugfixes:
      - bugfix in #defeval (can now be used to iteratively redefine a
        macro in terms of its previous definition)
      - bugfix in arithmetic evaluation (operator precedence between +
        and -, and between * and / was wrong)
    * Arithmetic evaluation:
      - length(...) builtin in #eval
      - all comparison operators revert to string comparison if
        arithmetic evaluation fails in #eval
    * Command-line options:
      - +n does the opposite of -n (do not preserve linefeeds; place
        *after* -C/-P)
      - -O sends output to file and stdout simultaneously
      - options to control directory search order for #include
      - option to adjust warning level
      - option to specify an include file marker to keep track of
        #include directives and line numbers in output
    * Misbehavior fixes:
      - numbered argument sequences (#1...#9) are disabled outside of
        definitions.
      - if a construct terminated by a newline is nested in last
        position within another construct, then the nested newline is
        optional. Concretely, this means that " #define myeval #eval #1 "
        is now valid.
      - macros defined on the command line with -D... can take named
        arguments.  The syntax is: -Dmacro(arg1,...)=definition ; the
        definition should conform to the rules of the mode specified on
        the command-line, although the arguments are specified in
        C-style syntax (but without spaces !)
      - input line numbers are almost always preserved when
        -includemarker is specified
    * Miscellaneous:
      - LaTeX version of the manual in addition to man and html formats.

----------------------------------------------------------------------
Copyright information:

Copyright (C) 2001 Denis Auroux.
Copyright (C) 2003-2023 Tristan Miller.

   Permission is granted to anyone to make or distribute verbatim
   copies of this document as received, in any medium, provided that
   the copyright notice and this permission notice are preserved, thus
   giving the recipient permission to redistribute in turn.

   Permission is granted to distribute modified versions of this
   document, or of portions of it, under the above conditions,
   provided also that they carry prominent notices stating who last
   changed them.
