Mapper
pars_linen.c
Go to the documentation of this file.
1 #include "prototypes_new.h"
2 
3 char * pars_linen(buf,s,sbuf)
4 
5 char *buf,*s,*sbuf;
6 
7 {
8 
9 int i,slength,blength,iflag,jflag;
10 char *p;
11 char *q;
12 char *t;
13 int len;
14 char *savesbuf;
15 char tbuf[100];
16 
17 savesbuf=sbuf;
18 
19 blength=strlen(buf);
20 slength=strlen(s);
21 
22 for(i=0;i<blength-slength+1;i++) {
23 
24  if(strncasecmp(&buf[i],s,slength)!=0)
25  continue;
26 
27  p=&buf[i]+slength;
28 
29  iflag=0;
30  jflag=0;
31 
32  for(;;) {
33 
34  if(*p=='"') {
35 
36  iflag++;
37 
38  if(iflag==2)
39  break;
40  p++;
41 
42  continue;
43 
44  }
45 
46  if(*p=='\n')
47  *p=0;
48 
49  if(*p==0)
50  break;
51 
52  if(jflag==1 && iflag==0 && *p==' ')
53  break;
54 
55  if(*p==' ' && jflag==0 && iflag==0) {
56 
57  p++;
58  continue;
59 
60  }
61 
62 
63  jflag=1;
64  *sbuf=*p;
65  sbuf++;
66  p++;
67 
68  }
69 
70  *sbuf=0;
71 
72  if(*(savesbuf)=='$') {
73 
74  q=strchr(savesbuf,'/');
75 
76  *q=0;
77 
78  strcpy(tbuf,q+1);
79 
80  t=getenv(savesbuf+1);
81  len=0;
82 
83 
84  if(t==NULL) {
85 
86  printf("could not find %s\n",savesbuf+1);
87  exit(1);
88 
89 
90  }
91 
92 
93  if(t!=NULL) {
94 
95  strcpy(savesbuf,t);
96 
97  strcat(savesbuf,"/");
98 
99  strcat(savesbuf,tbuf);
100 
101 
102  }
103 
104  }
105 
106  return(&buf[i]+slength);
107 
108  }
109 
110 return(0);
111 
112 }
113 
114 
115 
static int i
struct stat buf
Definition: is_file_closed.c:8
printf("fbuf is %s\n", fbuf)
char * pars_linen(char *buf, char *s, char *sbuf)
Definition: pars_linen.c:3