* libguile/snarf.h: New macro `SCM_SNARF_INIT_PREFIX'. (SCM_SNARF_INIT)
Use `SCM_SNARF_INIT_PREFIX' instead of including a literal marker. If
the preprocessor echoes #define directives to its output, this will
prevent `guile-snarf' from snarfing the `SCM_SNARF_INIT' definition
itself. Reported by Mike Gran <spk121@yahoo.com>.
* libguile/guile-snarf.in (modern_snarf): Don't output anything for
lines in which only one of the magic snarfing markers is present.
Modify the `sed' program for compatibility with POSIX `sed'. The new
`sed' program is based on a version by Wolfgang Jenkner
<wjenkner@inode.at>.
* test-suite/standalone/test-guile-snarf: New tests.
* libguile/guile-snarf.in (modern_snarf): Allow programs to specify
multiple initialization actions on a single line. This makes it
possible for C programs to define multiple subrs with a single macro
invocation.
* test-suite/standalone/test-guile-snarf: Enable more tests.
* libguile/guile-snarf.in (modern_snarf): Allow several `SNARF_INIT ()'
per line. This makes it possible to write snarffing macros that
contain several `SNARF_INIT ()' invocations.
VPATH build, which is not allowed. It also isn't needed since it only
works when an output filename has been specified and in that case we
don't need to clean the input file because the output file will
already exist.
is given, use "-" as the output filename (i.e., stdout). Only 'clean'
the inputfile or remove the output file on error when the output file
name is not "-". Define the preprocessor macro SCM_MAGIC_SNARFER
while snarfing.
Add "-d" and "-D" support.
(deprecated_list): New var.
(compat_mode_clean_xxx): Delete.
(grep_deprecated): New func.
("main"): If "-d" or "-D", call `grep_deprecated'.
filter-doc-snarfage.c: new files.
* Makefile.am: add stuff to [build,] use and distribute
guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
* guile-snarf.in: grok the new snarf output.
* snarf.h: make the output both texttools- and `read'-friendly.
* guile-doc-snarf.in (bindir): reimplement in terms of guile-snarf
and guile-snarf-docs. (should also deprecate, I guess. maybe
not).
preprocessors which interpret $$$ and other markers as three
separate tokens and puts spaces in between. NOTE: We could
replace %%% etc with real identifiers. However, before the 1.4
release, we instead make minimal changes to the existing
system. (Thanks to Bernard Urban.)
guile-doc-snarf script.
* guile-doc-snarf.in, guile-doc-snarf.awk: New, simple doc
extraction system. Builds foo.x, foo.doc from foo.{c,cc}.
There are dependencies between these files and snarf.h. This
replaces guile-snarf.
* guile-snarf.in: Drop everything after $$$ for the new snarf.h
macros. This is obsoleted by guile-doc-snarf, but kept here for
now for good measure.
* Makefile.am: Added guile-doc-snarf, guile-doc-snarf.awk to
bin_SCRIPTS. Added .doc to SUFFIXES, and give rule for creating
.doc files to use guile-doc-snarf. Update the rule for creating
.x files to use guile-doc-snarf.
Richard Polton.)
Bug reports from Russ McManus:
* guile-snarf.in: If the CPP environment variable is set, use that
as the C preprocessor, instead of the preprocessor autoconf
found.
* snarf.h (SCM_PROC): Cast the function pointer passed to
scm_make_gsubr, to satisfy C++.