Subversion Repositories wimsdev

Rev

Rev 8659 | Rev 9090 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8659 Rev 8863
Line 105... Line 105...
105
 
105
 
106
    for(r=strstr(p,w);r!=NULL &&
106
    for(r=strstr(p,w);r!=NULL &&
107
    ( (r>p && !isspace(*(r-1))) || (!isspace(*(r+strlen(w))) && *(r+strlen(w))!=0) );
107
    ( (r>p && !isspace(*(r-1))) || (!isspace(*(r+strlen(w))) && *(r+strlen(w))!=0) );
108
    r=strstr(r+1,w));
108
    r=strstr(r+1,w));
109
    return r;
109
    return r;
110
}
-
 
111
 
-
 
112
/*  strip trailing spaces; return string end. */
-
 
113
char *strip_trailing_spaces2(char *p)
-
 
114
{
-
 
115
    char *pp;
-
 
116
    if(*p==0) return p;
-
 
117
    for(pp=p+strlen(p)-1; pp>=p && isspace(*pp); *(pp--)=0);
-
 
118
    return pp;
-
 
119
}
110
}
120
 
111
 
121
char *find_tag_end(char *p)
112
char *find_tag_end(char *p)
122
{
113
{
123
    char *pp;
114
    char *pp;
Line 134... Line 125...
134
        pp=strchr(pp+1,'\'');
125
        pp=strchr(pp+1,'\'');
135
        if(pp==NULL) return p+strlen(p); else continue;
126
        if(pp==NULL) return p+strlen(p); else continue;
136
    }
127
    }
137
    }
128
    }
138
    if(*pp=='>') pp++; return pp;
129
    if(*pp=='>') pp++; return pp;
139
}
130
}
140
 
131
 
141
char *find_tag(char *p, char *tag)
132
char *find_tag(char *p, char *tag)
142
{
133
{
143
    char *pp;
134
    char *pp;
144
    int len;
135
    int len;
145
    len=strlen(tag);
136
    len=strlen(tag);
146
    for(pp=strchr(p,'<'); pp!=NULL && *pp; pp=strchr(pp+1,'<')) {
137
    for(pp=strchr(p,'<'); pp!=NULL && *pp; pp=strchr(pp+1,'<')) {
147
    if(strncasecmp(pp+1,tag,len)==0 && !isalnum(*(pp+1+len))) return pp;
138
    if(strncasecmp(pp+1,tag,len)==0 && !isalnum(*(pp+1+len))) return pp;
148
    }
139
    }
149
    return p+strlen(p);
140
    return p+strlen(p);
150
}
141
}
151
 
142
 
152
/*  remove all html tags */
143
/*  remove all html tags */
153
void detag(char *p)
144
void detag(char *p)
154
{
145
{
155
    char *pp, *p2;
146
    char *pp, *p2;
156
    for(pp=strchr(p,'<'); pp!=NULL; pp=strchr(pp,'<')) {
147
    for(pp=strchr(p,'<'); pp!=NULL; pp=strchr(pp,'<')) {
157
    p2=find_tag_end(pp);
148
    p2=find_tag_end(pp);
158
    if(*p2==0) {*pp=0; return; }
149
    if(*p2==0) {*pp=0; return; }
159
    ovlstrcpy(pp,p2);
150
    ovlstrcpy(pp,p2);
160
    }
151
    }
161
}
-
 
162
 
-
 
163
/*  modify a string. Bufferlen must be at least MAX_LINELEN */
-
 
164
void string_modify3(char *start, char *bad_beg, char *bad_end, char *good,...)
-
 
165
{
-
 
166
    char buf[MAX_LINELEN+1];
-
 
167
    va_list vp;
-
 
168
 
-
 
169
    va_start(vp,good);
-
 
170
    vsnprintf(buf,sizeof(buf),good,vp); va_end(vp);
-
 
171
    if(strlen(start)-(bad_end-bad_beg)+strlen(buf)>=MAX_LINELEN)
-
 
172
      return; /* this is an error situation. */
-
 
173
    strcat(buf,bad_end);
-
 
174
    ovlstrcpy(bad_beg,buf);
-
 
175
}
152
}
176
 
153
 
177
/* add a space after comma to see end of words */
154
/* add a space after comma to see end of words */
178
 
155
 
179
void comma(char *p)
156
void comma(char *p)