remove yet anoter round of str_* functions, replaced with their inlineable
[apps/madmutt.git] / browser.c
index 03e1db9..763a5be 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -14,6 +14,7 @@
 #include <lib-lib/mem.h>
 #include <lib-lib/str.h>
 #include <lib-lib/macros.h>
+#include <lib-lib/file.h>
 
 #include "mutt.h"
 #include "enter.h"
@@ -95,7 +96,7 @@ static int browser_compare_subject (const void *a, const void *b)
   struct folder_file *pa = (struct folder_file *) a;
   struct folder_file *pb = (struct folder_file *) b;
 
-  int r = str_coll (pa->name, pb->name);
+  int r = strcoll(NONULL(pa->name), NONULL(pb->name));
 
   return ((BrowserSort & SORT_REVERSE) ? -r : r);
 }
@@ -154,7 +155,7 @@ static int link_is_dir (const char *folder, const char *path)
   struct stat st;
   char fullpath[_POSIX_PATH_MAX];
 
-  mutt_concat_path (fullpath, folder, path, sizeof (fullpath));
+  mutt_concat_path(fullpath, sizeof(fullpath), folder, path);
 
   if (stat (fullpath, &st) == 0)
     return (S_ISDIR (st.st_mode));
@@ -349,7 +350,7 @@ static const char *newsgroup_format_str (char *dest, size_t destlen, char op,
     break;
 
   case 'f':
-    strncpy (fn, folder->ff->name, sizeof (fn) - 1);
+    m_strcpy(fn, sizeof(fn), folder->ff->name);
     snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
     snprintf (dest, destlen, tmp, fn);
     break;
@@ -530,16 +531,16 @@ static int examine_directory (MUTTMENU * menu, struct browser_state *state,
     init_state (state, menu);
 
     while ((de = readdir (dp)) != NULL) {
-      if (str_cmp (de->d_name, ".") == 0)
+      if (m_strcmp(de->d_name, ".") == 0)
         continue;               /* we don't need . */
 
       if (prefix && *prefix
-          && str_ncmp (prefix, de->d_name, m_strlen(prefix)) != 0)
+          && m_strncmp(prefix, de->d_name, m_strlen(prefix)) != 0)
         continue;
       if (!((regexec (Mask.rx, de->d_name, 0, NULL, 0) == 0) ^ Mask.not))
         continue;
 
-      mutt_concat_path (buffer, d, de->d_name, sizeof (buffer));
+      mutt_concat_path(buffer, sizeof(buffer), d, de->d_name);
       if (lstat (buffer, &s) == -1)
         continue;
 
@@ -738,7 +739,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
 
   buffy = buffy && folder;
 
-  memset (&state, 0, sizeof (struct browser_state));
+  p_clear(&state, 1);
 
   if (!folder)
     strfcpy (LastDirBackup, LastDir, sizeof (LastDirBackup));
@@ -778,15 +779,13 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
       for (i = m_strlen(f) - 1; i > 0 && f[i] != '/'; i--);
       if (i > 0) {
         if (f[0] == '/') {
-          if (i > sizeof (LastDir) - 1)
-            i = sizeof (LastDir) - 1;
-          strncpy (LastDir, f, i);
-          LastDir[i] = 0;
+          i = MIN(sizeof(LastDir) - 1, i);
+          m_strcpy(LastDir, sizeof(LastDir), f);
         }
         else {
-          getcwd (LastDir, sizeof (LastDir));
-          str_cat (LastDir, sizeof (LastDir), "/");
-          str_ncat (LastDir, sizeof (LastDir), f, i);
+          getcwd(LastDir, sizeof(LastDir));
+          m_strcat(LastDir, sizeof(LastDir), "/");
+          m_strncat(LastDir, sizeof(LastDir), f, i);
         }
       }
       else {
@@ -851,7 +850,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
 
   init_menu (&state, menu, title, sizeof (title), buffy);
 
-  FOREVER {
+  for (;;) {
     switch (i = mutt_menuLoop (menu)) {
     case OP_GENERIC_SELECT_ENTRY:
 
@@ -879,8 +878,8 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
         }
 #endif
         else
-          mutt_concat_path (buf, LastDir, state.entry[menu->current].name,
-                            sizeof (buf));
+          mutt_concat_path(buf, sizeof(buf), LastDir,
+                           state.entry[menu->current].name);
 
         if ((mx_get_magic (buf) <= 0)
 #ifdef USE_IMAP
@@ -892,8 +891,8 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
           /* save the old directory */
           strfcpy (OldLastDir, LastDir, sizeof (OldLastDir));
 
-          if (str_cmp (state.entry[menu->current].name, "..") == 0) {
-            if (str_cmp ("..", LastDir + m_strlen(LastDir) - 2) == 0)
+          if (m_strcmp(state.entry[menu->current].name, "..") == 0) {
+            if (m_strcmp("..", LastDir + m_strlen(LastDir) - 2) == 0)
               strcat (LastDir, "/..");  /* __STRCAT_CHECKED__ */
             else {
               char *p = strrchr (LastDir + 1, '/');
@@ -936,8 +935,8 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
           else {
             char tmp[_POSIX_PATH_MAX];
 
-            mutt_concat_path (tmp, LastDir, state.entry[menu->current].name,
-                              sizeof (tmp));
+            mutt_concat_path(tmp, sizeof(tmp), LastDir,
+                             state.entry[menu->current].name);
             strfcpy (LastDir, tmp, sizeof (LastDir));
           }
 
@@ -986,7 +985,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
         strfcpy (f, state.entry[menu->current].name, flen);
 #endif
       else
-        mutt_concat_path (f, LastDir, state.entry[menu->current].name, flen);
+        mutt_concat_path(f, flen, LastDir, state.entry[menu->current].name);
 
       /* Fall through to OP_EXIT */
 
@@ -1004,7 +1003,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
             char full[_POSIX_PATH_MAX];
 
             if (ff.tagged) {
-              mutt_concat_path (full, LastDir, ff.name, sizeof (full));
+              mutt_concat_path(full, sizeof(full), LastDir, ff.name);
               mutt_expand_path (full, sizeof (full));
               tfiles[j++] = m_strdup(full);
             }
@@ -1358,8 +1357,8 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
         BODY *b;
         char buf[_POSIX_PATH_MAX];
 
-        mutt_concat_path (buf, LastDir, state.entry[menu->current].name,
-                          sizeof (buf));
+        mutt_concat_path(buf, sizeof(buf), LastDir,
+                         state.entry[menu->current].name);
         b = mutt_make_file_attach (buf);
         if (b != NULL) {
           mutt_view_attachment (NULL, b, M_REGULAR, NULL, NULL, 0);