From 9b815ab35c3eff031a958a368309cda13ce3aa2c Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Wed, 6 Mar 2002 05:22:33 +0000 Subject: [PATCH] * More vcard editing form stuff --- webcit/ChangeLog | 4 +++- webcit/vcard_edit.c | 57 +++++++++++++++++++++++++++++++++++++++++---- webcit/webcit.c | 2 ++ webcit/webcit.h | 1 + 4 files changed, 58 insertions(+), 6 deletions(-) diff --git a/webcit/ChangeLog b/webcit/ChangeLog index dcc1a6c92..cb15edbfb 100644 --- a/webcit/ChangeLog +++ b/webcit/ChangeLog @@ -1,4 +1,7 @@ $Log$ +Revision 323.9 2002/03/06 05:22:33 ajc +* More vcard editing form stuff + Revision 323.8 2002/03/05 05:05:06 ajc * More vCard editing stuff @@ -735,4 +738,3 @@ Sun Dec 6 19:50:55 EST 1998 Art Cancro 1998-12-03 Nathan Bryant * webserver.c: warning fix - diff --git a/webcit/vcard_edit.c b/webcit/vcard_edit.c index f481807e1..e920ec942 100644 --- a/webcit/vcard_edit.c +++ b/webcit/vcard_edit.c @@ -134,7 +134,7 @@ void edit_vcard(void) { } else if (!strcasecmp(key, "tel;work")) { - extract_token(hometel, value, 0, ';'); + extract_token(worktel, value, 0, ';'); } else { @@ -149,7 +149,7 @@ void edit_vcard(void) { vcard_free(v); /* Display the form */ - wprintf("
\n"); + wprintf("\n"); wprintf("

" "Contact information for FIXME

\n"); @@ -167,7 +167,7 @@ void edit_vcard(void) { firstname); wprintf("", - firstname); + middlename); wprintf("", lastname); @@ -213,10 +213,57 @@ void edit_vcard(void) { "VALUE=\"%s\" MAXLENGTH=\"29\">\n", worktel); - wprintf("
\n"); + wprintf("\">\n"); + + wprintf("
\n"); + wprintf(""); + wprintf(""); + wprintf("
\n"); wDumpContent(1); } + + + +void submit_vcard(void) { + char buf[SIZ]; + + + sprintf(buf, "ENT0 1|||4||"); + fprintf(stderr, "%s\n", buf); + serv_puts(buf); + serv_gets(buf); + fprintf(stderr, "%s\n", buf); + if (buf[0] != '4') { + edit_vcard(); + return; + } + + serv_puts("Content-type: text/x-vcard"); + serv_puts(""); + serv_puts("begin:vcard"); + serv_printf("n:%s;%s;%s;%s;%s", + bstr("lastname"), + bstr("firstname"), + bstr("middlename"), + bstr("prefix"), + bstr("suffix") ); + serv_printf("adr:%s;%s;%s;%s;%s;%s;%s", + bstr("pobox"), + bstr("extadr"), + bstr("street"), + bstr("city"), + bstr("state"), + bstr("zipcode"), + bstr("country") ); + serv_printf("tel;home:%s", bstr("hometel") ); + serv_printf("tel;work:%s", bstr("worktel") ); + serv_printf("%s", bstr("extrafields") ); + serv_puts("end:vcard"); + serv_puts("000"); + + edit_vcard(); +} diff --git a/webcit/webcit.c b/webcit/webcit.c index 6020da81b..c285ab108 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -1033,6 +1033,8 @@ void session_loop(struct httprequest *req) output_mimepart(); } else if (!strcasecmp(action, "edit_vcard")) { edit_vcard(); + } else if (!strcasecmp(action, "submit_vcard")) { + submit_vcard(); } else if (!strcasecmp(action, "diagnostics")) { output_headers(1); diff --git a/webcit/webcit.h b/webcit/webcit.h index 5b98fb1e8..18cfeea3d 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -288,3 +288,4 @@ int decode_base64(char *dest, char *source); char *load_mimepart(long msgnum, char *partnum); int pattern2(char *search, char *patn); void edit_vcard(void); +void submit_vcard(void); -- 2.39.2