summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2016-12-10 23:40:23 +0200
committerSergey Poznyakoff <gray@gnu.org>2016-12-10 23:40:23 +0200
commit44f87939efa0a33e8d1f26b9d9fa3e15c32d808a (patch)
treed0fe02b9836088117c76f42467aca6922a57bd4e
parent3733cba7d0a04600f1119858956f923bbf820681 (diff)
downloadmailutils-44f87939efa0a33e8d1f26b9d9fa3e15c32d808a.tar.gz
mailutils-44f87939efa0a33e8d1f26b9d9fa3e15c32d808a.tar.bz2
Remove libmu_compat
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac4
-rw-r--r--include/mailutils/Makefile.am2
-rw-r--r--include/mailutils/argcv.h84
-rw-r--r--include/mailutils/filter.h7
-rw-r--r--include/mailutils/list.h2
-rw-r--r--include/mailutils/vartab.h47
-rw-r--r--libmailutils/list/foreach.c8
-rw-r--r--libmu_compat/Makefile.am26
-rw-r--r--libmu_compat/argcv.c440
-rw-r--r--libmu_compat/filter_iconv.c51
-rw-r--r--libmu_compat/tests/.gitignore7
-rw-r--r--libmu_compat/tests/Makefile.am75
-rw-r--r--libmu_compat/tests/argcv.at95
-rw-r--r--libmu_compat/tests/argcv.c60
-rw-r--r--libmu_compat/tests/atlocal.in6
-rw-r--r--libmu_compat/tests/testsuite.at19
-rw-r--r--libmu_compat/vartab.c348
-rw-r--r--mail/decode.c2
-rw-r--r--mu/ldflags.c2
20 files changed, 2 insertions, 1284 deletions
diff --git a/Makefile.am b/Makefile.am
index 3f1b6d592..5c3c82e4b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -94,7 +94,6 @@ SUBDIRS = . \
sql\
libmu_auth\
libproto\
- libmu_compat\
testsuite\
lib\
$(LIBMU_CPP_DIR)\
diff --git a/configure.ac b/configure.ac
index aa595bf16..b0c41a429 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1318,7 +1318,6 @@ test -z "$client_list" && client_list=" [NONE]"
# Initialize the (autotest) test suite.
AC_CONFIG_TESTDIR(libmailutils/tests)
AC_CONFIG_TESTDIR(testsuite)
-AC_CONFIG_TESTDIR(libmu_compat/tests)
AC_CONFIG_TESTDIR(frm/tests)
AC_CONFIG_TESTDIR(maidag/tests)
AC_CONFIG_TESTDIR(mail/tests)
@@ -1331,8 +1330,6 @@ AC_CONFIG_TESTDIR(imap4d/tests)
AC_CONFIG_FILES([libmailutils/tests/Makefile
libmailutils/tests/atlocal
- libmu_compat/tests/Makefile
- libmu_compat/tests/atlocal
testsuite/Makefile
testsuite/atlocal
comsat/tests/Makefile
@@ -1487,7 +1484,6 @@ AC_CONFIG_FILES([
libproto/nntp/Makefile
libproto/imap/Makefile
libproto/imap/tests/Makefile
- libmu_compat/Makefile
maidag/Makefile
mail/Makefile
mail/testsuite/Makefile
diff --git a/include/mailutils/Makefile.am b/include/mailutils/Makefile.am
index bc7834210..642b98a74 100644
--- a/include/mailutils/Makefile.am
+++ b/include/mailutils/Makefile.am
@@ -28,7 +28,6 @@ pkginclude_HEADERS = \
acl.h\
address.h\
alloc.h\
- argcv.h\
assoc.h\
attribute.h\
auth.h\
@@ -102,7 +101,6 @@ pkginclude_HEADERS = \
tls.h\
types.h\
url.h\
- vartab.h\
version.h\
wordsplit.h
diff --git a/include/mailutils/argcv.h b/include/mailutils/argcv.h
deleted file mode 100644
index 52b90f7a8..000000000
--- a/include/mailutils/argcv.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 1999-2001, 2005, 2007, 2010-2012, 2014-2016 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/>. */
-
-#ifndef _ARGCV_H
-#define _ARGCV_H 1
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-
-#include <mailutils/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void mu_argcv_free (size_t argc, char **argv);
-void mu_argv_free (char **argv);
-
-enum mu_argcv_escape
- {
- mu_argcv_escape_no,
- mu_argcv_escape_c
- /* mu_argcv_escape_sh */
- };
-
-int mu_argcv_join (int argc, char **argv, char *delim,
- enum mu_argcv_escape esc,
- char **pstring);
-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
-
-#ifndef MU_ARCGV_DEPRECATED
-# define MU_ARCGV_DEPRECATED MU_DEPRECATED
-#endif
-
-int mu_argcv_get (const char *command, const char *delim,
- const char *cmnt,
- int *argc, char ***argv) MU_ARCGV_DEPRECATED;
-int mu_argcv_get_n (const char *command, int len,
- const char *delim, const char *cmnt,
- int *argc, char ***argv) MU_ARCGV_DEPRECATED;
-int mu_argcv_get_np (const char *command, int len,
- const char *delim, const char *cmnt,
- int flags,
- int *pargc, char ***pargv, char **endp)
- MU_ARCGV_DEPRECATED;
-
-int mu_argcv_unquote_char (int c) MU_ARCGV_DEPRECATED;
-int mu_argcv_quote_char (int c) MU_ARCGV_DEPRECATED;
-size_t mu_argcv_quoted_length (const char *str, int *quote)
- MU_ARCGV_DEPRECATED;
-void mu_argcv_unquote_copy (char *dst, const char *src, size_t n)
- MU_ARCGV_DEPRECATED;
-void mu_argcv_quote_copy (char *dst, const char *src)
- MU_ARCGV_DEPRECATED;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ARGCV_H */
diff --git a/include/mailutils/filter.h b/include/mailutils/filter.h
index c2cd73e0c..e1e90a60e 100644
--- a/include/mailutils/filter.h
+++ b/include/mailutils/filter.h
@@ -134,13 +134,6 @@ enum mu_iconv_fallback_mode
mu_fallback_copy_octal
};
-extern int mu_filter_iconv_create (mu_stream_t *s, mu_stream_t transport,
- const char *fromcode, const char *tocode,
- int flags,
- enum mu_iconv_fallback_mode fallback_mode)
- MU_DEPRECATED;
-
-
extern int mu_linelen_filter_create (mu_stream_t *pstream, mu_stream_t stream,
size_t limit, int flags);
diff --git a/include/mailutils/list.h b/include/mailutils/list.h
index 1cec08a0a..50d1947b5 100644
--- a/include/mailutils/list.h
+++ b/include/mailutils/list.h
@@ -154,8 +154,6 @@ int mu_list_foreach_dir (mu_list_t _list, int _dir, mu_list_action_t _action,
void *_cbdata);
/* Same as mu_list_foreach_dir with _dir==0. */
int mu_list_foreach (mu_list_t _list, mu_list_action_t _action, void *_data);
- /* A historical alias to the above. */
-int mu_list_do (mu_list_t, mu_list_action_t, void *) MU_DEPRECATED;
/* ************************************************* */
diff --git a/include/mailutils/vartab.h b/include/mailutils/vartab.h
deleted file mode 100644
index db881c2d2..000000000
--- a/include/mailutils/vartab.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 2007, 2010-2012, 2014-2016 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/>. */
-
-#ifndef _MAILUTILS_VARTAB_H
-#define _MAILUTILS_VARTAB_H
-
-#include <mailutils/types.h>
-
-#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);
-typedef void (*mu_var_free_fp) (void *data, char *value);
-
-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) 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) 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/list/foreach.c b/libmailutils/list/foreach.c
index 1e5a0089e..353de05d7 100644
--- a/libmailutils/list/foreach.c
+++ b/libmailutils/list/foreach.c
@@ -45,11 +45,3 @@ mu_list_foreach (mu_list_t list, mu_list_action_t action, void *cbdata)
mu_iterator_destroy (&itr);
return status;
}
-
-/* Retained for compatibility with previous versions.
- In the future it will be removed, or changed to a define or weak alias. */
-int
-mu_list_do (mu_list_t list, mu_list_action_t action, void *cbdata)
-{
- return mu_list_foreach (list, action, cbdata);
-}
diff --git a/libmu_compat/Makefile.am b/libmu_compat/Makefile.am
deleted file mode 100644
index 4085d5714..000000000
--- a/libmu_compat/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is part of GNU Mailutils
-# Copyright (C) 2010-2012, 2014-2016 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\
- filter_iconv.c\
- vartab.c
-
-AM_CPPFLAGS = @MU_LIB_COMMON_INCLUDES@ -I/libmailutils
-
diff --git a/libmu_compat/argcv.c b/libmu_compat/argcv.c
deleted file mode 100644
index 4ceb8df6b..000000000
--- a/libmu_compat/argcv.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/* argcv.c - simple functions for parsing input based on whitespace
- Copyright (C) 1999-2001, 2003-2006, 2010-2012, 2014-2016 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/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <ctype.h>
-#include <errno.h>
-#define MU_ARCGV_DEPRECATED
-#include <mailutils/argcv.h>
-
-/* Keep mailutils namespace clean */
-#define argcv_get mu_argcv_get
-#define argcv_get_n mu_argcv_get_n
-#define argcv_get_np mu_argcv_get_np
-#define argcv_unquote_char mu_argcv_unquote_char
-#define argcv_quote_char mu_argcv_quote_char
-#define argcv_quoted_length mu_argcv_quoted_length
-#define argcv_unquote_copy mu_argcv_unquote_copy
-#define argcv_quote_copy mu_argcv_quote_copy
-
-/*
- * takes a string and splits it into several strings, breaking at ' '
- * command is the string to split
- * the number of strings is placed into argc
- * the split strings are put into argv
- * returns 0 on success, nonzero on failure
- */
-
-#define isws(c) ((c)==' '||(c)=='\t'||(c)=='\n')
-#define isdelim(c,delim) (strchr(delim,(c))!=NULL)
-
-struct argcv_info
-{
- int len;
- const char *command;
- const char *delim;
- const char *comment;
- int flags;
-
- int start;
- int end;
- int save;
- int finish_pos;
-};
-
-static void
-init_argcv_info (struct argcv_info *ap, int flags,
- int len, const char *command, const char *delim,
- const char *comment)
-{
- memset (ap, 0, sizeof *ap);
- ap->len = len;
- ap->command = command;
- ap->delim = delim;
- ap->comment = comment;
- ap->flags = flags;
-}
-
-static int
-argcv_scan (struct argcv_info *ap)
-{
- int i = 0;
- int len = ap->len;
- const char *command = ap->command;
- const char *delim = ap->delim;
- const char *comment = ap->comment;
-
- for (;;)
- {
- i = ap->save;
-
- if (i >= len)
- return i + 1;
-
- /* Skip initial whitespace */
- while (i < len && isws (command[i]))
- i++;
- ap->start = i;
-
- if (!isdelim (command[i], delim))
- {
- while (i < len)
- {
- if (command[i] == '\\')
- {
- if (++i == len)
- break;
- i++;
- continue;
- }
-
- if (command[i] == '\'' || command[i] == '"')
- {
- int j;
- for (j = i + 1; j < len && command[j] != command[i]; j++)
- if (command[j] == '\\')
- j++;
- if (j < len)
- i = j + 1;
- else
- i++;
- }
- else if (isws (command[i]) || isdelim (command[i], delim))
- break;
- else
- i++; /* skip the escaped character */
- }
- i--;
- }
- else if (!(ap->flags & MU_ARGCV_RETURN_DELIMS))
- {
- while (i < len && isdelim (command[i], delim))
- i++;
- ap->save = i;
- continue;
- }
-
-
- ap->end = i;
- ap->save = ap->finish_pos = i + 1;
-
- /* If we have a token, and it starts with a comment character, skip
- to the newline and restart the token search. */
- if (ap->save <= len)
- {
- if (strchr (comment, command[ap->start]) != NULL)
- {
- ap->finish_pos = ap->start;
- i = ap->save;
- while (i < len && command[i] != '\n')
- i++;
-
- ap->save = i;
- continue;
- }
- }
- break;
- }
- return ap->save;
-}
-
-static char quote_transtab[] = "\\\\\"\"a\ab\bf\fn\nr\rt\tv\v";
-
-int
-argcv_unquote_char (int c)
-{
- char *p;
-
- for (p = quote_transtab; *p; p += 2)
- {
- if (*p == c)
- return p[1];
- }
- return c;
-}
-
-int
-argcv_quote_char (int c)
-{
- char *p;
-
- for (p = quote_transtab + sizeof(quote_transtab) - 2;
- p > quote_transtab; p -= 2)
- {
- if (*p == c)
- return p[-1];
- }
- return -1;
-}
-
-#define to_num(c) \
- (isdigit(c) ? c - '0' : (isxdigit(c) ? toupper(c) - 'A' + 10 : 255 ))
-
-static int
-xtonum (int *pval, const char *src, int base, int cnt)
-{
- int i, val;
-
- for (i = 0, val = 0; i < cnt; i++, src++)
- {
- int n = *(unsigned char*)src;
- if (n > 127 || (n = to_num(n)) >= base)
- break;
- val = val*base + n;
- }
- *pval = val;
- return i;
-}
-
-size_t
-argcv_quoted_length (const char *str, int *quote)
-{
- size_t len = 0;
-
- *quote = 0;
- for (; *str; str++)
- {
- if (*str == ' ')
- {
- len++;
- *quote = 1;
- }
- else if (*str == '"')
- {
- len += 2;
- *quote = 1;
- }
- else if (*str != '\t' && *str != '\\' && isprint (*str))
- len++;
- else if (argcv_quote_char (*str) != -1)
- len += 2;
- else
- len += 4;
- }
- return len;
-}
-
-void
-argcv_unquote_copy (char *dst, const char *src, size_t n)
-{
- int i = 0;
- int c;
- int expect_delim = 0;
-
- while (i < n)
- {
- switch (src[i])
- {
- case '\'':
- case '"':
- if (!expect_delim)
- {
- const char *p;
-
- for (p = src+i+1; *p && *p != src[i]; p++)
- if (*p == '\\')
- p++;
- if (*p)
- expect_delim = src[i++];
- else
- *dst++ = src[i++];
- }
- else if (expect_delim == src[i])
- ++i;
- else
- *dst++ = src[i++];
- break;
-
- case '\\':
- ++i;
- if (src[i] == 'x' || src[i] == 'X')
- {
- if (n - i < 2)
- {
- *dst++ = '\\';
- *dst++ = src[i++];
- }
- else
- {
- int off = xtonum(&c, src + i + 1, 16, 2);
- if (off == 0)
- {
- *dst++ = '\\';
- *dst++ = src[i++];
- }
- else
- {
- *dst++ = c;
- i += off + 1;
- }
- }
- }
- else if ((unsigned char)src[i] < 128 && isdigit (src[i]))
- {
- if (n - i < 1)
- {
- *dst++ = '\\';
- *dst++ = src[i++];
- }
- else
- {
- int off = xtonum (&c, src+i, 8, 3);
- if (off == 0)
- {
- *dst++ = '\\';
- *dst++ = src[i++];
- }
- else
- {
- *dst++ = c;
- i += off;
- }
- }
- }
- else
- *dst++ = argcv_unquote_char (src[i++]);
- break;
-
- default:
- *dst++ = src[i++];
- }
- }
- *dst = 0;
-}
-
-void
-argcv_quote_copy (char *dst, const char *src)
-{
- for (; *src; src++)
- {
- if (*src == '"')
- {
- *dst++ = '\\';
- *dst++ = *src;
- }
- else if (*src != '\t' && *src != '\\' && isprint(*src))
- *dst++ = *src;
- else
- {
- int c = argcv_quote_char (*src);
- *dst++ = '\\';
- if (c != -1)
- *dst++ = c;
- else
- {
- char tmp[4];
- snprintf (tmp, sizeof tmp, "%03o", *(unsigned char*)src);
- memcpy (dst, tmp, 3);
- dst += 3;
- }
- }
- }
-}
-
-int
-argcv_get_np (const char *command, int len,
- const char *delim, const char *cmnt,
- int flags,
- int *pargc, char ***pargv, char **endp)
-{
- int i = 0;
- struct argcv_info info;
- int argc;
- char **argv;
-
- if (!delim)
- delim = "";
- if (!cmnt)
- cmnt = "";
-
- init_argcv_info (&info, flags, len, command, delim, cmnt);
-
- /* Count number of arguments */
- argc = 0;
- while (argcv_scan (&info) <= len)
- argc++;
-
- argv = calloc ((argc + 1), sizeof (char *));
- if (argv == NULL)
- return ENOMEM;
-
- i = 0;
- info.save = 0;
- for (i = 0; i < argc; i++)
- {
- int n;
- int unquote;
-
- argcv_scan (&info);
-
- if ((command[info.start] == '"' || command[info.end] == '\'')
- && command[info.end] == command[info.start])
- {
- if (info.start < info.end)
- {
- info.start++;
- info.end--;
- }
- unquote = 0;
- }
- else
- unquote = 1;
-
- n = info.end - info.start + 1;
- argv[i] = calloc (n + 1, sizeof (char));
- if (argv[i] == NULL)
- {
- mu_argcv_free (i, argv);
- return ENOMEM;
- }
- if (unquote)
- argcv_unquote_copy (argv[i], &command[info.start], n);
- else
- memcpy (argv[i], &command[info.start], n);
- argv[i][n] = 0;
- }
- argv[i] = NULL;
-
- *pargc = argc;
- *pargv = argv;
- if (endp)
- *endp = (char*) (command + info.finish_pos);
- return 0;
-}
-
-int
-argcv_get_n (const char *command, int len, const char *delim, const char *cmnt,
- int *pargc, char ***pargv)
-{
- return argcv_get_np (command, len, delim, cmnt, MU_ARGCV_RETURN_DELIMS,
- pargc, pargv, NULL);
-}
-
-int
-argcv_get (const char *command, const char *delim, const char *cmnt,
- int *argc, char ***argv)
-{
- return argcv_get_n (command, strlen (command), delim, cmnt, argc, argv);
-}
-
-
-
-
diff --git a/libmu_compat/filter_iconv.c b/libmu_compat/filter_iconv.c
deleted file mode 100644
index 91471ebb7..000000000
--- a/libmu_compat/filter_iconv.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 2010-2012, 2014-2016 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/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <stdlib.h>
-#include <mailutils/types.h>
-#include <mailutils/stream.h>
-#include <mailutils/filter.h>
-
-int
-mu_filter_iconv_create (mu_stream_t *s, mu_stream_t transport,
- const char *fromcode, const char *tocode, int flags,
- enum mu_iconv_fallback_mode fallback_mode)
-{
- const char *argv[] = { "iconv", fromcode, tocode, NULL, NULL };
-
- switch (fallback_mode)
- {
- case mu_fallback_none:
- argv[3] = "none";
- break;
-
- case mu_fallback_copy_pass:
- argv[3] = "copy-pass";
- break;
-
- case mu_fallback_copy_octal:
- argv[3] = "copy-octal";
- }
-
- return mu_filter_create_args (s, transport, "iconv", 4, argv,
- MU_FILTER_DECODE, MU_FILTER_READ);
-}
-
-
diff --git a/libmu_compat/tests/.gitignore b/libmu_compat/tests/.gitignore
deleted file mode 100644
index 81721a669..000000000
--- a/libmu_compat/tests/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-atconfig
-atlocal
-package.m4
-testsuite
-testsuite.dir
-testsuite.log
-argcv
diff --git a/libmu_compat/tests/Makefile.am b/libmu_compat/tests/Makefile.am
deleted file mode 100644
index 6fa662958..000000000
--- a/libmu_compat/tests/Makefile.am
+++ /dev/null
@@ -1,75 +0,0 @@
-# This file is part of GNU Mailutils.
-# Copyright (C) 2010-2012, 2014-2016 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
-## -------------------------- ##
-
-AM_CPPFLAGS = @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/libmu_compat/tests/argcv.at b/libmu_compat/tests/argcv.at
deleted file mode 100644
index 0c1b1d613..000000000
--- a/libmu_compat/tests/argcv.at
+++ /dev/null
@@ -1,95 +0,0 @@
-# This file is part of GNU Mailutils. -*- Autotest -*-
-# Copyright (C) 2007-2012, 2014-2016 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/>.
-
-dnl ------------------------------------------------------------
-dnl TESTARGS([NAME], [KW = `'], [INPUT], [STDOUT = `'],
-dnl [STDERR = `'], [RUN-IF-FAIL], [RUN-IF-PASS])
-dnl
-m4_pushdef([TESTARGS],[
-m4_pushdef([MU_TEST_GROUP],[Argcv])
-m4_pushdef([MU_TEST_KEYWORDS],[argcv])
-m4_pushdef([MU_TEST_COMMAND],[argcv])
-
-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
-])
-
-dnl ------------------------------------------------------------
-TESTARGS([simple input],[],
-[1 2 3],
-[3: 1 2 3
-])
-
-TESTARGS([quoted space],[],
-[quoted\ space],
-[1: "quoted space"
-])
-
-TESTARGS([tab character],[],
-[a "tab character"],
-[2: a tab\tcharacter
-])
-
-TESTARGS([octal and hex escapes],[],
-[\157\143\164\141\154\40and\x20\x68\x65\x78],
-[1: "octal and hex"
-])
-
-TESTARGS([octal and hex escapes 2],[],
-[\157\143\164\141\154\40 and \x20\x68\x65\x78],
-[3: "octal " and " hex"
-])
-
-TESTARGS([escape representation],[],
-[A\x3-\48\39],
-[1: A\003-\0048\0039
-])
-
-TESTARG([8-bit input],[],
-[верхняя половина таблицы],
-[3: \327\305\322\310\316\321\321 \320\317\314\317\327\311\316\301 \324\301\302\314\311\303\331])
-
-TESTARG([misquoted input],[],
-[messed up'quotations ' in "a single'" "command" lin"e],
-[6: messed "upquotations " in "a single'" command "lin\"e"
-])
-
-TESTARG([unbalanced quote],[],
-['unbalanced "quote],
-[2: 'unbalanced "\"quote"
-])
-
-TESTARG([unbalanced quote 2],[],
-[unbalanced "quote],
-[2: unbalanced "\"quote"
-])
-
-TESTARG([unbalanced quote 3],[],
-["],
-[1: "\""
-])
-
-m4_popdef([TESTARGS])
-
-
-
-
-
diff --git a/libmu_compat/tests/argcv.c b/libmu_compat/tests/argcv.c
deleted file mode 100644
index 520a3eb1c..000000000
--- a/libmu_compat/tests/argcv.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 2005, 2007, 2009-2012, 2014-2016 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/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#define MU_ARCGV_DEPRECATED
-#include <mailutils/argcv.h>
-#include <mailutils/errno.h>
-
-int
-main (int argc, char **argv)
-{
- char *delim = "";
- char *comment = "#";
- char buf[512];
-
- while (fgets (buf, sizeof buf, stdin))
- {
- int status, c;
- char **v;
- char *s;
-
- status = mu_argcv_get (buf, delim, comment, &c, &v);
- if (status)
- {
- fprintf (stderr, "cannot parse: %s\n", mu_strerror (status));
- continue;
- }
- status = mu_argcv_string (c, v, &s);
- if (status)
- fprintf (stderr, "cannot create string: %s\n", mu_strerror (status));
- else
- {
- printf ("%d: %s\n", c, s);
- free (s);
- }
- mu_argcv_free (c, v);
- }
- exit (0);
-}
diff --git a/libmu_compat/tests/atlocal.in b/libmu_compat/tests/atlocal.in
deleted file mode 100644
index b998cb885..000000000
--- a/libmu_compat/tests/atlocal.in
+++ /dev/null
@@ -1,6 +0,0 @@
-# @configure_input@ -*- shell-script -*-
-# Configurable variable values for Mailutils test suite.
-# Copyright (C) 2004, 2010-2012, 2014-2016 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
deleted file mode 100644
index 05e2cccb2..000000000
--- a/libmu_compat/tests/testsuite.at
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file is part of GNU Mailutils. -*- Autotest -*-
-# Copyright (C) 2007-2012, 2014-2016 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/libmu_compat/vartab.c b/libmu_compat/vartab.c
deleted file mode 100644
index 22ae7e2cb..000000000
--- a/libmu_compat/vartab.c
+++ /dev/null
@@ -1,348 +0,0 @@
-/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 2007, 2010-2012, 2014-2016 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/>. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include <mailutils/assoc.h>
-#include <mailutils/stream.h>
-#include <mailutils/errno.h>
-#include <mailutils/iterator.h>
-#define MU_SUPPRESS_DEPRECATION
-#include <mailutils/vartab.h>
-
-struct _mu_vartab
-{
- mu_assoc_t assoc;
- mu_stream_t stream;
- char *buf;
- size_t bufsize;
-};
-
-#define MU_VARDEFN_STATIC 0x1
-#define MU_VARDEFN_FUNC 0x2
-
-struct vardefn
-{
- int flags;
- char *value;
- mu_var_expansion_fp fun;
- mu_var_free_fp free;
- void *data;
-};
-
-int
-mu_vartab_create (mu_vartab_t *pvar)
-{
- int rc;
- struct _mu_vartab *p = calloc (1, sizeof *p);
- if (!p)
- return ENOMEM;
- rc = mu_assoc_create (&p->assoc, sizeof (struct vardefn), 0);
- if (rc)
- {
- free (p);
- return rc;
- }
- *pvar = p;
- return 0;
-}
-
-static void
-vardefn_free (struct vardefn *vd)
-{
- if (vd->value)
- {
- if (vd->free)
- vd->free (vd->data, vd->value);
- else if (!(vd->flags & MU_VARDEFN_STATIC))
- free (vd->value);
- }
- memset (vd, 0, sizeof *vd);
-}
-
-int
-mu_vartab_destroy (mu_vartab_t *pvar)
-{
- int rc;
- mu_vartab_t var = *pvar;
- mu_iterator_t itr;
-
- if (!var)
- return EINVAL;
- rc = mu_assoc_get_iterator (var->assoc, &itr);
- if (rc)
- return rc;
- for (mu_iterator_first (itr); !mu_iterator_is_done (itr);
- mu_iterator_next (itr))
- {
- struct vardefn *vd;
- mu_iterator_current (itr, (void**)&vd);
- vardefn_free (vd);
- }
- mu_iterator_destroy (&itr);
-
- mu_assoc_destroy (&var->assoc);
- mu_stream_destroy (&var->stream);
- free (var->buf);
- free (var);
- *pvar = NULL;
- return 0;
-}
-
-int
-mu_vartab_define (mu_vartab_t var, const char *name, const char *value,
- int isstatic)
-{
- int rc;
- struct vardefn *vd;
-
- if (!var)
- return EINVAL;
- rc = mu_assoc_ref_install (var->assoc, name, (void **) &vd);
- if (rc == MU_ERR_EXISTS)
- vardefn_free (vd);
- else if (rc != 0)
- return rc;
-
- if (isstatic)
- {
- vd->flags = MU_VARDEFN_STATIC;
- vd->value = (char*) value;
- }
- else
- {
- vd->flags = 0;
- vd->value = strdup (value);
- if (!vd->value)
- return ENOMEM;
- }
- return 0;
-}
-
-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 rc;
- struct vardefn *vd;
-
- if (!var)
- return EINVAL;
- rc = mu_assoc_ref_install (var->assoc, name, (void **) &vd);
- if (rc == MU_ERR_EXISTS)
- vardefn_free (vd);
- else if (rc != 0)
- return rc;
-
- vd->flags = MU_VARDEFN_FUNC;
- vd->fun = fun;
- vd->free = free;
- vd->data = data;
- return 0;
-}
-
-int
-mu_vartab_count (mu_vartab_t vt, size_t *pcount)
-{
- if (!vt)
- return EINVAL;
- return mu_assoc_count (vt->assoc, pcount);
-}
-
-static int
-vardefn_expand (const char *name, struct vardefn *vd, const char **pvalue)
-{
- if (!vd->value)
- {
- if (vd->fun)
- {
- int rc = vd->fun (name, vd->data, &vd->value);
- if (rc)
- return rc;
- }
- else
- return EINVAL;
- }
- *pvalue = vd->value;
- return 0;
-}
-
-int
-mu_vartab_getvar (mu_vartab_t vt, const char *name, const char **pvalue)
-{
- struct vardefn *vdefn;
-
- if (!vt)
- return EINVAL;
- vdefn = mu_assoc_ref (vt->assoc, name);
- if (!vdefn)
- return MU_ERR_NOENT;
- return vardefn_expand (name, vdefn, pvalue);
-}
-
-static char *
-copy_name (mu_vartab_t vt, const char *name, size_t len)
-{
- if (len + 1 > vt->bufsize)
- {
- char *p = realloc (vt->buf, len + 1);
- if (!p)
- return NULL;
- vt->buf = p;
- vt->bufsize = len + 1;
- }
- memcpy (vt->buf, name, len);
- vt->buf[len] = 0;
- return vt->buf;
-}
-
-int
-mu_vartab_expand (mu_vartab_t vt, const char *str, char **pres)
-{
- int rc;
- mu_off_t size;
- const char *p;
-
- if (!vt)
- return EINVAL;
- if (!vt->stream)
- {
- rc = mu_memory_stream_create (&vt->stream, 0);
- if (rc)
- return rc;
- }
- else
- mu_stream_truncate (vt->stream, 0);
- mu_stream_seek (vt->stream, 0, MU_SEEK_SET, NULL);
-
- for (p = str; *p; )
- {
- if (*p == '$')
- {
- switch (*++p)
- {
- case '$':
- mu_stream_write (vt->stream, str, p - str, NULL);
- str = p + 1;
- p = str + 1;
- break;
-
- case '{':
- {
- const char *e = strchr (p + 1, '}');
- if (e)
- {
- const char *pvalue;
- size_t len = e - p - 1;
- char *name = copy_name (vt, p + 1, len);
- rc = mu_vartab_getvar (vt, name, &pvalue);
- if (rc == 0)
- {
- mu_stream_write (vt->stream, str, p - str - 1, NULL);
- mu_stream_write (vt->stream, pvalue, strlen (pvalue),
- NULL);
- str = e + 1;
- p = str + 1;
- }
- else if (rc == MU_ERR_NOENT)
- p = e + 1;
- else
- return rc;
- }
- else
- p++;
- }
- break;
-
- default:
- {
- char *name = copy_name (vt, p, 1);
- const char *pvalue;
- rc = mu_vartab_getvar (vt, name, &pvalue);
- if (rc == 0)
- {
- mu_stream_write (vt->stream, str, p - str - 1, NULL);
- mu_stream_write (vt->stream, pvalue, strlen (pvalue),
- NULL);
- str = p + 1;
- p = str + 1;
- }
- else if (rc == MU_ERR_NOENT)
- p++;
- else
- return rc;
- }
- break;
- }
- }
- else if (*p == '%')
- {
- /* allow `%' as prefix for single-character entities, for
- compatibility with v. prior to 1.2.91 */
- if (*++p == '%')
- {
- mu_stream_write (vt->stream, str, p - str, NULL);
- str = p + 1;
- p = str + 1;
- }
- else
- {
- char *name = copy_name (vt, p, 1);
- const char *pvalue;
- rc = mu_vartab_getvar (vt, name, &pvalue);
- if (rc == 0)
- {
- mu_stream_write (vt->stream, str, p - str - 1, NULL);
- mu_stream_write (vt->stream, pvalue, strlen (pvalue),
- NULL);
- str = p + 1;
- p = str + 1;
- }
- else if (rc == MU_ERR_NOENT)
- p++;
- else
- return rc;
- }
- }
- else
- p++;
- }
-
- if (p > str)
- mu_stream_write (vt->stream, str, p - str, NULL);
-
- mu_stream_size (vt->stream, &size);
- *pres = malloc (size + 1);
- if (!*pres)
- return ENOMEM;
- mu_stream_seek (vt->stream, 0, MU_SEEK_SET, NULL);
- mu_stream_read (vt->stream, *pres, size, NULL);
- (*pres)[size] = 0;
- return 0;
-}
-
-
-
-
-
-
-
diff --git a/mail/decode.c b/mail/decode.c
index 9b2ea00cd..1ae9d0f4f 100644
--- a/mail/decode.c
+++ b/mail/decode.c
@@ -411,7 +411,7 @@ run_metamail (const char *mailcap_cmd, mu_message_t mesg)
status = mu_message_get_streamref (mesg, &stream);
if (status)
{
- mu_error ("mu_message_get_stream: %s", mu_strerror (status));
+ mu_error ("mu_message_get_streamref: %s", mu_strerror (status));
break;
}
diff --git a/mu/ldflags.c b/mu/ldflags.c
index 9559cce99..d225665b4 100644
--- a/mu/ldflags.c
+++ b/mu/ldflags.c
@@ -57,7 +57,6 @@ struct lib_descr {
#endif
{ "mailer", "-lmu_mailer", 0 },
{ "sieve", "-lmu_sieve", 0, NOTALL },
- { "compat", "-lmu_compat", 0 },
{ "auth", "-lmu_auth " AUTHLIBS, 2 },
#ifdef WITH_GUILE
{ "guile", "-lmu_scm " GUILE_LIBS, -1, NOTALL },
@@ -65,6 +64,7 @@ struct lib_descr {
#ifdef WITH_PYTHON
{ "python", "-lmu_py " PYTHON_LIBS, -1, NOTALL },
#endif
+ { "compat", NULL, 0, 0 }, /* deprecated */
{ "cfg", NULL, 0, 0 }, /* deprecated */
{ "argp", NULL, 0, 0 }, /* deprecated */
{ NULL }

Return to:

Send suggestions and report system problems to the System administrator.