1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-29 00:10:21 +02:00
guile/libguile/guile-snarf-docs-texi.in
Michael Livshin c99f960518 * guile-snarf-docs.in, guile-snarf-docs-texi.in,
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).
2001-05-31 13:15:54 +00:00

60 lines
2 KiB
Bash
Executable file

#!/bin/sh
# Massage the snarfed docs to texinfo.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
srcdir=@srcdir@
bindir=`dirname $0`
bindir=`(cd $bindir; pwd)`
srcdir=`(cd $srcdir; pwd)`
temp0="/tmp/snarf.0.$$"
temp1="/tmp/snarf.1.$$"
trap "rm -f $temp0 $temp1" 0 1 2 15
# cat all the small files together:
cat "$@" > ${temp1}
## massage the arglists
# lose the SCM types and commas, and texi-quote @'s in names and args
< ${temp1} sed -e '/^arglist/s/[ ]*SCM[ ]*//g' \
-e '/^arglist/s/,/ /g' \
-e '/^arglist/s/([ ]*void[ ]*)/()/g' \
-e '/^fname/s/@/@@/g' \
-e '/^arglist/s/@/@@/g' \
> ${temp0}
# nothing to do with the docstrings
< ${temp0} sed -e 's/^string //' > ${temp1}
# we're too lame to check argpos assertions other then for straight names, so...
< ${temp1} sed -e 's/^argpos.*[(\[].*//' > ${temp0}
echo "@paragraphindent 0"
# now run the script that will generate texinfo
main='(module-ref (resolve-module '\''(scripts snarf-check-and-output-texi)) '\''main)'
apply_main="(apply $main (cdr (command-line)))"
if [ `basename ${bindir}` = libguile ]; then
GUILE_LOAD_PATH=${srcdir}/.. ${bindir}/guile -c "${apply_main}" < ${temp0}
else
${bindir}/guile -c "${apply_main}" < ${temp0}
fi