Added SILC Server library.
[silc.git] / lib / silcutil / silcvcard.c
index 7f27ea1343572bce49fd312e744cd94dace003f1..dad057e1f3a038671e8c2b6c67adce3d1672940f 100644 (file)
@@ -1,10 +1,10 @@
 /*
 
-  silcvcard.c 
+  silcvcard.c
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 2002 Pekka Riikonen
+  Copyright (C) 2002 - 2005 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
 /* $Id$ */
 /* Implementation of the VCard (RFC 2426) */
 
-#include "silcincludes.h"
+#include "silc.h"
 
 #define VCARD_HEADER "BEGIN:VCARD\n"
 #define VCARD_VERSION "VERSION:3.0\n"
@@ -43,44 +43,44 @@ unsigned char *silc_vcard_encode(SilcVCard vcard, SilcUInt32 *vcard_len)
        "FN:", vcard->full_name, "\n",
        "N:", vcard->family_name, ";", vcard->first_name, ";",
        vcard->middle_names, ";", vcard->prefix, ";", vcard->suffix, "\n",
-       SILC_STR_END);
+       SILC_STRFMT_END);
 
   if (vcard->nickname)
     silc_buffer_strformat(&buffer,
                          "NICKNAME:", vcard->nickname, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   if (vcard->bday)
     silc_buffer_strformat(&buffer,
                          "BDAY:", vcard->bday, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   if (vcard->title)
     silc_buffer_strformat(&buffer,
                          "TITLE:", vcard->title, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   if (vcard->role)
     silc_buffer_strformat(&buffer,
                          "ROLE:", vcard->role, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   if (vcard->org_name)
     silc_buffer_strformat(&buffer,
                          "ORG:", vcard->org_name, ";", vcard->org_unit, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   if (vcard->categories)
     silc_buffer_strformat(&buffer,
                          "CATEGORIES:", vcard->categories, "\n",
-                         SILC_STR_END);
-  if (vcard->class)
+                         SILC_STRFMT_END);
+  if (vcard->catclass)
     silc_buffer_strformat(&buffer,
-                         "CLASS:", vcard->class, "\n",
-                         SILC_STR_END);
+                         "CLASS:", vcard->catclass, "\n",
+                         SILC_STRFMT_END);
   if (vcard->url)
     silc_buffer_strformat(&buffer,
                          "URL:", vcard->url, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   if (vcard->label)
     silc_buffer_strformat(&buffer,
                          "LABEL;", vcard->url, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   for (i = 0; i < vcard->num_addrs; i++) {
     silc_buffer_strformat(&buffer,
                          "ADR;TYPE=",
@@ -92,35 +92,35 @@ unsigned char *silc_vcard_encode(SilcVCard vcard, SilcUInt32 *vcard_len)
                          vcard->addrs[i].state, ";",
                          vcard->addrs[i].code, ";",
                          vcard->addrs[i].country, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   }
   for (i = 0; i < vcard->num_tels; i++) {
     silc_buffer_strformat(&buffer,
                          "TEL;TYPE=",
                          vcard->tels[i].type, ":",
                          vcard->tels[i].telnum, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   }
   for (i = 0; i < vcard->num_emails; i++) {
     silc_buffer_strformat(&buffer,
                          "EMAIL;TYPE=",
                          vcard->emails[i].type, ":",
                          vcard->emails[i].address, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   }
   if (vcard->note)
     silc_buffer_strformat(&buffer,
                          "NOTE:", vcard->note, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
   if (vcard->rev)
     silc_buffer_strformat(&buffer,
                          "REV:", vcard->rev, "\n",
-                         SILC_STR_END);
+                         SILC_STRFMT_END);
 
-  silc_buffer_strformat(&buffer, VCARD_FOOTER, SILC_STR_END);
+  silc_buffer_strformat(&buffer, VCARD_FOOTER, SILC_STRFMT_END);
 
   if (vcard_len)
-    *vcard_len = buffer.truelen;
+    *vcard_len = silc_buffer_truelen(&buffer);
 
   return buffer.head;
 }
@@ -168,13 +168,13 @@ do {                                                      \
 
 /* Decode VCard */
 
-bool silc_vcard_decode(const unsigned char *data, SilcUInt32 data_len,
+SilcBool silc_vcard_decode(const unsigned char *data, SilcUInt32 data_len,
                       SilcVCard vcard)
 {
   unsigned char *val;
-  bool has_begin = FALSE, has_end = FALSE;
+  SilcBool has_begin = FALSE, has_end = FALSE;
   int len, i, off = 0;
-  
+
   val = (unsigned char *)data;
   while (val) {
     len = 0;
@@ -204,7 +204,7 @@ bool silc_vcard_decode(const unsigned char *data, SilcUInt32 data_len,
     VCARD_FIELD(val, "TITLE:", vcard->title);
     VCARD_FIELD(val, "ROLE:", vcard->role);
     VCARD_FIELD(val, "CATEGORIES:", vcard->categories);
-    VCARD_FIELD(val, "CLASS:", vcard->class);
+    VCARD_FIELD(val, "CLASS:", vcard->catclass);
     VCARD_FIELD(val, "URL:", vcard->url);
     VCARD_FIELD(val, "LABEL;", vcard->label);
     VCARD_FIELD(val, "NOTE:", vcard->note);
@@ -363,7 +363,7 @@ void silc_vcard_free(SilcVCard vcard)
   silc_free(vcard->org_name);
   silc_free(vcard->org_unit);
   silc_free(vcard->categories);
-  silc_free(vcard->class);
+  silc_free(vcard->catclass);
   silc_free(vcard->url);
   silc_free(vcard->label);
   for (i = 0; i < vcard->num_addrs; i++) {
@@ -427,8 +427,8 @@ void silc_vcard_fprintf(SilcVCard vcard, FILE *stream)
            vcard->org_unit ? vcard->org_unit : "");
   if (vcard->categories)
     fprintf(stream, "CATEGORIES:%s\n", vcard->categories);
-  if (vcard->class)
-    fprintf(stream, "CLASS:%s\n", vcard->class);
+  if (vcard->catclass)
+    fprintf(stream, "CLASS:%s\n", vcard->catclass);
   if (vcard->url)
     fprintf(stream, "URL:%s\n", vcard->url);
   if (vcard->label)