add setting of variables
authortridge <>
Thu, 10 Jan 2002 21:57:53 +0000 (21:57 +0000)
committertridge <>
Thu, 10 Jan 2002 21:57:53 +0000 (21:57 +0000)
tserver/cgi.c
tserver/template.c
tserver/util.c

index 53d5e28..79a430f 100644 (file)
@@ -455,6 +455,7 @@ static int setup_standalone(struct cgi_state *cgi)
        if (!url) {
                cgi->http_error(cgi, "400 Bad Request", "",
                                "You must specify a GET or POST request");
+               exit(1);
        }
 
        /* trim the URL */
index 3fec6c0..c8c9ba3 100644 (file)
@@ -79,6 +79,19 @@ static void process_variable(struct template_state *tmpl, const char *tag)
        }
 }
 
+/* process setting a template variable */
+static void process_set_var(struct template_state *tmpl, char *tag)
+{
+       char *p;
+       p = strchr(tag, '=');
+       if (!p) return;
+       *p++ = 0;
+       trim_tail(tag, " \t");
+       trim_tail(p, " \t");
+       while (isspace(*p)) p++;
+       tmpl->put(tmpl, tag, p, NULL);
+}
+
 /* process a template variable with quote escaping */
 static void process_escaped_variable(struct template_state *tmpl, const char *tag)
 {
@@ -220,9 +233,16 @@ static void process_tag(struct template_state *tmpl, const char *tag)
        case '@':
                process_c_call(tmpl, tag2+1);
                break;
+       case '#':
+               /* its a comment, ignore it */
+               break;
        default:
-               /* an include file */
-               tmpl->process(tmpl, tag2);
+               if (strchr(tag2, '=')) {
+                       process_set_var(tmpl, tag2);
+               } else {
+                       /* an include file */
+                       tmpl->process(tmpl, tag2);
+               }
        }
        free(tag2);
 
index 32c0b8b..c42fcc0 100644 (file)
@@ -98,3 +98,5 @@ void trim_tail(char *s, char *trim_chars)
        while (len > 0 && strchr(trim_chars, s[len-1])) len--;
        s[len] = 0;
 }
+
+