📄 lookup.c
字号:
#ifndef lintstatic char sccsid[] = "@(#)lookup.c 2.6 5/27/93";#endif not lint# include "stdio.h"# include "streams.h"# include "bib.h"char *locate();int fflag = 0; /* print out file names */int Aflag = 0; /* print hits from All indexes */int max_klen = 6; /* max length of keys */char INDEX[maxstr] = /* name of index file */ INDXFILE;int argc;char **argv;main(argcount,arglist)int argcount;char **arglist;{ char *refs; char keys[maxstr]; char *p,*q; char one_index[maxstr]; int found; InitDirectory(BMACLIB,N_BMACLIB); InitDirectory(COMFILE,N_COMFILE); argc= argcount-1; argv= arglist+1; flags(); /* add SYSINDEX to search path. all names are comma terminated */ strcat(INDEX, ","); strcat(INDEX, SYSINDEX); strcat(INDEX, ","); while (fgets(keys,maxstr,stdin)!=NULL) { found = 0; for (p = one_index, q = INDEX; *q != 0 ; q++) if (*q == ',' ) { *p = 0; refs = locate(keys, one_index, max_klen, COMFILE); if( refs==NULL ) { fprintf(stderr,"%s removed from index list.\n", one_index); /* delete this file name (shift remainder on top) */ strcpy(q-strlen(one_index),q+1); q = q-strlen(one_index)-1; } if (refs!=NULL && *refs!=NULL) { printf("%s", refs); free(refs); found = 1; if (!Aflag) break; } p = one_index; } else *p++ = *q; if (!found) printf("No references found.\n"); } exit(0);}# define operand (strlen(*argv+2)==0 ? (argv++,argc--,*argv) : *argv+2)flags(){ char *p; for (; argc>0 && *argv[0]=='-'; argc--,argv++) { switch ((*argv)[1]) { case 'l': max_klen= atoi(operand); break; case 'f': fflag++; break; case 'c': strcpy(COMFILE, operand); break; case 'A': Aflag++; break; case 'p': strcpy(INDEX,operand); break; case 'd': p = &argv[0][2]; if (!p) { argv++; p = &argv[0][0]; } strreplace(COMFILE, BMACLIB, p); strcpy(BMACLIB, p); break; default: fprintf(stderr, "unknown flag '%s'\n", *argv); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -