]> git.pond.sub.org Git - empserver/blobdiff - src/lib/common/keyword.c
Indented with src/scripts/indent-emp.
[empserver] / src / lib / common / keyword.c
index 98565382dfb5157d967e456805573efa80f4ab13..6a502d8b5f1e3c08caf8af2ed973572adae08dc5 100644 (file)
 #include "common.h"
 
 struct kwtab {
-       struct kwtab *next;
-       s_char *name;
-       s_char *text;
+    struct kwtab *next;
+    s_char *name;
+    s_char *text;
 };
 
 struct kwtab *kw_list;
 
 int
-kw_read(FILE *fp)
+kw_read(FILE * fp)
 {
-       register struct kwtab *kw;
-       register struct kwtab *next;
-       s_char  buf[255];
-       s_char  *p;
-       int     n;
-
-       for (kw = kw_list; kw != 0; kw = next) {
-               next = kw->next;
-               free(kw->name);
-               free(kw->text);
-               free(kw);
+    register struct kwtab *kw;
+    register struct kwtab *next;
+    s_char buf[255];
+    s_char *p;
+    int n;
+
+    for (kw = kw_list; kw != 0; kw = next) {
+       next = kw->next;
+       free(kw->name);
+       free(kw->text);
+       free(kw);
+    }
+    kw_list = 0;
+    for (n = 0; fgets(buf, sizeof(buf), fp) != 0; n++) {
+       /* Allow for comments.. any line starting with # */
+       if (buf[0] == '#')
+           continue;
+       p = rindex(buf, '\n');
+       if (p != 0)
+           *p = 0;
+       if ((p = index(buf, ':')) == 0) {
+           logerror("kw_read: Bad keyword line #%d\n", n);
+           return 0;
        }
-       kw_list = 0;
-       for (n=0; fgets(buf, sizeof(buf), fp) != 0; n++) {
-               /* Allow for comments.. any line starting with # */
-               if (buf[0] == '#')
-                       continue;
-               p = rindex(buf, '\n');
-               if (p != 0)
-                       *p = 0;
-               if ((p = index(buf, ':')) == 0) {
-                       logerror("kw_read: Bad keyword line #%d\n", n);
-                       return 0;
-               }
-               *p++ = 0;
-               while (*p && isspace(*p))
-                       p++;
-               kw = (struct kwtab *) malloc(sizeof(*kw));
-               kw->name = strcpy(malloc(strlen(buf)+1), buf);
-               kw->text = strcpy(malloc(strlen(p)+1), p);
-               kw->next = kw_list;
-               kw_list = kw;
-       }
-       return n;
+       *p++ = 0;
+       while (*p && isspace(*p))
+           p++;
+       kw = (struct kwtab *)malloc(sizeof(*kw));
+       kw->name = strcpy(malloc(strlen(buf) + 1), buf);
+       kw->text = strcpy(malloc(strlen(p) + 1), p);
+       kw->next = kw_list;
+       kw_list = kw;
+    }
+    return n;
 }
 
 s_char *
 kw_find(s_char *name)
 {
-       register struct kwtab *kw;
+    register struct kwtab *kw;
 
-       for (kw = kw_list; kw != 0; kw = kw->next) {
-               if (strcmp(kw->name, name) == 0)
-                       return kw->text;
-       }
-       return 0;
+    for (kw = kw_list; kw != 0; kw = kw->next) {
+       if (strcmp(kw->name, name) == 0)
+           return kw->text;
+    }
+    return 0;
 }
 
 #define CF_VALUE       1
@@ -109,91 +109,94 @@ kw_find(s_char *name)
 s_char *
 kw_parse(int type, s_char *text, int *data)
 {
-       s_char  *get_time(s_char *ptr, int *data);
-       s_char  *weekday(s_char *ptr, int *data);
-       s_char  *next;
-
-       while (isspace(*text))
-               text++;
-       switch (type) {
-       case CF_VALUE:
-               *data = atoip(&text);
-               break;
-       case CF_TIME:
-               text = get_time(text, &data[0]);
-               break;
-       case CF_TIMERANGE:
-               if ((next = index(text, '-')) == 0)
-                       return 0;
-               next++;
-               if ((text = get_time(text, &data[0])) == 0)
-                       return 0;
-               text = get_time(next, &data[1]);
-               break;
-       case CF_WEEKDAY:
-               text = weekday(text, &data[0]);
-               break;
-       default:
-               text = 0;
-               break;
-       }
-       return text;
+    s_char *get_time(s_char *ptr, int *data);
+    s_char *weekday(s_char *ptr, int *data);
+    s_char *next;
+
+    while (isspace(*text))
+       text++;
+    switch (type) {
+    case CF_VALUE:
+       *data = atoip(&text);
+       break;
+    case CF_TIME:
+       text = get_time(text, &data[0]);
+       break;
+    case CF_TIMERANGE:
+       if ((next = index(text, '-')) == 0)
+           return 0;
+       next++;
+       if ((text = get_time(text, &data[0])) == 0)
+           return 0;
+       text = get_time(next, &data[1]);
+       break;
+    case CF_WEEKDAY:
+       text = weekday(text, &data[0]);
+       break;
+    default:
+       text = 0;
+       break;
+    }
+    return text;
 }
 
 struct day {
-       s_char *string;
-       int day[7];
+    s_char *string;
+    int day[7];
 } day[] = {
-        { "smtwtfs", { -1, 0, -1, 2, -1, 4, -1  } },
-        { "uouehra", {  0,  1, 2,  3, 4,  5,  6 } }
+    {
+       "smtwtfs", {
+    -1, 0, -1, 2, -1, 4, -1}}, {
+       "uouehra", {
+    0, 1, 2, 3, 4, 5, 6}}
 };
 
 s_char *
 weekday(s_char *ptr, int *data)
 {
-       register s_char *string;
-       register int c;
-       register int n;
-
-       c = *ptr++;
-       if (isupper(c))
-               c = tolower(c);
-       string = day[0].string;
-       for (n=0; n<7; n++) {
-               if (string[n] != c)
-                       continue;
-               if (day[0].day[n] >= 0)
-                       break;
-               if (day[1].string[n] == *ptr)
-                       break;
-       }
-       if (n == 7)
-               return 0;
-       *data = day[1].day[n];
-       while (*ptr && !isspace(*ptr))
-               ptr++;
-       return ptr;
+    register s_char *string;
+    register int c;
+    register int n;
+
+    c = *ptr++;
+    if (isupper(c))
+       c = tolower(c);
+    string = day[0].string;
+    for (n = 0; n < 7; n++) {
+       if (string[n] != c)
+           continue;
+       if (day[0].day[n] >= 0)
+           break;
+       if (day[1].string[n] == *ptr)
+           break;
+    }
+    if (n == 7)
+       return 0;
+    *data = day[1].day[n];
+    while (*ptr && !isspace(*ptr))
+       ptr++;
+    return ptr;
 }
 
 
 s_char *
 get_time(s_char *ptr, int *data)
 {
-       int     hour;
-       int     minute;
+    int hour;
+    int minute;
 
+    if (!isdigit(*ptr))
+       return 0;
+    hour = atoip(&ptr);
+    minute = 0;
+    if (*ptr) {
+       if (*ptr != ':')
+           return 0;
+       ptr++;
        if (!isdigit(*ptr))
-               return 0;
-       hour = atoip(&ptr);
-       minute = 0;
-       if (*ptr) {
-               if (*ptr != ':')
-                       return 0;
-               ptr++;
-               if (!isdigit(*ptr))
-                       return 0;
-               minute = atoip(&ptr);
-       }
-       *data = (hour * 60) + minute;
-       return ptr;
+           return 0;
+       minute = atoip(&ptr);
+    }
+    *data = (hour * 60) + minute;
+    return ptr;
 }