aboutsummaryrefslogtreecommitdiff
path: root/scripts/guile-doc-snarf
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2001-12-06 17:36:21 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2001-12-06 17:36:21 +0000
commit9339b8ad47f5ae70ac1567a3b87caadd78ed022a (patch)
tree46ee93b378bebbef132154a237a735cf3eb4f7d8 /scripts/guile-doc-snarf
downloadgamma-9339b8ad47f5ae70ac1567a3b87caadd78ed022a.tar.gz
gamma-9339b8ad47f5ae70ac1567a3b87caadd78ed022a.tar.bz2
Initial revision
Diffstat (limited to 'scripts/guile-doc-snarf')
-rwxr-xr-xscripts/guile-doc-snarf57
1 files changed, 57 insertions, 0 deletions
diff --git a/scripts/guile-doc-snarf b/scripts/guile-doc-snarf
new file mode 100755
index 0000000..16f739c
--- /dev/null
+++ b/scripts/guile-doc-snarf
@@ -0,0 +1,57 @@
+#! /bin/sh
+# Extract the initialization actions for builtin things.
+#
+# Copyright (C) 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
+#
+## For some obscure reason, the original guile-doc-snarf distributed
+## with guile up to version 1.4, passes guile-func-name-check
+## to awk without absolute path spec. Consequently the script bails
+## out unless guile-func-name-check is in the current directory.
+## This version assumes that both scripts live in the same directory
+## and deduces the path to guile-func-name-check from the own pathname.
+## --gray
+
+fullfilename=$1; shift
+
+# strip path to source directory
+filename=`basename $fullfilename`
+
+# we need to be sure that the .x file exists
+# since the .c/.cc file may include it
+# (the old guile-snarf did not have this problem
+# because the makefile redirects output to the .x file
+# which creates the file before the inclusion occurs)
+# --12/12/99 gjb
+no_ext=`echo $filename | sed 's/\.[^.]*$//g'`
+dot_doc=${no_ext}.doc
+
+temp="/tmp/snarf.$$"
+trap "rm -f $temp" 0 1 2 15
+
+## Let the user override the preprocessor & awk autoconf found.
+test -n "${CPP+set}" || CPP="gcc -E"
+test -n "${AWK+set}" || AWK="gawk"
+
+## Must run guile-func-name-check on the unpreprocessed source
+${AWK} -f `dirname $0`/guile-func-name-check "$fullfilename"
+
+## We must use a temporary file here, instead of a pipe, because we
+## need to know if CPP exits with a non-zero status.
+${CPP} -DSCM_MAGIC_SNARFER "$@" > ${temp} || exit $?
+cat ${temp} | sed 's/^\(.\{128\}.\{128\}.\{128\}.\{128\}.\{128\}.\{128\}.\{128\}.\{128\}\).*/\1/g' | \
+${AWK} -f `dirname $0`/guile-snarf.awk `basename ${dot_doc}`

Return to:

Send suggestions and report system problems to the System administrator.