cf4b2ca9b8
Ok'd by: peter Discussed with: msmith
674 lines
16 KiB
Diff
674 lines
16 KiB
Diff
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/build/Makefile ./build/Makefile
|
|
*** /usr/src/usr.bin/nvi-1.66.org/build/Makefile Tue May 5 15:57:21 1998
|
|
--- ./build/Makefile Sun Aug 16 03:22:53 1998
|
|
***************
|
|
*** 3,9 ****
|
|
# from: @(#)Makefile.in 8.56 (Berkeley) 5/18/96
|
|
|
|
WARNS= 0
|
|
! CPPFLAGS+=-I${.CURDIR} -I${.CURDIR}/../include
|
|
|
|
LDADD+= -lcurses -ltermcap
|
|
DPADD+= ${LIBCURSES} ${LIBTERMCAP}
|
|
--- 3,9 ----
|
|
# from: @(#)Makefile.in 8.56 (Berkeley) 5/18/96
|
|
|
|
WARNS= 0
|
|
! CPPFLAGS+=-I${.CURDIR} -I${.CURDIR}/../include -DGTAGS
|
|
|
|
LDADD+= -lcurses -ltermcap
|
|
DPADD+= ${LIBCURSES} ${LIBTERMCAP}
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/common/main.c ./common/main.c
|
|
*** /usr/src/usr.bin/nvi-1.66.org/common/main.c Tue May 5 15:57:26 1998
|
|
--- ./common/main.c Sun Aug 16 03:27:19 1998
|
|
***************
|
|
*** 63,68 ****
|
|
--- 63,71 ----
|
|
size_t len;
|
|
u_int flags;
|
|
int ch, fd, flagchk, lflag, startup, readonly, rval, silent;
|
|
+ #ifdef GTAGS
|
|
+ int gtags = 0;
|
|
+ #endif
|
|
char *tag_f, *wsizearg;
|
|
char path[256];
|
|
|
|
***************
|
|
*** 113,123 ****
|
|
--- 116,135 ----
|
|
/* Set the file snapshot flag. */
|
|
F_SET(gp, G_SNAPSHOT);
|
|
|
|
+ #ifdef GTAGS
|
|
+ #ifdef DEBUG
|
|
+ while ((ch = getopt(argc, argv, "c:D:eFGlRrsT:t:vw:")) != EOF)
|
|
+ #else
|
|
+ while ((ch = getopt(argc, argv, "c:eFGlRrst:vw:")) != EOF)
|
|
+ #endif
|
|
+ #else
|
|
#ifdef DEBUG
|
|
while ((ch = getopt(argc, argv, "c:D:eFlRrsT:t:vw:")) != EOF)
|
|
#else
|
|
while ((ch = getopt(argc, argv, "c:eFlRrst:vw:")) != EOF)
|
|
#endif
|
|
+ #endif
|
|
+
|
|
switch (ch) {
|
|
case 'c': /* Run the command. */
|
|
/*
|
|
***************
|
|
*** 167,172 ****
|
|
--- 179,189 ----
|
|
case 'F': /* No snapshot. */
|
|
F_CLR(gp, G_SNAPSHOT);
|
|
break;
|
|
+ #ifdef GTAGS
|
|
+ case 'G': /* gtags mode. */
|
|
+ gtags = 1;
|
|
+ break;
|
|
+ #endif
|
|
case 'l': /* Set lisp, showmatch options. */
|
|
lflag = 1;
|
|
break;
|
|
***************
|
|
*** 258,263 ****
|
|
--- 275,284 ----
|
|
{ int oargs[4], *oargp = oargs;
|
|
if (readonly) /* Command-line options. */
|
|
*oargp++ = O_READONLY;
|
|
+ #ifdef GTAGS
|
|
+ if (gtags)
|
|
+ *oargp++ = O_GTAGSMODE;
|
|
+ #endif
|
|
if (lflag) {
|
|
*oargp++ = O_LISP;
|
|
*oargp++ = O_SHOWMATCH;
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/common/options.c ./common/options.c
|
|
*** /usr/src/usr.bin/nvi-1.66.org/common/options.c Tue May 5 15:57:26 1998
|
|
--- ./common/options.c Sun Aug 16 03:29:51 1998
|
|
***************
|
|
*** 80,85 ****
|
|
--- 80,89 ----
|
|
{"filec", NULL, OPT_STR, 0},
|
|
/* O_FLASH HPUX */
|
|
{"flash", NULL, OPT_1BOOL, 0},
|
|
+ #ifdef GTAGS
|
|
+ /* O_GTAGSMODE FreeBSD, NetBSD */
|
|
+ {"gtagsmode", NULL, OPT_0BOOL, 0},
|
|
+ #endif
|
|
/* O_HARDTABS 4BSD */
|
|
{"hardtabs", NULL, OPT_NUM, 0},
|
|
/* O_ICLOWER 4.4BSD */
|
|
***************
|
|
*** 240,245 ****
|
|
--- 244,252 ----
|
|
{"eb", O_ERRORBELLS}, /* 4BSD */
|
|
{"ed", O_EDCOMPATIBLE}, /* 4BSD */
|
|
{"ex", O_EXRC}, /* System V (undocumented) */
|
|
+ #ifdef GTAGS
|
|
+ {"gt", O_GTAGSMODE}, /* FreeBSD, NetBSD */
|
|
+ #endif
|
|
{"ht", O_HARDTABS}, /* 4BSD */
|
|
{"ic", O_IGNORECASE}, /* 4BSD */
|
|
{"li", O_LINES}, /* 4.4BSD */
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/docs/USD.doc/vi.man/vi.1 ./docs/USD.doc/vi.man/vi.1
|
|
*** /usr/src/usr.bin/nvi-1.66.org/docs/USD.doc/vi.man/vi.1 Tue May 5 15:57:31 1998
|
|
--- ./docs/USD.doc/vi.man/vi.1 Sun Aug 16 03:34:12 1998
|
|
***************
|
|
*** 40,46 ****
|
|
.SH SYNOPSIS
|
|
.B ex
|
|
[\c
|
|
! .B -eFRrsv\c
|
|
] [\c
|
|
.BI -c " cmd"\c
|
|
] [\c
|
|
--- 40,46 ----
|
|
.SH SYNOPSIS
|
|
.B ex
|
|
[\c
|
|
! .B -eFGRrsv\c
|
|
] [\c
|
|
.BI -c " cmd"\c
|
|
] [\c
|
|
***************
|
|
*** 51,57 ****
|
|
.br
|
|
.B vi
|
|
[\c
|
|
! .B -eFlRrv\c
|
|
] [\c
|
|
.BI -c " cmd"\c
|
|
] [\c
|
|
--- 51,57 ----
|
|
.br
|
|
.B vi
|
|
[\c
|
|
! .B -eFGlRrv\c
|
|
] [\c
|
|
.BI -c " cmd"\c
|
|
] [\c
|
|
***************
|
|
*** 62,68 ****
|
|
.br
|
|
.B view
|
|
[\c
|
|
! .B -eFRrv\c
|
|
] [\c
|
|
.BI -c " cmd"\c
|
|
] [\c
|
|
--- 62,68 ----
|
|
.br
|
|
.B view
|
|
[\c
|
|
! .B -eFGRrv\c
|
|
] [\c
|
|
.BI -c " cmd"\c
|
|
] [\c
|
|
***************
|
|
*** 135,140 ****
|
|
--- 135,143 ----
|
|
(The default is to make a copy in case someone else modifies
|
|
the file during your edit session.)
|
|
.TP
|
|
+ .B \-G
|
|
+ Start editing in gtags mode, as if the gtagsmode option was set.
|
|
+ .TP
|
|
.B \-l
|
|
Start editing with the lisp and showmatch options set.
|
|
.TP
|
|
***************
|
|
*** 441,446 ****
|
|
--- 444,451 ----
|
|
.TP
|
|
.B "<control-]>"
|
|
Push a tag reference onto the tag stack.
|
|
+ In gtagsmode, if at the first column of line,
|
|
+ locate function references otherwise function definitions.
|
|
.TP
|
|
.B "<control-^>"
|
|
Switch to the most recently edited file.
|
|
***************
|
|
*** 952,957 ****
|
|
--- 957,965 ----
|
|
.B "rew[ind][!]"
|
|
Rewind the argument list.
|
|
.TP
|
|
+ .B "rta[g][!] tagstring"
|
|
+ Edit the file refering the specified tag. (Only in gtagsmode)
|
|
+ .TP
|
|
.B "se[t] [option[=[value]] ...] [nooption ...] [option? ...] [all]"
|
|
Display or set editor options.
|
|
.TP
|
|
***************
|
|
*** 1121,1126 ****
|
|
--- 1129,1137 ----
|
|
.TP
|
|
.B "flash [on]"
|
|
Flash the screen instead of beeping the keyboard on error.
|
|
+ .TP
|
|
+ .B "gtagsmode, gt [off]"
|
|
+ Use GTAGS and GRTAGS instead of tags.
|
|
.TP
|
|
.B "hardtabs, ht [8]"
|
|
Set the spacing between hardware tab settings.
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/ex/ex.h ./ex/ex.h
|
|
*** /usr/src/usr.bin/nvi-1.66.org/ex/ex.h Tue May 5 15:57:37 1998
|
|
--- ./ex/ex.h Sun Aug 16 03:35:58 1998
|
|
***************
|
|
*** 162,167 ****
|
|
--- 162,170 ----
|
|
#define E_NEWLINE 0x00800000 /* Found ending <newline>. */
|
|
#define E_USELASTCMD 0x01000000 /* Use the last command. */
|
|
#define E_VISEARCH 0x02000000 /* It's really a vi search command. */
|
|
+ #ifdef GTAGS
|
|
+ #define E_REFERENCE 0x04000000 /* locate function references */
|
|
+ #endif
|
|
u_int32_t flags; /* Current flags. */
|
|
};
|
|
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/ex/ex_cmd.c ./ex/ex_cmd.c
|
|
*** /usr/src/usr.bin/nvi-1.66.org/ex/ex_cmd.c Tue May 5 15:57:37 1998
|
|
--- ./ex/ex_cmd.c Sun Aug 16 03:38:03 1998
|
|
***************
|
|
*** 302,307 ****
|
|
--- 302,314 ----
|
|
"!",
|
|
"rew[ind][!]",
|
|
"re-edit all the files in the file argument list"},
|
|
+ #ifdef GTAGS
|
|
+ /* C_RTAG */
|
|
+ {"rtag", ex_rtag_push, E_NEWSCREEN,
|
|
+ "!w1o",
|
|
+ "rta[g][!] [string]",
|
|
+ "edit the file containing the tag"},
|
|
+ #endif
|
|
/*
|
|
* !!!
|
|
* Adding new commands starting with 's' may break the substitute command code
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/ex/ex_tag.c ./ex/ex_tag.c
|
|
*** /usr/src/usr.bin/nvi-1.66.org/ex/ex_tag.c Tue May 5 15:57:41 1998
|
|
--- ./ex/ex_tag.c Sun Aug 16 03:46:43 1998
|
|
***************
|
|
*** 46,51 ****
|
|
--- 46,55 ----
|
|
static int compare __P((char *, char *, char *));
|
|
static void ctag_file __P((SCR *, TAGF *, char *, char **, size_t *));
|
|
static int ctag_search __P((SCR *, char *, char *));
|
|
+ #ifdef GTAGS
|
|
+ static int getentry __P((char *, char **, char **, char **));
|
|
+ static TAGQ *gtag_slist __P((SCR *, char *, int));
|
|
+ #endif
|
|
static int ctag_sfile __P((SCR *, TAGF *, TAGQ *, char *));
|
|
static TAGQ *ctag_slist __P((SCR *, char *));
|
|
static char *linear_search __P((char *, char *, char *));
|
|
***************
|
|
*** 89,94 ****
|
|
--- 93,117 ----
|
|
return (0);
|
|
}
|
|
|
|
+ #ifdef GTAGS
|
|
+ /*
|
|
+ * ex_rtag_push -- ^]
|
|
+ * :rtag[!] [string]
|
|
+ *
|
|
+ * Enter a new TAGQ context based on a ctag string.
|
|
+ *
|
|
+ * PUBLIC: int ex_rtag_push __P((SCR *, EXCMD *));
|
|
+ */
|
|
+ int
|
|
+ ex_rtag_push(sp, cmdp)
|
|
+ SCR *sp;
|
|
+ EXCMD *cmdp;
|
|
+ {
|
|
+ F_SET(cmdp, E_REFERENCE);
|
|
+ return ex_tag_push(sp, cmdp);
|
|
+ }
|
|
+ #endif
|
|
+
|
|
/*
|
|
* ex_tag_push -- ^]
|
|
* :tag[!] [string]
|
|
***************
|
|
*** 138,143 ****
|
|
--- 161,172 ----
|
|
}
|
|
|
|
/* Get the tag information. */
|
|
+ #ifdef GTAGS
|
|
+ if (O_ISSET(sp, O_GTAGSMODE)) {
|
|
+ if ((tqp = gtag_slist(sp, exp->tag_last, F_ISSET(cmdp, E_REFERENCE))) == NULL)
|
|
+ return (1);
|
|
+ } else
|
|
+ #endif
|
|
if ((tqp = ctag_slist(sp, exp->tag_last)) == NULL)
|
|
return (1);
|
|
|
|
***************
|
|
*** 963,969 ****
|
|
--- 992,1120 ----
|
|
(void)nonblank(sp, sp->lno, &sp->cno);
|
|
return (0);
|
|
}
|
|
+ #ifdef GTAGS
|
|
+ /*
|
|
+ * getentry --
|
|
+ * get tag information from current line.
|
|
+ *
|
|
+ * gtags temporary file format.
|
|
+ * <tag> <lineno> <file> <image>
|
|
+ *
|
|
+ * sample.
|
|
+ * +------------------------------------------------
|
|
+ * |main 30 main.c main(argc, argv)
|
|
+ * |func 21 subr.c func(arg)
|
|
+ */
|
|
+ static int
|
|
+ getentry(buf, tag, file, line)
|
|
+ char *buf, **tag, **file, **line;
|
|
+ {
|
|
+ char *p = buf;
|
|
+
|
|
+ for (*tag = p; *p && !isspace(*p); p++) /* tag name */
|
|
+ ;
|
|
+ if (*p == 0)
|
|
+ goto err;
|
|
+ *p++ = 0;
|
|
+ for (; *p && isspace(*p); p++) /* (skip blanks) */
|
|
+ ;
|
|
+ if (*p == 0)
|
|
+ goto err;
|
|
+ *line = p; /* line no */
|
|
+ for (*line = p; *p && !isspace(*p); p++)
|
|
+ ;
|
|
+ if (*p == 0)
|
|
+ goto err;
|
|
+ *p++ = 0;
|
|
+ for (; *p && isspace(*p); p++) /* (skip blanks) */
|
|
+ ;
|
|
+ if (*p == 0)
|
|
+ goto err;
|
|
+ *file = p; /* file name */
|
|
+ for (*file = p; *p && !isspace(*p); p++)
|
|
+ ;
|
|
+ if (*p == 0)
|
|
+ goto err;
|
|
+ *p = 0;
|
|
+
|
|
+ /* value check */
|
|
+ if (strlen(*tag) && strlen(*line) && strlen(*file) && atoi(*line) > 0)
|
|
+ return 1; /* OK */
|
|
+ err:
|
|
+ return 0; /* ERROR */
|
|
+ }
|
|
+
|
|
+ /*
|
|
+ * gtag_slist --
|
|
+ * Search the list of tags files for a tag, and return tag queue.
|
|
+ */
|
|
+ static TAGQ *
|
|
+ gtag_slist(sp, tag, ref)
|
|
+ SCR *sp;
|
|
+ char *tag;
|
|
+ int ref;
|
|
+ {
|
|
+ EX_PRIVATE *exp;
|
|
+ TAGF *tfp;
|
|
+ TAGQ *tqp;
|
|
+ size_t len;
|
|
+ int echk;
|
|
+ TAG *tp;
|
|
+ char *name, *file, *line;
|
|
+ char command[BUFSIZ];
|
|
+ char buf[BUFSIZ];
|
|
+ FILE *fp;
|
|
+
|
|
+ /* Allocate and initialize the tag queue structure. */
|
|
+ len = strlen(tag);
|
|
+ CALLOC_GOTO(sp, tqp, TAGQ *, 1, sizeof(TAGQ) + len + 1);
|
|
+ CIRCLEQ_INIT(&tqp->tagq);
|
|
+ tqp->tag = tqp->buf;
|
|
+ memcpy(tqp->tag, tag, (tqp->tlen = len) + 1);
|
|
+
|
|
+ /*
|
|
+ * Find the tag, only display missing file messages once, and
|
|
+ * then only if we didn't find the tag.
|
|
+ */
|
|
+ snprintf(command, sizeof(command), "global -%s '%s' 2>/dev/null", ref ? "rx" : "x", tag);
|
|
+ if (fp = popen(command, "r")) {
|
|
+ while (fgets(buf, sizeof(buf), fp)) {
|
|
+ if (buf[strlen(buf)-1] == '\n') /* chop(buf) */
|
|
+ buf[strlen(buf)-1] = 0;
|
|
+ else
|
|
+ while (fgetc(fp) != '\n')
|
|
+ ;
|
|
+ if (getentry(buf, &name, &file, &line) == 0) {
|
|
+ echk = 1;
|
|
+ F_SET(tfp, TAGF_ERR);
|
|
+ break;
|
|
+ }
|
|
+ CALLOC_GOTO(sp, tp,
|
|
+ TAG *, 1, sizeof(TAG) + strlen(file) + 1 + strlen(line) + 1);
|
|
+ tp->fname = tp->buf;
|
|
+ strcpy(tp->fname, file);
|
|
+ tp->fnlen = strlen(file);
|
|
+ tp->search = tp->fname + tp->fnlen + 1;
|
|
+ strcpy(tp->search, line);
|
|
+ CIRCLEQ_INSERT_TAIL(&tqp->tagq, tp, q);
|
|
+ }
|
|
+ pclose(fp);
|
|
+ }
|
|
+
|
|
+ /* Check to see if we found anything. */
|
|
+ if (tqp->tagq.cqh_first == (void *)&tqp->tagq) {
|
|
+ msgq_str(sp, M_ERR, tag, "162|%s: tag not found");
|
|
+ free(tqp);
|
|
+ return (NULL);
|
|
+ }
|
|
|
|
+ tqp->current = tqp->tagq.cqh_first;
|
|
+ return (tqp);
|
|
+
|
|
+ alloc_err:
|
|
+ return (NULL);
|
|
+ }
|
|
+ #endif
|
|
/*
|
|
* ctag_slist --
|
|
* Search the list of tags files for a tag, and return tag queue.
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/include/ex_def.h ./include/ex_def.h
|
|
*** /usr/src/usr.bin/nvi-1.66.org/include/ex_def.h Tue May 5 15:57:42 1998
|
|
--- ./include/ex_def.h Sun Aug 16 03:49:40 1998
|
|
***************
|
|
*** 47,78 ****
|
|
#define C_RECOVER 46
|
|
#define C_RESIZE 47
|
|
#define C_REWIND 48
|
|
! #define C_SUBSTITUTE 49
|
|
! #define C_SCRIPT 50
|
|
! #define C_SET 51
|
|
! #define C_SHELL 52
|
|
! #define C_SOURCE 53
|
|
! #define C_STOP 54
|
|
! #define C_SUSPEND 55
|
|
! #define C_T 56
|
|
! #define C_TAG 57
|
|
! #define C_TAGNEXT 58
|
|
! #define C_TAGPOP 59
|
|
! #define C_TAGPREV 60
|
|
! #define C_TAGTOP 61
|
|
! #define C_TCLCMD 62
|
|
! #define C_UNDO 63
|
|
! #define C_UNABBREVIATE 64
|
|
! #define C_UNMAP 65
|
|
! #define C_V 66
|
|
! #define C_VERSION 67
|
|
! #define C_VISUAL_EX 68
|
|
! #define C_VISUAL_VI 69
|
|
! #define C_VIUSAGE 70
|
|
! #define C_WRITE 71
|
|
! #define C_WN 72
|
|
! #define C_WQ 73
|
|
! #define C_XIT 74
|
|
! #define C_YANK 75
|
|
! #define C_Z 76
|
|
! #define C_SUBTILDE 77
|
|
--- 47,79 ----
|
|
#define C_RECOVER 46
|
|
#define C_RESIZE 47
|
|
#define C_REWIND 48
|
|
! #define C_RTAG 49
|
|
! #define C_SUBSTITUTE 50
|
|
! #define C_SCRIPT 51
|
|
! #define C_SET 52
|
|
! #define C_SHELL 53
|
|
! #define C_SOURCE 54
|
|
! #define C_STOP 55
|
|
! #define C_SUSPEND 56
|
|
! #define C_T 57
|
|
! #define C_TAG 58
|
|
! #define C_TAGNEXT 59
|
|
! #define C_TAGPOP 60
|
|
! #define C_TAGPREV 61
|
|
! #define C_TAGTOP 62
|
|
! #define C_TCLCMD 63
|
|
! #define C_UNDO 64
|
|
! #define C_UNABBREVIATE 65
|
|
! #define C_UNMAP 66
|
|
! #define C_V 67
|
|
! #define C_VERSION 68
|
|
! #define C_VISUAL_EX 69
|
|
! #define C_VISUAL_VI 70
|
|
! #define C_VIUSAGE 71
|
|
! #define C_WRITE 72
|
|
! #define C_WN 73
|
|
! #define C_WQ 74
|
|
! #define C_XIT 75
|
|
! #define C_YANK 76
|
|
! #define C_Z 77
|
|
! #define C_SUBTILDE 78
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/include/ex_extern.h ./include/ex_extern.h
|
|
*** /usr/src/usr.bin/nvi-1.66.org/include/ex_extern.h Tue May 5 15:57:42 1998
|
|
--- ./include/ex_extern.h Sun Aug 16 03:50:24 1998
|
|
***************
|
|
*** 92,97 ****
|
|
--- 92,100 ----
|
|
char *, char **, size_t *, regex_t *, u_int));
|
|
void re_error __P((SCR *, int, regex_t *));
|
|
int ex_tag_first __P((SCR *, char *));
|
|
+ #ifdef GTAGS
|
|
+ int ex_rtag_push __P((SCR *, EXCMD *));
|
|
+ #endif
|
|
int ex_tag_push __P((SCR *, EXCMD *));
|
|
int ex_tag_next __P((SCR *, EXCMD *));
|
|
int ex_tag_prev __P((SCR *, EXCMD *));
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/include/options_def.h ./include/options_def.h
|
|
*** /usr/src/usr.bin/nvi-1.66.org/include/options_def.h Tue May 5 15:57:42 1998
|
|
--- ./include/options_def.h Sun Aug 16 03:54:45 1998
|
|
***************
|
|
*** 16,77 ****
|
|
#define O_EXTENDED 15
|
|
#define O_FILEC 16
|
|
#define O_FLASH 17
|
|
! #define O_HARDTABS 18
|
|
! #define O_ICLOWER 19
|
|
! #define O_IGNORECASE 20
|
|
! #define O_KEYTIME 21
|
|
! #define O_LEFTRIGHT 22
|
|
! #define O_LINES 23
|
|
! #define O_LISP 24
|
|
! #define O_LIST 25
|
|
! #define O_LOCKFILES 26
|
|
! #define O_MAGIC 27
|
|
! #define O_MATCHTIME 28
|
|
! #define O_MESG 29
|
|
! #define O_MODELINE 30
|
|
! #define O_MSGCAT 31
|
|
! #define O_NOPRINT 32
|
|
! #define O_NUMBER 33
|
|
! #define O_OCTAL 34
|
|
! #define O_OPEN 35
|
|
! #define O_OPTIMIZE 36
|
|
! #define O_PARAGRAPHS 37
|
|
! #define O_PRINT 38
|
|
! #define O_PROMPT 39
|
|
! #define O_READONLY 40
|
|
! #define O_RECDIR 41
|
|
! #define O_REDRAW 42
|
|
! #define O_REMAP 43
|
|
! #define O_REPORT 44
|
|
! #define O_RULER 45
|
|
! #define O_SCROLL 46
|
|
! #define O_SEARCHINCR 47
|
|
! #define O_SECTIONS 48
|
|
! #define O_SECURE 49
|
|
! #define O_SHELL 50
|
|
! #define O_SHELLMETA 51
|
|
! #define O_SHIFTWIDTH 52
|
|
! #define O_SHOWMATCH 53
|
|
! #define O_SHOWMODE 54
|
|
! #define O_SIDESCROLL 55
|
|
! #define O_SLOWOPEN 56
|
|
! #define O_SOURCEANY 57
|
|
! #define O_TABSTOP 58
|
|
! #define O_TAGLENGTH 59
|
|
! #define O_TAGS 60
|
|
! #define O_TERM 61
|
|
! #define O_TERSE 62
|
|
! #define O_TILDEOP 63
|
|
! #define O_TIMEOUT 64
|
|
! #define O_TTYWERASE 65
|
|
! #define O_VERBOSE 66
|
|
! #define O_W1200 67
|
|
! #define O_W300 68
|
|
! #define O_W9600 69
|
|
! #define O_WARN 70
|
|
! #define O_WINDOW 71
|
|
! #define O_WRAPLEN 72
|
|
! #define O_WRAPMARGIN 73
|
|
! #define O_WRAPSCAN 74
|
|
! #define O_WRITEANY 75
|
|
! #define O_OPTIONCOUNT 76
|
|
--- 16,78 ----
|
|
#define O_EXTENDED 15
|
|
#define O_FILEC 16
|
|
#define O_FLASH 17
|
|
! #define O_GTAGSMODE 18
|
|
! #define O_HARDTABS 19
|
|
! #define O_ICLOWER 20
|
|
! #define O_IGNORECASE 21
|
|
! #define O_KEYTIME 22
|
|
! #define O_LEFTRIGHT 23
|
|
! #define O_LINES 24
|
|
! #define O_LISP 25
|
|
! #define O_LIST 26
|
|
! #define O_LOCKFILES 27
|
|
! #define O_MAGIC 28
|
|
! #define O_MATCHTIME 29
|
|
! #define O_MESG 30
|
|
! #define O_MODELINE 31
|
|
! #define O_MSGCAT 32
|
|
! #define O_NOPRINT 33
|
|
! #define O_NUMBER 34
|
|
! #define O_OCTAL 35
|
|
! #define O_OPEN 36
|
|
! #define O_OPTIMIZE 37
|
|
! #define O_PARAGRAPHS 38
|
|
! #define O_PRINT 39
|
|
! #define O_PROMPT 40
|
|
! #define O_READONLY 41
|
|
! #define O_RECDIR 42
|
|
! #define O_REDRAW 43
|
|
! #define O_REMAP 44
|
|
! #define O_REPORT 45
|
|
! #define O_RULER 46
|
|
! #define O_SCROLL 47
|
|
! #define O_SEARCHINCR 48
|
|
! #define O_SECTIONS 49
|
|
! #define O_SECURE 50
|
|
! #define O_SHELL 51
|
|
! #define O_SHELLMETA 52
|
|
! #define O_SHIFTWIDTH 53
|
|
! #define O_SHOWMATCH 54
|
|
! #define O_SHOWMODE 55
|
|
! #define O_SIDESCROLL 56
|
|
! #define O_SLOWOPEN 57
|
|
! #define O_SOURCEANY 58
|
|
! #define O_TABSTOP 59
|
|
! #define O_TAGLENGTH 60
|
|
! #define O_TAGS 61
|
|
! #define O_TERM 62
|
|
! #define O_TERSE 63
|
|
! #define O_TILDEOP 64
|
|
! #define O_TIMEOUT 65
|
|
! #define O_TTYWERASE 66
|
|
! #define O_VERBOSE 67
|
|
! #define O_W1200 68
|
|
! #define O_W300 69
|
|
! #define O_W9600 70
|
|
! #define O_WARN 71
|
|
! #define O_WINDOW 72
|
|
! #define O_WRAPLEN 73
|
|
! #define O_WRAPMARGIN 74
|
|
! #define O_WRAPSCAN 75
|
|
! #define O_WRITEANY 76
|
|
! #define O_OPTIONCOUNT 77
|
|
diff -c -r -N /usr/src/usr.bin/nvi-1.66.org/vi/v_ex.c ./vi/v_ex.c
|
|
*** /usr/src/usr.bin/nvi-1.66.org/vi/v_ex.c Tue May 5 15:57:45 1998
|
|
--- ./vi/v_ex.c Sun Aug 16 03:55:38 1998
|
|
***************
|
|
*** 221,226 ****
|
|
--- 221,231 ----
|
|
ARGS *ap[2], a;
|
|
EXCMD cmd;
|
|
|
|
+ #ifdef GTAGS
|
|
+ if (O_ISSET(sp, O_GTAGSMODE) && vp->m_start.cno == 0)
|
|
+ ex_cinit(&cmd, C_RTAG, 0, OOBLNO, 0, 0, ap);
|
|
+ else
|
|
+ #endif
|
|
ex_cinit(&cmd, C_TAG, 0, OOBLNO, 0, 0, ap);
|
|
ex_cadd(&cmd, &a, VIP(sp)->keyw, strlen(VIP(sp)->keyw));
|
|
return (v_exec_ex(sp, vp, &cmd));
|