\n");
+ wc_printf("\n");
- wc_printf(""
+ wc_printf(""
"%s | "
"%s | "
"%s | "
@@ -897,7 +1103,7 @@ void do_edit_vcard(long msgnum, char *partnum,
wc_printf("");
- wc_printf("");
+ wc_printf("");
wc_printf("");
wc_printf(_("PO box:"));
wc_printf(" | "
@@ -973,14 +1179,14 @@ void do_edit_vcard(long msgnum, char *partnum,
wc_printf("\n");
@@ -1005,7 +1211,7 @@ void do_edit_vcard(long msgnum, char *partnum,
);
wc_printf(" | \n");
- do_template("endbox", NULL);
+ do_template("box_end");
wDumpContent(1);
if (Msg != NULL) {
DestroyMessageSummary(Msg);
@@ -1031,11 +1237,11 @@ void edit_vcard(void) {
* parse edited vcard from the browser
*/
void submit_vcard(void) {
- wcsession *WCC = WC;
struct vCard *v;
char *serialized_vcard;
char buf[SIZ];
StrBuf *Buf;
+ const StrBuf *ForceRoom;
int i;
if (!havebstr("ok_button")) {
@@ -1044,19 +1250,13 @@ void submit_vcard(void) {
}
if (havebstr("force_room")) {
- if (gotoroom(sbstr("force_room")) != 200) {
- StrBufAppendBufPlain(WCC->ImportantMsg,
- _("Unable to enter the room to save your message"),
- -1, 0);
- StrBufAppendBufPlain(WCC->ImportantMsg,
- HKEY(": "), 0);
- StrBufAppendBuf(WCC->ImportantMsg, sbstr("force_room"), 0);
- StrBufAppendBufPlain(WCC->ImportantMsg,
- HKEY("; "), 0);
-
- StrBufAppendBufPlain(WCC->ImportantMsg,
- _("Aborting."),
- -1, 0);
+ ForceRoom = sbstr("force_room");
+ if (gotoroom(ForceRoom) != 200) {
+ AppendImportantMessage(_("Unable to enter the room to save your message"), -1);
+ AppendImportantMessage(HKEY(": "));
+ AppendImportantMessage(SKEY(ForceRoom));
+ AppendImportantMessage(HKEY("; "));
+ AppendImportantMessage(_("Aborting."), -1);
if (!strcmp(bstr("return_to"), "select_user_to_edit")) {
select_user_to_edit(NULL);
@@ -1074,27 +1274,23 @@ void submit_vcard(void) {
}
}
- sprintf(buf, "ENT0 1|||4||");
- serv_puts(buf);
- serv_getln(buf, sizeof buf);
- if (buf[0] != '4') {
+ Buf = NewStrBuf();
+ serv_write(HKEY("ENT0 1|||4||||||1\n"));
+ if (!StrBuf_ServGetln(Buf) && (GetServerStatus(Buf, NULL) != 4))
+ {
edit_vcard();
return;
}
/* Make a vCard structure out of the data supplied in the form */
- Buf = NewStrBuf();
StrBufPrintf(Buf, "begin:vcard\r\n%s\r\nend:vcard\r\n",
bstr("extrafields")
);
v = VCardLoad(Buf); /* Start with the extra fields */
- FreeStrBuf(&Buf);
if (v == NULL) {
- safestrncpy(WCC->ImportantMessage,
- _("An error has occurred."),
- sizeof WCC->ImportantMessage
- );
+ AppendImportantMessage(_("An error has occurred."), -1);
edit_vcard();
+ FreeStrBuf(&Buf);
return;
}
@@ -1136,20 +1332,20 @@ void submit_vcard(void) {
serialized_vcard = vcard_serialize(v);
vcard_free(v);
if (serialized_vcard == NULL) {
- safestrncpy(WCC->ImportantMessage,
- _("An error has occurred."),
- sizeof WCC->ImportantMessage
- );
+ AppendImportantMessage(_("An error has occurred."), -1);
edit_vcard();
+ FreeStrBuf(&Buf);
return;
}
- serv_puts("Content-type: text/x-vcard; charset=UTF-8");
- serv_puts("");
+ serv_write(HKEY("Content-type: text/x-vcard; charset=UTF-8\n"));
+ serv_write(HKEY("\n"));
serv_printf("%s\r\n", serialized_vcard);
- serv_puts("000");
+ serv_write(HKEY("000\n"));
free(serialized_vcard);
+ StrBuf_ServGetln(Buf);
+
if (!strcmp(bstr("return_to"), "select_user_to_edit")) {
select_user_to_edit(NULL);
}
@@ -1162,6 +1358,7 @@ void submit_vcard(void) {
else {
readloop(readnew, eUseDefault);
}
+ FreeStrBuf(&Buf);
}
@@ -1214,7 +1411,9 @@ int vcard_GetParamsGetServerCall(SharedMessageStatus *Stat,
void **ViewSpecific,
long oper,
char *cmd,
- long len)
+ long len,
+ char *filter,
+ long flen)
{
vcardview_struct *VS;
@@ -1288,6 +1487,21 @@ int vcard_Cleanup(void **ViewSpecific)
return 0;
}
+void
+ServerStartModule_VCARD
+(void)
+{
+ VCToEnum = NewHash(0, NULL);
+
+}
+
+void
+ServerShutdownModule_VCARD
+(void)
+{
+ DeleteHash(&VCToEnum);
+}
+
void
InitModule_VCARD
(void)
@@ -1296,6 +1510,7 @@ InitModule_VCARD
VIEW_ADDRESSBOOK,
vcard_GetParamsGetServerCall,
NULL,
+ NULL,
NULL,
vcard_LoadMsgFromServer,
vcard_RenderView_or_Tail,
@@ -1303,5 +1518,41 @@ InitModule_VCARD
WebcitAddUrlHandler(HKEY("edit_vcard"), "", 0, edit_vcard, 0);
WebcitAddUrlHandler(HKEY("submit_vcard"), "", 0, submit_vcard, 0);
WebcitAddUrlHandler(HKEY("vcardphoto"), "", 0, display_vcard_photo_img, NEED_URL);
+
+ Put(VCToEnum, HKEY("n"), (void*)VC_n, reference_free_handler);
+ Put(VCToEnum, HKEY("fn"), (void*)VC_fn, reference_free_handler);
+ Put(VCToEnum, HKEY("title"), (void*)VC_title, reference_free_handler);
+ Put(VCToEnum, HKEY("org"), (void*)VC_org, reference_free_handler);
+ Put(VCToEnum, HKEY("email"), (void*)VC_email, reference_free_handler);
+ Put(VCToEnum, HKEY("tel"), (void*)VC_tel, reference_free_handler);
+ Put(VCToEnum, HKEY("tel_tel"), (void*)VC_tel_tel, reference_free_handler);
+ Put(VCToEnum, HKEY("tel_work"), (void*)VC_tel_work, reference_free_handler);
+ Put(VCToEnum, HKEY("tel_home"), (void*)VC_tel_home, reference_free_handler);
+ Put(VCToEnum, HKEY("tel_cell"), (void*)VC_tel_cell, reference_free_handler);
+ Put(VCToEnum, HKEY("adr"), (void*)VC_adr, reference_free_handler);
+ Put(VCToEnum, HKEY("photo"), (void*)VC_photo, reference_free_handler);
+ Put(VCToEnum, HKEY("version"), (void*)VC_version, reference_free_handler);
+ Put(VCToEnum, HKEY("rev"), (void*)VC_rev, reference_free_handler);
+ Put(VCToEnum, HKEY("label"), (void*)VC_label, reference_free_handler);
+
+
+ RegisterNamespace("VC", 1, 2, tmplput_VCARD_ITEM, NULL, CTX_VCARD);
+
+ REGISTERTokenParamDefine(VC_n);
+ REGISTERTokenParamDefine(VC_fn);
+ REGISTERTokenParamDefine(VC_title);
+ REGISTERTokenParamDefine(VC_org);
+ REGISTERTokenParamDefine(VC_email);
+ REGISTERTokenParamDefine(VC_tel);
+ REGISTERTokenParamDefine(VC_tel_tel);
+ REGISTERTokenParamDefine(VC_tel_work);
+ REGISTERTokenParamDefine(VC_tel_home);
+ REGISTERTokenParamDefine(VC_tel_cell);
+ REGISTERTokenParamDefine(VC_adr);
+ REGISTERTokenParamDefine(VC_photo);
+ REGISTERTokenParamDefine(VC_version);
+ REGISTERTokenParamDefine(VC_rev);
+ REGISTERTokenParamDefine(VC_label);
+
}
|
|
|