/
authorWerner Koch <wk@gnupg.org>
Fri, 26 Jan 2007 12:08:12 +0000 (12:08 +0000)
committerWerner Koch <wk@gnupg.org>
Fri, 26 Jan 2007 12:08:12 +0000 (12:08 +0000)
* configure.ac: Changed gpg and gpgsm version checks to work with
arbitrary names of the gpg binary. New option --disable-gpg-test
and --disable-gpgsm-test.
gpgme/
* w32-io.c (build_commandline): Fixed stupid quoting bug.
* w32-glib-io.c (build_commandline): Ditto.

* rungpg.c (gpg_set_locale): Avoid dangling pointer after free.

* gpgme-config.in: New options --get-gpg and --get-gpgsm.

ChangeLog
configure.ac
gpgme/ChangeLog
gpgme/gpgme-config.in
gpgme/rungpg.c
gpgme/w32-glib-io.c
gpgme/w32-io.c

index 8aeb7970f0ab45b62e7cce2407be4203b58d2a90..52d00d968ed61aea711e47d84763477693c6d7c1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,13 @@
+2007-01-26  Werner Koch  <wk@g10code.com>
+
+       * configure.ac: Changed gpg and gpgsm version checks to work with
+       arbitrary names of the gpg binary. New option --disable-gpg-test
+       and --disable-gpgsm-test.
+
 2007-01-09  Werner Koch  <wk@g10code.com>
 
-       * configure.ac (NEED_GPG_VERSION,
-       (NEED_GPGSM_VERSION): Must define after it may have been changed
-       by an option.
+       * configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION): Must define
+       after it may have been changed by an option.
 
 2007-01-08  Werner Koch  <wk@g10code.com>
 
index 09384b8af34ad0cffbdf6f5b4ca1455461489e6b..e3b4e2e6f1016f5e851297c8207170754c2ffb4f 100644 (file)
@@ -324,21 +324,20 @@ else
   fi
 fi
 if test "$ok" = "maybe"; then
-  AC_MSG_CHECKING(for GnuPG >= $NEED_GPG_VERSION)
+  AC_MSG_CHECKING(for GPG >= $NEED_GPG_VERSION)
   req_major=`echo $NEED_GPG_VERSION | \
              sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
   req_minor=`echo $NEED_GPG_VERSION | \
             sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
   req_micro=`echo $NEED_GPG_VERSION | \
             sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-  gpg_version=`$GPG --version | grep ^gpg`
-  major=`echo $gpg_version | \
-        sed 's/^gpg (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-  minor=`echo $gpg_version | \
-        sed 's/^gpg (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-  micro=`echo $gpg_version | \
-        sed 's/^gpg (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-  GPG_VERSION=`echo $gpg_version | sed 's/^gpg (GnuPG) //'`
+  GPG_VERSION=`$GPG --version | sed -n '1 s/[[^0-9]]*\(.*\)/\1/p'`
+  major=`echo $GPG_VERSION | \
+        sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+  minor=`echo $GPG_VERSION | \
+        sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+  micro=`echo $GPG_VERSION | \
+        sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
 
   if test "$major" -gt "$req_major"; then
     ok=yes
@@ -359,10 +358,14 @@ if test "$ok" = "maybe"; then
     AC_MSG_RESULT(yes)
   else
     AC_MSG_RESULT(no)
-    AC_MSG_WARN([GnuPG must be at least version $NEED_GPG_VERSION])
+    AC_MSG_WARN([GPG must be at least version $NEED_GPG_VERSION])
   fi
 fi
-AM_CONDITIONAL(RUN_GPG_TESTS, test "$ok" = "yes")
+run_gpg_test="$ok"
+AC_ARG_ENABLE(gpg-test,
+  AC_HELP_STRING([--disable-gpg-test], [disable GPG run test]),
+         run_gpg_test=$enableval)
+AM_CONDITIONAL(RUN_GPG_TESTS, test "$run_gpg_test" = "yes")
 AC_SUBST(GPG_PATH)
 
 NO_OVERRIDE=no
@@ -424,14 +427,13 @@ if test "$ok" = "maybe"; then
             sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
   req_micro=`echo $NEED_GPGSM_VERSION | \
             sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-  gpgsm_version=`$GPGSM --version | grep ^gpgsm`
-  major=`echo $gpgsm_version | \
-        sed 's/^gpgsm (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-  minor=`echo $gpgsm_version | \
-        sed 's/^gpgsm (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-  micro=`echo $gpgsm_version | \
-        sed 's/^gpgsm (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-  GPGSM_VERSION=`echo $gpgsm_version | sed 's/^gpgsm (GnuPG) //'`
+  GPGSM_VERSION=`$GPGSM --version | sed -n '1 s/[[^0-9]]*\(.*\)/\1/p'`
+  major=`echo $GPGSM_VERSION | \
+        sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+  minor=`echo $GPGSM_VERSION | \
+        sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+  micro=`echo $GPGSM_VERSION | \
+        sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
 
   if test "$major" -gt "$req_major"; then
     ok=yes
@@ -455,7 +457,12 @@ if test "$ok" = "maybe"; then
     AC_MSG_WARN([GPGSM must be at least version $NEED_GPGSM_VERSION])
   fi
 fi
-AM_CONDITIONAL(RUN_GPGSM_TESTS, test "$ok" = "yes")
+run_gpgsm_test="$ok"
+AC_ARG_ENABLE(gpgsm-test,
+  AC_HELP_STRING([--disable-gpgsm-test], [disable GPGSM run test]),
+         run_gpgsm_test=$enableval)
+AM_CONDITIONAL(RUN_GPGSM_TESTS, test "$run_gpgsm_test" = "yes")
+
 
 # FIXME: Only build if supported.
 AM_CONDITIONAL(BUILD_ASSUAN, test "$GPGSM" != "no")
index 2d04c3cd438326294dc8c1260d828d3d1dbe3dac..0d190cdf74eb47901cd857e1042a7a3958d45b7e 100644 (file)
@@ -1,3 +1,12 @@
+2007-01-26  Werner Koch  <wk@g10code.com>
+
+       * w32-io.c (build_commandline): Fixed stupid quoting bug.
+       * w32-glib-io.c (build_commandline): Ditto.
+
+       * rungpg.c (gpg_set_locale): Avoid dangling pointer after free.
+
+       * gpgme-config.in: New options --get-gpg and --get-gpgsm.
+
 2007-01-18  Marcus Brinkmann  <marcus@g10code.de>
 
        * data.h (_gpgme_data_get_fd): Add prototype.
index 4b6ddb39a37943c621a20e08c1775cdea8ed5bfd..4a67b3f9598da394883d88db96a767c5b4a276c4 100644 (file)
@@ -51,6 +51,8 @@ Options:
         [--api-version]
        [--libs]
        [--cflags]
+        [--get-gpg]
+        [--get-gpgsm]
 EOF
     exit $1
 }
@@ -144,6 +146,12 @@ while test $# -gt 0; do
                usage 1 1>&2
            fi
            ;;
+        --get-gpg)
+            output="$output @GPG@"
+            ;;
+        --get-gpgsm)
+            output="$output @GPGSM@"
+            ;;
        *)
             usage 1 1>&2
            ;;
index 243d0b59ac5f0db964068e0c299cc66579355eb1..58ab39d8b24313197cf7893da8ffe1e4efcd9b28 100644 (file)
@@ -517,7 +517,10 @@ gpg_set_locale (void *engine, int category, const char *value)
   if (category == LC_CTYPE)
     {
       if (gpg->lc_ctype)
-       free (gpg->lc_ctype);
+        {
+          free (gpg->lc_ctype);
+          gpg->lc_ctype = NULL;
+        }
       if (value)
        {
          gpg->lc_ctype = strdup (value);
@@ -529,7 +532,10 @@ gpg_set_locale (void *engine, int category, const char *value)
   else if (category == LC_MESSAGES)
     {
       if (gpg->lc_messages)
-       free (gpg->lc_messages);
+        {
+          free (gpg->lc_messages);
+          gpg->lc_messages = NULL;
+        }
       if (value)
        {
          gpg->lc_messages = strdup (value);
index 87b65fb690fa1db5b2883ddcce001d58738f1faa..20099ef6e9a986eec99201a30cf7a8a4c1fd1353 100644 (file)
@@ -389,7 +389,7 @@ build_commandline (char **argv)
       *(p++) = '"';
       while (*argvp)
        {
-         if (*p == '\\' || *p == '"')
+         if (*argvp == '\\' || *argvp == '"')
            *(p++) = '\\';
          *(p++) = *(argvp++);
        }
index 6810fd506a0ae06e01a3af4ed4e296fcc2443a37..fd53a6fbcf5905c8814e59d57be13ecb0964f475 100644 (file)
@@ -841,7 +841,7 @@ build_commandline (char **argv)
       *(p++) = '"';
       while (*argvp)
        {
-         if (*p == '\\' || *p == '"')
+         if (*argvp == '\\' || *argvp == '"')
            *(p++) = '\\';
          *(p++) = *(argvp++);
        }