Use good m_ functions, because it smell like a flower, version 2.
[apps/madmutt.git] / muttlib.c
index 185a878..9afd5cd 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -12,7 +12,6 @@
 
 #include <grp.h>
 #include <pwd.h>
-#include <utime.h>
 
 #include <lib-mime/mime.h>
 #include <lib-ui/curses.h>
@@ -199,7 +198,7 @@ void mutt_pretty_mailbox (char *s)
   /* if s is an url, only collapse path component */
   if (scheme != U_UNKNOWN) {
     p = strchr (s, ':') + 1;
-    if (!strncmp (p, "//", 2))
+    if (!m_strncmp (p, "//", 2))
       q = strchr (p + 2, '/');
     if (!q)
       q = strchr (p, '\0');
@@ -233,14 +232,6 @@ void mutt_pretty_mailbox (char *s)
   }
 }
 
-void
-mutt_expand_file_fmt(char *dst, ssize_t n, const char *fmt, const char *src)
-{
-    char tmp[LONG_STRING];
-    mutt_quote_filename(tmp, sizeof(tmp), src);
-    m_file_fmt(dst, n, fmt, tmp);
-}
-
 /* return 0 on success, -1 on abort, 1 on error */
 int mutt_check_overwrite (const char *attname, const char *path,
                           char *fname, ssize_t flen, int *append,
@@ -613,29 +604,6 @@ void mutt_sleep (short s)
     sleep(MAX(s, SleepTime));
 }
 
-/* Decrease a file's modification time by 1 second */
-time_t mutt_decrease_mtime (const char *f, struct stat *st)
-{
-  struct utimbuf utim;
-  struct stat _st;
-  time_t mtime;
-
-  if (!st) {
-    if (stat (f, &_st) == -1)
-      return -1;
-    st = &_st;
-  }
-
-  if ((mtime = st->st_mtime) == time (NULL)) {
-    mtime -= 1;
-    utim.actime = mtime;
-    utim.modtime = mtime;
-    utime (f, &utim);
-  }
-
-  return mtime;
-}
-
 const char *mutt_make_version (int full)
 {
   static char vstring[STRING];
@@ -650,48 +618,6 @@ const char *mutt_make_version (int full)
   return vstring;
 }
 
-int mutt_match_spam_list (const char *s, rx_t * l, char *text, int x)
-{
-  static regmatch_t *pmatch = NULL;
-  static int nmatch = 0;
-  int i, n, tlen;
-  char *p;
-
-  if (!s)
-    return 0;
-
-  tlen = 0;
-
-  for (; l; l = l->next) {
-    /* If this pattern needs more matches, expand pmatch. */
-    if (l->nmatch > nmatch) {
-      p_realloc(&pmatch, l->nmatch);
-      nmatch = l->nmatch;
-    }
-
-    /* Does this pattern match? */
-    if (regexec(l->rx, s, l->nmatch, (regmatch_t *)pmatch, (int) 0) == 0) {
-      /* Copy template into text, with substitutions. */
-      for (p = l->template; *p;) {
-        if (*p == '%') {
-          n = atoi (++p);       /* find pmatch index */
-          while (isdigit ((unsigned char) *p))
-            ++p;                /* skip subst token */
-          for (i = pmatch[n].rm_so; (i < pmatch[n].rm_eo) && (tlen < x); i++)
-            text[tlen++] = s[i];
-        }
-        else {
-          text[tlen++] = *p++;
-        }
-      }
-      text[tlen] = '\0';
-      return 1;
-    }
-  }
-
-  return 0;
-}
-
 /* return 1 if address lists are strictly identical */
 static int mutt_cmp_addr (const address_t * a, const address_t * b)
 {
@@ -904,7 +830,7 @@ int mutt_extract_token(BUFFER *dest, BUFFER *tok, int flags)
             /* read line */
             p_clear(&expn, 1);
             expn.data = mutt_read_line(NULL, &expn.dsize, fp, &line);
-            fclose(fp);
+            m_fclose(&fp);
             mutt_wait_filter(pid);
 
             /* if we got output, make a new string consiting of the shell ouptput
@@ -920,7 +846,7 @@ int mutt_extract_token(BUFFER *dest, BUFFER *tok, int flags)
                 tok->dsize = expnlen + m_strlen(tok->dptr) + 1;
                 ptr = xmalloc(tok->dsize);
                 memcpy(ptr, expn.data, expnlen);
-                strcpy(ptr + expnlen, tok->dptr);      /* __STRCPY_CHECKED__ */
+                m_strcpy(ptr + expnlen, tok->dsize - expnlen, tok->dptr);
                 if (tok->destroy)
                     p_delete(&tok->data);
                 tok->data = ptr;