]> code.citadel.org Git - citadel.git/blobdiff - webcit/notes.c
* Header file adjustments to make it work on FreeBSD
[citadel.git] / webcit / notes.c
index 8fccbdcdffb4df1b0d17b43c0d6598e25961c560..10dfcff6aa49c931b34a6fee7ee07b627197f68a 100644 (file)
@@ -7,24 +7,71 @@
 
 #include <ctype.h>
 #include <stdlib.h>
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
 #include <stdio.h>
+#ifdef HAVE_FCNTL_H
 #include <fcntl.h>
+#endif
 #include <signal.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_LIMITS_H
 #include <limits.h>
+#endif
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
 #include <string.h>
 #include <pwd.h>
 #include <errno.h>
 #include <stdarg.h>
-#include <time.h>
+#include <pthread.h>
+#include <signal.h>
 #include "webcit.h"
 #include "webserver.h"
 
 void display_note(long msgnum) {
-       wprintf("<TABLE border=2><TR><TD>\n");
-       wprintf("FIXME note #%ld\n", msgnum);
-       wprintf("</TD></TR></TABLE\n");
+       char buf[SIZ];
+       char notetext[SIZ];
+       char display_notetext[SIZ];
+       int in_text = 0;
+       int i;
+
+       wprintf("<IMG ALIGN=MIDDLE SRC=\"/static/storenotes_48x.gif\">\n");
+
+       serv_printf("MSG0 %ld", msgnum);
+       serv_getln(buf, sizeof buf);
+       if (buf[0] != '1') {
+               wprintf("%s<br />\n", &buf[4]);
+               return;
+       }
+
+       strcpy(notetext, "");
+       while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
+
+               /* Fill the buffer to at least 256 characters */
+               if ( (in_text) && (strlen(notetext) < 256) ) {
+                       strcat(notetext, buf);
+               }
+
+               if ( (!in_text) && (!strcasecmp(buf, "text")) ) {
+                       in_text = 1;
+               }
+       }
+
+       /* Now sanitize the buffer, and shorten it to just a small snippet */
+       for (i=0; i<strlen(notetext); ++i) {
+               if (isspace(notetext[i])) notetext[i] = ' ';
+       }
+       strcpy(&notetext[72], "...");
+
+       /* Make it HTML-happy and print it. */
+       stresc(display_notetext, notetext, 1, 1);
+       wprintf("%s<br />\n", display_notetext);
 }