diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-12-04 12:19:50 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-12-04 12:52:34 +0200 |
commit | 76df98da17f576b71e6cbc83bbf527b685be1178 (patch) | |
tree | 3af08ebb7dcff4a82d468b03491f722e6e7090c0 | |
parent | 30bf4d542198abc23b897dd81fc280354903e49f (diff) | |
download | mailutils-76df98da17f576b71e6cbc83bbf527b685be1178.tar.gz mailutils-76df98da17f576b71e6cbc83bbf527b685be1178.tar.bz2 |
Introduce stdstream module; move deprecated functions to libmu_compat.
* include/mailutils/log.h: New file.
* include/mailutils/stdstream.h: New file.
* include/mailutils/Makefile.am (pkginclude_HEADERS): Add stdstream.h
and log.h.
* include/mailutils/argcv.h: Include mailutils/types.h
* include/mailutils/mailutils.h: Include stdstream.h
Remove vartab.h
* include/mailutils/types.hin (MU_DEPRECATED): New define.
* include/mailutils/vartab.h: Mark this header and all prototypes
it defines as deprecated.
* libmailutils/stdstream/Makefile.am: New file.
* libmailutils/stdstream/basestr.c: New file.
* libmailutils/stdstream/strerr.c: New file.
* libmu_compat/Makefile.am: New file.
* libmu_compat/tests/.gitignore: New file.
* libmu_compat/tests/Makefile.am: New file.
* libmu_compat/tests/atlocal.in: New file.
* libmu_compat/tests/testsuite.at: New file.
* libmailutils/base/Makefile.am (noinst_LTLIBRARIES): Remove
argcv.c and vartab.c.
* libmailutils/Makefile.am (SUBDIRS): Add stdstream.
(libmailutils_la_LIBADD): Add stdstream/libstdstream.la.
* libmailutils/tests/Makefile.am (noinst_PROGRAMS): Remove argcv
(TESTSUITE_AT): Remove argcv.at
* libmailutils/tests/testsuite.at: Do not include argcv.at.
* libmailutils/base/argcv.c: Move to libmu_compat/argcv.c
* libmailutils/tests/argcv.at: Move to libmu_compat/tests/argcv.at
* libmailutils/tests/argcv.c: Move to libmu_compat/tests/argcv.c
* libmailutils/base/vartab.c: Move to libmu_compat/vartab.c
* Makefile.am (SUBDIRS): Add libmu_compat.
* configure.ac: Add libmu_compat/tests, libmu_compat/tests/Makefile,
libmu_compat/tests/atlocal, libmu_compat/Makefile and
libmailutils/stdstream/Makefile to config file list.
* mu/ldflags.c (lib_descr): Add mu_compat.
* mu/logger.c (logger_parse_opt): -t does not imply --syslog.
(mutool_logger): Use inline-comment filter to insert "tag: "
prefix.
Flush and destroy both streams before returning.
* po/POTFILES.in: Add libmailutils/stream/logstream.c,
libmailutils/stdstream/baseio.c, libmailutils/stdstream/strerr.c
and mu/logger.c.
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 |