wibble.
[apps/madmutt.git] / init.c
diff --git a/init.c b/init.c
index ef3f3d0..f52b183 100644 (file)
--- a/init.c
+++ b/init.c
@@ -20,9 +20,9 @@
 #include <lib-lib/ascii.h>
 #include <lib-lib/macros.h>
 #include <lib-lib/buffer.h>
+#include <lib-lib/mapping.h>
 
 #include "mutt.h"
-#include "mapping.h"
 #include "mutt_curses.h"
 #include "history.h"
 #include "keymap.h"
@@ -313,7 +313,7 @@ static int path_from_string (struct option_t* dst, const char* val,
   }
 
   path[0] = '\0';
-  strfcpy (path, val, sizeof(path));
+  m_strcpy(path, sizeof(path), val);
   mutt_expand_path (path, sizeof(path));
   str_replace ((char **) dst->data, path);
   return (1);
@@ -517,7 +517,7 @@ static void addr_to_string (char* dst, size_t dstlen,
                             struct option_t* option) {
   char s[HUGE_STRING];
   s[0] = '\0';
-  rfc822_write_address (s, sizeof(s), *((ADDRESS**) option->data), 0);
+  rfc822_write_address (s, sizeof(s), *((address_t**) option->data), 0);
   snprintf (dst, dstlen, "%s=\"%s\"", option->option, NONULL (s));
 }
 
@@ -525,9 +525,9 @@ static int addr_from_string (struct option_t* dst, const char* val,
                              char* errbuf, size_t errlen) {
   if (!dst)
     return (0);
-  rfc822_free_address ((ADDRESS**) dst->data);
+  address_delete ((address_t**) dst->data);
   if (val && *val)
-    *((ADDRESS**) dst->data) = rfc822_parse_adrlist (NULL, val);
+    *((address_t**) dst->data) = rfc822_parse_adrlist (NULL, val);
   return (1);
 }
 
@@ -980,9 +980,9 @@ static int parse_spam_list (BUFFER * buf, BUFFER * s, unsigned long data,
   /* Insist on at least one parameter */
   if (!MoreArgs (s)) {
     if (data == M_SPAM)
-      strfcpy (err->data, _("spam: no matching pattern"), err->dsize);
+      m_strcpy(err->data, err->dsize, _("spam: no matching pattern"));
     else
-      strfcpy (err->data, _("nospam: no matching pattern"), err->dsize);
+      m_strcpy(err->data, err->dsize, _("nospam: no matching pattern"));
     return -1;
   }
 
@@ -1034,7 +1034,7 @@ static int parse_spam_list (BUFFER * buf, BUFFER * s, unsigned long data,
   }
 
   /* This should not happen. */
-  strfcpy (err->data, "This is no good at all.", err->dsize);
+  m_strcpy(err->data, err->dsize, "This is no good at all.");
   return -1;
 }
 
@@ -1233,7 +1233,7 @@ static int parse_attachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER
 
   mutt_extract_token(buf, s, 0);
   if (!buf->data || *buf->data == '\0') {
-    strfcpy(err->data, _("attachments: no disposition"), err->dsize);
+    m_strcpy(err->data, err->dsize, _("attachments: no disposition"));
     return -1;
   }
 
@@ -1270,7 +1270,7 @@ static int parse_attachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER
     else
       listp = &InlineExclude;
   } else {
-    strfcpy(err->data, _("attachments: invalid disposition"), err->dsize);
+    m_strcpy(err->data, err->dsize, _("attachments: invalid disposition"));
     return -1;
   }
 
@@ -1283,7 +1283,7 @@ static int parse_unattachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFF
 
   mutt_extract_token(buf, s, 0);
   if (!buf->data || *buf->data == '\0') {
-    strfcpy(err->data, _("unattachments: no disposition"), err->dsize);
+    m_strcpy(err->data, err->dsize, _("unattachments: no disposition"));
     return -1;
   }
 
@@ -1306,7 +1306,7 @@ static int parse_unattachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFF
       listp = &InlineExclude;
   }
   else {
-    strfcpy(err->data, _("unattachments: invalid disposition"), err->dsize);
+    m_strcpy(err->data, err->dsize, _("unattachments: invalid disposition"));
     return -1;
   }
 
@@ -1414,7 +1414,7 @@ static int parse_alias (BUFFER * buf, BUFFER * s, unsigned long data,
   char *estr = NULL;
 
   if (!MoreArgs (s)) {
-    strfcpy (err->data, _("alias: no address"), err->dsize);
+    m_strcpy(err->data, err->dsize, _("alias: no address"));
     return (-1);
   }
 
@@ -1440,7 +1440,7 @@ static int parse_alias (BUFFER * buf, BUFFER * s, unsigned long data,
   }
   else {
     /* override the previous value */
-    rfc822_free_address (&tmp->addr);
+    address_delete (&tmp->addr);
     if (CurrentMenu == MENU_ALIAS)
       set_option (OPTFORCEREDRAWINDEX);
   }
@@ -1460,7 +1460,7 @@ static int parse_alias (BUFFER * buf, BUFFER * s, unsigned long data,
   }
 #ifdef DEBUG
   if (DebugLevel >= 2) {
-    ADDRESS *a;
+    address_t *a;
 
     /* A group is terminated with an empty address, so check a->mailbox */
     for (a = tmp->addr; a && a->mailbox; a = a->next) {
@@ -1526,7 +1526,7 @@ static int parse_my_hdr (BUFFER * buf, BUFFER * s, unsigned long data,
 
   mutt_extract_token (buf, s, M_TOKEN_SPACE | M_TOKEN_QUOTE);
   if ((p = strpbrk (buf->data, ": \t")) == NULL || *p != ':') {
-    strfcpy (err->data, _("invalid header field"), err->dsize);
+    m_strcpy(err->data, err->dsize, _("invalid header field"));
     return (-1);
   }
   keylen = p - buf->data + 1;
@@ -1878,7 +1878,7 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data,
       snprintf (err->data, err->dsize, _("%s: unknown variable"), tmp->data);
       return (-1);
     }
-    SKIPWS (s->dptr);
+    s->dptr = vskipspaces(s->dptr);
 
     if (reset) {
       if (query || unset || inv) {
@@ -1972,7 +1972,7 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data,
             r = -1;
             break;
           } else if (DTYPE (option->type) == DT_ADDR)
-            rfc822_free_address ((ADDRESS **) option->data);
+            address_delete ((address_t **) option->data);
           else if (DTYPE (option->type) == DT_USER)
             /* to unset $user_ means remove */
             hash_delete (ConfigOptions, option->option,
@@ -2143,7 +2143,7 @@ static int parse_source (BUFFER * tmp, BUFFER * s, unsigned long data,
       return (-1);
     }
 
-    strfcpy (path, tmp->data, sizeof(path));
+    m_strcpy(path, sizeof(path), tmp->data);
     mutt_expand_path (path, sizeof(path));
 
     rc += source_rc (path, err);
@@ -2176,7 +2176,7 @@ int mutt_parse_rc_line ( /* const */ char *line, BUFFER * token, BUFFER * err)
 
   debug_print (1, ("expand '%s'\n", line));
 
-  SKIPWS (expn.dptr);
+  expn.dptr = vskipspaces(expn.dptr);
   while (*expn.dptr) {
     if (*expn.dptr == '#')
       break;                    /* rest of line is a comment */
@@ -2230,7 +2230,7 @@ static void candidate (char *dest, char *try, const char *src, int len)
   if (strstr (src, try) == src) {
     Matches[Num_matched++] = src;
     if (dest[0] == 0)
-      strfcpy (dest, src, len);
+      m_strcpy(dest, len, src);
     else {
       for (l = 0; src[l] && src[l] == dest[l]; l++);
       dest[l] = 0;
@@ -2244,7 +2244,7 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs)
   int num;
   int spaces;                   /* keep track of the number of leading spaces on the line */
 
-  SKIPWS (buffer);
+  buffer = vskipspaces(buffer);
   spaces = buffer - pt;
 
   pt = buffer + pos - spaces;
@@ -2255,7 +2255,7 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs)
     /* first TAB. Collect all the matches */
     if (numtabs == 1) {
       Num_matched = 0;
-      strfcpy (User_typed, pt, sizeof(User_typed));
+      m_strcpy(User_typed, sizeof(User_typed), pt);
       p_clear(Matches, sizeof(Matches));
       p_clear(Completed, sizeof(Completed));
       for (num = 0; Commands[num].name; num++)
@@ -2304,7 +2304,7 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs)
     /* first TAB. Collect all the matches */
     if (numtabs == 1) {
       Num_matched = 0;
-      strfcpy (User_typed, pt, sizeof(User_typed));
+      m_strcpy(User_typed, sizeof(User_typed), pt);
       p_clear(Matches, sizeof(Matches));
       p_clear(Completed, sizeof(Completed));
       for (num = 0; MuttVars[num].option; num++)
@@ -2342,7 +2342,7 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs)
     /* first TAB. Collect all the matches */
     if (numtabs == 1) {
       Num_matched = 0;
-      strfcpy (User_typed, pt, sizeof(User_typed));
+      m_strcpy(User_typed, sizeof(User_typed), pt);
       p_clear(Matches, sizeof(Matches));
       p_clear(Completed, sizeof(Completed));
       for (num = 0; menu[num].name; num++)
@@ -2391,7 +2391,7 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos)
   if (buffer[0] == 0)
     return 0;
 
-  SKIPWS (buffer);
+  buffer = vskipspaces(buffer);
   spaces = buffer - pt;
 
   pt = buffer + pos - spaces;
@@ -2402,7 +2402,7 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos)
     return 0;
 
   if (m_strncmp(buffer, "set", 3) == 0) {
-    strfcpy (var, pt, sizeof(var));
+    m_strcpy(var, sizeof(var), pt);
     /* ignore the trailing '=' when comparing */
     var[m_strlen(var) - 1] = 0;
     if (!(option = hash_find (ConfigOptions, var)))
@@ -2418,16 +2418,16 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos)
       if ((DTYPE (option->type) == DT_STR) ||
           (DTYPE (option->type) == DT_PATH) ||
           (DTYPE (option->type) == DT_RX)) {
-        strfcpy (tmp, NONULL (*((char **) option->data)), sizeof(tmp));
+        m_strcpy(tmp, sizeof(tmp), NONULL(*((char **)option->data)));
         if (DTYPE (option->type) == DT_PATH)
           mutt_pretty_mailbox (tmp);
       }
       else if (DTYPE (option->type) == DT_ADDR) {
         rfc822_write_address (tmp, sizeof(tmp),
-                              *((ADDRESS **) option->data), 0);
+                              *((address_t **) option->data), 0);
       }
       else if (DTYPE (option->type) == DT_QUAD)
-        strfcpy (tmp, vals[quadoption (option->data)], sizeof(tmp));
+        m_strcpy(tmp, sizeof(tmp), vals[quadoption(option->data)]);
       else if (DTYPE (option->type) == DT_NUM)
         snprintf (tmp, sizeof(tmp), "%d", (*((short *) option->data)));
       else if (DTYPE (option->type) == DT_SORT) {
@@ -2474,11 +2474,10 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos)
           default:
             p = "unknown";
         }
-        strfcpy (tmp, p, sizeof(tmp));
+        m_strcpy(tmp, sizeof(tmp), p);
       }
       else if (DTYPE (option->type) == DT_BOOL)
-        strfcpy (tmp, option (option->data) ? "yes" : "no",
-                 sizeof(tmp));
+        m_strcpy(tmp, sizeof(tmp), option(option->data) ? "yes" : "no");
       else
         return 0;
 
@@ -2489,7 +2488,7 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos)
       }
       *d = '\0';
 
-      strfcpy (tmp, pt, sizeof(tmp));
+      m_strcpy(tmp, sizeof(tmp), pt);
       snprintf (pt, dlen, "%s\"%s\"", tmp, tmp2);
 
       return 1;
@@ -2528,26 +2527,6 @@ int mutt_query_variables (LIST * queries)
   return 0;
 }
 
-const char *mutt_getnamebyvalue (int val, const struct mapping_t *map)
-{
-  int i;
-
-  for (i = 0; map[i].name; i++)
-    if (map[i].value == val)
-      return (map[i].name);
-  return NULL;
-}
-
-int mutt_getvaluebyname (const char *name, const struct mapping_t *map)
-{
-  int i;
-
-  for (i = 0; map[i].name; i++)
-    if (ascii_strcasecmp (map[i].name, name) == 0)
-      return (map[i].value);
-  return (-1);
-}
-
 static int mutt_execute_commands (LIST * p)
 {
   BUFFER err, token;
@@ -2640,7 +2619,7 @@ void mutt_init (int skip_sys_rc, LIST * commands)
   if ((p = strchr (utsname.nodename, '.'))) {
     Hostname = str_substrdup (utsname.nodename, p);
     p++;
-    strfcpy (buffer, p, sizeof(buffer));       /* save the domain for below */
+    m_strcpy(buffer, sizeof(buffer), p);       /* save the domain for below */
   }
   else
     Hostname = m_strdup(utsname.nodename);
@@ -2666,8 +2645,7 @@ void mutt_init (int skip_sys_rc, LIST * commands)
     if ((f = safe_fopen (SYSCONFDIR "/nntpserver", "r"))) {
       buffer[0] = '\0';
       fgets (buffer, sizeof(buffer), f);
-      p = buffer;
-      SKIPWS (p);
+      p = vskipspaces(buffer);
       q = (char*)p;
       while (*q && !isspace(*q))
         q++;
@@ -2793,7 +2771,7 @@ void mutt_init (int skip_sys_rc, LIST * commands)
     Muttrc = m_strdup(buffer);
   }
   else {
-    strfcpy (buffer, Muttrc, sizeof(buffer));
+    m_strcpy(buffer, sizeof(buffer), Muttrc);
     p_delete(&Muttrc);
     mutt_expand_path (buffer, sizeof(buffer));
     Muttrc = m_strdup(buffer);