]> code.citadel.org Git - citadel.git/blobdiff - webcit/autocompletion.c
Revert "serv_rssclient.c: style update"
[citadel.git] / webcit / autocompletion.c
diff --git a/webcit/autocompletion.c b/webcit/autocompletion.c
new file mode 100644 (file)
index 0000000..e936068
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * dynamic html autocompletion
+ *
+ * Copyright (c) 1996-2012 by the citadel.org team
+ *
+ * This program is open source software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include "webcit.h"
+
+/*
+ * Recipient autocompletion results
+ */
+void recp_autocomplete(char *partial) {
+       char buf[1024];
+       char name[128];
+
+       output_headers(0, 0, 0, 0, 0, 0);
+
+       hprintf("Content-type: text/html\r\n"
+               "Server: %s\r\n"
+               "Connection: close\r\n"
+               "Pragma: no-cache\r\n"
+               "Cache-Control: no-store\r\n"
+               "Expires: -1\r\n"
+               ,
+               PACKAGE_STRING);
+       begin_burst();
+
+       wc_printf("<ul>");
+
+       serv_printf("AUTO %s", partial);
+       serv_getln(buf, sizeof buf);
+       if (buf[0] == '1') {
+               while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
+                       extract_token(name, buf, 0, '|', sizeof name);
+                       wc_printf("<li>");
+                       escputs(name);
+                       wc_printf("</li>");
+               }
+       }
+
+       wc_printf("</ul>");
+
+       wc_printf("\r\n\r\n");
+       wDumpContent(0);
+}
+
+
+void _recp_autocomplete(void) {recp_autocomplete(bstr("recp"));}
+void _cc_autocomplete(void)   {recp_autocomplete(bstr("cc"));} 
+void _bcc_autocomplete(void)  {recp_autocomplete(bstr("bcc"));}
+
+
+void 
+InitModule_AUTO_COMPLETE
+(void)
+{
+       WebcitAddUrlHandler(HKEY("recp_autocomplete"), "", 0, _recp_autocomplete, 0);
+       WebcitAddUrlHandler(HKEY("cc_autocomplete"),   "", 0, _cc_autocomplete, 0);
+       WebcitAddUrlHandler(HKEY("bcc_autocomplete"),  "", 0, _bcc_autocomplete, 0);
+}