more fixes
[apps/madmutt.git] / muttlib.c
index 9924fc2..9c835d1 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -49,6 +49,8 @@
 #include <sys/types.h>
 #include <utime.h>
 
+#define SW              (option(OPTMBOXPANE)?SidebarWidth:0)
+
 BODY *mutt_new_body (void)
 {
   BODY *p = (BODY *) mem_calloc (1, sizeof (BODY));
@@ -257,27 +259,27 @@ int mutt_matches_ignore (const char *s, LIST * t)
   return 0;
 }
 
-/* prepend the path part of *path to *link */
-void mutt_expand_link (char *newpath, const char *path, const char *link)
+/* prepend the path part of *path to *lnk */
+void mutt_expand_link (char *newpath, const char *path, const char *lnk)
 {
   const char *lb = NULL;
   size_t len;
 
-  /* link is full path */
-  if (*link == '/') {
-    strfcpy (newpath, link, _POSIX_PATH_MAX);
+  /* lnk is full path */
+  if (*lnk == '/') {
+    strfcpy (newpath, lnk, _POSIX_PATH_MAX);
     return;
   }
 
   if ((lb = strrchr (path, '/')) == NULL) {
-    /* no path in link */
-    strfcpy (newpath, link, _POSIX_PATH_MAX);
+    /* no path in lnk */
+    strfcpy (newpath, lnk, _POSIX_PATH_MAX);
     return;
   }
 
   len = lb - path + 1;
   memcpy (newpath, path, len);
-  strfcpy (newpath + len, link, _POSIX_PATH_MAX - len);
+  strfcpy (newpath + len, lnk, _POSIX_PATH_MAX - len);
 }
 
 char *mutt_expand_path (char *s, size_t slen)
@@ -292,7 +294,7 @@ char *_mutt_expand_path (char *s, size_t slen, int rx)
   char tmp[_POSIX_PATH_MAX];
   char *t;
 
-  char *tail = "";
+  const char *tail = "";
 
   int recurse = 0;
 
@@ -1013,9 +1015,7 @@ void mutt_FormatString (char *dest,     /* output buffer */
         if (DrawFullLine || option (OPTSTATUSONTOP))
           count = (COLS < destlen ? COLS : destlen);
         else
-          count =
-            ((COLS - SidebarWidth) <
-             destlen ? (COLS - SidebarWidth) : destlen);
+          count = ((COLS - SW) < destlen ? (COLS - SW) : destlen);
         if (count > col) {
           count -= col;         /* how many columns left on this line */
           mutt_FormatString (buf, sizeof (buf), src, callback, data, flags);
@@ -1050,12 +1050,12 @@ void mutt_FormatString (char *dest,     /* output buffer */
         break;                  /* skip rest of input */
       }
       else {
-        short tolower = 0;
+        short lower = 0;
         short nodots = 0;
 
         while (ch == '_' || ch == ':') {
           if (ch == '_')
-            tolower = 1;
+            lower = 1;
           else if (ch == ':')
             nodots = 1;
 
@@ -1067,7 +1067,7 @@ void mutt_FormatString (char *dest,     /* output buffer */
           callback (buf, sizeof (buf), ch, src, prefix, ifstring, elsestring,
                     data, flags);
 
-        if (tolower)
+        if (lower)
           str_tolower (buf);
         if (nodots) {
           char *p = buf;
@@ -1145,32 +1145,26 @@ void mutt_FormatString (char *dest,     /* output buffer */
    then we assume it is a commmand to run instead of a normal file. */
 FILE *mutt_open_read (const char *path, pid_t * thepid)
 {
-  FILE *f;
-  struct stat s;
-
-  int len = str_len (path);
-
-  if (path[len - 1] == '|') {
-    /* read from a pipe */
-
-    char *s = str_dup (path);
-
-    s[len - 1] = 0;
-    mutt_endwin (NULL);
-    *thepid = mutt_create_filter (s, NULL, &f, NULL);
-    mem_free (&s);
-  }
-  else {
-    if (stat (path, &s) < 0)
-      return (NULL);
-    if (S_ISDIR (s.st_mode)) {
-      errno = EINVAL;
-      return (NULL);
+    int len = str_len (path);
+    FILE *f;
+
+    if (path[len - 1] == '|') {
+        char *s = str_dup (path);
+
+        /* read from a pipe */
+
+        s[len - 1] = 0;
+        mutt_endwin (NULL);
+        *thepid = mutt_create_filter (s, NULL, &f, NULL);
+        mem_free (&s);
+    } else {
+        f = fopen (path, "r");
+        if (!f)
+            return NULL;
+        *thepid = -1;
     }
-    f = fopen (path, "r");
-    *thepid = -1;
-  }
-  return (f);
+
+    return (f);
 }
 
 /* returns 0 if OK to proceed, -1 to abort, 1 to retry */
@@ -1354,7 +1348,7 @@ int mutt_match_spam_list (const char *s, SPAM_LIST * l, char *text, int x)
       for (p = l->template; *p;) {
         if (*p == '%') {
           n = atoi (++p);       /* find pmatch index */
-          while (isdigit (*p))
+          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];