summaryrefslogtreecommitdiffstats
path: root/doc/tools
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2003-02-14 03:29:01 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2003-02-14 03:29:01 +0000
commite84c52869baf3ba40890f37887e1e0893079bdf3 (patch)
tree5fdd1e37f4c753b42bc822c931ab82fb7a62e412 /doc/tools
parent2003-02-11 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-e84c52869baf3ba40890f37887e1e0893079bdf3.tar.bz2
Merger from rtems-4-6-branch.
Diffstat (limited to 'doc/tools')
-rw-r--r--doc/tools/ChangeLog7
-rw-r--r--doc/tools/Makefile.am4
-rw-r--r--doc/tools/configure.ac7
-rw-r--r--doc/tools/src2html/.cvsignore2
-rw-r--r--doc/tools/src2html/ChangeLog11
-rw-r--r--doc/tools/src2html/Makefile.am24
-rw-r--r--doc/tools/src2html1.4a/.cvsignore2
-rw-r--r--doc/tools/src2html1.4a/ChangeLog17
-rw-r--r--doc/tools/src2html1.4a/Ctags/.cvsignore4
-rw-r--r--doc/tools/src2html1.4a/Ctags/C.c444
-rw-r--r--doc/tools/src2html1.4a/Ctags/Makefile.am9
-rw-r--r--doc/tools/src2html1.4a/Ctags/ctags.1225
-rw-r--r--doc/tools/src2html1.4a/Ctags/ctags.c265
-rw-r--r--doc/tools/src2html1.4a/Ctags/ctags.h81
-rw-r--r--doc/tools/src2html1.4a/Ctags/fortran.c155
-rw-r--r--doc/tools/src2html1.4a/Ctags/lisp.c97
-rw-r--r--doc/tools/src2html1.4a/Ctags/print.c130
-rw-r--r--doc/tools/src2html1.4a/Ctags/strerror.c6
-rw-r--r--doc/tools/src2html1.4a/Ctags/tree.c138
-rw-r--r--doc/tools/src2html1.4a/Ctags/yacc.c144
-rw-r--r--doc/tools/src2html1.4a/Ctags/z.c20
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/.cvsignore2
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/FreeBSD.hdr25
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/FreeBSD.s2h68
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/Makefile.am6
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/conf.hdr9
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/ddb.hdr6
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/i386.i386.hdr5
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/i386.include.hdr5
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/i386.isa.hdr10
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/i386.stand.hdr14
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/kern.hdr18
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/net.hdr11
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/netinet.hdr10
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/nfs.hdr7
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/stand.hdr14
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/sys.hdr6
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/ufs.hdr10
-rw-r--r--doc/tools/src2html1.4a/FreeBSD/vm.hdr9
-rw-r--r--doc/tools/src2html1.4a/Makefile.am8
-rw-r--r--doc/tools/src2html1.4a/Readme65
-rw-r--r--doc/tools/src2html1.4a/ctags-emacs/.cvsignore2
-rw-r--r--doc/tools/src2html1.4a/ctags-emacs/Makefile.am4
-rw-r--r--doc/tools/src2html1.4a/ctags-emacs/README20
-rw-r--r--doc/tools/src2html1.4a/ctags-emacs/ctagsbin145997 -> 0 bytes
-rw-r--r--doc/tools/src2html1.4a/ctags-emacs/etags.c-ada-patch424
-rw-r--r--doc/tools/src2html1.4a/ctags-wr41
-rw-r--r--doc/tools/src2html1.4a/src2html704
-rw-r--r--doc/tools/src2html1.4a/src2html.1244
-rw-r--r--doc/tools/src2html1.4a/src2html.cgi100
50 files changed, 11 insertions, 3628 deletions
diff --git a/doc/tools/ChangeLog b/doc/tools/ChangeLog
index 45eabde74d..6867819c2b 100644
--- a/doc/tools/ChangeLog
+++ b/doc/tools/ChangeLog
@@ -1,5 +1,12 @@
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+ * src2html: Remove.
+ * src2html1.4a: Remove.
+ * configure.ac: Reflect changes above.
+ * Makefile.am: Reflect changes above.
+
+2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
diff --git a/doc/tools/Makefile.am b/doc/tools/Makefile.am
index 55b8c362ba..88d9e30265 100644
--- a/doc/tools/Makefile.am
+++ b/doc/tools/Makefile.am
@@ -1,6 +1,6 @@
## $Id$
-
+ACLOCAL_AMFLAGS = -I ../../aclocal
EXTRA_DIST = word-replace2
-SUBDIRS = bmenu src2html1.4a src2html texi2www
+SUBDIRS = bmenu texi2www
diff --git a/doc/tools/configure.ac b/doc/tools/configure.ac
index d36f5fde7c..39869adf0c 100644
--- a/doc/tools/configure.ac
+++ b/doc/tools/configure.ac
@@ -4,6 +4,8 @@ AC_PREREQ(2.57)
AC_INIT([rtems-doc-tools],[_RTEMS_VERSION],[rtems-bugs@OARcorp.com])
AC_CONFIG_SRCDIR([word-replace2])
+AC_CONFIG_AUX_DIR([../..])
+RTEMS_VERSIONING
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
dnl Checks for programs.
@@ -22,11 +24,6 @@ AC_CHECK_FUNCS(strdup strstr)
AC_CONFIG_FILES([Makefile
bmenu/Makefile
-src2html/Makefile
-src2html1.4a/Makefile
-src2html1.4a/Ctags/Makefile
-src2html1.4a/FreeBSD/Makefile
-src2html1.4a/ctags-emacs/Makefile
texi2www/Makefile
])
AC_OUTPUT
diff --git a/doc/tools/src2html/.cvsignore b/doc/tools/src2html/.cvsignore
deleted file mode 100644
index 282522db03..0000000000
--- a/doc/tools/src2html/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/doc/tools/src2html/ChangeLog b/doc/tools/src2html/ChangeLog
deleted file mode 100644
index 11573d57b6..0000000000
--- a/doc/tools/src2html/ChangeLog
+++ /dev/null
@@ -1,11 +0,0 @@
-2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * Makefile.am: Remove AUTOMAKE_OPTIONS.
-
-2002-01-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * Makefile.am: Require automake-1.5.
-
-2000-08-10 Joel Sherrill <joel@OARcorp.com>
-
- * ChangeLog: New file.
diff --git a/doc/tools/src2html/Makefile.am b/doc/tools/src2html/Makefile.am
deleted file mode 100644
index 4b27430d49..0000000000
--- a/doc/tools/src2html/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# COPYRIGHT (c) 1988-2002.
-# On-Line Applications Research Corporation (OAR).
-# All rights reserved.
-#
-# $Id$
-#
-
-
-SRC2HTMLDIR = $(top_srcdir)/src2html1.4a
-
-ctags-wr: $(SRC2HTMLDIR)/ctags-wr
- cp $< $@
- chmod 755 $@
-
-ctags-new: $(SRC2HTMLDIR)/Ctags/ctags-new
- cp $< $@
-
-# EMACS ctags with Ada awareness
-ctags: $(SRC2HTMLDIR)/ctags-emacs/ctags
- cp $< $@
-
-src2html: $(SRC2HTMLDIR)/src2html
- cp $< $@
diff --git a/doc/tools/src2html1.4a/.cvsignore b/doc/tools/src2html1.4a/.cvsignore
deleted file mode 100644
index 282522db03..0000000000
--- a/doc/tools/src2html1.4a/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/doc/tools/src2html1.4a/ChangeLog b/doc/tools/src2html1.4a/ChangeLog
deleted file mode 100644
index 42d7427294..0000000000
--- a/doc/tools/src2html1.4a/ChangeLog
+++ /dev/null
@@ -1,17 +0,0 @@
-2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * Ctags/Makefile.am: Remove AUTOMAKE_OPTIONS.
- * Makefile.am: Remove AUTOMAKE_OPTIONS.
- * FreeBSD/Makefile.am: Remove AUTOMAKE_OPTIONS.
- * ctags-emacs/Makefile.am: Remove AUTOMAKE_OPTIONS.
-
-2002-01-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * Makefile.am: Require automake-1.5.
- * ctags-emacs/Makefile.am: Ditto.
- * FreeBSD/Makefile.am: Ditto.
- * Ctags/Makefile.am: Ditto.
-
-2000-08-10 Joel Sherrill <joel@OARcorp.com>
-
- * ChangeLog: New file.
diff --git a/doc/tools/src2html1.4a/Ctags/.cvsignore b/doc/tools/src2html1.4a/Ctags/.cvsignore
deleted file mode 100644
index 93a72f6c91..0000000000
--- a/doc/tools/src2html1.4a/Ctags/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.deps
-Makefile
-Makefile.in
-ctags-new
diff --git a/doc/tools/src2html1.4a/Ctags/C.c b/doc/tools/src2html1.4a/Ctags/C.c
deleted file mode 100644
index f091fcedad..0000000000
--- a/doc/tools/src2html1.4a/Ctags/C.c
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * Copyright (c) 1987 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)C.c 5.5 (Berkeley) 2/26/91";
-#endif /* not lint */
-
-#include <stdio.h>
-#include <string.h>
-#include "ctags.h"
-
-static int func_entry(), str_entry();
-static void hash_entry();
-
-/*
- * c_entries --
- * read .c and .h files and call appropriate routines
- */
-c_entries()
-{
- extern int tflag; /* -t: create tags for typedefs */
- register int c, /* current character */
- level; /* brace level */
- register char *sp; /* buffer pointer */
- int token, /* if reading a token */
- t_def, /* if reading a typedef */
- t_level; /* typedef's brace level */
- char tok[MAXTOKEN]; /* token buffer */
- int st; /* Symbol type */
- int rparen; /* State of last rparen */
-
- lineftell = ftell(inf);
- sp = tok; token = t_def = NO; t_level = -1; level = 0; lineno = 1;
- rparen=0;
- while (GETC(!=,EOF)) {
- rparen--;
- switch ((char)c) {
- /*
- * Here's where it DOESN'T handle:
- * foo(a)
- * {
- * #ifdef notdef
- * }
- * #endif
- * if (a)
- * puts("hello, world");
- * }
- */
- case '{':
- ++level;
- goto endtok;
- case '}':
- /*
- * if level goes below zero, try and fix
- * it, even though we've already messed up
- */
- if (--level < 0)
- level = 0;
- goto endtok;
-
- case '\n':
- SETLINE;
- /*
- * the above 3 cases are similar in that they
- * are special characters that also end tokens.
- */
-endtok: if (sp > tok) {
- *sp = EOS;
- token = YES;
- sp = tok;
- }
- else
- token = NO;
- continue;
-
- /* we ignore quoted strings and comments in their entirety */
- case '"':
- case '\'':
- (void)skip_key(c);
- break;
- /* We ignore everything between [] */
- case '[':
- (void)skip_key(']');
- goto storec;
-
- /*
- * comments can be fun; note the state is unchanged after
- * return, in case we found:
- * "foo() XX comment XX { int bar; }"
- */
- case '/':
- if (GETC(==,'*')) {
- skip_comment();
- continue;
- }
- (void)ungetc(c,inf);
- c = '/';
- goto storec;
-
- /* hash marks flag #define's. */
- case '#':
- if (sp == tok) {
- hash_entry();
- break;
- }
- goto storec;
-
- /*
- * if we have a current token, parenthesis on
- * level zero indicates a function.
- */
- case '(':
- if (!level && token) {
- int curline;
-
- if (sp != tok)
- *sp = EOS;
- /*
- * grab the line immediately, we may
- * already be wrong, for example,
- * foo\n
- * (arg1,
- */
- getline();
- curline = lineno;
- if (func_entry()) {
- ++level;
- pfnote(tok,curline,SY_FUN);
- } else rparen=2;
- break;
- }
- goto storec;
-
- /*
- * semi-colons indicate the end of a typedef; if we find a
- * typedef we search for the next semi-colon of the same
- * level as the typedef. Ignoring "structs", they are
- * tricky, since you can find:
- *
- * "typedef long time_t;"
- * "typedef unsigned int u_int;"
- * "typedef unsigned int u_int [10];"
- *
- * If looking at a typedef, we save a copy of the last token
- * found. Then, when we find the ';' we take the current
- * token if it starts with a valid token name, else we take
- * the one we saved. There's probably some reasonable
- * alternative to this...
- */
- case ';':
- if (t_def && level == t_level) {
- t_def = NO;
- getline();
- if (sp != tok)
- *sp = EOS;
- pfnote(tok,lineno,SY_TYP);
- break;
- }
- /*
- * Catch global variables by the fact that they end in ; or ,
- * and they are at level zero.
- */
- case ',':
- if (sp != tok) *sp = EOS;
- if (level==0 && rparen!=1) {
- pfnote(tok,lineno,SY_VAR);
- break;
- }
- goto storec;
-
- /*
- * store characters until one that can't be part of a token
- * comes along; check the current token against certain
- * reserved words.
- */
- default:
-storec: if (!intoken(c)) {
- if (sp == tok)
- break;
- *sp = EOS;
- if (tflag) {
- /* no typedefs inside typedefs */
- if (!t_def && !bcmp(tok,"typedef",8)) {
- t_def = YES;
- t_level = level;
- break;
- }
- /* catch "typedef struct" */
- if ((!t_def || t_level < level)
- && (!bcmp(tok,"struct",7)
- || !bcmp(tok,"union",6)
- || !bcmp(tok,"enum",5))) {
- /* Get type of symbol */
- st=0;
- switch (*tok) {
- case 's' : st= SY_STR; break;
- case 'u' : st= SY_UNI; break;
- case 'e' : st= SY_ENU; break;
- }
- /*
- * get line immediately;
- * may change before '{'
- */
- getline();
- if (str_entry(c,st))
- ++level;
- break;
- }
- }
- sp = tok;
- }
- else if (sp != tok || begtoken(c)) {
- *sp++ = c;
- token = YES;
- }
- continue;
- }
- sp = tok;
- token = NO;
- }
-}
-
-/*
- * func_entry --
- * handle a function reference
- */
-static
-func_entry()
-{
- register int c; /* current character */
-
- /*
- * we assume that the character after a function's right paren
- * is a token character if it's a function and a non-token
- * character if it's a declaration. Comments don't count...
- */
- (void)skip_key((int)')');
- for (;;) {
- while (GETC(!=,EOF) && iswhite(c))
- if (c == (int)'\n')
- SETLINE;
- if (intoken(c) || c == (int)'{')
- break;
- if (c == (int)'/' && GETC(==,'*'))
- skip_comment();
- else { /* don't ever "read" '/' */
- (void)ungetc(c,inf);
- return(NO);
- }
- }
- if (c != (int)'{')
- (void)skip_key((int)'{');
- return(YES);
-}
-
-/*
- * hash_entry --
- * handle a line starting with a '#'
- */
-static void
-hash_entry()
-{
- extern int dflag; /* -d: non-macro defines */
- register int c, /* character read */
- curline; /* line started on */
- register char *sp; /* buffer pointer */
- char tok[MAXTOKEN]; /* storage buffer */
-
- curline = lineno;
- for (sp = tok;;) { /* get next token */
- if (GETC(==,EOF))
- return;
- if (iswhite(c))
- break;
- *sp++ = c;
- }
- *sp = EOS;
- if (bcmp(tok,"define",6)) /* only interested in #define's */
- goto skip;
- for (;;) { /* this doesn't handle "#define \n" */
- if (GETC(==,EOF))
- return;
- if (!iswhite(c))
- break;
- }
- for (sp = tok;;) { /* get next token */
- *sp++ = c;
- if (GETC(==,EOF))
- return;
- /*
- * this is where it DOESN'T handle
- * "#define \n"
- */
- if (!intoken(c))
- break;
- }
- *sp = EOS;
- if (dflag || c == (int)'(') { /* only want macros */
- getline();
- if (c == (int)'(') pfnote(tok,curline,SY_MAC);
- else pfnote(tok,curline,SY_DEF);
- }
-skip: if (c == (int)'\n') { /* get rid of rest of define */
- SETLINE
- if (*(sp - 1) != '\\')
- return;
- }
- (void)skip_key((int)'\n');
-}
-
-/*
- * str_entry --
- * handle a struct, union or enum entry
- */
-static
-str_entry(c,st)
- register int c; /* current character */
- int st; /* type of symbol */
-{
- register char *sp; /* buffer pointer */
- int curline; /* line started on */
- char tok[BUFSIZ]; /* storage buffer */
-
- curline = lineno;
- while (iswhite(c))
- if (GETC(==,EOF))
- return(NO);
- if (c == (int)'{') /* it was "struct {" */
- return(YES);
- for (sp = tok;;) { /* get next token */
- *sp++ = c;
- if (GETC(==,EOF))
- return(NO);
- if (!intoken(c))
- break;
- }
- switch ((char)c) {
- case '{': /* it was "struct foo{" */
- --sp;
- break;
- case '\n': /* it was "struct foo\n" */
- SETLINE;
- /*FALLTHROUGH*/
- default: /* probably "struct foo " */
- while (GETC(!=,EOF))
- if (!iswhite(c))
- break;
- if (c != (int)'{') {
- (void)ungetc(c, inf);
- return(NO);
- }
- }
- *sp = EOS;
- pfnote(tok,curline,st);
- return(YES);
-}
-
-/*
- * skip_comment --
- * skip over comment
- */
-skip_comment()
-{
- register int c, /* character read */
- star; /* '*' flag */
-
- for (star = 0;GETC(!=,EOF);)
- switch((char)c) {
- /* comments don't nest, nor can they be escaped. */
- case '*':
- star = YES;
- break;
- case '/':
- if (star)
- return;
- break;
- case '\n':
- SETLINE;
- /*FALLTHROUGH*/
- default:
- star = NO;
- }
-}
-
-/*
- * skip_key --
- * skip to next char "key"
- */
-skip_key(key)
- register int key;
-{
- register int c,
- skip,
- retval;
-
- for (skip = retval = NO;GETC(!=,EOF);)
- switch((char)c) {
- case '\\': /* a backslash escapes anything */
- skip = !skip; /* we toggle in case it's "\\" */
- break;
- case ';': /* special case for yacc; if one */
- case '|': /* of these chars occurs, we may */
- retval = YES; /* have moved out of the rule */
- break; /* not used by C */
- case '\n':
- SETLINE;
- /*FALLTHROUGH*/
- default:
- if (c == key && !skip)
- return(retval);
- skip = NO;
- }
- return(retval);
-}
diff --git a/doc/tools/src2html1.4a/Ctags/Makefile.am b/doc/tools/src2html1.4a/Ctags/Makefile.am
deleted file mode 100644
index dac429f883..0000000000
--- a/doc/tools/src2html1.4a/Ctags/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-## $Id$
-
-
-noinst_PROGRAMS = ctags-new
-
-ctags_new_SOURCES = C.c ctags.c fortran.c lisp.c print.c tree.c yacc.c \
- strerror.c ctags.h
-
-EXTRA_DIST = ctags.1 z.c
diff --git a/doc/tools/src2html1.4a/Ctags/ctags.1 b/doc/tools/src2html1.4a/Ctags/ctags.1
deleted file mode 100644
index aea23f9826..0000000000
--- a/doc/tools/src2html1.4a/Ctags/ctags.1
+++ /dev/null
@@ -1,225 +0,0 @@
-.\" Ctags-new is a modified version of the ctags produced by UCB and
-.\" distributed in their BSD distributions.
-.\" You should be able to diff this version against theirs to see what I
-.\" have changed.
-.\" Warren Toomey
-.\"
-.\" Copyright (c) 1987, 1990 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)ctags.1 6.8 (Berkeley) 4/24/91
-.\"
-.Dd April 24, 1991
-.Dt CTAGS 1
-.Os BSD 4
-.Sh NAME
-.Nm ctags-new
-.Nd create a tags file
-.Sh SYNOPSIS
-.Nm ctags-new
-.Op Fl BFadtuwvx
-.Op Fl f Ar tagsfile
-.Ar name ...
-.Sh DESCRIPTION
-.Nm Ctags-new
-makes a tags file for
-.Xr ex 1
-from the specified C,
-Pascal, Fortran,
-.Tn YACC ,
-lex, and lisp sources. A tags file gives the
-locations of specified objects in a group of files. Each line of the
-tags file contains the object name, the file in which it is defined,
-and a search pattern for the object definition, separated by white-space.
-Using the
-.Ar tags
-file,
-.Xr ex 1
-can quickly locate these object
-definitions. Depending on the options provided to
-.Nm ctags-new ,
-objects will consist of subroutines, typedefs, defines, structs,
-enums and unions.
-.Bl -tag -width Ds
-.It Fl B
-use backward searching patterns
-.Pq Li ?...? .
-.It Fl F
-use forward searching patterns
-.Pq Li /.../
-(the default).
-.It Fl a
-append to
-.Ar tags
-file.
-.It Fl d
-create tags for
-.Li #defines
-that don't take arguments;
-.Li #defines
-that take arguments are tagged automatically.
-.It Fl f
-Places the tag descriptions in a file called
-.Ar tagsfile .
-The default behaviour is to place them in a file
-.Ar tags .
-.It Fl t
-create tags for typedefs, structs, unions, and enums.
-.It Fl u
-update the specified files in the
-.Ar tags
-file, that is, all
-references to them are deleted, and the new values are appended to the
-file. (Beware: this option is implemented in a way which is rather
-slow; it is usually faster to simply rebuild the
-.Ar tags
-file.)
-.It Fl v
-An index of the form expected by
-.Xr vgrind 1
-is produced on the standard output. This listing
-contains the object name, file name, and page number (assuming 64
-line pages). Since the output will be sorted into lexicographic order,
-it may be desired to run the output through
-.Xr sort 1 .
-Sample use:
-.Bd -literal -offset indent
-ctags-new \-v files \&| sort \-f > index
-vgrind \-x index
-.Ed
-.It Fl y
-Yet another output format. This produces lines with the information:
-symbol, line number, file name, type of symbol, each separated by whitespace.
-This is used by the
-.Xr src2html 1L
-program.
-.It Fl w
-suppress warning diagnostics.
-.It Fl x
-.Nm ctags-new
-produces a list of object
-names, the line number and file name on which each is defined, as well
-as the text of that line and prints this on the standard output. This
-is a simple index which can be printed out as an off-line readable
-function index.
-.El
-.Pp
-Files whose names end in
-.Nm \&.c
-or
-.Nm \&.h
-are assumed to be C
-source files and are searched for C style routine and macro definitions.
-Files whose names end in
-.Nm \&.y
-are assumed to be
-.Tn YACC
-source files.
-Files whose names end in
-.Nm \&.l
-are assumed to be lisp files if their
-first non-blank character is `;', `(', or `[',
-otherwise, they are
-treated as lex files. Other files are first examined to see if they
-contain any Pascal or Fortran routine definitions, and, if not, are
-searched for C style definitions.
-.Pp
-The tag
-.Li main
-is treated specially in C programs. The tag formed
-is created by prepending
-.Ar M
-to the name of the file, with the
-trailing
-.Nm \&.c
-and any leading pathname components removed. This
-makes use of
-.Nm ctags-new
-practical in directories with more than one
-program.
-.Pp
-Yacc and lex files each have a special tag.
-.Ar Yyparse
-is the start
-of the second section of the yacc file, and
-.Ar yylex
-is the start of
-the second section of the lex file.
-.Sh FILES
-.Bl -tag -width tags -compact
-.It Pa tags
-default output tags file
-.El
-.Sh DIAGNOSTICS
-.Nm Ctags-new
-exits with a value of 1 if an error occurred, where
-duplicate objects are not considered errors, 0 otherwise.
-.Sh SEE ALSO
-.Xr ex 1 ,
-.Xr vi 1
-.Sh BUGS
-Recognition of
-.Nm functions ,
-.Nm subroutines
-and
-.Nm procedures
-for
-.Tn FORTRAN
-and Pascal is done is a very simpleminded way. No attempt
-is made to deal with block structure; if you have two Pascal procedures
-in different blocks with the same name you lose.
-.Nm Ctags-new
-doesn't
-understand about Pascal types.
-.Pp
-The method of deciding whether to look for C, Pascal or
-.Tn FORTRAN
-functions is a hack.
-.Pp
-.Nm Ctags-new
-relies on the input being well formed, and any syntactical
-errors will completely confuse it. It also finds some legal syntax
-confusing; for example, as it doesn't understand
-.Li #ifdef Ns 's ,
-(incidentally, that's a feature, not a bug) any code with unbalanced
-braces inside
-.Li #ifdef Ns 's
-will cause it to become somewhat disoriented.
-In a similar fashion, multiple line changes within a definition will
-cause it to enter the last line of the object, rather than the first, as
-the searching pattern. The last line of multiple line
-.Li typedef Ns 's
-will similarly be noted.
-.Sh HISTORY
-The
-.Nm
-command appeared in
-.Bx 3.0 .
diff --git a/doc/tools/src2html1.4a/Ctags/ctags.c b/doc/tools/src2html1.4a/Ctags/ctags.c
deleted file mode 100644
index 08d01a2ba0..0000000000
--- a/doc/tools/src2html1.4a/Ctags/ctags.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (c) 1987 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-char copyright[] =
-"@(#) Copyright (c) 1987 The Regents of the University of California.\n\
- All rights reserved.\n";
-#endif /* not lint */
-
-#ifndef lint
-static char sccsid[] = "@(#)ctags.c 5.8 (Berkeley) 2/26/91";
-#endif /* not lint */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "ctags.h"
-
-/*
- * ctags: create a tags file
- */
-
-NODE *head; /* head of the sorted binary tree */
-
- /* boolean "func" (see init()) */
-bool _wht[0177],_etk[0177],_itk[0177],_btk[0177],_gd[0177];
-
-FILE *inf, /* ioptr for current input file */
- *outf; /* ioptr for tags file */
-
-long lineftell; /* ftell after getc( inf ) == '\n' */
-
-int lineno, /* line number of current line */
- dflag, /* -d: non-macro defines */
- tflag, /* -t: create tags for typedefs */
- wflag, /* -w: suppress warnings */
- vflag, /* -v: vgrind style index output */
- xflag, /* -x: cxref style output */
- yflag; /* -y: yet another style output */
-
-char *curfile, /* current input file name */
- searchar = '/', /* use /.../ searches by default */
- lbuf[BUFSIZ];
-
-main(argc,argv)
- int argc;
- char **argv;
-{
- extern char *optarg; /* getopt arguments */
- extern int optind;
- static char *outfile = "tags"; /* output file */
- int aflag, /* -a: append to tags */
- uflag, /* -u: update tags */
- exit_val, /* exit value */
- step, /* step through args */
- ch; /* getopts char */
- char cmd[100]; /* too ugly to explain */
-
- aflag = uflag = NO;
- while ((ch = getopt(argc,argv,"BFadf:tuwvxy")) != EOF)
- switch((char)ch) {
- case 'B':
- searchar = '?';
- break;
- case 'F':
- searchar = '/';
- break;
- case 'a':
- aflag++;
- break;
- case 'd':
- dflag++;
- break;
- case 'f':
- outfile = optarg;
- break;
- case 't':
- tflag++;
- break;
- case 'u':
- uflag++;
- break;
- case 'w':
- wflag++;
- break;
- case 'v':
- vflag++;
- case 'x':
- xflag++;
- break;
- case 'y':
- yflag++;
- break;
- case '?':
- default:
- goto usage;
- }
- argv += optind;
- argc -= optind;
- if (!argc) {
-usage: puts("Usage: ctags [-BFadtuwvx] [-f tagsfile] file ...");
- exit(1);
- }
-
- init();
-
- for (exit_val = step = 0;step < argc;++step)
- if (!(inf = fopen(argv[step],"r"))) {
- perror(argv[step]);
- exit_val = 1;
- }
- else {
- curfile = argv[step];
- find_entries(argv[step]);
- (void)fclose(inf);
- }
-
- if (head)
- if (xflag)
- put_entries(head);
- else {
- if (uflag) {
- for (step = 0;step < argc;step++) {
- (void)sprintf(cmd,"mv %s OTAGS;fgrep -v '\t%s\t' OTAGS >%s;rm OTAGS",outfile,argv[step],outfile);
- system(cmd);
- }
- ++aflag;
- }
- if (!(outf = fopen(outfile, aflag ? "a" : "w"))) {
- perror(outfile);
- exit(exit_val);
- }
- put_entries(head);
- (void)fclose(outf);
- if (uflag) {
- (void)sprintf(cmd,"sort %s -o %s",outfile,outfile);
- system(cmd);
- }
- }
- exit(exit_val);
-}
-
-/*
- * init --
- * this routine sets up the boolean psuedo-functions which work by
- * setting boolean flags dependent upon the corresponding character.
- * Every char which is NOT in that string is false with respect to
- * the pseudo-function. Therefore, all of the array "_wht" is NO
- * by default and then the elements subscripted by the chars in
- * CWHITE are set to YES. Thus, "_wht" of a char is YES if it is in
- * the string CWHITE, else NO.
- */
-init()
-{
- register int i;
- register char *sp;
-
- for (i = 0; i < 0177; i++) {
- _wht[i] = _etk[i] = _itk[i] = _btk[i] = NO;
- _gd[i] = YES;
- }
-#define CWHITE " \f\t\n"
- for (sp = CWHITE; *sp; sp++) /* white space chars */
- _wht[*sp] = YES;
-#define CTOKEN " \t\n\"'#()[]{}=-+%*/&|^~!<>;,.:?"
- for (sp = CTOKEN; *sp; sp++) /* token ending chars */
- _etk[*sp] = YES;
-#define CINTOK "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz0123456789"
- for (sp = CINTOK; *sp; sp++) /* valid in-token chars */
- _itk[*sp] = YES;
-#define CBEGIN "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"
- for (sp = CBEGIN; *sp; sp++) /* token starting chars */
- _btk[*sp] = YES;
-#define CNOTGD ",;"
- for (sp = CNOTGD; *sp; sp++) /* invalid after-function chars */
- _gd[*sp] = NO;
-}
-
-/*
- * find_entries --
- * this routine opens the specified file and calls the function
- * which searches the file.
- */
-find_entries(file)
- char *file;
-{
- register char *cp;
-
- lineno = 0; /* should be 1 ?? KB */
- if (cp = rindex(file, '.')) {
- if (cp[1] == 'l' && !cp[2]) {
- register int c;
-
- for (;;) {
- if (GETC(==,EOF))
- return;
- if (!iswhite(c)) {
- rewind(inf);
- break;
- }
- }
-#define LISPCHR ";(["
-/* lisp */ if (index(LISPCHR,(char)c)) {
- l_entries();
- return;
- }
-/* lex */ else {
- /*
- * we search all 3 parts of a lex file
- * for C references. This may be wrong.
- */
- toss_yysec();
- (void)strcpy(lbuf,"%%$");
- pfnote("yylex",lineno);
- rewind(inf);
- }
- }
-/* yacc */ else if (cp[1] == 'y' && !cp[2]) {
- /*
- * we search only the 3rd part of a yacc file
- * for C references. This may be wrong.
- */
- toss_yysec();
- (void)strcpy(lbuf,"%%$");
- pfnote("yyparse",lineno);
- y_entries();
- }
-/* fortran */ else if ((cp[1] != 'c' && cp[1] != 'h') && !cp[2]) {
- if (PF_funcs())
- return;
- rewind(inf);
- }
- }
-/* C */ c_entries();
-}
diff --git a/doc/tools/src2html1.4a/Ctags/ctags.h b/doc/tools/src2html1.4a/Ctags/ctags.h
deleted file mode 100644
index 7b28018714..0000000000
--- a/doc/tools/src2html1.4a/Ctags/ctags.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 1987 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)ctags.h 5.4 (Berkeley) 2/26/91
- */
-
-#include <strings.h>
-#define bool char
-
-#define YES 1
-#define NO 0
-#define EOS '\0'
-
-#define ENDLINE 50 /* max length of pattern */
-#define MAXTOKEN 250 /* max size of single token */
-
-#define SETLINE {++lineno;lineftell = ftell(inf);}
-#define GETC(op,exp) ((c = getc(inf)) op (int)exp)
-
-#define iswhite(arg) (_wht[arg]) /* T if char is white */
-#define begtoken(arg) (_btk[arg]) /* T if char can start token */
-#define intoken(arg) (_itk[arg]) /* T if char can be in token */
-#define endtoken(arg) (_etk[arg]) /* T if char ends tokens */
-#define isgood(arg) (_gd[arg]) /* T if char can be after ')' */
-
- /* Symbol types */
-#define SY_MAC 1 /* Preprocessor Macros */
-#define SY_DEF 2 /* Preprocessor Defines */
-#define SY_FUN 3 /* C Functions */
-#define SY_VAR 4 /* C Variables */
-#define SY_STR 5 /* C Structs */
-#define SY_UNI 6 /* C Unions */
-#define SY_TYP 7 /* C Typedefs */
-#define SY_ENU 8 /* C Enums */
-
-typedef struct nd_st { /* sorting structure */
- struct nd_st *left,
- *right; /* left and right sons */
- char *entry, /* function or type name */
- *file, /* file name */
- *pat; /* search pattern */
- int symbtype; /* Type of symbol */
- int lno; /* for -x option */
- bool been_warned; /* set if noticed dup */
-} NODE;
-
-extern FILE *inf; /* ioptr for current input file */
-extern long lineftell; /* ftell after getc( inf ) == '\n' */
-extern int lineno, /* line number of current line */
- xflag; /* -x: cxref style output */
-extern bool _wht[0177],_etk[0177],_itk[0177],_btk[0177],_gd[0177];
-extern char lbuf[BUFSIZ];
diff --git a/doc/tools/src2html1.4a/Ctags/fortran.c b/doc/tools/src2html1.4a/Ctags/fortran.c
deleted file mode 100644
index 025a204b6b..0000000000
--- a/doc/tools/src2html1.4a/Ctags/fortran.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 1987 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)fortran.c 5.5 (Berkeley) 2/26/91";
-#endif /* not lint */
-
-#include <stdio.h>
-#include <string.h>
-#include "ctags.h"
-
-static void takeprec();
-
-char *lbp; /* line buffer pointer */
-
-PF_funcs()
-{
- register bool pfcnt; /* pascal/fortran functions found */
- register char *cp;
- char tok[MAXTOKEN],
- *gettoken();
-
- for (pfcnt = NO;;) {
- lineftell = ftell(inf);
- if (!fgets(lbuf,sizeof(lbuf),inf))
- return(pfcnt);
- ++lineno;
- lbp = lbuf;
- if (*lbp == '%') /* Ratfor escape to fortran */
- ++lbp;
- for (;isspace(*lbp);++lbp);
- if (!*lbp)
- continue;
- switch (*lbp | ' ') { /* convert to lower-case */
- case 'c':
- if (cicmp("complex") || cicmp("character"))
- takeprec();
- break;
- case 'd':
- if (cicmp("double")) {
- for (;isspace(*lbp);++lbp);
- if (!*lbp)
- continue;
- if (cicmp("precision"))
- break;
- continue;
- }
- break;
- case 'i':
- if (cicmp("integer"))
- takeprec();
- break;
- case 'l':
- if (cicmp("logical"))
- takeprec();
- break;
- case 'r':
- if (cicmp("real"))
- takeprec();
- break;
- }
- for (;isspace(*lbp);++lbp);
- if (!*lbp)
- continue;
- switch (*lbp | ' ') {
- case 'f':
- if (cicmp("function"))
- break;
- continue;
- case 'p':
- if (cicmp("program") || cicmp("procedure"))
- break;
- continue;
- case 's':
- if (cicmp("subroutine"))
- break;
- default:
- continue;
- }
- for (;isspace(*lbp);++lbp);
- if (!*lbp)
- continue;
- for (cp = lbp + 1;*cp && intoken(*cp);++cp);
- if (cp = lbp + 1)
- continue;
- *cp = EOS;
- (void)strcpy(tok,lbp);
- getline(); /* process line for ex(1) */
- pfnote(tok,lineno);
- pfcnt = YES;
- }
- /*NOTREACHED*/
-}
-
-/*
- * cicmp --
- * do case-independent strcmp
- */
-cicmp(cp)
- register char *cp;
-{
- register int len;
- register char *bp;
-
- for (len = 0,bp = lbp;*cp && (*cp &~ ' ') == (*bp++ &~ ' ');
- ++cp,++len);
- if (!*cp) {
- lbp += len;
- return(YES);
- }
- return(NO);
-}
-
-static void
-takeprec()
-{
- for (;isspace(*lbp);++lbp);
- if (*lbp == '*') {
- for (++lbp;isspace(*lbp);++lbp);
- if (!isdigit(*lbp))
- --lbp; /* force failure */
- else
- while (isdigit(*++lbp));
- }
-}
diff --git a/doc/tools/src2html1.4a/Ctags/lisp.c b/doc/tools/src2html1.4a/Ctags/lisp.c
deleted file mode 100644
index 652313d4fe..0000000000
--- a/doc/tools/src2html1.4a/Ctags/lisp.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 1987 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)lisp.c 5.5 (Berkeley) 2/26/91";
-#endif /* not lint */
-
-#include <stdio.h>
-#include <string.h>
-#include "ctags.h"
-
-extern char *lbp; /* pointer shared with fortran */
-
-/*
- * lisp tag functions
- * just look for (def or (DEF
- */
-l_entries()
-{
- register int special;
- register char *cp,
- savedc;
- char tok[MAXTOKEN];
-
- for (;;) {
- lineftell = ftell(inf);
- if (!fgets(lbuf,sizeof(lbuf),inf))
- return;
- ++lineno;
- lbp = lbuf;
- if (!cicmp("(def"))
- continue;
- special = NO;
- switch(*lbp | ' ') {
- case 'm':
- if (cicmp("method"))
- special = YES;
- break;
- case 'w':
- if (cicmp("wrapper") || cicmp("whopper"))
- special = YES;
- }
- for (;!isspace(*lbp);++lbp);
- for (;isspace(*lbp);++lbp);
- for (cp = lbp;*cp && *cp != '\n';++cp);
- *cp = EOS;
- if (special) {
- if (!(cp = index(lbp,')')))
- continue;
- for (;cp >= lbp && *cp != ':';--cp);
- if (cp < lbp)
- continue;
- lbp = cp;
- for (;*cp && *cp != ')' && *cp != ' ';++cp);
- }
- else
- for (cp = lbp + 1;
- *cp && *cp != '(' && *cp != ' ';++cp);
- savedc = *cp;
- *cp = EOS;
- (void)strcpy(tok,lbp);
- *cp = savedc;
- getline();
- pfnote(tok,lineno);
- }
- /*NOTREACHED*/
-}
diff --git a/doc/tools/src2html1.4a/Ctags/print.c b/doc/tools/src2html1.4a/Ctags/print.c
deleted file mode 100644
index 1c1c545ab6..0000000000
--- a/doc/tools/src2html1.4a/Ctags/print.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 1987 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)print.c 5.4 (Berkeley) 2/26/91";
-#endif /* not lint */
-
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "ctags.h"
-
-extern char searchar; /* ex search character */
-
-/*
- * getline --
- * get the line the token of interest occurred on,
- * prepare it for printing.
- */
-getline()
-{
- register long saveftell;
- register int c,
- cnt;
- register char *cp;
-
- saveftell = ftell(inf);
- (void)fseek(inf,lineftell,SEEK_SET);
- if (xflag)
- for (cp = lbuf;GETC(!=,'\n');*cp++ = c);
- /*
- * do all processing here, so we don't step through the
- * line more than once; means you don't call this routine
- * unless you're sure you've got a keeper.
- */
- else for (cnt = 0,cp = lbuf;GETC(!=,EOF) && cnt < ENDLINE;++cnt) {
- if (c == (int)'\\') { /* backslashes */
- if (cnt > ENDLINE - 2)
- break;
- *cp++ = '\\'; *cp++ = '\\';
- ++cnt;
- }
- else if (c == (int)searchar) { /* search character */
- if (cnt > ENDLINE - 2)
- break;
- *cp++ = '\\'; *cp++ = c;
- ++cnt;
- }
- else if (c == (int)'\n') { /* end of keep */
- *cp++ = '$'; /* can find whole line */
- break;
- }
- else
- *cp++ = c;
- }
- *cp = EOS;
- (void)fseek(inf,saveftell,SEEK_SET);
-}
-
-char *symtype[]= {
- "Unknown",
- "Preprocessor macro",
- "Preprocessor define",
- "C function",
- "C variable",
- "C struct",
- "C union",
- "C typedef",
- "C enum"
-};
-
-/*
- * put_entries --
- * write out the tags
- */
-put_entries(node)
- register NODE *node;
-{
- extern FILE *outf; /* ioptr for tags file */
- extern int vflag; /* -v: vgrind style output */
- extern int yflag; /* -y: yet another style output */
-
- if (node->left)
- put_entries(node->left);
- if (vflag)
- printf("%s %s %d\n",
- node->entry,node->file,(node->lno + 63) / 64);
- else if (xflag)
- printf("%-16s %4d %-16s %s\n",
- node->entry,node->lno,node->file,node->pat);
- else if (yflag)
- printf("%-16s %4d %-16s %s\n",
- node->entry,node->lno,node->file,symtype[node->symbtype]);
- else
- fprintf(outf,"%s\t%s\t%c^%s%c\n",
- node->entry,node->file,searchar,node->pat,searchar);
- if (node->right)
- put_entries(node->right);
-}
diff --git a/doc/tools/src2html1.4a/Ctags/strerror.c b/doc/tools/src2html1.4a/Ctags/strerror.c
deleted file mode 100644
index 7a82b869bf..0000000000
--- a/doc/tools/src2html1.4a/Ctags/strerror.c
+++ /dev/null
@@ -1,6 +0,0 @@
-char *strerror(i)
- int i;
- {
- extern char *sys_errlist[];
- return sys_errlist[i];
- }
diff --git a/doc/tools/src2html1.4a/Ctags/tree.c b/doc/tools/src2html1.4a/Ctags/tree.c
deleted file mode 100644
index e82c72c404..0000000000
--- a/doc/tools/src2html1.4a/Ctags/tree.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 1987 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)tree.c 5.5 (Berkeley) 2/26/91";
-#endif /* not lint */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "ctags.h"
-
-/*
- * pfnote --
- * enter a new node in the tree
- */
-pfnote(name,ln,type)
- char *name;
- int ln;
- int type;
-{
- extern NODE *head; /* head of the sorted binary tree */
- extern char *curfile; /* current input file name */
- register NODE *np;
- register char *fp;
- char nbuf[MAXTOKEN];
-
- /*NOSTRICT*/
- if (!(np = (NODE *)malloc(sizeof(NODE)))) {
- fputs("ctags: too many entries to sort\n",stderr);
- put_entries(head);
- free_tree(head);
- /*NOSTRICT*/
- if (!(head = np = (NODE *)malloc(sizeof(NODE)))) {
- fputs("ctags: out of space.\n",stderr);
- exit(1);
- }
- }
- if (!xflag && !strcmp(name,"main")) {
- if (!(fp = rindex(curfile,'/')))
- fp = curfile;
- else
- ++fp;
- (void)sprintf(nbuf,"M%s",fp);
- fp = rindex(nbuf,'.');
- if (fp && !fp[2])
- *fp = EOS;
- name = nbuf;
- }
- if (!(np->entry = strdup(name))) {
- (void)fprintf(stderr, "ctags: %s\n", strerror(errno));
- exit(1);
- }
- np->file = curfile;
- np->lno = ln; np->symbtype= type;
- np->left = np->right = 0;
- if (!(np->pat = strdup(lbuf))) {
- (void)fprintf(stderr, "ctags: %s\n", strerror(errno));
- exit(1);
- }
- if (!head)
- head = np;
- else
- add_node(np,head);
-}
-
-add_node(node,cur_node)
- register NODE *node,
- *cur_node;
-{
- extern int wflag; /* -w: suppress warnings */
- register int dif;
-
- dif = strcmp(node->entry,cur_node->entry);
- if (!dif) {
- if (node->file == cur_node->file) {
- if (!wflag)
- fprintf(stderr,"Duplicate entry in file %s, line %d: %s\nSecond entry ignored\n",node->file,lineno,node->entry);
- return;
- }
- if (!cur_node->been_warned)
- if (!wflag)
- fprintf(stderr,"Duplicate entry in files %s and %s: %s (Warning only)\n",node->file,cur_node->file,node->entry);
- cur_node->been_warned = YES;
- }
- else if (dif < 0)
- if (cur_node->left)
- add_node(node,cur_node->left);
- else
- cur_node->left = node;
- else if (cur_node->right)
- add_node(node,cur_node->right);
- else
- cur_node->right = node;
-}
-
-free_tree(node)
- register NODE *node;
-{
- NODE *nl;
- while (node) {
- if (node->right)
- free_tree(node->right);
- nl= node->left; free(node);
- node = nl;
- }
-}
diff --git a/doc/tools/src2html1.4a/Ctags/yacc.c b/doc/tools/src2html1.4a/Ctags/yacc.c
deleted file mode 100644
index f073f2bb7c..0000000000
--- a/doc/tools/src2html1.4a/Ctags/yacc.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 1987 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)yacc.c 5.6 (Berkeley) 2/26/91";
-#endif /* not lint */
-
-#include <stdio.h>
-#include <string.h>
-#include "ctags.h"
-
-/*
- * y_entries:
- * find the yacc tags and put them in.
- */
-y_entries()
-{
- register int c;
- register char *sp;
- register bool in_rule;
- char tok[MAXTOKEN];
-
- while (GETC(!=,EOF))
- switch ((char)c) {
- case '\n':
- SETLINE;
- /* FALLTHROUGH */
- case ' ':
- case '\f':
- case '\r':
- case '\t':
- break;
- case '{':
- if (skip_key((int)'}'))
- in_rule = NO;
- break;
- case '\'':
- case '"':
- if (skip_key(c))
- in_rule = NO;
- break;
- case '%':
- if (GETC(==,'%'))
- return;
- (void)ungetc(c,inf);
- break;
- case '/':
- if (GETC(==,'*'))
- skip_comment();
- else
- (void)ungetc(c,inf);
- break;
- case '|':
- case ';':
- in_rule = NO;
- break;
- default:
- if (in_rule || !isalpha(c) && c != (int)'.'
- && c != (int)'_')
- break;
- sp = tok;
- *sp++ = c;
- while (GETC(!=,EOF) && (intoken(c) || c == (int)'.'))
- *sp++ = c;
- *sp = EOS;
- getline(); /* may change before ':' */
- while (iswhite(c)) {
- if (c == (int)'\n')
- SETLINE;
- if (GETC(==,EOF))
- return;
- }
- if (c == (int)':') {
- pfnote(tok,lineno);
- in_rule = YES;
- }
- else
- (void)ungetc(c,inf);
- }
-}
-
-/*
- * toss_yysec --
- * throw away lines up to the next "\n%%\n"
- */
-toss_yysec()
-{
- register int c, /* read character */
- state;
-
- /*
- * state == 0 : waiting
- * state == 1 : received a newline
- * state == 2 : received first %
- * state == 3 : recieved second %
- */
- lineftell = ftell(inf);
- for (state = 0;GETC(!=,EOF);)
- switch ((char)c) {
- case '\n':
- ++lineno;
- lineftell = ftell(inf);
- if (state == 3) /* done! */
- return;
- state = 1; /* start over */
- break;
- case '%':
- if (state) /* if 1 or 2 */
- ++state; /* goto 3 */
- break;
- default:
- state = 0; /* reset */
- }
-}
diff --git a/doc/tools/src2html1.4a/Ctags/z.c b/doc/tools/src2html1.4a/Ctags/z.c
deleted file mode 100644
index 4c90e6ec95..0000000000
--- a/doc/tools/src2html1.4a/Ctags/z.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#define fred 23
-#define jim(a) (a+2)
-
-int helo;
-
-struct thing {
- int v;
-} doris;
-
-union what {
- int v;
- char q;
-} mary;
-
-enum thinddd { 1,2,3,4,5 } zoo;
-
-typedef unsigned int uinty;
-
-int rain()
- { printf("Hello world\n"); }
diff --git a/doc/tools/src2html1.4a/FreeBSD/.cvsignore b/doc/tools/src2html1.4a/FreeBSD/.cvsignore
deleted file mode 100644
index 282522db03..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/doc/tools/src2html1.4a/FreeBSD/FreeBSD.hdr b/doc/tools/src2html1.4a/FreeBSD/FreeBSD.hdr
deleted file mode 100644
index 6c2f8e185c..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/FreeBSD.hdr
+++ /dev/null
@@ -1,25 +0,0 @@
-Welcome to the hyperlinked source code tree for FreeBSD-2.1.0. This is an
-attempt at a WWW document that allows you to find functions, structs
-etc. in the FreeBSD source code by name.<p>
-
-If you are interested in a particular type of symbols (e.g functions), use
-the type links below. If you are interested in a particular directory in
-FreeBSD, choose the directory link below.<p>
-
-Follow the links until you reach the source code you are interested in.<p>
-
-<h3>Bugs and Missing Features</h3>
-
-I am using ctags and perl to find the symbols and produce the html documents.
-My parsing of the ctags output (especially for variables) seems slightly
-wrong. I'd appreciate a better way of doing things.<p>
-
-The final code should have hyperlinks that allow you to follow references
-to other symbols in the tree (e.g calls to bread() etc). This is difficult
-given C's scoping rules, and I don't want to write a C grammar parser.
-Until I can think of a clean way, I'll omit the desired hyperlinks.<p>
-
-<author>
-<a href="http://minnie.cs.adfa.oz.au/warren.html">Warren Toomey</a>
-wkt@cs.adfa.oz.au, January 1996
-</author>
diff --git a/doc/tools/src2html1.4a/FreeBSD/FreeBSD.s2h b/doc/tools/src2html1.4a/FreeBSD/FreeBSD.s2h
deleted file mode 100644
index 925eefeb58..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/FreeBSD.s2h
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-#
-# Input description for the FreeBSD 2.1.0 source tree
-# Place this file and all the .hdr files in a directory,
-# cd into that directory, and say `src2html FreeBSD.s2h'.
-#
-set Formdir /cgi-bin
-set Htmldir FreeBSD-srctree
-set Htmlroot .
-set Newsrctree newsrc
-set Srctree sys
-#
-dir conf Kernel configuration parameters
-dir ddb Kernel debugging routines
-dir dev/aic7xxx Adaptec AIC7770/AIC7870 sequencer code
-dir dev/vn Vnode disk driver
-dir gnu/i386/fpemul GNU's i387 floating point emulator
-dir gnu/i386/isa Device drivers with GNU licensing
-dir gnu/isdn An ISDN driver
-dir i386/apm i386-specific power management
-dir i386/apm/apm_init i386-specific power management
-dir i386/boot/biosboot i386-specific boot code
-dir i386/boot/dosboot i386-specific boot code
-dir i386/boot/kzipboot i386-specific boot code
-dir i386/boot/netboot i386-specific boot code
-dir i386/eisa Device drivers for peripherals on the EISA bus
-dir i386/i386 i386-specific code
-dir i386/ibcs2 Intel Unix Binary Compatibility code
-dir i386/include i386-specific C-language include files
-dir i386/include/pc i386-specific C-language include files
-dir i386/isa Device drivers for peripherals on the ISA bus
-dir i386/isa/ic Device drivers for peripherals on the ISA bus
-dir i386/isa/matcd Matsushita device driver
-dir i386/isa/pcvt VT-220 emulation code
-dir i386/isa/sound Device drivers for sound peripherals on the ISA bus
-dir i386/linux Linux binaries support
-dir i386/scsi Device drivers for SCSI peripherals on the ISA bus
-dir isofs/cd9660 ISO CD9660 file-system code
-dir kern The core OS routines: processes, scheduling, syscalls
-dir libkern The kernel library
-dir miscfs/deadfs Miscellaneous file systems
-dir miscfs/devfs Miscellaneous file systems
-dir miscfs/fdesc Miscellaneous file systems
-dir miscfs/fifofs Miscellaneous file systems
-dir miscfs/kernfs Miscellaneous file systems
-dir miscfs/nullfs Miscellaneous file systems
-dir miscfs/portal Miscellaneous file systems
-dir miscfs/procfs Miscellaneous file systems
-dir miscfs/specfs Miscellaneous file systems
-dir miscfs/umapfs Miscellaneous file systems
-dir miscfs/union Miscellaneous file systems
-dir msdosfs The MS-DOS file system code
-dir net Routing and general network interfaces
-dir netccitt CCITT Networking code
-dir netinet Internet protocols
-dir netiso ISO Networking code
-dir netiso/xebec ISO Networking code
-dir netns Xerox NS Networking code
-dir nfs The Network File System
-dir pccard Interface code for PC-CARD controllers.
-dir pci Device drivers for peripherals on the PCI bus
-dir scsi Device drivers for peripherals on the SCSI bus
-dir sys Widely used C-language include files
-dir ufs/ffs The Berkeley Fast Filesystem
-dir ufs/lfs The Log Filesystem
-dir ufs/mfs The Memory Filesystem
-dir ufs/ufs The Unix Filesystem
-dir vm The Virtual Memory Management subsystem
diff --git a/doc/tools/src2html1.4a/FreeBSD/Makefile.am b/doc/tools/src2html1.4a/FreeBSD/Makefile.am
deleted file mode 100644
index 534baa84e8..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-## $Id$
-
-
-EXTRA_DIST = FreeBSD.hdr FreeBSD.s2h conf.hdr ddb.hdr i386.i386.hdr \
- i386.include.hdr i386.isa.hdr i386.stand.hdr kern.hdr net.hdr \
- netinet.hdr nfs.hdr stand.hdr sys.hdr ufs.hdr vm.hdr
diff --git a/doc/tools/src2html1.4a/FreeBSD/conf.hdr b/doc/tools/src2html1.4a/FreeBSD/conf.hdr
deleted file mode 100644
index 103742dbe2..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/conf.hdr
+++ /dev/null
@@ -1,9 +0,0 @@
-The <tt>conf</tt> directory holds miscellaneous files, such as the list of
-files which are needed/optional in the OS. The main file of concern is
-<tt>param.c</tt>, which describes the system-dependent configuration
-parameters of FreeBSD.
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-doesn't really cover this directory. It is vaguely covered in Chapter 8 of
-the "System Performance Tuning" Nutshell book by Mike Loukides.
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/ddb.hdr b/doc/tools/src2html1.4a/FreeBSD/ddb.hdr
deleted file mode 100644
index 2882f3dfa8..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/ddb.hdr
+++ /dev/null
@@ -1,6 +0,0 @@
-The <tt>ddb</tt> directory holds routines used to debug the kernel.
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-doesn't really cover this directory. However, some information has been
-presented by Kirk KcKusick and Keith Bostic in their "UNIX Kernel Internals"
-notes, which they have presented in many places in the past few years.
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/i386.i386.hdr b/doc/tools/src2html1.4a/FreeBSD/i386.i386.hdr
deleted file mode 100644
index 72ea58d1f1..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/i386.i386.hdr
+++ /dev/null
@@ -1,5 +0,0 @@
-The <tt>i386/i386</tt> directory holds the routines that deal with the Intel
-386/486 CPU in the PC architecture.
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-doesn't describe this anywhere at all, because this is machine-specific.
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/i386.include.hdr b/doc/tools/src2html1.4a/FreeBSD/i386.include.hdr
deleted file mode 100644
index 7acfb0ec1b..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/i386.include.hdr
+++ /dev/null
@@ -1,5 +0,0 @@
-The <tt>i386/include</tt> directory holds C-language include files that
-define things that are specific about the PC architecture.<p>
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-doesn't describe this anywhere at all. <p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/i386.isa.hdr b/doc/tools/src2html1.4a/FreeBSD/i386.isa.hdr
deleted file mode 100644
index ec13230f00..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/i386.isa.hdr
+++ /dev/null
@@ -1,10 +0,0 @@
-The <tt>i386/isa</tt> directory holds the routines that deal with the ISA
-I/O bus in the PC architecture.
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-doesn't describe this anywhere at all, because this is machine-specific.
-You can however glean some information from the following chapter:
-
-<dl>
-<dt> <b>Chapter 8</b>, pp 225-256 <i>Device Drivers</i>.
-</dl>
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/i386.stand.hdr b/doc/tools/src2html1.4a/FreeBSD/i386.stand.hdr
deleted file mode 100644
index c548c044b0..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/i386.stand.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-The <tt>i386/stand</tt> directory holds functions that are useful, but cannot
-be called from the kernel. For example printf() is great, but if the kernel
-called printf() it would generate a TRAP and wind up back in the kernel.<p>
-
-The functions here emulate these functions by dealing directly with the
-hardware on the system.<p>
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-covers machine-independent <tt>stand</tt> functionality in:
-
-<dl>
-<dt> <b>Chapter 13.2</b>, pg 394 <i>Bootstrapping</i>.
-</dl>
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/kern.hdr b/doc/tools/src2html1.4a/FreeBSD/kern.hdr
deleted file mode 100644
index f8ec13e4a1..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/kern.hdr
+++ /dev/null
@@ -1,18 +0,0 @@
-The <tt>kern</tt> directory holds the core functionality of FreeBSD:
-system startup, core system calls and syscall dispatching, process
-management, scheduling, signals, file descriptors, top-level filesystem
-code, interprocess communication and terminal handling.<p>
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-covers <tt>kern</tt> in:
-
-<dl>
-<dt> <b>Chapter 2</b>, pp 19-42 <i>Overview of the Kernel</i>.
-<dt> <b>Chapter 3</b>, pp 43-66 <i>Kernel Services</i>.
-<dt> <b>Chapter 4</b>, pp 69-108 <i>Process Management</i>.
-<dt> <b>Chapter 6</b>, pp 169-186 <i>I/O System Overview</i>.
-<dt> <b>Chapter 9</b>, pp 259-278 <i>Terminal Handling</i>.
-<dt> <b>Chapter 10</b>, pp 281-309 <i>Interprocess Communication</i>.
-<dt> <b>Chapter 13</b>, pp 393-411 <i>System Startup</i>.
-</dl>
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/net.hdr b/doc/tools/src2html1.4a/FreeBSD/net.hdr
deleted file mode 100644
index 59c1f67741..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/net.hdr
+++ /dev/null
@@ -1,11 +0,0 @@
-The <tt>net</tt> directory holds the network functionality of FreeBSD that
-deals with routing and generic interfaces: SLIP, PPP, Ethernet, packet
-filters.
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-covers <tt>kern</tt> in:
-
-<dl>
-<dt> <b>Chapter 11</b>, pp 311-341 <i>Network Communication</i>.
-</dl>
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/netinet.hdr b/doc/tools/src2html1.4a/FreeBSD/netinet.hdr
deleted file mode 100644
index 19cdffa577..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/netinet.hdr
+++ /dev/null
@@ -1,10 +0,0 @@
-The <tt>netinet</tt> directory holds the code for the Internet network
-protocols used in FreeBSD: TCP, IP, ICMP, ARP.<p>
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-covers <tt>netinet</tt> in:
-
-<dl>
-<dt> <b>Chapter 12</b>, pp 343-389 <i>Network Protocols</i>.
-</dl>
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/nfs.hdr b/doc/tools/src2html1.4a/FreeBSD/nfs.hdr
deleted file mode 100644
index f9aeab2bbb..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/nfs.hdr
+++ /dev/null
@@ -1,7 +0,0 @@
-The <tt>nfs</tt> directory holds the code for the Network File System.
-The code was developed from a specification of NFS from Sun Microsystems.<p>
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-doesn't cover <tt>nfs</tt>. You probably don't really want to delve into
-it too much, but there is an RFC around describing the protocol, but not
-the code here. <p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/stand.hdr b/doc/tools/src2html1.4a/FreeBSD/stand.hdr
deleted file mode 100644
index 9e7df8861f..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/stand.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-The <tt>stand</tt> directory holds functions that are useful, but cannot be
-called from the kernel. For example printf() is great, but if the kernel
-called printf() it would generate a TRAP and wind up back in the kernel.<p>
-
-The functions here emulate these functions by dealing directly with the
-hardware on the system.<p>
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-covers <tt>stand</tt> in:
-
-<dl>
-<dt> <b>Chapter 13.2</b>, pg 394 <i>Bootstrapping</i>.
-</dl>
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/sys.hdr b/doc/tools/src2html1.4a/FreeBSD/sys.hdr
deleted file mode 100644
index 2624741a87..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/sys.hdr
+++ /dev/null
@@ -1,6 +0,0 @@
-The <tt>sys</tt> directory holds C-language include files that are used
-by all parts of the FreeBSD source tree.<p>
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-doesn't cover these files specifically, but discussion of their contents
-crops up everywhere.<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/ufs.hdr b/doc/tools/src2html1.4a/FreeBSD/ufs.hdr
deleted file mode 100644
index 8cec8cddac..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/ufs.hdr
+++ /dev/null
@@ -1,10 +0,0 @@
-The <tt>ufs</tt> directory holds the code for the Berkeley Fast Filesystem,
-which is the filesystem used on locally mounted hard and floppy disks.<p>
-
-The 4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman
-covers <tt>ufs</tt> in:
-
-<dl>
-<dt> <b>Chapter 7</b>, pp 187-223 <i>The Filesystem</i>.
-</dl>
-<p>
diff --git a/doc/tools/src2html1.4a/FreeBSD/vm.hdr b/doc/tools/src2html1.4a/FreeBSD/vm.hdr
deleted file mode 100644
index 26205175a8..0000000000
--- a/doc/tools/src2html1.4a/FreeBSD/vm.hdr
+++ /dev/null
@@ -1,9 +0,0 @@
-The <tt>vm</tt> directory holds the virtual memory subsystem used by
-FreeBSD. This was derived from the VM system used in the Mach kernel,
-with the interface to the rest of the kernel rewritten. As such, it is
-not described in the
-4.3BSD Internals book by Leffler, McKusick, Karels and Quarterman,
-but it is described by Kirk KcKusick and Keith Bostic in their
-"UNIX Kernel Internals"
-notes, which they have presented in many places in the past few years.
-<p>
diff --git a/doc/tools/src2html1.4a/Makefile.am b/doc/tools/src2html1.4a/Makefile.am
deleted file mode 100644
index ee9fc2ddee..0000000000
--- a/doc/tools/src2html1.4a/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-SUBDIRS = Ctags FreeBSD ctags-emacs
-
-noinst_SCRIPTS = ctags-wr src2html src2html.cgi
-
-EXTRA_DIST = src2html.1 Readme $(noinst_SCRIPTS)
-
diff --git a/doc/tools/src2html1.4a/Readme b/doc/tools/src2html1.4a/Readme
deleted file mode 100644
index 2153411891..0000000000
--- a/doc/tools/src2html1.4a/Readme
+++ /dev/null
@@ -1,65 +0,0 @@
- src2html - Hyperlink a C source code tree using HTML, Version 1.3-alpha
-
- Warren Toomey wkt@cs.adfa.oz.au June 1995
-
-
-Src2html is a program which takes a C source tree and creates a set of
-HTML hypertext documents that allows the most important symbols in the
-source tree to be found easily. As well, a HTML version of the source
-tree is created, with the symbols given in bold font where they are defined
-in the source.
-
-
-REQUIREMENTS
-
-You will need:
-
- + Perl 4.x
- + a standard Unix sort(1) command.
- + a mkdir(1) that supports recursive creation of directories.
- src2html is configured to use `mkdir -p' to do this.
- + an egrep(1) if you're going to use the search facility.
- + httpd(1) if you're going to use the search facility.
- + Ctags-new, which is bundled with src2html, and a C compiler
- to compile it.
-
-
-INSTALLATION
-
-Extract the src2html archive, including the Ctags-new and Example directories;
-you probably have already done that. Go into the Ctags-new directory and make
-ctags-new. This should be very straight-forward.
-
-Install ctags-new and src2html in a directory on your path, make them
-executable and install their man pages as well. If your mkdir(1) uses a
-different option to -p, edit src2html to fix this.
-
-If you want to use the search facility, you need to install src2html.cgi
-in your httpd script directory, and edit it to reflect the root of your
-HTML documents, as set in DirectryRoot in conf/srm.conf.
-
-Make sure that ctags-new, src2html and src2html.cgi are executable, and
-that the latter two can find the Perl interpreter. Installation is complete.
-
-
-USING SRC2HTML
-
-Using src2html is pretty straight-forward. Print out and read the man page
-before trying anything. In the FreeBSD directory I have included the config
-file and header files for my src2html conversion of the FreeBSD-2.0.5 source
-tree; read the man page and FreeBSD/FreeBSD.s2h in tandem. The root document of
-this HTML tree is at http://minnie.cs.adfa.oz.au/FreeBSD-srctree/FreeBSD.html.
-
-
-COMMENTS AND QUESTIONS
-
-Surprisingly, src2html is reasonably fast even on large source trees. This was
-my first Perl program, so it could probably be made faster and smaller. I've
-placed comments in the source to give you an idea of what each section does. If
-you have any questions or comments, please email them to me at
-wkt@cs.adfa.oz.au. Now that it's finished I'm not that keen on overhauling it
-etc. I consider it as a good prototype. Getting inter-source hyperlinks done
-would be great, but I really don't want to write a C parser myself.
-
-Cheers,
- Warren Toomey
diff --git a/doc/tools/src2html1.4a/ctags-emacs/.cvsignore b/doc/tools/src2html1.4a/ctags-emacs/.cvsignore
deleted file mode 100644
index 282522db03..0000000000
--- a/doc/tools/src2html1.4a/ctags-emacs/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/doc/tools/src2html1.4a/ctags-emacs/Makefile.am b/doc/tools/src2html1.4a/ctags-emacs/Makefile.am
deleted file mode 100644
index f84020f37e..0000000000
--- a/doc/tools/src2html1.4a/ctags-emacs/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-## $Id$
-
-
-EXTRA_DIST = ctags etags.c-ada-patch README
diff --git a/doc/tools/src2html1.4a/ctags-emacs/README b/doc/tools/src2html1.4a/ctags-emacs/README
deleted file mode 100644
index 83415c92f4..0000000000
--- a/doc/tools/src2html1.4a/ctags-emacs/README
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# $Id$
-#
-
-Included in this directory is a patch for the file lib-src/etags.c
-from emacs-20.2. This patch and the following instructions may
-or may not work for any other emacs version.
-
-mkdir work
-tar xzf ..../emacs-20.2.tar.gz
-cd emacs-20.2/lib-src
-patch <...../etags.c-ada-patch
-cd ../..
-mkdir build
-cd build
-../emacs-20.2/configure
-cd lib-src
-gmake ctags
-
-The ctags file in this directory is a pre-compiled binary.
diff --git a/doc/tools/src2html1.4a/ctags-emacs/ctags b/doc/tools/src2html1.4a/ctags-emacs/ctags
deleted file mode 100644
index 7fc51e6e9c..0000000000
--- a/doc/tools/src2html1.4a/ctags-emacs/ctags
+++ /dev/null
Binary files differ
diff --git a/doc/tools/src2html1.4a/ctags-emacs/etags.c-ada-patch b/doc/tools/src2html1.4a/ctags-emacs/etags.c-ada-patch
deleted file mode 100644
index 7f660ce864..0000000000
--- a/doc/tools/src2html1.4a/ctags-emacs/etags.c-ada-patch
+++ /dev/null
@@ -1,424 +0,0 @@
-*** etags.c.orig Wed Aug 6 02:09:19 1997
---- etags.c Wed Nov 5 13:30:11 1997
-***************
-*** 31,37 ****
- * Francesco Potorti` (F.Potorti@cnuce.cnr.it) is the current maintainer.
- */
-
-! char pot_etags_version[] = "@(#) pot revision number is 12.11";
-
- #define TRUE 1
- #define FALSE 0
---- 31,37 ----
- * Francesco Potorti` (F.Potorti@cnuce.cnr.it) is the current maintainer.
- */
-
-! char pot_etags_version[] = "@(#) pot revision number is 12.11/patched for Ada";
-
- #define TRUE 1
- #define FALSE 0
-***************
-*** 182,193 ****
---- 182,195 ----
- char *relative_filename (), *absolute_filename (), *absolute_dirname ();
- void grow_linebuffer ();
- long *xmalloc (), *xrealloc ();
-+ char *basename_no_extension ();
-
- typedef void Lang_function ();
- /* Many compilers barf on this:
- Lang_function Asm_labels;
- so let's write it this way */
- void Asm_labels ();
-+ void Ada_funcs ();
- void C_entries ();
- void default_C_entries ();
- void plain_C_entries ();
-***************
-*** 300,305 ****
---- 302,309 ----
- bool cxref_style; /* -x: create cxref style output */
- bool cplusplus; /* .[hc] means C++, not C */
- bool noindentypedefs; /* -I: ignore indentation in C */
-+ bool packages_only; /* -P: only ada packages */
-+ bool do_filename_tags; /* -F: insert a tag for the filename */
-
- #ifdef LONG_OPTIONS
- struct option longopts[] =
-***************
-*** 330,335 ****
---- 334,341 ----
- { "update", no_argument, NULL, 'u' },
- { "version", no_argument, NULL, 'V' },
- { "vgrind", no_argument, NULL, 'v' },
-+ { "packages-only", no_argument, NULL, 'P' },
-+ { "do-filename-tags", no_argument, NULL, 'F' },
- { 0 }
- };
- #endif /* LONG_OPTIONS */
-***************
-*** 371,376 ****
---- 377,386 ----
- NULL
- };
-
-+ /* Ada code */
-+ char *Ada_suffixes [] =
-+ { "ads", "adb", "ada", NULL };
-+
- /* Note that .c and .h can be considered C++, if the --c++ flag was
- given. That is why default_C_entries is called here. */
- char *default_C_suffixes [] =
-***************
-*** 445,450 ****
---- 455,461 ----
- struct lang_entry lang_names [] =
- {
- { "asm", Asm_labels, Asm_suffixes, NULL },
-+ { "Ada", Ada_funcs, Ada_suffixes, NULL },
- { "c", default_C_entries, default_C_suffixes, NULL },
- { "c++", Cplusplus_entries, Cplusplus_suffixes, NULL },
- { "c*", Cstar_entries, Cstar_suffixes, NULL },
-***************
-*** 609,614 ****
---- 620,631 ----
- which you like.");
- }
-
-+ puts ("-P, --packages-only\n\
-+ For Ada files, generates tags entries only for packages.");
-+
-+ puts ("-F, --do-filename-tags\n\
-+ Generates a tag entry with tagname being file basename without suffix.");
-+
- puts ("-V, --version\n\
- Print the version of the program.\n\
- -h, --help\n\
-***************
-*** 816,824 ****
- char *optstring;
-
- #ifdef ETAGS_REGEXPS
-! optstring = "-aCdDf:Il:o:r:RStTi:BuvxwVhH";
- #else
-! optstring = "-aCdDf:Il:o:StTi:BuvxwVhH";
- #endif /* ETAGS_REGEXPS */
-
- #ifndef LONG_OPTIONS
---- 833,841 ----
- char *optstring;
-
- #ifdef ETAGS_REGEXPS
-! optstring = "-aCdDf:Il:o:r:RStTi:BuvxwVhHPF";
- #else
-! optstring = "-aCdDf:Il:o:StTi:BuvxwVhHPF";
- #endif /* ETAGS_REGEXPS */
-
- #ifndef LONG_OPTIONS
-***************
-*** 892,897 ****
---- 909,923 ----
- case 'T':
- typedefs = typedefs_and_cplusplus = TRUE;
- break;
-+
-+ case 'P':
-+ packages_only++;
-+ break;
-+
-+ case 'F':
-+ do_filename_tags++;
-+ break;
-+
- #if (!CTAGS)
- /* Etags options */
- case 'i':
-***************
-*** 1169,1174 ****
---- 1195,1201 ----
- if (!CTAGS)
- {
- char *filename;
-+ char *tagfilename;
-
- if (absolutefn (file))
- {
-***************
-*** 1181,1186 ****
---- 1208,1220 ----
- to the directory of the tags file. */
- filename = relative_filename (file, tagfiledir);
- }
-+ if (do_filename_tags)
-+ {
-+ tagfilename = basename_no_extension(filename);
-+ pfnote(savestr(tagfilename), FALSE, tagfilename, 0, 1, 0);
-+ free (tagfilename);
-+ }
-+
- fprintf (tagf, "\f\n%s,%d\n", filename, total_size_of_entries (head));
- free (filename);
- put_entries (head);
-***************
-*** 2954,2959 ****
---- 2988,3198 ----
- C_entries (YACC, inf);
- }
-
-+ /* ada parsing */
-+
-+ char *adbp;
-+ int apfcnt;
-+
-+ void
-+ Ada_funcs(fi)
-+ FILE *fi;
-+ {
-+ int inquote;
-+
-+ inquote = 0;
-+ lineno = 0;
-+ charno = 0;
-+ apfcnt = 0;
-+
-+ while (!feof (fi))
-+ {
-+ if (adbp == NULL || *adbp == 0)
-+ {
-+ lineno++;
-+ linecharno = charno;
-+ charno += readline (&lb, fi) + 1;
-+ adbp = lb.buffer;
-+ }
-+ if (*adbp == '-')
-+ {
-+ adbp++ ;
-+ if (*adbp == '-')
-+ {
-+ while (*adbp)
-+ adbp++;
-+ continue;
-+ }
-+ }
-+ if (*adbp == '\'')
-+ {
-+ adbp++ ;
-+ if (*adbp) adbp++;
-+ continue;
-+ }
-+ if (inquote || (*adbp == '"'))
-+ {
-+ inquote = 1;
-+ adbp++ ;
-+ while (*adbp && *adbp != '"')
-+ adbp++;
-+ if (*adbp == '"')
-+ {
-+ adbp++;
-+ inquote = 0;
-+ }
-+ continue;
-+ }
-+ while (*adbp && !begtoken(*adbp))
-+ {
-+ if ((*adbp == '-') || (*adbp == '"') || (*adbp == '\''))
-+ break;
-+ adbp++;
-+ }
-+ if ((*adbp == '-') || (*adbp == '"') || (*adbp == '\''))
-+ continue;
-+ if (*adbp == 0)
-+ continue;
-+ switch (*adbp)
-+ {
-+ case 'f':
-+ case 'F':
-+ if (adatail("function") && !packages_only)
-+ adagetit(fi, "/f");
-+ else
-+ adaskip();
-+ continue;
-+ case 'p':
-+ case 'P':
-+ if (adatail("procedure") && !packages_only)
-+ adagetit(fi, "/p");
-+ else if (adatail("package"))
-+ adagetit(fi, "/s");
-+ else
-+ adaskip();
-+ continue;
-+ case 't':
-+ case 'T':
-+ if (adatail("task") && !packages_only)
-+ adagetit(fi, "/k");
-+ else if (typedefs && adatail("type") && !packages_only)
-+ adagetit(fi, "/t");
-+ else
-+ adaskip();
-+ continue;
-+
-+ default:
-+ adaskip();
-+ continue;
-+ }
-+ }
-+ }
-+ adaskip()
-+ {
-+ while (*adbp && !endtoken(*adbp))
-+ adbp++;
-+ while (*adbp && !begtoken(*adbp))
-+ {
-+ if ((*adbp == '"') || (*adbp == '\'') || (*adbp == '-'))
-+ return;
-+ adbp++;
-+ }
-+ }
-+
-+ adatail(cp)
-+ char *cp;
-+ {
-+ register int len = 0;
-+
-+ while (*cp && (*cp == tolower(*(adbp+len))))
-+ cp++, len++;
-+ if (*cp == 0)
-+ {
-+ adbp += len;
-+ if (intoken(*adbp))
-+ return (0);
-+ else
-+ return (1);
-+ }
-+ return (0);
-+ }
-+
-+ adagetit(fi, name_qualifier)
-+ FILE *fi;
-+ char *name_qualifier;
-+
-+ {
-+ register char *cp;
-+ char c;
-+ char nambuf[BUFSIZ];
-+ char * local_name_qualifier;
-+
-+ local_name_qualifier = name_qualifier;
-+
-+ while (!feof (fi))
-+ {
-+ if (*adbp == '\0')
-+ {
-+ lineno++;
-+ linecharno = charno;
-+ charno += readline (&lb, fi) + 1;
-+ adbp = lb.buffer;
-+ }
-+ if (*adbp == '-')
-+ {
-+ adbp++ ;
-+ if (*adbp == '-')
-+ {
-+ while (*adbp)
-+ adbp++;
-+ continue;
-+ }
-+ }
-+ while (isspace(*adbp))
-+ adbp++;
-+ if (*adbp == 0)
-+ continue;
-+ if (*adbp == '-')
-+ continue;
-+ switch(*adbp)
-+ {
-+ case 'b':
-+ case 'B':
-+ if (adatail("body"))
-+ {
-+ local_name_qualifier = "/b";
-+ continue;
-+ }
-+ break;
-+
-+ case 't':
-+ case 'T':
-+ if (adatail("type"))
-+ continue;
-+ break;
-+ }
-+ if (*adbp == '"')
-+ {
-+ for (cp = adbp+1; *cp && *cp != '"'; cp++)
-+ continue;
-+ }
-+ else
-+ for (cp = adbp+1;
-+ *cp && (isalpha(*cp) || isdigit(*cp) || *cp == '_');
-+ cp++)
-+ continue;
-+ c = cp[0];
-+ cp[0] = 0;
-+ strcpy(nambuf, adbp);
-+ strcat(nambuf, local_name_qualifier);
-+ cp[0] = c;
-+ pfnote(savenstr (nambuf, strlen(nambuf)), TRUE, lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
-+ /* I am not really sure what the name is used for. */
-+ /* probably to be used to add a qualifier like /f /p /b /s /k /t */
-+ apfcnt++;
-+ return;
-+ }
-+ }
-+
- /* Fortran parsing */
-
- char *dbp;
-***************
-*** 4684,4689 ****
---- 4923,4968 ----
- return path.buffer;
- #endif /* not MSDOS */
- #endif /* not HAVE_GETCWD */
-+ }
-+
-+ /* Returna newly allocated string containing the filename
-+ of FILE without any precending directory and without
-+ extension. */
-+ char *
-+ basename_no_extension (file)
-+ char *file;
-+ {
-+ char *begin = file + strlen(file);
-+ char *end = begin;
-+ char *res, *rescp;
-+ bool in_extension;
-+
-+
-+ /* position begin at the begining of the basename
-+ end will point to the end of the basename
-+ without extension */
-+ in_extension = TRUE;
-+
-+ while (begin > file && *begin != '/')
-+ {
-+ if (*begin == '.' && in_extension)
-+ {
-+ end = begin;
-+ in_extension = FALSE;
-+ }
-+ begin--;
-+ }
-+ if (*begin == '/')
-+ begin++;
-+
-+ res = xnew(strlen(begin) - strlen(end) + 1, char);
-+ rescp = res;
-+ while (begin != end)
-+ {
-+ *rescp++ = *begin++;
-+ }
-+ *rescp = '\0';
-+ return res;
- }
-
- /* Return a newly allocated string containing the file name
diff --git a/doc/tools/src2html1.4a/ctags-wr b/doc/tools/src2html1.4a/ctags-wr
deleted file mode 100644
index d514e85cab..0000000000
--- a/doc/tools/src2html1.4a/ctags-wr
+++ /dev/null
@@ -1,41 +0,0 @@
-#! /bin/sh
-#
-# Ctags wrapper
-#
-# Invokes the version shipped with src2html for C.
-# Invokes the Ada patched GNU Emacs version for Ada.
-#
-# $Id$
-
-TOOLSBASE=/usr1/rtems/rtemsdoc-work/tools/src2html
-
-if [ ! -f ${TOOLSBASE}/ctags-new ]; then
- echo Can not find ${TOOLSBASE}/ctags-new for C programs.
- exit 1
-fi
-
-if [ ! -f ${TOOLSBASE}/ctags ]; then
- echo Can not find ${TOOLSBASE}/ctags for Ada programs.
- exit 1
-fi
-
-cfiles=`find $1 -name "*.[ch]" -o "*.inl" 2>/dev/null | grep -v "/no-"`
-adafiles=`find $1 -name "*.ad[sb]" 2>/dev/null | grep -v "/no-"`
-adafiles=`ls -1 $1/*.ad[sb] 2>/dev/null`
-
-#cfiles=`ls -1 $1/*.[ch] $1/*.inl 2>/dev/null | grep -v "/no-"`
-#adafiles=`ls -1 $1/*.ad[sb] 2>/dev/null`
-
-if [ "x${cfiles}" != x ] ; then
- ${TOOLSBASE}/ctags-new -d -t -w -y ${cfiles}
- #mv tags tags.c
-fi
-
-if [ "x${adafiles}" != x ] ; then
- ${TOOLSBASE}-src/ctags -d -t -x --no-warn ${adafiles}
-fi
-# cat tags
-#mv tags tags.ada
-#
-#cat tags.c tags.ada
-#rm -f tags.c tags.ada
diff --git a/doc/tools/src2html1.4a/src2html b/doc/tools/src2html1.4a/src2html
deleted file mode 100644
index 98d9d83d7f..0000000000
--- a/doc/tools/src2html1.4a/src2html
+++ /dev/null
@@ -1,704 +0,0 @@
-#!/usr/bin/perl
-# Src2html: Take a source tree and generate Html documents that have hyperlinks
-# to the definition of structures, variables, functions, and preprocessor
-# definitions. Read the manual page for details on how to use the program.
-#
-# Version 1.4-alpha. Written by Warren Toomey wkt@cs.adfa.oz.au
-#
-# 19th January 1996
-#
-# $Id$
-#
-
-if ($#ARGV <= 0 || $#ARGV > 4) { # Check arg count
- print(STDERR "Usage: $0 [-na] [-nl] [-d num] input_description\n");
- print(STDERR " -na: Don't produce top-level category files\n");
- print(STDERR " -nl: Don't produce per-letter files\n");
- print(STDERR " -d: Set debugging to given number (0-3)\n");
- exit(1);
-}
-
-# Set up default option values
-$NoLetters= 0;
-$NoAll= 0;
-$Debug=0;
-$Top= $ARGV[$#ARGV];
-$Top=~ s/\.s2h$//;
-
-# Parse the options
-for ($i=0; $i<= $#ARGV; $i++) {
- if ($ARGV[$i] eq "-na") { $NoAll= 1; next; }
- if ($ARGV[$i] eq "-nl") { $NoLetters= 1; next; }
- if ($ARGV[$i] eq "-d") { $i++; $Debug= $ARGV[$i]; next; }
-}
-
-$Title{"m"}= "C Macros";
-$Title{"d"}= "C Defines";
-$Title{"f"}= "C Functions";
-$Title{"v"}= "C Variables";
-$Title{"s"}= "C Structs";
-$Title{"u"}= "C Unions";
-$Title{"t"}= "C Typedefs";
-$Title{"e"}= "C Enums";
-$Title{"AdaType"}= "Ada Types";
-$Title{"AdaProcedure"}= "Ada Procedures";
-$Title{"AdaFunction"}= "Ada Functions";
-$Title{"AdaPackage"}= "Ada Packages";
-$Title{"AdaTask"}= "Ada Tasks";
-$Title{"g"}= "All symbols";
-
-&get_s2h; # Read the description file
-&make_dirs; # Make directories as needed
-&make_ctags; # Generate ctags for all src
-&parse_ctags; # Parse ctags, generate html ptr files
-foreach $i (keys(%Dirinfo))
-{ &rewrite_src($i); } # Rewrite the src code
-exit(0); # and exit
-
-
-## get_s2h: Opens the source description file, reads it, and sets up some
-## variables describing where some directories are, and the source directories
-## to process. Variables used are:
-## Srctree - The root of the source tree we are processing
-## Htmlroot - The directory where all WWW documents are kept
-## Htmldir - The directory under Htmlroot for this source tree
-## Htmltree - The root of the destination tree for the Html code
-## Newsrctree - The directory in Htmltree to store the new Htmlised code
-## Headers - The directory where we keep information to prepend in some docs
-## Formdir - The place to put the index searching script
-## Dirinfo{} - The list of dirs and the info about the directory
-## Dotdir{} - The directory name with /'s -> .'s
-
-sub get_s2h {
- $Newsrctree= 'newsrc'; # Set up as default
- $Headers= '.';
-
-
- #########################################################
- # make sure we dump out the last bit of the last file....
-
- # Print out the remainder of the
- # current file, incl. the buffered line
- if ($In_file == 1) {
- if ("$line" ne "") { print OUT $line; }
- while (<IN>) {
- s/\&/&amp;/g; s/\</&lt;/g; s/\>/&gt;/g; print OUT;
- }
- print OUT "\n\n\n\n\n\n\n\n</pre></body>\n";
- close(IN); close(OUT);
- }
- #########################################################
-
- open(S2H,$ARGV[$#ARGV]) # Open descript
- || die "$0: can't open $ARGV[$#ARGV]: $!\n";
-
- while(<S2H>) { # Read in input lines
- next if /^#/; # Skip comments
- if ( /^set\s+Srctree\s+(\S+)/ ) {
- $Srctree = $1; next; # Set the variable
- }
- if ( /^set\s+Htmlroot\s+(\S+)/ ) {
- $Htmlroot = $1; next; # Set the variable
- }
- if ( /^set\s+Htmldir\s+(\S+)/ ) {
- $Htmldir = $1; next; # Set the variable
- }
- if ( /^set\s+Newsrctree\s+(\S+)/ ) {
- $Newsrctree = $1; next; # Set the variable
- }
- if ( /^set\s+Headers\s+(\S+)/ ) {
- $Headers = $1; next; # Set the variable
- }
- if ( /^set\s+Formdir\s+(\S+)/ ) {
- $Formdir = $1; next; # Set the variable
- }
- if ( /^dir\s+(\S+)\s+(.*)/ ) {
- $Dirinfo{$1}= $2; $Dotdir{$1}=$1;
- $Dotdir{$1}=~ s/\//./g;
- next; # Get dir commands
- }
- if ( /^\n/ ) { next; } # Ignore blank lines
- # Bad input line, give warning
- chop; print "$_: Bad line, ignoring\n"; next;
- }
- close(S2H);
- if (!defined($Srctree)) { die "$0: Srctree undefined in $ARGV[$#ARGV]\n"; }
- if (!defined($Htmlroot)) { die "$0: Htmlroot undefined in $ARGV[$#ARGV]\n"; }
- if (!defined($Htmldir)) { die "$0: Htmldir undefined in $ARGV[$#ARGV]\n"; }
- $Htmltree= "$Htmlroot/$Htmldir";
-}
-
-## make_dirs: Make the directories need to store the Html documents, and also
-## check to make sure that the input directories exist. We depend upon mkdir(1)
-## having the -p option to make intermediate directories as needed.
-
-sub make_dirs {
- local($i);
-
- foreach $i (keys(%Dirinfo)) { # Check that the directories exist
- if (! -e "$Srctree/$i") {
- die "$0: Input dir $Srctree/$i doesn't exist\n";
- }
- if (! -d "$Srctree/$i") {
- die "$0: Input dir $Srctree/$i is not a directory\n";
- }
- }
- if (! -e "$Htmltree") {
- system("mkdir -p $Htmltree") && die "$0: Can't mkdir $Htmltree\n";
- }
- if (! -e "$Htmltree/$Newsrctree") {
- system("mkdir -p $Htmltree/$Newsrctree")
- && die "$0: Can't mkdir $Htmltree/$Newsrctree\n";
- }
- if (! -e "$Htmltree/ctags") {
- system("mkdir -p $Htmltree/ctags") && die "$0: Can't mkdir ctags\n";
- }
- foreach $i (keys(%Dirinfo)) {
- if (! -e "$Htmltree/$Newsrctree/$i") {
- system("mkdir -p $Htmltree/$Newsrctree/$i")
- && die "$0: Can't mkdir $Htmltree/$Newsrctree/$i\n";
- }
- }
-}
-
-## make_ctags: Process all the source code, creating the ctags files.
-## The Ctagsfile{} array is set up to hold the name of the ctags files
-## created.
-
-sub make_ctags {
- local($i);
-
- foreach $i (keys(%Dirinfo)) {
- $Ctagsfile{$i}= "$Htmltree/ctags/$Dotdir{$i}.ctags";
- if ($Debug > 0 ) { print "Generating ctags for $Ctagsfile{$i}\n"; }
- system("(cd $Srctree; /usr1/rtems/rtemsdoc-work/tools/src2html/ctags-wr $i) > $Ctagsfile{$i}")
- && print "$0: ctags failed on $Srctree/$i\n";
- }
-}
-
-
-## parse_ctags: Parse the ctags file produced by make_ctags, creating several
-## arrays of information. The arrays created are:
-## Macro{} - The name of every macro and its name lowercased
-## Def{} - The name of every define and its name lowercased
-## Func{} - The name of every function and its name lowercased
-## Var{} - The name of every variable and its name lowercased
-## Struct{} - The name of every struct and its name lowercased
-## Union{} - The name of every union and its name lowercased
-## Type{} - The name of every typedef and its name lowercased
-## Enum{} - The name of every enum and its name lowercased
-## Nfile{} - The directory in which the symbol was found
-## Nline{} - The line number where the symbol was found
-
-sub parse_ctags {
- local($i);
- local($low);
- local($count);
-
- $count = 0;
-
- foreach $i (keys(%Dirinfo)) {
- open(CTAGS,$Ctagsfile{$i}) || die "$0: Can't open $Ctagsfile{$i}, $!\n";
- if ($Debug > 0) { print "Parsing $Ctagsfile{$i} to build ptr files\n"; }
- while (<CTAGS>) {
- $count ++;
- if ( /^(\w+)\s+(\d+)\s+(\S+)\s+Preprocessor macro/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $Macro{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\s+(\d+)\s+(\S+)\s+Preprocessor define/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $Def{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\s+(\d+)\s+(\S+)\s+C struct/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $Struct{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\s+(\d+)\s+(\S+)\s+C union/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $Union{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\s+(\d+)\s+(\S+)\s+C typedef/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $Type{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\s+(\d+)\s+(\S+)\s+C enum/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $Enum{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\s+(\d+)\s+(\S+)\s+C function/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $Func{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\s+(\d+)\s+(\S+)\s+C variable/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $Var{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(return)\/.\s+(\d+)\s+(\S+)\s+.*/ ) {
- next;
- # Code like the following line results in "return" as ctag
- # "type Action is access function return Boolean;
- }
- if ( /^(\w+)\/.\s+(\d+)\s+(\S+)\s+use .*/ ) {
- next;
- # throw away lines like "use type System"
- }
-
- if ( /^(\w+)\/.\s+(\d+)\s+(\S+)\s+type .*/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $AdaType{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\/.+\s+(\d+)\s+(\S+)\s+procedure .*/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $AdaProcedure{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\/.+\s+(\d+)\s+(\S+)\s+function .*/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $AdaFunction{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\".+)\/.+\s+(\d+)\s+(\S+)\s+function .*/ ) {
- next;
- # throw away functions like "*"
- }
- if ( /^(\w+)\/.\s+(\d+)\s+(\S+)\s+package .*/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $AdaPackage{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^(\w+)\/.\s+(\d+)\s+(\S+)\s+task .*/ ) {
- ($low=$1)=~tr/A-Z_/a-z/d; $k="$low$count";
- $AdaTask{$k}=$1; $Nline{$k}= $2;
- $Nfile{$k}= $3; next;
- }
- if ( /^([\w\/]+)\s+(\d+)\s+(\S+)\s+use type .*/ ) {
- next;
- }
- if ( /^([\w\/\(]+)\s+(\d+)\s+(\S+)\s+type .*/ ) {
- next;
- }
- if ( /^;([\w\/\(]+)\s+(\d+)\s+(\S+)\s+type .*/ ) {
- next;
- }
- if ( /^\(([\w\/\(]+)\s+(\d+)\s+(\S+)\s+procedure .*/ ) {
- next;
- }
- print "$0: In Ctagsfile{$i}, don't recognise $_";
- }
- close(CTAGS);
- &make_dir_html($i);
- undef %Macro; undef %Def; undef %Func; undef %Var;
- undef %Struct; undef %Union; undef %Type; undef %Enum;
- undef %AdaType; undef %AdaProcedure; undef %AdaFunction;
- undef %AdaPackage; undef %AdaTask;
- }
- &make_top_html;
-}
-
-## make_letters_html: Make the lowest HTML documents, i.e those per-directory
-## per-type per-letter Htmls that point directly at the source code.
-## Arguments are: Dir name, prefix, title, Name/dir list
-## If the file is created, set $Exists(letter) positive, else to 0.
-
-sub make_letters_html {
- local($dir)= $_[0];
- local($pref)= $_[1];
- local($title)= $_[2];
- local(*type)= $_[3];
- local($htmlfile);
- local($let)="@";
-
- foreach $i ( "a".."z",
- "AdaType", "AdaProcedure", "AdaFunction", "AdaPackage", "AdaTask" ) {
- $Exists{$i}=0;
- }
- foreach $name (sort keys( %type )) {
- if (substr($name,0,1) ne $let) {
- if ($let ne "@") {
- print HTML "</ul></body>\n";
- close(HTML);
- $Exists{$let}= 1;
- }
- $let= substr($name, 0, 1);
- $htmlfile= "$Htmltree/$Dotdir{$dir}.$pref$let.html";
- open(HTML, "> $htmlfile") || die "$0: Can't open $htmlfile, $!\n";
-
- print HTML "<head>\n<title>$title starting with ";
- print HTML "`$let' in $dir</title>\n";
- print HTML "</head><body><h1>$title starting with ";
- print HTML "`$let' in $dir</h1><p>\n";
- print HTML "<ul>\n";
- }
- # print HTML "<li><a href=\"$Newsrctree/$Nfile{$type{$name}}";
- # print HTML ".html#$type{$name}\">$type{$name}</a> ";
- # print HTML "$Nfile{$type{$name}}:$Nline{$type{$name}}\n"; next;
-
- print HTML "<li><a href=\"$Newsrctree/$Nfile{$name}";
- print HTML ".html#$type{$name}\">$type{$name}</a> ";
- print HTML "$Nfile{$name}:$Nline{$name}\n"; next;
- }
- print HTML "</ul></body>\n";
- close(HTML);
- $Exists{$let}= 1;
-}
-
-## make_type_html: Make the type htmls. If there are <50 symbols for the
-## directory, create the per-directory per-type html document only. Otherwise
-## for every letter grep symbols, call make_lowest_letter_html, and
-## finally create the per-directory per-type html document that points only
-## at the letter files created.
-## Arguments are: Dir name, prefix, title, Name/dir list
-
-sub make_type_html {
- local($dir)= $_[0];
- local($pref)= $_[1];
- local($title)= $_[2];
- local(*type)= $_[3];
- local($i);
- local($htmlfile);
- local(@keys)= keys(%type);
- local($name);
-
- $Exists{$title}=0;
- if ( $#keys < 0 ) { return; }
- if ($Debug > 0) {
- $i= $#keys + 1;
- print "The associative array for $dir $title has $i elements\n";
- }
- if ( ($#keys < 50) || ($NoLetters == 1) ) {
- $htmlfile= "$Htmltree/$Dotdir{$dir}.$pref.html";
- open(HTML, "> $htmlfile") || die "$0: Can't open $htmlfile, $!\n";
- print HTML "<head>\n<title>$title in $dir</title>\n";
- print HTML "</head><body><h1>$title in $dir</h1>\n";
- print HTML "<ul>\n";
- foreach $name (sort keys( %type )) {
- # print HTML "<li><a href=\"$Newsrctree/$Nfile{$type{$name}}";
- # print HTML ".html#$type{$name}\">$type{$name}</a> ";
- # print HTML "$Nfile{$type{$name}}:$Nline{$type{$name}}\n"; next;
-
- print HTML "<li><a href=\"$Newsrctree/$Nfile{$name}";
- print HTML ".html#$type{$name}\">$type{$name}</a> ";
- print HTML "$Nfile{$name}:$Nline{$name}\n"; next;
- }
- print HTML "</ul></body>\n";
- close(HTML);
- $Exists{$title}=1;
- }
- else {
- &make_letters_html($dir, $pref, $title, *type);
-
- open(HTML, "> $Htmltree/$Dotdir{$dir}.$pref.html")
- || die "$0: Can't open $htmlfile.$pref.html, $!\n";
- print HTML "<head>\n<title>$title in $dir</title>\n";
- print HTML "</head><body><h1>$title in $dir</h1><p>\n";
- print HTML "<ul>\n";
-
- foreach $i ( "a".."z",
- "AdaType", "AdaProcedure", "AdaFunction", "AdaPackage", "AdaTask" ) {
- if ($Exists{$i} > 0) { # A file exists
- print HTML "<li><a href=\"$Dotdir{$dir}.$pref$i.html\">";
- print HTML "$i</a>\n"; $Exists{$title}++; $Exists{$i}=0;
- }
- }
- print HTML "</ul></body>\n";
- close(HTML);
- if ($Exists{$title} == 0) { unlink($htmlfile); }
- }
-}
-
-## asappend: Append the contents of the second associative array to the
-## first.
-
-sub asappend {
- local(*To)= $_[0];
- local(*From)= $_[1];
- local($i);
-
- foreach $i (keys(%From)) { $To{$i}= $From{$i} ; }
-}
-
-## make_dir_html: Make the html document for the directory. Use the
-## Exist{} array to determine what types to include on the document.
-## Arguments are: Dir name
-
-sub make_dir_html {
- local($dir)= $_[0];
- local($i);
- local(@keys);
-
- if ($Debug > 1) { print"In makedir, dir is $dir\n"; }
- &make_type_html($dir, "f", $Title{"f"}, *Func);
- &make_type_html($dir, "m", $Title{"m"}, *Macro);
- &make_type_html($dir, "d", $Title{"d"}, *Def);
- &make_type_html($dir, "v", $Title{"v"}, *Var);
- &make_type_html($dir, "s", $Title{"s"}, *Struct);
- &make_type_html($dir, "u", $Title{"u"}, *Union);
- &make_type_html($dir, "t", $Title{"t"}, *Type);
- &make_type_html($dir, "e", $Title{"e"}, *Enum);
- &make_type_html($dir, "AdaType", $Title{"AdaType"}, *AdaType);
- &make_type_html($dir,
- "AdaProcedure", $Title{"AdaProcedure"}, *AdaProcedure);
- &make_type_html($dir, "AdaFunction", $Title{"AdaFunction"}, *AdaFunction);
- &make_type_html($dir, "AdaPackage", $Title{"AdaPackage"}, *AdaPackage);
- &make_type_html($dir, "AdaTask", $Title{"AdaTask"}, *AdaTask);
-
- if ($NoAll != 1) {
- &asappend(*GFunc, *Func);
- &asappend(*GMacro, *Macro);
- &asappend(*GDef, *Def);
- &asappend(*GVar, *Var);
- &asappend(*GStruct, *Struct);
- &asappend(*GUnion, *Union);
- &asappend(*GType, *Type);
- &asappend(*GEnum, *Enum);
- &asappend(*GAdaType, *AdaType);
- &asappend(*GAdaProcedure, *AdaProcedure);
- &asappend(*GAdaFunction, *AdaFunction);
- &asappend(*GAdaPackage, *AdaPackage);
- &asappend(*GAdaTask, *AdaTask);
- }
-
- &asappend(*Alldir, *Func);
- &asappend(*Alldir, *Macro);
- &asappend(*Alldir, *Def);
- &asappend(*Alldir, *Var);
- &asappend(*Alldir, *Struct);
- &asappend(*Alldir, *Union);
- &asappend(*Alldir, *Type);
- &asappend(*Alldir, *Enum);
- &asappend(*Alldir, *AdaType);
- &asappend(*Alldir, *AdaProcedure);
- &asappend(*Alldir, *AdaFunction);
- &asappend(*Alldir, *AdaPackage);
- &asappend(*Alldir, *AdaTask);
-
- if ($NoLetters != 1) {
- &make_letters_html($dir, "g", $Title{"g"}, *Alldir);
- }
- undef %Alldir;
-
- open(HTML, "> $Htmltree/$Dotdir{$dir}.html")
- || die "$0: Can't open $Htmltree/$Dotdir{$dir}.html, $!\n";
- print HTML "<head>\n<title>Cross-references for $dir</title>\n";
- print HTML "</head><body><h1>Cross-references for $dir</h1><p>\n";
- if (-f "$Headers/$Dotdir{$dir}.hdr" ) {
- open(TOPHDR, "$Headers/$Dotdir{$dir}.hdr");
- while (<TOPHDR>) { print HTML; }
- close(TOPHDR);
- }
-
- if (defined($Formdir)) {
- print HTML "<hr><form action=\"$Formdir/src2html.cgi\" ";
- print HTML "method=\"POST\">\n";
- print HTML "<input type=\"submit\" value=\"Search\">\n";
- print HTML "<input type= \"text\" ";
- print HTML "name=\"$Htmldir/$Newsrctree\">\n";
- print HTML "Enter a symbol's name here to quickly find it.\n";
- print HTML "</form><hr>\n";
- }
- print HTML "<h1>Cross-references for $dir by type</h1><p><ul>\n";
-
- foreach $i ( "f","m","d","v","s","u","t","e",
- "AdaType", "AdaProcedure", "AdaFunction", "AdaPackage", "AdaTask" ) {
- if ($Exists{$Title{$i}} > 0) { # A type exists
- print HTML "<li><a href=\"$Dotdir{$dir}.$i.html\">";
- print HTML "$Title{$i}</a>\n";
- $Exists{$dir}++; $Exists{$Title{$i}}=0;
- }
- }
- print HTML "</ul><p>\n";
- if ($NoLetters != 1) {
- print HTML "<h1>Cross-references for $dir by letter</h1><p><ul>\n";
- foreach $i ( "a".."z" ) {
- if ($Exists{$i} > 0) { # A letter exists
- print HTML "<li><a href=\"$Dotdir{$dir}.g$i.html\">";
- print HTML "$i</a>\n"; $Exists{$i}=0;
- }
- }
- }
- print HTML "</ul></body>\n";
- close(HTML);
-}
-
-## Make_top_html: Make the top html document by making the ones below
-## it and then adding links to them.
-
-sub make_top_html {
- local($i);
- local(@keys);
-
- $Dotdir{$Top}=$Top;
- &make_type_html($Top, "f", $Title{"f"}, *GFunc);
- &make_type_html($Top, "m", $Title{"m"}, *GMacro);
- &make_type_html($Top, "d", $Title{"d"}, *GDef);
- &make_type_html($Top, "v", $Title{"v"}, *GVar);
- &make_type_html($Top, "s", $Title{"s"}, *GStruct);
- &make_type_html($Top, "u", $Title{"u"}, *GUnion);
- &make_type_html($Top, "t", $Title{"t"}, *GType);
- &make_type_html($Top, "e", $Title{"e"}, *GEnum);
- &make_type_html($Top, "AdaType", $Title{"AdaType"}, *GAdaType);
- &make_type_html($Top, "AdaProcedure", $Title{"AdaProcedure"}, *GAdaProcedure);
- &make_type_html($Top, "AdaFunction", $Title{"AdaFunction"}, *GAdaFunction);
- &make_type_html($Top, "AdaPackage", $Title{"AdaPackage"}, *GAdaPackage);
- &make_type_html($Top, "AdaTask", $Title{"AdaTask"}, *GAdaTask);
-
- open(HTMLTOP, "> $Htmltree/$Top.html")
- || die "$0: Can't open $Htmltree/$Top.html, $!\n";
- print HTMLTOP "<head>\n<title>Cross-references for $Top</title>\n";
- print HTMLTOP "</head><body><h1>Cross-references for $Top</h1><p>\n";
-
- if (-f "$Headers/$Top.hdr" ) {
- open(TOPHDR, "$Headers/$Top.hdr");
- while (<TOPHDR>) { print HTMLTOP; }
- close(TOPHDR);
- }
-
- if (defined($Formdir)) {
- print HTMLTOP "<hr><form action=\"$Formdir/src2html.cgi\" ";
- print HTMLTOP "method=\"POST\">\n";
- print HTMLTOP "<input type=\"submit\" value=\"Search\">\n";
- print HTMLTOP "<input type= \"text\" ";
- print HTMLTOP "name=\"$Htmldir/$Newsrctree\">\n";
- print HTMLTOP "Enter a symbol's name here to quickly find it.\n";
- print HTMLTOP "</form><hr>\n";
- }
- print HTMLTOP "<h2>Cross-references by directory</h2><p>\n";
- print HTMLTOP "<ul>\n";
-
- foreach $i (sort keys(%Dirinfo)) {
- if ($Exists{$i} > 0) { # A dir exists
- print HTMLTOP "<li><a href=\"$Dotdir{$i}.html\">";
- print HTMLTOP "$i</a> $Dirinfo{$i}\n"; $Exists{$i}=0;
- }
- }
- if ($NoAll != 1) {
- print HTMLTOP "</ul><p><h2>Cross-references by type</h2><p><ul>\n";
- foreach $i ( "f","m","d","v","s","u","t","e",
- "AdaType", "AdaProcedure", "AdaFunction", "AdaPackage", "AdaTask" ) {
- if ($Exists{$Title{$i}} > 0) { # A type exists
- print HTMLTOP "<li><a href=\"$Top.$i.html\">";
- print HTMLTOP "$Title{$i}</a>\n";
- }
- }
- if ($NoLetters != 1) {
- print HTMLTOP "</ul><p><h2>All Cross-references for $Top";
- print HTMLTOP "</h2><p><ul>\n";
- &asappend(*Alltop, *GFunc);
- &asappend(*Alltop, *GMacro);
- &asappend(*Alltop, *GDef);
- &asappend(*Alltop, *GVar);
- &asappend(*Alltop, *GStruct);
- &asappend(*Alltop, *GUnion);
- &asappend(*Alltop, *GType);
- &asappend(*Alltop, *GEnum);
- &asappend(*Alltop, *GAdaType);
- &asappend(*Alltop, *GAdaProcedure);
- &asappend(*Alltop, *GAdaFunction);
- &asappend(*Alltop, *GAdaPackage);
- &asappend(*Alltop, *GAdaTask);
-
- if ($Debug > 0) { print "Making top letters\n"; }
- &make_letters_html($Top, "g", $Title{"g"}, *Alltop);
- if ($Debug > 0) { print "Making top letters, part 2\n"; }
- foreach $i ( "a".."z" ) {
- if ($Exists{$i} > 0) {
- print HTMLTOP "<li><a href=\"$Dotdir{$Top}.g$i.html\">";
- print HTMLTOP "$i</a>\n";
- }
- }
- }
- }
- print HTMLTOP "</ul>\n";
- print HTMLTOP "<hr>This source tree was made with ";
- print HTMLTOP "<a href=\"http://minnie.cs.adfa.oz.au/Src2html/index.html";
- print HTMLTOP "\">src2html</a>.</body>\n";
- close(HTMLTOP);
-}
-
-
-## rewrite_src: Reread the ctags file for the given directory, and
-## rewrite the source code, adding in anchor points and bolding symbols.
-## This is messy as we can have multiple symbols on a single source line,
-## therefore we must buffer each line while reading from the ctags file.
-##
-sub rewrite_src {
- local($dir)= $_[0];
- local($i);
- local($file)="";
- local($line)="";
- local($symb);
- local($cnt);
- local($nextcnt);
-
- $In_file=0;
- open(CTAGS,"sort +2 -3 +1n -2 $Ctagsfile{$dir} |")
- || die "$0: Can't open sorted $Ctagsfile{$dir}, $!\n";
- if ($Debug > 0) { print "Rewriting source in $dir\n"; }
- while (<CTAGS>) {
- # Get the next file, line, symbol
- if (/^([\w\/]+)\s+(\d+)\s+([A-Za-z0-9_\+\-\.\/]+)/) {
- if ($Debug > 2) { print "Symb $1 at $2 in $3\n"; }
- $fname=$3; $nextcnt= $2; $symb=$1;
- $symb=~ s/\/.//g;
-
- # If it's in a new file
- if ("$file" ne "$fname") {
- # Print out the remainder of the
- # current file, incl. the buffered line
- if ($In_file == 1) {
- if ("$line" ne "") { print OUT $line; }
- while (<IN>) {
- s/\&/&amp;/g; s/\</&lt;/g; s/\>/&gt;/g; print OUT;
- }
- print OUT "\n\n\n\n\n\n\n\n\n\n</pre></body>\n";
- close(IN); close(OUT);
- }
- $file= "$fname";
- # Open the new file & do the preamble
- open(IN, "$Srctree/$file") ||
- print "Cannot open $Srctree/$file\n";
- open(OUT, "> $Htmltree/$Newsrctree/$file.html");
- $In_file=1;
- print OUT "<head>\n<title>$file Source</title>\n";
- print OUT "</head><body>\n";
- print OUT "<h1>Source to $file</h1>\n";
- if (defined($Formdir)) {
- print OUT "<hr><form action=\"$Formdir/src2html.cgi\" ";
- print OUT "method=\"POST\">\n";
- print OUT "<input type=\"submit\" value=\"Search\">\n";
- print OUT "<input type= \"text\" ";
- print OUT "name=\"$Htmldir/$Newsrctree\">\n";
- print OUT "Enter a symbol's name here to quickly find it.\n";
- print OUT "</form><hr>\n";
- }
- print OUT "<pre>\n";
- # Get the first line
- $cnt=1; $line = <IN>;
- $line=~ s/\&/&amp;/g;
- $line=~ s/\</&lt;/g;
- $line=~ s/\>/&gt;/g;
- }
- }
- # Print all lines until one with a symb
- while ($cnt < $nextcnt) {
- print OUT $line; $cnt++; $line= <IN>;
- $line=~ s/\&/&amp;/g;
- $line=~ s/\</&lt;/g;
- $line=~ s/\>/&gt;/g;
- }
- # Now rewrite the line
- $line=~ s/\b$symb\b/<a name="$symb"<\/a><b>$symb<\/b>/;
- next;
- }
- close(CTAGS); close(IN); close(OUT);
-}
diff --git a/doc/tools/src2html1.4a/src2html.1 b/doc/tools/src2html1.4a/src2html.1
deleted file mode 100644
index 7401859ca8..0000000000
--- a/doc/tools/src2html1.4a/src2html.1
+++ /dev/null
@@ -1,244 +0,0 @@
-.TH src2html 1L "June 1994"
-.SH NAME
-src2html \- Hyperlink a C source code tree using HTML, Version 1.3-alpha
-
-.SH SYNOPSIS
-.B src2html
-[
-.I \-na
-] [
-.I \-nl
-] [
-.I \-d debug_level
-]
-.I configuration_file
-
-.SH DESCRIPTION
-
-.B src2html
-is a program which takes a C source tree and creates a set of
-HTML hypertext documents that allows the most important symbols in the
-source tree to be found easily. As well, a HTML version of the source
-tree is created, with the symbols given in bold font where they are defined
-in the source.
-
-.B src2html
-finds and hyperlinks the following C symbols: Preprocessor defines
-and macros, C functions, global variables, structs, unions, enums and typedefs.
-If defined in the
-.I configuration file,
-a query document is used so that symbols can be located by an index query
-as well as following the hyperlinks.
-
-.SH OPTIONS
-The
-.I debug level
-was used when debugging the program, and its only use is
-to assure the user that something is actually happening, especially for large
-source trees. The highest debug level of 3 is not particularly verbose.
-.PP
-By default,
-.B src2html
-produces html pages for each category of C symbols. If there are more than
-50 in each category,
-.B src2html
-then further subdivides the symbols on a first-letter basis, making HTML
-documents for each letter.
-.PP
-If the
-.I -nl
-flag is set, no first-letter HTML documents will ever be produced.
-Similarly,
-.B src2html
-creates a top-level document with category links. If the
-.I -na
-flag is set, no top-level category links will be produced.
-
-.SH CONFIGURATION FILE
-
-.B src2html
-takes as an argument a
-.I configuration file
-which describes the directories in a source tree to process, and
-where to place the resulting HTML documents. Lines beginning with a #
-sign are ignored, as are blank lines. The following lines have special meaning:
-.P
-.IP "set Srctree source_tree"
-Set the root of the tree where the original source is kept, e.g
-/usr/src/sys. Do not leave a trailing slash on the tree name.
-This line must appear in the configuration file.
-.P
-.IP "set Htmlroot html_tree"
-Set the root of the tree where HTML documents are normally kept.
-This is the same as DocumentRoot in the httpd(1L) configuration.
-Again, do not leave a trailing slash on the tree name.
-This line must appear in the configuration file.
-.P
-.IP "set Htmldir html_dir"
-Set the directory within Htmlroot where the HTML documents for this
-tree will be placed.
-Again, do not leave a trailing slash on the tree name.
-This line must appear in the configuration file.
-.P
-.IP "set Newsrctree new_source_tree"
-Set the directory within the Htmltree where the marked up source code
-is placed, e.g src. This allows the source to be kept separate from the
-`pointer' documents which point at the source; see the next section for
-more details. This line is optional, and the default value of
-Newsrctree is `newsrc'.
-.P
-.IP "set Headers header_dir"
-.B src2html
-allows information to be placed at the beginning of the HTML
-documents created, e.g to describe the contents of a particular
-subdirectory. Files containing this information are kept in this
-directory. This line is optional, and the default value of
-Headers is `.'.
-.P
-.IP "set Formdir form_dir"
-If set, this tells
-.B src2html
-that the active HTML document which can
-perform index lookups for the source tree is located in this
-directory. If not set,
-.B src2html
-will not put query boxes in the
-HTML documents created. This line is optional, and there is no
-default value.
-.P
-.IP "dir directory comments_about_the_dir"
-This line may appear may times, and tells
-.B src2html
-to process
-source files in the directory Srctree/dir. This allows only particular
-sections of the source tree to be marked up. The comments after the
-directory are placed in the top-level HTML document to explain
-what that directory contains.
-
-.SH DIRECTORY STRUCTURE
-
-.B src2html
-expects to be given a source tree to process, and it produces
-a new tree with HTML documents. The configuration file should have a suffix
-of `.s2h', although this is strictly not needed.
-
-As an example, consider the following configuration file named BSD.s2h:
-.PP
-.nf
-# Comments
-set Srctree /usr/src/sys
-set Htmltree /usr/local/WWW
-set Htmldir sys
-set Newsrctree newsrc # Comments here too
-set Headers /home/staff/warren/sys_headers
-set Formdir /cgi
-dir kern The core OS routines: processes, scheduling, syscalls
-dir sys Widely used C-language include files
-dir i386/isa Device drivers for peripherals on the ISA bus
-.fi
-.PP
-Three directories containing C source will be processed,
-.nf
- /usr/src/sys/kern,
- /usr/src/sys/sys and
- /usr/src/sys/i386/isa
-.fi
-
-The resulting marked up source code will be placed in
-.nf
- /usr/local/WWW/sys/newsrc/kern,
- /usr/local/WWW/sys/newsrc/sys and
- /usr/local/WWW/sys/newsrc/i386/isa
-.fi
-respectivey.
-.PP
-The directory /usr/local/WWW/sys will itself contain a set of pointer
-documents which point to the source code documents on a per-directory,
-per-symbol-type and per-first-letter basis (and combinations of the
-above). One file, BSD.html (named from the configuration file name), is the
-root of the hyperlinks, and the entire source tree can be browsed from this
-one document.
-
-.SH HEADER FILES
-
-.B src2html
-creates a root HTML document, and HTML documents for each directory
-named in the configuration file. Textual information can be placed in the
-head of these documents to describe the contents of the tree/directory,
-give references etc. The files that hold this information are kept in the
-Headers directory. Taking the above configuration file as an example,
-
- /home/staff/warren/sys_headers/BSD.hdr
- /home/staff/warren/sys_headers/kern.hdr
- /home/staff/warren/sys_headers/sys.hdr
- /home/staff/warren/sys_headers/i386.isa.hdr
-
-can hold the information to be placed in the head of the appropriate
-documents. Note that if a directory name has a slash as given in the
-configuration file, the name of the header file has a dot instead.
-.PP
-Header files are placed `as is' into the head of the document, and thus
-can contain HTML markup commands. Any and all header files are optional;
-if the file does not exist, nothing will be placed in the head of the
-appropriate HTML document.
-.PP
-Once
-.B src2html
-has completed, the header files may be removed. However,
-you may wish to keep them in case you ever need to re-run
-.B src2html
-on the same source tree.
-
-.SH SEARCH SCRIPT
-
-During execution,
-.B src2html
-builds a ctags directory in Htmltree and places
-the output of ctags-new(1L) on the source tree directories in this place.
-This information is needed if a search script is also requested.
-.PP
-If the Formdir is set in the configuration file,
-.B src2html
-will configure the HTML code produced to use the search script
-.I src2html.cgi
-to search for symbols in the source tree. This script
-conforms to the cgi query format as used by httpd(1). You must move the
-supplied
-.I src2html.cgi
-file into the Formdir in the httpd hierachy before the query functionality
-can be used.
-.PP
-Again, from the example configuration file above,
-/usr/local/httpd/cgi/src2html.cgi is where to place the script, if the
-httpd hierachy is kept in /usr/local/httpd.
-
-.SH EXAMPLE SOURCE TREE
-
-The output from
-.B src2html
-for the full FreeBSD 2.0.5 kernel source directory can be browsed
-from the Web page http://minnie.cs.adfa.oz.au/FreeBSD-srctree/FreeBSD.html.
-
-.SH BUGS AND SHORTCOMINGS
-
-.B src2html
-uses the ctags-new(1L) program, which does not correctly parse C variable
-declarations and function pointer usage. Someone should rewrite this in Perl.
-.PP
-Ideally,
-.B src2html
-should include hyperlinks within each source file,
-but this is difficult given C's scoping rules, and would need a more
-sophisticated parser than ctags(1L).
-.PP
-.B src2html
-looks at all files in the named source directories, including
-files that don't end in .c and .h. This may be construed as a feature.
-
-.SH SEE ALSO
-.PD
-ctags-new(1L), httpd(1L), perl(1L)
-
-.SH AUTHOR
-.PD
-Warren Toomey wkt@cs.adfa.oz.au
diff --git a/doc/tools/src2html1.4a/src2html.cgi b/doc/tools/src2html1.4a/src2html.cgi
deleted file mode 100644
index cfc93d4134..0000000000
--- a/doc/tools/src2html1.4a/src2html.cgi
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/local/bin/perl
-#
-# src2html.cgi -- A search script to file symbols in a src2html tree.
-# You need to install this in your httpd script directory AND set the
-# httpd web root below.
-#
-# We need the cgi-lib.pl package to be available to Perl
-require 'cgi-lib.pl';
-#
-## We MUST know the root of the httpd server, so we can find the ctags
-##
-#
-$Http_root= "/usr/pub/pub/www";
-
- # Parse input -> %in
-&ReadParse; # and print first 2 lines
-
-@keys= keys(%in); # We only expect one name/val pair
-if ($#keys != 0) { # Otherwise, return an error document
- print <<"query_error";
-Content-type: text/html
-
- <header><title>Query Error</title></header><body>
- <h1>Query Error</h1>
- The document you used to query this source tree has an error in it.
- You should email the maintainer of the source tree with a copy of the
- document with the query form in it.
- </body>
-query_error
- exit(1);
-}
- # Given the name, determine which tree
-$Htmltree= "$Http_root/$keys[0]";
-$Htmltree=~ s/\/[^\/]*$//; # Location of the Html tree root
-$Srctree= "/$keys[0]"; # URL of the actual source
-$Ctags= "$Htmltree/ctags"; # Location of the ctags files
-
-@symbol= split(/\s+/, $in{$keys[0]}); # Get one symbol to search for
-
-if ($#symbol != 0) { # Hmm, <> 1 symbol, return an error
- print <<"symbol_error";
-Content-type: text/html
-
- <header><title>$Htmltree Search Error</title></header><body>
- <h1>$Htmltree Search Error</h1>
- Hmm, you either sent in no symbols to me to search, or a number of
- symbols to find, separated by whitespace.<p>
- The search function can only handle regexp expressions with no
- whitespace. Try resubmitting your query.
- </body>
-symbol_error
- exit(1);
-}
- # Let's go to work, egrep the ctags
-
-# Naftali Schwartz (nschwart@SLINKY.CS.NYU.EDU) reports that using the ^
-# on the following line stops the script from working under SunOS 4.1.3.
-# Sounds like ctags-new doesn't start the symbol in the 1st column.
-open(IN, "cat $Ctags/* | egrep ^$symbol[0] |") || die "$0: egrep failed\n";
-$cnt=0;
-while(<IN>) {
- ($sym, $line, $file, $com)= split(/\s+/);
- $Sym[$cnt]=$sym; $Line[$cnt]= $line; $File[$cnt]= $file; $cnt++;
-}
-close(IN);
- # How many did we get? Zero, no symbol
-if ($cnt == 0) {
- print <<"symbol_missing";
-Content-type: text/html
-
- <header><title>$Htmltree Search Error</title></header><body>
- <h1>$Htmltree Search Error</h1>
- The symbol $symbol[0] does not appear in the source tree.
- </body>
-symbol_missing
- exit(1);
-}
-
-if ($cnt == 1) { # Exactly one, return ptr to that doc
- print "Location: $Srctree/$File[0]";
-
-# I used to use the commented out line under NCSA httpd because the other
-# line didn't work. You may need to try things out on your server.
- print ".html\#$Sym[0]\n\n";
-# print ".html\n\n";
- exit(0);
-}
- # Else return a list of choices
-print <<"many_found";
-Content-type: text/html
-
-<header><title>$Htmltree Search</title></header><body>
-<h1>$Htmltree Search</h1><ul>
-many_found
-for ($i = 0; $i < $cnt; $i++) {
- print "<li><a href= \"$Srctree/$File[$i]";
- print ".html#$Sym[$i]\">$Sym[$i]</a> $File[$i]:$Line[$i]\n";
-}
-print "</ul></body>\n";
-exit(0);