[Pkg-gnupg-commit] [libassuan] 75/437: * libassuan.m4: New. Based on libgrypt.m4. * Makefile.am (m4data_DATA): New.
Eric Dorland
eric at moszumanska.debian.org
Fri May 22 05:33:25 UTC 2015
This is an automated email from the git hooks/post-receive script.
eric pushed a commit to branch master
in repository libassuan.
commit e6203aa72033e5de35c57be44f4e5572d150e9c6
Author: Werner Koch <wk at gnupg.org>
Date: Tue Apr 29 10:49:57 2003 +0000
* libassuan.m4: New. Based on libgrypt.m4.
* Makefile.am (m4data_DATA): New.
* assuan.h (AssuanCommand): Removed.
* assuan-handler.c: Remove the cmd_id element,
(assuan_register_command): Likewise. Note that semantics changed.
(_assuan_register_std_commands): Adjusted.
---
ChangeLog | 7 ++++
Makefile.am | 5 ++-
autogen.sh | 2 +-
configure.ac | 2 +-
mkinstalldirs | 73 ++++-------------------------------------
src/ChangeLog | 11 +++++++
src/Makefile.am | 4 ++-
src/assuan-defs.h | 9 ++++-
src/assuan-handler.c | 93 ++++++++++++++++++++++++----------------------------
src/assuan.h | 2 +-
src/libassuan.m4 | 76 ++++++++++++++++++++++++++++++++++++++++++
11 files changed, 162 insertions(+), 122 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 27a4296..90437ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-04-28 gettextize <bug-gnu-gettext at gnu.org>
+
+ * Makefile.am (SUBDIRS): Add m4.
+ (ACLOCAL_AMFLAGS): New variable.
+ (EXTRA_DIST): New variable.
+ * configure.ac (AC_CONFIG_FILES): Add po/Makefile.in,
+
2003-02-18 Neal H. Walfield <neal at g10code.de>
* COPYING: New file.
diff --git a/Makefile.am b/Makefile.am
index a5cd5a4..a7948ec 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1 +1,4 @@
-SUBDIRS = src doc tests
\ No newline at end of file
+SUBDIRS = m4 src doc
+ACLOCAL_AMFLAGS = -I m4
+
+EXTRA_DIST = config.rpath
diff --git a/autogen.sh b/autogen.sh
index 9e377cc..c596bd8 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -154,7 +154,7 @@ echo "Running gettextize... Ignore non-fatal messages."
echo "no" | gettextize
echo "Running $aclocal"
-$aclocal
+$aclocal -I m4
echo "Running autoheader..."
autoheader
echo "Running $automake --gnu -a"
diff --git a/configure.ac b/configure.ac
index 125bfd3..d936c17 100644
--- a/configure.ac
+++ b/configure.ac
@@ -141,7 +141,7 @@ AC_REPLACE_FUNCS(isascii)
AC_REPLACE_FUNCS(putc_unlocked)
AC_REPLACE_FUNCS(memrchr)
-AC_CONFIG_FILES([
+AC_CONFIG_FILES([ po/Makefile.in m4/Makefile
Makefile
src/Makefile
src/libassuan-config
diff --git a/mkinstalldirs b/mkinstalldirs
index 8ab885e..6b3b5fc 100755
--- a/mkinstalldirs
+++ b/mkinstalldirs
@@ -4,53 +4,9 @@
# Created: 1993-05-16
# Public domain
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case "${1}" in
- -h | --help | --h* ) # -h for help
- echo "${usage}" 1>&2; exit 0 ;;
- -m ) # -m PERM arg
- shift
- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
- dirmode="${1}"
- shift ;;
- -- ) shift; break ;; # stop option processing
- -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
- * ) break ;; # first non-opt arg
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
-0) exit 0 ;;
-esac
+# $Id$
-case $dirmode in
-'')
- if mkdir -p -- . 2>/dev/null; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- fi ;;
-*)
- if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- fi ;;
-esac
+errstatus=0
for file
do
@@ -66,24 +22,13 @@ do
esac
if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
+ echo "mkdir $pathcomp"
- lasterr=""
- chmod "$dirmode" "$pathcomp" || lasterr=$?
+ mkdir "$pathcomp" || lasterr=$?
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ fi
fi
pathcomp="$pathcomp/"
@@ -92,8 +37,4 @@ done
exit $errstatus
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 3
-# End:
# mkinstalldirs ends here
diff --git a/src/ChangeLog b/src/ChangeLog
index a484cf1..47e2bc2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
+2003-04-29 Werner Koch <wk at gnupg.org>
+
+ * libassuan.m4: New. Based on libgrypt.m4.
+ * Makefile.am (m4data_DATA): New.
+
+ * assuan.h (AssuanCommand): Removed.
+
+ * assuan-handler.c: Remove the cmd_id element,
+ (assuan_register_command): Likewise. Note that semantics changed.
+ (_assuan_register_std_commands): Adjusted.
+
2003-02-22 Neal H. Walfield <neal at g10code.de>
* Makefile.am (bin_SCRIPTS): Renamed from bin_PROGRAMS.
diff --git a/src/Makefile.am b/src/Makefile.am
index 041ee17..23ae54b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -19,12 +19,14 @@
## Process this file with automake to produce Makefile.in
-EXTRA_DIST = mkerrors
+EXTRA_DIST = mkerrors libassuan.m4
INCLUDES = -I.. -I$(top_srcdir)/include
BUILT_SOURCES = assuan-errors.c
MOSTLYCLEANFILES = assuan-errors.c
bin_SCRIPTS = libassuan-config
+m4datadir = $(datadir)/aclocal
+m4data_DATA = libassuan.m4
lib_LIBRARIES = libassuan.a
include_HEADERS = assuan.h
diff --git a/src/assuan-defs.h b/src/assuan-defs.h
index 5766024..1f7f1f0 100644
--- a/src/assuan-defs.h
+++ b/src/assuan-defs.h
@@ -33,7 +33,6 @@
struct cmdtbl_s
{
const char *name;
- int cmd_id;
int (*handler)(ASSUAN_CONTEXT, char *line);
};
@@ -183,5 +182,13 @@ ssize_t _assuan_simple_read (ASSUAN_CONTEXT ctx, void *buffer, size_t size);
ssize_t _assuan_simple_write (ASSUAN_CONTEXT ctx, const void *buffer,
size_t size);
+#ifdef HAVE_FOPENCOOKIE
+/* We have to implement funopen in terms of glibc's fopencookie. */
+FILE *funopen(const void *cookie, cookie_read_function_t *readfn,
+ cookie_write_function_t *writefn,
+ cookie_seek_function_t *seekfn,
+ cookie_close_function_t *closefn);
+#endif /*HAVE_FOPENCOOKIE*/
+
#endif /*ASSUAN_DEFS_H*/
diff --git a/src/assuan-handler.c b/src/assuan-handler.c
index 9d73e0e..f8b85db 100644
--- a/src/assuan-handler.c
+++ b/src/assuan-handler.c
@@ -25,9 +25,15 @@
#include "assuan-defs.h"
+
+
#define spacep(p) (*(p) == ' ' || *(p) == '\t')
#define digitp(a) ((a) >= '0' && (a) <= '9')
+static int my_strcasecmp (const char *a, const char *b);
+
+
+
static int
dummy_handler (ASSUAN_CONTEXT ctx, char *line)
{
@@ -191,25 +197,24 @@ std_handler_output (ASSUAN_CONTEXT ctx, char *line)
/* This is a table with the standard commands and handler for them.
- The table is used to initialize a new context and assuciate strings
- and handlers with cmd_ids */
+ The table is used to initialize a new context and associate strings
+ with default handlers */
static struct {
const char *name;
- int cmd_id;
int (*handler)(ASSUAN_CONTEXT, char *line);
int always; /* always initialize this command */
} std_cmd_table[] = {
- { "NOP", ASSUAN_CMD_NOP, std_handler_nop, 1 },
- { "CANCEL", ASSUAN_CMD_CANCEL, std_handler_cancel, 1 },
- { "OPTION", ASSUAN_CMD_OPTION, std_handler_option, 1 },
- { "BYE", ASSUAN_CMD_BYE, std_handler_bye, 1 },
- { "AUTH", ASSUAN_CMD_AUTH, std_handler_auth, 1 },
- { "RESET", ASSUAN_CMD_RESET, std_handler_reset, 1 },
- { "END", ASSUAN_CMD_END, std_handler_end, 1 },
-
- { "INPUT", ASSUAN_CMD_INPUT, std_handler_input },
- { "OUTPUT", ASSUAN_CMD_OUTPUT, std_handler_output },
- { "OPTION", ASSUAN_CMD_OPTION, std_handler_option, 1 },
+ { "NOP", std_handler_nop, 1 },
+ { "CANCEL", std_handler_cancel, 1 },
+ { "OPTION", std_handler_option, 1 },
+ { "BYE", std_handler_bye, 1 },
+ { "AUTH", std_handler_auth, 1 },
+ { "RESET", std_handler_reset, 1 },
+ { "END", std_handler_end, 1 },
+
+ { "INPUT", std_handler_input },
+ { "OUTPUT", std_handler_output },
+ { "OPTION", std_handler_option, 1 },
{ NULL }
};
@@ -217,54 +222,46 @@ static struct {
/**
* assuan_register_command:
* @ctx: the server context
- * @cmd_id: An ID value for the command
* @cmd_name: A string with the command name
- * @handler: The handler function to be called
+ * @handler: The handler function to be called or NULL to use a default
+ * handler.
*
- * Register a handler to be used for a given command.
+ * Register a handler to be used for a given command. Note that
+ * several default handlers are already regsitered with a new context.
+ * This function however allows to override them.
*
- * The @cmd_name must be %NULL or an empty string for all @cmd_ids
- * below %ASSUAN_CMD_USER because predefined values are used.
- *
- * Return value:
+ * Return value: 0 on success or an error code
**/
int
assuan_register_command (ASSUAN_CONTEXT ctx,
- int cmd_id, const char *cmd_name,
+ const char *cmd_name,
int (*handler)(ASSUAN_CONTEXT, char *))
{
int i;
+ const char *s;
if (cmd_name && !*cmd_name)
cmd_name = NULL;
- if (cmd_id < ASSUAN_CMD_USER)
- {
- if (cmd_name)
- return ASSUAN_Invalid_Value; /* must be NULL for these values*/
+ if (!cmd_name)
+ return ASSUAN_Invalid_Value;
- for (i=0; std_cmd_table[i].name; i++)
- {
- if (std_cmd_table[i].cmd_id == cmd_id)
- {
- cmd_name = std_cmd_table[i].name;
- if (!handler)
- handler = std_cmd_table[i].handler;
- break;
- }
+ if (!handler)
+ { /* find a default handler. */
+ for (i=0; (s=std_cmd_table[i].name) && strcmp (cmd_name, s); i++)
+ ;
+ if (!s)
+ { /* Try again but case insensitive. */
+ for (i=0; (s=std_cmd_table[i].name)
+ && my_strcasecmp (cmd_name, s); i++)
+ ;
}
- if (!std_cmd_table[i].name)
- return ASSUAN_Invalid_Value; /* not a pre-registered one */
+ if (s)
+ handler = std_cmd_table[i].handler;
+ if (!handler)
+ handler = dummy_handler; /* Last resort is the dummy handler. */
}
- if (!handler)
- handler = dummy_handler;
-
- if (!cmd_name)
- return ASSUAN_Invalid_Value;
-
-/* fprintf (stderr, "DBG-assuan: registering %d as `%s'\n", cmd_id, cmd_name); */
-
if (!ctx->cmdtbl)
{
ctx->cmdtbl_size = 50;
@@ -285,7 +282,6 @@ assuan_register_command (ASSUAN_CONTEXT ctx,
}
ctx->cmdtbl[ctx->cmdtbl_used].name = cmd_name;
- ctx->cmdtbl[ctx->cmdtbl_used].cmd_id = cmd_id;
ctx->cmdtbl[ctx->cmdtbl_used].handler = handler;
ctx->cmdtbl_used++;
return 0;
@@ -360,8 +356,7 @@ _assuan_register_std_commands (ASSUAN_CONTEXT ctx)
{
if (std_cmd_table[i].always)
{
- rc = assuan_register_command (ctx, std_cmd_table[i].cmd_id,
- NULL, NULL);
+ rc = assuan_register_command (ctx, std_cmd_table[i].name, NULL);
if (rc)
return rc;
}
@@ -610,8 +605,6 @@ assuan_get_active_fds (ASSUAN_CONTEXT ctx, int what,
FILE *
assuan_get_data_fp (ASSUAN_CONTEXT ctx)
{
- cookie_io_functions_t cookie_fnc;
-
if (ctx->outbound.data.fp)
return ctx->outbound.data.fp;
diff --git a/src/assuan.h b/src/assuan.h
index 5f53827..f898c26 100644
--- a/src/assuan.h
+++ b/src/assuan.h
@@ -127,7 +127,7 @@ typedef struct assuan_context_s *ASSUAN_CONTEXT;
/*-- assuan-handler.c --*/
int assuan_register_command (ASSUAN_CONTEXT ctx,
- int cmd_id, const char *cmd_string,
+ const char *cmd_string,
int (*handler)(ASSUAN_CONTEXT, char *));
int assuan_register_bye_notify (ASSUAN_CONTEXT ctx,
void (*fnc)(ASSUAN_CONTEXT));
diff --git a/src/libassuan.m4 b/src/libassuan.m4
new file mode 100644
index 0000000..2afc697
--- /dev/null
+++ b/src/libassuan.m4
@@ -0,0 +1,76 @@
+dnl Autoconf macros for libassuan
+dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+dnl
+dnl This file is free software; as a special exception the author gives
+dnl unlimited permission to copy and/or distribute it, with or without
+dnl modifications, as long as this notice is preserved.
+dnl
+dnl This file is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+dnl AM_PATH_LIBASSUAN([MINIMUM-VERSION,
+dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
+dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS
+dnl
+AC_DEFUN(AM_PATH_LIBASSUAN,
+[ AC_ARG_WITH(libassuan-prefix,
+ AC_HELP_STRING([--with-libassuan-prefix=PFX],
+ [prefix where LIBASSUAN is installed (optional)]),
+ libassuan_config_prefix="$withval", libassuan_config_prefix="")
+ if test x$libassuan_config_prefix != x ; then
+ libassuan_config_args="$libassuan_config_args --prefix=$libassuan_config_prefix"
+ if test x${LIBASSUAN_CONFIG+set} != xset ; then
+ LIBASSUAN_CONFIG=$libassuan_config_prefix/bin/libassuan-config
+ fi
+ fi
+
+ AC_PATH_PROG(LIBASSUAN_CONFIG, libassuan-config, no)
+ min_libassuan_version=ifelse([$1], ,0.0.1,$1)
+ AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version)
+ ok=no
+ if test "$LIBASSUAN_CONFIG" != "no" ; then
+ req_major=`echo $min_libassuan_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
+ req_minor=`echo $min_libassuan_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
+ req_micro=`echo $min_libassuan_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
+ libassuan_config_version=`$LIBASSUAN_CONFIG $libassuan_config_args --version`
+ major=`echo $libassuan_config_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+ minor=`echo $libassuan_config_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+ micro=`echo $libassuan_config_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
+ if test "$major" -gt "$req_major"; then
+ ok=yes
+ else
+ if test "$major" -eq "$req_major"; then
+ if test "$minor" -gt "$req_minor"; then
+ ok=yes
+ else
+ if test "$minor" -eq "$req_minor"; then
+ if test "$micro" -ge "$req_micro"; then
+ ok=yes
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test $ok = yes; then
+ LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG $libassuan_config_args --cflags`
+ LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG $libassuan_config_args --libs`
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ LIBASSUAN_CFLAGS=""
+ LIBASSUAN_LIBS=""
+ AC_MSG_RESULT(no)
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(LIBASSUAN_CFLAGS)
+ AC_SUBST(LIBASSUAN_LIBS)
+])
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git
More information about the Pkg-gnupg-commit
mailing list