-/*
- * $Id$
- *
- * vNote implementation for Citadel
- *
- * Copyright (C) 1999-2007 by the citadel.org development team.
- * This code is freely redistributable under the terms of the GNU General
- * Public License. All other rights reserved.
- */
+// vNote implementation for Citadel
+//
+// Copyright (C) 1999-2023 by the citadel.org development team.
+//
+// This program is open source software. Use, duplication, or disclosure
+// is subject to the terms of the GNU General Public License, version 3.
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <signal.h>
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
+#include <time.h>
#include <ctype.h>
#include <string.h>
#include <errno.h>
thisline = NULL;
nexteol = strchr(ptr, '\n');
if (nexteol) {
- thisline = malloc((nexteol - ptr) + 2);
- strncpy(thisline, ptr, (nexteol-ptr));
thisline_len = (nexteol-ptr);
- thisline[thisline_len] = 0;
+ thisline = malloc(thisline_len + 2);
+ memcpy(thisline, ptr, thisline_len);
+ thisline[thisline_len] = '\0';
ptr = nexteol + 1;
}
else {
*encoded_value++ = 0;
/* any qualifiers? (look for a semicolon) */
- is_base64 = (int) bmstrcasestr(thisline, "encoding=base64");
- is_quoted_printable = (int) bmstrcasestr(thisline,
- "encoding=quoted-printable");
+ is_base64 = bmstrcasestr(thisline, "encoding=base64") ? 1 : 0;
+ is_quoted_printable = bmstrcasestr(thisline, "encoding=quoted-printable") ? 1 : 0;
char *semicolon_pos = strchr(thisline, ';');
if (semicolon_pos) {
free(decoded_value); // throw it away
}
- /* FIXME still need to handle these:
- * X-OUTLOOK-CREATE-TIME:20070611T204615Z
- * REV:20070611T204621Z
- */
+ // FIXME still need to handle these:
+ // X-OUTLOOK-CREATE-TIME:20070611T204615Z
+ // REV:20070611T204621Z
}
free(thisline);
}
}
-/* helper function for vnote_serialize() */
+// helper function for vnote_serialize()
void vnote_serialize_output_field(char *append_to, char *field, char *label) {
char *mydup;
mydup = malloc((strlen(field) * 3) + 1);
if (!mydup) return;
- strcpy(mydup, "");
+ *mydup = '\0';
while (ptr[pos] != 0) {
ch = (unsigned char)(ptr[pos++]);
s = malloc(bytes_needed);
if (!s) return NULL;
- strcpy(s, "");
+ *s = '\0';
vnote_serialize_output_field(s, "vnote", "BEGIN");
vnote_serialize_output_field(s, "//Citadel//vNote handler library//EN", "PRODID");
vnote_serialize_output_field(s, "1.1", "VERSION");
vnote_serialize_output_field(s, v->summary, "SUMMARY");
vnote_serialize_output_field(s, v->body, "BODY");
vnote_serialize_output_field(s, v->body, "NOTE");
- sprintf(&s[strlen(s)], "X-OUTLOOK-COLOR:#%02X%02X%02X\r\n",
- v->color_red, v->color_green, v->color_blue);
+ sprintf(&s[strlen(s)], "X-OUTLOOK-COLOR:#%02X%02X%02X\r\n", v->color_red, v->color_green, v->color_blue);
sprintf(&s[strlen(s)], "X-OUTLOOK-LEFT:%d\r\n", v->pos_left);
sprintf(&s[strlen(s)], "X-OUTLOOK-TOP:%d\r\n", v->pos_top);
sprintf(&s[strlen(s)], "X-OUTLOOK-WIDTH:%d\r\n", v->pos_width);