📄 glue4.c
字号:
#ifndef lintstatic char *sccsid = "@(#)glue4.c 4.1 (Berkeley) 5/6/83";#endif#include <stdio.h>#include <ctype.h>grepcall (in, out, arg)char *in, *out, *arg;{ char line[200], *s, argig[100], *cv[50]; char *inp, inb[500]; extern char gfile[]; FILE *qf, *gf; int c, oldc = 0, alph = 0, nv = 0; int sv0, sv1; strcpy (argig, arg); strcat(argig, ".ig"); strcpy (inp=inb, in); if (gfile[0]==0) sprintf(gfile, "/tmp/rj%dg", getpid());# if D1 fprintf(stderr, "in grepcall, gfile %s in %o out %o\n", gfile,in,out);# endif for(cv[nv++] = "fgrep"; c = *inp; inp++) { if (c== ' ') c = *inp = 0; else if (isupper(c)) *inp = tolower(c); alph = (c==0) ? 0 : alph+1; if (alph == 1) cv[nv++] = inp; if (alph > 6) *inp = 0; oldc=c; }# if D1 fprintf(stderr, "%d args set up\n", nv);# endif { sv0 = dup(0); close(0); if (open (argig, 0) != 0) err("Can't read fgrep index %s", argig); sv1 = dup(1); close(1); if (creat(gfile, 0666) != 1) err("Can't write fgrep output %s", gfile); fgrep(nv, cv);# if D1 fprintf(stderr, "fgrep returned, output is..\n");# endif close (0); dup(sv0); close(sv0); close (1); dup(sv1); close(sv1); }# if D1 fprintf(stderr, "back from fgrep\n");# endif gf = fopen(gfile, "r"); if (gf==NULL) err("can't read fgrep output %s", gfile); while (fgets(line, 100, gf) == line) { line[100]=0;# if D1 fprintf(stderr, "read line as //%s//\n",line);# endif for(s=line; *s && (*s != '\t'); s++); if (*s == '\t') { *s++ = '\n'; *s++ = 0; } if (line[0]) strcat(out, line);# if D1 fprintf(stderr, "out now /%s/\n",out);# endif while (*s) s++;# if D1 fprintf(stderr, "line %o s %o s-1 %o\n",line,s,s[-1]);# endif if (s[-1]!= '\n') while (!feof(gf) && getc(gf)!= '\n') ; } fclose(gf);# if D1 fprintf(stderr, "back from reading %, out %s\n",out);# else unlink (gfile);# endif return(0);}clfgrep(){ if (gfile[0]) unlink(gfile);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -