]> granicus.if.org Git - neomutt/commitdiff
move exit syslist to libmutt
authorRichard Russon <rich@flatcap.org>
Fri, 24 Nov 2017 01:59:47 +0000 (01:59 +0000)
committerRichard Russon <rich@flatcap.org>
Mon, 27 Nov 2017 00:04:29 +0000 (00:04 +0000)
conn/tunnel.c
mutt.h
mutt/string.c
mutt/string2.h
muttlib.c
sendlib.c

index 9d58de3317609b3a7c714998fcff469ddeae218c..c99a210ccf44959238b1c7ebc1f2788ef43cda0b 100644 (file)
@@ -166,7 +166,7 @@ static int tunnel_socket_close(struct Connection *conn)
   if (!WIFEXITED(status) || WEXITSTATUS(status))
   {
     mutt_error(_("Tunnel to %s returned error %d (%s)"), conn->account.host,
-               WEXITSTATUS(status), NONULL(mutt_strsysexit(WEXITSTATUS(status))));
+               WEXITSTATUS(status), NONULL(mutt_str_sysexit(WEXITSTATUS(status))));
     mutt_sleep(2);
   }
   FREE(&conn->sockdata);
diff --git a/mutt.h b/mutt.h
index 97b3db31bd3ca16ede5edbfe4f15cdc33cb1e6fe..caf56eaed7d85b1099c685b33c44dd0b1f985c4e 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -337,15 +337,11 @@ struct AttachMatch
 #define FMT_CENTER 0
 #define FMT_RIGHT  1
 
-/* Exit values used in send_msg() */
-#define S_ERR 127
-#define S_BKG 126
-
 int safe_asprintf(char **, const char *, ...);
 
 int mutt_inbox_cmp(const char *a, const char *b);
 
-const char *mutt_strsysexit(int e);
+const char *mutt_str_sysexit(int e);
 
 char *mutt_compile_help(char *buf, size_t buflen, int menu, const struct Mapping *items);
 
index 17c0f230c1549f22877deabe7d6de261f1c25d67..fe3762ab2ca3ea23e89efeff6ae0004c18ea1eeb 100644 (file)
@@ -60,6 +60,7 @@
  * | mutt_str_strnfcpy()           | Copy a limited string into a buffer (guaranteeing NUL-termination)
  * | mutt_str_substr_cpy()         | Copy a sub-string into a buffer
  * | mutt_str_substr_dup()         | Duplicate a sub-string
+ * | mutt_str_sysexit()            | Return a string matching an error code
  * | mutt_str_word_casecmp()       | Find word a in word list b
  */
 
 #include "debug.h"
 #include "memory.h"
 #include "string2.h"
+#ifdef HAVE_SYSEXITS_H
+#include <sysexits.h>
+#endif
+
+/**
+ * struct SysExits - Lookup table of error messages
+ */
+static const struct SysExits
+{
+  int v;
+  const char *str;
+} sysexits_h[] = {
+#ifdef EX_USAGE
+  { 0xff & EX_USAGE, "Bad usage." },
+#endif
+#ifdef EX_DATAERR
+  { 0xff & EX_DATAERR, "Data format error." },
+#endif
+#ifdef EX_NOINPUT
+  { 0xff & EX_NOINPUT, "Cannot open input." },
+#endif
+#ifdef EX_NOUSER
+  { 0xff & EX_NOUSER, "User unknown." },
+#endif
+#ifdef EX_NOHOST
+  { 0xff & EX_NOHOST, "Host unknown." },
+#endif
+#ifdef EX_UNAVAILABLE
+  { 0xff & EX_UNAVAILABLE, "Service unavailable." },
+#endif
+#ifdef EX_SOFTWARE
+  { 0xff & EX_SOFTWARE, "Internal error." },
+#endif
+#ifdef EX_OSERR
+  { 0xff & EX_OSERR, "Operating system error." },
+#endif
+#ifdef EX_OSFILE
+  { 0xff & EX_OSFILE, "System file missing." },
+#endif
+#ifdef EX_CANTCREAT
+  { 0xff & EX_CANTCREAT, "Can't create output." },
+#endif
+#ifdef EX_IOERR
+  { 0xff & EX_IOERR, "I/O error." },
+#endif
+#ifdef EX_TEMPFAIL
+  { 0xff & EX_TEMPFAIL, "Deferred." },
+#endif
+#ifdef EX_PROTOCOL
+  { 0xff & EX_PROTOCOL, "Remote protocol error." },
+#endif
+#ifdef EX_NOPERM
+  { 0xff & EX_NOPERM, "Insufficient permission." },
+#endif
+#ifdef EX_CONFIG
+  { 0xff & EX_NOPERM, "Local configuration error." },
+#endif
+  { S_ERR, "Exec error." },
+  { -1, NULL },
+};
+
+/**
+ * mutt_str_sysexit - Return a string matching an error code
+ * @param e Error code, e.g. EX_NOPERM
+ */
+const char *mutt_str_sysexit(int e)
+{
+  int i;
+
+  for (i = 0; sysexits_h[i].str; i++)
+  {
+    if (e == sysexits_h[i].v)
+      break;
+  }
+
+  return sysexits_h[i].str;
+}
 
 /**
  * mutt_str_atol - Convert ASCII string to a long
index 84a7714aef3df9beb5a8b047fb1d5ca6480026a8..17890d92d6b35565f0ffea03b4fe79a565ef48dd 100644 (file)
 #define ISSPACE(c) isspace((unsigned char) c)
 #define EMAIL_WSP " \t\r\n"
 
+/* Exit values */
+#define S_ERR 127
+#define S_BKG 126
+
 /* this macro must check for (*c == 0) since isspace(0) has unreliable behavior
    on some systems */
 #define SKIPWS(c)                                                              \
@@ -90,6 +94,7 @@ int         mutt_str_strncmp(const char *a, const char *b, size_t l);
 char *      mutt_str_strnfcpy(char *dest, char *src, size_t size, size_t dlen);
 char *      mutt_str_substr_cpy(char *dest, const char *begin, const char *end, size_t destlen);
 char *      mutt_str_substr_dup(const char *begin, const char *end);
+const char *mutt_str_sysexit(int e);
 int         mutt_str_word_casecmp(const char *a, const char *b);
 
 #endif /* _MUTT_STRING_H */
index 14c3d4945bcc2eaf1b7fb31c7e9fd7a230a3a64c..6c49bec750bc28b5ce276d254511706392802f39 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -1783,82 +1783,6 @@ void mutt_get_parent_path(char *output, char *path, size_t olen)
   }
 }
 
-#ifdef HAVE_SYSEXITS_H
-#include <sysexits.h>
-#else /* Make sure EX_OK is defined <philiph@pobox.com> */
-#define EX_OK 0
-#endif
-
-/**
- * struct SysExits - Lookup table of error messages
- */
-static const struct SysExits
-{
-  int v;
-  const char *str;
-} sysexits_h[] = {
-#ifdef EX_USAGE
-  { 0xff & EX_USAGE, "Bad usage." },
-#endif
-#ifdef EX_DATAERR
-  { 0xff & EX_DATAERR, "Data format error." },
-#endif
-#ifdef EX_NOINPUT
-  { 0xff & EX_NOINPUT, "Cannot open input." },
-#endif
-#ifdef EX_NOUSER
-  { 0xff & EX_NOUSER, "User unknown." },
-#endif
-#ifdef EX_NOHOST
-  { 0xff & EX_NOHOST, "Host unknown." },
-#endif
-#ifdef EX_UNAVAILABLE
-  { 0xff & EX_UNAVAILABLE, "Service unavailable." },
-#endif
-#ifdef EX_SOFTWARE
-  { 0xff & EX_SOFTWARE, "Internal error." },
-#endif
-#ifdef EX_OSERR
-  { 0xff & EX_OSERR, "Operating system error." },
-#endif
-#ifdef EX_OSFILE
-  { 0xff & EX_OSFILE, "System file missing." },
-#endif
-#ifdef EX_CANTCREAT
-  { 0xff & EX_CANTCREAT, "Can't create output." },
-#endif
-#ifdef EX_IOERR
-  { 0xff & EX_IOERR, "I/O error." },
-#endif
-#ifdef EX_TEMPFAIL
-  { 0xff & EX_TEMPFAIL, "Deferred." },
-#endif
-#ifdef EX_PROTOCOL
-  { 0xff & EX_PROTOCOL, "Remote protocol error." },
-#endif
-#ifdef EX_NOPERM
-  { 0xff & EX_NOPERM, "Insufficient permission." },
-#endif
-#ifdef EX_CONFIG
-  { 0xff & EX_NOPERM, "Local configuration error." },
-#endif
-  { S_ERR, "Exec error." },
-  { -1, NULL },
-};
-
-const char *mutt_strsysexit(int e)
-{
-  int i;
-
-  for (i = 0; sysexits_h[i].str; i++)
-  {
-    if (e == sysexits_h[i].v)
-      break;
-  }
-
-  return sysexits_h[i].str;
-}
-
 #ifdef DEBUG
 char debugfilename[_POSIX_PATH_MAX];
 FILE *debugfile = NULL;
index ea69e2c31d15e542a3a97cb5b20cb5b4d39554ca..dbdacfbff469bb164e0a889dfc60ad1d33256a5a 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
 
 #ifdef HAVE_SYSEXITS_H
 #include <sysexits.h>
-#else /* Make sure EX_OK is defined <philiph@pobox.com> */
+#else
 #define EX_OK 0
 #endif
+
 /* If you are debugging this file, comment out the following line. */
 #define NDEBUG
 #ifdef NDEBUG
@@ -2617,7 +2618,7 @@ int mutt_invoke_sendmail(struct Address *from, struct Address *to, struct Addres
     {
       const char *e = NULL;
 
-      e = mutt_strsysexit(i);
+      e = mutt_str_sysexit(i);
       mutt_error(_("Error sending message, child exited %d (%s)."), i, NONULL(e));
       if (childout)
       {