]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cgi-bin/template.c
Merge changes from CUPS 1.5svn-r9000.
[thirdparty/cups.git] / cgi-bin / template.c
index 6e9cc5ec6827a81df5fe5c80f3a426cd46dd90d3..8ec653878740158edcdca8b4819f7cda1b83ec84 100644 (file)
@@ -3,7 +3,7 @@
  *
  *   CGI template function.
  *
- *   Copyright 2007-2008 by Apple Inc.
+ *   Copyright 2007-2010 by Apple Inc.
  *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
@@ -369,6 +369,20 @@ cgi_copy(FILE *out,                        /* I - Output file */
 
         continue;
       }
+      else if (name[0] == '$')
+      {
+       /*
+        * Insert cookie value or nothing if not defined.
+       */
+
+        if ((value = cgiGetCookie(name + 1)) != NULL)
+         outptr = value;
+       else
+       {
+         outval[0] = '\0';
+         outptr    = outval;
+       }
+      }
       else
       {
        /*
@@ -437,7 +451,14 @@ cgi_copy(FILE *out,                        /* I - Output file */
         * Test for existance...
        */
 
-        result     = cgiGetArray(name, element) != NULL && outptr[0];
+        if (name[0] == '?')
+         result = cgiGetArray(name + 1, element) != NULL;
+       else if (name[0] == '#')
+         result = cgiGetVariable(name + 1) != NULL;
+        else
+          result = cgiGetArray(name, element) != NULL;
+
+       result     = result && outptr[0];
        compare[0] = '\0';
       }
       else