]> granicus.if.org Git - neomutt/commitdiff
move the message functions to the library
authorRichard Russon <rich@flatcap.org>
Wed, 2 Aug 2017 14:29:18 +0000 (15:29 +0100)
committerRichard Russon <rich@flatcap.org>
Wed, 2 Aug 2017 16:15:06 +0000 (17:15 +0100)
12 files changed:
Makefile.am
curs_lib.c
globals.h
lib.h
lib/Makefile.am
lib/lib.h
lib/lib_memory.c
lib/lib_message.c [new file with mode: 0644]
lib/lib_message.h [moved from extlib.c with 65% similarity]
main.c
po/POTFILES.in
protos.h

index 08bdc8afa8cb9b92720f8d4bfbddb4c0968d324c..5ca4975b755cab0c11e50e0551b6fb2ba8218059 100644 (file)
@@ -84,7 +84,7 @@ EXTRA_mutt_SOURCES = browser.h mbyte.h mutt_idna.c mutt_idna.h \
 
 EXTRA_DIST = account.h attach.h bcache.h browser.h buffer.h buffy.h \
        ChangeLog.md charset.h CODE_OF_CONDUCT.md compress.h copy.h \
-       COPYRIGHT extlib.c filter.h functions.h gen_defs globals.h \
+       COPYRIGHT filter.h functions.h gen_defs globals.h \
        group.h hash.h history.h init.h keymap.h lib.h LICENSE.md mailbox.h \
        mapping.h mbyte.h mime.h mime.types mutt.h mutt_commands.h \
        mutt_curses.h mutt_idna.h mutt_lua.h mutt_menu.h mutt_notmuch.h \
@@ -98,7 +98,7 @@ EXTRA_DIST = account.h attach.h bcache.h browser.h buffer.h buffy.h \
 
 EXTRA_SCRIPTS =
 
-pgpring_SOURCES = extlib.c lib.c pgppubring.c
+pgpring_SOURCES = lib.c pgppubring.c
 pgpring_LDADD = $(LIBOBJS) $(NCRYPT_LIBS) $(INTLLIBS) $(LIBLIB)
 pgpring_DEPENDENCIES = $(LIBOBJS) $(NCRYPT_DEPS) $(INTLDEPS) $(LIBLIBDEPS)
 
index 23a394d10dd5b6d11a2de7d08b673ee26a9b515d..6515d4708ac083801de409355c9acf34ceb13082 100644 (file)
@@ -831,7 +831,7 @@ void mutt_endwin(const char *msg)
   errno = e;
 }
 
-void mutt_perror(const char *s)
+void mutt_perror_debug(const char *s)
 {
   char *p = strerror(errno);
 
index 485894a6ce1ff9b836ebb1ea744b98a2e37fab26..4cb791ee7c84107595ad565dca571dc4631da4f6 100644 (file)
--- a/globals.h
+++ b/globals.h
@@ -37,9 +37,6 @@
 #include "sort.h"
 #endif /* MAIN_C */
 
-WHERE void (*mutt_error)(const char *, ...);
-WHERE void (*mutt_message)(const char *, ...);
-
 WHERE struct Context *Context;
 
 WHERE char Errorbuf[STRING];
diff --git a/lib.h b/lib.h
index 29cc2d835a83df5699723f22c8a67cbf824fd859..76ed85eb7673054746bf132bb37d954fab5d63b9 100644 (file)
--- a/lib.h
+++ b/lib.h
@@ -91,10 +91,6 @@ static inline int is_email_wsp(char c)
  */
 
 
-#ifndef _EXTLIB_C
-extern void (*mutt_error)(const char *, ...);
-#endif
-
 #ifdef DEBUG
 extern char debugfilename[_POSIX_PATH_MAX];
 extern FILE *debugfile;
index dc0665b9960c846109239252caacedc1d5f5f8f0..178037d3e11ee20d4eef4289f77ecb6368b19273 100644 (file)
@@ -3,12 +3,12 @@ include $(top_srcdir)/flymake.am
 
 AUTOMAKE_OPTIONS = 1.6 foreign
 
-EXTRA_DIST = lib.h lib_ascii.h lib_base64.h lib_date.h lib_exit.h lib_md5.h lib_memory.h lib_sha1.h
+EXTRA_DIST = lib.h lib_ascii.h lib_base64.h lib_date.h lib_exit.h lib_md5.h lib_memory.h lib_message.h lib_sha1.h
 
 AM_CPPFLAGS = -I$(top_srcdir)
 
 noinst_LIBRARIES = liblib.a
 noinst_HEADERS =
 
-liblib_a_SOURCES = lib_ascii.c lib_base64.c lib_date.c lib_exit.c lib_md5.c lib_memory.c lib_sha1.c
+liblib_a_SOURCES = lib_ascii.c lib_base64.c lib_date.c lib_exit.c lib_md5.c lib_memory.c lib_message.c lib_sha1.c
 
index 687e94d40afc6565fe7a51be6f2fcaf90c03120b..bd645bef309420292944ead7005e6cc7d772ee75 100644 (file)
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -34,6 +34,7 @@
  * -# @subpage exit
  * -# @subpage md5
  * -# @subpage memory
+ * -# @subpage message
  * -# @subpage sha1
  */
 
@@ -46,6 +47,7 @@
 #include "lib_exit.h"
 #include "lib_md5.h"
 #include "lib_memory.h"
+#include "lib_message.h"
 #include "lib_sha1.h"
 
 #endif /* _LIB_LIB_H */
index 0b2ea4b8cf17974c610e7436f39c24cbc2eaf931..2385bfec28f2d54c78824801da91bfce25477491 100644 (file)
@@ -41,8 +41,7 @@
 #include <unistd.h>
 #include "lib_memory.h"
 #include "lib_exit.h"
-// #include "lib_message.h"
-void mutt_error(const char *, ...);
+#include "lib_message.h"
 
 /**
  * safe_calloc - Allocate zeroed memory on the heap
diff --git a/lib/lib_message.c b/lib/lib_message.c
new file mode 100644 (file)
index 0000000..1705101
--- /dev/null
@@ -0,0 +1,93 @@
+/**
+ * @file
+ * Message logging
+ *
+ * @authors
+ * Copyright (C) 2017 Richard Russon <rich@flatcap.org>
+ *
+ * @copyright
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * @page message Message logging
+ *
+ * Display informational messages for the user.
+ *
+ * These library stubs print the messages to stdout/stderr.
+ *
+ * | Function          | Description
+ * | :---------------- | :--------------------------------------------
+ * | default_error()   | Display an error message
+ * | default_message() | Display an informative message
+ * | default_perror()  | Lookup a standard error message (using errno)
+ */
+
+#include "config.h"
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include "lib_memory.h"
+
+/**
+ * default_error - Display an error message
+ * @param format printf-like formatting string
+ * @param ...    Arguments to format
+ *
+ * This stub function writes to stderr.
+ */
+static void default_error(const char *format, ...)
+{
+  va_list ap;
+  va_start(ap, format);
+  vfprintf(stderr, format, ap);
+  va_end(ap);
+  fputc('\n', stderr);
+}
+
+void (*mutt_error)(const char *, ...) = default_error;
+
+/**
+ * default_message - Display an informative message
+ * @param format printf-like formatting string
+ * @param ...    Arguments to format
+ *
+ * This stub function writes to stdout.
+ */
+static void default_message(const char *format, ...)
+{
+  va_list ap;
+  va_start(ap, format);
+  vfprintf(stdout, format, ap);
+  va_end(ap);
+  fputc('\n', stdout);
+}
+
+void (*mutt_message)(const char *, ...) = default_message;
+
+/**
+ * default_perror - Lookup a standard error message (using errno)
+ * @param message Prefix message to display
+ *
+ * This stub function writes to stderr.
+ */
+static void default_perror(const char *message)
+{
+  char *p = strerror(errno);
+
+  mutt_error("%s: %s (errno = %d)", message, p ? p : _("unknown error"), errno);
+}
+
+void (*mutt_perror)(const char *) = default_perror;
similarity index 65%
rename from extlib.c
rename to lib/lib_message.h
index 3c17da5975d32f3fb646e43dc43e81e202a49a3e..7d962ac09c575b615fa196c2bef4494dff7aee04 100644 (file)
--- a/extlib.c
@@ -1,9 +1,9 @@
 /**
  * @file
- * Helper function for standalone tools
+ * Message logging
  *
  * @authors
- * Copyright (C) 1999-2000 Thomas Roessler <roessler@does-not-exist.org>
+ * Copyright (C) 2017 Richard Russon <rich@flatcap.org>
  *
  * @copyright
  * This program is free software: you can redistribute it and/or modify it under
  * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-/*
- * Some simple dummies, so we can reuse the routines from
- * lib.c in external programs.
- */
-
-#define WHERE
-#define _EXTLIB_C
-
-#include "config.h"
-#include <stdlib.h>
-#include "lib.h"
+#ifndef _LIB_MESSAGE_H
+#define _LIB_MESSAGE_H
 
-void (*mutt_error)(const char *, ...) = mutt_nocurses_error;
+void (*mutt_error)  (const char *format, ...);
+void (*mutt_message)(const char *format, ...);
+void (*mutt_perror) (const char *message);
 
+#endif /* _LIB_MESSAGE_H */
diff --git a/main.c b/main.c
index f98a56b484e2ac17d102b2c1adf976383b4ad37a..d20cb882870dee8394e567c5b3cd1848dc379610 100644 (file)
--- a/main.c
+++ b/main.c
@@ -235,8 +235,8 @@ int main(int argc, char **argv, char **env)
   }
 #endif
 
-  mutt_error = mutt_nocurses_error;
-  mutt_message = mutt_nocurses_error;
+  mutt_message = mutt_error; /* send messages to stderr, too */
+  mutt_perror = mutt_perror_debug;
   (void) mutt_rand32();
   umask(077);
 
index eb2b4fe25d1df3724bbdcecd588de6459d93c13d..a13cf8a04d2a9e932cd80be8aaba95a585cd5554 100644 (file)
@@ -22,7 +22,6 @@ doc/makedoc.c
 edit.c
 editmsg.c
 enter.c
-extlib.c
 filter.c
 flags.c
 from.c
@@ -65,6 +64,7 @@ lib/lib_date.c
 lib/lib_exit.c
 lib/lib_md5.c
 lib/lib_memory.c
+lib/lib_message.c
 lib/lib_sha1.c
 main.c
 mbox.c
index c446f0d013a1e2bfd632bd44d1efe4f8dbdd15d8..6700d16980597a9e48ae0e77d1f141477e81b190 100644 (file)
--- a/protos.h
+++ b/protos.h
@@ -223,7 +223,7 @@ void _mutt_mktemp(char *s, size_t slen, const char *prefix, const char *suffix,
 void mutt_paddstr(int n, const char *s);
 void mutt_parse_mime_message(struct Context *ctx, struct Header *cur);
 void mutt_parse_part(FILE *fp, struct Body *b);
-void mutt_perror(const char *s);
+void mutt_perror_debug(const char *s);
 void mutt_prepare_envelope(struct Envelope *env, int final);
 void mutt_unprepare_envelope(struct Envelope *env);
 void mutt_pretty_mailbox(char *s, size_t buflen);