Rev 8896 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8896 | Rev 12247 | ||
---|---|---|---|
Line 22... | Line 22... | ||
22 | #include "../Lib/libwims.h" |
22 | #include "../Lib/libwims.h" |
23 | #include "msg2wims.h" |
23 | #include "msg2wims.h" |
24 | 24 | ||
25 | void msg_error(char *p) |
25 | void msg_error(char *p) |
26 | { |
26 | { |
27 |
|
27 | fprintf(stderr,"%s\n",p); |
28 | } |
28 | } |
29 | 29 | ||
30 | void bailout(int i1, int i2, char *msg) |
30 | void bailout(int i1, int i2, char *msg) |
31 | { |
31 | { |
32 |
|
32 | if(*msg) msg_error(msg); |
33 |
|
33 | printf("%d %d",i1,i2); exit(0); |
34 | } |
34 | } |
35 | 35 | ||
36 | /* find html tag end */ |
36 | /* find html tag end */ |
37 | char *find_tag_end(char *p) |
37 | char *find_tag_end(char *p) |
38 | { |
38 | { |
39 |
|
39 | char *pp; |
40 | 40 | ||
41 |
|
41 | p++; if(*p=='!') { |
42 |
|
42 | if(*(p+1)=='-' && *(p+2)=='-') { |
43 |
|
43 | pp=strstr(p,"-->"); if(pp==NULL) return p+strlen(p); |
44 | else return p+2; |
- | |
45 | } |
- | |
46 | } |
- | |
47 | /* else */ { |
- | |
48 | pp=strchr(p,'>'); if(pp==NULL) return p+strlen(p); |
- | |
49 | else return |
44 | else return p+2; |
50 | } |
45 | } |
- | 46 | } |
|
- | 47 | /* else */ { |
|
- | 48 | pp=strchr(p,'>'); |
|
- | 49 | if(pp==NULL) return p+strlen(p); |
|
- | 50 | else return pp; |
|
- | 51 | } |
|
51 | /* Now the following is not executed. */ |
52 | /* Now the following is not executed. */ |
52 | /* for(pp=p;*pp;pp++) { |
53 | /* for(pp=p;*pp;pp++) { |
53 | switch(*pp) { |
54 | switch(*pp) { |
54 | case '>': return pp; |
55 | case '>': return pp; |
55 | case '"': { |
56 | case '"': { |
Line 59... | Line 60... | ||
59 | default: break; |
60 | default: break; |
60 | } |
61 | } |
61 | } |
62 | } |
62 | return pp; |
63 | return pp; |
63 | */ |
64 | */ |
64 | } |
65 | } |
65 | 66 | ||
66 | /* modify a string. Bufferlen must be at least MAX_LINELEN */ |
67 | /* modify a string. Bufferlen must be at least MAX_LINELEN */ |
67 | void string_modify2(char *start, char *bad_beg, char *bad_end, char *good,...) |
68 | void string_modify2(char *start, char *bad_beg, char *bad_end, char *good,...) |
68 | { |
69 | { |
69 |
|
70 | char buf[MAX_LINELEN+1]; |
70 |
|
71 | va_list vp; |
71 | 72 | ||
72 |
|
73 | va_start(vp,good); |
73 |
|
74 | vsnprintf(buf,sizeof(buf),good,vp); va_end(vp); |
74 |
|
75 | if(strlen(start)-(bad_end-bad_beg)+strlen(buf)>=MAX_LINELEN) |
75 |
|
76 | bailout(inlen,0,"string too long"); |
76 |
|
77 | strcat(buf,bad_end); |
77 |
|
78 | ovlstrcpy(bad_beg,buf); |
78 | } |
79 | } |
79 | 80 | ||
80 | /* strcmp() to be used within qsort(). */ |
81 | /* strcmp() to be used within qsort(). */ |
81 | int _scmp(const void *p1, const void *p2) |
82 | int _scmp(const void *p1, const void *p2) |
82 | { |
83 | { |
83 |
|
84 | const char **s1,**s2; |
84 | 85 | ||
85 |
|
86 | s1=(const char **) p1; s2=(const char **) p2; |
86 |
|
87 | return strcmp(*s1,*s2); |
87 | } |
88 | } |
88 | 89 | ||
89 | char *substit(char *p) |
90 | char *substit(char *p) |
90 | { |
91 | { |
91 |
|
92 | char *pp; |
92 |
|
93 | while((pp=strchr(p,'$'))!=NULL) *pp=' '; |
93 |
|
94 | return p; |
94 | } |
95 | } |
95 | - |