13 #include <sys/types.h>
15 #include <sys/socket.h>
17 #include <netinet/in.h>
27 #include "webserver.h"
32 "January", "February", "March", "April", "May", "June", "July",
33 "August", "September", "October", "November", "December"
36 void display_icaltimetype_as_webform(struct icaltimetype *t, char *prefix) {
45 this_year = tm->tm_year + 1900;
47 if (t == NULL) return;
50 wprintf("<SELECT NAME=\"%s_month\" SIZE=\"1\">\n", prefix);
51 for (i=1; i<=12; ++i) {
52 wprintf("<OPTION %s VALUE=\"%d\">%s</OPTION>\n",
53 ((t->month == i) ? "SELECTED" : ""),
58 wprintf("</SELECT>\n");
61 wprintf("<SELECT NAME=\"%s_day\" SIZE=\"1\">\n", prefix);
62 for (i=1; i<=31; ++i) {
63 wprintf("<OPTION %s VALUE=\"%d\">%d</OPTION>\n",
64 ((t->day == i) ? "SELECTED" : ""),
68 wprintf("</SELECT>\n");
71 wprintf("<SELECT NAME=\"%s_year\" SIZE=\"1\">\n", prefix);
72 if ((this_year - t->year) > span) {
73 wprintf("<OPTION SELECTED VALUE=\"%d\">%d</OPTION>\n",
76 for (i=(this_year-span); i<=(this_year+span); ++i) {
77 wprintf("<OPTION %s VALUE=\"%d\">%d</OPTION>\n",
78 ((t->year == i) ? "SELECTED" : ""),
82 if ((t->year - this_year) > span) {
83 wprintf("<OPTION SELECTED VALUE=\"%d\">%d</OPTION>\n",
86 wprintf("</SELECT>\n");
89 wprintf("<SELECT NAME=\"%s_hour\" SIZE=\"1\">\n", prefix);
90 for (i=0; i<=23; ++i) {
91 wprintf("<OPTION %s VALUE=\"%d\">%d</OPTION>\n",
92 ((t->hour == i) ? "SELECTED" : ""),
96 wprintf("</SELECT>\n");
99 wprintf("<SELECT NAME=\"%s_minute\" SIZE=\"1\">\n", prefix);
100 for (i=0; i<=59; ++i) {
101 wprintf("<OPTION %s VALUE=\"%d\">%d</OPTION>\n",
102 ((t->minute == i) ? "SELECTED" : ""),
106 wprintf("</SELECT>\n");
111 struct icaltimetype icaltime_from_webform(char *prefix) {
112 struct icaltimetype t;
117 t = icaltime_from_timet(now, 0);
119 sprintf(vname, "%s_month", prefix); t.month = atoi(bstr(vname));
120 sprintf(vname, "%s_day", prefix); t.day = atoi(bstr(vname));
121 sprintf(vname, "%s_year", prefix); t.year = atoi(bstr(vname));
122 sprintf(vname, "%s_hour", prefix); t.hour = atoi(bstr(vname));
123 sprintf(vname, "%s_minute", prefix); t.minute = atoi(bstr(vname));
125 t = icaltime_normalize(t);