Subversion Repositories wimsdev

Rev

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
    fprintf(stderr,"%s\n",p);
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
    if(*msg) msg_error(msg);
32
  if(*msg) msg_error(msg);
33
    printf("%d %d",i1,i2); exit(0);
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
    char *pp;
39
  char *pp;
40
 
40
 
41
    p++; if(*p=='!') {
41
  p++; if(*p=='!') {
42
      if(*(p+1)=='-' && *(p+2)=='-') {
42
    if(*(p+1)=='-' && *(p+2)=='-') {
43
          pp=strstr(p,"-->"); if(pp==NULL) return p+strlen(p);
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 pp;
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
    char buf[MAX_LINELEN+1];
70
  char buf[MAX_LINELEN+1];
70
    va_list vp;
71
  va_list vp;
71
 
72
 
72
    va_start(vp,good);
73
  va_start(vp,good);
73
    vsnprintf(buf,sizeof(buf),good,vp); va_end(vp);
74
  vsnprintf(buf,sizeof(buf),good,vp); va_end(vp);
74
    if(strlen(start)-(bad_end-bad_beg)+strlen(buf)>=MAX_LINELEN)
75
  if(strlen(start)-(bad_end-bad_beg)+strlen(buf)>=MAX_LINELEN)
75
      bailout(inlen,0,"string too long");
76
    bailout(inlen,0,"string too long");
76
    strcat(buf,bad_end);
77
  strcat(buf,bad_end);
77
    ovlstrcpy(bad_beg,buf);
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
    const char **s1,**s2;
84
  const char **s1,**s2;
84
 
85
 
85
    s1=(const char **) p1; s2=(const char **) p2;
86
  s1=(const char **) p1; s2=(const char **) p2;
86
    return strcmp(*s1,*s2);
87
  return strcmp(*s1,*s2);
87
}
88
}
88
 
89
 
89
char *substit(char *p)
90
char *substit(char *p)
90
{
91
{
91
    char *pp;
92
  char *pp;
92
    while((pp=strchr(p,'$'))!=NULL) *pp=' ';
93
  while((pp=strchr(p,'$'))!=NULL) *pp=' ';
93
    return p;
94
  return p;
94
}
95
}
95
 
-