Global v2.24

This commit is contained in:
Chris Timmons 1998-02-02 05:38:11 +00:00
parent dde39e507a
commit 0823b5bf08
34 changed files with 321 additions and 108 deletions

77
contrib/global/COPYING Normal file
View file

@ -0,0 +1,77 @@
@@@@@@@=
@= @=
@= @=
@= @= @@@@@= @@@@@@= @@= @=
@= F o r a l l h a c k e r s. @=@= @=
@= @@@@@@=@= @= @= @@@@@= @= @= @=
@= @= @= @= @= @= @= @@@@@= @=
@= @= @= @= @= @= @=@= @= @=
@@@@@@@@= @@@@= @@@@@= @@@@@@=@@@= @@@@= @@@@@@=
This software is covered by the following:
Copyright (c) 1996, 1997, 1998 Shigio Yamaguchi. 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 Shigio Yamaguchi.
4. Neither the name of the author nor the names of any co-contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
Portions of gozilla(1) are covered by the following:
Copyright 1996 Netscape Communications Corporation, all rights reserved.
Created: Jamie Zawinski <jwz@netscape.com>, 24-Dec-94.
Permission to use, copy, modify, distribute, and sell this software and
its documentation for any purpose is hereby granted without fee, provided
that the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting documen-
tation. No representations are made about the suitability of this soft-
ware for any purpose. It is provided "as is" without express or implied
warranty.
Copyright 1991 by Andreas Stolcke
Copyright 1990 by Solbourne Computer Inc.
Longmont, Colorado
All Rights Reserved.
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Solbourne not be used
in advertising in publicity pertaining to distribution of the software
without specific, written prior permission.
ANDREAS STOLCKE AND SOLBOURNE COMPUTER INC. DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MER-
CHANTABILITY AND FITNESS, IN NO EVENT SHALL ANDREAS STOLCKE OR SOL-
BOURNE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.

View file

@ -1,11 +1,11 @@
GLOBAL history
--------------
version 1.0 initial version [21-Apr-96]
version 1.0 Initial version [21-Apr-96]
global, gtags, btreeop, extended ctags.
version 1.1 only bugfix [2-May-96]
version 1.1 Only bugfix [2-May-96]
[fixed bug]
global - makes corrupted path name by conversion error.
@ -16,7 +16,7 @@ version 1.1 only bugfix [2-May-96]
to be a function name. With the result that GRTAGS becomes
too large.
version 1.2 support of 1.34 nvi [7-Jun-96]
version 1.2 Support of 1.34 nvi [7-Jun-96]
[changed]
extended ctags
@ -28,7 +28,7 @@ version 1.2 support of 1.34 nvi [7-Jun-96]
extended vi
- VI tag support.
version 1.3 support of GTAGSLIBPATH [28-Jul-96]
version 1.3 Support of GTAGSLIBPATH [28-Jul-96]
[changed]
global - search not only in a source tree but also in library paths
@ -36,7 +36,7 @@ version 1.3 support of GTAGSLIBPATH [28-Jul-96]
extended ctags
- change print format a little when -x option
version 1.4 support of yacc source file [26-Oct-96]
version 1.4 Support of yacc source file [26-Oct-96]
[changed]
extended ctags
@ -46,7 +46,7 @@ version 1.4 support of yacc source file [26-Oct-96]
(original only 3rd part)
* no longer considers a yacc rule to be an object.
version 1.5 hypertext generator [12-Dec-96]
version 1.5 Hypertext generator [12-Dec-96]
[fixed bug]
gtags - treat 'y.tab.c' as a C source.(we should treat only *.y)
@ -58,7 +58,7 @@ version 1.5 hypertext generator [12-Dec-96]
htags - new command (hypertext generator of C source file)
gtags - error check code added.
version 1.6 support of 1.76 nvi and reconstruction for other OS [21-Jan-97]
version 1.6 Support of 1.76 nvi and reconstruction for other OS [21-Jan-97]
[changed]
htags - cease using <BLOCKQUOTE> because lynx doesn't understand it.
@ -82,7 +82,7 @@ version 1.6 support of 1.76 nvi and reconstruction for other OS [21-Jan-97]
global - -a option added.
version 1.7 make suitable for large project (mainly FreeBSD kernel) [17-Feb-97]
version 1.7 Make suitable for large project (mainly FreeBSD kernel) [17-Feb-97]
[changed]
htags - htags no longer makes frame.html. Index.html offers frame
@ -103,7 +103,7 @@ version 1.7 make suitable for large project (mainly FreeBSD kernel) [17-Feb-97]
- script to make all tags (GTAGS,GRTAGS,HTML) for kernel source.
(it is only for FreeBSD and Linux)
version 1.8 fix some bugs, add options and make more portable [5-Apr-97]
version 1.8 Fix some bugs, add options and make more portable [5-Apr-97]
[changed]
gctags, btreeop, Makefile
@ -135,7 +135,7 @@ version 1.8 fix some bugs, add options and make more portable [5-Apr-97]
htags - -d tagdir option added.
- -w option added.
version 1.81 make global to understand 'obj' directory [14-Apr-97]
version 1.81 Make global to understand 'obj' directory [14-Apr-97]
[fixed bug]
extended vi
@ -144,7 +144,7 @@ version 1.81 make global to understand 'obj' directory [14-Apr-97]
global
- can find tag file in obj directory.
version 1.9 support of 1.79 nvi and some additional options [21-Apr-97]
version 1.9 Support of 1.79 nvi and some additional options [21-Apr-97]
[fixed bug]
htags - doesn't keep the code formatted correctly.
@ -268,7 +268,7 @@ version 2.1 Symbol search, incremental update and gozilla [20-Sep-97]
- gtags-find-pattern command (ESC-g) added.
It is equal to global's -g option.
version 2.11 only bugfix [7-Nov-97]
version 2.11 Only bugfix [7-Nov-97]
[fixed bug]
htags, gtags
@ -291,7 +291,7 @@ version 2.2 Rewritten with C for performance [7-Dec-97]
htags - shape up anchor database.
btreeop - some options (-b, -c, -l, -p) were deleted.
version 2.21 bugfix and slightly modified [11-Dec-97]
version 2.21 Bugfix and slightly modified [11-Dec-97]
[fixed bug]
gtags, global
@ -313,3 +313,45 @@ version 2.21 bugfix and slightly modified [11-Dec-97]
htags/Makefile, systags/Makefile
- ${DESTDIR}/usr/bin -> ${DESTDIR}${BINDIR}
version 2.22 GRTAGS support for assembler source [26-Dec-97]
[changed]
gtags, gctags, htags
- recognize following patterns as a function reference
to C function xxx().
call EXT(xxx)
call _xxx
Thanks to Yamashita TAKAO for his idea.
version 2.23 Bugfix and slightly modified [13-Jan-98]
[fixed bug]
gctags - GRTAGS support in version 2.22 doesn't work.
Thanks to Yamashita TAKAO for his bug report.
[changed]
gctags/Makefile, gctags/Makefile.generic
- -DGLOBAL -DYACC was removed.
gctags/ctags.h
- #define GLOBAL 1 and #define YACC 1 were added.
[added]
COPYING - Copyright notice was added.
version 2.24 Only bugfix [20-Jan-98]
[fixed bug]
global - generates wrong path name when GTAGSROOT includes symbolic
links.
Thanks to Wolfgang Helbig for his bug report.
htags - cannot treat path name which includes digit as the second
character like 'i386'. (In fact it was expand(1)'s bug.)
Thanks to Andrew Gallatin for his bug report.
global - doesn't search 'obj' directory correctly.

View file

@ -1,7 +1,7 @@
Installation of GLOBAL 2.21
Installation of GLOBAL
11-Dec-1997 Shigio Yamaguchi
20-Jan-1998 Shigio Yamaguchi
---------------------------------------------------------------------------
Guide line (C style)
---------------------------------------------------------------------------
@ -49,8 +49,10 @@ Install procedure
0. Extracting
% tar xzvf global-2.21.tar.gz
% cd global-2.21
% tar xzvf global-XXX.tar.gz
% cd global-XXX
(XXX is version number.)
1. Preparation for generic UNIX

View file

@ -1,3 +1,4 @@
COPYING Copyright notice.
HISTORY Histroy of GLOBAL.
INSTALL Installation method
MANIFEST This file.
@ -10,6 +11,7 @@ VERSION Version number.
btreeop/ Btreeop command directory.
global/ Global command directory.
gozilla/ Gozilla command directory.
gctags/ Extended ctags command directory.
gtags/ Gtags command directory.
htags/ Htags command directory.
systags/ Script for kernel.

View file

@ -3,15 +3,16 @@
@= @=
@= @=
@= @= @@@@@= @@@@@@= @@= @=
@= F o r a l l h a c k e r s. version 2.21
@= F o r a l l h a c k e r s.
@= @@@@@@=@= @= @= @@@@@= @= @= @=
@= @= @= @= @= @= @= @@@@@= @=
@= @= @= @= @= @= @=@= @= @=
@@@@@@@@= @@@@= @@@@@= @@@@@@=@@@= @@@@= @@@@@@=
Shigio Yamaguchi 11-Dec-97
Shigio Yamaguchi 20-Jan-98
Copyright 1996, 1997 Shigio Yamaguchi All right resereved.
Copyright 1996, 1997, 1998
Shigio Yamaguchi All right resereved.
----------------------------------------------------------
Note:

View file

@ -1 +1 @@
2.21
2.24

View file

@ -32,7 +32,13 @@
*
*/
#include <sys/stat.h>
#include <ctype.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include "dbio.h"
#include "global.h"
char *dbdefault = "btree"; /* default database name */
@ -87,7 +93,7 @@ char *argv[];
{
char command = 'R';
char *key = NULL;
int mode;
int mode = 0;
char *dbname;
DBIO *dbio;
int i, c;
@ -188,7 +194,7 @@ DBIO *dbio;
* +------------------
* | __.VERSION 2
*/
while (p = mgets(stdin, 0, NULL)) {
while ((p = mgets(stdin, 0, NULL)) != NULL) {
if (exitflag)
break;
c = p;

View file

@ -35,12 +35,14 @@
static char sccsid[] = "@(#)C.c 8.4 (Berkeley) 4/2/94";
#endif /* LIBC_SCCS and not lint */
#include <ctype.h>
#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>
#include "ctags.h"
#include "lookup.h"
static int func_entry __P((void));
static void hash_entry __P((void));

View file

@ -1,5 +1,5 @@
PROG= gctags
CFLAGS+=-I${.CURDIR} -I${.CURDIR}/../lib -DGLOBAL -DYACC
CFLAGS+=-I${.CURDIR} -I${.CURDIR}/../lib
LDADD= $(LIBUTIL)
DPADD= $(LIBUTIL)
SRCS= C.c ctags.c fortran.c lisp.c print.c tree.c yacc.c assembler.c

View file

@ -1,7 +1,6 @@
PROG = gctags
DEFS = -DGLOBAL -DYACC
CC = gcc
CFLAGS = -O $(DEFS) -I../lib -I/usr/include/db
CFLAGS = -O -I../lib -I/usr/include/db
LIBS = -L../lib -lutil -ldb
OBJS = C.o assembler.o ctags.o fortran.o lisp.o print.o tree.o yacc.o
BINDIR = /usr/bin

View file

@ -35,9 +35,12 @@
static char sccsid[] = "@(#)assembler.c 8.3 (Berkeley) 6/6/97";
#endif /* LIBC_SCCS and not lint */
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include "ctags.h"
#include "lookup.h"
#ifdef GLOBAL
void
@ -52,22 +55,51 @@ asm_entries()
if (!fgets(lbuf, sizeof(lbuf), inf))
return;
++lineno;
/* extract only ENTRY() and ALTENTRY(). */
if (lbuf[0] != 'E' && lbuf[0] != 'A')
continue;
lbp = lbuf;
if (!strncmp(lbp, "ENTRY(", 6)) {
lbp += 6;
} else if (!strncmp(lbp, "ALTENTRY(", 9)) {
lbp += 9;
} else
continue;
sp = tok;
while (*lbp && intoken(*lbp))
*sp++ = *lbp++;
if (*lbp != ')')
continue;
*sp = EOS;
if (rflag) {
/* extract only call EXT(xxx) or call _xxx */
lbp = lbuf;
while (*lbp && isspace(*lbp))
lbp++;
if (*lbp != 'c' || strncmp(lbp, "call", 4))
continue;
lbp += 4;
while (*lbp && isspace(*lbp))
lbp++;
sp = tok;
if (!strncmp(lbp, "EXT(" /* ) */, 4)) {
lbp += 4;
while (*lbp && intoken(*lbp))
*sp++ = *lbp++;
if (*lbp != /* ( */ ')')
continue;
*sp = EOS;
} else if (*lbp == '_') {
lbp++;
while (*lbp && intoken(*lbp))
*sp++ = *lbp++;
*sp = EOS;
} else
continue;
if (!lookup(tok))
continue;
} else {
/* extract only ENTRY() and ALTENTRY(). */
if (lbuf[0] != 'E' && lbuf[0] != 'A')
continue;
lbp = lbuf;
if (!strncmp(lbp, "ENTRY(", 6)) {
lbp += 6;
} else if (!strncmp(lbp, "ALTENTRY(", 9)) {
lbp += 9;
} else
continue;
sp = tok;
while (*lbp && intoken(*lbp))
*sp++ = *lbp++;
if (*lbp != /* ( */ ')')
continue;
*sp = EOS;
}
getline();
pfnote(tok, lineno);
}

View file

@ -39,7 +39,7 @@ static const char copyright[] =
#if defined(LIBC_SCCS) && !defined(lint)
static const char rcsid[] =
"$Id: ctags.c,v 1.3 1997/07/10 06:43:40 charnier Exp $";
"$Id: ctags.c,v 1.1.1.2 1997/12/15 23:08:35 cwt Exp $";
#endif /* LIBC_SCCS and not lint */
#include <limits.h>

View file

@ -33,6 +33,10 @@
* @(#)ctags.h 8.3 (Berkeley) 4/2/94
*/
/* Definition for gctags */
#define GLOBAL 1
#define YACC 1
#define bool char
#define YES 1
@ -114,5 +118,6 @@ void c_entries __P((void));
void skip_comment __P((void));
#ifdef GLOBAL
void asm_entries __P((void));
void compact_print __P((char *, int, char *));
int portable_getc __P((FILE *));
#endif

View file

@ -31,17 +31,23 @@
* global.c 7-Nov-97
*
*/
#include <sys/stat.h>
#include <ctype.h>
#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <regex.h>
#include <string.h>
#include <unistd.h>
#include "global.h"
char *progname = "global"; /* command name */
static void usage __P((void));
void main __P((int, char **));
char *outfilter __P(());
char *outfilter __P((void));
void completelist __P((char *, char *));
void relative_filter __P((char *, char *, char *));
void grep __P((char *));
@ -301,7 +307,7 @@ char *argv[];
p = envbuf;
while (p) {
lib = p;
if (p = locatestring(p, ":", 0))
if ((p = locatestring(p, ":", 0)) != NULL)
*p++ = 0;
if (!strncmp(lib, cwd, strlen(cwd)) || !strncmp(cwd, lib, strlen(lib)))
continue;
@ -341,7 +347,7 @@ char *argv[];
* r) output filter
*/
char *
outfilter()
outfilter(void)
{
static char filter[MAXCOMLINE+1];
@ -459,7 +465,7 @@ int compact;
int opened = 0;
char path[MAXPATHLEN+1];
char *buffer;
int line, tagline;
int line = 0, tagline = 0;
FILE *ip;
if (!xflag) {
@ -483,7 +489,7 @@ int compact;
;
lno = p; /* lno = $3 */
sprintf(path, "%s/%s", root, file + 2);
if (ip = fopen(path, "r")) {
if ((ip = fopen(path, "r")) != NULL) {
opened = 1;
buffer = mgets(ip, 0, NULL);
line = 1;
@ -538,7 +544,7 @@ char *s;
{
int c;
while (c = *s++)
while ((c = *s++) != NULL)
if ( (c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9') ||
@ -557,7 +563,7 @@ void
grep(pattern)
char *pattern;
{
FILE *ip, *op, *fp;
FILE *op, *fp;
char *path;
char edit[IDENTLEN+1];
char *buffer, *p, *e;
@ -583,11 +589,11 @@ char *pattern;
if (!(op = popen(outfilter(), "w")))
die("cannot open output pipe.");
count = 0;
for (findopen(); path = findread(NULL); ) {
for (findopen(); (path = findread(NULL)) != NULL; ) {
if (!(fp = fopen(path, "r")))
die1("cannot open file '%s'.", path);
linenum = 0;
while (buffer = mgets(fp, 0, NULL)) {
while ((buffer = mgets(fp, 0, NULL)) != NULL) {
linenum++;
if (regexec(&preg, buffer, 0, 0, 0) == 0) {
count++;
@ -656,7 +662,6 @@ int db;
if (regexp(pattern) && regcomp(&preg, pattern, REG_EXTENDED) == 0) {
char prefix_buf[IDENTLEN+1];
char *prefix = (char *)0;
int presize;
if (*pattern == '^' && *(p = pattern + 1) && (isalpha(*p) || *p == '_')) {
prefix = prefix_buf;
@ -711,7 +716,7 @@ char *line;
if (!(p = locatestring(line, "./", 0)))
die("illegal tag format (path not found).");
b = buf;
while (c = *b++ = *p++) {
while ((c = *b++ = *p++) != NULL) {
if (c == ' ' || c == '\t') {
*(b - 1) = 0;
break;

View file

@ -1,5 +1,5 @@
PROG= gtags
CFLAGS+=-I${.CURDIR}/../lib -DGLOBAL -DYACC
CFLAGS+=-I${.CURDIR}/../lib
LDADD= $(LIBUTIL)
DPADD= $(LIBUTIL)

View file

@ -31,9 +31,15 @@
* gtags.c 12-Dec-97
*
*/
#include <sys/stat.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <time.h>
#include <unistd.h>
#include "global.h"
char *progname = "gtags"; /* command name */
@ -43,13 +49,12 @@ void main __P((int, char **));
int incremental __P((char *));
void tagadd __P((int, char *));
void createtags __P((char *, int));
char *current __P(());
char *current __P((void));
static int iflag;
static int oflag;
static int vflag;
static int Dflag;
static int Rflag;
static void
usage()
@ -65,8 +70,7 @@ char *argv[];
{
char dbpath[MAXPATHLEN+1];
char env[MAXENVLEN+1];
char *path, *p;
FILE *ip;
char *p;
int db;
while (--argc > 0 && (++argv)[0][0] == '-') {
@ -161,7 +165,7 @@ char *dbpath;
die1("stat failed '%s'.", path);
gtags_mtime = sb.st_mtime;
for (findopen(); path = findread(NULL); ) {
for (findopen(); (path = findread(NULL)) != NULL; ) {
if (stat(path, &sb) < 0)
die1("stat failed '%s'.", path);
/*
@ -235,7 +239,7 @@ char *path;
p = strclose();
if (!(ip = popen(p, "r")))
die1("cannot execute '%s'.", p);
while (tagline = mgets(ip, 0, NULL)) {
while ((tagline = mgets(ip, 0, NULL)) != NULL) {
p = tagline;
q = key;
while (*p && !isspace(*p))
@ -264,11 +268,11 @@ int db;
if (db == GRTAGS)
lookupopen(dbpath);
tagopen(dbpath, db, 1);
for (findopen(); path = findread(NULL); ) {
for (findopen(); (path = findread(NULL)) != NULL; ) {
/*
* GRTAGS and GSYMS doesn't treat asembler.
* GSYMS doesn't treat asembler.
*/
if (db != GTAGS) {
if (db == GSYMS) {
char *p = path + strlen(path) - 1;
if ((*p == 's' || *p == 'S') && *(p - 1) == '.')
continue;
@ -287,9 +291,8 @@ int db;
*
* r) date and time
*/
#include <time.h>
char *
current()
current(void)
{
static char buf[80];
time_t tval;

View file

@ -82,7 +82,7 @@ print warning message.
.It Fl d Ar tagdir
the directory in which GTAGS and GRTAGS exist. Default is current directory.
.It Fl t Ar title
Tile of this hypertext. Default is the last conponent of current path.
Tile of this hypertext. Default is the last component of current path.
.It Ar dir
the directory in which hypertext generated. Default is current directory.
.Sh EXAMPLES

View file

@ -29,7 +29,7 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# htags.pl 31-Oct-97
# htags.pl 20-Jan-98
#
$com = $0;
$com =~ s/.*\///;
@ -429,7 +429,6 @@ sub makeline {
$_[0] =~ s/^$tag/<A HREF=..\/$SRCS\/$filename.html#$lno>$tag<\/A>/;
}
sub makedupindex {
local($expand) = &'usable('expand') ? 'expand' : 'cat';
local($count) = 0;
foreach $db ('GRTAGS', 'GTAGS') {
@ -774,10 +773,10 @@ sub makehtml {
$count++;
chop;
s/^\.\///;
local($path) = $_;
$path =~ s/^\.\///;
print STDERR " [$count/$total] converting $path\n" if ($vflag);
$path =~ s/\//$SEP/g;
print STDERR " [$count/$total] converting $_\n" if ($vflag);
&convert'src2html($_, "$html/$SRCS/$path.html");
}
close(FIND);
@ -805,12 +804,12 @@ sub src2html {
#
# load tags belonging to this file.
#
$file =~ s/^\.\///;
&anchor'load($file);
open(C, "$expand '$file' |") || &'error("cannot open file '$file'.");
#
# print the header
#
$file =~ s/^\.\///;
print "<HTML>\n<HEAD><TITLE>$file</TITLE></HEAD>\n";
print "<BODY><A NAME=TOP><H2>$file</H2>\n";
print &link_format(&anchor'getlinks(0));
@ -891,7 +890,7 @@ sub src2html {
$href = "<A HREF=../$dir/$TAG.html>$TAG</A>";
}
# set tag marks and save hyperlink into @links
if (s/\b$TAG\b/\005$count\005/) {
if (s/\b$TAG\b/\005$count\005/ || s/\b_$TAG\b/_\005$count\005/) {
$count++;
push(@links, $href);
} else {

View file

@ -31,10 +31,16 @@
* dbio.c 14-Dec-97
*
*/
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "dbio.h"
#include "die.h"
#include "test.h"
DBT key; /* key of record */
DBT dat; /* data of record */

View file

@ -82,7 +82,7 @@ typedef struct {
DBIO *db_open __P((char *, int, int, int));
char *db_get __P((DBIO *, char *));
void db_put __P((DBIO *, char *, char *));
void de_del __P((DBIO *, char *));
void db_del __P((DBIO *, char *));
char *db_first __P((DBIO *, char *, int));
char *db_next __P((DBIO *));
void db_close __P((DBIO *));

View file

@ -73,7 +73,7 @@ int
issource(path)
char *path;
{
char c, *p, *q;
char *p;
if (!(p = locatestring(path, ".", 2)))
return 0;
@ -88,7 +88,7 @@ char *path;
}
void
findopen()
findopen(void)
{
char edit[512], *p, *q;
int i, lim;
@ -158,7 +158,7 @@ int *length;
return (char *)0;
}
void
findclose()
findclose(void)
{
pclose(ip);
opened = 0;

View file

@ -44,8 +44,8 @@
#endif
int issource __P((char *));
void findopen __P(());
void findopen __P((void));
char *findread __P((int *));
void findclose __P(());
void findclose __P((void));
#endif /* ! _FIND_H_ */

View file

@ -34,9 +34,14 @@
#include <sys/param.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
#include "die.h"
#include "getdbpath.h"
#include "locatestring.h"
#include "test.h"
static char *makeobjdirprefix; /* obj partition */
static char *makeobjdir; /* obj directory */
@ -64,7 +69,7 @@ char *dbpath;
if (bsd) {
sprintf(path, "%s/%s/GTAGS", candidate, makeobjdir);
if (test("fr", path)) {
sprintf(dbpath, "%s%s", candidate, makeobjdir);
sprintf(dbpath, "%s/%s", candidate, makeobjdir);
return 1;
}
sprintf(path, "%s%s/GTAGS", makeobjdirprefix, candidate);
@ -105,27 +110,28 @@ char *dbpath;
die("It's root directory! What are you doing?");
if (getenv("OSTYPE") && locatestring(getenv("OSTYPE"), "BSD", 0)) {
if (p = getenv("MAKEOBJDIRPREFIX"))
if ((p = getenv("MAKEOBJDIRPREFIX")) != NULL)
makeobjdirprefix = p;
else
makeobjdirprefix = "/usr/obj";
if (p = getenv("MAKEOBJDIR"))
if ((p = getenv("MAKEOBJDIR")) != NULL)
makeobjdir = p;
else
makeobjdir = "obj";
bsd = 1;
}
if (p = getenv("GTAGSROOT")) {
if ((p = getenv("GTAGSROOT")) != NULL) {
if (*p != '/')
die("GTAGSROOT must be an absolute path.");
if (stat(p, &sb) || !S_ISDIR(sb.st_mode))
die1("directory '%s' not found.", p);
strcpy(root, p);
if (realpath(p, root) == NULL)
die1("cannot get real path of '%s'.", p);
/*
* GTAGSDBPATH is meaningful only when GTAGSROOT exist.
*/
if (p = getenv("GTAGSDBPATH")) {
if ((p = getenv("GTAGSDBPATH")) != NULL) {
if (*p != '/')
die("GTAGSDBPATH must be an absolute path.");
if (stat(p, &sb) || !S_ISDIR(sb.st_mode))

View file

@ -32,12 +32,17 @@
*
*/
#include <sys/param.h>
#include <fcntl.h>
#include <ctype.h>
#include <db.h>
#include <fcntl.h>
#include <stdlib.h>
#include "dbio.h"
#include "die.h"
#include "makepath.h"
#include "dbname.h"
#include "die.h"
#include "gtagsopen.h"
#include "makepath.h"
#define VERSIONKEY " __.VERSION"
static int support_version = 1; /* accept this format version */
@ -82,7 +87,7 @@ int mode;
* if 'format version record' is not found, it's assumed
* version 1.
*/
if (p = db_get(dbio, VERSIONKEY)) {
if ((p = db_get(dbio, VERSIONKEY)) != NULL) {
for (p += strlen(VERSIONKEY); *p && isspace(*p); p++)
;
version_number = atoi(p);

View file

@ -31,6 +31,10 @@
* locatestring.c 20-Oct-97
*
*/
#include <string.h>
#include "locatestring.h"
/*
* locatestring: locate pattern from string
*

View file

@ -57,7 +57,7 @@ char *name;
return (p) ? 1 : 0;
}
void
lookupclose()
lookupclose(void)
{
db_close(dbio);
opened = 0;

View file

@ -45,6 +45,6 @@
void lookupopen __P((char *));
int lookup __P((char *));
void lookupclose __P(());
void lookupclose __P((void));
#endif /* ! _LOOKUP_H_ */

View file

@ -32,6 +32,8 @@
*
*/
#include <stdio.h>
#include <stdlib.h>
#include "mgets.h"
#include "die.h"

View file

@ -31,8 +31,12 @@
* strop.c 20-Oct-97
*
*/
#include "strop.h"
#include <stdlib.h>
#include <string.h>
#include "die.h"
#include "strop.h"
/*
* usage: string buffer
*
@ -49,7 +53,7 @@ static int sbufsize;
static int opened;
void
stropen()
stropen(void)
{
if (opened)
die("nested call to stropen.");
@ -107,7 +111,7 @@ int c;
*curp = 0;
}
char *
strclose()
strclose(void)
{
opened = 0;
/*

View file

@ -43,10 +43,10 @@
#endif
#endif
void stropen __P(());
void stropen __P((void));
void strputs __P((char *));
void strnputs __P((char *, int));
void strputc __P((int));
char *strclose __P(());
char *strclose __P((void));
#endif /* ! _STROP_H_ */

View file

@ -33,6 +33,8 @@
*/
#include <stdio.h>
#include "tab.h"
#define TABPOS(i) ((i)%8 == 0)
/*
* detab: convert tabs into spaces and print

View file

@ -31,11 +31,16 @@
* tag.c 20-Oct-97
*
*/
#include <ctype.h>
#include <string.h>
#include "dbio.h"
#include "die.h"
#include "gtagsopen.h"
#include "tag.h"
#include "locatestring.h"
#include "tab.h"
#include "tag.h"
static DBIO *dbio;
static int opened;
@ -73,7 +78,7 @@ char *path;
}
}
void
tagclose()
tagclose(void)
{
db_close(dbio);
opened = 0;

View file

@ -46,6 +46,6 @@
void tagopen __P((char *, int, int));
void tagput __P((char *, char *));
void tagdelete __P((char *));
void tagclose __P(());
void tagclose __P((void));
#endif /* ! _TAG_H_ */

View file

@ -31,9 +31,13 @@
* test.c 12-Dec-97
*
*/
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include "test.h"
/*
* test:
*
@ -60,7 +64,7 @@ char *path;
if (stat(path, &sb) < 0)
return 0;
while (c = *flags++) {
while ((c = *flags++) != NULL) {
switch (c) {
case 'f':
if (!S_ISREG(sb.st_mode))