unifdef.git
5 years agoAllow `make install PREFIX=/usr/local` to install globally on a...github/pull/8
Will Buckner [Thu, 11 Aug 2016 07:57:58 +0000 (11 00:57 -0700)]
Allow `make install PREFIX=/usr/local` to install globally on a...

...system, or otherwise change the installation location.

6 years agoportability: fix problems compiling with C++ compiler
Tony Finch [Fri, 26 Feb 2016 09:39:13 +0000 (26 09:39 +0000)]
portability: fix problems compiling with C++ compiler

Michael McConville suggested removing a "redundant" cast of
the return value from malloc(), based on a change in the
OpenBSD version of unifdef. This is a good suggestion for
a purely C program, but the cast is required in C++.

Carsten Hey contributed some portability improvements in
2012 which included this cast, so that unifdef can be
compiled with a C++ compiler. Unfortunately since then
there have been several regressions in C++ support.

This commit fixes those regressions.

6 years agotest: need newlines in MinGW printf workaround
Tony Finch [Tue, 16 Feb 2016 16:58:21 +0000 (16 16:58 +0000)]
test: need newlines in MinGW printf workaround

6 years agotest: GNU printf(1) is POSIXly incorrect
Tony Finch [Tue, 16 Feb 2016 16:03:29 +0000 (16 16:03 +0000)]
test: GNU printf(1) is POSIXly incorrect

6 years agotest: ugly workaround for lack of chmod() in MinGW
Tony Finch [Tue, 16 Feb 2016 14:37:18 +0000 (16 14:37 +0000)]
test: ugly workaround for lack of chmod() in MinGW

6 years agowin32: nonexistent new file is not an error in rename(old,new)
Tony Finch [Tue, 16 Feb 2016 14:31:47 +0000 (16 14:31 +0000)]
win32: nonexistent new file is not an error in rename(old,new)

6 years agowin32: revert mktempmode() change - it does not help
Tony Finch [Tue, 16 Feb 2016 14:06:53 +0000 (16 14:06 +0000)]
win32: revert mktempmode() change - it does not help

6 years agotest: revert rm change - I was misreading the error message!
Tony Finch [Tue, 16 Feb 2016 14:05:40 +0000 (16 14:05 +0000)]
test: revert rm change - I was misreading the error message!

6 years agowin32: more thorough implementation of mktempmde()
Tony Finch [Tue, 16 Feb 2016 13:53:42 +0000 (16 13:53 +0000)]
win32: more thorough implementation of mktempmde()

Let's see if this makes the permissions tests pass.

6 years agotest: suppress error output from rm
Tony Finch [Tue, 16 Feb 2016 13:43:27 +0000 (16 13:43 +0000)]
test: suppress error output from rm

POSIX says rm -f should not produce any error messages or nonzero
exit status, but MinGW fails to follow the rules.

6 years agotest: typo in stderr redirection, sigh
Tony Finch [Tue, 16 Feb 2016 13:35:00 +0000 (16 13:35 +0000)]
test: typo in stderr redirection, sigh

6 years agotest: a hack for MinGW on Travis-CI
Tony Finch [Tue, 16 Feb 2016 13:25:35 +0000 (16 13:25 +0000)]
test: a hack for MinGW on Travis-CI

The first test that is run for the MinGW build on Travis-CI is
exploding messily when it tries to initialize Wine, but after that
most of the other tests run OK. Let's try adding a fake non-test
to absorb this mess and get closer to a working build.

6 years agowin32: preen comment
Tony Finch [Mon, 15 Feb 2016 17:38:42 +0000 (15 17:38 +0000)]
win32: preen comment

6 years agowin32: go back to slow snprintf() because MinGW is still troublesome
Tony Finch [Mon, 15 Feb 2016 17:33:12 +0000 (15 17:33 +0000)]
win32: go back to slow snprintf() because MinGW is still troublesome

6 years agoREADME: thanks to Ruediger Meier!
Tony Finch [Mon, 15 Feb 2016 17:09:33 +0000 (15 17:09 +0000)]
README: thanks to Ruediger Meier!

6 years agowin32: better snprintf() portability hack
Tony Finch [Mon, 15 Feb 2016 17:12:45 +0000 (15 17:12 +0000)]
win32: better snprintf() portability hack

The code is now much shorter and does not malloc or copy.

There is a #define renaming to avoid a name collision since
Visual Studio 2015 includes a standard snprintf.

Reported-By: Ruediger Meier <ruediger.meier@ga-group.nl>
6 years agotest: try to work better on MinGW
Tony Finch [Mon, 15 Feb 2016 16:20:07 +0000 (15 16:20 +0000)]
test: try to work better on MinGW

A lot of the test failures are due to CRLFs in stderr which do not
match the bare LFs in the experr files. So, unilaterally strip CRs
from stderr output.

We don't need to do this for stdout, since unifdef writes that in
binary mode so it can match the newline style of the input file.

We might also need to fix the rc files - let's see how this change
works first.

6 years agotravis: add OSX and Ubuntu Trusty builds
Ruediger Meier [Thu, 11 Feb 2016 23:47:29 +0000 (12 00:47 +0100)]
travis: add OSX and Ubuntu Trusty builds

Actually this is a rewrite of .travis.yml:
 - speedup build (sudo: false)
 - add OSX build
 - add Ubuntu 14.04 Trusty build (beta)
 - MinGW is allowed to fail silently (no more "Still Failing" emails!)
 - add env output for debugging

Note "apt-get install wine failed" for Trusty, that's why we don't
check MinGW there.

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
6 years agoifdef-how: what conditionals cause this line to be emitted?
Tony Finch [Mon, 7 Dec 2015 12:10:30 +0000 (7 12:10 +0000)]
ifdef-how: what conditionals cause this line to be emitted?

Suggested-by: Anthony Liu <antliu@gmail.com>
6 years agoAvoid -Wmissing-initializer
Tony Finch [Thu, 3 Dec 2015 14:34:11 +0000 (3 14:34 +0000)]
Avoid -Wmissing-initializer

6 years agoman: use .Mt to mark up email addresses
Tony Finch [Thu, 3 Dec 2015 14:08:26 +0000 (3 14:08 +0000)]
man: use .Mt to mark up email addresses

Obtained-from: FreeBSD
Submitted-by: Franco Fichtner <franco@lastsummer.de>
6 years agoFreecode is read-only
Tony Finch [Thu, 3 Dec 2015 12:15:06 +0000 (3 12:15 +0000)]
Freecode is read-only

6 years agoBump copyright datesunifdef-2.11
Tony Finch [Thu, 3 Dec 2015 12:10:08 +0000 (3 12:10 +0000)]
Bump copyright dates

6 years agounifdef-2.11
Tony Finch [Thu, 3 Dec 2015 12:06:33 +0000 (3 12:06 +0000)]
unifdef-2.11

6 years agoFix uninitialized variable in evaluator.
Tony Finch [Thu, 3 Dec 2015 11:50:46 +0000 (3 11:50 +0000)]
Fix uninitialized variable in evaluator.

Inner expressions typically return LT_IF without setting their
value pointer when they encounter an unknown value. Binary
operators then blindly use these inner values before checking if
they are unknown - before checking for LT_IF. This is undefined
behaviour, but we usually dodge the bullet - except division can
cause things to explode and expose the bug.

Initializing the value to zero avoids undefined behaviour. But this
means that instead of avoiding division when the denominator is
definitely zero (because it might be unknown and zero) we now only
divide if it is definitely non-zero.

6 years agotest: unexpected /0 exception happening in another part of the test
Tony Finch [Thu, 3 Dec 2015 11:42:04 +0000 (3 11:42 +0000)]
test: unexpected /0 exception happening in another part of the test

6 years agotravis: clone deeply, so version tags are included
Tony Finch [Thu, 3 Dec 2015 11:37:56 +0000 (3 11:37 +0000)]
travis: clone deeply, so version tags are included

6 years agotest: clearer div test, and try to diagnose unexpected /0 exception
Tony Finch [Thu, 3 Dec 2015 11:37:23 +0000 (3 11:37 +0000)]
test: clearer div test, and try to diagnose unexpected /0 exception

6 years agowin32: suppress warnings about POSIX functions
Tony Finch [Thu, 3 Dec 2015 11:17:20 +0000 (3 11:17 +0000)]
win32: suppress warnings about POSIX functions

6 years agotravis: clone with a nonzero depth
Tony Finch [Thu, 3 Dec 2015 11:15:29 +0000 (3 11:15 +0000)]
travis: clone with a nonzero depth

6 years agoDocument the buggy effect of the dumb lexer on the -f option.
Tony Finch [Thu, 3 Dec 2015 11:08:24 +0000 (3 11:08 +0000)]
Document the buggy effect of the dumb lexer on the -f option.

6 years agoAvoid redundant renames with a -M '' empty backup suffix.
Tony Finch [Thu, 3 Dec 2015 10:59:28 +0000 (3 10:59 +0000)]
Avoid redundant renames with a -M '' empty backup suffix.

Submitted-by: Michael McConville <mmcco@mykolab.com>
6 years agoHandle division by zero gracefully.
Tony Finch [Thu, 3 Dec 2015 10:50:49 +0000 (3 10:50 +0000)]
Handle division by zero gracefully.

Reported-by: Michael McConville <mmcco@mykolab.com>
7 years agoReplace hardcoded operator lexing with table-driven code.
Tony Finch [Fri, 24 Oct 2014 15:43:51 +0000 (24 16:43 +0100)]
Replace hardcoded operator lexing with table-driven code.

7 years agoAdd support for additional #if/#elif operators
Brian Ginsbach [Fri, 24 Oct 2014 15:02:53 +0000 (24 15:02 +0000)]
Add support for additional #if/#elif operators

Add support for additional operators in a #if/#elif statement.
  - unary bitwise NOT (one's complement): ~
  - unary negative: -
  - left shift: <<
  - right shift: >>
  - bitwise AND: &
  - bitwise exclusive OR: ^
  - bitwise inclusive OR: |
  - addition: +
  - subtraction: -
  - multiplcation: *
  - division: /
  - modulo: %

7 years agoAdd all comparisons to tests
Brian Ginsbach [Fri, 24 Oct 2014 15:01:11 +0000 (24 15:01 +0000)]
Add all comparisons to tests

Add tests for <, <=, >, and >= comparisons.

7 years agoEnsure that newlines change the linestate when skipping junk.
Tony Finch [Mon, 20 Oct 2014 20:45:20 +0000 (20 21:45 +0100)]
Ensure that newlines change the linestate when skipping junk.

Sometimes skipline() would skip meaningful characters without
letting skipcomment() look at them.

Reported-By: Christoph Schied <Christoph.Schied@kit.edu>
7 years agotests: update for capitalized diagnostics
Tony Finch [Mon, 20 Oct 2014 20:29:13 +0000 (20 21:29 +0100)]
tests: update for capitalized diagnostics

7 years agoDIAGNOSTICS do not have full stops.
Tony Finch [Mon, 20 Oct 2014 20:24:35 +0000 (20 21:24 +0100)]
DIAGNOSTICS do not have full stops.

7 years agoAdd some missing DIAGNOSTICS
Tony Finch [Mon, 20 Oct 2014 20:23:50 +0000 (20 21:23 +0100)]
Add some missing DIAGNOSTICS

7 years agoCapitalize error messages
Tony Finch [Mon, 20 Oct 2014 20:21:00 +0000 (20 21:21 +0100)]
Capitalize error messages

7 years agoAlphabetize DIAGNOSTICS
Tony Finch [Mon, 20 Oct 2014 20:19:37 +0000 (20 21:19 +0100)]
Alphabetize DIAGNOSTICS

7 years agoCheck there is a filename argument for inplace editing.
Tony Finch [Mon, 20 Oct 2014 20:16:34 +0000 (20 21:16 +0100)]
Check there is a filename argument for inplace editing.

Reported-by: Philip Guenther <guenther@openbsd.org>
Submitted-By: Stuart Henderson <sthen@openbsd.org>
8 years agotravis: restore missing semicolon
Tony Finch [Wed, 8 Jan 2014 15:03:36 +0000 (8 15:03 +0000)]
travis: restore missing semicolon

8 years agowin32: do not use Unix Makefile for testing on MinGW
Tony Finch [Wed, 8 Jan 2014 14:59:46 +0000 (8 14:59 +0000)]
win32: do not use Unix Makefile for testing on MinGW

8 years agowin32: avoid deprecated -I- compiler option in MinGW build
Tony Finch [Wed, 8 Jan 2014 14:16:13 +0000 (8 14:16 +0000)]
win32: avoid deprecated -I- compiler option in MinGW build

8 years agowin32: need prototype for snprintf()
Tony Finch [Wed, 8 Jan 2014 14:15:39 +0000 (8 14:15 +0000)]
win32: need prototype for snprintf()

8 years agounifdef: typo in comment
Tony Finch [Wed, 8 Jan 2014 13:51:53 +0000 (8 13:51 +0000)]
unifdef: typo in comment

Reported-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
8 years agowin32: avoid "secure" string functions - troublesome on MinGW
Tony Finch [Wed, 8 Jan 2014 13:39:10 +0000 (8 13:39 +0000)]
win32: avoid "secure" string functions - troublesome on MinGW

8 years agowin32: or maybe stdint.h? MinGW seems to disagree with Windows :-(
Tony Finch [Wed, 8 Jan 2014 00:15:18 +0000 (8 00:15 +0000)]
win32: or maybe stdint.h? MinGW seems to disagree with Windows :-(

8 years agowin32: need stddef.h
Tony Finch [Wed, 8 Jan 2014 00:06:22 +0000 (8 00:06 +0000)]
win32: need stddef.h

8 years agowin32: another try at working around lack of _TRUNCATE
Tony Finch [Tue, 7 Jan 2014 23:57:36 +0000 (7 23:57 +0000)]
win32: another try at working around lack of _TRUNCATE

8 years agowin32: need crtdefs.h?
Tony Finch [Tue, 7 Jan 2014 23:42:00 +0000 (7 23:42 +0000)]
win32: need crtdefs.h?

8 years agowin32: correct variable name in snprintf()
Tony Finch [Tue, 7 Jan 2014 22:45:47 +0000 (7 22:45 +0000)]
win32: correct variable name in snprintf()

8 years agounifdef: cleaner exit status handling
Tony Finch [Tue, 7 Jan 2014 22:32:21 +0000 (7 22:32 +0000)]
unifdef: cleaner exit status handling

8 years agounifdef: do not needlessly modify files when updating in place
Tony Finch [Tue, 7 Jan 2014 20:41:07 +0000 (7 20:41 +0000)]
unifdef: do not needlessly modify files when updating in place

If unifdef made no changes, leave the original input file
in place and delete the temporary working copy.

Inspired by http://trac.webkit.org/changeset/156877

8 years agounifdef: correct exit status when lines are modified but not deleted
Tony Finch [Tue, 7 Jan 2014 20:24:11 +0000 (7 20:24 +0000)]
unifdef: correct exit status when lines are modified but not deleted

8 years agotests: NetBSD pr#47068
Tony Finch [Tue, 7 Jan 2014 20:02:18 +0000 (7 20:02 +0000)]
tests: NetBSD pr#47068

8 years agoweb: update for unifdef-2.10 releaseunifdef-2.10
Tony Finch [Tue, 7 Jan 2014 19:16:02 +0000 (7 19:16 +0000)]
web: update for unifdef-2.10 release

8 years agobump more copyright dates
Tony Finch [Tue, 7 Jan 2014 19:12:35 +0000 (7 19:12 +0000)]
bump more copyright dates

8 years agounifdef: do not mark the line as dirty when there is no dirt
Tony Finch [Tue, 7 Jan 2014 19:00:39 +0000 (7 19:00 +0000)]
unifdef: do not mark the line as dirty when there is no dirt

This caused problems for #undef directives in -f header files:
the following line was ignored because the line state got
incorrectly updated.

Thanks to the uClibc project for reporting the bug and providing a
sample test case and a proposed fix.

Reported-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
8 years agoscripts: make release more verbose
Tony Finch [Mon, 6 Jan 2014 10:51:56 +0000 (6 10:51 +0000)]
scripts: make release more verbose

8 years agoweb: link to pre-release
Tony Finch [Mon, 6 Jan 2014 10:51:17 +0000 (6 10:51 +0000)]
web: link to pre-release

8 years agoBump some copyright dates
Tony Finch [Mon, 6 Jan 2014 10:42:01 +0000 (6 10:42 +0000)]
Bump some copyright dates

8 years agowin32: a more correct snprintf() portability shim
Tony Finch [Mon, 6 Jan 2014 10:38:00 +0000 (6 10:38 +0000)]
win32: a more correct snprintf() portability shim

Based on http://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010

9 years agoINSTALL: use GitHub for Windows to run Unix shell scripts
Tony Finch [Wed, 12 Jun 2013 14:50:39 +0000 (12 15:50 +0100)]
INSTALL: use GitHub for Windows to run Unix shell scripts

README: update FreshMeat -> FreeCode and note that GitHub
zip file downloads are broken.

Suggested-by: Lee M. Hamel <lee.m.hamel@intel.com>
9 years agounifdef: refactor keyword and symbol matching
Tony Finch [Tue, 11 Jun 2013 21:10:31 +0000 (11 22:10 +0100)]
unifdef: refactor keyword and symbol matching

The generic strlcmp() is replaced by the more specific matchsym()
and findsym() now includes the effect of skipsym().

This is to prepare for case-insensitive keyword matching, as part
of foreign language support.

9 years agounifdef.1: bump date and add link to home page
Tony Finch [Fri, 7 Jun 2013 22:21:03 +0000 (7 23:21 +0100)]
unifdef.1: bump date and add link to home page

9 years agocopycheck: check date in manual
Tony Finch [Fri, 7 Jun 2013 22:10:14 +0000 (7 23:10 +0100)]
copycheck: check date in manual

9 years agoweb: update for unifdef-2.9 release
Tony Finch [Fri, 7 Jun 2013 11:09:20 +0000 (7 12:09 +0100)]
web: update for unifdef-2.9 release

9 years agoINSTALL: more portability notes.unifdef-2.9
Tony Finch [Fri, 7 Jun 2013 10:53:51 +0000 (7 11:53 +0100)]
INSTALL: more portability notes.

9 years agoMakefile: correct dependencies and portability to GNU make.
Tony Finch [Thu, 6 Jun 2013 11:24:30 +0000 (6 12:24 +0100)]
Makefile: correct dependencies and portability to GNU make.

My aim was previously to rely on make's built-in rules to
build unifdef, on the assumption that this would be the
easiest way to do the right thing on unknown systems.

The right way to specify the dependencies for unifdef is:

unifdef: unifdef.c unifdef.h version.h

However GNU make has an incorrect implicit rule:

.c:
        $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@

This puts all of the prerequisites on the command line, which
causes things to break. POSIX specifies the implicit rule as

.c:
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<

And POSIX says "In an inference rule, the $< macro shall evaluate
to the filename whose existence allowed the inference rule to be
chosen for the target". In our case $< expands to just unifdef.c
which is what we want.

Putting .POSIX in the Makefile does not cause GNU make to use the
posixly-correct implicit rule definition.

The previous version of the Makefile had incorrect dependencies
which meant that GNU make (and probably other versions of make)
would not rebuild unifdef if the header files were touched. So
to fix that bug, and to work around the buggy implicit rule in
GNU make, the Makefile now has an expanded version of the
standard POSIX build rule for unifdef.

9 years agoweb: bump pre-release
Tony Finch [Thu, 6 Jun 2013 10:50:19 +0000 (6 11:50 +0100)]
web: bump pre-release

9 years agounifdef: Avoid ssize_t for portability
Tony Finch [Thu, 6 Jun 2013 10:48:43 +0000 (6 11:48 +0100)]
unifdef: Avoid ssize_t for portability

9 years agotravis-ci: fix release traget by git cloning with infinite depthgithub/pull/4
Ruediger Meier [Thu, 9 May 2013 22:16:01 +0000 (10 00:16 +0200)]
travis-ci: fix release traget by git cloning with infinite depth

git describe needs at least the last tag available. This is never sure
when using git clone --depth=50 which is done by travis per default.

9 years agoscripts: avoid gzip option --keep for compatibility
Ruediger Meier [Thu, 9 May 2013 19:42:31 +0000 (9 21:42 +0200)]
scripts: avoid gzip option --keep for compatibility

"-k|--keeps" is not available yet in officially released gzip.

9 years agoscripts: fetch Github pull requests
Tony Finch [Wed, 15 May 2013 12:22:56 +0000 (15 13:22 +0100)]
scripts: fetch Github pull requests

9 years agoweb: bump pre-release
Tony Finch [Thu, 9 May 2013 19:44:29 +0000 (9 20:44 +0100)]
web: bump pre-release

9 years agounifdef: avoid strndup() for non-standard C implementations
Tony Finch [Thu, 9 May 2013 19:38:24 +0000 (9 20:38 +0100)]
unifdef: avoid strndup() for non-standard C implementations

9 years agoscripts: copycheck fixes
Tony Finch [Thu, 9 May 2013 19:08:26 +0000 (9 20:08 +0100)]
scripts: copycheck fixes

! must go at the start of a pipeline in portable sh
Use a default author if git doesn't know who you are.

9 years agotests: avoid non-portable error message in multimissing
Tony Finch [Thu, 9 May 2013 19:00:19 +0000 (9 20:00 +0100)]
tests: avoid non-portable error message in multimissing

9 years agoweb: bump pre-release
Tony Finch [Thu, 9 May 2013 18:55:37 +0000 (9 19:55 +0100)]
web: bump pre-release

9 years agotests: shell . command needs path in argument
Tony Finch [Thu, 9 May 2013 18:54:28 +0000 (9 19:54 +0100)]
tests: shell . command needs path in argument

9 years agoweb: bump pre-release
Tony Finch [Thu, 9 May 2013 18:47:56 +0000 (9 19:47 +0100)]
web: bump pre-release

9 years agotests: leave the source files alone in the multi-file tests
Tony Finch [Thu, 9 May 2013 18:44:58 +0000 (9 19:44 +0100)]
tests: leave the source files alone in the multi-file tests

9 years agoMakefile: release fixes
Tony Finch [Thu, 9 May 2013 13:41:53 +0000 (9 14:41 +0100)]
Makefile: release fixes

Must include version.h for non-unix builds.  Re-jig the version
dependencies to avoid running reversion.sh twice.

9 years agoweb: bump pre-release
Tony Finch [Wed, 8 May 2013 15:51:11 +0000 (8 16:51 +0100)]
web: bump pre-release

9 years agotests: clean away more xterm gubbins
Tony Finch [Wed, 8 May 2013 15:48:49 +0000 (8 16:48 +0100)]
tests: clean away more xterm gubbins

9 years agotests: do not ship vast chunks of XTerm
Tony Finch [Wed, 8 May 2013 15:30:35 +0000 (8 16:30 +0100)]
tests: do not ship vast chunks of XTerm

By default the xterm test does nothing; if required it will download
and upack xterm in order to run the full test. It is likely to break
when a new version of xterm is released since the download URL is
not versioned.

9 years agoscripts: fold long lines in the Changelog
Tony Finch [Wed, 8 May 2013 15:08:49 +0000 (8 16:08 +0100)]
scripts: fold long lines in the Changelog

9 years agoscripts: compress releases with xz as well as gzip
Tony Finch [Wed, 8 May 2013 14:58:15 +0000 (8 15:58 +0100)]
scripts: compress releases with xz as well as gzip

9 years agoweb: bump pre-release
Tony Finch [Wed, 8 May 2013 14:02:06 +0000 (8 15:02 +0100)]
web: bump pre-release

9 years agoCOPYING: note part of XTerm is used in the tests
Tony Finch [Wed, 8 May 2013 14:01:17 +0000 (8 15:01 +0100)]
COPYING: note part of XTerm is used in the tests

9 years agotests: check recursive definitions, and unifdefall xterm
Tony Finch [Wed, 8 May 2013 13:56:23 +0000 (8 14:56 +0100)]
tests: check recursive definitions, and unifdefall xterm

The xterm test is my original motivation for unifdef.
The OPT_PTY_HANDSHAKE definition relies on indirection
and without that feature unifdefall cannot remove all
preprocessor conditional directives.

9 years agounifdef: further debugging improvements
Tony Finch [Wed, 8 May 2013 13:46:53 +0000 (8 14:46 +0100)]
unifdef: further debugging improvements

9 years agounifdef: improve indirect macro definitions
Tony Finch [Wed, 8 May 2013 12:47:07 +0000 (8 13:47 +0100)]
unifdef: improve indirect macro definitions

Note in the debug output when a macro value is updated.

Do not change a macro from defined to undefined.

Recursive definitions no longer cause a loop.

9 years agoweb: pre-release
Tony Finch [Wed, 8 May 2013 12:30:37 +0000 (8 13:30 +0100)]
web: pre-release

9 years agoscripts: include release tags and renames in Changelog
Tony Finch [Wed, 8 May 2013 12:19:31 +0000 (8 13:19 +0100)]
scripts: include release tags and renames in Changelog

9 years agoweb: improve example uses, and add UIT
Tony Finch [Wed, 8 May 2013 12:10:11 +0000 (8 13:10 +0100)]
web: improve example uses, and add UIT

9 years agounifdef.1: document indirection, and refer to macros not symbols
Tony Finch [Wed, 8 May 2013 11:56:45 +0000 (8 12:56 +0100)]
unifdef.1: document indirection, and refer to macros not symbols

Trying to be more consistent with terminology from the C standard.