Update to the new FSF address
[infodrom/cgilib] / cgi.h
diff --git a/cgi.h b/cgi.h
index f5ee834..03414fb 100644 (file)
--- a/cgi.h
+++ b/cgi.h
@@ -1,6 +1,6 @@
 /*
-    cgi.h - Some simple routines for cgi programming
-    Copyright (c) 1996-8  Martin Schulze <joey@infodrom.north.de>
+    cgi.h - Routines for CGI programming
+    Copyright (c) 1996-8,2007,8  Martin Schulze <joey@infodrom.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+    along with this program; if not, write to the Free Software Foundation
+    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #ifndef _CGI_H_
 #define _CGI_H_
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct var_s {
        char    *name,
                *value;
@@ -33,22 +37,30 @@ typedef struct cookie_s {
                *domain;
 } s_cookie;
 
+typedef struct file_s {
+       char    *name,
+               *type,
+               *filename,
+               *tmpfile;
+} s_file;
+
 typedef struct cgi_s {
        s_var **vars;
        s_cookie **cookies;
+       s_file **files;
 } s_cgi;
 
 /* cgiSetHeader
  * 
  *  Sets additional HTTP header lines to be printed with cgiHeader
  */
-int cgiSetHeader (char *name, char *value);
+int cgiSetHeader (const char *name, const char *value);
 
 /* cgiSetType
  * 
  *  Sets result type for HTTP
  */
-int cgiSetType (char *type);
+int cgiSetType (const char *type);
 
 /* cgiHeader
  * 
@@ -96,10 +108,22 @@ s_cookie *cgiGetCookie (s_cgi *parms, const char *name);
 
 /* cgiGetCookies
  *
- * Returns a list of name of all cookies.
+ * Returns a list of names of all cookies.
  */
 char **cgiGetCookies (s_cgi *parms);
 
+/* cgiGetFiles
+ *
+ * Returns a list of names of all files.
+ */
+char **cgiGetFiles (s_cgi *parms);
+
+/* cgiGetFile
+ *
+ * Return data structure for CGI file variable
+ */
+s_file *cgiGetFile (s_cgi *parms, const char *name);
+
 /* cgiFreeList
  *
  * Frees a list as returned by cgiGetVariables() and cgiGetCookies()
@@ -112,4 +136,14 @@ void cgiFreeList (char **list);
  */
 void cgiFree (s_cgi *parms);
 
+/* cgiEscape
+ *
+ * Escapes <&> in a string
+ */
+char *cgiEscape (char *string);
+
+#ifdef __cplusplus
+extern }
+#endif
+
 #endif /* _CGI_H_ */