summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac5
-rw-r--r--include/mailutils/Makefile.am2
-rw-r--r--include/mailutils/argcv.h14
-rw-r--r--include/mailutils/log.h49
-rw-r--r--include/mailutils/mailutils.h2
-rw-r--r--include/mailutils/stdstream.h46
-rw-r--r--include/mailutils/stream.h2
-rw-r--r--include/mailutils/types.hin4
-rw-r--r--include/mailutils/vartab.h24
-rw-r--r--libmailutils/Makefile.am3
-rw-r--r--libmailutils/base/Makefile.am2
-rw-r--r--libmailutils/stdstream/Makefile.am24
-rw-r--r--libmailutils/stdstream/basestr.c80
-rw-r--r--libmailutils/stdstream/strerr.c101
-rw-r--r--libmailutils/stream/logstream.c2
-rw-r--r--libmailutils/stream/syslogstream.c2
-rw-r--r--libmailutils/tests/Makefile.am2
-rw-r--r--libmailutils/tests/testsuite.at1
-rw-r--r--libmu_compat/Makefile.am25
-rw-r--r--libmu_compat/argcv.c (renamed from libmailutils/base/argcv.c)0
-rw-r--r--libmu_compat/tests/.gitignore7
-rw-r--r--libmu_compat/tests/Makefile.am75
-rw-r--r--libmu_compat/tests/argcv.at (renamed from libmailutils/tests/argcv.at)12
-rw-r--r--libmu_compat/tests/argcv.c (renamed from libmailutils/tests/argcv.c)0
-rw-r--r--libmu_compat/tests/atlocal.in5
-rw-r--r--libmu_compat/tests/testsuite.at19
-rw-r--r--libmu_compat/vartab.c (renamed from libmailutils/base/vartab.c)1
-rw-r--r--mu/ldflags.c1
-rw-r--r--mu/logger.c27
-rw-r--r--po/POTFILES.in5
31 files changed, 512 insertions, 31 deletions
diff --git a/Makefile.am b/Makefile.am
index aed3f5ac4..d17f724e5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,2 +96,3 @@ SUBDIRS = . \
libproto\
+ libmu_compat\
testsuite\
diff --git a/configure.ac b/configure.ac
index abcf5c9fb..aafad7f31 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1207,2 +1207,3 @@ AC_CONFIG_TESTDIR(libmailutils/tests)
AC_CONFIG_TESTDIR(testsuite)
+AC_CONFIG_TESTDIR(libmu_compat/tests)
AC_CONFIG_TESTDIR(frm/tests)
@@ -1216,2 +1217,4 @@ AC_CONFIG_FILES([libmailutils/tests/Makefile
libmailutils/tests/atlocal
+ libmu_compat/tests/Makefile
+ libmu_compat/tests/atlocal
testsuite/Makefile
@@ -1370,2 +1373,3 @@ AC_CONFIG_FILES([
libproto/imap/Makefile
+ libmu_compat/Makefile
maidag/Makefile
@@ -1386,2 +1390,3 @@ AC_CONFIG_FILES([
libmailutils/stream/Makefile
+ libmailutils/stdstream/Makefile
libmailutils/url/Makefile
diff --git a/include/mailutils/Makefile.am b/include/mailutils/Makefile.am
index b52db2c78..b31515819 100644
--- a/include/mailutils/Makefile.am
+++ b/include/mailutils/Makefile.am
@@ -63,2 +63,3 @@ pkginclude_HEADERS = \
locker.h\
+ log.h\
mailbox.h\
@@ -92,2 +93,3 @@ pkginclude_HEADERS = \
smtp.h\
+ stdstream.h\
stream.h\
diff --git a/include/mailutils/argcv.h b/include/mailutils/argcv.h
index 49d3bfa2d..4a8f29399 100644
--- a/include/mailutils/argcv.h
+++ b/include/mailutils/argcv.h
@@ -26,2 +26,4 @@
+#include <mailutils/types.h>
+
#ifdef __cplusplus
@@ -39,2 +41,3 @@ enum mu_argcv_escape
};
+
int mu_argcv_join (int argc, char **argv, char *delim,
@@ -42,8 +45,9 @@ int mu_argcv_join (int argc, char **argv, char *delim,
char **pstring);
-int mu_argcv_string (int argc, char **argv, char **string);
-
void mu_argcv_remove (int *pargc, char ***pargv,
int (*sel) (const char *, void *), void *);
-
+int mu_argcv_string (int argc, char **argv, char **string);
+
+
/* Deprecated interfaces */
+
#define MU_ARGCV_RETURN_DELIMS 0x01
@@ -51,4 +55,4 @@ void mu_argcv_remove (int *pargc, char ***pargv,
#ifndef MU_ARCGV_DEPRECATED
-# define MU_ARCGV_DEPRECATED __attribute__((deprecated))
-#endif
+# define MU_ARCGV_DEPRECATED MU_DEPRECATED
+#endif
diff --git a/include/mailutils/log.h b/include/mailutils/log.h
new file mode 100644
index 000000000..a36b85ab5
--- /dev/null
+++ b/include/mailutils/log.h
@@ -0,0 +1,49 @@
+/* GNU Mailutils -- a suite of utilities for electronic mail
+ Copyright (C) 2010 Free Software Foundation, Inc.
+
+ GNU Mailutils 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 3, or (at your option)
+ any later version.
+
+ GNU Mailutils 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 GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _MAILUTILS_LOG_H
+#define _MAILUTILS_LOG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <mailutils/types.h>
+
+#define MU_LOG_DEBUG 0
+#define MU_LOG_INFO 1
+#define MU_LOG_NOTICE 2
+#define MU_LOG_WARNING 3
+#define MU_LOG_ERROR 4
+#define MU_LOG_CRIT 5
+#define MU_LOG_ALERT 6
+#define MU_LOG_EMERG 7
+
+#define MU_LOGMODE_SEVERITY 0x0001
+#define MU_LOGMODE_LOCUS 0x0002
+
+int mu_log_stream_create (mu_stream_t *, mu_stream_t);
+int mu_syslog_stream_create (mu_stream_t *, int);
+
+extern char *_mu_severity_str[];
+extern int _mu_severity_num;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/include/mailutils/mailutils.h b/include/mailutils/mailutils.h
index ccaa3d5e6..19b8e773f 100644
--- a/include/mailutils/mailutils.h
+++ b/include/mailutils/mailutils.h
@@ -61,3 +61,2 @@
#include <mailutils/version.h>
-#include <mailutils/vartab.h>
#include <mailutils/io.h>
@@ -68,2 +67,3 @@
#include <mailutils/log.h>
+#include <mailutils/stdstream.h>
diff --git a/include/mailutils/stdstream.h b/include/mailutils/stdstream.h
new file mode 100644
index 000000000..fcb971fdb
--- /dev/null
+++ b/include/mailutils/stdstream.h
@@ -0,0 +1,46 @@
+/* GNU Mailutils -- a suite of utilities for electronic mail
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ GNU Mailutils 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 3, or (at your option)
+ any later version.
+
+ GNU Mailutils 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 GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _MAILUTILS_STDSTREAM_H
+#define _MAILUTILS_STDSTREAM_H
+
+#include <mailutils/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern mu_stream_t mu_strin;
+extern mu_stream_t mu_strout;
+extern mu_stream_t mu_strerr;
+
+extern const char *mu_program_name;
+
+#define MU_STRERR_STDERR 0
+#define MU_STRERR_SYSLOG 1
+/* #define MU_STRERR_FILE 2 */
+
+void mu_stdstream_setup (void);
+int mu_stdstream_strerr_create (mu_stream_t *str, int type, int facility,
+ int priority, const char *tag,
+ const char *fname);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/include/mailutils/stream.h b/include/mailutils/stream.h
index f1fc4f51b..a7bbfe1ec 100644
--- a/include/mailutils/stream.h
+++ b/include/mailutils/stream.h
@@ -108,3 +108,3 @@ enum mu_buffer_type
#define MU_IOCTL_LOGSTREAM_SET_MODE 23
-
+
#define MU_TRANSPORT_INPUT 0
diff --git a/include/mailutils/types.hin b/include/mailutils/types.hin
index e0b356618..26916e559 100644
--- a/include/mailutils/types.hin
+++ b/include/mailutils/types.hin
@@ -35,2 +35,6 @@
+#ifndef MU_DEPRECATED
+# define MU_DEPRECATED __attribute__ ((deprecated))
+#endif
+
#ifdef __cplusplus
diff --git a/include/mailutils/vartab.h b/include/mailutils/vartab.h
index 26f46bb3f..5d0598295 100644
--- a/include/mailutils/vartab.h
+++ b/include/mailutils/vartab.h
@@ -22,2 +22,10 @@
+#ifdef MU_SUPPRESS_DEPRECATION
+# undef MU_DEPRECATED
+# define MU_DEPRECATED
+#else
+# warning "Mailutils support for vartab functions has been deprecated."
+# warning "Revise your code to use <mailutils/wordsplit.h>."
+#endif
+
typedef int (*mu_var_expansion_fp) (const char *name, void *data, char **p);
@@ -25,12 +33,14 @@ typedef void (*mu_var_free_fp) (void *data, char *value);
-int mu_vartab_create (mu_vartab_t *pvar);
-int mu_vartab_destroy (mu_vartab_t *pvar);
+int mu_vartab_create (mu_vartab_t *pvar) MU_DEPRECATED;
+int mu_vartab_destroy (mu_vartab_t *pvar) MU_DEPRECATED;
int mu_vartab_define (mu_vartab_t var, const char *name, const char *value,
- int isstatic);
+ int isstatic) MU_DEPRECATED;
int mu_vartab_define_exp (mu_vartab_t var, const char *name,
mu_var_expansion_fp fun, mu_var_free_fp free,
- void *data);
-int mu_vartab_count (mu_vartab_t vt, size_t *pcount);
-int mu_vartab_getvar (mu_vartab_t vt, const char *name, const char **pvalue);
-int mu_vartab_expand (mu_vartab_t vt, const char *str, char **pres);
+ void *data) MU_DEPRECATED;
+int mu_vartab_count (mu_vartab_t vt, size_t *pcount) MU_DEPRECATED;
+int mu_vartab_getvar (mu_vartab_t vt, const char *name, const char **pvalue)
+ MU_DEPRECATED;
+int mu_vartab_expand (mu_vartab_t vt, const char *str, char **pres)
+ MU_DEPRECATED;
#endif
diff --git a/libmailutils/Makefile.am b/libmailutils/Makefile.am
index 34246dcf8..bac6aa994 100644
--- a/libmailutils/Makefile.am
+++ b/libmailutils/Makefile.am
@@ -19,3 +19,3 @@
SUBDIRS = auth base address cfg diag filter mailbox mailer mime\
- server string stream property url . tests
+ server string stream stdstream property url . tests
@@ -40,2 +40,3 @@ libmailutils_la_LIBADD = \
stream/libstream.la\
+ stdstream/libstdstream.la\
url/liburl.la
diff --git a/libmailutils/base/Makefile.am b/libmailutils/base/Makefile.am
index ae9d2a972..b50781c20 100644
--- a/libmailutils/base/Makefile.am
+++ b/libmailutils/base/Makefile.am
@@ -22,3 +22,2 @@ libbase_la_SOURCES = \
amd.c\
- argcv.c\
argcvfree.c\
@@ -67,3 +66,2 @@ libbase_la_SOURCES = \
usremail.c\
- vartab.c\
version.c\
diff --git a/libmailutils/stdstream/Makefile.am b/libmailutils/stdstream/Makefile.am
new file mode 100644
index 000000000..feede72b3
--- /dev/null
+++ b/libmailutils/stdstream/Makefile.am
@@ -0,0 +1,24 @@
+# GNU Mailutils -- a suite of utilities for electronic mail
+# Copyright (C) 2010 Free Software Foundation, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# This library 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General
+# Public License along with this library. If not, see
+# <http://www.gnu.org/licenses/>.
+
+noinst_LTLIBRARIES = libstdstream.la
+
+libstdstream_la_SOURCES = \
+ basestr.c\
+ strerr.c
+
+INCLUDES = @MU_LIB_COMMON_INCLUDES@ -I/libmailutils
diff --git a/libmailutils/stdstream/basestr.c b/libmailutils/stdstream/basestr.c
new file mode 100644
index 000000000..28759aaf3
--- /dev/null
+++ b/libmailutils/stdstream/basestr.c
@@ -0,0 +1,80 @@
+/* GNU Mailutils -- a suite of utilities for electronic mail
+ Copyright (C) 2010 Free Software Foundation, Inc.
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This library 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 Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <mailutils/types.h>
+#include <mailutils/errno.h>
+#include <mailutils/log.h>
+#include <mailutils/stream.h>
+#include <mailutils/stdstream.h>
+
+mu_stream_t mu_strin;
+mu_stream_t mu_strout;
+mu_stream_t mu_strerr;
+
+void
+mu_stdstream_setup ()
+{
+ int rc;
+ int fd;
+
+ /* Ensure that first 3 descriptors are open in proper mode */
+ fd = open ("/dev/null", O_WRONLY);
+ switch (fd)
+ {
+ case 2:
+ /* keep it open */;
+ break;
+
+ case 1:
+ /* keep it open and try 0 */
+ fd = open ("/dev/null", O_RDONLY);
+ if (fd != 0)
+ close (fd);
+ break;
+
+ default:
+ close (fd);
+ break;
+ }
+
+ /* Create the corresponding streams */
+ rc = mu_stdio_stream_create (&mu_strin, MU_STDIN_FD, 0);
+ if (rc)
+ {
+ fprintf (stderr, "mu_stdio_stream_create(%d): %s\n",
+ MU_STDIN_FD, mu_strerror (rc));
+ abort ();
+ }
+ rc = mu_stdio_stream_create (&mu_strout, MU_STDOUT_FD, 0);
+ if (rc)
+ {
+ fprintf (stderr, "mu_stdio_stream_create(%d): %s\n",
+ MU_STDOUT_FD, mu_strerror (rc));
+ abort ();
+ }
+
+ if (mu_stdstream_strerr_create (&mu_strerr, MU_STRERR_STDERR, 0, 0,
+ NULL, NULL))
+ abort ();
+}
diff --git a/libmailutils/stdstream/strerr.c b/libmailutils/stdstream/strerr.c
new file mode 100644
index 000000000..76dd2cb7f
--- /dev/null
+++ b/libmailutils/stdstream/strerr.c
@@ -0,0 +1,101 @@
+/* GNU Mailutils -- a suite of utilities for electronic mail
+ Copyright (C) 2010 Free Software Foundation, Inc.
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This library 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 Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <syslog.h>
+#include <mailutils/types.h>
+#include <mailutils/nls.h>
+#include <mailutils/io.h>
+#include <mailutils/errno.h>
+#include <mailutils/log.h>
+#include <mailutils/stream.h>
+#include <mailutils/stdstream.h>
+#include <mailutils/filter.h>
+
+int
+mu_stdstream_strerr_create (mu_stream_t *plogger, int type, int facility,
+ int priority, const char *tag,
+ const char *fname MU_ARG_UNUSED)
+{
+ int rc;
+ mu_stream_t transport;
+
+ if (!tag)
+ tag = mu_program_name;
+ switch (type)
+ {
+ case MU_STRERR_STDERR:
+ {
+ mu_stream_t str;
+ char *fltargs[3] = { "INLINE-COMMENT", };
+
+ rc = mu_stdio_stream_create (&str, MU_STDERR_FD, 0);
+ if (rc)
+ {
+ fprintf (stderr, _("%s: cannot open error stream: %s\n"),
+ tag, mu_strerror (rc));
+ return MU_ERR_FAILURE;
+ }
+ mu_asprintf (&fltargs[1], "%s: ", tag);
+ fltargs[2] = NULL;
+ rc = mu_filter_create_args (&transport, str,
+ "INLINE-COMMENT", 2, (const char**)fltargs,
+ MU_FILTER_ENCODE, MU_STREAM_WRITE);
+ mu_stream_unref (str);
+ free (fltargs[1]);
+ if (rc)
+ {
+ fprintf (stderr,
+ _("%s: cannot open output filter stream: %s"),
+ tag, mu_strerror (rc));
+ return MU_ERR_FAILURE;
+ }
+ }
+ break;
+
+ case MU_STRERR_SYSLOG:
+ openlog (tag, LOG_PID, facility);
+ rc = mu_syslog_stream_create (&transport, priority);
+ if (rc)
+ {
+ fprintf (stderr, _("%s: cannot create syslog stream: %s\n"),
+ tag, mu_strerror (rc));
+ return MU_ERR_FAILURE;
+ }
+ break;
+
+ default:
+ fprintf (stderr, _("%s: cannot create error stream: %s\n"),
+ tag, mu_strerror (EINVAL));
+ return EINVAL;
+ }
+
+ rc = mu_log_stream_create (plogger, transport);
+ mu_stream_unref (transport);
+ if (rc)
+ {
+ fprintf (stderr, _("%s: cannot open logger stream: %s\n"),
+ tag , mu_strerror (rc));
+ return MU_ERR_FAILURE;
+ }
+ return 0;
+}
+
diff --git a/libmailutils/stream/logstream.c b/libmailutils/stream/logstream.c
index 5908a27ec..ece636e74 100644
--- a/libmailutils/stream/logstream.c
+++ b/libmailutils/stream/logstream.c
@@ -160,3 +160,3 @@ _log_write (struct _mu_stream *str, const char *buf, size_t size,
severity = MU_LOG_EMERG;
-
+
if (logmode & MU_LOGMODE_LOCUS)
diff --git a/libmailutils/stream/syslogstream.c b/libmailutils/stream/syslogstream.c
index 384694e59..c81815f38 100644
--- a/libmailutils/stream/syslogstream.c
+++ b/libmailutils/stream/syslogstream.c
@@ -59,3 +59,3 @@ _syslog_ctl (struct _mu_stream *str, int op, void *arg)
break;
-
+
default:
diff --git a/libmailutils/tests/Makefile.am b/libmailutils/tests/Makefile.am
index cfcea3997..b7960bfc3 100644
--- a/libmailutils/tests/Makefile.am
+++ b/libmailutils/tests/Makefile.am
@@ -43,3 +43,2 @@ noinst_PROGRAMS = \
addr\
- argcv\
decode2047\
@@ -65,3 +64,2 @@ TESTSUITE_AT = \
address.at\
- argcv.at\
base64d.at\
diff --git a/libmailutils/tests/testsuite.at b/libmailutils/tests/testsuite.at
index 722e83946..fa3118954 100644
--- a/libmailutils/tests/testsuite.at
+++ b/libmailutils/tests/testsuite.at
@@ -57,3 +57,2 @@ m4_include([list.at])
m4_include([address.at])
-m4_include([argcv.at])
m4_include([wordsplit.at])
diff --git a/libmu_compat/Makefile.am b/libmu_compat/Makefile.am
new file mode 100644
index 000000000..c55590830
--- /dev/null
+++ b/libmu_compat/Makefile.am
@@ -0,0 +1,25 @@
+# This file is part of GNU Mailutils
+# Copyright (C) 2010 Free Software Foundation, Inc.
+#
+# GNU Mailutils 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 3, or (at
+# your option) any later version.
+#
+# GNU Mailutils 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 GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
+
+SUBDIRS = . tests
+lib_LTLIBRARIES = libmu_compat.la
+
+libmu_compat_la_SOURCES = \
+ argcv.c\
+ vartab.c
+
+INCLUDES = @MU_LIB_COMMON_INCLUDES@ -I/libmailutils
+
diff --git a/libmailutils/base/argcv.c b/libmu_compat/argcv.c
index 142de6b6a..142de6b6a 100644
--- a/libmailutils/base/argcv.c
+++ b/libmu_compat/argcv.c
diff --git a/libmu_compat/tests/.gitignore b/libmu_compat/tests/.gitignore
new file mode 100644
index 000000000..81721a669
--- /dev/null
+++ b/libmu_compat/tests/.gitignore
@@ -0,0 +1,7 @@
+atconfig
+atlocal
+package.m4
+testsuite
+testsuite.dir
+testsuite.log
+argcv
diff --git a/libmu_compat/tests/Makefile.am b/libmu_compat/tests/Makefile.am
new file mode 100644
index 000000000..14bb70ce0
--- /dev/null
+++ b/libmu_compat/tests/Makefile.am
@@ -0,0 +1,75 @@
+# This file is part of GNU Mailutils.
+# Copyright (C) 2010 Free Software Foundation, Inc.
+#
+# GNU Mailutils 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 3, or (at
+# your option) any later version.
+#
+# GNU Mailutils 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 GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
+
+EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4
+DISTCLEANFILES = atconfig $(check_SCRIPTS)
+MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
+
+## ------------ ##
+## package.m4. ##
+## ------------ ##
+
+$(srcdir)/package.m4: $(top_srcdir)/configure.ac
+ $(AM_V_GEN){ \
+ echo '# Signature of the current package.'; \
+ echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \
+ echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \
+ echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \
+ echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \
+ echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
+ } >$(srcdir)/package.m4
+
+#
+
+## -------------------------- ##
+## Non-installable programs
+## -------------------------- ##
+
+INCLUDES = @MU_LIB_COMMON_INCLUDES@
+noinst_PROGRAMS = argcv
+
+LDADD = ../libmu_compat.la ${MU_LIB_MAILUTILS}
+
+## ------------ ##
+## Test suite. ##
+## ------------ ##
+
+TESTSUITE_AT = \
+ argcv.at\
+ testsuite.at
+
+TESTSUITE = $(srcdir)/testsuite
+M4=m4
+
+AUTOTEST = $(AUTOM4TE) --language=autotest
+$(TESTSUITE): package.m4 $(TESTSUITE_AT) $(top_srcdir)/testsuite/testsuite.inc
+ $(AM_V_GEN)$(AUTOTEST) -I $(srcdir) -I $(top_srcdir)/testsuite testsuite.at -o $@.tmp
+ $(AM_V_at)mv $@.tmp $@
+
+atconfig: $(top_builddir)/config.status
+ cd $(top_builddir) && ./config.status tests/$@
+
+clean-local:
+ @test ! -f $(TESTSUITE) || $(SHELL) $(TESTSUITE) --clean
+
+check-local: atconfig atlocal $(TESTSUITE)
+ @$(SHELL) $(TESTSUITE)
+
+# Run the test suite on the *installed* tree.
+#installcheck-local:
+# $(SHELL) $(TESTSUITE) AUTOTEST_PATH=$(exec_prefix)/bin
+
+
diff --git a/libmailutils/tests/argcv.at b/libmu_compat/tests/argcv.at
index 857f500c4..6877cd5c3 100644
--- a/libmailutils/tests/argcv.at
+++ b/libmu_compat/tests/argcv.at
@@ -24,6 +24,10 @@ m4_pushdef([MU_TEST_KEYWORDS],[argcv])
m4_pushdef([MU_TEST_COMMAND],[argcv])
-MU_GENERIC_TEST([$1],[$2],[$3],[],[$4],[$5])
-m4_popdef([MU_TEST_COMMAND])
-m4_popdef([MU_TEST_KEYWORDS])
-m4_popdef([MU_TEST_GROUP])
+
+AT_SETUP([Argcv: m4_if([$1],[],mu_firstline([$3]),[$1])])
+AT_KEYWORDS([argcv $2])
+AT_CHECK([
+AT_DATA([input],[$3
+])
+argcv < input],[0],[$4],[$5],[$6],[$7])
+AT_CLEANUP
])
diff --git a/libmailutils/tests/argcv.c b/libmu_compat/tests/argcv.c
index 66e9060a4..66e9060a4 100644
--- a/libmailutils/tests/argcv.c
+++ b/libmu_compat/tests/argcv.c
diff --git a/libmu_compat/tests/atlocal.in b/libmu_compat/tests/atlocal.in
new file mode 100644
index 000000000..1f0b81345
--- /dev/null
+++ b/libmu_compat/tests/atlocal.in
@@ -0,0 +1,5 @@
+# @configure_input@ -*- shell-script -*-
+# Configurable variable values for Mailutils test suite.
+# Copyright (C) 2004, 2010 Free Software Foundation, Inc.
+
+PATH=@abs_builddir@:@abs_top_builddir@/libmailutils/tests:$top_srcdir:$srcdir:$PATH
diff --git a/libmu_compat/tests/testsuite.at b/libmu_compat/tests/testsuite.at
new file mode 100644
index 000000000..0721f84f6
--- /dev/null
+++ b/libmu_compat/tests/testsuite.at
@@ -0,0 +1,19 @@
+# This file is part of GNU Mailutils. -*- Autotest -*-
+# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+#
+# GNU Mailutils 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 3, or (at
+# your option) any later version.
+#
+# GNU Mailutils 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 GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
+
+m4_include([testsuite.inc])
+AT_INIT
+m4_include([argcv.at])
diff --git a/libmailutils/base/vartab.c b/libmu_compat/vartab.c
index 566a5077b..3e487dd25 100644
--- a/libmailutils/base/vartab.c
+++ b/libmu_compat/vartab.c
@@ -26,2 +26,3 @@
#include <mailutils/iterator.h>
+#define MU_SUPPRESS_DEPRECATION
#include <mailutils/vartab.h>
diff --git a/mu/ldflags.c b/mu/ldflags.c
index f93536c6f..abed741d1 100644
--- a/mu/ldflags.c
+++ b/mu/ldflags.c
@@ -59,2 +59,3 @@ struct lib_descr {
{ "sieve", "mu_sieve", NOTALL },
+ { "compat", "mu_compat" },
{ NULL }
diff --git a/mu/logger.c b/mu/logger.c
index f0163f5a7..5c55efd6a 100644
--- a/mu/logger.c
+++ b/mu/logger.c
@@ -86,3 +86,2 @@ logger_parse_opt (int key, char *arg, struct argp_state *state)
syslog_tag = arg;
- use_syslog = 1;
break;
@@ -159,6 +158,6 @@ mutool_logger (int argc, char **argv)
+ if (!syslog_tag)
+ syslog_tag = "mu-logger";
if (use_syslog)
{
- if (!syslog_tag)
- syslog_tag = "mu-logger";
openlog (syslog_tag, LOG_PID, syslog_facility);
@@ -175,3 +174,6 @@ mutool_logger (int argc, char **argv)
{
- rc = mu_stdio_stream_create (&transport, MU_STDERR_FD, 0);
+ mu_stream_t str;
+ char *fltargs[3] = { "INLINE-COMMENT", };
+
+ rc = mu_stdio_stream_create (&str, MU_STDERR_FD, 0);
if (rc)
@@ -181,2 +183,14 @@ mutool_logger (int argc, char **argv)
}
+ mu_asprintf (&fltargs[1], "%s: ", syslog_tag);
+ fltargs[2] = NULL;
+ rc = mu_filter_create_args (&transport, str,
+ "INLINE-COMMENT", 2, (const char *)fltargs,
+ MU_FILTER_ENCODE, MU_STREAM_WRITE);
+ mu_stream_unref (str);
+ free (fltargs[1]);
+ if (rc)
+ {
+ mu_error (_("cannot open filter stream: %s"), mu_strerror (rc));
+ return 1;
+ }
}
@@ -229,3 +243,6 @@ mutool_logger (int argc, char **argv)
- return !!mu_stream_copy (logger, transport, 0, NULL);
+ rc = mu_stream_copy (logger, transport, 0, NULL);
+ mu_stream_unref (transport);
+ mu_stream_unref (logger);
+ return !!rc;
}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index a31d9e547..b0bd63b00 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -135,2 +135,3 @@ libmailutils/stream/file_stream.c
libmailutils/stream/prog_stream.c
+libmailutils/stream/logstream.c
@@ -158,2 +159,5 @@ libmailutils/string/trueans.c
+libmailutils/stdstream/baseio.c
+libmailutils/stdstream/strerr.c
+
messages/messages.c
@@ -228,2 +232,3 @@ mu/ldflags.c
mu/wicket.c
+mu/logger.c

Return to:

Send suggestions