From a4c4ee1aaea4359432bdf60dd572f549ef8dee83 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 2 Dec 2011 11:32:31 +0100 Subject: Generate the ChangeLog from commit logs. * build-aux/gitlog-to-changelog: New script. Taken from gnulib. * build-aux/git-log-fix: New file. * build-aux/git-log-footer: New file. * build-aux/git-hook/commit-msg: New script. * doc/HACKING: New file. * ChangeLog: New file. * Makefile.am (EXTRA_DIST): Add new files. (gen-ChangeLog): New. (dist-hook): Run gen-ChangeLog. * autogen.sh: Install commit-msg hook for git. Rename all ChangeLog files to ChangeLog-2011. --- .gitignore | 5 + ChangeLog | 1038 +----- ChangeLog-2011 | 1038 ++++++ Makefile.am | 31 +- autogen.sh | 27 +- build-aux/git-hooks/commit-msg | 127 + build-aux/git-log-fix | 3 + build-aux/git-log-footer | 15 + build-aux/gitlog-to-changelog | 345 ++ contrib/ChangeLog | 33 - contrib/ChangeLog-2011 | 49 + doc/ChangeLog | 880 ----- doc/ChangeLog-2011 | 888 +++++ doc/HACKING | 28 + doc/Makefile.am | 10 +- lang/cl/ChangeLog | 34 - lang/cl/ChangeLog-2011 | 50 + lang/cl/Makefile.am | 12 +- m4/ChangeLog | 47 - m4/ChangeLog-2011 | 55 + src/ChangeLog | 7140 --------------------------------------- src/ChangeLog-2011 | 7148 ++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 3 +- tests/ChangeLog | 933 ------ tests/ChangeLog-2011 | 941 ++++++ tests/Makefile.am | 14 +- 26 files changed, 10772 insertions(+), 10122 deletions(-) create mode 100644 ChangeLog-2011 create mode 100755 build-aux/git-hooks/commit-msg create mode 100644 build-aux/git-log-fix create mode 100644 build-aux/git-log-footer create mode 100755 build-aux/gitlog-to-changelog delete mode 100644 contrib/ChangeLog create mode 100644 contrib/ChangeLog-2011 delete mode 100644 doc/ChangeLog create mode 100644 doc/ChangeLog-2011 create mode 100644 doc/HACKING delete mode 100644 lang/cl/ChangeLog create mode 100644 lang/cl/ChangeLog-2011 delete mode 100644 m4/ChangeLog create mode 100644 m4/ChangeLog-2011 delete mode 100644 src/ChangeLog create mode 100644 src/ChangeLog-2011 delete mode 100644 tests/ChangeLog create mode 100644 tests/ChangeLog-2011 diff --git a/.gitignore b/.gitignore index 0b336ea5..983abda4 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,8 @@ /config.h.in /configure Makefile.in +/doc/gpgme.info +/doc/gpgme.info-1 +/doc/gpgme.info-2 +/doc/stamp-vti +/doc/version.texi diff --git a/ChangeLog b/ChangeLog index e8cb2651..dda15a73 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,1030 +1,16 @@ -2011-10-25 Marcus Brinkmann +No more ChangeLog files +======================== - * m4/pth.m4: Removed. - * configure.ac: Remove check for pth and automake conditional - HAVE_PTH. +Do not modify any of the ChangeLog files in GPGME. Starting on +December 1st, 2011 we put change information only in the GIT commit +log, and generate a top-level ChangeLog file from logs at "make dist" +time. As such, there are strict requirements on the form of the +commit log messages. See doc/HACKING for details. The old ChangeLog +files have all be renamed to ChangeLog-2011. -2011-06-16 Marcus Brinkmann - Release 1.3.1 - * configure.ac: Set LT version to C19/A8/R0. - -2011-05-06 Marcus Brinkmann - - * Makefile.am (SUBDIRS): Remove complus. - - * configure.ac (AC_CONFIG_FILES): Remove complus/Makefile. - (BUILD_COMPLUS): Remove AM_CONDITIONAL. - * complus/: Remove very old and stale component. - - * acinclude.m4 (GNUPG_FIX_HDR_VERSION): Remove. - -2011-04-14 Werner Koch - - * configure.ac: Require automake 1.11. - -2011-04-06 Werner Koch - - * autogen.sh (--build-w32): Support option --build-w64. - * configure.ac (HAVE_W64_SYSTEM): Define. - (INSERT__TYPEDEFS_FOR_GPGME_H): New. - (GPGME_CONFIG_HOST): New. - -2011-02-02 Marcus Brinkmann - - * configure.ac (NEED_LIBASSUAN_VERSION): Bump to 2.0.2 for system hooks. - -2010-12-30 Werner Koch - - * configure.ac: Support a git revision. - -2010-11-03 Werner Koch - - * configure.ac (AC_CHECK_HEADERS): Check for sys/types.h and - sys.stat.h. - -2010-11-02 Werner Koch - - * configure.ac (AC_CHECK_HEADERS): Check for sys.time.h. - -2010-08-19 Werner Koch - - * configure.ac (AH_BOTTOM): Define GPG_ERR_ENABLE_ERRNO_MACROS. - -2010-05-12 Marcus Brinkmann - - * configure.ac: Check for setlocale. - -2010-05-07 Werner Koch - - * configure.ac: Change checks to always require libassuan. - -2010-05-07 Marcus Brinkmann - - * autogen.sh: Update the thing. - - * configure.ac: Check for locale.h. - -2010-05-06 Marcus Brinkmann - - * configure.ac: Detect Windows CE. - (HAVE_W32CE_SYSTEM): New symbol and automake conditional. - * ltmain.sh, m4/libtool.m4: Patch so that it works for Windows CE. - - * configure.ac: Require libgpg-error 1.8. - -2010-03-15 Werner Koch - - * configure.ac (emacs_local_vars_begin) - (emacs_local_vars_read_only, emacs_local_vars_end): New. - -2010-01-22 Werner Koch - - * autogen.sh (--build-w32): Add --with-libassuan-prefix. - -2010-01-11 Marcus Brinkmann - - Release 1.3.0. - -2009-12-22 Marcus Brinkmann - - * configure.ac: Do not use echo -n. Test for __thread. - -2009-12-17 Marcus Brinkmann - - * configure.ac: Make largefile check more robust. - -2009-12-10 Werner Koch - - * configure.ac: Check for getgid and getegid. - -2009-12-08 Marcus Brinkmann - - Update to libtool 2.2.6a. - * configure.ac: Invoke AC_CONFIG_MACRO_DIR. - (AC_LIBTOOL_WIN32_DLL, AC_LIBTOOL_RC): Replace by ... - (LT_PREREQ, LT_INIT, LT_LANG): ... these. - * config.guess, config.sub, install-sh, ltmain.sh, m4/libtool.m4: - Updated to libtool 2.2.6a. - * m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4, - m4/lt~obsolete.m4: New files from libtool 2.2.6a. - -2009-11-10 Marcus Brinkmann - - * configure.ac: Activate UIServer if FD passing is enabled and - Assuan is available. - -2009-10-30 Marcus Brinkmann - - * configure.ac: Check for argp.h and error_t. - -2009-10-26 Marcus Brinkmann - - * configure.ac (NEED_GPG_VERSION_DEFAULT): Bump to 1.4.0 as 1.3.0 - was development versions only. - -2009-10-22 Marcus Brinkmann - - * configure.ac: Add support for G13. - -2009-10-20 Marcus Brinkmann - - * configure.ac (AC_CONFIG_FILES): Remove assuan/Makefile. - -2009-10-20 Marcus Brinkmann - - * configure.ac: Replace internal libassuan by external libassuan. - * m4/libassuan.m4: New file. - * Makefile.am (assuan): Remove variable. - (SUBDIRS): Remove ${assuan}. - * assuan/: Removed. - -2009-06-22 Marcus Brinkmann - - * configure.ac: Add AC_TYPE_UINTPTR_T. - - * assuan/assuan.h [_ASSUAN_IN_GPGME_BUILD_ASSUAN]: Declare - _gpgme_io_connect. - -2009-06-18 Marcus Brinkmann - - Released GPGME 1.2.0. - - * configure.ac (my_version): Set to 1.2.0. - (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump. - (LIBGPGME_LT_REVISION): Reset. - -2009-05-05 Marcus Brinkmann - - * configure.ac: Add infrastructure for compile time check of - _FILE_OFFSET_BITS. - -2009-04-19 Moritz - - * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Specify --with-gpg. - -2009-03-06 Marcus Brinkmann - - * assuan/: Update to libassuan SVN 2009-03-06. - -2009-01-26 Werner Koch - - * configure.ac (AC_CONFIG_FILES): Add tests/opassuan/Makefile. - -2008-12-08 Marcus Brinkmann - - Release GPGME 1.1.8. - - * configure.ac: Bump API revision. - -2008-11-03 Marcus Brinkmann - - * configure.ac: Replace gpgme paths with src. - * gpgme: Move to ... - * src: ... this new directory. - -2008-10-20 Werner Koch - - * configure.ac (AC_CONFIG_FILES): Add gpgme.h. - (GNUPG_FIX_HDR_VERSION): Remove. - -2008-10-17 Marcus Brinkmann - - Release GPGME 1.1.7. - - * configure.ac (LIBGPGME_LT_REVISION): Bump for release. - -2008-09-19 Moritz - - * configure.ac: Remove bogus "esac". - -2008-09-16 Marcus Brinkmann - - * configure.ac (_XOPEN_SOURCE) [apple-darwin]: Define it. - -2008-07-04 Werner Koch - - * config.guess, config.sub: Update to 2007-11-19. Also update - missing et al scripts. - -2008-04-01 Werner Koch - - * configure.ac (AC_INIT): Fix quoting. - -2008-01-30 Marcus Brinkmann - - * configure.ac: Bump required version of automake up to 1.10. - * autogen.sh: Fix aclocal check. - -2008-01-04 Marcus Brinkmann - - Release GPGME 1.1.6. - - * configure.ac: Support gpgconf. - -2007-09-27 Marcus Brinkmann - - * assuan-pipe-connect.c (pipe_connect_gpgme): Do not close process - handle here. Use this function also on Unix systems. - - * assuan-pipe-connect.c (pipe_connect_gpgme): Fix last change. - - * assuan-pipe-connect.c (pipe_connect_gpgme): New function, use it - if _ASSUAN_IN_GPGME_BUILD_ASSUAN. - -2007-09-17 Werner Koch - - * configure.ac: Use the svn version magic. - -2007-09-07 Marcus Brinkmann - - * configure.ac: Check for C++, Qt and support --enable-w32-qt. - * m4/pkg.m4: New file. - -2007-08-21 Marcus Brinkmann - - * configure.ac (--enable-w32-glib): Use --enableval, not - --withval. - -2007-07-16 Marcus Brinkmann - - * assuan/assuan-socket.c (_assuan_close): Always use close(). - * assuan/assuan.h (_gpgme_io_close): New prototype. - (close): New macro, define as _gpgme_io_close. - -2007-07-13 Marcus Brinkmann - - * assuan/assuan-io.c (_assuan_simple_read, _assuan_simple_write): - Always use read/write (which means _gpgme_io_read and - _gpgme_io_write). - -2007-07-09 Marcus Brinkmann - - Released 1.1.5. - - * configure.ac (LIBGPGME_LT_REVISION): Bump for release. - -2007-07-08 Marcus Brinkmann - - * configure.ac (GPGSM_DEFAULT) [*-mingw32*]: Initialize it. - (HAVE_ASSUAN_H): Set to 1 if we have it. - (funopen): Use AC_REPLACE_FUNCS. - (USE_DESCRIPTOR_PASSING): Define to 1 if we have it. Do not - define it at all if we don't. - (NETLIBS) [have_w32_system]: Add -lws2_32. - (DIRSEP_C, DIRSEP_S, EXPSEP_C, EXPSEP_S, PATHSEP_S) - [HAVE_DOSISH_SYSTEM]: Remove definitions. - - * assuan/assuan.h (_assuan_funopen): Define to _gpgme_funopen. - * assuan/funopen.c: Move to ../gpgme/funopen.c. - * assuan/Makefile.am (libassuan_la_SOURCES): Remove funopen.c. - -2007-07-04 Marcus Brinkmann - - * assuan/Makefile.am (INCLUDES): Include $(top_srcdir)/gpgme. - * assuan/assuan.h: Include instead of trying to duplicate - the definitions. - - * assuan/: Update files to 2007-07-04 version of assuan. - - * autogen.sh: Use = not == in test. - -2007-03-05 Werner Koch - - Released 1.1.4. - - * configure.ac (LIBGPGME_LT_REVISION): Bump for release. - - * autogen.sh: New option --force. - -2007-01-29 Marcus Brinkmann - - Released 1.1.3. - - * configure.ac (LIBGPGME_LT_REVISION): Bump for release. - -2007-01-26 Werner Koch - - * 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 - - * configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION): Must define - after it may have been changed by an option. - -2007-01-08 Werner Koch - - * configure.ac: Require gpg-error 1.4 due to the use of - gpg_error_from_syserror. - (HAVE_ASSUAN_H): New. - -2007-01-05 Marcus Brinkmann - - * configure.ac: Add options --with-gpg-version and - --with-gpgsm-version to allow overriding the minimum version - requirements. - -2006-12-17 Marcus Brinkmann - - * configure.ac: Fix two typos in last change. - -2006-12-03 Marcus Brinkmann - - * configure.ac: Use descriptor passing only if --enable-fd-passing - is provided. - - * configure.ac: Add check for use of descriptor passing. - -2006-11-29 Marcus Brinkmann - - * configure.ac (NEED_GPG_VERSION): Bump to 1.3.0. - -2006-09-19 Marcus Brinkmann - - * configure.ac: Turn stpcpy into a replacement function. - Check for unistd.h and add setenv as replacement function. - -2006-07-29 Marcus Brinkmann - - * configure.ac: Check for network libraries and set NETLIBS. - -2006-07-06 Marcus Brinkmann - - * lang, lang/cl: New subdirectories. - * lang/Makefile.am, lang/README: New files. - * configure.ac (AC_CONFIG_FILES): Add lang/Makefile, - lang/cl/Makefile and lang/cl/gpgme.asd. - * Makefile.am (SUBDIRS): Add lang. - -2006-03-02 Marcus Brinkmann - - * configure.ac (LIBGPGME_LT_REVISION): Bump for release. - -2006-02-22 Marcus Brinkmann - - Released 1.1.1. - - * configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump for - release. - (LIBGPGME_LT_REVISION): Reset to 0 for release. - -2006-01-05 Werner Koch - - * configure.ac: Test for inline feature. - (AH_BOTTOM): New to define the pure attribute. - -2006-01-03 Werner Koch - - * configure.ac: Append SVN revision to the version. - -2005-11-18 Werner Koch - - * configure.ac (BUILD_REVISION): New. - -2005-11-17 Marcus Brinkmann - - * configure.ac: Add support for --enable-w32-glib (disabled by - default). Invoke AM_PATH_GLIB_2_0. - -2005-11-16 Werner Koch - - * configure.ac (CFLAGS) [W32]: Make sure that -mms-bitfields are used. - -2005-11-15 Werner Koch - - * configure.ac: Create BUILD_FILEVERSION from SVN Revision. - - * autogen.sh [W32]: Build shared and static versions of the library. - -2005-10-20 Marcus Brinkmann - - * w32-dll/ChangeLog, w32-dll/build-dll, w32-dll/gpgme.def: Remove - files. - - * configure.ac: Instead checking for windres and dlltool, invoke - AC_LIBTOOL_WIN32_DLL and AC_LIBTOOL_RC. - * src/Makefile.am [HAVE_W32_SYSTEM]: Use libtool, which simplifies - the rules. - -2005-10-01 Marcus Brinkmann - - Released 1.1.0. - - * configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump for - release. - (LIBGPGME_LT_REVISION): Reset to 0 for release. - -2005-09-12 Marcus Brinkmann - - * configure.ac (HAVE_PTH): Don't add $PTH_CFLAGS to $CFLAGS here. - -2005-08-26 Werner Koch - - * configure.ac (SEPCONSTANTS): New to define DIRSEP_C et al. - -2005-08-19 Werner Koch - - * configure.ac [W32]: Create values for versioninfo.rc and list - substuture versioninfo.rc. - * configure.ac: Define ENABLE_GPGSM. - -2005-08-08 Werner Koch - - * configure.ac (stpcpy): Changed from replace to test. - -2005-03-24 Marcus Brinkmann - - * configure.ac (AH_BOTTOM): Removed. - -2005-03-09 Werner Koch - - * acinclude.m4 (GNUPG_CHECK_VA_COPY): Assume no when cross-compiling. - - * Makefile.am (EXTRA_DIST): Include autogen.sh - - * autogen.sh: Added the usual code to build for W32 (--build-w32). - - * configure.ac: Fixed the mingw32 host string, removed OS/2 stuff. - (HAVE_DRIVE_LETTERS): Removed. - (HAVE_W32_SYSTEM): Added. - (AC_GNU_SOURCE): New to replace the identical AH_VERBATIM. - (AH_BOTTOM): Added. - -2004-12-28 Werner Koch - - Released 1.0.2. - - * Makefile.am (AUTOMAKE_OPTIONS): Build bzip 2 version. - (ACLOCAL_AMFLAGS): Add -I m4. - * configure.ac: Require automake 1.9.3 and autoconf 2.59. - * acinclude.m4: Changed quoting for automake 1.9. - * README: Use SHA1 instead of MD5. - -2004-12-11 Marcus Brinkmann - - * configure.ac: Replace ttyname_r if it doesn't exist (and warn in - that case). - -2004-12-07 Marcus Brinkmann - - * README: Refer to COPYING.LESSER and "each file" instead of - COPYING. - * COPYING.LESSER: New file. - * gpgme.spec.in (%doc): Add COPYING.LESSER. - * acinclude.m4, configure.ac, Makefile.am: Change license to LGPL - 2.1 or later. - * TODO: Add copyright notice. - * README.CVS: Likewise. - - * configure.ac (GPGSM_VERSION): Fix filter to get it. - -2004-10-22 Marcus Brinkmann - - Released 1.0.1. - - * configure.ac (LIBGPGME_LT_REVISION): Bump up to 2. - (AC_INIT): Set version to 1.0.1. - - * configure.ac: Set HAVE_GPGSM to true only if $GPGSM is not "no". - -2004-09-30 Marcus Brinkmann - - Released 1.0.0. - - * configure.ac (LIBGPGME_LT_REVISION): Bump up to 1. - (AC_INIT): Set version to 1.0.0. - - * Makefile.am (EXTRA_DIST): Remove README-alpha. - * README-alpha: Remove file. - -2004-09-17 Marcus Brinkmann - - * configure.ac: Disable AC_CONFIG_MACRO_DIR for now. - -2004-09-14 Marcus Brinkmann - - * configure.ac: Improve diagnostics with version check. - - * configure.ac: Print diagnostics about found thread libraries at - the end. Check for the versions of GPG and GPGSM and print the - found versions at the end. - (HAVE_GPGSM): Do not require GPGSM to exist and be readable. - (AC_CONFIG_MACRO_DIR): Invoke with argument m4. - - * acinclude.m4: Add copyright notice. - (jm_GLIBC21, AM_PATH_GPG_ERROR, _AC_PTH_ERROR, _AC_PTH_VERBOSE, - AC_CHECK_PTH): Removed. - -2004-06-23 Marcus Brinkmann - - * configure.ac: Check for . - -2004-06-08 Marcus Brinkmann - - Released 0.9.0. - - * configure.ac (AC_INIT): Set version number to 0.9.0. - (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump up by one. - (LIBGPGME_LT_REVISION): Reset to zero. - -2004-05-21 Marcus Brinkmann - - * configure.ac (GPGME_CONFIG_API_VERSION): New variable, - substitute it. - -2004-04-29 Marcus Brinkmann - - Released 0.4.7. - - * configure.ac (LIBGPGME_LT_REVISION): Bump it up. - -2004-04-02 Thomas Schwinge - - * autogen.sh: Added ACLOCAL_FLAGS. - -2004-04-06 Werner Koch - - Released 0.4.6. - - * config.guess, config.sub, ltmain.sh: Updated to those from - libtools 1.5.4. - -2004-03-07 Marcus Brinkmann - - Released 0.4.5. - - * configure.ac (NEED_GPGSM_VERSION): Bump up to 1.9.6. - - * Makefile.am (EXTRA_DIST): Remove autogen.sh and README.CVS. - -2004-02-18 Werner Koch - - * configure.ac: Make the check for funopen fail with just a - warning. - -2004-02-11 Werner Koch - - * autogen.sh (check_version): Removed bashism and simplified. - -2004-02-10 Werner Koch - - * configure.ac: Fixed funopen test change. - -2004-02-06 Moritz Schulte - - * configure.ac: Fix funopen replacement mechanism. - -2004-01-31 Marcus Brinkmann - - * configure.ac: Add invocation of AC_SYS_LARGEFILE, AC_TYPE_OFF_T - and AC_FUNC_FSEEKO. - -2004-01-12 Werner Koch - - Released 0.4.4. - - * configure.ac: Bumbed LT_Revision; now at C12/A1/R1. - (NEED_GPGSM_VERSION): Set to 1.9.3. - (min_automake_version): Added. - * README.CVS: New. - * Makefile.am (EXTRA_DIST): Added README.CVS. - * autogen.sh: Updated. - -2003-11-19 Werner Koch - - * acinclude.m4: Add AM_PATH_GPG_ERROR. - * configure.ac: Check for timegm. Made warning messages more - prominent. - -2003-10-06 Marcus Brinkmann - - Released 0.4.3. - - * configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump up by 1. - (LIBGPGME_LT_REVISION): Set to 0. - -2003-09-13 Marcus Brinkmann - - * configure.ac: Require libgpg-error 0.5. - - * acinclude.m4: Remove libtool cruft, add jm_GLIBC21. - * configure.ac: Add check for getenv_r, and call jm_GLIBC21. - Define HAVE_THREAD_SAFE_GETENV if appropriate. - -2003-09-03 Marcus Brinkmann - - * configure.ac: Remove GPGME_CONFIG_LIBS and GPGME_CONFIG_CFLAGS. - -2003-09-02 Marcus Brinkmann - - * configure.ac: Move invocation of AC_CANONICAL_HOST up to - suppress warning by autoconf. - -2003-08-30 Robert Schiele - - * gpgme.spec.in: %{_infodir}/dir is not packaged, - remove to prevent checking failure. - -2003-08-18 Marcus Brinkmann - - * configure.ac: If building Assuan, check for funopen and - fopencookie, and make isascii, putc_unlocked and memrchr - replacement functions. - (AM_PATH_GPG_ERROR): Require 0.3. - -2003-07-31 Marcus Brinkmann - - * configure.ac (AC_INIT): Bump version to 0.4.3. - -2003-07-30 Marcus Brinkmann - - * configure.ac (LIBGPGME_LT_REVISION): Bump up to 1. - - Released 0.4.2. - -2003-07-08 Marcus Brinkmann - - * configure.ac: Complain if libgpg-error is not found. - -2003-06-22 Marcus Brinkmann - - * configure.ac (AC_INIT): Bump version to 0.4.2. - -2003-06-06 Marcus Brinkmann - - * configure.ac (LIBGPGME_LT_CURRENT): Bump up to 11. - - * configure.ac: Use AM_PATH_GPG_ERROR. - - * configure.ac: Check for libgpg-error. Define - GPG_ERR_SOURCE_DEFAULT. - -2003-05-26 Marcus Brinkmann - - * configure.ac (NEED_GPG_VERSION): Bump up to 1.2.2. - -2003-05-18 Marcus Brinkmann - - In all files, replace the Gpgme* type names with the new gpgme_* - type names. - -2003-02-01 Marcus Brinkmann - - * assuan/: Update files to 2002-11-10 version of assuan. - -2003-01-29 Marcus Brinkmann - - * bonobo/gpgme.c, bonobo/main.c, bonobo/main.h, bonobo/Makefile, - bonobo/Makefile.am, bonobo/Makefile.in: Dead files removed. - * configure.ac: Remove automake conditional BUILD_BONOBO - (AC_CONFIG_FILES): Remove bonobo/Makefile. - * Makefile.am (bonobo): Remove variable. - (SUBDIRS): Remove ${bonobo}. - - * configure.ac: Remove all uses of GNUPG_CHECK_TYPEDEF, for byte, - ushort, ulong, u16 and u32. - * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Remove macro. - -2002-12-24 Marcus Brinkmann - - * configure.ac: New conditional HAVE_LD_VERSION_SCRIPT. - Call AC_CANONICAL_HOST, use host instead target. - -2002-12-23 Marcus Brinkmann - - * configure.ac: Bump up to 0.4.1. - - Released 0.4.0. - -2002-12-23 Marcus Brinkmann - - * autogen.sh (automake_vers): Require 1.7 (really 1.7.1) for the - conditional source distribution bug fix. - -2002-12-08 Marcus Brinkmann - - * configure.ac (LIBGPGME_LT_CURRENT): Increase by one. - (LIBGPGME_LT_AGE, LIBGPGME_LT_REVISION): Set to 0. - -2002-11-28 Marcus Brinkmann - - * NEWS: Add note about moving "gpgmeplug" to the "cryptplug" - package. - * README: Remove instructions related to "gpgmeplug". - * configure.ac: Remove enable option "gpgmeplug" and automake - conditional BUILD_GPGMEPLUG, as well as the status info about it. - (GPGMEPLUG): Remove variable. - * Makefile.am (gpgmeplug): Remove variable. - (SUBDIRS): Remove ${gpgmeplug}. - * cryptplug.h, gpgme-openpgp.c, gpgmeplug.dox, gpgme-smime.c, - Makefile.am, gpgmeplug.c, ChangeLog: Files removed. - -2002-11-22 Marcus Brinkmann - - * configure.ac: Disable GPGSM for all dosish systems. - -2002-10-12 Marcus Brinkmann - - * configure.ac: Add automake conditional HAVE_GPGSM. - -2002-10-08 Marcus Brinkmann - - * configure.ac (AC_INIT): Bump version up to 0.4.0. - (NEED_GPG_VERSION): Bump up to 1.2.0. - (NEED_GPGSM_VERSION): Bump up to 0.9.0. - * README: Update version numbers. - * NEWS: Start entry for 0.4.0. - -2002-09-20 Werner Koch - - Released 0.3.11. - - * configure.ac: Bump up LIBGPGME_LT_REVISION. - - * configure.ac (AC_CHECK_HEADERS): Check for sys/select.h. - -2002-09-04 Marcus Brinkmann - - * autogen.sh (autoconf_vers): Bump up to 2.53 to get the @&t@ - quadrigraph. Always cutting the edge! - -2002-09-02 Marcus Brinkmann - - * configure.ac: Create and substitute LTLIBOBJS. - -2002-09-02 Marcus Brinkmann - - Released 0.3.10. - - * NEWS: Update for 0.3.9 release. - * configure.ac: Bump up LIBGPGME_LT_REVISION. - -2002-08-29 Marcus Brinkmann - - * gpgme.spec.in: Changed user name in Wojciech Polak's email - address from ghostface to polak per request by himself. - -2002-08-28 Werner Koch - - * acinclude.m4 (GNUPG_CHECK_VA_COPY): New. - * configure.ac: Use it. - -2002-08-23 Werner Koch - - * configure.ac (GPGME_CONFIG_CFLAGS): Renamed from GPGME_CFLAGS - and removed the libpath because it is set by the config script. - -2002-08-21 Marcus Brinkmann - - * configure.ac: Bump version number to 0.3.10. - - * NEWS: Add template for development version. - -2002-08-21 Marcus Brinkmann - - Released 0.3.9. - - * NEWS: Update for 0.3.9 release. - * Makefile.am (EXTRA_DIST): Add gpgme.spec.in. - -2002-08-21 Marcus Brinkmann - - * jnlib/argparse.c, jnlib/argparse.h, jnlib/ChangeLog, - jnlib/dotlock.c, jnlib/dotlock.h, jnlib/libjnlib-config.h, - jnlib/logging.c, jnlib/logging.h,jnlib/Makefile.am, - jnlib/mischelp.h, jnlib/README, jnlib/stringhelp.c, - jnlib/stringhelp.h, jnlib/strlist.c, jnlib/strlist.h, - jnlib/types.h, jnlib/xmalloc.c, jnlib/xmalloc.h: Remove files. - -2002-08-21 Marcus Brinkmann - - * Makefile.am (SUBDIRS): Remove jnlib. - * configure.ac: Don't check for unsigned short or unsigned long. - Don't check for memicmp, strlwr, strtoul, memmove, stricmp. - Make stpcpy a replaced function. - Don't define HAVE_JNLIB_LOGGING. - Don't generate jnlib/Makefile. - -2002-07-02 Werner Koch - - * configure.ac: Bumbed version number to 0.3.9; add a comment on - when to change it. - - * gpgme.spec.in: New. Contributed by Wojciech Polak. - * Makefile.am (dist-hook): New. - - * AUTHORS: Added Wojciech and bug reporting addresses. - -2002-06-25 Werner Koch - - Released 0.3.8. - - * configure.ac: Bumbed LT version to 9/3/0. - (NEED_GPGSM_VERSION): Need 0.3.8 due to fixed export command. - -2002-06-04 Marcus Brinkmann - - Released 0.3.7. - - * configure.ac (AC_INIT): Set version to 0.3.7. - (LIBGPGME_LT_REVISION): Add one. - - * README: Document version requirement correctly. - -2002-06-02 Marcus Brinkmann - - * acinclude.m4: Fix Pth check so that it doesn't error out if pth - is not found. - -2002-06-02 Marcus Brinkmann - - * configure.ac: Add checks for Pth and pthreads. - * acinclude.m4: Add slightly hacked check for pth (seems to be an - autoconf version problem). - -2002-05-21 Werner Koch - - * configure.ac (NEED_GPGSM_VERSION): We need gpgsm 0.3.7. - -2002-05-03 Werner Koch - - Released 0.3.6. - -2002-04-05 Marcus Brinkmann - - * acconfig.h: File removed. - * configure.ac (NEED_GPG_VERSION): Add description. - (NEED_GPGSM_VERSION): Likewise. - (HAVE_DOSISH_SYSTEM): Likewise. - (HAVE_DRIVE_LETTERS): Likewise. - (GPG_PATH): Likewise. - (GPGSM_PATH): Likewise. - * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Likewise. - -2002-04-01 Werner Koch - - Released 0.3.5. - -2002-03-17 Marcus Brinkmann - - * configure.ac: Add automake conditional HAVE_DOSISH_SYSTEM. - -2002-03-04 Werner Koch - - * configure.ac: Bumbed version to 0.3.4-cvs to continue development. - - Released 0.3.4. - - * configure.ac: Bumbed LT version numbers to (7,1,0), requires - gpgsm 0.3.1. - -2002-03-03 Marcus Brinkmann - - * configure.ac (AC_INIT): Change version number to snapshot CVS - version. - -2002-02-13 Werner Koch - - * configure.ac (vasprintf,fopencookie): Add checks. - -2002-02-12 Marcus Brinkmann - - * configure.ac (AC_INIT): Bump version to 0.3.3. - * jnlib/Makefile.am: Rever to older version that includes xmalloc - but not dotlock and some other files. Reported by Stéphane - Corthésy. - -2002-02-10 Marcus Brinkmann - - * Released 0.3.2. - - * configure.ac (AC_INIT): Bump version to 0.3.2. - * jnlib/libjnlibconfig.h: Revert to older version that doesn't - expect libgcrypt. Reported by Jose Carlos Garcia Sogo - . - -2002-02-09 Marcus Brinkmann - - * Released 0.3.1. - - * configure.ac (LIBGPGME_LT_CURRENT): Bump it up to 6! - (NEED_GPGSM_VERSION): Bump it up to 0.3.0! - (AC_INIT): Bump version to 0.3.1 - -2002-01-22 Marcus Brinkmann - - * configure.ac (HAVE_JNLIB_LOGGING): Define always for assuan. - -2001-12-19 Werner Koch - - * configure.ac (VERSION,PACKAGE): Defined and subst. Used for - AM_INIT_AUTOMAKE and moved all version number more to the top. - -2001-12-18 Marcus Brinkmann - - * autogen.sh (libtool_vers): Bump to 1.4. - - * configure.ac (LIBGPGME_LT_CURRENT): Increment. - (LIBGPGME_LT_AGE): Reset. - Improve comment. - Fix wrong comment character. - -2001-12-18 Werner Koch - - * acinclude.m4 (GNUPG_FIX_HDR_VERSION): Fixed for new automake. - -2001-12-14 Marcus Brinkmann - - * configure.ac (GPG): Substitute this variable. - (GPGSM): Likewise. - -2001-11-22 Marcus Brinkmann - - * configure.ac (AC_CONFIG_FILES): Add tests/gpg/Makefile and - tests/gpgsm/Makefile. - -2001-11-21 Marcus Brinkmann - - * Makefile.am (gpgmeplug): New variable, set to gpgmeplug if - [BUILD_GPGMEPLUG]. - * configure.ac (AC_CONFIG_FILES): Add gpgmeplug/Makefile. - Support --enable-gpgmeplug. - -2001-11-21 Marcus Brinkmann - - * autogen.sh: Tighten version dependencies. - -2001-11-20 Marcus Brinkmann - - * Makefile.am (SUBDIRS): Support building the assuan library - (currently if GPGSM_PATH is set).. - * configure.ac: Support building the assuan library. - * assuan: New directory, populated with the Assuan library - (copied from the newpg repository). - -2001-11-20 Marcus Brinkmann - - * configure.ac (NEED_GPGSM_VERSION): New variable. Treat it - similarly to NEED_GPG_VERSION. - * acconfig.h: Likewise. - -2001-11-18 Marcus Brinkmann - - * configure.in: Renamed to ... - * configure.ac: ... this. Update to autoconf 2.52. Lots of small - changes in the transition. Support --with-gpg=PATH and - --with-gpgsm=PATH options. Check if test suites can be run. - * acconfig.h: Add GPGSM_PATH. - * Makefile.am: New variable `tests', set to `tests' if - RUN_GPG_TESTS. - (SUBDIRS): Replace string `tests' with variable `tests'. - -2001-10-22 Marcus Brinkmann - - * autogen.sh: Invoke automake with `-a' (add missing files). - Do not invoke configure. - -2001-09-17 Werner Koch - - Released 0.2.3. - - * configure.in (NEED_GPG_VERSION): Set to 1.0.6. Incremented LT - current and age. - - * Makefile.am (SUBDIRS): Add doc - -2001-06-12 Werner Koch - - Released 0.2.2. - -2001-04-05 Werner Koch - - * configure.in (NEED_GPG_VERSION): Set to 1.0.4g - -2001-04-02 Werner Koch - - Released 0.2.1. - - Changed the copyright notices all over the place. - -2001-02-28 Werner Koch - - Released 0.2.0. - -2001-01-18 Werner Koch - - * autogen.sh: Added option --build-w32. - - - Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2011 g10 Code GmbH - - This file is free software; as a special exception the author gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. - - This file is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY, to the extent permitted by law; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +Local Variables: +buffer-read-only: t +mode: text +End: diff --git a/ChangeLog-2011 b/ChangeLog-2011 new file mode 100644 index 00000000..1273e8a7 --- /dev/null +++ b/ChangeLog-2011 @@ -0,0 +1,1038 @@ +2011-12-02 Werner Koch + + NB: ChangeLog files are no longer manually maintained. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist". See doc/HACKING for details. + +2011-10-25 Marcus Brinkmann + + * m4/pth.m4: Removed. + * configure.ac: Remove check for pth and automake conditional + HAVE_PTH. + +2011-06-16 Marcus Brinkmann + + Release 1.3.1 + + * configure.ac: Set LT version to C19/A8/R0. + +2011-05-06 Marcus Brinkmann + + * Makefile.am (SUBDIRS): Remove complus. + + * configure.ac (AC_CONFIG_FILES): Remove complus/Makefile. + (BUILD_COMPLUS): Remove AM_CONDITIONAL. + * complus/: Remove very old and stale component. + + * acinclude.m4 (GNUPG_FIX_HDR_VERSION): Remove. + +2011-04-14 Werner Koch + + * configure.ac: Require automake 1.11. + +2011-04-06 Werner Koch + + * autogen.sh (--build-w32): Support option --build-w64. + * configure.ac (HAVE_W64_SYSTEM): Define. + (INSERT__TYPEDEFS_FOR_GPGME_H): New. + (GPGME_CONFIG_HOST): New. + +2011-02-02 Marcus Brinkmann + + * configure.ac (NEED_LIBASSUAN_VERSION): Bump to 2.0.2 for system hooks. + +2010-12-30 Werner Koch + + * configure.ac: Support a git revision. + +2010-11-03 Werner Koch + + * configure.ac (AC_CHECK_HEADERS): Check for sys/types.h and + sys.stat.h. + +2010-11-02 Werner Koch + + * configure.ac (AC_CHECK_HEADERS): Check for sys.time.h. + +2010-08-19 Werner Koch + + * configure.ac (AH_BOTTOM): Define GPG_ERR_ENABLE_ERRNO_MACROS. + +2010-05-12 Marcus Brinkmann + + * configure.ac: Check for setlocale. + +2010-05-07 Werner Koch + + * configure.ac: Change checks to always require libassuan. + +2010-05-07 Marcus Brinkmann + + * autogen.sh: Update the thing. + + * configure.ac: Check for locale.h. + +2010-05-06 Marcus Brinkmann + + * configure.ac: Detect Windows CE. + (HAVE_W32CE_SYSTEM): New symbol and automake conditional. + * ltmain.sh, m4/libtool.m4: Patch so that it works for Windows CE. + + * configure.ac: Require libgpg-error 1.8. + +2010-03-15 Werner Koch + + * configure.ac (emacs_local_vars_begin) + (emacs_local_vars_read_only, emacs_local_vars_end): New. + +2010-01-22 Werner Koch + + * autogen.sh (--build-w32): Add --with-libassuan-prefix. + +2010-01-11 Marcus Brinkmann + + Release 1.3.0. + +2009-12-22 Marcus Brinkmann + + * configure.ac: Do not use echo -n. Test for __thread. + +2009-12-17 Marcus Brinkmann + + * configure.ac: Make largefile check more robust. + +2009-12-10 Werner Koch + + * configure.ac: Check for getgid and getegid. + +2009-12-08 Marcus Brinkmann + + Update to libtool 2.2.6a. + * configure.ac: Invoke AC_CONFIG_MACRO_DIR. + (AC_LIBTOOL_WIN32_DLL, AC_LIBTOOL_RC): Replace by ... + (LT_PREREQ, LT_INIT, LT_LANG): ... these. + * config.guess, config.sub, install-sh, ltmain.sh, m4/libtool.m4: + Updated to libtool 2.2.6a. + * m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4, + m4/lt~obsolete.m4: New files from libtool 2.2.6a. + +2009-11-10 Marcus Brinkmann + + * configure.ac: Activate UIServer if FD passing is enabled and + Assuan is available. + +2009-10-30 Marcus Brinkmann + + * configure.ac: Check for argp.h and error_t. + +2009-10-26 Marcus Brinkmann + + * configure.ac (NEED_GPG_VERSION_DEFAULT): Bump to 1.4.0 as 1.3.0 + was development versions only. + +2009-10-22 Marcus Brinkmann + + * configure.ac: Add support for G13. + +2009-10-20 Marcus Brinkmann + + * configure.ac (AC_CONFIG_FILES): Remove assuan/Makefile. + +2009-10-20 Marcus Brinkmann + + * configure.ac: Replace internal libassuan by external libassuan. + * m4/libassuan.m4: New file. + * Makefile.am (assuan): Remove variable. + (SUBDIRS): Remove ${assuan}. + * assuan/: Removed. + +2009-06-22 Marcus Brinkmann + + * configure.ac: Add AC_TYPE_UINTPTR_T. + + * assuan/assuan.h [_ASSUAN_IN_GPGME_BUILD_ASSUAN]: Declare + _gpgme_io_connect. + +2009-06-18 Marcus Brinkmann + + Released GPGME 1.2.0. + + * configure.ac (my_version): Set to 1.2.0. + (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump. + (LIBGPGME_LT_REVISION): Reset. + +2009-05-05 Marcus Brinkmann + + * configure.ac: Add infrastructure for compile time check of + _FILE_OFFSET_BITS. + +2009-04-19 Moritz + + * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Specify --with-gpg. + +2009-03-06 Marcus Brinkmann + + * assuan/: Update to libassuan SVN 2009-03-06. + +2009-01-26 Werner Koch + + * configure.ac (AC_CONFIG_FILES): Add tests/opassuan/Makefile. + +2008-12-08 Marcus Brinkmann + + Release GPGME 1.1.8. + + * configure.ac: Bump API revision. + +2008-11-03 Marcus Brinkmann + + * configure.ac: Replace gpgme paths with src. + * gpgme: Move to ... + * src: ... this new directory. + +2008-10-20 Werner Koch + + * configure.ac (AC_CONFIG_FILES): Add gpgme.h. + (GNUPG_FIX_HDR_VERSION): Remove. + +2008-10-17 Marcus Brinkmann + + Release GPGME 1.1.7. + + * configure.ac (LIBGPGME_LT_REVISION): Bump for release. + +2008-09-19 Moritz + + * configure.ac: Remove bogus "esac". + +2008-09-16 Marcus Brinkmann + + * configure.ac (_XOPEN_SOURCE) [apple-darwin]: Define it. + +2008-07-04 Werner Koch + + * config.guess, config.sub: Update to 2007-11-19. Also update + missing et al scripts. + +2008-04-01 Werner Koch + + * configure.ac (AC_INIT): Fix quoting. + +2008-01-30 Marcus Brinkmann + + * configure.ac: Bump required version of automake up to 1.10. + * autogen.sh: Fix aclocal check. + +2008-01-04 Marcus Brinkmann + + Release GPGME 1.1.6. + + * configure.ac: Support gpgconf. + +2007-09-27 Marcus Brinkmann + + * assuan-pipe-connect.c (pipe_connect_gpgme): Do not close process + handle here. Use this function also on Unix systems. + + * assuan-pipe-connect.c (pipe_connect_gpgme): Fix last change. + + * assuan-pipe-connect.c (pipe_connect_gpgme): New function, use it + if _ASSUAN_IN_GPGME_BUILD_ASSUAN. + +2007-09-17 Werner Koch + + * configure.ac: Use the svn version magic. + +2007-09-07 Marcus Brinkmann + + * configure.ac: Check for C++, Qt and support --enable-w32-qt. + * m4/pkg.m4: New file. + +2007-08-21 Marcus Brinkmann + + * configure.ac (--enable-w32-glib): Use --enableval, not + --withval. + +2007-07-16 Marcus Brinkmann + + * assuan/assuan-socket.c (_assuan_close): Always use close(). + * assuan/assuan.h (_gpgme_io_close): New prototype. + (close): New macro, define as _gpgme_io_close. + +2007-07-13 Marcus Brinkmann + + * assuan/assuan-io.c (_assuan_simple_read, _assuan_simple_write): + Always use read/write (which means _gpgme_io_read and + _gpgme_io_write). + +2007-07-09 Marcus Brinkmann + + Released 1.1.5. + + * configure.ac (LIBGPGME_LT_REVISION): Bump for release. + +2007-07-08 Marcus Brinkmann + + * configure.ac (GPGSM_DEFAULT) [*-mingw32*]: Initialize it. + (HAVE_ASSUAN_H): Set to 1 if we have it. + (funopen): Use AC_REPLACE_FUNCS. + (USE_DESCRIPTOR_PASSING): Define to 1 if we have it. Do not + define it at all if we don't. + (NETLIBS) [have_w32_system]: Add -lws2_32. + (DIRSEP_C, DIRSEP_S, EXPSEP_C, EXPSEP_S, PATHSEP_S) + [HAVE_DOSISH_SYSTEM]: Remove definitions. + + * assuan/assuan.h (_assuan_funopen): Define to _gpgme_funopen. + * assuan/funopen.c: Move to ../gpgme/funopen.c. + * assuan/Makefile.am (libassuan_la_SOURCES): Remove funopen.c. + +2007-07-04 Marcus Brinkmann + + * assuan/Makefile.am (INCLUDES): Include $(top_srcdir)/gpgme. + * assuan/assuan.h: Include instead of trying to duplicate + the definitions. + + * assuan/: Update files to 2007-07-04 version of assuan. + + * autogen.sh: Use = not == in test. + +2007-03-05 Werner Koch + + Released 1.1.4. + + * configure.ac (LIBGPGME_LT_REVISION): Bump for release. + + * autogen.sh: New option --force. + +2007-01-29 Marcus Brinkmann + + Released 1.1.3. + + * configure.ac (LIBGPGME_LT_REVISION): Bump for release. + +2007-01-26 Werner Koch + + * 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 + + * configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION): Must define + after it may have been changed by an option. + +2007-01-08 Werner Koch + + * configure.ac: Require gpg-error 1.4 due to the use of + gpg_error_from_syserror. + (HAVE_ASSUAN_H): New. + +2007-01-05 Marcus Brinkmann + + * configure.ac: Add options --with-gpg-version and + --with-gpgsm-version to allow overriding the minimum version + requirements. + +2006-12-17 Marcus Brinkmann + + * configure.ac: Fix two typos in last change. + +2006-12-03 Marcus Brinkmann + + * configure.ac: Use descriptor passing only if --enable-fd-passing + is provided. + + * configure.ac: Add check for use of descriptor passing. + +2006-11-29 Marcus Brinkmann + + * configure.ac (NEED_GPG_VERSION): Bump to 1.3.0. + +2006-09-19 Marcus Brinkmann + + * configure.ac: Turn stpcpy into a replacement function. + Check for unistd.h and add setenv as replacement function. + +2006-07-29 Marcus Brinkmann + + * configure.ac: Check for network libraries and set NETLIBS. + +2006-07-06 Marcus Brinkmann + + * lang, lang/cl: New subdirectories. + * lang/Makefile.am, lang/README: New files. + * configure.ac (AC_CONFIG_FILES): Add lang/Makefile, + lang/cl/Makefile and lang/cl/gpgme.asd. + * Makefile.am (SUBDIRS): Add lang. + +2006-03-02 Marcus Brinkmann + + * configure.ac (LIBGPGME_LT_REVISION): Bump for release. + +2006-02-22 Marcus Brinkmann + + Released 1.1.1. + + * configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump for + release. + (LIBGPGME_LT_REVISION): Reset to 0 for release. + +2006-01-05 Werner Koch + + * configure.ac: Test for inline feature. + (AH_BOTTOM): New to define the pure attribute. + +2006-01-03 Werner Koch + + * configure.ac: Append SVN revision to the version. + +2005-11-18 Werner Koch + + * configure.ac (BUILD_REVISION): New. + +2005-11-17 Marcus Brinkmann + + * configure.ac: Add support for --enable-w32-glib (disabled by + default). Invoke AM_PATH_GLIB_2_0. + +2005-11-16 Werner Koch + + * configure.ac (CFLAGS) [W32]: Make sure that -mms-bitfields are used. + +2005-11-15 Werner Koch + + * configure.ac: Create BUILD_FILEVERSION from SVN Revision. + + * autogen.sh [W32]: Build shared and static versions of the library. + +2005-10-20 Marcus Brinkmann + + * w32-dll/ChangeLog, w32-dll/build-dll, w32-dll/gpgme.def: Remove + files. + + * configure.ac: Instead checking for windres and dlltool, invoke + AC_LIBTOOL_WIN32_DLL and AC_LIBTOOL_RC. + * src/Makefile.am [HAVE_W32_SYSTEM]: Use libtool, which simplifies + the rules. + +2005-10-01 Marcus Brinkmann + + Released 1.1.0. + + * configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump for + release. + (LIBGPGME_LT_REVISION): Reset to 0 for release. + +2005-09-12 Marcus Brinkmann + + * configure.ac (HAVE_PTH): Don't add $PTH_CFLAGS to $CFLAGS here. + +2005-08-26 Werner Koch + + * configure.ac (SEPCONSTANTS): New to define DIRSEP_C et al. + +2005-08-19 Werner Koch + + * configure.ac [W32]: Create values for versioninfo.rc and list + substuture versioninfo.rc. + * configure.ac: Define ENABLE_GPGSM. + +2005-08-08 Werner Koch + + * configure.ac (stpcpy): Changed from replace to test. + +2005-03-24 Marcus Brinkmann + + * configure.ac (AH_BOTTOM): Removed. + +2005-03-09 Werner Koch + + * acinclude.m4 (GNUPG_CHECK_VA_COPY): Assume no when cross-compiling. + + * Makefile.am (EXTRA_DIST): Include autogen.sh + + * autogen.sh: Added the usual code to build for W32 (--build-w32). + + * configure.ac: Fixed the mingw32 host string, removed OS/2 stuff. + (HAVE_DRIVE_LETTERS): Removed. + (HAVE_W32_SYSTEM): Added. + (AC_GNU_SOURCE): New to replace the identical AH_VERBATIM. + (AH_BOTTOM): Added. + +2004-12-28 Werner Koch + + Released 1.0.2. + + * Makefile.am (AUTOMAKE_OPTIONS): Build bzip 2 version. + (ACLOCAL_AMFLAGS): Add -I m4. + * configure.ac: Require automake 1.9.3 and autoconf 2.59. + * acinclude.m4: Changed quoting for automake 1.9. + * README: Use SHA1 instead of MD5. + +2004-12-11 Marcus Brinkmann + + * configure.ac: Replace ttyname_r if it doesn't exist (and warn in + that case). + +2004-12-07 Marcus Brinkmann + + * README: Refer to COPYING.LESSER and "each file" instead of + COPYING. + * COPYING.LESSER: New file. + * gpgme.spec.in (%doc): Add COPYING.LESSER. + * acinclude.m4, configure.ac, Makefile.am: Change license to LGPL + 2.1 or later. + * TODO: Add copyright notice. + * README.CVS: Likewise. + + * configure.ac (GPGSM_VERSION): Fix filter to get it. + +2004-10-22 Marcus Brinkmann + + Released 1.0.1. + + * configure.ac (LIBGPGME_LT_REVISION): Bump up to 2. + (AC_INIT): Set version to 1.0.1. + + * configure.ac: Set HAVE_GPGSM to true only if $GPGSM is not "no". + +2004-09-30 Marcus Brinkmann + + Released 1.0.0. + + * configure.ac (LIBGPGME_LT_REVISION): Bump up to 1. + (AC_INIT): Set version to 1.0.0. + + * Makefile.am (EXTRA_DIST): Remove README-alpha. + * README-alpha: Remove file. + +2004-09-17 Marcus Brinkmann + + * configure.ac: Disable AC_CONFIG_MACRO_DIR for now. + +2004-09-14 Marcus Brinkmann + + * configure.ac: Improve diagnostics with version check. + + * configure.ac: Print diagnostics about found thread libraries at + the end. Check for the versions of GPG and GPGSM and print the + found versions at the end. + (HAVE_GPGSM): Do not require GPGSM to exist and be readable. + (AC_CONFIG_MACRO_DIR): Invoke with argument m4. + + * acinclude.m4: Add copyright notice. + (jm_GLIBC21, AM_PATH_GPG_ERROR, _AC_PTH_ERROR, _AC_PTH_VERBOSE, + AC_CHECK_PTH): Removed. + +2004-06-23 Marcus Brinkmann + + * configure.ac: Check for . + +2004-06-08 Marcus Brinkmann + + Released 0.9.0. + + * configure.ac (AC_INIT): Set version number to 0.9.0. + (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump up by one. + (LIBGPGME_LT_REVISION): Reset to zero. + +2004-05-21 Marcus Brinkmann + + * configure.ac (GPGME_CONFIG_API_VERSION): New variable, + substitute it. + +2004-04-29 Marcus Brinkmann + + Released 0.4.7. + + * configure.ac (LIBGPGME_LT_REVISION): Bump it up. + +2004-04-02 Thomas Schwinge + + * autogen.sh: Added ACLOCAL_FLAGS. + +2004-04-06 Werner Koch + + Released 0.4.6. + + * config.guess, config.sub, ltmain.sh: Updated to those from + libtools 1.5.4. + +2004-03-07 Marcus Brinkmann + + Released 0.4.5. + + * configure.ac (NEED_GPGSM_VERSION): Bump up to 1.9.6. + + * Makefile.am (EXTRA_DIST): Remove autogen.sh and README.CVS. + +2004-02-18 Werner Koch + + * configure.ac: Make the check for funopen fail with just a + warning. + +2004-02-11 Werner Koch + + * autogen.sh (check_version): Removed bashism and simplified. + +2004-02-10 Werner Koch + + * configure.ac: Fixed funopen test change. + +2004-02-06 Moritz Schulte + + * configure.ac: Fix funopen replacement mechanism. + +2004-01-31 Marcus Brinkmann + + * configure.ac: Add invocation of AC_SYS_LARGEFILE, AC_TYPE_OFF_T + and AC_FUNC_FSEEKO. + +2004-01-12 Werner Koch + + Released 0.4.4. + + * configure.ac: Bumbed LT_Revision; now at C12/A1/R1. + (NEED_GPGSM_VERSION): Set to 1.9.3. + (min_automake_version): Added. + * README.CVS: New. + * Makefile.am (EXTRA_DIST): Added README.CVS. + * autogen.sh: Updated. + +2003-11-19 Werner Koch + + * acinclude.m4: Add AM_PATH_GPG_ERROR. + * configure.ac: Check for timegm. Made warning messages more + prominent. + +2003-10-06 Marcus Brinkmann + + Released 0.4.3. + + * configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump up by 1. + (LIBGPGME_LT_REVISION): Set to 0. + +2003-09-13 Marcus Brinkmann + + * configure.ac: Require libgpg-error 0.5. + + * acinclude.m4: Remove libtool cruft, add jm_GLIBC21. + * configure.ac: Add check for getenv_r, and call jm_GLIBC21. + Define HAVE_THREAD_SAFE_GETENV if appropriate. + +2003-09-03 Marcus Brinkmann + + * configure.ac: Remove GPGME_CONFIG_LIBS and GPGME_CONFIG_CFLAGS. + +2003-09-02 Marcus Brinkmann + + * configure.ac: Move invocation of AC_CANONICAL_HOST up to + suppress warning by autoconf. + +2003-08-30 Robert Schiele + + * gpgme.spec.in: %{_infodir}/dir is not packaged, + remove to prevent checking failure. + +2003-08-18 Marcus Brinkmann + + * configure.ac: If building Assuan, check for funopen and + fopencookie, and make isascii, putc_unlocked and memrchr + replacement functions. + (AM_PATH_GPG_ERROR): Require 0.3. + +2003-07-31 Marcus Brinkmann + + * configure.ac (AC_INIT): Bump version to 0.4.3. + +2003-07-30 Marcus Brinkmann + + * configure.ac (LIBGPGME_LT_REVISION): Bump up to 1. + + Released 0.4.2. + +2003-07-08 Marcus Brinkmann + + * configure.ac: Complain if libgpg-error is not found. + +2003-06-22 Marcus Brinkmann + + * configure.ac (AC_INIT): Bump version to 0.4.2. + +2003-06-06 Marcus Brinkmann + + * configure.ac (LIBGPGME_LT_CURRENT): Bump up to 11. + + * configure.ac: Use AM_PATH_GPG_ERROR. + + * configure.ac: Check for libgpg-error. Define + GPG_ERR_SOURCE_DEFAULT. + +2003-05-26 Marcus Brinkmann + + * configure.ac (NEED_GPG_VERSION): Bump up to 1.2.2. + +2003-05-18 Marcus Brinkmann + + In all files, replace the Gpgme* type names with the new gpgme_* + type names. + +2003-02-01 Marcus Brinkmann + + * assuan/: Update files to 2002-11-10 version of assuan. + +2003-01-29 Marcus Brinkmann + + * bonobo/gpgme.c, bonobo/main.c, bonobo/main.h, bonobo/Makefile, + bonobo/Makefile.am, bonobo/Makefile.in: Dead files removed. + * configure.ac: Remove automake conditional BUILD_BONOBO + (AC_CONFIG_FILES): Remove bonobo/Makefile. + * Makefile.am (bonobo): Remove variable. + (SUBDIRS): Remove ${bonobo}. + + * configure.ac: Remove all uses of GNUPG_CHECK_TYPEDEF, for byte, + ushort, ulong, u16 and u32. + * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Remove macro. + +2002-12-24 Marcus Brinkmann + + * configure.ac: New conditional HAVE_LD_VERSION_SCRIPT. + Call AC_CANONICAL_HOST, use host instead target. + +2002-12-23 Marcus Brinkmann + + * configure.ac: Bump up to 0.4.1. + + Released 0.4.0. + +2002-12-23 Marcus Brinkmann + + * autogen.sh (automake_vers): Require 1.7 (really 1.7.1) for the + conditional source distribution bug fix. + +2002-12-08 Marcus Brinkmann + + * configure.ac (LIBGPGME_LT_CURRENT): Increase by one. + (LIBGPGME_LT_AGE, LIBGPGME_LT_REVISION): Set to 0. + +2002-11-28 Marcus Brinkmann + + * NEWS: Add note about moving "gpgmeplug" to the "cryptplug" + package. + * README: Remove instructions related to "gpgmeplug". + * configure.ac: Remove enable option "gpgmeplug" and automake + conditional BUILD_GPGMEPLUG, as well as the status info about it. + (GPGMEPLUG): Remove variable. + * Makefile.am (gpgmeplug): Remove variable. + (SUBDIRS): Remove ${gpgmeplug}. + * cryptplug.h, gpgme-openpgp.c, gpgmeplug.dox, gpgme-smime.c, + Makefile.am, gpgmeplug.c, ChangeLog: Files removed. + +2002-11-22 Marcus Brinkmann + + * configure.ac: Disable GPGSM for all dosish systems. + +2002-10-12 Marcus Brinkmann + + * configure.ac: Add automake conditional HAVE_GPGSM. + +2002-10-08 Marcus Brinkmann + + * configure.ac (AC_INIT): Bump version up to 0.4.0. + (NEED_GPG_VERSION): Bump up to 1.2.0. + (NEED_GPGSM_VERSION): Bump up to 0.9.0. + * README: Update version numbers. + * NEWS: Start entry for 0.4.0. + +2002-09-20 Werner Koch + + Released 0.3.11. + + * configure.ac: Bump up LIBGPGME_LT_REVISION. + + * configure.ac (AC_CHECK_HEADERS): Check for sys/select.h. + +2002-09-04 Marcus Brinkmann + + * autogen.sh (autoconf_vers): Bump up to 2.53 to get the @&t@ + quadrigraph. Always cutting the edge! + +2002-09-02 Marcus Brinkmann + + * configure.ac: Create and substitute LTLIBOBJS. + +2002-09-02 Marcus Brinkmann + + Released 0.3.10. + + * NEWS: Update for 0.3.9 release. + * configure.ac: Bump up LIBGPGME_LT_REVISION. + +2002-08-29 Marcus Brinkmann + + * gpgme.spec.in: Changed user name in Wojciech Polak's email + address from ghostface to polak per request by himself. + +2002-08-28 Werner Koch + + * acinclude.m4 (GNUPG_CHECK_VA_COPY): New. + * configure.ac: Use it. + +2002-08-23 Werner Koch + + * configure.ac (GPGME_CONFIG_CFLAGS): Renamed from GPGME_CFLAGS + and removed the libpath because it is set by the config script. + +2002-08-21 Marcus Brinkmann + + * configure.ac: Bump version number to 0.3.10. + + * NEWS: Add template for development version. + +2002-08-21 Marcus Brinkmann + + Released 0.3.9. + + * NEWS: Update for 0.3.9 release. + * Makefile.am (EXTRA_DIST): Add gpgme.spec.in. + +2002-08-21 Marcus Brinkmann + + * jnlib/argparse.c, jnlib/argparse.h, jnlib/ChangeLog, + jnlib/dotlock.c, jnlib/dotlock.h, jnlib/libjnlib-config.h, + jnlib/logging.c, jnlib/logging.h,jnlib/Makefile.am, + jnlib/mischelp.h, jnlib/README, jnlib/stringhelp.c, + jnlib/stringhelp.h, jnlib/strlist.c, jnlib/strlist.h, + jnlib/types.h, jnlib/xmalloc.c, jnlib/xmalloc.h: Remove files. + +2002-08-21 Marcus Brinkmann + + * Makefile.am (SUBDIRS): Remove jnlib. + * configure.ac: Don't check for unsigned short or unsigned long. + Don't check for memicmp, strlwr, strtoul, memmove, stricmp. + Make stpcpy a replaced function. + Don't define HAVE_JNLIB_LOGGING. + Don't generate jnlib/Makefile. + +2002-07-02 Werner Koch + + * configure.ac: Bumbed version number to 0.3.9; add a comment on + when to change it. + + * gpgme.spec.in: New. Contributed by Wojciech Polak. + * Makefile.am (dist-hook): New. + + * AUTHORS: Added Wojciech and bug reporting addresses. + +2002-06-25 Werner Koch + + Released 0.3.8. + + * configure.ac: Bumbed LT version to 9/3/0. + (NEED_GPGSM_VERSION): Need 0.3.8 due to fixed export command. + +2002-06-04 Marcus Brinkmann + + Released 0.3.7. + + * configure.ac (AC_INIT): Set version to 0.3.7. + (LIBGPGME_LT_REVISION): Add one. + + * README: Document version requirement correctly. + +2002-06-02 Marcus Brinkmann + + * acinclude.m4: Fix Pth check so that it doesn't error out if pth + is not found. + +2002-06-02 Marcus Brinkmann + + * configure.ac: Add checks for Pth and pthreads. + * acinclude.m4: Add slightly hacked check for pth (seems to be an + autoconf version problem). + +2002-05-21 Werner Koch + + * configure.ac (NEED_GPGSM_VERSION): We need gpgsm 0.3.7. + +2002-05-03 Werner Koch + + Released 0.3.6. + +2002-04-05 Marcus Brinkmann + + * acconfig.h: File removed. + * configure.ac (NEED_GPG_VERSION): Add description. + (NEED_GPGSM_VERSION): Likewise. + (HAVE_DOSISH_SYSTEM): Likewise. + (HAVE_DRIVE_LETTERS): Likewise. + (GPG_PATH): Likewise. + (GPGSM_PATH): Likewise. + * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Likewise. + +2002-04-01 Werner Koch + + Released 0.3.5. + +2002-03-17 Marcus Brinkmann + + * configure.ac: Add automake conditional HAVE_DOSISH_SYSTEM. + +2002-03-04 Werner Koch + + * configure.ac: Bumbed version to 0.3.4-cvs to continue development. + + Released 0.3.4. + + * configure.ac: Bumbed LT version numbers to (7,1,0), requires + gpgsm 0.3.1. + +2002-03-03 Marcus Brinkmann + + * configure.ac (AC_INIT): Change version number to snapshot CVS + version. + +2002-02-13 Werner Koch + + * configure.ac (vasprintf,fopencookie): Add checks. + +2002-02-12 Marcus Brinkmann + + * configure.ac (AC_INIT): Bump version to 0.3.3. + * jnlib/Makefile.am: Rever to older version that includes xmalloc + but not dotlock and some other files. Reported by Stéphane + Corthésy. + +2002-02-10 Marcus Brinkmann + + * Released 0.3.2. + + * configure.ac (AC_INIT): Bump version to 0.3.2. + * jnlib/libjnlibconfig.h: Revert to older version that doesn't + expect libgcrypt. Reported by Jose Carlos Garcia Sogo + . + +2002-02-09 Marcus Brinkmann + + * Released 0.3.1. + + * configure.ac (LIBGPGME_LT_CURRENT): Bump it up to 6! + (NEED_GPGSM_VERSION): Bump it up to 0.3.0! + (AC_INIT): Bump version to 0.3.1 + +2002-01-22 Marcus Brinkmann + + * configure.ac (HAVE_JNLIB_LOGGING): Define always for assuan. + +2001-12-19 Werner Koch + + * configure.ac (VERSION,PACKAGE): Defined and subst. Used for + AM_INIT_AUTOMAKE and moved all version number more to the top. + +2001-12-18 Marcus Brinkmann + + * autogen.sh (libtool_vers): Bump to 1.4. + + * configure.ac (LIBGPGME_LT_CURRENT): Increment. + (LIBGPGME_LT_AGE): Reset. + Improve comment. + Fix wrong comment character. + +2001-12-18 Werner Koch + + * acinclude.m4 (GNUPG_FIX_HDR_VERSION): Fixed for new automake. + +2001-12-14 Marcus Brinkmann + + * configure.ac (GPG): Substitute this variable. + (GPGSM): Likewise. + +2001-11-22 Marcus Brinkmann + + * configure.ac (AC_CONFIG_FILES): Add tests/gpg/Makefile and + tests/gpgsm/Makefile. + +2001-11-21 Marcus Brinkmann + + * Makefile.am (gpgmeplug): New variable, set to gpgmeplug if + [BUILD_GPGMEPLUG]. + * configure.ac (AC_CONFIG_FILES): Add gpgmeplug/Makefile. + Support --enable-gpgmeplug. + +2001-11-21 Marcus Brinkmann + + * autogen.sh: Tighten version dependencies. + +2001-11-20 Marcus Brinkmann + + * Makefile.am (SUBDIRS): Support building the assuan library + (currently if GPGSM_PATH is set).. + * configure.ac: Support building the assuan library. + * assuan: New directory, populated with the Assuan library + (copied from the newpg repository). + +2001-11-20 Marcus Brinkmann + + * configure.ac (NEED_GPGSM_VERSION): New variable. Treat it + similarly to NEED_GPG_VERSION. + * acconfig.h: Likewise. + +2001-11-18 Marcus Brinkmann + + * configure.in: Renamed to ... + * configure.ac: ... this. Update to autoconf 2.52. Lots of small + changes in the transition. Support --with-gpg=PATH and + --with-gpgsm=PATH options. Check if test suites can be run. + * acconfig.h: Add GPGSM_PATH. + * Makefile.am: New variable `tests', set to `tests' if + RUN_GPG_TESTS. + (SUBDIRS): Replace string `tests' with variable `tests'. + +2001-10-22 Marcus Brinkmann + + * autogen.sh: Invoke automake with `-a' (add missing files). + Do not invoke configure. + +2001-09-17 Werner Koch + + Released 0.2.3. + + * configure.in (NEED_GPG_VERSION): Set to 1.0.6. Incremented LT + current and age. + + * Makefile.am (SUBDIRS): Add doc + +2001-06-12 Werner Koch + + Released 0.2.2. + +2001-04-05 Werner Koch + + * configure.in (NEED_GPG_VERSION): Set to 1.0.4g + +2001-04-02 Werner Koch + + Released 0.2.1. + + Changed the copyright notices all over the place. + +2001-02-28 Werner Koch + + Released 0.2.0. + +2001-01-18 Werner Koch + + * autogen.sh: Added option --build-w32. + + + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, + 2011 g10 Code GmbH + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/Makefile.am b/Makefile.am index fb068670..1ab445d2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,19 +1,19 @@ # Makefile.am - Top level Makefile for GPGME. # Copyright (C) 2000 Werner Koch (dd9jn) # Copyright (C) 2001, 2002, 2004, 2005, 2008, 2009 g10 Code GmbH -# +# # This file is part of GPGME. -# +# # GPGME 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 2.1 of the # License, or (at your option) any later version. -# +# # GPGME 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 program; if not, see . @@ -24,21 +24,36 @@ AUTOMAKE_OPTIONS = dist-bzip2 DISTCHECK_CONFIGURE_FLAGS = --with-gpg="@GPG@" -EXTRA_DIST = gpgme.spec.in autogen.sh +EXTRA_DIST = gpgme.spec.in autogen.sh \ + ChangeLog-2011 m4/ChangeLog-2011 contrib/ChangeLog-2011 if RUN_GPG_TESTS tests = tests else -tests = +tests = endif SUBDIRS = src ${tests} doc lang -# Fix the version of the spec file and create a file named VERSION +# Fix the version of the spec file and create a file named VERSION # to be used for patch's Prereq: feature. -dist-hook: +dist-hook: gen-ChangeLog @set -e; \ sed -e 's/@pkg_version@/$(VERSION)/g' \ $(top_srcdir)/gpgme.spec.in > $(distdir)/gpgme.spec echo "$(VERSION)" > $(distdir)/VERSION + + +gen_start_date = 2011-12-01T00:00:00 +.PHONY: gen-ChangeLog +gen-ChangeLog: + if test -d $(top_srcdir)/.git; then \ + (cd $(top_srcdir) && \ + ./build-aux/gitlog-to-changelog \ + --amend=build-aux/git-log-fix \ + --since=$(gen_start_date) ) > $(distdir)/cl-t; \ + cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\ + rm -f $(distdir)/ChangeLog; \ + mv $(distdir)/cl-t $(distdir)/ChangeLog; \ + fi diff --git a/autogen.sh b/autogen.sh index 2d079489..b988aced 100755 --- a/autogen.sh +++ b/autogen.sh @@ -243,12 +243,37 @@ if test "$DIE" = "yes"; then cat <&2 +*** Activating trailing whitespace git pre-commit hook. *** + For more information see this thread: + http://mail.gnome.org/archives/desktop-devel-list/2009-May/msg00084html + To deactivate this pre-commit hook again move .git/hooks/pre-commit + and .git/hooks/pre-commit.sample out of the way. +EOF + cp -av .git/hooks/pre-commit.sample .git/hooks/pre-commit + chmod -c +x .git/hooks/pre-commit + fi + if [ -f build-aux/git-hooks/commit-msg -a ! -f .git/hooks/commit-msg ] ; then + cat <&2 +*** Activating commit log message check hook. *** +EOF + cp -av build-aux/git-hooks/commit-msg .git/hooks/commit-msg + chmod -c +x .git/hooks/commit-msg + fi +fi + + + echo "Running aclocal -I m4 ${ACLOCAL_FLAGS:+$ACLOCAL_FLAGS }..." $ACLOCAL -I m4 $ACLOCAL_FLAGS echo "Running autoheader..." diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg new file mode 100755 index 00000000..5a697c7a --- /dev/null +++ b/build-aux/git-hooks/commit-msg @@ -0,0 +1,127 @@ +eval '(exit $?0)' && eval 'exec perl -w "$0" ${1+"$@"}' + & eval 'exec perl -w "$0" $argv:q' + if 0; + +# An hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, copy it to "~/.git/hooks/commit-msg". +# +# This script is based on the one from GNU coreutils. + +use strict; +use warnings; +(my $ME = $0) =~ s|.*/||; + +my $editor = $ENV{EDITOR} || 'vi'; +$ENV{PATH} = '/bin:/usr/bin'; + +# Rewrite the $LOG_FILE (old contents in @$LINE_REF) with an additional +# commented diagnostic "# $ERR" line at the top. +sub rewrite($$$) +{ + my ($log_file, $err, $line_ref) = @_; + local *LOG; + open LOG, '>', $log_file + or die "$ME: $log_file: failed to open for writing: $!"; + print LOG "# $err"; + print LOG @$line_ref; + close LOG + or die "$ME: $log_file: failed to rewrite: $!\n"; +} + +sub re_edit($) +{ + my ($log_file) = @_; + + warn "Interrupt (Ctrl-C) to abort...\n"; + + system 'sh', '-c', "$editor $log_file"; + ($? & 127) || ($? >> 8) + and die "$ME: $log_file: the editor ($editor) failed, aborting\n"; +} + +# Given a $LOG_FILE name and a \@LINE buffer, +# read the contents of the file into the buffer and analyze it. +# If the log message passes muster, return the empty string. +# If not, return a diagnostic. +sub check_msg($$) +{ + my ($log_file, $line_ref) = @_; + + local *LOG; + open LOG, '<', $log_file + or return "failed to open for reading: $!"; + @$line_ref = ; + close LOG; + + my @line = @$line_ref; + chomp @line; + + # Don't filter out blank or comment lines; git does that already, + # and if we were to ignore them here, it could lead to committing + # with lines that start with "#" in the log. + + # Filter out leading blank and comment lines. + # while (@line && $line[0] =~ /^(?:#.*|[ \t]*)$/) { shift @line; } + + # Filter out blank and comment lines at EOF. + # while (@line && $line[$#line] =~ /^(?:#.*|[ \t]*)$/) { pop @line; } + + @line == 0 + and return 'no log message'; + + # The first line should not be too short + 8 < length $line[0] || return 'summary line too short'; + + # The first line should not start with an asterisk or a hash sign. + # An asterisk might indicate that a change entry was started right + # at the first line. + $line[0] =~ /^[*#]/ && return "summary line starts with an * or #"; + + # Second line should be blank or not present. + 2 <= @line && length $line[1] + and return 'second line must be empty'; + + # Limit line length to allow for the ChangeLog's leading TAB. + foreach my $line (@line) + { + 72 < length $line && $line =~ /^[^#]/ + and return 'line longer than 72 characters'; + } + + return ''; +} + +{ + @ARGV == 1 + or die; + + my $log_file = $ARGV[0]; + + while (1) + { + my @line; + my $err = check_msg $log_file, \@line; + $err eq '' + and last; + $err = "$ME: $err\n"; + warn $err; + exit 1; + + # Insert the diagnostic as a comment on the first line of $log_file. + #rewrite $log_file, $err, \@line; + #re_edit $log_file; + # + ## Stop if our parent is killed. + #getppid() == 1 + # and last; + } +} + +# Local Variables: +# mode: perl +# End: diff --git a/build-aux/git-log-fix b/build-aux/git-log-fix new file mode 100644 index 00000000..af702fe6 --- /dev/null +++ b/build-aux/git-log-fix @@ -0,0 +1,3 @@ +# This file is expected to be used via gitlog-to-changelog's --amend=FILE +# option. It specifies what changes to make to each given SHA1's commit +# log and metadata, using Perl-eval'able expressions. diff --git a/build-aux/git-log-footer b/build-aux/git-log-footer new file mode 100644 index 00000000..6c814c4c --- /dev/null +++ b/build-aux/git-log-footer @@ -0,0 +1,15 @@ + +2011-12-02 Werner Koch + + NB: Changes done before December 1st, 2011 are described in + per directory files named ChangeLog-2011. See doc/HACKING for + details. + + ----- + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010, 2011 g10 Code GmbH + + Copying and distribution of this file and/or the original GIT + commit log messages, with or without modification, are + permitted provided the copyright notice and this notice are + preserved. diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog new file mode 100755 index 00000000..40a80355 --- /dev/null +++ b/build-aux/gitlog-to-changelog @@ -0,0 +1,345 @@ +eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' + & eval 'exec perl -wS "$0" $argv:q' + if 0; +# Convert git log output to ChangeLog format. + +my $VERSION = '2011-11-02 07:53'; # UTC +# The definition above must lie within the first 8 lines in order +# for the Emacs time-stamp write hook (at end) to update it. +# If you change this file with Emacs, please let the write hook +# do its job. Otherwise, update this string manually. + +# Copyright (C) 2008-2011 Free Software Foundation, Inc. + +# This program 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 of the License, or +# (at your option) any later version. + +# This program 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 this program. If not, see . + +# Written by Jim Meyering + +use strict; +use warnings; +use Getopt::Long; +use POSIX qw(strftime); + +(my $ME = $0) =~ s|.*/||; + +# use File::Coda; # http://meyering.net/code/Coda/ +END { + defined fileno STDOUT or return; + close STDOUT and return; + warn "$ME: failed to close standard output: $!\n"; + $? ||= 1; +} + +sub usage ($) +{ + my ($exit_code) = @_; + my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); + if ($exit_code != 0) + { + print $STREAM "Try `$ME --help' for more information.\n"; + } + else + { + print $STREAM < ChangeLog + $ME -- -n 5 foo > last-5-commits-to-branch-foo + +In a FILE specified via --amend, comment lines (starting with "#") are ignored. +FILE must consist of pairs where SHA is a 40-byte SHA1 (alone on +a line) referring to a commit in the current project, and CODE refers to one +or more consecutive lines of Perl code. Pairs must be separated by one or +more blank line. + +Here is sample input for use with --amend=FILE, from coreutils: + +3a169f4c5d9159283548178668d2fae6fced3030 +# fix typo in title: +s/all tile types/all file types/ + +1379ed974f1fa39b12e2ffab18b3f7a607082202 +# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself. +# Change the author to be Paul. Note the escaped "@": +s,Jim .*>,Paul Eggert , + +EOF + } + exit $exit_code; +} + +# If the string $S is a well-behaved file name, simply return it. +# If it contains white space, quotes, etc., quote it, and return the new string. +sub shell_quote($) +{ + my ($s) = @_; + if ($s =~ m![^\w+/.,-]!) + { + # Convert each single quote to '\'' + $s =~ s/\'/\'\\\'\'/g; + # Then single quote the string. + $s = "'$s'"; + } + return $s; +} + +sub quoted_cmd(@) +{ + return join (' ', map {shell_quote $_} @_); +} + +# Parse file F. +# Comment lines (starting with "#") are ignored. +# F must consist of pairs where SHA is a 40-byte SHA1 +# (alone on a line) referring to a commit in the current project, and +# CODE refers to one or more consecutive lines of Perl code. +# Pairs must be separated by one or more blank line. +sub parse_amend_file($) +{ + my ($f) = @_; + + open F, '<', $f + or die "$ME: $f: failed to open for reading: $!\n"; + + my $fail; + my $h = {}; + my $in_code = 0; + my $sha; + while (defined (my $line = )) + { + $line =~ /^\#/ + and next; + chomp $line; + $line eq '' + and $in_code = 0, next; + + if (!$in_code) + { + $line =~ /^([0-9a-fA-F]{40})$/ + or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"), + $fail = 1, next; + $sha = lc $1; + $in_code = 1; + exists $h->{$sha} + and (warn "$ME: $f:$.: duplicate SHA1\n"), + $fail = 1, next; + } + else + { + $h->{$sha} ||= ''; + $h->{$sha} .= "$line\n"; + } + } + close F; + + $fail + and exit 1; + + return $h; +} + +{ + my $since_date; + my $format_string = '%s%n%b%n'; + my $amend_file; + my $append_dot = 0; + GetOptions + ( + help => sub { usage 0 }, + version => sub { print "$ME version $VERSION\n"; exit }, + 'since=s' => \$since_date, + 'format=s' => \$format_string, + 'amend=s' => \$amend_file, + 'append-dot' => \$append_dot, + ) or usage 1; + + + defined $since_date + and unshift @ARGV, "--since=$since_date"; + + # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/) + # that makes a correction in the log or attribution of that commit. + my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {}; + + my @cmd = (qw (git log --log-size), + '--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV); + open PIPE, '-|', @cmd + or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n" + . "(Is your Git too old? Version 1.5.1 or later is required.)\n"); + + my $prev_date_line = ''; + my @prev_coauthors = (); + while (1) + { + defined (my $in = ) + or last; + $in =~ /^log size (\d+)$/ + or die "$ME:$.: Invalid line (expected log size):\n$in"; + my $log_nbytes = $1; + + my $log; + my $n_read = read PIPE, $log, $log_nbytes; + $n_read == $log_nbytes + or die "$ME:$.: unexpected EOF\n"; + + # Extract leading hash. + my ($sha, $rest) = split ':', $log, 2; + defined $sha + or die "$ME:$.: malformed log entry\n"; + $sha =~ /^[0-9a-fA-F]{40}$/ + or die "$ME:$.: invalid SHA1: $sha\n"; + + # If this commit's log requires any transformation, do it now. + my $code = $amend_code->{$sha}; + if (defined $code) + { + eval 'use Safe'; + my $s = new Safe; + # Put the unpreprocessed entry into "$_". + $_ = $rest; + + # Let $code operate on it, safely. + my $r = $s->reval("$code") + or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n"; + + # Note that we've used this entry. + delete $amend_code->{$sha}; + + # Update $rest upon success. + $rest = $_; + } + + my @line = split "\n", $rest; + my $author_line = shift @line; + defined $author_line + or die "$ME:$.: unexpected EOF\n"; + $author_line =~ /^(\d+) (.*>)$/ + or die "$ME:$.: Invalid line " + . "(expected date/author/email):\n$author_line\n"; + + my $date_line = sprintf "%s $2\n", strftime ("%F", localtime ($1)); + + # Format 'Co-authored-by: A U Thor ' lines in + # standard multi-author ChangeLog format. + my @coauthors = grep /^Co-authored-by:.*$/, @line; + for (@coauthors) + { + s/^Co-authored-by:\s*/\t /; + s/\s*/ + or warn "$ME: warning: missing email address for " + . substr ($_, 5) . "\n"; + } + + # If this header would be the same as the previous date/name/email/ + # coauthors header, then arrange not to print it. + if ($date_line ne $prev_date_line or "@coauthors" ne "@prev_coauthors") + { + $prev_date_line eq '' + or print "\n"; + print $date_line; + @coauthors + and print join ("\n", @coauthors), "\n"; + } + $prev_date_line = $date_line; + @prev_coauthors = @coauthors; + + # Omit "Co-authored-by..." and "Signed-off-by..." lines. + @line = grep !/^Signed-off-by: .*>$/, @line; + @line = grep !/^Co-authored-by: /, @line; + + # Remove leading and trailing blank lines. + if (@line) + { + while ($line[0] =~ /^\s*$/) { shift @line; } + while ($line[$#line] =~ /^\s*$/) { pop @line; } + } + + # If there were any lines + if (@line == 0) + { + warn "$ME: warning: empty commit message:\n $date_line\n"; + } + else + { + if ($append_dot) + { + # If the first line of the message has enough room, then + if (length $line[0] < 72) + { + # append a dot if there is no other punctuation or blank + # at the end. + $line[0] =~ /[[:punct:]\s]$/ + or $line[0] .= '.'; + } + } + + # Prefix each non-empty line with a TAB. + @line = map { length $_ ? "\t$_" : '' } @line; + + print "\n", join ("\n", @line), "\n"; + } + + defined ($in = ) + or last; + $in ne "\n" + and die "$ME:$.: unexpected line:\n$in"; + } + + close PIPE + or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n"; + # FIXME-someday: include $PROCESS_STATUS in the diagnostic + + # Complain about any unused entry in the --amend=F specified file. + my $fail = 0; + foreach my $sha (keys %$amend_code) + { + warn "$ME:$amend_file: unused entry: $sha\n"; + $fail = 1; + } + + exit $fail; +} + +# Local Variables: +# mode: perl +# indent-tabs-mode: nil +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "my $VERSION = '" +# time-stamp-format: "%:y-%02m-%02d %02H:%02M" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "'; # UTC" +# End: diff --git a/contrib/ChangeLog b/contrib/ChangeLog deleted file mode 100644 index e6b96f5a..00000000 --- a/contrib/ChangeLog +++ /dev/null @@ -1,33 +0,0 @@ -2010-11-15 Marcus Brinkmann - - * conf-w32ce-msc/fcntl.h: New file. - * conf-w32ce-msc/build.mk (conf_sources): Add fnctl.h. - (sources): Remove memrchr.c. - - * conf-w32ce-msc/io.h: New file. - * conf-w32ce-msc/build.mk (conf_sources): Add io.h. - - * conf-w32ce-msc/stdint.h: New file. - * conf-w32ce-msc/build.mk (conf_sources): Add stdint.h. - * conf-w32ce-msc/build.mk (copy-static-source): Revert last change. - -2010-11-15 Werner Koch - - * conf-w32ce-msc/build.mk (copy-static-source): Create stdint.h. - (all): Add ws2.lib - (clean): New. - -2010-11-04 Werner Koch - - * conf-w32ce-msc/build.mk (copy-built-source): Revert last - change. Does not work with W32CE where MSC defines it in except.h. - -2010-11-03 Werner Koch - - * conf-w32ce-msc/build.mk (copy-built-source): Create dummy sehmap.h. - -2010-11-01 Werner Koch - - * conf-w32ce-msc/config.h: New. - * conf-w32ce-msc/build.mk: New. - diff --git a/contrib/ChangeLog-2011 b/contrib/ChangeLog-2011 new file mode 100644 index 00000000..cfe58767 --- /dev/null +++ b/contrib/ChangeLog-2011 @@ -0,0 +1,49 @@ +2011-12-02 Werner Koch + + NB: ChangeLog files are no longer manually maintained. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist". See doc/HACKING for details. + +2010-11-15 Marcus Brinkmann + + * conf-w32ce-msc/fcntl.h: New file. + * conf-w32ce-msc/build.mk (conf_sources): Add fnctl.h. + (sources): Remove memrchr.c. + + * conf-w32ce-msc/io.h: New file. + * conf-w32ce-msc/build.mk (conf_sources): Add io.h. + + * conf-w32ce-msc/stdint.h: New file. + * conf-w32ce-msc/build.mk (conf_sources): Add stdint.h. + * conf-w32ce-msc/build.mk (copy-static-source): Revert last change. + +2010-11-15 Werner Koch + + * conf-w32ce-msc/build.mk (copy-static-source): Create stdint.h. + (all): Add ws2.lib + (clean): New. + +2010-11-04 Werner Koch + + * conf-w32ce-msc/build.mk (copy-built-source): Revert last + change. Does not work with W32CE where MSC defines it in except.h. + +2010-11-03 Werner Koch + + * conf-w32ce-msc/build.mk (copy-built-source): Create dummy sehmap.h. + +2010-11-01 Werner Koch + + * conf-w32ce-msc/config.h: New. + * conf-w32ce-msc/build.mk: New. + + Copyright (C) 2010 g10 Code GmbH + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/doc/ChangeLog b/doc/ChangeLog deleted file mode 100644 index 1dce16b5..00000000 --- a/doc/ChangeLog +++ /dev/null @@ -1,880 +0,0 @@ -2011-05-12 Marcus Brinkmann - - * gpgme.texi (I/O Callback Example): Fix example code. - - * gpgme.texi (Generating Keys): Fix OpenPGP parameters and reference - GPG and GPGSM manual. - -2010-01-05 Werner Koch - - * gpgme.texi (Changing Passphrases): New. - -2009-07-21 Werner Koch - - * uiserver.texi (UI Server Encrypt): Add --expect-sign option to - PREP_ENCRYPT. - -2009-06-16 Marcus Brinkmann - - * gpgme.texi (Result Management): New section. - -2009-06-16 Werner Koch - - * gpgme.texi (Exporting Keys): Document gpgme_op_export_keys. - (Importing Keys): Document gpgme_op_import_keys. - (Data Buffer Meta-Data): Document URL encodings. - -2009-05-28 Marcus Brinkmann - - * gpgme.texi (Library Version Check): Document selftest error. - (Creating Contexts): Likewise. - -2009-05-18 Marcus Brinkmann - - * gpgme.texi (Encrypting a Plaintext): Document - GPGME_ENCRYPT_NO_ENCRYPT_TO. - -2009-05-05 Marcus Brinkmann - - * gpgme.texi (Engine Information): Replace path by file_name. - -2008-11-28 Werner Koch - - * gpgme.texi (Listing Keys): Change description of the return - value to match the code. Spotted by Colin Leroy. - -2008-10-15 Werner Koch - - * uiserver.texi (Miscellaneous UI Server Commands): Add option - --protocol to the SENDER command. - -2008-07-17 Werner Koch - - * module-overview.sk: New. - -2008-07-04 Werner Koch - - * gpgme.texi (Algorithms): Add a hint on symmetric only encryption. - -2008-06-27 Marcus Brinkmann - - * gpgme.texi (Cancellation): Document gpgme_cancel_async. - -2008-06-25 Werner Koch - - * gpgme.texi (Listing Keys): Updated example to the current API. - Noted by Nico Schottelius. - -2008-06-05 Werner Koch - - * uiserver.texi (Miscellaneous UI Server Commands): Describe - START_CONFDIALOG. - -2008-06-04 Werner Koch - - * gpgme.texi: Use @copying command. Change license to - GPLv3. Include protocol specis from GpgOL and GPGEx. Minor - cleanups. - -2008-03-11 Marcus Brinkmann - - * gpgme.texi (File Based Data Buffers): Document the need for - blocking operations. - (Callback Based Data Buffers): Likewise. - -2008-03-05 Marcus Brinkmann - - * gpgme.texi (Library Version Check): Rename snippet function to - init_gpgme. - (I/O Callback Example): Call it here. - -2008-01-28 Marcus Brinkmann - - * gpgme.texi: Document that data encoding affects some output data - objects now. - -2007-09-27 Marcus Brinkmann - - * gpgme.texi (Protocols and Engines): Document GPGME_PROTOCOL_UNKNOWN. - -2007-09-11 Werner Koch - - * gpgme.texi (I/O Callback Example): Typo fix. - -2007-08-07 Werner Koch - - * gpgme.texi (Verify): Describe chain_model. - -2007-07-12 Werner Koch - - * gpgme.texi (Library Version Check): Add remark that the socket - layer will get initialized. - -2007-06-05 Marcus Brinkmann - - * gpgme.texi (Advanced Key Editing): New section. - -2007-05-21 Werner Koch - - * Makefile.am (online): New target. - -2007-05-18 Marcus Brinkmann - - * gpgme.texi (Error Strings): Fix documentation of - gpgme_strerror_r. - -2006-11-01 Moritz Schulte - - * gpgme.texi (Data Buffer I/O Operations): Fixed entry for - gpgme_data_seek: OFFSET is not a pointer; some s/whence/offset/. - -2006-09-25 Marcus Brinkmann - - * gpgme.texi (Destroying Data Buffers): Clarify that - gpgme_data_release_and_get_mem destroys DH unconditionally. - -2005-03-24 Marcus Brinkmann - - * gpgme.texi (Library Version Check): Make example code compatible - to W32 systems. - -2006-06-21 Marcus Brinkmann - - * gpgme.texi (Passphrase Callback): Fix inverted condition in - description. - -2005-12-20 Werner Koch - - * gpgme.texi (Verify): Document pka_trust. - -2005-12-06 Werner Koch - - * gpgme.texi (Key Management): Updated to match the fixes for - subkey fingerprints and theg secret flag. - -2005-10-06 Marcus Brinkmann - - * gpgme.texi (Destroying Data Buffers): Document gpgme_free. - -2005-10-02 Marcus Brinkmann - - * gpgme.texi (Key Management): Add the new member notations of - gpgme_sig_key_t. - (Key Listing Mode): Document GPGME_KEYLIST_MODE_SIG_NOTATIONS. - -2005-10-01 Marcus Brinkmann - - * gpgme.texi: Enclose all return parameters of deftypefuns in - curly brackets. - - * gpgme.texi (Signature Notation Data): New section. - (Verify): Added more about the notation data structure. - -2005-09-30 Marcus Brinkmann - - * gpgme.texi (Data Buffer I/O Operations, Data Buffer Meta-Data): - New subsections. - - * gpgme.texi: Replace plaintext_filename with file_name. - - * gpgme.texi (Key Management): Document is_qualified. - -2005-07-27 Marcus Brinkmann - - * gpgme.texi (Decrypt): Add plaintext_filename to - gpgme_decrypt_result_t. - (Verify): Likewise for gpgme_verify_result_t. - -2005-06-03 Marcus Brinkmann - - * gpgme.texi (Verify): Add information about new fields in - gpgme_signature_t. - - * gpgme.texi (Decrypt): Add gpgme_recipient_t. - -2005-05-28 Marcus Brinkmann - - * gpgme.texi (Key Listing Mode): Fix return type of - gpgme_set_keylist_mode. - Reported by "Sergio" . - -2005-04-28 Marcus Brinkmann - - * gpgme.texi (Included Certificates): Document - GPGME_INCLUDE_CERTS_DEFAULT. - -2005-01-12 Marcus Brinkmann - - * gpgme.texi (Engine Configuration): New section. - (Crypto Engine): New subsection. - -2004-12-07 Marcus Brinkmann - - * lesser.texi (Library Copying): Change from @appendixsec to - @appendix. - * gpgme.texi (Features): Change reference to GPL to one to LGPL. - - * Makefile.am: Change license to LGPL. - (gpgme_TEXINFOS): Replace gpl.texi with lesser.texi. - - * gpgme.texi: Change license to LGPL (also for documentation of - GPGME's license). - * lesser.texi: New file. - * gpl.texi: File removed. - - * gpgme.texi (Creating Contexts): Fix cut&paste error. Reported - by Noel Torres . - -2004-09-30 Marcus Brinkmann - - * Makefile.am (gpgme_TEXINFOS): Remove fdl.texi. - * gpgme.texi: Do not include fdl.texi. Change license to GPL. - * fdl.texi: File removed. - -2004-09-29 Marcus Brinkmann - - * gpgme.texi (Key Management): Change type of keylist_mode in - gpgme_key_t to gpgme_keylist_mode_t. - -2004-09-28 Marcus Brinkmann - - * gpgme.texi (Passphrase Callback): Fix last change. - -2004-09-27 Marcus Brinkmann - - * gpgme.texi (Passphrase Callback): Document - GPG_ERR_NOT_IMPLEMENTED. - - * gpgme.texi: Update copyright year for tex version. - -2004-07-29 Moritz Schulte - - * gpgme.texi (Verify): Fix gpgme_get_key example (ancient - force_update argument was still there). - -2004-06-08 Marcus Brinkmann - - * gpgme.texi (Listing Keys): Elaborate on the length restrictions - on search patterns. - - * gpgme.texi (Decrypt and Verify): Document the NO_DATA error - code. - (Verify): Document the relationship between gpgme_op_verify_result - and the decrypt and verify operations. - -2004-05-21 Marcus Brinkmann - - * gpgme.text (Verify): Document GPG_ERR_CERT_REVOKED status. - - * gpgme.texi (Decrypt): Add note about new field wrong_key_usage - of gpgme_decrypt_result_t. - - * gpgme.texi (Key Management): Add note about new field - keylist_mode of gpgme_key_t. - -2004-04-29 Marcus Brinkmann - - * gpgme.texi (Verify): Correct type of member wrong_key_usage. - -2004-03-29 Moritz Schulte - - * gpgme.texi (Verify): Fix type of gpgme_op_verify_result. - * gpgme.texi (Key Listing Mode): Typo fix. - -2004-03-23 Marcus Brinkmann - - * gpgme.texi (Library Version Check): Fix the instruction when to - set the locale. - -2004-03-03 Marcus Brinkmann - - * gpgme.texi (I/O Callback Example Qt): New section by Marc Mutz. - -2004-02-24 Marcus Brinkmann - - * gpgme.texi (cancellation): New section. - -2004-02-17 Werner Koch - - * gpgme.texi (Key Listing Mode): Doc KEYLIST_MODE_VALIDATE. - -2004-02-06 Moritz Schulte - - * gpgme.texi: A couple of small fixes regarding the Largfile - Support section. - -2004-02-01 Marcus Brinkmann - - * gpgme.texi (Largefile Support): New section. - -2004-01-13 Marcus Brinkmann - - * gpgme.texi (Key Management): Fix exportable field. - -2003-12-25 Marcus Brinkmann - - * gpgme.texi (Key Management): Rename member class in - gpgme_key_sig_t to sig_class. - (Creating a Signature): Likewise for gpgme_signature_t. - -2003-12-23 Moritz Schulte - - * gpgme.texi (Listing Keys): Minor clarification for - gpgme_get_key. - -2003-10-06 Marcus Brinkmann - - * gpgme.texi (Signal Handling): New section. - -2003-09-14 Marcus Brinkmann - - * gpgme.texi (Multi Threading): Correct documentation on memory - synchronization requirement. - - * gpgme.texi (Locale): New section. - (Multi Threading): Set locale in example. - -2003-09-13 Marcus Brinkmann - - * gpgme.texi (Error Strings): Add gpgme_strerror_r. - -2003-09-13 Marcus Brinkmann - - * gpgme.texi (Multi Threading): Update documentation. - -2003-09-03 Marcus Brinkmann - - * gpgme.texi (Header): We don't use the assuan namespace anymore. - Document new thread options. - -2003-08-14 Marcus Brinkmann - - * gpgme.texi (Creating a Signature): Change type of member class - to unsigned int. - -2003-08-04 Marcus Brinkmann - - * gpgme.texi (Verify): Get error code from SIG->status in the code - for gpgme_get_sig_status. - -2003-07-31 Marcus Brinkmann - - * gpgme.texi (Key Management): Add can_authenticate flag. - - * gpgme.texi (Listing Keys): Document GPG_ERR_AMBIGUOUS_NAME for - gpgme_get_key. - -2003-07-29 Marcus Brinkmann - - * Makefile.am (EXTRA_DIST): Remove variable. - - * gpgme.texi (Encrypting a Plaintext): Bad passphrase is only - possible with symmetric encryption, change the wording to reflect - that. - - * gpgme.texi (Creating a Signature): Document - GPG_ERR_UNUSABLE_SECKEY. - - * gpgme.texi (Encrypting a Plaintext): Mention encrypt and sign - operations in result function. - (Creating a Signature): Likewise. - -2003-07-23 Marcus Brinkmann - - * gpgme.texi (Key Listing Mode): Remove word duplication. - (Listing Keys): Remove mentioning of force argument. - (Verify): Don't mention r_stat. Fix some typos. - (Decrypt and Verify): Correct info how to get the result. Don't - mention r_stat. - (Manipulating Data Buffers): Fix documentation of return value. - (Listing Keys): Update examples. - (Decrypt): Result might also be available when operation failed. - (Verify): Result might also be available when operation failed. - All spotted by Stéphane Corthésy. - -2003-07-22 Marcus Brinkmann - - * gpgme.texi (Error Sources): Fix cut and paste error. - -2003-07-09 Marcus Brinkmann - - * gpgme.texi (Key Management): Clarify difference between can_sign - and can_certify. - (Information About Keys): Likewise for GPGME_ATTR_CAN_SIGN and - GPGME_ATTR_CAN_CERTIFY. - -2003-07-08 Marcus Brinkmann - - * gpgme.texi (Progress Meter Callback): Change return type of - gpgme_progress_cb_t to void. - -2003-06-22 Marcus Brinkmann - - * gpgme.texi: Add 2003 to copyright notice. - - * gpgme.texi (Header): Fix name space documentation on - libgpg-error. - -2003-06-22 Marcus Brinkmann - - * gpgme.texi (Multi Threading): Remove reference to - gpgme_recipients_t. - -2003-06-06 Marcus Brinkmann - - * gpgme.texi (Crypto Operations): Rename gpgme_invalid_user_id_t - to gpgme_invalid_key_t. - -2003-06-06 Marcus Brinkmann - - * gpgme.texi: Change error codes to GPG_ERR_* variants. - (Error Handling): Rewritten. - -2003-05-29 Marcus Brinkmann - - * gpgme.texi (Exporting Keys): Change and document prototypes. - Add new gpgme_op_export_ext and gpgme_op_export_ext_start - variants. - (Selecting Recipients): Section removed. - (Encrypting a Plaintext): Change prototypes and document the - changes. - -2003-05-28 Marcus Brinkmann - - * gpgme.texi (Exporting Keys): Change argument type from - gpgme_recipient_t to gpgme_user_id_t. - (Encrypting a Plaintext): Likewise. - (Selecting Recipients): Rewritten. - -2003-05-27 Marcus Brinkmann - - * gpgme.texi (Protocol Selection): Do not use @acronym in @node - because that breaks texi2dvi. - - * gpgme.texi (Passphrase Callback): Document new prototype. - -2003-05-18 Marcus Brinkmann - - * gpgme.texi (Header): Remove Gpgme as namespace prefix. Add - _GPGME to namespace prefix. - * gpgme.texi (Multi Threading): Add note about link order. - -2003-05-04 Marcus Brinkmann - - * gpgme.texi (Listing Keys): Document what happens if key is not - found. - - * gpgme.texi (Importing Keys): Fix cut and paste error. - -2003-04-30 Marcus Brinkmann - - * gpgme.texi (Encrypting a Plaintext): Remove reference to - gpgme_get_op_info. - (Detailed Results): Subsection removed. - - * gpgme.texi (Key Listing Mode): Add GPGME_KEYLIST_MODE_SIGS. - (Manipulating Keys): Add obsoleteness note. - (Key Signatures): Likewise. - (Information About Keys): Likewise. - (Key Management): Add new data types GpgmeSubkey, GpgmeKeySig, - GpgmeUserID, and all the information about GpgmeKey. - -2003-04-29 Marcus Brinkmann - - * gpgme.texi (Listing Keys): Remove force_update argument from - gpgme_get_key. - - * gpgme.texi (Trust Item Management): Add data members of - GpgmeTrustItem type. - (Information About Trust Items): Add note about obsoleteness. - (Manipulating Trust Items): Add gpgme_trust_item_ref and - gpgme_trust_item_unref. - -2003-04-28 Marcus Brinkmann - - * gpgme.texi (Verify): Rewritten to take into account new and - deprecated functions and data types. - - * gpgme.texi (Decrypt): Descript gpgme_op_decrypt_result and - GpgmeDecryptResult. - -2003-04-27 Marcus Brinkmann - - * gpgme.texi (Encrypting a Plaintext): Add info about - GpgmeEncryptResult and gpgme_op_encrypt_result. - - * gpgme.texi (Creating a Signature): Add info about - GpgmeNewSignature, GpgmeSignResult and gpgme_op_sign_result. - (Crypto Operations): Add GpgmeInvalidUserID. - (Algorithms): New chapter. - - * gpgme.texi (Deleting Keys): Document - GPGME_Ambiguous_Specification. - (Error Values): Remove GPGME_Invalid_Type and GPGME_Invalid_Mode. - Add GPGME_Unknown_Reason, GPGME_Not_Found, - GPGME_Ambiguous_Specification, GPGME_Wrong_Key_Usage, - GPGME_Key_Revoked, GPGME_Key_Expired, GPGME_No_CRL_Known, - GPGME_CRL_Too_Old, GPGME_Policy_Mismatch, GPGME_No_Secret_Key, - GPGME_Key_Not_Trusted, GPGME_Issuer_Missing, GPGME_Chain_Too_Long, - GPGME_Unsupported_Algorithm, GPGME_Sig_Expired, - GPGME_Bad_Signature, GPGME_No_Public_Key. - -2003-04-25 Marcus Brinkmann - - * gpgme.texi (Importing Keys): Change GPGME_IMPORT_PRIVATE to - GPGME_IMPORT_SECRET. - - * gpgme.texi (Importing Keys): Remove note about gpgme_get_op_info. - (Detailed Results): Remove note about import. - - * gpgme.texi (Importing Keys): Add documentation for - GpgmeImportStatus, GpgmeImportResult and gpgme_op_import_result. - - * gpgme.texi (Generating Keys): Fix documentation of public and - secret arguments. - -2003-04-24 Marcus Brinkmann - - * gpgme.texi (Generating Keys): Document changed gpgme_op_genkey - and new gpgme_op_genkey_result function. Document - GpgmeGenKeyResult data type. - - * gpgme.texi (Error Values): Rename GPGME_No_Passphrase to - GPGME_Bad_Passphrase. - * gpgme.texi (Decrypt): Likewise. - (Decrypt and Verify): Likewise. - (Creating a Signature): Likewise. - (Encrypting a Plaintext): Likewise. - - * gpgme.texi (Error Values): Rename GPGME_No_Recipients to - GPGME_No_UserID and GPGME_Invalid_Recipient to - GPGME_Invalid_UserID. - (Encrypting a Plaintext): Likewise. - - * gpgme.texi (Error Values): Remove GPGME_Busy and GPGME_No_Request. - (Listing Keys): Likewise. - (Listing Trust Items): Likewise. - -2003-02-06 Marcus Brinkmann - - * gpgme.texi (Cancelling an Operation): Removed. - (Passphrase Callback): Document new type for GpgmePassphraseCb. - -2003-01-30 Marcus Brinkmann - - * gpgme.texi (Engine Information): Rename member part to - file_name. - - * gpgme.texi (Protocols and Engines): Document - gpgme_get_protocol_name. - - * gpgme.texi (Engine Information): Rewritten. - -2003-01-29 Marcus Brinkmann - - * gpgme.texi (I/O Callback Interface): Document new even - GPGME_EVENT_START. - (Waiting For Completion): Document new possible return values. - (I/O Callback Interface): Document return type of GpgmeIOCb. - -2003-01-29 Marcus Brinkmann - - * gpgme.texi (Hooking Up Into Idle Time): Section removed. - -2002-12-24 Marcus Brinkmann - - * gpgme.texi (Verify): Drop R_STAT argument in gpgme_op_verify. - * gpgme.texi (Decrypt and Verify): Likewise for - gpgme_op_decrypt_verify. - -2002-12-23 Marcus Brinkmann - - * gpgme.texi (Information About Keys): Document that - GPGME_ATTR_IS_SECRET is not representable as a string anymore. - -2002-12-22 Marcus Brinkmann - - * gpgme.texi (Key Signatures): New section. - (Listing Keys): Add gpgme_get_key. - -2002-12-06 Marcus Brinkmann - - * gpgme.texi (Memory Based Data Buffers): New subsection. - (File Based Data Buffers): Likewise. - (Callback Based Data Buffers): Likewise. - (Manipulating Data Buffers): Update interfaces. Add - gpgme_data_seek. - * gpgme.texi (Engine Version Check): Remove gpgme_check_engine. - -2002-11-21 Marcus Brinkmann - - * gpgme.texi (Verify): Document the new interface. - -2002-11-19 Marcus Brinkmann - - * gpgme.texi (Generating Keys): Document new argument to - gpgme_op_genkey. - -2002-11-05 Marcus Brinkmann - - * gpgme.texi (Verify): Fix prototype of gpgme_get_sig_key. - Reported by Miguel Coca . - -2002-08-30 Marcus Brinkmann - - * gpgme.texi (Selecting Signers): Fix reference count. - -2002-08-21 Marcus Brinkmann - - * gpgme.texi (Header): Document name space. - -2002-08-20 Marcus Brinkmann - - * gpgme.texi (Importing Keys): Document gpgme_op_import_ext. - - * gpgme.texi (Importing Keys): Undocument EOF. - -2002-08-14 Werner Koch - - * gpgme.texi (Information About Keys): Changed GPGME_ATTR_TYPE. - -2002-07-25 Marcus Brinkmann - - * gpgme.texi (Deleting Keys): Say that secret keys might not be - deleted. - -2002-07-25 Marcus Brinkmann - - * gpgme.texi (Information About Keys): Document (badly) the new - key attributes. - - * gpgme.texi (Manipulating Data Buffers): Mention that backend - tries to detect encoding automatically. - -2002-07-03 Marcus Brinkmann - - * gpgme.texi (Run Control): Update this section. - (Waiting For Completion): Likewise for this subsection. - (Cancelling an Operation): Likewise for this subsection. - (Using External Event Loops): New subsection with several - subsubsections. - -2002-06-28 Marcus Brinkmann - - * gpgme.texi (Multi Threading): Remove item about the need to - synchronize anything against gpgme_wait (except gpgme_wait - itself). - -2002-06-27 Marcus Brinkmann - - * gpgme.texi (Information About Keys): Fix documentation for IDX. - (Information About Trust Items): Likewise. - -2002-06-26 Werner Koch - - * gpgme.texi (Importing Keys): Document the return value -1 of - gpgme_op_import. - -2002-06-20 Werner Koch - - * gpgme.texi (Verify): Explain the new whatidx variable. - -2002-06-10 Werner Koch - - * gpgme.texi (Verify): Document attribute GPGME_ATTR_ERRTOK. - -2002-06-04 Marcus Brinkmann - - * gpgme.texi (Multi Threading): Document new autodetection. - -2002-06-04 Marcus Brinkmann - - * Makefile.am (DISTCLEANFILES): New variable. - -2002-05-26 Marcus Brinkmann - - * gpgme.texi: Some typographical correctons throughout. - -2002-05-09 Marcus Brinkmann - - * gpgme.texi (Using Automake): New section. - -2002-05-09 Marcus Brinkmann - - * gpgme.texi (Multi Threading): Escape { and }. - -2002-05-09 Marcus Brinkmann - - * gpgme.texi (Overview): Replace note about thread-safeness. - (Multi Threading): New section. - -2002-05-03 Werner Koch - - * gpgme.texi (Manipulating Data Buffers): Changed some data types - to void*. - (Protocol Selection): Added gpgme_get_protocol. - (Verify): Updated to include the new attribute fucntions and - status codes. - -2002-04-27 Werner Koch - - * gpgme.texi (Manipulating Data Buffers): New type GpgmeDataEncoding. - -2002-04-23 Marcus Brinkmann - - * gpgme.texi (Passphrase Callback): Document that either return - argument can be NULL. - (Progress Meter Callback): Likewise. - -2002-04-22 Marcus Brinkmann - - * gpgme.texi (Passphrase Callback): Fix small typo. Document the - new function gpgme_get_passphrase_cb. - (Progress Meter Callback): Document the new function - gpgme_get_progress_cb. - -2002-04-16 Marcus Brinkmann - - * gpgme.texi (Creating a Signature): Fix function name. Reported - by Wichert Ackerman . - -2002-03-29 Marcus Brinkmann - - * gpgme.texi (direntry): End index entry with a full stop. - Patch submitted by Jose Carlos Garcia Sogo . - -2002-03-17 Marcus Brinkmann - - * gpgme.texi (Detailed Results): Fix syntax error in last change. - -2002-03-08 Werner Koch - - * gpgme.texi (Detailed Results): Import does also return info. - -2002-03-06 Marcus Brinkmann - - * gpgme.texi (Encrypting a Plaintext): Document symmetric - encryption. - -2002-03-06 Marcus Brinkmann - - * gpgme.texi (Error Strings): Add example. - * gpgme.texi (Listing Keys): Likewise. - -2002-03-03 Marcus Brinkmann - - * gpgme.texi (Information About Keys): Document GPGME_ATTR_EXPIRE. - -2002-03-03 Marcus Brinkmann - - * gpgme.texi (Verify): Document verification of normal and - cleartext signatures. - -2002-02-27 Marcus Brinkmann - - * gpgme.texi (Listing Keys): Document gpgme_op_keylist_ext_start. - -2002-02-27 Marcus Brinkmann - - * gpgme.texi (Encrypting a Plaintext): Document - GPGME_Invalid_Recipients. - (Error Values): Likewise. - -2002-02-26 Marcus Brinkmann - - * gpgme.texi (Encrypting a Plaintext): Document - gpgme_op_encrypt_sign and gpgme_op_encrypt_sign_start. - -2002-02-25 Marcus Brinkmann - - * gpgme.texi (Creating a Signature): Add a note about - certificates to include. - (Included Certificates): New section. - -2002-02-09 Marcus Brinkmann - - * gpgme.texi (Detailed Results): Remove literal tags. - (Generating Keys): Update documentation. - - * gpgme.texi (Generating Keys): Fix syntax error. - -2002-02-06 Marcus Brinkmann - - * gpgme.texi (Waiting For Completion): Adjust doc to changes in - the code. - -2002-02-06 Marcus Brinkmann - - * gpgme.texi (Key Listing Mode): Update documentation. - -2002-01-31 Marcus Brinkmann - - * gpgme.texi (Generating Keys): Document error at creation - failure. - -2002-01-30 Marcus Brinkmann - - * gpgme.texi (Deleting Keys): Document new error values. - -2002-01-30 Marcus Brinkmann - - * gpgme.texi (Importing Keys): Add reference to gpgme_get_op_info. - -2002-01-30 Marcus Brinkmann - - * gpgme.texi: Some spell checking. - -2002-01-30 Marcus Brinkmann - - * gpgme.texi: Add all the gpgme_op_*_start functions. - Fill the concept index with many, many entries. - -2002-01-29 Marcus Brinkmann - - * gpgme.texi (Run Control): New section. - (Verify): Docuent gpgme_get_notation. - (More Information): New section describing gpgme_get_op_info. - -2002-01-22 Marcus Brinkmann - - * gpgme.texi (Passphrase callback): Change GpgmePassphraseCb's - R_HD type from void* to void**. - -2002-01-22 Marcus Brinkmann - - * gpgme.texi (Creating data buffers): Change - gpgme_data_new_from_filepart's LENGTH type from off_t to size_t. - -2002-01-22 Marcus Brinkmann - - * gpgme.texi (Generating keys): New subsection. - (Exporting keys): Likewise. - (Importing keys): Likewise. - (Deleting keys): Likewise. - -2002-01-16 Marcus Brinkmann - - * gpgme.texi: g10Code -> g10 Code - - * gpgme.texi (Top): Complete detailmenu. - - * gpgme.texi: Convert embarassing cruft to the real thing. - -2002-01-16 Marcus Brinkmann - - * ChangeLog: New file. - * gpgme.texi: Likewise. - * gpl.texi: Likewise. - * fdl.texi: Likewise. - * Makefile.am (info_TEXINFOS): New variable. - (gpgme_TEXINFOS): Likewise. - - Copyright 2002, 2003, 2004 g10 Code GmbH - - This file is free software; as a special exception the author gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. - - This file is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY, to the extent permitted by law; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/doc/ChangeLog-2011 b/doc/ChangeLog-2011 new file mode 100644 index 00000000..d6ecca77 --- /dev/null +++ b/doc/ChangeLog-2011 @@ -0,0 +1,888 @@ +2011-12-02 Werner Koch + + NB: ChangeLog files are no longer manually maintained. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist". See doc/HACKING for details. + +2011-05-12 Marcus Brinkmann + + * gpgme.texi (I/O Callback Example): Fix example code. + + * gpgme.texi (Generating Keys): Fix OpenPGP parameters and reference + GPG and GPGSM manual. + +2010-01-05 Werner Koch + + * gpgme.texi (Changing Passphrases): New. + +2009-07-21 Werner Koch + + * uiserver.texi (UI Server Encrypt): Add --expect-sign option to + PREP_ENCRYPT. + +2009-06-16 Marcus Brinkmann + + * gpgme.texi (Result Management): New section. + +2009-06-16 Werner Koch + + * gpgme.texi (Exporting Keys): Document gpgme_op_export_keys. + (Importing Keys): Document gpgme_op_import_keys. + (Data Buffer Meta-Data): Document URL encodings. + +2009-05-28 Marcus Brinkmann + + * gpgme.texi (Library Version Check): Document selftest error. + (Creating Contexts): Likewise. + +2009-05-18 Marcus Brinkmann + + * gpgme.texi (Encrypting a Plaintext): Document + GPGME_ENCRYPT_NO_ENCRYPT_TO. + +2009-05-05 Marcus Brinkmann + + * gpgme.texi (Engine Information): Replace path by file_name. + +2008-11-28 Werner Koch + + * gpgme.texi (Listing Keys): Change description of the return + value to match the code. Spotted by Colin Leroy. + +2008-10-15 Werner Koch + + * uiserver.texi (Miscellaneous UI Server Commands): Add option + --protocol to the SENDER command. + +2008-07-17 Werner Koch + + * module-overview.sk: New. + +2008-07-04 Werner Koch + + * gpgme.texi (Algorithms): Add a hint on symmetric only encryption. + +2008-06-27 Marcus Brinkmann + + * gpgme.texi (Cancellation): Document gpgme_cancel_async. + +2008-06-25 Werner Koch + + * gpgme.texi (Listing Keys): Updated example to the current API. + Noted by Nico Schottelius. + +2008-06-05 Werner Koch + + * uiserver.texi (Miscellaneous UI Server Commands): Describe + START_CONFDIALOG. + +2008-06-04 Werner Koch + + * gpgme.texi: Use @copying command. Change license to + GPLv3. Include protocol specis from GpgOL and GPGEx. Minor + cleanups. + +2008-03-11 Marcus Brinkmann + + * gpgme.texi (File Based Data Buffers): Document the need for + blocking operations. + (Callback Based Data Buffers): Likewise. + +2008-03-05 Marcus Brinkmann + + * gpgme.texi (Library Version Check): Rename snippet function to + init_gpgme. + (I/O Callback Example): Call it here. + +2008-01-28 Marcus Brinkmann + + * gpgme.texi: Document that data encoding affects some output data + objects now. + +2007-09-27 Marcus Brinkmann + + * gpgme.texi (Protocols and Engines): Document GPGME_PROTOCOL_UNKNOWN. + +2007-09-11 Werner Koch + + * gpgme.texi (I/O Callback Example): Typo fix. + +2007-08-07 Werner Koch + + * gpgme.texi (Verify): Describe chain_model. + +2007-07-12 Werner Koch + + * gpgme.texi (Library Version Check): Add remark that the socket + layer will get initialized. + +2007-06-05 Marcus Brinkmann + + * gpgme.texi (Advanced Key Editing): New section. + +2007-05-21 Werner Koch + + * Makefile.am (online): New target. + +2007-05-18 Marcus Brinkmann + + * gpgme.texi (Error Strings): Fix documentation of + gpgme_strerror_r. + +2006-11-01 Moritz Schulte + + * gpgme.texi (Data Buffer I/O Operations): Fixed entry for + gpgme_data_seek: OFFSET is not a pointer; some s/whence/offset/. + +2006-09-25 Marcus Brinkmann + + * gpgme.texi (Destroying Data Buffers): Clarify that + gpgme_data_release_and_get_mem destroys DH unconditionally. + +2005-03-24 Marcus Brinkmann + + * gpgme.texi (Library Version Check): Make example code compatible + to W32 systems. + +2006-06-21 Marcus Brinkmann + + * gpgme.texi (Passphrase Callback): Fix inverted condition in + description. + +2005-12-20 Werner Koch + + * gpgme.texi (Verify): Document pka_trust. + +2005-12-06 Werner Koch + + * gpgme.texi (Key Management): Updated to match the fixes for + subkey fingerprints and theg secret flag. + +2005-10-06 Marcus Brinkmann + + * gpgme.texi (Destroying Data Buffers): Document gpgme_free. + +2005-10-02 Marcus Brinkmann + + * gpgme.texi (Key Management): Add the new member notations of + gpgme_sig_key_t. + (Key Listing Mode): Document GPGME_KEYLIST_MODE_SIG_NOTATIONS. + +2005-10-01 Marcus Brinkmann + + * gpgme.texi: Enclose all return parameters of deftypefuns in + curly brackets. + + * gpgme.texi (Signature Notation Data): New section. + (Verify): Added more about the notation data structure. + +2005-09-30 Marcus Brinkmann + + * gpgme.texi (Data Buffer I/O Operations, Data Buffer Meta-Data): + New subsections. + + * gpgme.texi: Replace plaintext_filename with file_name. + + * gpgme.texi (Key Management): Document is_qualified. + +2005-07-27 Marcus Brinkmann + + * gpgme.texi (Decrypt): Add plaintext_filename to + gpgme_decrypt_result_t. + (Verify): Likewise for gpgme_verify_result_t. + +2005-06-03 Marcus Brinkmann + + * gpgme.texi (Verify): Add information about new fields in + gpgme_signature_t. + + * gpgme.texi (Decrypt): Add gpgme_recipient_t. + +2005-05-28 Marcus Brinkmann + + * gpgme.texi (Key Listing Mode): Fix return type of + gpgme_set_keylist_mode. + Reported by "Sergio" . + +2005-04-28 Marcus Brinkmann + + * gpgme.texi (Included Certificates): Document + GPGME_INCLUDE_CERTS_DEFAULT. + +2005-01-12 Marcus Brinkmann + + * gpgme.texi (Engine Configuration): New section. + (Crypto Engine): New subsection. + +2004-12-07 Marcus Brinkmann + + * lesser.texi (Library Copying): Change from @appendixsec to + @appendix. + * gpgme.texi (Features): Change reference to GPL to one to LGPL. + + * Makefile.am: Change license to LGPL. + (gpgme_TEXINFOS): Replace gpl.texi with lesser.texi. + + * gpgme.texi: Change license to LGPL (also for documentation of + GPGME's license). + * lesser.texi: New file. + * gpl.texi: File removed. + + * gpgme.texi (Creating Contexts): Fix cut&paste error. Reported + by Noel Torres . + +2004-09-30 Marcus Brinkmann + + * Makefile.am (gpgme_TEXINFOS): Remove fdl.texi. + * gpgme.texi: Do not include fdl.texi. Change license to GPL. + * fdl.texi: File removed. + +2004-09-29 Marcus Brinkmann + + * gpgme.texi (Key Management): Change type of keylist_mode in + gpgme_key_t to gpgme_keylist_mode_t. + +2004-09-28 Marcus Brinkmann + + * gpgme.texi (Passphrase Callback): Fix last change. + +2004-09-27 Marcus Brinkmann + + * gpgme.texi (Passphrase Callback): Document + GPG_ERR_NOT_IMPLEMENTED. + + * gpgme.texi: Update copyright year for tex version. + +2004-07-29 Moritz Schulte + + * gpgme.texi (Verify): Fix gpgme_get_key example (ancient + force_update argument was still there). + +2004-06-08 Marcus Brinkmann + + * gpgme.texi (Listing Keys): Elaborate on the length restrictions + on search patterns. + + * gpgme.texi (Decrypt and Verify): Document the NO_DATA error + code. + (Verify): Document the relationship between gpgme_op_verify_result + and the decrypt and verify operations. + +2004-05-21 Marcus Brinkmann + + * gpgme.text (Verify): Document GPG_ERR_CERT_REVOKED status. + + * gpgme.texi (Decrypt): Add note about new field wrong_key_usage + of gpgme_decrypt_result_t. + + * gpgme.texi (Key Management): Add note about new field + keylist_mode of gpgme_key_t. + +2004-04-29 Marcus Brinkmann + + * gpgme.texi (Verify): Correct type of member wrong_key_usage. + +2004-03-29 Moritz Schulte + + * gpgme.texi (Verify): Fix type of gpgme_op_verify_result. + * gpgme.texi (Key Listing Mode): Typo fix. + +2004-03-23 Marcus Brinkmann + + * gpgme.texi (Library Version Check): Fix the instruction when to + set the locale. + +2004-03-03 Marcus Brinkmann + + * gpgme.texi (I/O Callback Example Qt): New section by Marc Mutz. + +2004-02-24 Marcus Brinkmann + + * gpgme.texi (cancellation): New section. + +2004-02-17 Werner Koch + + * gpgme.texi (Key Listing Mode): Doc KEYLIST_MODE_VALIDATE. + +2004-02-06 Moritz Schulte + + * gpgme.texi: A couple of small fixes regarding the Largfile + Support section. + +2004-02-01 Marcus Brinkmann + + * gpgme.texi (Largefile Support): New section. + +2004-01-13 Marcus Brinkmann + + * gpgme.texi (Key Management): Fix exportable field. + +2003-12-25 Marcus Brinkmann + + * gpgme.texi (Key Management): Rename member class in + gpgme_key_sig_t to sig_class. + (Creating a Signature): Likewise for gpgme_signature_t. + +2003-12-23 Moritz Schulte + + * gpgme.texi (Listing Keys): Minor clarification for + gpgme_get_key. + +2003-10-06 Marcus Brinkmann + + * gpgme.texi (Signal Handling): New section. + +2003-09-14 Marcus Brinkmann + + * gpgme.texi (Multi Threading): Correct documentation on memory + synchronization requirement. + + * gpgme.texi (Locale): New section. + (Multi Threading): Set locale in example. + +2003-09-13 Marcus Brinkmann + + * gpgme.texi (Error Strings): Add gpgme_strerror_r. + +2003-09-13 Marcus Brinkmann + + * gpgme.texi (Multi Threading): Update documentation. + +2003-09-03 Marcus Brinkmann + + * gpgme.texi (Header): We don't use the assuan namespace anymore. + Document new thread options. + +2003-08-14 Marcus Brinkmann + + * gpgme.texi (Creating a Signature): Change type of member class + to unsigned int. + +2003-08-04 Marcus Brinkmann + + * gpgme.texi (Verify): Get error code from SIG->status in the code + for gpgme_get_sig_status. + +2003-07-31 Marcus Brinkmann + + * gpgme.texi (Key Management): Add can_authenticate flag. + + * gpgme.texi (Listing Keys): Document GPG_ERR_AMBIGUOUS_NAME for + gpgme_get_key. + +2003-07-29 Marcus Brinkmann + + * Makefile.am (EXTRA_DIST): Remove variable. + + * gpgme.texi (Encrypting a Plaintext): Bad passphrase is only + possible with symmetric encryption, change the wording to reflect + that. + + * gpgme.texi (Creating a Signature): Document + GPG_ERR_UNUSABLE_SECKEY. + + * gpgme.texi (Encrypting a Plaintext): Mention encrypt and sign + operations in result function. + (Creating a Signature): Likewise. + +2003-07-23 Marcus Brinkmann + + * gpgme.texi (Key Listing Mode): Remove word duplication. + (Listing Keys): Remove mentioning of force argument. + (Verify): Don't mention r_stat. Fix some typos. + (Decrypt and Verify): Correct info how to get the result. Don't + mention r_stat. + (Manipulating Data Buffers): Fix documentation of return value. + (Listing Keys): Update examples. + (Decrypt): Result might also be available when operation failed. + (Verify): Result might also be available when operation failed. + All spotted by Stéphane Corthésy. + +2003-07-22 Marcus Brinkmann + + * gpgme.texi (Error Sources): Fix cut and paste error. + +2003-07-09 Marcus Brinkmann + + * gpgme.texi (Key Management): Clarify difference between can_sign + and can_certify. + (Information About Keys): Likewise for GPGME_ATTR_CAN_SIGN and + GPGME_ATTR_CAN_CERTIFY. + +2003-07-08 Marcus Brinkmann + + * gpgme.texi (Progress Meter Callback): Change return type of + gpgme_progress_cb_t to void. + +2003-06-22 Marcus Brinkmann + + * gpgme.texi: Add 2003 to copyright notice. + + * gpgme.texi (Header): Fix name space documentation on + libgpg-error. + +2003-06-22 Marcus Brinkmann + + * gpgme.texi (Multi Threading): Remove reference to + gpgme_recipients_t. + +2003-06-06 Marcus Brinkmann + + * gpgme.texi (Crypto Operations): Rename gpgme_invalid_user_id_t + to gpgme_invalid_key_t. + +2003-06-06 Marcus Brinkmann + + * gpgme.texi: Change error codes to GPG_ERR_* variants. + (Error Handling): Rewritten. + +2003-05-29 Marcus Brinkmann + + * gpgme.texi (Exporting Keys): Change and document prototypes. + Add new gpgme_op_export_ext and gpgme_op_export_ext_start + variants. + (Selecting Recipients): Section removed. + (Encrypting a Plaintext): Change prototypes and document the + changes. + +2003-05-28 Marcus Brinkmann + + * gpgme.texi (Exporting Keys): Change argument type from + gpgme_recipient_t to gpgme_user_id_t. + (Encrypting a Plaintext): Likewise. + (Selecting Recipients): Rewritten. + +2003-05-27 Marcus Brinkmann + + * gpgme.texi (Protocol Selection): Do not use @acronym in @node + because that breaks texi2dvi. + + * gpgme.texi (Passphrase Callback): Document new prototype. + +2003-05-18 Marcus Brinkmann + + * gpgme.texi (Header): Remove Gpgme as namespace prefix. Add + _GPGME to namespace prefix. + * gpgme.texi (Multi Threading): Add note about link order. + +2003-05-04 Marcus Brinkmann + + * gpgme.texi (Listing Keys): Document what happens if key is not + found. + + * gpgme.texi (Importing Keys): Fix cut and paste error. + +2003-04-30 Marcus Brinkmann + + * gpgme.texi (Encrypting a Plaintext): Remove reference to + gpgme_get_op_info. + (Detailed Results): Subsection removed. + + * gpgme.texi (Key Listing Mode): Add GPGME_KEYLIST_MODE_SIGS. + (Manipulating Keys): Add obsoleteness note. + (Key Signatures): Likewise. + (Information About Keys): Likewise. + (Key Management): Add new data types GpgmeSubkey, GpgmeKeySig, + GpgmeUserID, and all the information about GpgmeKey. + +2003-04-29 Marcus Brinkmann + + * gpgme.texi (Listing Keys): Remove force_update argument from + gpgme_get_key. + + * gpgme.texi (Trust Item Management): Add data members of + GpgmeTrustItem type. + (Information About Trust Items): Add note about obsoleteness. + (Manipulating Trust Items): Add gpgme_trust_item_ref and + gpgme_trust_item_unref. + +2003-04-28 Marcus Brinkmann + + * gpgme.texi (Verify): Rewritten to take into account new and + deprecated functions and data types. + + * gpgme.texi (Decrypt): Descript gpgme_op_decrypt_result and + GpgmeDecryptResult. + +2003-04-27 Marcus Brinkmann + + * gpgme.texi (Encrypting a Plaintext): Add info about + GpgmeEncryptResult and gpgme_op_encrypt_result. + + * gpgme.texi (Creating a Signature): Add info about + GpgmeNewSignature, GpgmeSignResult and gpgme_op_sign_result. + (Crypto Operations): Add GpgmeInvalidUserID. + (Algorithms): New chapter. + + * gpgme.texi (Deleting Keys): Document + GPGME_Ambiguous_Specification. + (Error Values): Remove GPGME_Invalid_Type and GPGME_Invalid_Mode. + Add GPGME_Unknown_Reason, GPGME_Not_Found, + GPGME_Ambiguous_Specification, GPGME_Wrong_Key_Usage, + GPGME_Key_Revoked, GPGME_Key_Expired, GPGME_No_CRL_Known, + GPGME_CRL_Too_Old, GPGME_Policy_Mismatch, GPGME_No_Secret_Key, + GPGME_Key_Not_Trusted, GPGME_Issuer_Missing, GPGME_Chain_Too_Long, + GPGME_Unsupported_Algorithm, GPGME_Sig_Expired, + GPGME_Bad_Signature, GPGME_No_Public_Key. + +2003-04-25 Marcus Brinkmann + + * gpgme.texi (Importing Keys): Change GPGME_IMPORT_PRIVATE to + GPGME_IMPORT_SECRET. + + * gpgme.texi (Importing Keys): Remove note about gpgme_get_op_info. + (Detailed Results): Remove note about import. + + * gpgme.texi (Importing Keys): Add documentation for + GpgmeImportStatus, GpgmeImportResult and gpgme_op_import_result. + + * gpgme.texi (Generating Keys): Fix documentation of public and + secret arguments. + +2003-04-24 Marcus Brinkmann + + * gpgme.texi (Generating Keys): Document changed gpgme_op_genkey + and new gpgme_op_genkey_result function. Document + GpgmeGenKeyResult data type. + + * gpgme.texi (Error Values): Rename GPGME_No_Passphrase to + GPGME_Bad_Passphrase. + * gpgme.texi (Decrypt): Likewise. + (Decrypt and Verify): Likewise. + (Creating a Signature): Likewise. + (Encrypting a Plaintext): Likewise. + + * gpgme.texi (Error Values): Rename GPGME_No_Recipients to + GPGME_No_UserID and GPGME_Invalid_Recipient to + GPGME_Invalid_UserID. + (Encrypting a Plaintext): Likewise. + + * gpgme.texi (Error Values): Remove GPGME_Busy and GPGME_No_Request. + (Listing Keys): Likewise. + (Listing Trust Items): Likewise. + +2003-02-06 Marcus Brinkmann + + * gpgme.texi (Cancelling an Operation): Removed. + (Passphrase Callback): Document new type for GpgmePassphraseCb. + +2003-01-30 Marcus Brinkmann + + * gpgme.texi (Engine Information): Rename member part to + file_name. + + * gpgme.texi (Protocols and Engines): Document + gpgme_get_protocol_name. + + * gpgme.texi (Engine Information): Rewritten. + +2003-01-29 Marcus Brinkmann + + * gpgme.texi (I/O Callback Interface): Document new even + GPGME_EVENT_START. + (Waiting For Completion): Document new possible return values. + (I/O Callback Interface): Document return type of GpgmeIOCb. + +2003-01-29 Marcus Brinkmann + + * gpgme.texi (Hooking Up Into Idle Time): Section removed. + +2002-12-24 Marcus Brinkmann + + * gpgme.texi (Verify): Drop R_STAT argument in gpgme_op_verify. + * gpgme.texi (Decrypt and Verify): Likewise for + gpgme_op_decrypt_verify. + +2002-12-23 Marcus Brinkmann + + * gpgme.texi (Information About Keys): Document that + GPGME_ATTR_IS_SECRET is not representable as a string anymore. + +2002-12-22 Marcus Brinkmann + + * gpgme.texi (Key Signatures): New section. + (Listing Keys): Add gpgme_get_key. + +2002-12-06 Marcus Brinkmann + + * gpgme.texi (Memory Based Data Buffers): New subsection. + (File Based Data Buffers): Likewise. + (Callback Based Data Buffers): Likewise. + (Manipulating Data Buffers): Update interfaces. Add + gpgme_data_seek. + * gpgme.texi (Engine Version Check): Remove gpgme_check_engine. + +2002-11-21 Marcus Brinkmann + + * gpgme.texi (Verify): Document the new interface. + +2002-11-19 Marcus Brinkmann + + * gpgme.texi (Generating Keys): Document new argument to + gpgme_op_genkey. + +2002-11-05 Marcus Brinkmann + + * gpgme.texi (Verify): Fix prototype of gpgme_get_sig_key. + Reported by Miguel Coca . + +2002-08-30 Marcus Brinkmann + + * gpgme.texi (Selecting Signers): Fix reference count. + +2002-08-21 Marcus Brinkmann + + * gpgme.texi (Header): Document name space. + +2002-08-20 Marcus Brinkmann + + * gpgme.texi (Importing Keys): Document gpgme_op_import_ext. + + * gpgme.texi (Importing Keys): Undocument EOF. + +2002-08-14 Werner Koch + + * gpgme.texi (Information About Keys): Changed GPGME_ATTR_TYPE. + +2002-07-25 Marcus Brinkmann + + * gpgme.texi (Deleting Keys): Say that secret keys might not be + deleted. + +2002-07-25 Marcus Brinkmann + + * gpgme.texi (Information About Keys): Document (badly) the new + key attributes. + + * gpgme.texi (Manipulating Data Buffers): Mention that backend + tries to detect encoding automatically. + +2002-07-03 Marcus Brinkmann + + * gpgme.texi (Run Control): Update this section. + (Waiting For Completion): Likewise for this subsection. + (Cancelling an Operation): Likewise for this subsection. + (Using External Event Loops): New subsection with several + subsubsections. + +2002-06-28 Marcus Brinkmann + + * gpgme.texi (Multi Threading): Remove item about the need to + synchronize anything against gpgme_wait (except gpgme_wait + itself). + +2002-06-27 Marcus Brinkmann + + * gpgme.texi (Information About Keys): Fix documentation for IDX. + (Information About Trust Items): Likewise. + +2002-06-26 Werner Koch + + * gpgme.texi (Importing Keys): Document the return value -1 of + gpgme_op_import. + +2002-06-20 Werner Koch + + * gpgme.texi (Verify): Explain the new whatidx variable. + +2002-06-10 Werner Koch + + * gpgme.texi (Verify): Document attribute GPGME_ATTR_ERRTOK. + +2002-06-04 Marcus Brinkmann + + * gpgme.texi (Multi Threading): Document new autodetection. + +2002-06-04 Marcus Brinkmann + + * Makefile.am (DISTCLEANFILES): New variable. + +2002-05-26 Marcus Brinkmann + + * gpgme.texi: Some typographical correctons throughout. + +2002-05-09 Marcus Brinkmann + + * gpgme.texi (Using Automake): New section. + +2002-05-09 Marcus Brinkmann + + * gpgme.texi (Multi Threading): Escape { and }. + +2002-05-09 Marcus Brinkmann + + * gpgme.texi (Overview): Replace note about thread-safeness. + (Multi Threading): New section. + +2002-05-03 Werner Koch + + * gpgme.texi (Manipulating Data Buffers): Changed some data types + to void*. + (Protocol Selection): Added gpgme_get_protocol. + (Verify): Updated to include the new attribute fucntions and + status codes. + +2002-04-27 Werner Koch + + * gpgme.texi (Manipulating Data Buffers): New type GpgmeDataEncoding. + +2002-04-23 Marcus Brinkmann + + * gpgme.texi (Passphrase Callback): Document that either return + argument can be NULL. + (Progress Meter Callback): Likewise. + +2002-04-22 Marcus Brinkmann + + * gpgme.texi (Passphrase Callback): Fix small typo. Document the + new function gpgme_get_passphrase_cb. + (Progress Meter Callback): Document the new function + gpgme_get_progress_cb. + +2002-04-16 Marcus Brinkmann + + * gpgme.texi (Creating a Signature): Fix function name. Reported + by Wichert Ackerman . + +2002-03-29 Marcus Brinkmann + + * gpgme.texi (direntry): End index entry with a full stop. + Patch submitted by Jose Carlos Garcia Sogo . + +2002-03-17 Marcus Brinkmann + + * gpgme.texi (Detailed Results): Fix syntax error in last change. + +2002-03-08 Werner Koch + + * gpgme.texi (Detailed Results): Import does also return info. + +2002-03-06 Marcus Brinkmann + + * gpgme.texi (Encrypting a Plaintext): Document symmetric + encryption. + +2002-03-06 Marcus Brinkmann + + * gpgme.texi (Error Strings): Add example. + * gpgme.texi (Listing Keys): Likewise. + +2002-03-03 Marcus Brinkmann + + * gpgme.texi (Information About Keys): Document GPGME_ATTR_EXPIRE. + +2002-03-03 Marcus Brinkmann + + * gpgme.texi (Verify): Document verification of normal and + cleartext signatures. + +2002-02-27 Marcus Brinkmann + + * gpgme.texi (Listing Keys): Document gpgme_op_keylist_ext_start. + +2002-02-27 Marcus Brinkmann + + * gpgme.texi (Encrypting a Plaintext): Document + GPGME_Invalid_Recipients. + (Error Values): Likewise. + +2002-02-26 Marcus Brinkmann + + * gpgme.texi (Encrypting a Plaintext): Document + gpgme_op_encrypt_sign and gpgme_op_encrypt_sign_start. + +2002-02-25 Marcus Brinkmann + + * gpgme.texi (Creating a Signature): Add a note about + certificates to include. + (Included Certificates): New section. + +2002-02-09 Marcus Brinkmann + + * gpgme.texi (Detailed Results): Remove literal tags. + (Generating Keys): Update documentation. + + * gpgme.texi (Generating Keys): Fix syntax error. + +2002-02-06 Marcus Brinkmann + + * gpgme.texi (Waiting For Completion): Adjust doc to changes in + the code. + +2002-02-06 Marcus Brinkmann + + * gpgme.texi (Key Listing Mode): Update documentation. + +2002-01-31 Marcus Brinkmann + + * gpgme.texi (Generating Keys): Document error at creation + failure. + +2002-01-30 Marcus Brinkmann + + * gpgme.texi (Deleting Keys): Document new error values. + +2002-01-30 Marcus Brinkmann + + * gpgme.texi (Importing Keys): Add reference to gpgme_get_op_info. + +2002-01-30 Marcus Brinkmann + + * gpgme.texi: Some spell checking. + +2002-01-30 Marcus Brinkmann + + * gpgme.texi: Add all the gpgme_op_*_start functions. + Fill the concept index with many, many entries. + +2002-01-29 Marcus Brinkmann + + * gpgme.texi (Run Control): New section. + (Verify): Docuent gpgme_get_notation. + (More Information): New section describing gpgme_get_op_info. + +2002-01-22 Marcus Brinkmann + + * gpgme.texi (Passphrase callback): Change GpgmePassphraseCb's + R_HD type from void* to void**. + +2002-01-22 Marcus Brinkmann + + * gpgme.texi (Creating data buffers): Change + gpgme_data_new_from_filepart's LENGTH type from off_t to size_t. + +2002-01-22 Marcus Brinkmann + + * gpgme.texi (Generating keys): New subsection. + (Exporting keys): Likewise. + (Importing keys): Likewise. + (Deleting keys): Likewise. + +2002-01-16 Marcus Brinkmann + + * gpgme.texi: g10Code -> g10 Code + + * gpgme.texi (Top): Complete detailmenu. + + * gpgme.texi: Convert embarassing cruft to the real thing. + +2002-01-16 Marcus Brinkmann + + * ChangeLog: New file. + * gpgme.texi: Likewise. + * gpl.texi: Likewise. + * fdl.texi: Likewise. + * Makefile.am (info_TEXINFOS): New variable. + (gpgme_TEXINFOS): Likewise. + + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, + 2011 g10 Code GmbH + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/doc/HACKING b/doc/HACKING new file mode 100644 index 00000000..6149d25f --- /dev/null +++ b/doc/HACKING @@ -0,0 +1,28 @@ +# HACKING -*- org -*- +#+TITLE: Hacking notes for GPGME +#+STARTUP: showall + +* No more ChangeLog files + + Do not modify any of the ChangeLog files in GPGME. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist" time. As such, there are strict requirements on the + form of the commit log messages. The old ChangeLog files have all + be renamed to ChangeLog-2011 + + +* Commit log requirements + + Your commit log should always start with a one-line summary, the + second line should be blank, and the remaining lines are usually + ChangeLog-style entries for all affected files. However, it's fine + -- even recommended -- to write a few lines of prose describing the + change, when the summary and ChangeLog entries don't give enough of + the big picture. Omit the leading TABs that you're used to seeing + in a "real" ChangeLog file, but keep the maximum line length at 72 + or smaller, so that the generated ChangeLog lines, each with its + leading TAB, will not exceed 80 columns. + + Note that ./autogen.sh installs a git hook to do some basic syntax + checking on the commit log message. diff --git a/doc/Makefile.am b/doc/Makefile.am index 212216dc..93afc062 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,18 +1,18 @@ # doc - Automake template # Copyright (C) 2001, 2004 g10 Code GmbH -# +# # This file is part of GPGME. -# +# # GPGME 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 2.1 of the # License, or (at your option) any later version. -# +# # GPGME 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 program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA @@ -21,7 +21,7 @@ DISTCLEANFILES = gpgme.tmp -EXTRA_DIST = module-overview.sk +EXTRA_DIST = module-overview.sk HACKING ChangeLog-2011 info_TEXINFOS = gpgme.texi gpgme_TEXINFOS = uiserver.texi lesser.texi gpl.texi diff --git a/lang/cl/ChangeLog b/lang/cl/ChangeLog deleted file mode 100644 index 5aadfebc..00000000 --- a/lang/cl/ChangeLog +++ /dev/null @@ -1,34 +0,0 @@ -2008-11-08 Moritz - - * gpgme.lisp (size-t): Wrong call to defctype: function accepts - optional, not keyword argument. - (ssize-t): Likewise. - (off-t): Likewise. - (gpgme-data-t, gpgme-ctx-t): Likewise. - (gpgme-error-t): Likewise. - (gpgme-error-no-signal-t): Likewise. - (gpgme-err-code-t): Likewise. - (gpgme-err-source-t): Likewise. - (gpgme-sig-notation-t, gpgme-engine-info-t): Likewise. - (gpgme-subkey-t): Likewise. - (gpgme-key-sig-t): Likewise. - (gpgme-user-id-t): Likewise. - (gpgme-key-t): Likewise. - (gpgme-data-cbs-t): Likewise. - (gpgme-invalid-key-t): Likewise. - (gpgme-op-encrypt-result-t): Likewise. - (gpgme-recipient-t): Likewise. - (gpgme-op-decrypt-result-t): Likewise. - (gpgme-new-signature-t): Likewise. - (gpgme-op-sign-result-t): Likewise. - (gpgme-signature-t): Likewise. - (gpgme-op-verify-result-t): Likewise. - (gpgme-import-status-t): Likewise. - (gpgme-op-import-result-t): Likewise. - (gpgme-op-genkey-result-t): Likewise. - (gpgme-op-keylist-result-t): Likewise. - -2006-07-06 Marcus Brinkmann - - * Initial release. - diff --git a/lang/cl/ChangeLog-2011 b/lang/cl/ChangeLog-2011 new file mode 100644 index 00000000..cbd21be0 --- /dev/null +++ b/lang/cl/ChangeLog-2011 @@ -0,0 +1,50 @@ +2011-12-02 Werner Koch + + NB: ChangeLog files are no longer manually maintained. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist". See doc/HACKING for details. + +2008-11-08 Moritz + + * gpgme.lisp (size-t): Wrong call to defctype: function accepts + optional, not keyword argument. + (ssize-t): Likewise. + (off-t): Likewise. + (gpgme-data-t, gpgme-ctx-t): Likewise. + (gpgme-error-t): Likewise. + (gpgme-error-no-signal-t): Likewise. + (gpgme-err-code-t): Likewise. + (gpgme-err-source-t): Likewise. + (gpgme-sig-notation-t, gpgme-engine-info-t): Likewise. + (gpgme-subkey-t): Likewise. + (gpgme-key-sig-t): Likewise. + (gpgme-user-id-t): Likewise. + (gpgme-key-t): Likewise. + (gpgme-data-cbs-t): Likewise. + (gpgme-invalid-key-t): Likewise. + (gpgme-op-encrypt-result-t): Likewise. + (gpgme-recipient-t): Likewise. + (gpgme-op-decrypt-result-t): Likewise. + (gpgme-new-signature-t): Likewise. + (gpgme-op-sign-result-t): Likewise. + (gpgme-signature-t): Likewise. + (gpgme-op-verify-result-t): Likewise. + (gpgme-import-status-t): Likewise. + (gpgme-op-import-result-t): Likewise. + (gpgme-op-genkey-result-t): Likewise. + (gpgme-op-keylist-result-t): Likewise. + +2006-07-06 Marcus Brinkmann + + * Initial release. + + Copyright (C) 2006, 2008 g10 Code GmbH + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/lang/cl/Makefile.am b/lang/cl/Makefile.am index e0064baa..553926e2 100644 --- a/lang/cl/Makefile.am +++ b/lang/cl/Makefile.am @@ -1,18 +1,18 @@ # Makefile.am for GPGME-CL. # Copyright (C) 2003, 2006 g10 Code GmbH -# +# # This file is part of GPGME-CL. -# +# # GPGME-CL 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 2 of the License, or # (at your option) any later version. -# +# # GPGME-CL 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 General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA @@ -24,6 +24,4 @@ clfiles = gpgme.asd gpgme-package.lisp gpgme.lisp clfilesdir = $(datadir)/common-lisp/source/gpgme dist_clfiles_DATA = $(clfiles) -EXTRA_DIST = README - - +EXTRA_DIST = README ChangeLog-2011 diff --git a/m4/ChangeLog b/m4/ChangeLog deleted file mode 100644 index 1a0cd1c2..00000000 --- a/m4/ChangeLog +++ /dev/null @@ -1,47 +0,0 @@ -2011-04-06 Werner Koch - - * gpg-error.m4: Update from current libgpg-error repo. - -2010-05-07 Werner Koch - - * libassuan.m4: Update from libassuan svn. - -2009-11-10 Marcus Brinkmann - - * libassuan.m4: Fix LIBASSUAN_VERSION. - -2006-06-08 Marcus Brinkmann - - * pth.m4: Add --all to pth-config invocation. - -2006-02-22 Marcus Brinkmann - - * pth.m4: Fix code generation (required for Max OS X). - Submitted by Emanuele Giaquinta . - -2005-11-17 Marcus Brinkmann - - * glib-2.0.m4: New file. - -2004-12-28 Werner Koch - - * pth.m4: Changed quoting for use with automake 1.9. - -2004-09-14 Marcus Brinkmann - - * pth.m4: Disable _ac_pth_line, and don't fail if Pth is not - found. - - * glibc21.m4: New file. - * gpg-error.m4: New file. - * pth.m4: New file. - - Copyright 2004 g10 Code GmbH - - This file is free software; as a special exception the author gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. - - This file is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY, to the extent permitted by law; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/m4/ChangeLog-2011 b/m4/ChangeLog-2011 new file mode 100644 index 00000000..c03de7bf --- /dev/null +++ b/m4/ChangeLog-2011 @@ -0,0 +1,55 @@ +2011-12-02 Werner Koch + + NB: ChangeLog files are no longer manually maintained. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist". See doc/HACKING for details. + +2011-04-06 Werner Koch + + * gpg-error.m4: Update from current libgpg-error repo. + +2010-05-07 Werner Koch + + * libassuan.m4: Update from libassuan svn. + +2009-11-10 Marcus Brinkmann + + * libassuan.m4: Fix LIBASSUAN_VERSION. + +2006-06-08 Marcus Brinkmann + + * pth.m4: Add --all to pth-config invocation. + +2006-02-22 Marcus Brinkmann + + * pth.m4: Fix code generation (required for Max OS X). + Submitted by Emanuele Giaquinta . + +2005-11-17 Marcus Brinkmann + + * glib-2.0.m4: New file. + +2004-12-28 Werner Koch + + * pth.m4: Changed quoting for use with automake 1.9. + +2004-09-14 Marcus Brinkmann + + * pth.m4: Disable _ac_pth_line, and don't fail if Pth is not + found. + + * glibc21.m4: New file. + * gpg-error.m4: New file. + * pth.m4: New file. + + + Copyright (C) 2004, 2005, 2009, 2010, 2011 g10 Code GmbH + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/src/ChangeLog b/src/ChangeLog deleted file mode 100644 index e53b226b..00000000 --- a/src/ChangeLog +++ /dev/null @@ -1,7140 +0,0 @@ -2011-10-25 Marcus Brinkmann - - * Makefile.am: Remove build rules for libgpgme-pth. - * gpgme.m4: Remove support for libgpgme-pth. - -2011-05-26 Marcus Brinkmann - - * decrypt.c (gpgme_op_decrypt_start, gpgme_op_decrypt): Check CTX. - * decrypt-verify.c (gpgme_op_decrypt_verify_start) - (gpgme_op_decrypt_verify): Likewise. - * delete.c (gpgme_op_delete_start, gpgme_op_delete): Likewise. - * edit.c (gpgme_op_edit_start, gpgme_op_edit) - (gpgme_op_card_edit_start, gpgme_op_card_edit): Likewise. - * encrypt.c (gpgme_op_encrypt_start, gpgme_op_encrypt): Likewise. - * encrypt-sign.c (gpgme_op_encrypt_sign_start) - (gpgme_op_encrypt_sign): Likewise. - * export.c (gpgme_op_export_start, gpgme_op_export) - (gpgme_op_export_ext_start, gpgme_op_export_ext) - (gpgme_op_export_keys_start, gpgme_op_export_keys): Likewise. - * genkey.c (gpgme_op_genkey_start, gpgme_op_genkey): Likewise. - * getauditlog.c (gpgme_op_getauditlog_start) - (gpgme_op_getauditlog): Likewise. - * gpgconf.c (gpgme_op_conf_load, gpgme_op_conf_save): Likewise. - * import.c (gpgme_op_import_start, gpgme_op_import_keys_start) - (gpgme_op_import_keys, gpgme_op_import): Likewise. - * keylist.c (gpgme_op_keylist_start, gpgme_op_keylist_ext_start): Likewise. - * opassuan.c (gpgme_op_assuan_transact_start) - (gpgme_op_assuan_transact_ext): Likewise. - * passwd.c (gpgme_op_passwd_start, gpgme_op_passwd): Likewise. - * sign.c (gpgme_op_sign_start, gpgme_op_sign): Likewise. - * trustlist.c (gpgme_op_trustlist_start) - (gpgme_op_trustlist_next): Likewise. - * verify.c (gpgme_op_verify_start, gpgme_get_sig_key): Likewise. - * op-support.c (_gpgme_op_data_lookup): Likewise. - * vfs-create.c (gpgme_op_vfs_transact, gpgme_op_vfs_create): Likewise. - * vfs-mount.c (gpgme_op_vfs_mount, gpgme_op_vfs_transact): Likewise. - * gpgme.c (gpgme_set_protocol) - (gpgme_set_sub_protocol) - (gpgme_set_armor, gpgme_set_include_certs) - (gpgme_set_keylist_mode, gpgme_set_passphrase_cb) - (gpgme_set_progress_cb, gpgme_set_io_cbs, gpgme_set_locale) - (gpgme_ctx_set_engine_info, gpgme_sig_notation_clear): Likewise. - * gpgme.c (gpgme_new): Check for valid R_CTX. - (gpgme_cancel, gpgme_cancel_async, gpgme_release): Likewise. - -2011-04-06 Werner Koch - - * gpgme-config.in: Add option --host. Change options --cflags and - --libs to collapse duplicate include and lib dirs. Try to put - extra libs at the end. - - * gpgme.h.in: Use INSERT__TYPEDEFS_FOR_GPGME_H to include platform - specific typedefs. - -2011-02-03 Werner Koch - - * extra-stati.h: New. - * mkstatus: Extend to also process extra-stati.h - * Makefile.am (main_sources): Add extra-stati.h - (status-table.h): Depend on extra-stati.h and adjust rule. - -2011-02-03 Marcus Brinkmann - - * w32-io.c (_gpgme_io_socket): Return fd, not res. - -2011-02-02 Marcus Brinkmann - - * assuan-support.c (my_socket, my_connect): New functions. - (_gpgme_assuan_system_hooks): Add my_Socket, my_connect. - * priv-io.h (_gpgme_io_socket): New prototype. - * w32-io.c (pid_to_handle, handle_to_oid, fd_to_handle): Remove macros. - (is_socket): Remove function. - (_gpgme_io_spawn) [HAVE_W32CE_SYSTEM]: Remove some dead code. - (_gpgme_io_spawn): Translate handles before DuplicateHandle them. - -2011-02-02 Marcus Brinkmann - - * w32-util.c (mkstemp): Don't use CreateFile instead of open (the - function is not used on Windows CE, and the callers were not - adjusted). - -2011-01-21 Marcus Brinkmann - - * engine-gpgconf.c (_gpgme_conf_opt_change): Fix the case that is - not self-assignment. - -2010-12-08 Werner Koch - - * gpgme-tool.c (strcpy_escaped_plus): New. - (DIM, xtoi_1, xtoi_2): New. - (cmd_keylist): Allow for multiple patterns. - -2010-11-23 Marcus Brinkmann - - * w32-io.c (create_reader, create_writer): Use small stack size on - Windows CE. - -2010-11-23 Marcus Brinkmann - - * gpgme.h.in (gpgme_conf_arg_new): Make VALUE arg const void *. - * gpgconf.c (_gpgme_conf_arg_new): Likewise. - (gpgme_conf_arg_new): Likewise. - * engine-gpgconf.c (_gpgme_conf_arg_new): Likewise. - (gpgconf_write): Remove debug hack. - -2010-11-19 Marcus Brinkmann - - * engine-gpgconf.c (_gpgme_conf_opt_change): Support - self-assignment. Requested by Marc Mutz. - -2010-11-17 Marcus Brinkmann - - * vasprintf.c (int_vasprintf) [HAVE_W32CE_SYSTEM]: Just use a - fixed size buffer, as va_copy is not easy to fake. - -2010-11-15 Marcus Brinkmann - - * w32-ce.h (strcasecmp, strdup) [_MSC_VER]: Define. - * genkey.c, passphrase.c: Include util.h. - - * w32-util.c (_gpgme_w32ce_get_debug_envvar): Fix return value. - -2010-11-15 Werner Koch - - * data-compat.c (gpgme_data_new_from_filepart) - (gpgme_data_new_from_file) [W32CE && _MSC_VER]: Return not - GPG_ERR_NOT_IMPLEMENTED. - - * w32-ce.h (HKEY_PERFORMANCE_DATA, HKEY_CURRENT_CONFIG, _IOLBF) - (abort) [_MSC_VER]: Provide these macros. - - * ath.h [W32CE && _MSC_VER]: Include winsock2.h. - - * ath.c (ath_read, ath_write) [W32CE && _MSC_VER]: Do not call - non-available functions. - -2010-11-04 Werner Koch - - * w32-ce.h [_MSC_VER && W32CE]: Undef leave. - * export.c: Include util.h so that we get the above undef. - - * memrchr.c: Remove. Used to be a replacement function required - by the formerly included assuan code. - -2010-11-03 Werner Koch - - * debug.c (_gpgme_debug) [W32CE]: Replace locatime by GetLocalTime. - - * signers.c (gpgme_signers_clear): Remove useless return. - Reported by Patrick Spendrin. - - * w32-util.c: s/__inline__/GPG_ERR_INLINE/ - - * setenv.c: Include string.h due to our strerror replacement. - - * w32-ce.h (access, bsearch): New macros. - * w32-ce.c (_gpgme_wince_access): New. - (RegQueryValueExA): Change DATA to a void*. - (_gpgme_wince_bsearch): New. Taken from glibc 2.6. - - Guard include of sys/stat.h and sys/types.h. - -2010-11-02 Werner Koch - - * data-fd.c (read, write, lseek) [W32CE && ! __MINGW32CE__]: New. - Taken from Pedro Alves Public Domain code. - - * w32-ce.h (SHGetSpecialFolderPath): Remove our defines and - prototypes. We use the system provided prototypes now. - * w32-ce.c: Include shlobj.h - (_WIN32_IE): Define to 0x0400 - (CreateFileA): New. - * w32-util.c: Explicitly include windows headers before util.h. - (_gpgme_w32ce_get_debug_envvar): Do not use wchar_t strings for - read_w32_registry_string. - (mkstemp): Use CreateFile instead of open. - - * w32-io.c (handle_to_fd, fd_tohandle): Add. We need them for W32. - * w32-util.c (_WIN32_IE): Define to 0x0400. - - * util.h [W32]: Include windows.h. - * w32-sema.c: Do not include windows.h directly. - * ath.c (ssize_t, pid_t)[_MSC_VER]: Add new types. - * gpgme.c (gpgme_result_ref, gpgme_result_unref): Do not use a - void pointer in pointer arithmetic. - * w32-util.c: Include util.h prior to ath.h. Don't include - windows.h directly. - (F_OK): Define if not defined. - * w32-ce.c: Include string.h. - (RegQueryValueExA): Use WINAPI modifier to match the declaration. - * vfs-create.c: Include string.h because under W32CE with MSC we - get a warning related to our strerror replacement. - * encrypt-sign.c: Include stdlib.h, string.h and errno.h. - * priv-io.h [W32CE]: Include w32-ce.h - * w32-ce.h: Include winsock2.h and ws2tcpip.h. - (_MSV_VER): Remove useless macro. - (pid_t): Add typedef. - - Guard all includes of unistd.h and sys/time.h. - -2010-10-28 Marcus Brinkmann - - * opassuan.c (gpgme_op_assuan_transact_ext): Fix uninitialized - value use. Reported by Marc Mutz. - -2010-10-07 Werner Koch - - * gpgme-tool.c (ARGP_ERR_UNKNOWN): Use EDEADLK if available. - - * w32-util.c (_gpgme_w32ce_get_debug_envvar) [W32CE]: New. - * debug.c (debug_init) [W32CE]: Use new function. - -2010-09-16 Werner Koch - - * import.c: Include "util.h". - (parse_import): Return GPG_ERR_MISSING_ISSUER_CERT. - - * util.h: Add fallback define for GPG_ERR_MISSING_ISSUER_CERT. - * op-support.c: Include "util.h". - (_gpgme_parse_inv_recp): Handle new code 12. - -2010-09-02 Marcus Brinkmann - - * error.c (gpgme_err_code_to_errno): Fix cut and paste bug (thanks - to Marc Mutz). - -2010-09-01 Marcus Brinkmann - - * w32-io.c: Revert change from 2009-06-18, as it created a race - condition. - -2010-08-18 Marcus Brinkmann - - * gpgme.def: Add gpgme_err_code_from_syserror and gpgme_err_set_errno. - * libgpgme.vers: Likewise. - * gpgme.h.in (gpgme_error_from_errno): Fix return type to - gpgme_error_t. - (gpgme_err_code_from_syserror, gpgme_err_set_errno): New prototype. - (gpgme_error_from_syserror): New inline function (why are - gpgme_err_make_from_errno and gpgme_error_from_errno not inline - functions?). - * error.c (gpgme_error_from_errno): Fix return type to gpgme_error_t. - (gpgme_err_set_errno, gpgme_err_code_from_syserror): New functions. - -2010-08-03 Marcus Brinkmann - - * gpgme-tool.c (result_encrypt_to_xml, result_sign_to_xml) - (result_verify_to_xml, result_import_to_xml) - (result_genkey_to_xml): Check vigorously for null pointers. - - * w32-io.c (GPGCEDEV_IOCTL_ASSIGN_RVID): New macro. - (_gpgme_io_spawn): Use ASSIGN_RVID. - -2010-06-11 Marcus Brinkmann - - * w32-io.c (_gpgme_io_spawn): Remove debug printf. - -2010-06-10 Marcus Brinkmann - - * gpgme-tool.c (gpgme_server): Use special hack for Windows CE to - get at stdin and stdout. - - * engine-gpgsm.c (gpgsm_new): Translate returned achild_fds back - to child_fds. - - * debug.h (TRACE_SUC6): New macro. - * w32-io.c (MAX_SLAFD): New macro. - (fd_table): New static variable. - (new_fd, release_fd): New functions. - (fd_to_handle, handle_to_fd, handle_to_socket): Remove macros. - (MAX_READERS, MAX_WRITERS): Increase to 64. - (notify_table): Increase to MAX_SLAFD. - (struct reader_context_s, struct writer_context_s): Add member - file_sock. - (reader, writer): Use file_hd vs file_sock to decide if socket - operations to use. Remove auto-detect mode. - (create_reader, create_writer): Set file_sock. Unblock pending - thread only if this is a pipe fd. - (_gpgme_io_pipe): Allocate fds from table and return slot indices - instead of windows handles. This allows to properly handle RVIDs. - (_gpgme_io_close): Handle dup'ed file descriptors. - (build_commandline) [HAVE_W32_SYSTEM]: Use RVID from fd table now. - (_gpgme_io_spawn): Use fd table now. - (_gpgme_io_fd2str): Use RVID from fd table now. - (_gpgme_io_dup): Implement using fd table. - (_gpgme_io_socket): Allocate fds from table. - (_gpgme_io_connect): Use fd from table. - - * w32-glib-io.c (find_channel): Check that the slot is used. - -2010-06-09 Marcus Brinkmann - - * w32-io.c [HAVE_W32CE_SYSTEM]: Include assuan.h and winioctl.h. - (GPGCEDEV_IOCTL_UNBLOCK) [HAVE_W32CE_SYSTEM]: Define. - (set_synchronize) [HAVE_W32CE_SYSTEM]: Stub it out. - (is_socket): Allow to return -1 for auto-detect (old behaviour). - (is_socket) [HAVE_W32CE_SYSTEM]: Return -1. - (reader): Handle auto-detect case. Handle ctx->stop_me before - checking for EOF. - (destroy_reader) [HAVE_W32CE_SYSTEM]: Unblock a pending reader. - (writer): Handle auto-detect case. Handle ctx->stop_me with - ERROR_BUSY. - (destroy_writer) [HAVE_W32CE_SYSTEM]: Unblock a pending writer. - (_gpgme_io_pipe) [HAVE_W32CE_SYSTEM]: Implement in terms of a - half-pipe. - (build_commandline) [HAVE_W32CE_SYSTEM]: New function. - (_gpgme_io_spawn) [HAVE_W32CE_SYSTEM]: Implement it differently - for this platform. - (_gpgme_io_fd2str) [HAVE_W32CE_SYSTEM]: Implement it for RVIDs. - (_gpgme_io_dup) [HAVE_W32CE_SYSTEM]: Stub it out. - - * gpgme-tool.c (result_add_timestamp): Add missing NULL argument. - (result_sign_to_xml): Protect against NULL fingerprint. - (struct server): New members input_fd, input_filename, - input_stream output_fd, output_filename, output_stream, - message_filename, message_stream. - (server_reset_fds): Deallocate those. - (server_parse_fd): New function. - (server_data_obj): Take optional filename argument and direction - argument. Also take new argument to return a filestream that - needs to be closed after destroying the data object. - Change all callers, too. - (input_notify, output_notify): Removed. - (cmd_input, cmd_output): New functions. - (gpgme_server): Do not register input and output notifier. - (register_commands): Use cmd_input and cmd_output. - (cmd_message): Rewritten to use server_parse_fd. - (cmd_delete, cmd_keylist): Fix inverted option check. - (main) [HAVE_W32CE_SYSTEM]: Sleep a bit to work around bug in ssh. - - * genkey.c (gpgme_op_genkey): Return err with TRACE_ERR. - -2010-05-12 Marcus Brinkmann - - * conversion.c (_gpgme_timegm) [HAVE_W32_SYSTEM]: New static - function. - (_gpgme_parse_timestamp) [HAVE_W32_SYSTEM]: Use it. - - * gpgme-tool.c (main): Protect call to setlocale with - HAVE_SETLOCALE. - - * Makefile.am (system_components): Remove custom cppflags from - RCCOMPILE (because gpg-error adds -idirafter that makes RC bail. - [HAVE_W32CE_SYSTEM]: Add w32-ce.h and w32-ce.c, clear - libexec_PROGRAMS. - * w32-ce.h, w32-ce.c: New files. - - * priv-io.h: Include - * util.h: Likewise. - -2010-05-11 Marcus Brinkmann - - * w32-util.c: Include ath.h - (HAVE_ALLOW_SET_FOREGROUND_WINDOW) [!HAVE_W32CE_SYSTEM]: Define - it. - (RTLD_LAZY, dlopen, dlsym, - dlclose) [!HAVE_ALLOW_SET_FORGROUND_WINDOW]: Don't define anymore. - (_gpgme_allow_set_foreground_window) [!HAVE_ALLOW_SET_FOREGROUND_WINDOW]: - Make it a stub. - (read_w32_registry_string): Use FooA variants of Windows functions - instead of Foo (which dispatches depending on UNICODE). - [!HAVE_W32CE_SYSTEM]: Don't check environment. - (w32_shgetfolderpath): Remove. - (find_program_at_standard_place): Call - SHGetSpecialFolderPath (which is available on all Windows systems - and also Windows CE). - (mkstemp): Use ath_self instead of getpid. - (_gpgme_mkstemp): Use GetTempPathA instead of GetTempPath. - - * gpgme.h.in: Use _WIN32 instead of _MSC_VER. Include time.h for - time_t. - -2010-05-07 Marcus Brinkmann - - * engine-g13.c, gpgme.c, engine-gpgsm.c, engine-gpg.c, - op-support.c, engine-assuan.c, gpgme-tool.c: Include - only if available with HAVE_LOCALE_H and conditionalize use of - LC_CTYPE on its definition. - * engine-gpgconf.c: Do not include . - - * engine-gpgsm.c (gpgsm_new, start): Cast between int and - assuan_fd_t. - * assuan-support.c (my_pipe, my_close, my_read, my_write): Likewise. - * gpgme-tool.c (server_data_obj, server_reset_fds, gpgme_server), - (my_recvmsg, my_sendmsg, my_spawn): Likewise. - * engine-assuan.c (start): Likewise. - * engine-g13.c (start): Likewise. - -2010-05-06 Marcus Brinkmann - - * w32-glib-io.c, w32-io.c, w32-qt-io.cpp, w32-sema.c, w32-util.c: - Do not include . - - * sign.c, data-user.c, conversion.c, debug.c, verify.c, data.c, - decrypt.c, delete.c, assuan-support.c, import.c, engine-gpgsm.c, - data-mem.c, op-support.c, w32-io.c, w32-util.c, data-compat.c: Use - gpg_error_from_syserror instead gpg_error_from_errno, and use - gpg_err_set_errno to set error number. - * setenv.c: Include and define __set_errno to use - gpg_err_set_errno. - * gpgme-tool.c (ARGP_ERR_UNKNOWN): Define to EDEADLOCK (which is - mapped in Windows CE) instead of E2BIG (which is not). - (gt_import_keys): Initialize err. - -2010-04-19 Marcus Brinkmann - - * assuan-support.c (my_spawn): Cast to avoid warning. - * engine-g13.c (g13_new): Make ARGV array of pointer to const - char. - (g13_assuan_simple_command) [!USE_DESCRIPTOR_FUNCTION]: Don't define. - * ops.h (_gpgme_key_append_name): Same in prototype. - * key.c (_gpgme_key_append_name): Make SRC argument pointer to - const char. - * posix-util.c (_gpgme_get_uiserver_socket_path): Make HOMEDIR - const. - * vfs-mount.c (gpgme_op_vfs_transact_start): Never define this - potentially useful but currently unused function. - * vfs-create.c (gpgme_op_vfs_transact_start): Likewise. - -2010-04-16 Werner Koch - - * w32-io.c (is_socket): New. - (reader, writer): Use it to figure out the API to use. - -2010-03-15 Werner Koch - - * gpgme.h.in: Add autoconf template to set generated file to - read-only in an emacs buffer. - -2010-03-12 Werner Koch - - * gpgme.h.in (GPGME_STATUS_SUCCESS): Use the right file for the - change; see below. - - * passwd.c (op_data_t): New. - (passwd_start): Setup OPD. - (passwd_status_handler): Return GPG_ERR_NOT_SUPPORTED if needed. - * context.h (OPDATA_PASSWD): New. - * gpgme.h (GPGME_STATUS_SUCCESS): New. - -2010-03-09 Werner Koch - - * engine-gpgsm.c (gpgsm_keylist): Try to start the agent. - -2010-02-17 Werner Koch - - * posix-io.c (notify_table): Change implementation. - (notify_table_item_t, notify_table_size, notify_table_lock): New. - (_gpgme_io_close, _gpgme_io_set_close_notify): Adjust for new - implementation. - -2010-02-16 Werner Koch - - * gpgme-tool.c (spacep, has_option, skip_options): New. - (cmd_export): Implement option --minimal. - - * gpgme.h.in (GPGME_EXPORT_MODE_MINIMAL): New. - * export.c (export_start, export_ext_start): Implement it. - * engine-gpg.c (export_common): Ditto. - -2010-01-25 Werner Koch - - * w32-io.c (_gpgme_io_connect): Fix return code check to make it work. - - * version.c (do_subsystem_inits): Remove superfluous second - WSAStartup. - -2010-01-22 Werner Koch - - * w32-io.c (writer): Try to use send first. - (reader): Try to use recv first. - -2010-01-08 Werner Koch - - * engine-gpg.c (gpg_passwd): New. - (_gpgme_engine_ops_gpg): Register. - * passwd.c (parse_error): New. - (passwd_status_handler): Use it. - -2010-01-07 Marcus Brinkmann - - * gpgme-tool.c (result_xml_write_cb_t, struct result_xml_state): - New types. - (MAX_TAGS): New macro. - (result_init, result_xml_indent, result_xml_tag_start) - (result_xml_tag_data, result_xml_tag_end, result_add_error) - (result_add_pubkey_algo, result_add_hash_algo, result_add_keyid) - (result_add_fpr, result_add_timestamp, result_add_sig_mode) - (result_add_value, result_add_string, result_encrypt_to_xml) - (result_decrypt_to_xml, result_sign_to_xml) - (result_verify_to_xml, result_import_to_xml) - (result_genkey_to_xml, result_keylist_to_xml) - (result_vfs_mount_to_xml): New functions. - (gt_result): Rewritten. - -2010-01-05 Werner Koch - - * gpgme-tool.c (gt_passwd, cmd_passwd): New. - (register_commands): Register. - - * gpgme.h.in (gpgme_op_passwd_start, gpgme_op_passwd): New. - * libgpgme.vers, gpgme.def: Add new functions. - * passwd.c: New. - * Makefile.am (main_sources): Add passwd.c - * engine.c, engine.h (_gpgme_engine_op_passwd): New. - * engine-backend.h (struct engine_ops): Add PASSWD. - * engine-gpgsm.c (gpgsm_passwd): New. - (_gpgme_engine_ops_gpgsm): Register. - (gpgsm_reset): Reset only if we have a conenction. - - * gpgme.h.in (GPGME_PK_ECDSA, GPGME_PK_ECDH): New. - * gpgme.c (gpgme_pubkey_algo_name): Add them. - -2009-12-22 Marcus Brinkmann - - * debug.c: Test for TLS, not __GNUC__ - -2009-12-15 Marcus Brinkmann - - * assuan-support.c (my_spawn): Calloc, not malloc, the fd_items. - -2009-12-10 Werner Koch - - * debug.c (debug_init): Test on sgid process. - -2009-12-08 Marcus Brinkmann - - * Makefile.am (LTRCCOMPILE): Refactor with ... - (RCCOMPILE): ... this new macro. - (SUFFIXES): Add .lo. - (gpgme_res_ldflag): Removed. - (gpgme_res): Use libtool object file name here. - (libgpgme_la_LDFLAGS): Remove gpgme_res_ldflag usage. - (libgpgme_la_LIBADD): Add gpgme_res. - - * ath.c (ath_self) [HAVE_W32_SYSTEM]: Fix typo. - -2009-12-02 Werner Koch - - * gpgconf.c (gpgme_conf_arg_release): No return in a function - returning void. Reported by Wyllys Ingersoll. - -2009-12-01 Werner Koch - - * gpgme-tool.c (cmd_getauditlog): Add flag --html. - (hlp_getauditlog): New. - - * gpgme-tool.c (GT_GCC_A_SENTINEL, GT_GCC_A_PRINTF): New. - (gt_write_status): Use sentinel. - (argp_error, log_error): Use printf attribute. - (argp_parse): Remove extra argument to argp_error. - (_gt_progress_cb, gt_get_engine_info, gt_get_keylist_mode) - (gt_result): Add NULL arg. - -2009-11-26 Marcus Brinkmann - - * opassuan.c (opassuan_start): Allocate result structure before - beginning operation. - -2009-11-25 Marcus Brinkmann - - * gpgme-tool.c (gpgme_server): Use assuan_fd_t and assuan_fdopen - on fds. - -2009-11-13 - - * sign.c (_gpgme_sign_status_handler): Handle SIG_CREATED_SEEN. - * engine-uiserver.c (uiserver_sign): Make sending SENDER optional. - -2009-11-10 Marcus Brinkmann - - * op-support.c (_gpgme_op_reset): Instead of last change, only set - sub protocol if it is not the default. - -2009-11-10 Werner Koch - - * op-support.c (_gpgme_op_reset): Ignore GPG_ERR_NOT_IMPLEMENTED - while setting the sub protocol. - - * engine-uiserver.c (uiserver_new): Pass fdpassing flag to - assuan_socket_connect. - (set_recipients): Replace fingerprint by user id. - - * engine-gpgsm.c (set_recipients): Fix non-terminating loop in - case of a missing key. - -2009-11-10 Marcus Brinkmann - - * gpgme.c (gpgme_new): Set default sub protocol. - * gpgme-tool.c: Implement get sub protocol. - - * gpgme.h.in (gpgme_get_sub_protocol): Add prototype. - * gpgme.def, libgpgme.vers: Add gpgme_get_sub_protocol. - * context.h (struct gpgme_context): New member sub_protocol. - * gpgme.c (gpgme_set_sub_protocol): Set CTX->sub_protocol. - (gpgme_get_sub_protocol): New function. - * op-support.c (_gpgme_op_reset): Set sub protocol. - - * Makefile.am (uiserver_components): New variable. - (main_sources): Add it. - * ops.h, key.c (_gpgme_key_append_name): Take CONVERT argument, - implement it. Adjust callers. - (gpgme_key_from_uid): New function. - * gpgme.h.in (gpgme_protocol_t): Add GPGME_PROTOCOL_DEFAULT. - (gpgme_encrypt_flags_t): Add GPGME_ENCRYPT_PREPARE, - GPGME_ENCRYPT_EXPECT_SIGN. - (gpgme_set_sub_protocol, gpgme_key_from_uid): New functions. - * libgpgme.vers, gpgme.def: Add new functions. - * gpgme.c (gpgme_set_protocol): Add UIServer protocol. - (gpgme_set_sub_protocol): New function. - (gpgme_get_protocol_name): Add UIServer and default protocol. - * assuan-support.c: Return correct error values, implement - socketpair for POSIX. - * priv-io.h, posix-io.c, w32-io.c, w32-glib-io.c, - w32-qt-io.cpp (_gpgme_io_spawn): Add ATFORK and ATFORKVALUE - arguments. Implement it for POSIX. Adjust all callers. - * engine.h, engine-backend.h (_gpgme_engine_set_protocol) - (_gpgme_engine_op_decrypt_verify): New prototypes. Adjust all - users. - * engine.c (engine_ops, gpgme_get_engine_info): Add UIServer - engine. - (_gpgme_engine_set_protocol, _gpgme_engine_op_decrypt_verify): New - function. - * decrypt-verify.c (decrypt_verify_start): Call - _gpgme_engine_op_decrypt_verify. - * util.h, posix-util.c, - w32-util.c (_gpgme_get_uiserver_socket_path): New function. - * engine-gpgsm.c (gpgsm_set_fd): Fix _gpgme_io_pipe invocation. - * gpgme-tool.c: Some support for UIServer protocol. - * engine-uiserver.c: New file. - -2009-11-09 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_new): Close server side FDs. - -2009-11-06 Marcus Brinkmann - - * gpgme-tool.c (struct gpgme_tool): New members write_data and - write_data_hook. - (gt_write_data): New function. - (gt_result): Output vfs_mount result. - (server_write_data): New function. - (gpgme_server): Initialize write_data members. - -2009-11-05 Marcus Brinkmann - - * engine-g13.c (struct engine_g13): Remove members RESULT_CB and - RESULT_CB_VALUE. - (g13_assuan_simple_command, status_handler): Don't use those anymore. - (g13_transact): Remove them from argument list, too. - * vfs-mount.c (_gpgme_vfs_mount_status_handler): New function. - (_gpgme_op_vfs_mount): Pass it to transact. - - * engine-assuan.c (llass_new): Update use of assuan_socket_connect. - * engine-gpgsm.c (gpgsm_new): Update use of assuan_pipe_connect. - * engine-g13.c (g13_new): Likewise. - - * priv-io.h (IOSPAWN_FLAG_NOCLOSE): New flag. - * w32-io.c (_gpgme_io_spawn): Implement this flag. - * posix-io.c (_gpgme_io_spawn): Likewise. - * w32-glib-io.c (_gpgme_io_spawn): Likewise. - * assuan-support.c (my_spawn): Set this flag. - - * decrypt.c (gpgme_op_decrypt_start): Fix use of debug macro. - * decrypt-verify.c (gpgme_op_decrypt_verify_start): Likewise. - * delete.c (gpgme_op_delete_start): Likewise. - * edit.c (gpgme_op_edit_start, gpgme_op_card_edit_start): - Likewise. - * encrypt.c (gpgme_op_encrypt_start): Likewise. - * encrypt-sign.c (gpgme_op_encrypt_sign_start): Likewise. - * export.c (gpgme_op_export_start, gpgme_op_export_ext_start) - (gpgme_op_export_keys_start, gpgme_op_export_keys): Likewise. - * genkey.c (gpgme_op_genkey_start): Likewise. - * getauditlog.c (gpgme_op_getauditlog_start): Likewise. - * import.c (gpgme_op_import_start, gpgme_op_import_keys_start): - Likewise. - * opassuan.c (gpgme_op_assuan_transact_start): Likewise. - * sign.c (gpgme_op_sign_start): Likewise. - * verify.c (gpgme_op_verify_start): Likewise. - * vfs-create.c (gpgme_op_vfs_create): Likewise. - * vfs-mount.c (gpgme_op_vfs_mount): Likewise. - -2009-11-04 Marcus Brinkmann - - * ath.h (ath_self): New prototype. Include - * ath.c, ath-pth.c, ath-pthread.c (ath_self): New function. - * debug.h: Rewrite most macros to beautify debug output. - (_gpgme_debug_buffer): Remove tagname and tag argument. - (_gpgme_debug_frame_begin, _gpgme_debug_frame_end): New prototypes. - * debug.c: Include . Don't include assuan.h. - (frame_nr, FRAME_NR): New thread-specific variable and macro. - (debug_init): Do not initialize assuan. Call _gpgme_debug after - initialization instead using printf directly. - (_gpgme_debug): Do not call debug_init (we now ensure proper - initialization by user). Add timestamp and thread/process ID. - (_gpgme_debug_buffer): Do not take tagname and tag argument. - (_gpgme_debug_frame_begin, _gpgme_debug_frame_end): New functions. - * version.c (gpgme_check_version_internal, gpgme_check_version): - Fix debug string. Do not initialize assuan. - * posix-io.c (get_max_fds): Use 0 not NULL (nicer debug output). - -2009-11-04 Werner Koch - - * gpgme-tool.c (register_commands): Add HELP feature. - -2009-11-03 Werner Koch - - * gpgme.h.in (GPGME_PROTOCOL_UISERVER): New. - -2009-11-03 Marcus Brinkmann - - * Makefile.am (main_sources): Change g13.c to vfs-mount.c. Add - vfs-create.c - * vfs-create.c: New file. - * g13.c: Renamed to ... - * vfs-mount.c: ... this new file. - * gpgme.h.in (gpgme_op_vfs_create): New prototype. - * gpgme.def, libgpgme.vers: Add gpgme_op_vfs_create. - * gpgme-tool.c (gt_vfs_create, cmd_vfs_create): New functions. - (register_commands): Add VFS_CREATE and CREAET. - -2009-11-02 Marcus Brinkmann - - * debug.h (_gpgme_debug_buffer): Make TAG argument const const. - * debug.c (_gpgme_debug_buffer): Likewise. - * gpgme-tool.c (input_notify, output_notify): Adjust type to new - assuan interface. - * decrypt.c (gpgme_op_decrypt_result): Remove unused variable. - * opassuan.c (gpgme_op_assuan_transact): Fix return value. - -2009-10-30 Marcus Brinkmann - - * Makefile.am (noinst_PROGRAMS): New target gpgme-tool. - (gpgme_tool_LDADD): New variable. - * gpgme-tool.c: New file. - * ops.h (_gpgme_sig_notation_clearm _gpgme_signers_clear): New - prototypes. - * gpgme.c (gpgme_set_protocol): Allow GPGME_PROTOCOL_GPGCONF (when - had that gone missing?). - (_gpgme_sig_notation_clear): New function without debug output. - (gpgme_release): Call it and _gpgme_signers_clear. - * signers.c (_gpgme_signers_clear): New function without debug output. - * g13.c (gpgme_op_vfs_mount): Add debug output. - * assuan-support.c (my_spawn): Allow fd_child_list to be NULL. - * conversion.c (_gpgme_encode_percent_string): Fix infinite loop. - * debug.h: Put tag in front of debug lines, should make for nicer - output. - * engine-assuan.c (llass_new): Use our new system hooks for libassuan. - * engine-g13.c (g13_new): Remove redundant assuan context allocation. - * version.c (gpgme_check_version_internal): Delay debug output - until after gpgme_check_version was called. - -2009-10-28 Marcus Brinkmann - - * signers.c, encrypt-sign.c, encrypt.c, delete.c, keylist.c, - edit.c, import.c, export.c: Fix last change in debug output. - -2009-10-27 Marcus Brinkmann - - * edit.c (gpgme_op_edit_start, gpgme_op_edit) - (gpgme_op_card_edit_start, gpgme_op_card_edit): Add debug output. - * encrypt-sign.c (gpgme_op_encrypt_sign_start) - (gpgme_op_encrypt_sign): Likewise. - * encrypt.c (gpgme_op_encrypt_start, gpgme_op_encrypt) - (gpgme_op_encrypt_result): Likewise. - * export.c (gpgme_op_export_start, gpgme_op_export) - (gpgme_op_export_ext_start, gpgme_op_export_ext) - (gpgme_op_export_keys_start, gpgme_op_export_keys): Likewise. - * genkey.c (gpgme_op_genkey_start, gpgme_op_genkey) - (gpgme_op_genkey_result): Likewise. - * getauditlog.c (gpgme_op_getauditlog_start) - (gpgme_op_getauditlog): Likewise. - * import.c (gpgme_op_import_result, gpgme_op_import_start) - (gpgme_op_import): Likewise. - * keylist.c (gpgme_op_keylist_result, keylist_colon_handler) - (gpgme_op_keylist_start, gpgme_op_keylist_ext_start) - (gpgme_op_keylist_next, gpgme_op_keylist_end, gpgme_get_key): Likewise. - * opassuan.c (gpgme_op_assuan_transact_start) - (gpgme_op_assuan_transact_ext, gpgme_op_assuan_result) - (gpgme_op_assuan_transact): Likewise. - * signers.c (gpgme_signers_add, gpgme_signers_clear): Likewise. - * trustlist.c (gpgme_op_trustlist_start) - (gpgme_op_trustlist_next, gpgme_op_trustlist_end): Likewise. - * verify.c (gpgme_op_verify_start, gpgme_op_verify) - (gpgme_op_verify_result): Likewise. - -2009-10-26 Marcus Brinkmann - - * gpgme.h.in (struct gpgme_io_event_done_data) - (gpgme_io_event_done_data_t): New types. - (struct _gpgme_op_assuan_result): Deprecate the err member. - (gpgme_op_assuan_result): Deprecate (for now). - (gpgme_op_assuan_transact_ext): New prototype. - (gpgme_op_assuan_transact): Deprecate. - (struct _gpgme_op_g13_result): Replace with ... - (struct _gpgme_op_vfs_mount_result): ... this. - (gpgme_op_g13_mount): Replace with ... - (gpgme_op_vfs_mount): ... this. - * gpgme.def (gpgme_op_assuan_transact_ext, gpgme_wait_ext) - (gpgme_op_vfs_mount_result, gpgme_op_vfs_mount): New. - (gpgme_op_g13_mount): Remove. - * libgpgme.vers: Likewise. - * engine-backend.h (struct engine_ops): Remove RESULT_CB and - RESULT_CB_VALUE args in opassuan_transact member. Add CANCEL_OP - member. - * ops.h (_gpgme_cancel_with_err, _gpgme_wait_on_condition): Add - OP_ERR argument. - (_gpgme_wait_one_ext): New prototype. - * context.h (ctx_op_data_id_t): Add OPDATA_VFS_MOUNT. - * engine-g13.c (g13_cancel_op): New function. - (parse_status): Remove declaration. - (g13_assuan_simple_command): Do nothing with status lines for now. - (status_handler): Update opaque value access. - (_gpgme_engine_ops_g13): Add new cancel_op member. - * gpgme.c (_gpgme_cancel_with_err): Add new parameter OP_ERR. - Handle operational errors. - (gpgme_cancel, gpgme_io_read, gpgme_io_write): Add debug output. - * data.c (_gpgme_data_inbound_handler) - (_gpgme_data_outbound_handler): Adjust opaque value access. - * engine-gpg.c (command_handler, status_handler) - (colon_line_handler): Likewise. - * engine-gpgsm.c (status_handler): Likewise. - * engine-gpg.c (_gpgme_engine_ops_gpg): Add cancel_op member. - * engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Likewise. - * g13.c: Rewritten (and will be rewritten again). - * engine.h (_gpgme_engine_op_assuan_transact): Remove result_cb - and result_cb_value parameters from prototype. - (_gpgme_engine_cancel_op): New prototype. - * engine.c (engine_ops) [! ENABLE_ASSUAN]: Add missing comma. - (_gpgme_engine_op_assuan_transact): Remove result_cb and - result_cb_value parameter. - (_gpgme_engine_cancel_op): New function. - * wait.h (_gpgme_run_io_cb): Add new argument OP_ERR. - (struct io_cb_data): New struct to pass opaque data and get a - op_err return value. Needed because we can't modify I/O callback - handler signature because it is exposed to the user. - * wait.c (_gpgme_run_io_cb): Add OP_ERR parameter. Handle - operational errors. - * wait-user.c (_gpgme_user_io_cb_handler): Handle operational - errors. - * wait-private.c (_gpgme_wait_on_condition): New argument to - retrieve the operational result. Handle operational errors in - session based protocols. - (_gpgme_wait_one_ext): New function. - (_gpgme_wait_one): Pass argument in invocation of - _gpgme_wait_on_condition. - * wait-global.c (struct ctx_list_item): Add member OP_ERR. - (ctx_done): New argument OP_ERR. - (ctx_wait): New argument OP_ERR. - (gpgme_wait_ext): New function based on gpgme_wait but handling - operational errors. - (gpgme_wait): Implement in term of gpgme_wait_ext. - * keylist.c (gpgme_op_keylist_next): Pass argument in invocation - of _gpgme_wait_on_condition. - * trustlist.c (gpgme_op_trustlist_next): Pass argument in - invocation of _gpgme_wait_on_condition. - * engine-assuan.c (struct engine_llass): Replace members RESULT_CB - and RESULT_CB_VALUE by LAST_OP_ERR. - (_gpgme_engine_assuan_last_op_err): Add this hack function. - (llass_cancel_op): New function. - (_gpgme_engine_llass_ops): Add cancel_op member. - (llass_status_handler): Update opaque value access. - (llass_transact): Remove RESULT_CB and RESULT_CB_VALUE arguments. - * opassuan.c: Move compat hacks to the end of file. - (opassuan_start): Do not set OPD->result.err. - Do not pass RESULT_Cb and CTX to _gpgme_engine_op_assuan_transact. - (gpgme_op_assuan_transact_ext): New function. - - * debug.h (DEBUG_GLOBAL): New debug level. - * conversion.c (gnupg_errors, _gpgme_map_gnupg_error): Removed. - * data-user.c (gpgme_data_new_from_cbs): Add debug output. - * data-fd.c (gpgme_data_new_from_fd): Likewise. - * data-stream.c (gpgme_data_new_from_stream): Likewise. - * decrypt.c (gpgme_op_decrypt_result, gpgme_op_decrypt_start) - (gpgme_op_decrypt): Likewise. - * delete.c (gpgme_op_delete_start, gpgme_op_delete): Likewise. - * decrypt-verify.c (gpgme_op_decrypt_verify_start) - (gpgme_op_decrypt_verify): Likewise. - * sign.c (gpgme_op_sign_result): Fix debug message. - * data-mem.c (gpgme_data_new): Improve debug output. - * verify.c (parse_trust): Use atoi instead of - _gpgme_map_gnupg_error. - * decrypt.c (_gpgme_decrypt_status_handler): Likewise. - -2009-10-22 Marcus Brinkmann - - * Makefile.am: Remove @NETLIBS@ from LIBADDs. - (g13_components): New variable. - (main_sources): Add $(g13_components). - * g13.c, engine-g13.c: New files. - * engine.c (engine_ops): Check for assuan for assuan engine, add - g13 engine. - * util.h (_gpgme_get_g13_path, _gpgme_encode_percent_string): New - prototypes. - * conversion.c (_gpgme_encode_percent_string): New function. - * gpgme.h.in (gpgme_protocol_t): Add GPGME_PROTOCOL_G13. - (struct _gpgme_op_g13_result, gpgme_g13_result_t): New types. - (gpgme_op_g13_mount): New function. - * gpgme.def, libgpgme.vers: Add gpgme_op_g13_mount. - * gpgme.c (gpgme_set_protocol): Allow GPGME_PROTOCOL_G13. - (gpgme_get_protocol_name): Add GPGME_PROTOCOL_G13. - * posix-util.c (_gpgme_get_g13_path): New function. - * w32-util.c (_gpgme_get_g13_path): New function. - * engine-backend.h (_gpgme_engine_ops_g13): New declaration. - -2009-10-20 Marcus Brinkmann - - * gpgme-config.in (netlibs): Remove. - (assuan_cflags, assuan_libs): Add. - - * Makefile.am (assuan_cppflags, assuan_libobjs): Removed. - (gpgsm_components): Move engine-assuan.c to ... - (assuan_components): ... this new variable. - (main_sources): Add this new variable. - (AM_CPPFLAGS): Remove $(assuan_cppflags). - (AM_CFLAGS): Add @LIBASSUAN_CFLAGS@. - (libgpgme_la_DEPENDENCIES, libgpgme_pth_la_DEPENDENCIES) - (libgpgme_glib_la_DEPENDENCIES, libgpgme_qt_la_DEPENDENCIES) - (libgpgme_pthread_la_DEPENDENCIES): Remove $(assuan_libobjs). - (libgpgme_la_LIBADD, libgpgme_pth_la_LIBADD) - (libgpgme_glib_la_LIBADD, libgpgme_qt_la_LIBADD)) - (libgpgme_pthread_la_LIBADD): Replace $(assuan_libobjs) by - @LIBASSUAN_LIBS@. - * priv-io.h [!HAVE_W32_SYSTEM]: Declare _gpgme_io_recvmsg, - _gpgme_io_sendmsg, _gpgme_io_waitpid. - * engine-backend.h: Define with [ENABLE_ASSUAN] instead - of [ENABLE_GPGSM]. - * posix-io.c (_gpgme_io_waitpid): Make non-static. - * util.h (ENABLE_ASSUAN): Declar _gpgme_assuan_system_hooks, - _gpgme_assuan_malloc_hooks, _gpgme_assuan_log_cb. - * engine-gpgsm.c: Don't map assuan error codes. Use - assuan_release instead of assuan_disconnect. - (map_assuan_error): Remove function. - (gpgsm_new): Use new assuan context interface. - * engine-assuan.c: Use assuan_release instead of - assuan_disconnect. - (llass_new): Use new assuan context interface. - -2009-10-07 - - * priv-io.h [W32]: Include windows.h instead of sys/socket.h. - -2009-08-06 Werner Koch - - * op-support.c (_gpgme_parse_inv_recp): Allow for no fingerprint. - - * engine-gpgsm.c (gpgsm_sign): Hook up the status func for the - SIGNER command. - * gpgme.h.in (GPGME_STATUS_INV_SGNR, GPGME_STATUS_NO_SGNR): New. - * sign.c (op_data_t): Add fields IGNORE_INV_RECP and INV_SGNR_SEEN. - (_gpgme_op_sign_init_result): Factor code out to ... - (sign_init_result): .. new. Init new fields. - (sign_start): Use sign_init_result. - (_gpgme_sign_status_handler): Take care of the new INV_SGNR. - Return an error if no signature has been created. - -2009-07-07 Werner Koch - - * engine-gpgsm.c (struct engine_gpgsm): Add fields - input_helper_data and input_helper_memory. - (close_notify_handler): Release these new fields. - (gpgsm_import): Implement the keyarray feature. - - * engine-gpg.c (gpg_import): Actually return GPG_ERR_INV_VALUE. - - * engine-gpgsm.c (gpgsm_import): Return an error for unknown data - encodings. - -2009-06-22 Marcus Brinkmann - - * debug.h: Everywhere, use %p instead of 0x%x to print pointer. - [HAVE_STDINT_H]: Include . - (_TRACE, TRACE, TRACE0, TRACE1, TRACE2, TRACE3, TRACE6): Cast tag - to (uintptr_t) before casting it to (void*) to silence GCC - warning. - - * gpgme.h.in (_GPGME_DEPRECATED_OUTSIDE_GPGME): New macro. - * sign.c (_GPGME_IN_GPGME): Define it. - * keylist.c (_GPGME_IN_GPGME): Define it. - - * debug.c (_gpgme_debug_begin, _gpgme_debug_add): Handle error in - vasprintf and asprintf. - - * priv-io.h: Include . Declare _gpgme_io_connect. - -2009-06-18 Marcus Brinkmann - - * gpgme.h.in (GPGME_CONF_PATHNAME): Revert last change, it's - back! (GPA still uses it...). - - * gpgme.def: Fix stupid typo. - * w32-io.c (_gpgme_io_pipe): Add missing declaration. - - * gpgme.h.in (GPGME_CONF_PATHNAME): Remove obsolete macro. - - * w32-io.c (_gpgme_io_pipe): Allocate reader/writer thread right - away. - (_gpgme_io_read, _gpgme_io_write, _gpgme_io_select) - (_gpgme_io_dup): Never allocate threads here. - (find_writer, find_reader): Check return value of thread creation - function. - - * context.h (CTX_OP_DATA_MAGIC): New macro. - (struct ctx_op_data): New member MAGIC. - * op-support.c (_gpgme_op_data_lookup): Initialize magic. - * gpgme.c (gpgme_result_unref, gpgme_result_ref): Check magic. - -2009-06-16 Marcus Brinkmann - - * gpgme.c (gpgme_result_unref): Hot fix to release a lock. - - * gpgme.c (result_ref_lock): New global variable. - (gpgme_result_ref, gpgme_result_unref): use it. - -2009-06-16 Werner Koch - - * version.c: Include stdlib.h. - - * gpgme.h.in (gpgme_data_encoding_t): Add GPGME_DATA_ENCODING_URL, - GPGME_DATA_ENCODING_URLESC, GPGME_DATA_ENCODING_URL0. - * data.c (gpgme_data_set_encoding): Adjust for new values. - * engine-gpg.c (string_from_data): New. - (gpg_import): Implement --fetch-key feature. - - * gpgme.h.in (gpgme_op_export_keys_start, gpgme_op_export_keys): New. - * gpgme.def, libgpgme.vers: Add them. - * export.c (gpgme_op_export_keys_start, gpgme_op_export_keys): New. - (export_keys_start): New. - - * gpgme.h.in (gpgme_export_mode_t, GPGME_EXPORT_MODE_EXTERN): New. - (gpgme_op_export_start, gpgme_op_export, gpgme_op_export_ext_start) - (gpgme_op_export_ext): Change arg RESERVED to MODE of new - compatible type. - * export.c (gpgme_export_ext_start, gpgme_op_export) - (gpgme_op_export_ext_start, gpgme_op_export_ext): Ditto. - (export_start): Ditto. - * engine.c (_gpgme_engine_op_export): Ditto. - * engine-backend.h (struct engine_ops): Ditto. - * engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Ditto. - * engine-gpg.c (gpg_export, gpg_export_ext): Ditto. Implement - mode EXTERN. - (gpg_export, gpg_export_ext): Factor common code out to .. - (export_common): .. this. - - * gpgme.h.in (gpgme_op_import_keys_start, gpgme_op_import_keys): New. - * gpgme.def, libgpgme.vers: Add them. - * import.c (gpgme_op_import_keys_start, gpgme_op_import_keys): New. - (_gpgme_op_import_keys_start): New. - * engine.c (_gpgme_engine_op_import): Add arg KEYARRAY. - * engine-backend.h (struct engine_ops): Ditto. - * engine-gpgsm.c (gpgsm_import): Ditto. Not functional. - * engine-gpg.c (gpg_import): Ditto. Implement it. - -2009-06-15 Marcus Brinkmann - - * gpgme.h.in (gpgme_result_ref, gpgme_result_unref): Add - prototypes. - * gpgme.def, libgpgme.vers (gpgme_result_ref, gpgme_result_unref): - Add these. - * context.h (struct ctx_op_data): Add member "references". - * gpgme.c (gpgme_result_ref, gpgme_result_unref): New functions. - (_gpgme_release_result): Use gpgme_result_unref. - * op-support.c (_gpgme_op_data_lookup): Initialize references. - -2009-06-12 Werner Koch - - * gpgme-w32spawn.c (translate_get_from_file): Parse optional spawn - flags. Add new arg R_FLAGS. Fix segv on file w/o LF. - (translate_handles): Add new arg R_FLAGS. Avoid possible segv. - (main): Pass flags for my_spawn. - (my_spawn): Add arg FLAGS and implement AllowSetForegroundWindow. - - * priv-io.h (IOSPAWN_FLAG_ALLOW_SET_FG): New. - * w32-io.c (_gpgme_io_spawn): Add arg FLAGS and implement it. - * w32-glib-io.c (_gpgme_io_spawn): Ditto. - * w32-qt-io.cpp (_gpgme_io_spawn): Ditto. - * posix-io.c (_gpgme_io_spawn): Add dummy arg FLAGS. - * engine-gpg.c (start): Call spawn with new flag. - - * w32-util.c (_gpgme_allow_set_foregound_window): Rename to - _gpgme_allow_set_foreground_window. Change all callers. - * posix-util.c (_gpgme_allow_set_foreground_window): Ditto. - -2009-06-10 Werner Koch - - * w32-util.c (_gpgme_allow_set_foregound_window): Add trace support. - -2009-06-09 Werner Koch - - * engine-gpg.c (gpg_io_event): Test for cmd.fd. - - * version.c (gpgme_check_version_internal): Make result const. - - * gpgme.c: Include priv-io.h. - (gpgme_io_read, gpgme_io_write): New. - * libgpgme.vers (GPGME_1.1): Add them. - * gpgme.def: Ditto. - - * Makefile.am (main_sources): Remove gpgme.h. - (include_HEADERS): Rename to nodist_include_HEADERS so that a - VPATH build won't use the distributed one. - - * util.h (GPG_ERR_NOT_OPERATIONAL): Define. - -2009-05-28 Marcus Brinkmann - - * gpgme.h.in (gpgme_check_version_internal): New prototype. - (gpgme_check_version): New macro, overriding function of the same - name. - * libgpgme.vers, gpgme.def: Add gpgme_check_version_internal.o - * context.h (_gpgme_selftest): New variable declaration. - * version.c: Include "context.h". - (gpgme_check_version): Set _gpgme_selftest on success. - (gpgme_check_version_internal): New function. - * gpgme.c (_gpgme_selftest): Define it. - (gpgme_new): Check the selftest result. - -2009-05-18 Marcus Brinkmann - - * gpgme.h.in (gpgme_encrypt_flags_t): Add - GPGME_ENCRYPT_NO_ENCRYPT_TO. - * engine-gpg.c (gpg_encrypt): Pass --no-encrypt-to to gpg if - GPGME_ENCRYPT_NO_ENCRYPT_TO flag is set. - -2009-05-14 Werner Koch - - * gpgme.h.in (gpgme_status_code_t): Explicitly initialize for - better maintainability and to help debugging. - -2009-05-05 Marcus Brinkmann - - * gpgme.h.in: Add compile time check for _FILE_OFFSET_BITS. - -2009-04-15 Marcus Brinkmann - - * posix-io.c (_gpgme_io_socket, _gpgme_io_connect): New functions. - * w32-io.c (_gpgme_io_connect): Fix stupid error. - -2009-04-08 Marcus Brinkmann - - * w32-glib-io.c (giochannel_table): New members used, fd, socket. - (find_channel): Drop CREATE argument. - (new_dummy_channel_from_fd, new_channel_from_fd) - (new_channel_from_socket): New functions. - (_gpgm_io_fd2str): Implement for sockets. - (_gpgme_io_write, _gpgme_io_read): Translate EAGAIN errors - correctly. - (_gpgme_io_pipe): Fix for new channel bookkeeping. - (_gpgme_io_close, _gpgme_io_dup): Likewise. - (wsa2errno, _gpgme_io_socket, _gpgme_io_connect): New. - * w32-io.c (MAX_READERS, MAX_WRITERS): Bump up to 40. - (wsa2errno, _gpgme_io_socket, _gpgme_io_connect): New. - * w32-qt-io.cpp (_gpgme_io_socket, _gpgme_io_connect): New stubs. - * version.c [HAVE_W32_SYSTEM]: Include "windows.h. - (do_subsystem_inits) [HAVE_W32_SYSTEM]: Call WSAStartup. - * engine-assuan.c (llass_status_handler): Ignore EAGAIN errors. - -2009-03-18 Werner Koch - - * gpgme.h.in (GPGME_KEYLIST_MODE_EPHEMERAL): New. - * engine-gpgsm.c (gpgsm_keylist): Send new option. - -2009-03-13 Werner Koch - - * gpgme-config.in: Make sure locale is set to C. - -2009-02-24 Werner Koch - - * gpgme.h.in (struct _gpgme_op_assuan_result): New. - (gpgme_assuan_result_t): New. - (gpgme_op_assuan_result): Change return type. - (struct _gpgme_assuan_sendfnc_ctx) - (gpgme_assuan_sendfnc_ctx_t, gpgme_assuan_sendfnc_t):Remove. - (gpgme_assuan_inquire_cb_t): Changed. - * opassuan.c (op_data_t): Make use of a result structure. - (gpgme_op_assuan_result): Change return type. - (opassuan_start): Use result structure. - (result_cb): Ditto. - * engine-assuan.c (struct _gpgme_assuan_sendfnc_ctx): Remove. - (inquire_cb_sendfnc): Remove. - (inquire_cb): Change for new callback scheme. Not yet finished. - (llass_status_handler): Allow sending a CANCEL from the inquire CB. - -2009-02-04 Werner Koch - - * w32-glib-io.c (_gpgme_io_spawn): Make ARGV argument const to - match prototype. - * w32-qt-io.cpp (_gpgme_io_spawn): Ditto. - -2009-02-03 Werner Koch - - * gpgme.h.in (struct _gpgme_subkey): Add fields IS_CARDKEY and - CARD_NUMBER.. - * key.c (gpgme_key_unref): Release field CARD_NUMBER. - * keylist.c (keylist_colon_handler): Factor common code out to ... - (parse_sec_field15): New. Set card number. - -2009-01-26 Werner Koch - - * opassuan.c, dirinfo.c, engine-assuan.c: New. - * Makefile.am: Add them. - * engine-backend.h: Add _gpgme_engine_ops_assuan. - (struct engine_ops): Add field OPASSUAN_TRANSACT. Update all - engine intializers. - * Makefile.am (gpgsm_components): Add engine-assuan.c. - * gpgme.h.in (gpgme_protocol_t): Add GPGME_PROTOCOL_ASSUAN. - (gpgme_assuan_data_cb_t, gpgme_assuan_sendfnc_ctx_t) - (gpgme_assuan_inquire_cb_t, gpgme_assuan_status_cb_t): New. - (gpgme_op_assuan_transact_start, gpgme_op_assuan_transact): New. - * gpgme.c (gpgme_get_protocol_name): Ditto. - (gpgme_set_protocol): Support it. - * engine.c (gpgme_get_engine_info): Ditto. - (engine_ops): Register it. - (_gpgme_engine_op_assuan_transact): New. - * libgpgme.vers (gpgme_op_assuan_transact_start) - (gpgme_op_assuan_transact): New. - * gpgme.def (gpgme_op_assuan_transact_start) - (gpgme_op_assuan_transact): New. - * engine-backend.h (struct engine_ops): Add GET_HOME_DIR and - initialize to NULL for all engines. - * engine.c (engine_get_home_dir): New. - (gpgme_get_engine_info): Use it. - (_gpgme_set_engine_info): Use it. - * engine.h (engine_assuan_result_cb_t): New. - * context.h (ctx_op_data_id_t): Add OPDATA_ASSUAN. - - * util.h (GPG_ERR_UNFINISHED): Define if not yet defined. - - * version.c (gpgme_check_version): Protect trace arg against NULL. - -2009-01-19 Werner Koch - - * rungpg.c: Rename to engine-gpg.c - * Makefile.am (main_sources): Ditto. - -2008-12-03 Marcus Brinkmann - - * Makefile.am (status-table.h): Use $(builddir) to find gpgme.h. - -2008-11-18 Werner Koch - - * version.c (do_subsystem_inits): Always initialize I/O - subsystem. Fixes regression from 2007-08-02. - - * decrypt.c (_gpgme_decrypt_status_handler): Use - _gpgme_map_gnupg_error to parse the error code for decrypt.algorithm. - -2008-10-30 Marcus Brinkmann - - * wait-private.c (_gpgme_wait_on_condition): Remove unused - variable IDX. - * wait-global.c: Include ops.h to silence gcc warning. - (_gpgme_wait_global_event_cb): Pass error value directly. - * wait-user.c: Include ops.h to silence gcc warning. - - * posix-io.c (_gpgme_io_spawn): Make ARGV argument const to - silence gcc warning. Cast argument to execv to silence warning. - * w32-io.c (_gpgme_io_spawn): Likewise. - * priv-io.h (_gpgme_io_spawn): Likewise for prototype. - -2008-10-24 Werner Koch - - * rungpg.c (gpg_keylist_preprocess): Escape backslashes too. - -2008-10-23 Marcus Brinkmann - - * rungpg.c (gpg_keylist_preprocess): Convert percent escaped - string to C coded string. - -2008-10-20 Werner Koch - - * Makefile.am (EXTRA_DIST): Add gpgme.h.in. - - * gpgme.h: Rename to gpgme.h.in. - * gpgme.h.in (GPGME_VERSION): Use autoconf substitution. - - * posix-io.c: Include sys/uio.h. Fixes bug #818. - -2008-10-18 Marcus Brinkmann - - * w32-util.c (find_program_in_registry): Don't define. - (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path) - (_gpgme_get_gpgconf_path): Do not check for fooProgram in the - registry anymore. It is now no longer possible to overwrite the - default location in that way. - -2008-10-17 Werner Koch - - * w32-glib-io.c (_gpgme_io_fd2str): Use "%d" and not "%ld" to work - around a bug in mingw32. - -2008-09-23 Marcus Brinkmann - - * gpgme.c (gpgme_sig_notation_clear): Clear CTX->sig_notations. - Submitted by "Daniel Mueller" - -2008-09-16 Marcus Brinkmann - - * rungpg.c (gpg_new): Don't use errno with ttyname_r. - -2008-08-11 Marcus Brinkmann - - * rungpg.c (gpg_cancel): Remove cmd fd before status fd. - * gpgme.c (_gpgme_cancel_with_err): New function. - (gpgme_cancel): Reimplement in terms of _gpgme_cancel_with_err. - * wait-private.c (_gpgme_wait_on_condition): Use - _gpgme_cancel_with_err. - * wait-user.c (_gpgme_user_io_cb_handler): Likewise. - * wait-global.c (_gpgme_wait_global_event_cb, gpgme_wait): Likewise. - -2008-08-08 Marcus Brinkmann - - * rungpg.c (command_handler): Remove I/O callback on error, too. - -2008-06-29 Marcus Brinkmann - - * gpgme.c (gpgme_cancel_async): Remove unused variable. - -2008-06-27 Marcus Brinkmann - - * libgpgme.vers: Add gpgme_cancel_async. - * gpgme.def: Likewise. - - * context.h: Include "sema.h". - (struct gpgme_context): New members lock and canceled. - * gpgme.c (gpgme_new): Initialize lock. - (gpgme_release): Destroy lock. - (gpgme_cancel_async): New function. - * op-support.c (_gpgme_op_reset): Reset the canceled flag. - * wait-global.c (gpgme_wait): Check cancel flag before processing - any I/O callbacks. - * wait-private.c (_gpgme_wait_on_condition): Likewise. - * wait-user.c (_gpgme_user_io_cb_handler): Likewise. - -2008-06-26 Werner Koch - - * w32-util.c (_gpgme_mkstemp): Replace sprint by stpcpy. - (mkstemp): Need to use GetSystemTimeAsFileTime for better - compatibility. - -2008-06-25 Marcus Brinkmann - - * gpgme-w32spawn.c: New file. - * Makefile.am (libexec_PROGRAMS) [HAVE_W32_SYSTEM]: New variable - with gpgme-w32spawn. - * engine-gpgsm.c (gpgsm_new): Use server translated handles. - (gpgsm_set_locale): Return early if locale value is NULL. - * util.h (_gpgme_mkstemp) - (_gpgme_get_w32spawn_path) [HAVE_W32_SYSTEM]: New function - prototypes. - * w32-util.c: Include , and . - (letters, mkstemp, _gpgme_mkstemp, _gpgme_get_w32spawn_path): New - functions. - * rungpg.c (gpg_decrypt, gpg_encrypt, gpg_encrypt_sign) - (gpg_genkey, gpg_import, gpg_verify, gpg_sign): Pass data over - special filename FD rather than stdin. - (struct arg_and_data_s): Add member ARG_LOCP. - (struct fd_data_map_s): Add member ARG_LOC. - (struct engine_gpg): Add member ARG_LOC to status and colon. - (_add_arg, add_arg_with_locp): New function. - (add_arg_ext): Reimplement in terms of _add_arg. - (gpg_new): Remember argument location for status FD. - (build_argv): Set argument location if requested. Also set - argument location of fd_data_map for data items. - (start): Adjust caller of _gpgme_io_spawn. - * priv-io.h (struct spawn_fd_item_s): Add members peer_name and - arg_loc. - (_gpgme_io_spawn): Remove parent fd list argument. - * posix-io.c (get_max_fds): New function. - (_gpgme_io_dup): Add tracing. - (_gpgme_io_spawn): Remove parent fd list. Change meaning of child - fd list to contain all child fds that should be inherited. Close - all other file descriptors after fork. - * w32-io.c, w32-glib-io.c, w32-qt-io.c(_gpgme_io_spawn): Remove - parent fd list. Change meaning of child fd list to contain all - child fds that should be inherited. Do not inherit any file - descriptors, but DuplicateHandle them. Spawn process through - wrapper process. Provide wrapper process with a temporary file - containing handle translation data. Return translated handle - names. - * w32-io.c (reader): Add more tracing output. - (_gpgme_io_read): Likewise. - * engine-gpgconf.c (gpgconf_read): Adjust caller of - _gpgme_io_spawn. - * version.c (_gpgme_get_program_version): Likewise. - -2008-06-20 Werner Koch - - * engine-gpgconf.c (gpgconf_read): Change ARGV initialization for - compatibility with old compilers. Fix amount of memmove. Fix - CR removal. - -2008-06-19 Werner Koch - - * gpgme.h (GPGME_CONF_PATHNAME): Replace by GPGME_CONF_FILENAME, - change all callers and provide compatibilty macro. - (gpgme_conf_type_t): Add complex types 34..37. - * engine-gpgconf.c (gpgconf_parse_option, arg_to_data) - (_gpgme_conf_arg_new, _gpgme_conf_arg_release): Add new types. - -2008-06-19 Marcus Brinkmann - - * engine-gpgconf.c (gpgconf_parse_option): Fix comma detection. - -2008-05-09 Werner Koch - - * engine-gpgconf.c (gpgconf_read): Do not pass empty lines to the - callback. - -2008-05-07 Werner Koch - - * engine-gpgconf.c (gpgconf_write): Change argv[0] to a - self-explaining string. Needs a proper fix, though. - - * rungpg.c (gpg_keylist, gpg_keylist_ext): Factor common code out - to .. - (gpg_build_keylist_options): .. new. Allow combination of extern - and intern mode. - (gpg_new): DFT_TTYNAME is an array, thus check the first character. - -2008-05-06 Werner Koch - - * version.c (extract_version_string): New. - (_gpgme_get_program_version): Use it to allow for suffixes in the - version line. - -2008-04-28 Werner Koch - - * engine-gpgconf.c (gpgconf_read): Fixed segv. Avoid memmove for - each line. - -2008-04-22 Marcus Brinkmann - - * w32-qt-io.cpp, kdpipeiodevice.cpp: New versions from Frank - Osterfeld, implement blocking select. - -2008-03-11 Marcus Brinkmann - - * data.c (gpgme_data_read, gpgme_data_write): Retry on EINTR. - -2008-03-06 Marcus Brinkmann - - * key.c (_gpgme_key_add_sig): Terminate UID in case SRC is NULL. - Reported by Marc Mutz. - -2008-03-05 Marcus Brinkmann - - * decrypt.c (release_op_data): Release OPD->result.recipients. - * encrypt.c (release_op_data): Release invalid_recipient. - -2008-02-15 Marcus Brinkmann - - * engine-gpgconf.c (gpgconf_read): Fix end-of-line handline. - -2008-02-14 Werner Koch - - * w32-io.c (_gpgme_io_spawn): Add arg R_PID to return the pid. - * posix-io.c (_gpgme_io_spawn): Ditto. - * w32-glib-io.c (_gpgme_io_spawn): Ditto. - * w32-qt-io.cpp (_gpgme_io_spawn): Ditto. - * priv-io.h (_gpgme_io_spawn): Adjust prototyp and change all callers. - * rungpg.c (start): Call _gpgme_allow_set_foregound_window. - - * w32-util.c (_gpgme_allow_set_foregound_window): New. - * posix-util.c (_gpgme_allow_set_foregound_window): New. - * engine-gpgsm.c (default_inq_cb): New. - (gpgsm_new) [W32]: Enable pinentry notifications. - (status_handler): Handle inquiries. - -2008-01-30 Marcus Brinkmann - - * kdpipeiodevice.cpp: New version by Frank Osterfeld, fixes race - condition. - -2008-01-28 Marcus Brinkmann - - * engine-gpgsm.c (map_input_enc): Rename to ... - (map_data_enc): ... this. Also change all callers. - (gpgsm_encrypt, gpgsm_export, gpgsm_export_ext, gpgsm_genkey) - (gpgsm_sign): Set encoding for output. - -2008-01-28 Werner Koch - - * keylist.c (gpgme_get_key): Skip duplicated keys. Fixes bug 876. - -2008-01-14 Marcus Brinkmann - - * engine-gpgconf.c (gpgconf_config_load_cb): Fix program_name - field. - -2008-01-10 Marcus Brinkmann - - * kdpipeiodevice.cpp: New version from Frank Osterfeld. - - * engine-gpgconf.c (gpgconf_config_load_cb2): Handle the flag - NO_ARG_DESC. - -2008-01-04 Marcus Brinkmann - - * Makefile.am (gpgconf_components): New variable. - (main_sources): Add gpgconf.c. - * gpgme.h (gpgme_protocol_t): New protocol GPGME_PROTOCOL_GPGCONF. - (gpgme_conf_level_t, gpgme_conf_type_t, gpgme_conf_arg_t) - (gpgme_conf_opt_t, gpgme_conf_comp_t, gpgme_conf_arg_new) - (gpgme_conf_arg_release, gpgme_conf_opt_change) - (gpgme_conf_release, gpgme_op_conf_load, gpgme_op_conf_save): New - types. - * gpgconf.c, engine-gpgconf.c: New files. - * engine.h: (_gpgme_engine_op_conf_load, - (_gpgme_engine_op_conf_save): New prototypes. - * op-support.c (_gpgme_op_reset): Ignore not implemented locale - function. - * posix-util.c (_gpgme_get_gpgconf_path): New function. - * w32-util.c (_gpgme_get_gpgconf_path): New function. - * engine-gpgsm.c: - (_gpgme_engine_ops_gpgsm): Add stubs for conf_load and conf_save. - * rungpg.c: - (_gpgme_engine_ops_gpg): Add stubs for conf_load and conf_save. - * gpgme.def: Add new gpgconf related interfaces. - * libgpgme.vers: Likewise. - * util.h (_gpgme_get_gpgconf_path): New prototype. - * gpgme.h (gpgme_protocol_t): Add GPGME_PROTOCOL_GPGCONF. - * engine-backend.h (_gpgme_engine_ops_gpgconf): New prototype. - (struct engine_ops): Add members for conf_load and conf_save. - * engine.c (engine_ops): Add _gpgme_engine_ops_gpgconf. - (_gpgme_engine_op_conf_load, - (_gpgme_engine_op_conf_save): New functions. - (gpgme_get_engine_info): Allow protocol GPGME_PROTOCOL_GPGCONF. - -2007-11-28 Marcus Brinkmann - - * w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Search - for installation directory. Remove old fallback default. - (find_program_in_inst_dir): New function. - -2007-11-26 Werner Koch - - * engine-gpgsm.c (struct engine_gpgsm): Add field INLINE_DATA and - always reset it before calling start. - (gpgsm_new): Clear it. - (status_handler): Implement it. - (gpgsm_getauditlog) [USE_DESCRIPTOR_PASSING]: Use INLINE_DATA. - -2007-11-23 Werner Koch - - * op-support.c (_gpgme_op_reset): Implement a no-reset flag. - * getauditlog.c (getauditlog_start): Use that flag. - -2007-11-20 Werner Koch - - * op-support.c (_gpgme_parse_inv_recp): Add new reason code 11. - -2007-11-22 Werner Koch - - * gpgme.h (gpgme_op_getauditlog_start, gpgme_op_getauditlog): New. - * libgpgme.vers: Ditto. - * gpgme.def: Ditto. - * getauditlog.c: New. - * engine-backend.h (struct engine_ops): Add member GETAUDITLOG. - * engine-gpgsm.c (gpgsm_getauditlog): New. - (_gpgme_engine_ops_gpgsm): Insert new function. - (gpgsm_new): Try to enable audit log support. - * rungpg.c (_gpgme_engine_ops_gpg): Insert dummy entry. - -2007-11-12 Marcus Brinkmann - - * kdpipeiodevice.cpp: New version from Frank Osterfeld. - -2007-10-11 Marcus Brinkmann - - * kdpipeiodevice.cpp: New version from Frank Osterfeld. - -2007-10-09 Marcus Brinkmann - - * kdpipeiodevice.cpp: New version from Frank Osterfeld and Marc - Mutz. - -2007-10-05 Marcus Brinkmann - - * kdpipeiodevice.cpp, w32-qt-io.cpp: New versions from Frank - Osterfeld. - -2007-10-04 Marcus Brinkmann - - * kdpipeiodevice.h, kdpipeiodevice.cpp, kdpipeiodevice.moc, - w32-qt-io.cpp: New versions from Frank Osterfeld. - -2007-10-02 Marcus Brinkmann - - * kdpipeiodevice.cpp, kdpipeiodevice.moc: New versions. - * w32-qt-io.cpp (_gpgme_io_fd2str): Print actual_fd if available. - (_gpgme_io_dup): Only acquire a reference, do not actually dup. - Submitted by Frank Osterfeld. - - * priv-io.h, engine-gpgsm.c: Add comments. - * w32-qt-io.cpp (_gpgme_io_select): Remove code handling frozen FDs. - * w32-glib-io.c (_gpgme_io_close): Always dereference the channel, - even if not primary. - (_gpgme_io_dup): Acquire a reference. Replace unused - implementation by assertion. - -2007-09-28 Werner Koch - - * engine-gpgsm.c (iocb_data_t): Add SERVER_FD_STR. - (gpgsm_new): Set it. - (gpgsm_set_fd): Use it. - - * w32-glib-io.c (find_channel): Add a new primary flag. - (_gpgme_io_close): Close channel only if primary. - (_gpgme_io_dup): Put newfd into the table as shallow copy. - - * priv-io.h (struct io_select_fd_s): Remove member FROZEN. - * w32-io.c (_gpgme_io_select): Ditto. - * w32-glib-io.c (_gpgme_io_select): Ditto. - - * posix-io.c (_gpgme_io_select): Ditto. - * rungpg.c (read_status): Ditto. - * wait.c (fd_table_put): Ditto. - - * rungpg.c (gpg_io_event): Add tracing. - (start): Use gpg_io_event for sending the start event. - * engine-gpgsm.c (gpgsm_io_event): Add tracing. - (start): Use gpgsm_io_event for sending the start event. - * wait.c (_gpgme_add_io_cb, _gpgme_run_io_cb): Add tracing. - -2007-09-28 Marcus Brinkmann - - * kdpipeiodevice.moc, w32-qt-io.cpp, kdpipeiodevice.cpp: New - versions from Frank Osterfeld. - -2007-09-27 Marcus Brinkmann - - * w32-glib-io.c (_gpgme_io_spawn), - w32-qt-io.cpp (_gpgme_io_spawn), w32-io.c (_gpgme_io_spawn): Close - the process handle, return 0. - - * gpgme.h (gpgme_protocol_t): Add GPGME_PROTOCOL_UNKNOWN. - * gpgme.c (gpgme_get_protocol_name): Implement support for - GPGME_PROTOCOL_UNKNOWN. - - * kdpipeiodevice.h: Fix last change. - - * w32-glib-io.c (_gpgme_io_pipe), w32-qt-io.c (_gpgme_io_pipe), - w32-io.c (_gpgme_io_pipe), posix-io.c (_gpgme_io_pipe): Fix debug - output. - -2007-09-25 Marcus Brinkmann - - * conversion.c, keylist.c: Include . - - * kdpipeiodevice.h: Use namespace _gpgme_. - * kdpipeiodevice.cpp: Use namespace _gpgme_. - [Q_OS_WIN32 && NOMINMAX]: Do not define NOMINMAX again. - * w32-qt-io.cpp: Change namespace of KDPipeIODevice to - _gpgme_::KDPipeIODevice. - -2007-09-17 Werner Koch - - * rungpg.c (gpg_new): Make robust against undefined ttyname or - ttytype. - -2007-09-14 Werner Koch - - * data-mem.c (gpgme_data_release_and_get_mem): Fix tracing bug. - -2007-09-14 Marcus Brinkmann - - * gpgme.c (gpgme_release): Call gpgme_sig_notation_clear. - -2007-09-13 Marcus Brinkmann - - * rungpg.c (gpg_new): Handle return value of _gpgme_getenv (fixes - small memory leak). - -2007-09-07 Marcus Brinkmann - - * Makefile.am (libgpgme_qt_la_SOURCES): Move - moc_kdpipeiodevice.cpp to EXTRA_DIST, as this is only included by - another file (it's more like a header file than a cpp file, but - automake doesn't know that). - - * w32-qt-io.cpp (_gpgme_io_spawn): Fix several cast errors and typos. - * w32-io.c (_gpgme_io_write): Use TRACE_SYSRES instead of TRACE_SYS. - (libgpgme_qt_la_LIBADD): Add QT4_CORE_LIBS, not QT4_CORE_LIB. - - * kdpipeiodevice.h, kdpipeiodevice.cpp, moc_kdpipeiodevice.cpp, - kdpipeiodevice.moc, w32-qt-io.c: New files. - * Makefile.am (ltlib_gpgme_extra): Rename to ltlib_gpgme_glib. - (ltlib_gpgme_qt): New variable. - (lib_LTLIBRARIES): Add $(ltlib_gpgme_qt). - (libgpgme_qt_la_SOURCES): New variable. - (AM_CPPFLAGS): Add @QT4_CORE_INCLUDES@ - (AM_CFLAGS): Add @QT4_CORE_CFLAGS@. - (libgpgme_qt_la_LDFLAGS, libgpgme_qt_la_DEPENDENCIES) - (libgpgme_qt_la_LIBADD): New variables. - - * sema.h (struct critsect_s): Rename "private" to "priv" to make - C++ users happy. Change users. - * posix-sema.c (_gpgme_sema_cs_enter, _gpgme_sema_cs_leave) - (_gpgme_sema_cs_destroy): Likewise. - * w32-sema.c (critsect_init, _gpgme_sema_cs_enter) - (_gpgme_sema_cs_leave, _gpgme_sema_cs_destroy): Likewise. - * w32-glib-io.c (gpgme_get_giochannel): Change return type to - void*. - (gpgme_get_fdptr): New function. - * w32-io.c (gpgme_get_fdptr): New function - * gpgme.def: Add gpgme_get_fdptr. - -2007-08-22 Marcus Brinkmann - - * w32-io.c (_gpgme_io_write): Return early if COUNT is zero. - (writer): Remove superfluous check. - -2007-08-20 Marcus Brinkmann - - * gpgme.h: Move include of gpg-error.h out of extern "C". - -2007-08-07 Werner Koch - - * gpgme.h (struct _gpgme_signature): Add member CHAIN_MODEL. - * verify.c (parse_trust): Set Chain_MODEL. - -2007-08-02 Werner Koch - - * w32-glib-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS flag. - * w32-io.c (_gpgme_io_spawn): Ditto. - (_gpgme_io_write): Map ERROR_NO_DATA to EPIPE. - * debug.c (_gpgme_debug): Enable assuan logging. - (_gpgme_debug_subsystem_init): New. - * version.c (do_subsystem_inits): Disable assuan logging and - initialize the debug system. - (gpgme_check_version): Do not trace before the subsystems are - initialized. - -2007-07-17 Marcus Brinkmann - - * debug.c: Include and "debug.h". - (_gpgme_debug): Save and restore ERRNO. - (TOHEX): New macro. - (_gpgme_debug_buffer): New function. - * conversion.c, data-compat.c, data-mem.c, data.c, engine-gpgsm.c, - gpgme.c, keylist.c, posix-io.c, rungpg.c, sign.c, version.c, - w32-io.c, wait.c: Replace DEBUG macros by TRACE_* variants. In - most of these files, add many more tracepoints. - -2007-07-16 Marcus Brinkmann - - * engine-gpgsm.c (status_handler): Do not send BYE here. - - * w32-io.c (struct reader_context_s, struct writer_context_s): New - members REFCOUNT. - (create_reader, create_writer): Initialize C->refcount to 1. - (destroy_reader, destroy_writer): Only destroy if C->refcount - drops to 0. - (find_reader, find_writer, kill_reader, kill_writer): Beautify. - * priv-io.h (_gpgme_io_dup): New prototype. - * posix-io.c (_gpgme_io_dup): New function. - * w32-io.c (_gpgme_io_dup): Likewise. - * w32-glib-io.c (_gpgme_io_dup): Likewise. - * engine-gpgsm.c (start): Reverting to version 2007-07-10. - -2007-07-13 Marcus Brinkmann - - * data-user.c (user_read, user_write, user_seek): Set errno and - return -1 instead returning the error code directly. - * data-compat.c (old_user_seek): Likewise. - * gpgme.c (gpgme_sig_notation_add): Return error properly. - - * Revert the "close_notify_handler" returns int stuff. Always - close in the _gpgme_io_close implementations. - * engine-gpgsm.c (status_handler): Try to terminate the connection - in case of error. - * w32-io.c (_gpgme_io_read): Return C->error_code in ERRNO. - (_gpgme_io_write): Likewise. - - * priv-io.h (_gpgme_io_set_close_notify): Change type of HANDLER - to _gpgme_close_notify_handler. - (_gpgme_close_notify_handler): New type. - (_gpgme_io_dup): Remove prototype. - * posix-io.c (notify_table, _gpgme_io_set_close_notify): Change - type of HANDLER to _gpgme_close_notify_handler_t. - (_gpgme_io_close): Do not close the FD if handler returns 0. - (_gpgme_io_dup): Remove function. - * w32-io.c (notify_table, _gpgme_io_set_close_notify, - _gpgme_io_close): Change type of HANDLER to - _gpgme_close_notify_handler_t. - (_gpgme_io_close): Do not close the FD if handler returns 0. - (_gpgme_io_dup): Remove function. - * w32-glib-io.c (_gpgme_io_dup): Remove function. - (_gpgme_io_set_close_notify, notify_table): Change type of HANDLER - to _gpgme_close_notify_handler_t. - (_gpgme_io_close): Do not close the FD if handler returns 0. - * rungpg.c (close_notify_handler): Change return type to int, - return 1. - * engine-gpgsm.c (close_notify_handler): Change return type to - int, return 0 for status FD and 1 for all other FDs. - (start): Do not duplicate the status FD. - -2007-07-12 Marcus Brinkmann - - * Makefile.am: Replace implicite rule by suffix rule. Add - SUFFIXES for that. - -2007-07-12 Werner Koch - - * version.c (do_subsystem_inits) [W32]: Make sure that the socket - system has been started. - -2007-07-10 Marcus Brinkmann - - * priv-io.h (_gpgme_io_dup): New prototype. - * posix-io.c (_gpgme_io_dup): New function. - * w32-io.c (_gpgme_io_dup): Likewise. - * w32-glib-io.c (_gpgme_io_dup): Likewise. - * engine-gpgsm.c (start): Use _gpgme_dup() instead of dup(). - -2007-07-08 Marcus Brinkmann - - * engine-gpgsm.c [HAVE_W32_SYSTEM]: Enable the bunch of the file. - * funopen.c (funopen): Rename to _gpgme_funopen. - -2007-04-30 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_new): Fix error handling for ttyname_r. - * rungpg.c (gpg_new): Likewise. - Submitted by Stephen Tether. - -2007-02-26 Werner Koch - - * verify.c (op_data_t): New element PLAINTEXT_SEEN. - (_gpgme_verify_status_handler): Return an error if more than one - plaintext has been seen. - (parse_error): New arg SET_STATUS. Also detect it based on an - ERROR status (gpg > 1.4.6). - -2007-01-26 Werner Koch - - * 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 - - * data.h (_gpgme_data_get_fd): Add prototype. - (gpgme_data_get_fd_cb): New type. - (struct _gpgme_data_cbs): New member get_fd. - * data.c (_gpgme_data_get_fd): New function. - * data-fd.c (fd_get_fd): New function. - (fd_cbs): Add fd_get_fd. - * data-stream.c (stream_get_fd): New function. - (stream_cbs): Add stream_get_fd. - * data-mem.c (mem_cbs): Add NULL for get_fd callback. - * data-user.c (user_cbs): Likewise. - * engine-gpgsm.c (gpgsm_set_fd) [USE_DESCRIPTOR_PASSING]: Try to - short-cut by passing the data descriptor directly. - -2007-01-17 Marcus Brinkmann - - * w32-io.c (build_commandline): Quote all command line arguments. - * w32-glib-io.c (build_commandline): Likewise. - -2007-01-10 Werner Koch - - * ttyname_r.c (ttyname_r) [W32]: Return a dummy name. - -2007-01-08 Werner Koch - - * version.c (do_subsystem_inits): Do assuan init only if building - with Assuan. - * setenv.c: Include assuan-def.h only if building with Assuan - support. - - * op-support.c (_gpgme_op_reset): Set LC_MESSAGES only if - if defined. - * engine-gpgsm.c (gpgsm_set_locale): Ditto. - * rungpg.c (gpg_set_locale): Ditto. - -2006-12-17 Marcus Brinkmann - - * gpgme.c (gpgme_set_protocol): Shut down the engine when - switching protocols. - (gpgme_ctx_set_engine_info): Likewise for engine info. - * engine.h (_gpgme_engine_reset): New function prototype. - * engine.c (_gpgme_engine_reset): New function. - * engine-backend.h (struct engine_ops): New member RESET. - * rungpg.c (_gpgme_engine_ops_gpg): Add NULL for reset function. - * engine-gpgsm.c (_gpgme_engine_ops_gpgsm) - [USE_DESCRIPTOR_PASSING]: Add gpgsm_reset for reset. - (_gpgme_engine_ops_gpgsm) [!USE_DESCRIPTOR_PASSING]: Add NULL for - reset function. - (gpgsm_reset) [USE_DESCRIPTOR_PASSING]: New function. - * op-support.c (_gpgme_op_reset): Try to use the engine's reset - function if available. - * engine-gpgsm.c (gpgsm_new): Move code to dup status_fd to ... - (start): ... here. - * posix-io.c (_gpgme_io_recvmsg, _gpgme_io_sendmsg): New functions. - - * engine.h (_gpgme_engine_new): Remove arguments lc_ctype and - lc_messages from prototype. - (_gpgme_engine_set_locale): New prototype. - * engine.c (_gpgme_engine_set_locale): New function. - * op-support.c (_gpgme_op_reset): Call _gpgme_engine_set_locale. - * engine-backend.h (struct engine_ops): Add new member SET_LOCALE. - Remove arguments lc_messages and lc_ctype from member NEW. - * engine-gpgsm.c (struct engine_gpgsm): New members lc_ctype_set - and lc_messages_set. - (gpgsm_new): Remove lc_messages and lc_ctype - arguments. - (gpgsm_set_locale): New function. - (_gpgme_engine_ops_gpgsm): Add gpgsm_set_locale. - * rungpg.c (struct engine_gpg): Add new members lc_messages and - lc_ctype. - (gpg_release): Release lc_messages and lc_ctype if set. - (gpg_new): Remove lc_messages and lc_ctype arguments. - (gpg_set_locale): New function. - (_gpgme_engine_ops_gpg): Add gpg_set_locale. - (add_arg): Implement in terms of: - (add_arg_ext): New function. - (start): Set lc-messages and lc-ctype arguments here. - -2006-12-03 Marcus Brinkmann - - * engine-gpgsm.c (struct engine_gpgsm): Move members - input_fd_server, output_fd_server, message_fd_server to ... - (iocb_data): ... here (as server_fd). - (close_notify_handler): Reset tags as well. - (gpgsm_new): Implement support for descriptor - passing. - (fd_type_t): New type. - (gpgsm_clear_fd): New function. Use it instead of _gpgsm_io_close - for unused communication channels. - (gpgsm_set_fd): Rewritten to support descriptor passing. All - relevant callers adjusted as well (previously of _gpgme_io_close). - -2006-12-02 Marcus Brinkmann - - * version.c: Include "assuan.h". - (do_subsystem_inits): Call assuan_set_assuan_err_source. - -2006-12-01 Marcus Brinkmann - - * Makefile.am (libgpgme_real_la_SOURCES): Rename to main_sources. - (libgpgme_la_SOURCES, libgpgme_pthread_la_SOURCES, - libgpgme_glib_la_SOURCES, libgpgme_pth_la_SOURCES): Add - $(main_sources). - (libgpgme_la_DEPENDENCIES, libgpgme_la_LIBADD, - libgpgme_pthread_la_DEPENDENCIES, libgpgme_pthread_la_LIBADD, - libgpgme_pth_la_DEPENDENCIES, libgpgme_pth_la_LIBADD, - libgpgme_glib_la_DEPENDENCIES, libgpgme_glib_la_LIBADD): Remove - libgpgme-real.la. - (noinst_LTLIBRARIES): Removed. - (libgpgme_glib_la_CFLAGS, libgpgme_pth_la_CFLAGS): Removed. - (AM_CFLAGS): New variable. - -2006-11-30 Marcus Brinkmann - - * engine-gpgsm.c: Replace AssuanError with gpg_error_t and - ASSUAN_CONTEXT with assuan_context_t. - -2006-11-29 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_new): Check return value of - assuan_pipe_connect. - - * rungpg.c: Include . - (gpg_new): Support --display, --ttyname, --ttytype, --lc-ctype and - --lc-messages. Fixes issue 734. - -2006-10-24 Marcus Brinkmann - - * trustlist.c (gpgme_op_trustlist_next): Return error if OPD is - NULL. - -2006-10-23 Marcus Brinkmann - - * wait-global.c (gpgme_wait): Unlock CTX_LIST_LOCK while calling - _gpgme_engine_io_event(). - - * keylist.c (gpgme_op_keylist_next): Return error if OPD is NULL. - -2006-09-25 Marcus Brinkmann - - * data-mem.c (gpgme_data_release_and_get_mem): Release the data - object properly. - -2006-09-22 Marcus Brinkmann - - * keylist.c (keylist_colon_handler): Move debug output after - initialising KEY. - -2006-07-29 Marcus Brinkmann - - * gpgme-config.in (Options): Add NETLIBS. - * Makefile.am (libgpgme_la_LIBADD, libgpgme_pthread_la_LIBADD, - libgpgme_pth_la_LIBADD, libgpgme_glib_la_LIBADD): Add NETLIBS. - - * rungpg.c (read_status): Fix comparison disguising as an - assignment. - -2005-03-24 Marcus Brinkmann - - * gpgme.c (gpgme_set_locale): Remove conditional on - HAVE_W32_SYSTEM, and just check for LC_MESSAGES. - -2006-07-16 Marcus Brinkmann - - * rungpg.c (read_status): Strip potential carriage return. - * genkey.c (get_key_parameter): Skip potential carriage return. - * version.c (_gpgme_get_program_version): Strip potential carriage - return. - - * data.c (gpgme_data_set_file_name): Allow to clear the file name - by passing NULL. - -2006-06-22 Marcus Brinkmann - - * keylist.c (gpgme_get_key): Also clone the engine info. - -2006-03-06 Marcus Brinkmann - - * gpgme-config.in (cflags_pth): Revert accidential removal of - pthread support with last change. - -2006-02-28 Marcus Brinkmann - - * w32-glib-io.c (O_BINARY) [!O_BINARY]: New macro. - (_gpgme_io_pipe): Open pipes in binary mode. - -2006-02-22 Marcus Brinkmann - - * engine.c (gpgme_engine_check_version): Reimplemented to allow - checking the version correctly even after changing the engine - information. Bug reported by Stéphane Corthésy. - - * rungpg.c (read_colon_line): Invoke colon preprocess handler if - it is set. - (colon_preprocessor_t): New type. - (struct engine_gpg): New member colon.preprocess_fnc. - (gpg_keylist_preprocess): New function. - * keylist.c (keylist_colon_handler): Allow short key IDs. - -2006-02-15 Marcus Brinkmann - - * w32-io.c (create_writer): Make C->have_data a manually resetted - event. - (writer): Move code from end of if block to beginning, so it - is also run the first time. - (_gpgme_io_write): Move assert check after error check. Reset - the is_empty event, and also do it eagerly. - (_gpgme_io_select): Unconditionally wait for the is_empty event. - -2006-01-26 Werner Koch - - * w32-util.c (_gpgme_get_conf_int): New. - * posix-util.c (_gpgme_get_conf_int): New. - * w32-io.c (get_desired_thread_priority): New. - (create_reader, create_writer): Use it here. - -2006-01-04 Werner Koch - - * debug.h (_gpgme_debug_srcname): New. Use it with the debug macros. - - * w32-glib-io.c (_gpgme_io_set_nonblocking): Add debug - statements. Disable error return for failed nonblocking call. - -2006-01-03 Marcus Brinkmann - - * w32-glib-io.c (_gpgme_io_close): Only close fd if there is no - channel for it. - -2005-12-31 Marcus Brinkmann - - * w32-glib-io.c (find_channel): Set channel to unbuffered. - (_gpgme_io_select): Fix debug output. - -2005-12-23 Werner Koch - - * gpgme.h (struct _gpgme_signature): Append field PKA_ADDRESS. - * verify.c (release_op_data, _gpgme_verify_status_handler): Set - this field. - -2005-12-20 Werner Koch - - * gpgme.h (gpgme_status_code_t): Added GPGME_STATUS_PKA_TRUST_BAD - and GPGME_STATUS_PKA_TRUST_GOOD. - (struct _gpgme_signature): New field pka_trust. - * verify.c (_gpgme_verify_status_handler): Set pka_trust. - -2005-12-06 Werner Koch - - * keylist.c (keylist_colon_handler): Store fingerprints of the - subkeys. Reset the secret flag of subkeys for stub secret keys. - (NR_FIELDS): Bumped up to 16 - -2005-11-27 Marcus Brinkmann - - * engine.c (_gpgme_set_engine_info): Use new_file_name in - engine_get_version invocation. Reported by Stéphane Corthésy. - -2005-11-24 Marcus Brinkmann - - * w32-glib-io.c (_gpgme_io_fd2str): Remove debug printf. - -2005-11-18 Werner Koch - - * w32-glib-io.c: Include glib.h before windows to avoid a symbol - shadowing warning. - (find_channel): Better use g_io_channel_win32_new_fd instead of - the autodetection function g_io_channel_unix_new. - (_gpgme_io_select): Rewritten. It is now a fully working select - implementation. - -2005-11-18 Marcus Brinkmann - - * priv-io.h (_gpgme_io_fd2str): New prototype. - * posix-io.c (_gpgme_io_fd2str): New function. - * w32-io.c (_gpgme_io_fd2str): New function. - * rungpg.c: Use this new function. - * w32-glib-io.c (_gpgme_io_fd2str): Rewrote the file handle code - again. Two's company, three's the musketeers. - - * w32-glib-io.c: Rewrote the file handle code. We don't create - system fds for every handle (doesn't work for inherited handles), - but we create pseudo fds in a private namespace that designate a - handle and potentially a giochannel. - -2005-11-18 Werner Koch - - * versioninfo.rc.in: Set file version to LT-version + Svn-revision. - -2005-11-17 Marcus Brinkmann - - * w32-glib-io.c: New file. - * gpgme.def (gpgme_get_giochannel): Add symbol. - * Makefile.am (system_components) [HAVE_DOSISH_SYSTEM]: Remove - w32-io.c. - (ltlib_gpgme_extra): New variable. - (lib_LTLIBRARIES): Add $(ltlib_gpgme_extra). - (system_components_not_extra): New variable. - (libgpgme_la_SOURCES, libgpgme_pthread_la_SOURCES, - (libgpgme_pth_la_SOURCES): Add $(system_components_not_extra). - (libgpgme_glib_la_LDFLAGS, libgpgme_glib_la_DEPENDENCIES, - (libgpgme_glib_la_LIBADD, libgpgme_glib_la_CFLAGS) - [BUILD_W32_GLIB]: New variables. - * gpgme-config.in (glib): New option. - * gpgme.m4 (AM_PATH_GPGME_GLIB): New macro. - -2005-11-17 Marcus Brinkmann - - * priv-io.h (_gpgme_io_waitpid, _gpgme_io_kill): Removed. - * w32-io.c (_gpgme_io_waitpid, _gpgme_io_kill): Removed. - * posix-io.c (_gpgme_io_kill): Removed. - (_gpgme_io_waitpid): Declare static. - -2005-10-24 Marcus Brinkmann - - * w32-io.c (_gpgme_io_spawn): Don't minimize window, hide it. - -2005-10-21 Werner Koch - - * Makefile.am: Fixed cut+paste problem - -2005-10-20 Marcus Brinkmann - - * Makefile.am: Build versioninfo.lo, not versioninfo.o. Also, fix - the whole mess. - -2005-10-16 Marcus Brinkmann - - * rungpg.c (gpg_edit): Don't add a key argument if in card edit - mode. - -2005-10-06 Marcus Brinkmann - - * Makefile.am (gpgme.dll gpgme.dll.a): Use $(srcdir) for - gpgme.def. - - * gpgme.h (gpgme_free): New prototype. - * data-mem.c (gpgme_free): New function. - * libgpgme.vers (GPGME_1.1): Add gpgme_free. - * gpgme.def: Add gpgme_free. - -2005-10-02 Marcus Brinkmann - - * util.h (_gpgme_decode_percent_string): Add new argument BINARY - to prototype. - * verify.c (parse_notation): Likewise for invocation. - * conversion.c (_gpgme_decode_percent_string): Likewise to - declaration. If set, do not replace '\0' characters with a - printable string. - * gpgme.h (struct _gpgme_key_sig): New field notations. - * ops.h (_gpgme_parse_notation): New prototype. - * sig-notation.c (_gpgme_parse_notation): New function. - * key.c (gpgme_key_unref): Free all signature notations. - * keylist.c (op_data_t): New member tmp_keysig. - (finish_key): Clear OPD->tmp_keysig. - * gpgme.c (gpgme_set_keylist_mode): Remove check. - * rungpg.c (gpg_keylist): Support listing signature notations. - (gpg_keylist_ext): Likewise. - -2005-10-01 Marcus Brinkmann - - * engine.h (_gpgme_set_engine_info): Add prototype. - * engine-backend.h (struct engine_ops): Change return type of - get_file_name() to const char * to silence gcc warning. - * engine.c (engine_get_file_name): Change return type to const - char * to silence gcc warning. - (gpgme_get_engine_info): Use transitional variable to go from - const char * to char * to silence gcc warning. - (_gpgme_set_engine_info): Likewise. - * engine-gpgsm.c (struct engine_gpgsm): Change type of LINE to - char * to silence gcc warning. - (gpgsm_new): Make ARGV a pointer to const char. - (status_handler): Change type of SRC, END, DST, ALINE and NEWLINE - to char * to silence gcc warning. - - * gpgme.def: Add gpgme_data_set_file_name, - gpgme_data_get_file_name, gpgme_sig_notation_clear, - gpgme_sig_notation_add and gpgme_sig_notation_get. - * libgpgme.vers: Add gpgme_sig_notation_clear, - gpgme_sig_notation_add and gpgme_sig_notation_get. - * Makefile.am (libgpgme_real_la_SOURCES): Add sig-notation.c. - * context.h (struct gpgme_context): New field sig_notations. - * gpgme.h (struct _gpgme_sig_notation): New member value_len and - critical. - (GPGME_SIG_NOTATION_CRITICAL): New symbol. - (gpgme_sig_notation_flags_t): New type. - (gpgme_sig_notation_add, gpgme_sig_notation_clear, - gpgme_sig_notation_get): New prototypes. - * ops.h (_gpgme_sig_notation_create, _gpgme_sig_notation_free): - New prototypes. - * sig-notation.c (_gpgme_sig_notation_free): New file. - * verify.c (parse_notation): Use support functions. - (release_op_data): Likewise. - * rungpg.c (append_args_from_sig_notations): New function. - (gpg_encrypt_sign, gpg_sign): Call it. - -2005-09-30 Marcus Brinkmann - - * data.h (struct gpgme_data): New member file_name. - * data.c (gpgme_data_set_filename): New function. - (_gpgme_data_release): Free DH->filename if necessary. - (gpgme_data_get_filename): New function. - * rungpg.c (gpg_encrypt): Set filename option. - (gpg_encrypt_sign): Likewise. - (gpg_sign): Likewise. - * libgpgme.vers (GPGME_1.1): Add gpgme_data_set_file_name and - gpgme_data_get_file_name. - - * decrpyt.c, verify.c, gpgme.h: Replace plaintext_filename with - file_name. - -2005-09-29 Marcus Brinkmann - - * gpgme.h (struct _gpgme_key): Add field is_qualified. - (struct _gpgme_subkey): Likewise. - * keylist.c (set_subkey_capability, set_mainkey_capability): Set - field is_qualified. - -2005-09-23 Werner Koch - - * w32-io.c (_gpgme_io_pipe): Removed use of environment variable - again. - (create_reader, create_writer): Set thread priority higher. - -2005-09-19 Werner Koch - - * w32-io.c (_gpgme_io_pipe): New environment variable to change - the size of the pipe buffer. - -2005-09-13 Werner Koch - - * ath.c: Changes to make it work under W32. - -2005-09-12 Marcus Brinkmann - - * Makefile.am (libgpgme_la_SOURCES): Set to ath.h and ath.c. - (ath_pth_src, ath_pthread_src): Removed. - (w32_o_files): Replace ath-compat.o with ath.o. - (libgpgme_pth_la_CFLAGS): New variable. - * ath-compat.c, ath-pthread-compat.c, ath-pth-compat.c: Removed. - * ath.h (ath_pthread_available, ath_pth_available): Removed. - (ath_init) [!_ATH_EXT_SYM_PREFIX]: Do not define macro. - (struct ath_ops, ath_init) [_ATH_COMPAT]: Removed. - (_ATH_COMPAT): Macro removed. - * posix-sema.c (_gpgme_sema_subsystem_init): Do not call - _gpgme_ath_init. - -2005-09-12 Marcus Brinkmann - - * keylist.c (release_op_data): Do not free opd->tmp_uid. - -2005-09-07 Werner Koch - - * w32-io.c (build_commandline): Quote argv[0]. - -2005-08-26 Marcus Brinkmann - - * rungpg.c (command_handler): Use _gpgme_io_write instead of write. - - * edit.c (command_handler): Do not depend on PROCESSED being - available. - - * engine.h (engine_command_handler_t): Add new argument processed. - * ops.h (_gpgme_passphrase_command_handler_internal): Rename - prototype to ... - (_gpgme_passphrase_command_handler): ... this one. - * passphrase.c (_gpgme_passphrase_command_handler_internal): - Rename to ... - (_gpgme_passphrase_command_handler): ... this one. - * edit.c (command_handler): Add new argument processed. Remove - local variable with the same name. Always return processed as - true. - * rungpg.c (command_handler): Send a newline character if the - handler did not. - -2005-08-26 Werner Koch - - * w32-util.c (read_w32_registry_string): Updated from code used by - GnuPG. This allows for expanding strings and features the - implicit fallback key. - (w32_shgetfolderpath, find_program_at_standard_place): New. - (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): With no registry - entry, locate the programs at the standard place. - (dlopen, dlsym, dlclose): New, so that we can keep on using what - we are accustomed to. - - * debug.c (debug_init): Use PATHSEP_C so that under W32 a - semicolon is used which allows us to create files with drive - letters. - - * w32-io.c (_gpgme_io_read, _gpgme_io_write): Print content in - debug mode too. - -2005-07-27 Marcus Brinkmann - - * gpgme.h (gpgme_status_code_t): Add GPGME_STATUS_PLAINTEXT. - (struct _gpgme_op_decrypt_result): New member plaintext_filename. - (struct _gpgme_op_verify_result): Likewise. - * ops.h (_gpgme_parse_plaintext): Add prototype. - * op-support.c (_gpgme_parse_plaintext): New function. - * decrypt.c (release_op_data): Release - OPD->result.plaintext_filename. - (_gpgme_decrypt_status_handler): Handle GPGME_STATUS_PLAINTEXT. - * verify.c (release_op_data): Release - OPD->result.plaintext_filename. - (_gpgme_verify_status_handler): Handle GPGME_STATUS_PLAINTEXT. - -2005-08-08 Werner Koch - - * util.h (stpcpy): Renamed to .. - (_gpgme_stpcpy): .. this and made inline. This avoids duplicate - definitions when linking statically. - * stpcpy.c: Removed. - -2005-08-19 Werner Koch - - * gpgme.def: New. - * versioninfo.rc.in: New. - * Makefile.am: Addes support for building a W32 DLL. - - * ttyname_r.c (ttyname_r) [W32]: Return error. - * ath-compat.c [W32]: select and co are not yet supported; return - error. - * data-stream.c (stream_seek): Use ftell if ftello is not available. - -2005-07-26 Marcus Brinkmann - - * keylist.c (gpgme_get_key): Allow key IDs. - -2005-06-20 Marcus Brinkmann - - * gpgme.m4: Only call GPGME_CONFIG if found. - -2005-06-03 Marcus Brinkmann - - * gpgme.h (struct _gpgme_signature): New members pubkey_algo and - hash_algo. - * verify.c (parse_valid_sig): Parse pubkey and hash algo numbers. - (parse_new_sig): Parse pubkey, hash algo and timestamp for ERRSIG. - - (_gpgme_decrypt_status_handler): Fix last change. - - * gpgme.h (struct _gpgme_recipient): New structure. - (gpgme_recipient_t): New type. - (struct _gpgme_op_decrypt_result): Add member recipients. - * decrypt.c (op_data_t): New member last_recipient_p. - (_gpgme_op_decrypt_init_result): Initialize last_recipient_p. - (parse_enc_to): New function. - (_gpgme_decrypt_status_handler): Handle status ENC_TO and - NO_SECKEY. - - * wait-global.c (gpgme_wait): Break out of the fd processing loop - after an error. - Reported by Igor Belyi . - -2005-06-02 Marcus Brinkmann - - * wait.h (_gpgme_run_io_cb): New prototype. - * wait.c (_gpgme_run_io_cb): New function. - * wait-global.c (gpgme_wait): Call it. - * wait-user.c (_gpgme_user_io_cb_handler): Likewise. - * wait-private.c (_gpgme_wait_on_condition): Likewise. - -2005-06-02 Werner Koch - - * passphrase.c (_gpgme_passphrase_status_handler): Take care of - GPGME_STATUS_NEED_PASSPHRASE_PIN. - (_gpgme_passphrase_command_handler_internal): Also act on the key - "passphrase.pin.ask". - - * gpgme.h: Added status codes GPGME_STATUS_SIG_SUBPACKET, - GPGME_STATUS_NEED_PASSPHRASE_PIN, GPGME_STATUS_SC_OP_FAILURE, - GPGME_STATUS_SC_OP_SUCCESS, GPGME_STATUS_CARDCTRL, - GPGME_STATUS_BACKUP_KEY_CREATED. - -2005-05-28 Marcus Brinkmann - - * data-user.c: Include . - -2005-05-17 Marcus Brinkmann - - * gpgme.c (gpgme_new): Set the CTX->include_certs default to the - default. - -2005-05-11 Marcus Brinkmann - - * w32-io.c (_gpgme_io_select): Fix loop increment. - -2005-05-05 Marcus Brinkmann - - * data-user.c (user_release): Only call user hook if provided. - (user_seek): Return EBADF if no user hook is provided. - (user_read): Likewise. - (user_write): Likewise. - -2005-04-28 Marcus Brinkmann - - * gpgme.h (GPGME_INCLUDE_CERTS_DEFAULT): New macro. - * engine-gpgsm.c (gpgsm_sign): Send the include-certs option after - the reset, just for cleanliness, and do not sent it at all if the - default is requested. - * gpgme.c (gpgme_set_include_certs): Allow to use - GPGME_INCLUDE_CERTS_DEFAULT. - -2005-04-21 Werner Koch - - * verify.c (calc_sig_summary): Set the key revoked bit. - -2005-04-14 Marcus Brinkmann - - * wait-global.c (gpgme_wait): Use LI->ctx when checking a context - in the list, not the user-provided CTX. - Reported by Igor Belyi . - - * wait-global.c (gpgme_wait): If no context is found, and we - should not hang, set *status to 0 and return NULL. - Reported by Igor Belyi . - -2005-03-24 Marcus Brinkmann - - * data.h (EOPNOTSUPP) [_WIN32]: Remove definition. - * data.c (EOPNOTSUPP) [HAVE_W32_SYSTEM]: Remove definition. - (gpgme_data_read, gpgme_data_write, gpgme_data_seek): Return - ENOSYS instead EOPNOTSUPP. - * data-compat.c (EOPNOTSUPP) [HAVE_W32_SYSTEM]: Remove definition. - (gpgme_error_to_errno): Map GPG_ERR_NOT_SUPPORTED - to ENOSYS. - -2005-03-24 Marcus Brinkmann - - * io.h: Rename to ... - * priv-io.h: ... this. - * Makefile.am (libgpgme_real_la_SOURCES): Change io.h to priv-io.h. - * data.c, engine-gpgsm.c, posix-io.c, rungpg.c, version.c, - w32-io.c, wait-private.c, wait-global.c, wait-user.c, wait.c: - Change all includes of "io.h" to "priv-io.h" - -2005-03-09 Werner Koch - - * w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Do not - cast away type checks. - - * io.h [W32]: Do not include stdio.h. If it is needed do it at - the right place. - - * data.h [W32]: Removed kludge for EOPNOTSUP. - * data.c, data-compat.c [W32]: Explicitly test for it here. - - Replaced use of _WIN32 by HAVE_W32_SYSTEM except for public header - files. - -2005-03-07 Timo Schulz - - * gpgme.h: [_WIN32] Removed ssize_t typedef. - * ath.h: [_WIN32] Added some (dummy) types. - * io.h: [_WIN32] include stdio.h. - * data.h: [_WIN32] Define EOPNOTSUPP. - * w32-io.c [_WIN32] (_gpgme_io_subsystem_init): New. - * gpgme.c [_WIN32] (gpgme_set_locale): Disabled. - -2004-12-12 Marcus Brinkmann - - * engine.c (_gpgme_set_engine_info): Fix assertion. - -2004-12-11 Marcus Brinkmann - - * util.h [HAVE_CONFIG_H && HAVE_TTYNAME_R] (ttyname_r): Define - prototype. - * ttyname_r.c: New file. - -2004-12-07 Marcus Brinkmann - - * putc_unlocked.c, funopen.c: I just claim copyright on these - files and change their license to LGPL, because they are totally - trivial wrapper functions. - * isascii.c: Change copyright notice to the one from ctype/ctype.h - in the GNU C Library (CVS Head 2004-10-10), where isascii is - defined as a macro doing exactly the same as the function in this - file. - * memrchr.c: Update from the GNU C Library (CVS Head 2001-07-06). - * stpcpy.c: Update from the GNU C Library (CVS Head 2004-10-10). - * ath.c, ath-compat.c, ath.h, ath-pth.c, ath-pth-compat.c, - ath-pthread.c, ath-pthread-compat.c, context.h, conversion.c, - data.c, data-compat.c, data-fd.c, data.h, data-mem.c, - data-stream.c, data-user.c, debug.c, debug.h, decrypt.c, - decrypt-verify.c, delete.c, edit.c, encrypt.c, encrypt-sign.c, - engine-backend.h, engine.c, engine-gpgsm.c, engine.h, error.c, - export.c, genkey.c, get-env.c, gpgme.c, gpgme.h, import.c, io.h, - key.c, keylist.c, mkstatus, Makefile.am, ops.h, op-support.c, - passphrase.c, posix-io.c, posix-sema.c, posix-util.c, progress.c, - rungpg.c, sema.h, sign.c, signers.c, trust-item.c, trustlist.c, - util.h, verify.c, version.c, w32-io.c, w32-sema.c, w32-util.c, - wait.c, wait-global.c, wait.h, wait-private.c, wait-user.c: Change - license to LGPL. - -2004-12-07 Marcus Brinkmann - - * libgpgme.vers (GPGME_1.1): New version. - * engine-backend.h (struct engine_ops): Add argument FILE_NAME to - member get_version(). Add arguments FILE_NAME and HOME_DIR to - member new(). Change return type of get_file_name and get_version - to char *. - * engine-gpgsm.c (gpgsm_get_version): Change return type to char - pointer. Do not cache result. - (gpgsm_new): Add file_name and home_dir argument, and use them - instead of the defaults, if set. - * rungpg.c (struct engine_gpg): New member file_name. - (gpg_get_version): Change return type to char pointer, and do not - cache result. - (gpg_release): Free gpg->file_name. - (gpg_new): Take new arguments file_name and home_dir. Set the - --homedir argument if HOME_DIR is not NULL. Set gpg->file_name. - (start): Use gpg->file_name instead _gpgme_get_gpg_path, if set. - * engine.h (_gpgme_engine_info_copy, _gpgme_engine_info_release): - New prototypes. - (_gpgme_engine_new): Change first argument to gpgme_engine_info_t - info. - * engine.c: Include . - (gpgme_get_engine_info): Set *INFO within the lock. Move - ENGINE_INFO and ENGINE_INFO_LOCK to .... - (engine_info, engine_info_lock): ... here. New static variables. - (engine_get_version): Add file_name argument to - get_version invocation. Change return type to char pointer. - (gpgme_engine_check_version): Rewritten to free() the return value - of engine_get_version after using it. - (_gpgme_engine_info_release): New function. - (gpgme_get_engine_info): Rewritten. - (_gpgme_engine_info_copy): New function. - (_gpgme_set_engine_info): New function. - (gpgme_set_engine_info): New function. - (_gpgme_engine_new): Change first argument to gpgme_engine_info_t - info, and use that. - * gpgme.h (struct _gpgme_engine_info): Change type of file_name - and version to char * (remove the const). New member home_dir. - (gpgme_set_engine_info, gpgme_ctx_get_engine_info, - gpgme_ctx_set_engine_info): New prototypes. - * context.h (struct gpgme_context): New member engine_info. - * gpgme.c (gpgme_new): Allocate CTX->engine_info. - (gpgme_release): Deallocate CTX->engine_info. - (gpgme_ctx_get_engine_info, gpgme_ctx_set_engine_info): New - functions. - * op-support.c (_gpgme_op_reset): Look for correct engine info and - pass it to _gpgme_engine_new. - * version.c (gpgme_check_version): Adjust to - _gpgme_compare_versions returning an int. - (_gpgme_compare_versions): Return an int value, not a const char - pointer. - * ops.h (_gpgme_compare_versions): Same for prototype. - -2004-10-03 Marcus Brinkmann - - * verify.c (parse_trust): If no reason is provided, set - SIG->validity_reason to 0. - (calc_sig_summary): Set GPGME_SIGSUM_CRL_TOO_OLD if appropriate. - -2004-10-22 Marcus Brinkmann - - * engine-gpgsm.c (map_assuan_error): Return 0 if ERR is 0. - (start): Call map_assuan_error on return value of - assuan_write_line. - -2004-10-05 Marcus Brinkmann - - * op-support.c (_gpgme_op_data_lookup): Use char pointer for - pointer arithmetic. - -2004-09-30 Marcus Brinkmann - - * gpgme.m4: Implement the --api-version check. - - * rungpg.c (read_status): Move the polling of the output data pipe - to just before removing the command fd, from just before adding - it. This avoids buffering problems. - - * data.c (_gpgme_data_inbound_handler): Use _gpgme_io_read, not - read, to improve debug output. - -2004-09-29 Marcus Brinkmann - - * gpgme.h (GPGME_IMPORT_NEW, GPGME_IMPORT_UID, GPGME_IMPORT_SIG, - GPGME_IMPORT_SUBKEY, GPGME_IMPORT_SECRET, - (GPGME_KEYLIST_MODE_LOCAL, GPGME_KEYLIST_MODERN_EXTERN, - GPGME_KEYLIST_MODE_SIGS, GPGME_KEYLIST_MODE_VALIDATE): Change from - enum to macros. - (gpgme_keylist_mode_t): Define as unsigned int. - (gpgme_key_t): Change type of keylist_mode to - gpgme_keylist_mode_t. - -2004-09-23 Marcus Brinkmann - - * data.c (_gpgme_data_outbound_handler): Close the file descriptor - if we get an EPIPE. - - * data-stream.c (stream_seek): Call ftello and return the current - offset. - * data.h (struct gpgme_data): Change type of data.mem.offset to - off_t. - * data.c (gpgme_data_seek): Check dh->cbs->seek callback, not read - callback. If SEEK_CUR, adjust the offset by the pending buffer - size. Clear pending buffer on success. - - -2004-09-14 Marcus Brinkmann - - * gpgme.m4: Add copyright notice. - -2004-08-18 Marcus Brinkmann - - * passphrase.c (_gpgme_passphrase_status_handler): Always run the - status handler. - -2004-08-17 Marcus Brinkmann - - * rungpg.c (build_argv): Use --no-sk-comment, not --no-comment. - -2004-06-23 Marcus Brinkmann - - * key.c (_gpgme_key_append_name): Make sure tail points to the - byte following the uid. - (_gpgme_key_add_sig): Likewise. Don't use calloc, but malloc and - memset. - -2004-06-02 Marcus Brinkmann - - * libgpgme.vers: Remove C-style comment, which is not supported by - older binutils. - -2004-05-21 Marcus Brinkmann - - * gpgme-config.in (Options): Support --api-version. - - * libgpgme.vers: List all gpgme symbols under version GPGME_1.0. - - * decrypt.c (_gpgme_decrypt_status_handler): Fix last change. - * verify.c (parse_error): Likewise. - - * verify.c (parse_error): Do not skip location of where token. - - * gpgme.h (gpgme_status_code_t): Add GPGME_STATUS_REVKEYSIG. - * verify.c (_gpgme_verify_status_handler): Add handling of - GPGME_STATUS_REVKEYSIG. - (parse_trust): Likewise. - -2004-05-21 Marcus Brinkmann - - * gpgme.h (struct _gpgme_decrypt_result): New fields - wrong_key_usage and _unused. - * decrypt.c (_gpgme_decrypt_status_handler): Don't skip over - character after a matched string, as in a protocol error this - could skip over the trailing binary zero. - Handle decrypt.keyusage error notifications. - - * gpgme.h (struct _gpgme_key): New member keylist_mode. - * keylist.c (keylist_colon_handler): Set the keylist_mode of KEY. - -2004-04-29 Marcus Brinkmann - - * gpgme.h (struct _gpgme_signature): Change member WRONG_KEY_USAGE - to unsigned int. Same for member _unused. - - * keylist.c (set_mainkey_trust_info): Rewritten. - (set_subkey_capability): Handle 'd' (disabled). - (set_mainkey_capability): Rewritten. - -2004-04-22 Marcus Brinkmann - - * gpgme.m4: Quote first argument to AC_DEFUN. - -2004-04-21 Werner Koch - - * key.c (gpgme_key_unref): Allow passing NULL like free does. - The rule of least surprise. - -2004-04-15 Werner Koch - - * verify.c (prepare_new_sig, _gpgme_verify_status_handler): Remove - unused result.signatures items. - - * keylist.c (gpgme_get_key): Return an error if FPR is NULL. - -2004-04-08 Werner Koch - - * verify.c (_gpgme_verify_status_handler): Ignore the error status - if we can't process it. - * decrypt-verify.c (decrypt_verify_status_handler): Backed out - yesterday's hack. It is not any longer required. - -2004-04-07 Werner Koch - - * decrypt-verify.c (decrypt_verify_status_handler): Hack to cope - with meaningless error codes from the verify status function. - -2004-04-05 Werner Koch - - * gpgme.h: Add GPGME_STATUS_NEWSIG. - - * verify.c (parse_error): Compare only the last part of the where - token. - (prepare_new_sig): New. - (parse_new_sig): Use prepare_new_sig when required. - (_gpgme_verify_status_handler): Handle STATUS_NEWSIG. - - * engine-gpgsm.c (gpgsm_keylist_ext): Send with-validation - option. Fixed pattern construction. - (status_handler): Add debugging output. - -2004-03-23 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_new): Protect _only_ tty related code with - isatty(). Submitted by Bernhard Herzog. - -2004-03-11 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_new): Protect all tty related code with - isatty(). - - * rungpg.c (gpg_cancel): Set GPG->fd_data_map to NULL after - releasing it. - * engine-gpgsm.c (gpgsm_cancel): Only call assuan_disconnect if - GPGSM->assuan_ctx is not NULL. Set it to NULL afterwards. - -2004-03-07 Marcus Brinkmann - - * gpgme-config.in: Do not emit include and lib directory for - prefix "/usr" or "". - -2004-03-03 Werner Koch - - * engine-gpgsm.c (gpgsm_export_ext): Properly insert a space - beween patterns. - -2004-02-18 Werner Koch - - * gpgme-config.in: Ignore setting of --prefix. - -2004-02-25 Marcus Brinkmann - - * rungpg.c (gpg_cancel): New function. - (gpg_release): Call it here. - (_gpgme_engine_ops_gpg): Add it here. - * engine-gpgsm.c (gpgsm_cancel): Fix last change. - -2004-02-24 Marcus Brinkmann - - * gpgme.c (gpgme_cancel): New function. - * engine-backend.h (struct engine_ops): New member cancel. - * engine.h (_gpgme_engine_cancel): New prototype. - * engine.c (_gpgme_engine_cancel): New function. - * engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Add new member cancel. - (gpgsm_cancel): New function. - (gpgsm_release): Use it. - * rungpg.c (_gpgme_engine_ops_gpg): Add new member cancel. - -2004-02-17 Werner Koch - - * gpgme.h: Add GPGME_KEYLIST_MODE_VALIDATE. - * engine-gpgsm.c (gpgsm_keylist): Send this to gpgsm. - -2004-02-15 Werner Koch - - * memrchr.c (memrchr): Fixed implementation. Problem pointed out - by Adriaan de Groot. - -2004-02-01 Marcus Brinkmann - - * rungpg.c (build_argv): Use --no-comment, not --comment "". - - * data-compat.c (gpgme_data_new_from_filepart): Call fseeko if - available. - * data-stream.c (stream_seek): Likewise. - -2004-01-16 Werner Koch - - * conversion.c (_gpgme_map_gnupg_error): Handle numerical codes as - used by GnuPG 1.9.x - -2004-01-13 Marcus Brinkmann - - * gpgme.h (struct _gpgme_key_sig): Fix comment on REVOKED. - -2004-01-12 Werner Koch - - * sign.c: Include util.h for prototype of _gpgme_parse_timestamp. - -2003-12-25 Marcus Brinkmann - - * gpgme.h (_GPGME_D_CLASS): Revert this change. - (struct _gpgme_key_sig): For C++ compilers, rename class - member to _obsolete_class. Add new member sig_class. - (struct _gpgme_new_signature): Same here. - * key.c (gpgme_key_sig_get_ulong_attr): Use CERTSIG->sig_class, - not CERTSIG->class. - * keylist.c (keylist_colon_handler): Likewise for KEYSIG, but keep - setting KEYSIG->class, too. Rename variable CLASS to SIG_CLASS. - * sign.c (parse_sig_created): Set SIG->sig_class. - -2003-12-22 Werner Koch - - * gpgme.h (_GPGME_D_CLASS): Kludge for C++ compatibility without - changing the C API. - -2003-11-19 Werner Koch - - * conversion.c (_gpgme_parse_timestamp): New. - (atoi_1, atoi_2, atoi_4): New. - * keylist.c (parse_timestamp): Removed. Changed all callers to use - the new function. - * verify.c (parse_valid_sig): Ditto. Repalced the errno check. - * sign.c (parse_sig_created): Ditto. - -2003-10-31 Werner Koch - - * keylist.c (parse_timestamp): Detect ISO 8601 timestamps and try - to convert them. - -2003-10-10 Marcus Brinkmann - - * genkey.c (get_key_parameter): Make a copy of the key parameters. - Submitted by Miguel Coca . - -2003-10-06 Marcus Brinkmann - - * data-compat.c: Include before for - broken systems. - - * engine-gpgsm.c (map_assuan_error): If ERR is -1, return sensible - error. - - * io.h (_gpgme_io_subsystem_init): New prototype. - * posix-io.c (_gpgme_io_subsystem_init): Add function. - (_gpgme_io_spawn): Do not fixup signal handler here. - * version.c (do_subsystem_inits): Call _gpgme_io_subsystem_init. - - * debug.c (debug_init): Drop const qualifier from E. - - * ath.h (struct ath_ops): Make ADDR argument of CONNECT prototype - const. - (ath_connect): Make ADDR argument const. - * ath-pthread.c (ath_connect): Likewise. - * ath-pth.c (ath_connect): Likewise. - * ath-compat.c (ath_connect): Likewise. - * ath.c (ath_connect): Likewise. - - * ath.h [HAVE_SYS_SELECT_H]: Include for fd_set. - [!HAVE_SYS_SELECT_H]: Include . - - * conversion.c (_gpgme_hextobyte): Drop "unsigned" from type of - SRC argument. - * util.h (_gpgme_hextobyte): Likewise for prototype. - - * gpgme.h: Remove trailing comma in enum. - - * rungpg.c: Do not include , , , - , , or "unistd.h". - -2003-10-02 Marcus Brinkmann - - * engine-backend.h (struct engine_ops): Add argument TYPE. - * engine.c (_gpgme_engine_op_edit): Likewise. - * engine.h: Likewise. - * rungpg.c (gpg_edit): Likewise. Use it. - * edit.c (edit_start): Likewise. Pass it on. - (gpgme_op_edit_start, gpgme_op_edit): Likewise. - (gpgme_op_card_edit_start, gpgme_op_card_edit): New functions. - -2003-09-30 Marcus Brinkmann - - * gpgme.h (gpg_strerror_r): Change prototype to match - gpg_strerror_r change. - * error.c (gpg_strerror_r): Likewise, also update implementation. - - * gpgme.c (gpgme_hash_algo_name): Change name of RMD160 to - RIPEMD160, name of TIGER to TIGER192, name of CRC32-RFC1510 to - CRC32RFC1510, and name of CRC24-RFC2440 to CRC24RFC2440. - -2003-09-14 Marcus Brinkmann - - * gpgme.h: Add prototype for gpgme_set_locale. - - * gpgme.h: Define macro _GPGME_INLINE depending on the compiler - characteristics and use that instead __inline__. - - * context.h (struct gpgme_context): New members lc_ctype and - lc_messages. - * gpgme.c: Include . - (def_lc_lock, def_lc_ctype, def_lc_messages): New static - variables. - (gpgme_set_locale): New function. - * engine.c (_gpgme_engine_new): Add arguments lc_ctype and - lc_messages. - * engine.h (_gpgme_engine_new): Likewise. - * engine-gpgsm.c (gpgsm_new): Likewise. - * rungpg.c (gpg_new): Likewise. - * engine-backend.h (struct engine_ops): Likewise to NEW. - * op-support.c (_gpgme_op_reset): Likewise to invocation of - _gpgme_engine_new. - -2003-09-13 Marcus Brinkmann - - * gpgme.h (gpgme_strerror_r): New prototype. - * error.c (gpgme_strerror_r): New function. - - * get-env.c: New file. - * util.h (_gpgme_getenv): Add prototype. - * Makefile.am (libgpgme_real_la_SOURCES): Add get-env.c. - * rungpg.c (build_argv): Use _gpgme_getenv. - * debug.c (debug_init): Likewise. - * engine-gpgsm.c (gpgsm_new): Likewise. - (gpgsm_new): Use ttyname_r. - * w32-io.c (_gpgme_io_spawn): Disable debugging for now. - -2003-09-03 Marcus Brinkmann - - * gpgme-config.in: Use $libdir, not @libdir@, for the echo - command. - - * gpgme-config.in: Rewritten. - * gpgme.m4: Rewritten. - -2003-08-19 Marcus Brinkmann - - The ath files (ath.h, ath.c, ath-pth.c, ath-pthread.c, - ath-compat.c, ath-pth-compat.c and ath-pthread-compat.c) have been - updated to have better thread support, and the Makefile.am was - changed to reflect that. - - * util.h [!HAVE_FOPENCOOKIE]: Remove fopencookie declaration. - * engine-gpgsm.c (gpgsm_assuan_simple_command): Set ERR to return - value of status_fnc. - * rungpg.c (start): Return SAVED_ERRNO, not errno. - -2003-08-18 Marcus Brinkmann - - * rungpg.c (start): Use saved_errno instead errno. - -2003-08-18 Marcus Brinkmann - - * funopen.c, putc_unlocked.c, isascii.c, memrchr.c: New files. - * fopencookie.c: File removed. - -2003-08-15 Marcus Brinkmann - - * gpgme-config.in: Put gpg-error related flags after gpgme's. - -2003-08-14 Marcus Brinkmann - - * gpgme.h (struct _gpgme_new_signature): Rename member CLASS to - _OBSOLETE_CLASS, add member CLASS with type unsigned int. - * sign.c (parse_sig_created): Also set SIG->_unused_class for - backward compatibility. - -2003-08-04 Marcus Brinkmann - - * verify.c (parse_new_sig): Fix status parsing case. - -2003-07-31 Marcus Brinkmann - - * gpgme.h (struct _gpgme_subkey): Add flag CAN_AUTHENTICATE. - Lower _UNUSED to 23 bits. - (struct _gpgme_key): Likewise. - * keylist.c (set_mainkey_capability): Support 'a' and 'A'. - (set_subkey_capability): Support 'a'. - - * keylist.c (gpgme_get_key): Check if there is more than one key - listed, and return GPG_ERR_AMBIGUOUS_NAME in that case. - - * util.h (_gpgme_decode_c_string): Change type of LEN argument to - size_t. - (_gpgme_decode_percent_string): Likewise. - * conversion.c (_gpgme_decode_c_string): Likewise. - (_gpgme_decode_percent_string): Likewise. - (_gpgme_map_gnupg_error): Change type of I to unsigned int. - * signers.c (gpgme_signers_clear): Likewise. - (gpgme_signers_enum): New unsigned variable SEQNO, set to SEQ. - Use SEQNO instead SEQ. - * wait.c (fd_table_put): Change type of I and J to unsigned int. - * wait-global.c (_gpgme_wait_global_event_cb): Change type of IDX - to unsigned int. - (gpgme_wait): Change type of I and IDX to unsigned int. - * wait-private.c (_gpgme_wait_on_condition): Change type of IDX - and I to unsigned int. - * posix-io.c (_gpgme_io_close): Cast return value of macro DIM to - int to suppress gcc warning. - (_gpgme_io_set_close_notify): Likewise. - (_gpgme_io_select): Change type of I to unsigned int. - * engine.c (gpgme_get_engine_info): Change type of PROTO to - unsigned int. - * wait-user.c (_gpgme_user_io_cb_handler): Change type of IDX and - I to unsigned int. - -2003-07-29 Marcus Brinkmann - - * decrypt-verify.c (decrypt_verify_status_handler): Expand silly - and wrong expression. - * encrypt-sign.c (encrypt_sign_status_handler): Likewise. - * encrypt.c (encrypt_sym_status_handler): Likewise. - * sign.c (sign_status_handler): Likewise. - * verify.c (verify_status_handler): Likewise. - * decrypt.c (decrypt_status_handler): Likewise. - - * engine.c (gpgme_get_engine_info): Initialize NULL. - -2003-07-23 Marcus Brinkmann - - * gpgme-config.in (gpg_error_libs): Quote GPG_ERROR_CFLAGS and - GPG_ERROR_LIBS when setting the corresponding variables. - Reported by Stéphane Corthésy. - -2003-07-22 Marcus Brinkmann - - * engine-gpgsm.c (set_recipients): Move declaration of NEWLEN to - the beginning of the block. - -2003-06-22 Marcus Brinkmann - - * data-mem.c (mem_write): Copy original buffer content. - -2003-06-22 Marcus Brinkmann - - * gpgme.h (gpgme_user_ids_release, gpgme_user_ids_append): Remove - prototypes. - -2003-06-06 Marcus Brinkmann - - * Makefile.am (AM_CPPFLAGS): Add @GPG_ERROR_CFLAGS@. - * gpgme-config.in (gpg_error_libs, gpg_error_cflags): New variables. - Print them. - - * op-support.c (_gpgme_parse_inv_userid): Rename to - _gpgme_parse_inv_recp and change to new datatype. - * ops.h (_gpgme_parse_inv_key): Fix prototype. - * gpgme.h (struct _gpgme_invalid_user_id): Rename to - __gpgme_invalid_key. Rename field ID to KEY. - (gpgme_invalid_user_id_t): Rename to gpgme_invalid_key_t. - (struct _gpgme_op_encrypt_result): Here, too. - (struct _gpgme_op_sign_result): Likewise. - * encrypt.c (struct op_data): Likewise. - (release_op_data): Likewise. - * sign.c (struct op_data): Likewise. - (release_op_data): Likewise. - - * posix-io.c (_gpgme_io_read): Save errno across debug calls. - (_gpgme_io_write): Likewise. - (_gpgme_io_pipe): Likewise. - (_gpgme_io_select): Likewise. - - * rungpg.c (struct engine_gpg): Remove arg_error. - (add_arg): Don't set arg_error. - (add_data): Likewise. - (start): Don't check arg_error. - (gpg_new): Check return value of add_arg. - * verify.c (parse_notation): Free allocated memory at error. - -2003-06-05 Marcus Brinkmann - - Everywhere: Use libgpg-error error codes. - - * Makefile.am (EXTRA_DIST): Remove mkerrors. - (BUILT_SOURCES): Remove errors.c. - (MOSTLYCLEANFILES): Likewise. - (libgpgme_la_SOURCES): Likewise. Add error.c. - (errors.c): Remove target. - * mkerrors: File removed. - * error.c: New file. - - * gpgme.h (gpgme_error_t): Change to type gpg_error_t. - (gpgme_err_code_t, gpgme_err_source_t): New types. - (gpgme_err_code, gpgme_err_source, gpgme_error, gpgme_err_make): - New static inline functions. - (gpgme_strsource, gpgme_err_code_from_errno, - gpgme_err_code_to_errno, gpgme_err_make_from_errno, - gpgme_error_from_errno): New prototypes. - -2003-05-29 Marcus Brinkmann - - * gpgme.h (gpgme_op_export_start): Change second arg to const char *. - (gpgme_op_export): Likewise. - (gpgme_op_export_ext_start): New prototype. - (gpgme_op_export_ext): Likewise. - * engine.h: Likewise for _gpgme_engine_op_export and - _gpgme_engine_op_export_ext. - * engine-backend.h (struct engine_ops): Change second argument of - prototype of export to const char *, and add reserverd int as - third argument. Add prototype for export_ext. - * engine.c (_gpgme_engine_op_export_ext): New function. - (_gpgme_engine_op_export): Change second argument of prototype of - export to const char *, and add reserverd int as third argument. - * rungpg.c (gpg_export): Change second argument of prototype of - export to const char *, and add reserverd int as third argument. - (gpg_export_ext): New function. - (gpg_keylist_ext): Break loop at error. - (_gpgme_engine_ops_gpg): Add gpg_export_ext. - * engine-gpgsm.c (gpgsm_export): Change second argument of - prototype of export to const char *, and add reserverd int as - third argument. - (gpgsm_export_ext): New function. - (_gpgme_engine_ops_gpgsm): Add gpgsm_export_ext. - * export.c (export_start): Change second argument of prototype of - export to const char *, and add reserverd int as third argument. - (gpgme_op_export_start): Likewise. - (export_ext_start): New function. - (gpgme_op_export_ext_start): Likewise. - (gpgme_op_export_ext): Likewise. - - * gpgme.h (gpgme_keylist_mode_t): New type for anonymous enum. - (gpgme_sigsum_t): New type for anonymous enum. - - * encrypt-sign.c (encrypt_sign_start): Check for errors earlier, - and return an error if RECP is not set. - - * Makefile.am (libgpgme_la_SOURCES): Remove user-id.c. - * user-id.c: Remove file. - * ops.h: Remove prototype for _gpgme_user_ids_all_valid. - * gpgme.h (gpgme_encrypt_flags_t): New type. - (gpgme_op_encrypt_start): Change second parameter to type - gpgme_key_t[], and add third parameter. - (gpgme_op_encrypt): Likewise. - (gpgme_op_encrypt_sign_start): Likewise. - (gpgme_op_encrypt_sign): Likewise. - * encrypt.c (encrypt_start): Likewise. - (gpgme_op_encrypt_start): Likewise. - (gpgme_op_encrypt): Likewise. Pass flags to engine. - * encrypt-sign.c (encrypt_sign_start): Likewise. - (gpgme_op_encrypt_sign_start): Likewise. - (gpgme_op_encrypt_sign): Likewise. - * engine-backend.h (struct engine_ops): Likewise for prototypes of - encrypt and encrypt_sign. - * engine.h: Likewise for prototypes of _gpgme_engine_op_encrypt - and _gpgme_engine_op_encrypt_sign. - * engine.c (_gpgme_engine_op_encrypt): Likewise. - (_gpgme_engine_op_encrypt_sign): Likewise. - * rungpg.c (gpg_encrypt): Likewise. - (gpg_encrypt_sign): Likewise. - * rungpg.c (gpg_encrypt): Check flags for always trust option. - * engine-gpgsm.c (gpgsm_encrypt): Likewise. - (set_recipients): Rewritten to use keys instead user IDs. - * rungpg.c (append_args_from_recipients): Rewritten to use keys - instead user IDs. - * encrypt.c (_gpgme_encrypt_status_handler): Change errors - returned to GPGME_Invalid_Key and GPGME_General_Error. - -2003-05-28 Marcus Brinkmann - - * engine-gpgsm.c: Rename GpgsmObject to engine_gpgsm_t. - (struct gpgsm_object_s): Rename to struct engine_gpgsm. - * rungpg.c: Rename GpgObject to engine_gpg_t. - (struct gpg_object_s): Rename to struct engine_gpg. - - * context.h (struct gpgme_context): Change EngineObject to - engine_object_t. - (enum ctx_op_data_type): Rename to ctx_op_data_id_t. - (ctx_op_data_t): New type. - (struct gpgme_context): Use it. - * ops.h (_gpgme_op_data_lookup): Use new type name. - * op-support.c (_gpgme_op_data_lookup): Likewise. - * engine.c: Rename EngineObject to engine_t in the file. Also - EngineStatusHandler to engine_status_handler_t, - EngineCommandHandler to engine_command_handler_t and - EngineColonLineHandler to engine_colon_line_handler. - * rungpg.c (start): Likewise. - * engine-gpgsm.c: Likewise. - * engine-backend.h (struct engine_ops): Likewise - * engine.h (struct engine_object_s): Rename to struct engine. - (EngineObject): Rename to engine_t. Also everywhere else in the - file. - (EngineStatusHandler): Rename to engine_status_handler_t. - (EngineColonLineHandler): Rename to engine_colon_line_handler_t. - (EngineCommandHandler): Rename to engine_command_handler_t. - - * engine-gpgsm.c (gpgsm_export): Fix bug in last change. - - * Makefile.am (libgpgme_la_SOURCES): Remove recipient.c, add - user-id.c. - * gpgme.h (gpgme_recipients_t): Removed. - (gpgme_recipients_new, gpgme_recipients_release, - gpgme_recipients_add_name, - gpgme_recipients_add_name_with_validity, gpgme_recipients_count, - gpgme_recipients_enum_open, gpgme_recipients_enum_read, - gpgme_recipients_enum_close): Removed. - (gpgme_op_encrypt, gpgme_op_encrypt_start, gpgme_op_encrypt_sign, - gpgme_op_encrypt_sign_start, gpgme_op_export_start, - gpgme_op_export): Change second argument to gpgme_user_id_t. - (gpgme_user_ids_release): New prototype. - (gpgme_user_ids_append): Likewise. - * ops.h (_gpgme_recipients_all_valid): Remove. - (_gpgme_user_ids_all_valid): Add. - * context.h (struct gpgme_recipients): Removed. - * user-id.c: New file. - * recipient.c: Removed file. - * rungpg.c (append_args_from_recipients): Change last arg to - gpgme_user_id_t. Reimplement. - (gpg_encrypt): Change second arg to gpgme_user_id_t. - (gpg_encrypt_sign): Likewise. - (gpg_export): Likewise. Rewrite user ID list code. - * engine.c (_gpgme_engine_op_encrypt): Change second arg to - gpgme_user_id_t. - (_gpgme_engine_op_encrypt_sign): Likewise. - (_gpgme_engine_op_export): Likewise. - * engine.h (_gpgme_engine_op_encrypt, _gpgme_engine_op_encrypt_sign, - _gpgme_engine_op_export): Likewise. - * engine-gpgsm.c (set_recipients): Likewise. Rewrite loop code. - (gpgsm_encrypt): Likewise. - (gpgsm_export): Likewise. - * engine-backend.h (struct engine_ops): Likewise for members - ENCRYPT, ENCRYPT_SIGN and EXPORT. - * export.c (export_start, gpgme_op_export_start, gpgme_op_export): - Likewise. - * encrypt.c (encrypt_start): Likewise. Don't check for count of - recipients. - (gpgme_op_encrypt_start): Likewise. - (gpgme_op_encrypt): Likewise. - * encrypt-sign.c (encrypt_sign_start): Likewise. - (gpgme_op_encrypt_sign): Likewise. - (gpgme_op_encrypt_sign_start): Likewise. - -2003-05-27 Marcus Brinkmann - - * gpgme.h (struct _gpgme_op_import_result): Add skipped_new_keys. - * import.c (parse_import_res): Add skipped_new_keys parser. - - * op-support.c (_gpgme_parse_inv_userid): Add missing break - statements. - * encrypt.c (gpgme_op_encrypt): Use gpgme_error_t instead of int. - -2003-05-27 Marcus Brinkmann - - * encrypt.c (gpgme_op_encrypt_result): Use intermediate variable - HOOK to avoid compiler warning. Don't ask, you don't want to know. - (_gpgme_encrypt_status_handler): Likewise. - (_gpgme_op_encrypt_init_result): Likewise. - * decrypt.c (gpgme_op_decrypt_result): Likewise. - (_gpgme_decrypt_status_handler): Likewise. - (_gpgme_op_decrypt_init_result): Likewise. - * verify.c (gpgme_op_verify_result): Likewise. - (_gpgme_verify_status_handler): Likewise. - (_gpgme_op_verify_init_result): Likewise. - * edit.c (edit_status_handler): Likewise. - (command_handler): Likewise. - (edit_start): Likewise. - * genkey.c (gpgme_op_genkey_result): Likewise. - (genkey_status_handler): Likewise. - (genkey_start): Likewise. - * import.c (gpgme_op_import_result): Likewise. - (import_status_handler): Likewise. - (_gpgme_op_import_start): Likewise. - * trustlist.c (gpgme_op_trustlist_next): Likewise. - (_gpgme_op_trustlist_event_cb): Likewise. - (gpgme_op_trustlist_start): Likewise. - * keylist.c (gpgme_op_keylist_result): Likewise. - (keylist_colon_handler): Likewise. - (keylist_status_handler): Likewise. - (_gpgme_op_keylist_event_cb): Likewise. - (gpgme_op_keylist_start): Likewise. - (gpgme_op_keylist_ext_start): Likewise. - (gpgme_op_keylist_next): Likewise. - * passphrase.c (_gpgme_passphrase_status_handler): Likewise. - (_gpgme_passphrase_command_handler_internal): Likewise. - * sign.c (gpgme_op_sign_result): Likewise. - (_gpgme_sign_status_handler): Likewise. - (_gpgme_op_sign_init_result): Likewise. - - * passphrase.c (_gpgme_passphrase_command_handler_internal): Fix - access to pointer type. - -2003-05-26 Marcus Brinkmann - - * engine.h (EngineCommandHandler): Change last argument to int fd. - * gpgme.h (gpgme_passphrase_cb_t): Rewritten to take parts of the - description and fd. - (gpgme_edit_cb_t): Change last argument to int fd. - * ops.h (_gpgme_passphrase_command_handler_internal): New prototype. - * passphrase.c: Include . - (op_data_t): Rename userid_hint to uid_hint, remove last_pw_handle. - (release_op_data): Check values before calling free. - (_gpgme_passphrase_status_handler): Likewise. - (_gpgme_passphrase_command_handler_internal): New function. - (_gpgme_passphrase_command_handler): Rewritten. - * edit.c (edit_status_handler): Pass -1 as fd argument. - (command_handler): Update prototype. New variable processed. Use - it to store return value of - _gpgme_passphrase_command_handler_internal which is now used - instead _gpgme_passphrase_command_handler. Use it also to check - if we should call the user's edit function. Pass fd to user's - edit function. - * rungpg.c (struct gpg_object_s): Change type of cmd.cb_data to - void *. - (gpg_release): Check value before calling free. Do not release - cmd.cb_data. - (command_cb): Function removed. - (command_handler): New function. Thus we don't use a data object - for command handler stuff anymore, but handle it directly. This - allows proper error reporting (cancel of passphrase requests, for - example). Also all callbacks work via direct writes to the file - descriptor (so that passphrases are not kept in insecure memory). - (gpg_set_command_handler): Rewritten to use even more ugly hacks. - (read_status): Check cmd.keyword before calling free. Install - command_handler as the I/O callback handler with GPG as private - data. - - * rungpg.c (gpg_new): Add --enable-progress-filter to gpg - invocation. - * decrypt-verify.c (_gpgme_op_decrypt_verify_start): Rename to - decrypt_verify_start. - (gpgme_op_decrypt_verify_start): Call decrypt_verify_start. - (gpgme_op_decrypt_verify): Likewise. - * verify.c (verify_status_handler): New function that also calls - progress status handler. - (_gpgme_op_verify_start): Set status handler to verify_status_handler. - Rename to (verify_start). - (gpgme_op_verify_start): Call verify_start. - (gpgme_op_verify): Likewise. - * encrypt.c (encrypt_status_handler): New function. - (_gpgme_encrypt_sym_status_handler): Call progress status handler. - Make static. Rename to encrypt_sym_status_handler. - (encrypt_start): Set status handler to encrypt_sym_status_handler - or encrypt_status_handler. - * sign.c (sign_status_handler): New function. - (sign_start): Set status handler to sign_status_handler. - * decrypt.c (decrypt_status_handler): New function that also calls - progress status handler. - (decrypt_start): Set status handler to decrypt_status_handler. - * encrypt-sign.c (encrypt_sign_status_handler): Likewise. - * decrypt-verify.c (decrypt_verify_status_handler): Call - _gpgme_progress_status_handler. - - * conversion.c (_gpgme_decode_c_string): Add missing break - statement. - - * recipient.c (gpgme_recipients_add_name_with_validity): Add one - to buffer to allocate. - -2003-05-19 Marcus Brinkmann - - * verify.c (parse_new_sig): Fix ERRSIG case. - Submitted by Benjamin Lee . - -2003-05-18 Marcus Brinkmann - - * gpgme.h: The following types are renamed. The old name is kept - as a deprecated typedef. - (GpgmeCtx): Rename to gpgme_ctx_t. - (GpgmeData): Rename to gpgme_data_t. - (GpgmeRecipients): Rename to gpgme_recipients_t. - (GpgmeError): Rename to gpgme_error_t. - (GpgmeDataEncoding): Rename to gpgme_data_encoding_t. - (GpgmePubKeyAlgo): Rename to gpgme_pubkey_algo_t. - (GpgmeHashAlgo): Rename to gpgme_hash_algo_t. - (GpgmeSigStat): Rename to gpgme_sig_stat_t. - (GpgmeSigMode): Rename to gpgme_sig_mode_t. - (GpgmeAttr): Rename to gpgme_attr_t. - (GpgmeValidity): Rename to gpgme_validity_t. - (GpgmeProtocol): Rename to gpgme_protocol_t. - (GpgmeStatusCode): Rename to gpgme_status_code_t. - (GpgmeEngineInfo): Rename to gpgme_engine_info_t. - (GpgmeSubkey): Rename to gpgme_subkey_t. - (GpgmeKeySig): Rename to gpgme_keysig_t. - (GpgmeUserID): Rename to gpgme_user_id_t. - (GpgmePassphraseCb): Rename to gpgme_passphrase_cb_t. - (GpgmeProgressCb): Rename to gpgme_progress_cb_t. - (GpgmeEditCb): Rename to gpgme_edit_cb_t. - (GpgmeIOCb): Rename to gpgme_io_cb_t. - (GpgmeRegisterIOCb): Rename to gpgme_register_io_cb_t. - (GpgmeRemoveIOCb): Rename to gpgme_remove_io_cb_t. - (GpgmeEventIO): Rename to gpgme_event_io_t. - (GpgmeEventIOCb): Rename to gpgme_event_io_cb_t. - (GpgmeIOCbs): Rename to gpgme_io_cbs. - (gpgme_io_cbs_t): New type. - (GpgmeDataReadCb): Rename to gpgme_data_read_cb_t. - (GpgmeDataWriteCb): Rename to gpgme_data_write_cb_t. - (GpgmeDataSeekCb): Rename to gpgme_data_seek_cb_t. - (GpgmeDataReleaseCb): Rename to gpgme_data_release_cb_t. - (GpgmeDataCbs): Rename to gpgme_data_cbs. - (gpgme_data_cbs_t): New type. - (GpgmeInvalidUserID): Rename to gpgme_invalid_user_id_t. - (GpgmeEncryptResult): Rename to gpgme_encrypt_result_t. - (GpgmeDecryptResult): Rename to gpgme_decrypt_result_t. - (GpgmeNewSignature): Rename to gpgme_new_signature_t. - (GpgmeSignResult): Rename to gpgme_sign_result_t. - (GpgmeSigNotation): Rename to gpgme_sig_notation_t. - (GpgmeSignature): Rename to gpgme_signature_t. - (GpgmeVerifyResult): Rename to gpgme_verify_result_t. - (GpgmeImportStatus): Rename to gpgme_import_status_t. - (GpgmeImportResult): Rename to gpgme_import_result_t. - (GpgmeGenKeyResult): Rename to gpgme_genkey_result_t. - (GpgmeKeyListResult): Rename to gpgme_keylist_result_t. - (GpgmeTrustItem): Rename to gpgme_trust_item_t. - * gpgme.h (gpgme_deprecated_error_t): New type, swallowing macros - GPGME_No_Recipients, GPGME_Invalid_Recipient and - GPGME_No_Passphrase. - * data.h (struct gpgme_data_s): Rename to struct gpgme_data. - * context.h (struct gpgme_context_s): Rename to struct - gpgme_context. - (struct gpgme_recipients_s): Rename to gpgme_recipients. - -2003-05-18 Marcus Brinkmann - - * keylist.c (finish_key): Clear OPD->tmp_uid. - -2003-05-18 Marcus Brinkmann - - * verify.c (_gpgme_verify_status_handler): Return GPGME_No_Data - for NODATA status without signatures. - -2003-05-05 Marcus Brinkmann - - * key.c (_gpgme_key_append_name): Use decoded string to parse user id. - (_gpgme_key_add_sig): Likewise. - -2003-05-04 Marcus Brinkmann - - * context.h (struct gpgme_context_s): Remove member op_info. - - * key.c (_gpgme_key_add_sig): Initialize SIG->uid. - - * gpgme.h (GpgmeError): Add deprecated values for - GPGME_Invalid_Type and GPGME_Invalid_Mode. - -2003-04-30 Marcus Brinkmann - - * gpgme.h (gpgme_get_op_info): Remove prototype. - * ops.h (_gpgme_set_op_info, - _gpgme_data_release_and_return_string, _gpgme_data_get_as_string, - _gpgme_data_append, _gpgme_data_append_string, - _gpgme_data_append_string_for_xml, _gpgme_data_append_for_xml, - _gpgme_data_append_percentstring_for_xml): Likewise. - (_gpgme_progress_status_handler): Change first arg to void *. - * progress.c (_gpgme_progress_status_handler): Likewise. - * conversion.c: Do not include , , , - and , but . - (_gpgme_data_append): Remove function. - (_gpgme_data_append_string): Likewise. - (_gpgme_data_append_for_xml): Likewise. - (_gpgme_data_append_string_for_xml): Likewise. - (_gpgme_data_append_percentstring_for_xml): Likewise. - * data-mem.c (_gpgme_data_get_as_string): Likewise. - (_gpgme_data_release_and_return_string): Likewise. - * gpgme.c (gpgme_get_op_info): Likewise. - (_gpgme_set_op_info): Likewise. - - * gpgme.h (struct _gpgme_key): New structure. - (GpgmeKey): Define using _gpgme_key. - (struct _gpgme_subkey): New structure. - (GpgmeSubKey): New type. - (struct _gpgme_key_sig): New structure. - (GpgmeKeySig): New type. - (struct _gpgme_user_id): New structure. - (GpgmeUserID): New type. - (struct _gpgme_op_keylist_result): New structure. - (GpgmeKeyListResult): New type. - (gpgme_op_keylist_result): New function. - (gpgme_key_get_as_xml): Remove prototype. - * context.h (struct gpgme_context_s): Remove members tmp_key, - tmp_uid, key_cond and key_queue. - (struct key_queue_item_s): Remove structure. - (struct user_id_s): Remove structure. - (struct gpgme_recipients_s): Replace with simple - GpgmeUserID list. - * gpgme.c (gpgme_release): Do not release CTX->tmp_key. - * ops.h (_gpgme_key_add_subkey, _gpgme_key_append_name, - _gpgme_key_add_sig, _gpgme_trust_item_new): New prototypes. - * rungpg.c (command_cb): Return GpgmeError instead int. - New variable ERR. Use it to hold return value of cmd handler. - (gpg_delete): Access fingerprint of key directly. - (append_args_from_signers): Likewise. - (gpg_edit): Likewise. - (append_args_from_recipients): Use GpgmeUserID for recipient list. - * engine-gpgsm.c: Do not include "key.h". - (gpgsm_delete): Access fingerprint of key directly. - (gpgsm_sign): Likewise. - (set_recipients): Use GpgmeUserID for recipients. Invert invalid - user ID flag. - * key.h: File removed. - * key.c: Completely reworked to use exposed GpgmeKey data types. - * keylist.c: Likewise. - * recipient.c: Completely reworked to use GpgmeUserID. - -2003-04-29 Marcus Brinkmann - - * gpgme.h (gpgme_get_key): Remove force_update argument. - * key-cache.c: File removed. - * Makefile.am (libgpgme_la_SOURCES): Remove key-cache.c. - * ops.h (_gpgme_key_cache_add, _gpgme_key_cache_get): Remove - prototypes. - * keylist.c (_gpgme_op_keylist_event_cb): Don't call - _gpgme_key_cache_add. - (gpgme_get_key): New function. - * verify.c (gpgme_get_sig_key): Remove last argument to - gpgme_get_key invocation. - - * gpgme.h (struct _gpgme_trust_item): New structure. - (GpgmeTrustItem): New type. - (gpgme_trust_item_ref, gpgme_trust_item_unref): New prototypes. - * context.h (struct trust_queue_item_s): Remove structure. - (struct gpgme_context_s): Remove trust_queue member. - * Makefile.am (libgpgme_la_SOURCES): Add trust-item.c. - * trust-item.c: New file. - * trustlist.c: Do not include or , but - "gpgme.h". - (struct trust_queue_item_s): Change to new type op_data_t. - (trust_status_handler): Change first argument to void *. - (trust_colon_handler): Likewise. - (_gpgme_op_trustlist_event_cb): Use op_data_t type. - (gpgme_op_trustlist_start): Use op_data_t and rework error - handling. - (gpgme_op_trustlist_next): Use op_data_t. - (gpgme_trust_item_release): Remove function. - (gpgme_trust_item_get_string_attr): Likewise. - (gpgme_trust_item_get_int_attr): Likewise. - - * verify.c (calc_sig_summary): Do not set GPGME_SIGSUM_SYS_ERROR - for bad signatures. - -2003-04-28 Marcus Brinkmann - - * context.h: Remove OPDATA_VERIFY_COLLECTING. - (struct gpgme_context_s): Remove member notation. - * gpgme.h: Make enum for GPGME_KEYLIST_MODE_* values. - - * gpgme.h (struct _gpgme_sig_notation): New structure. - (GpgmeSigNotation): New type. - (struct _gpgme_signature): New structure. - (GpgmeSignature): New type. - (struct _gpgme_op_verify_result): New structure. - (GpgmeVerifyResult): New type. - (gpgme_op_verify_result): New prototype. - (gpgme_get_notation): Remove prototype. - * ops.h (_gpgme_op_verify_init_result): New prototype. - (_gpgme_verify_status_handler): Change first argument to void *. - * util.h (_gpgme_decode_percent_string, _gpgme_map_gnupg_error): - New prototypes. - * conversion.c (_gpgme_decode_percent_string): New function. - (gnupg_errors): New static global. - (_gpgme_map_gnupg_error): New function. - * gpgme.c (gpgme_release): Don't release CTX->notation. - (gpgme_get_notation): Remove function. - * decrypt-verify.c (_gpgme_op_decrypt_verify_start): Call - _gpgme_op_verify_init_result. - * verify.c: Do not include , and "key.h", but - do include "gpgme.h". - (struct verify_result): Replace with ... - (op_data_t): ... this type. - (release_verify_result): Remove function. - (release_op_data): New function. - (is_token): Remove function. - (skip_token): Remove function. - (copy_token): Remove function. - (gpgme_op_verify_result): New function. - (calc_sig_summary): Rewritten. - (finish_sig): Remove function. - (parse_new_sig): New function. - (parse_valid_sig): New function. - (parse_notation): New function. - (parse_trust): New function. - (parse_error): New function. - (_gpgme_verify_status_handler): Rewritten. Change first argument - to void *. - (_gpgme_op_verify_start): Rework error handling. Call - _gpgme_op_verify_init_result. - (gpgme_op_verify): Do not release or clear CTX->notation. - (gpgme_get_sig_status): Rewritten. - (gpgme_get_sig_string_attr): Likewise. - (gpgme_get_sig_ulong_attr): Likewise. - (gpgme_get_sig_key): Likewise. - - * gpgme.h (struct _gpgme_op_decrypt_result): New structure. - (GpgmeDecryptResult): New type. - (gpgme_op_decrypt_result): New prototype. - * ops.h (_gpgme_op_decrypt_init_result): New prototype. - (_gpgme_decrypt_status_handler): Fix prototype. - (_gpgme_decrypt_start): Remove prototype. - * decrypt-verify.c: Do not include , , - and , "util.h" and "context.h", but - "gpgme.h". - (decrypt_verify_status_handler): Change first argument to void *, - and rework error handling. - (_gpgme_op_decrypt_verify_start): New function. - (gpgme_op_decrypt_verify_start): Rewrite using - _gpgme_op_decrypt_verify_start. - (gpgme_op_decrypt_verify): Likewise. - * decrypt.c: Include , "gpgme.h" and "util.h". - (struct decrypt_result): Change to typedef op_data_t, rewritten. - (is_token): Remove function. - (release_op_data): New function. - (skip_token): Remove function. - (gpgme_op_decrypt_result): New function. - (_gpgme_decrypt_status_handler): Change first argument to void *. - Rework error handling. - (_gpgme_decrypt_start): Rename to ... - (decrypt_start): ... this. Call _gpgme_op_decrypt_init_result. - (_gpgme_op_decrypt_init_result): New function. - (gpgme_op_decrypt_start): Use decrypt_start. - (gpgme_op_decrypt): Likewise. - -2003-04-27 Marcus Brinkmann - - * encrypt-sign.c: Do not include , , - , , and "util.h", but "gpgme.h". - (_gpgme_op_encrypt_sign_start): Rename to ... - (encrypt_sign_start): ... this. - (gpgme_op_encrypt_sign_start): Use encrypt_sign_start, not - _gpgme_op_encrypt_sign_start. - (gpgme_op_encrypt_sign): Likewise. - - * gpgme.h (GpgmeEncryptResult): New data type. - (gpgme_op_encrypt_result): New prototype. - * ops.h (_gpgme_op_encrypt_init_result): New prototype. - (_gpgme_op_encrypt_status_handler): Fix prototype. - * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Call - _gpgme_op_encrypt_init_result. - * encrypt.c: Do not include , , "util.h" and - "wait.h". Include and "gpgme.h". - (SKIP_TOKEN_OR_RETURN): Remove macro. - (struct encrypt_result): Rename to ... - (op_data_t): ... new data type. Rewrite for user result data. - (append_xml_encinfo): Remove function. - (release_op_data): New function. - (gpgme_op_encrypt_result): New function. - (_gpgme_op_encrypt_status_handler): Change first argument to void *. - Rewrite result parsing. - (_gpgme_op_encrypt_sym_status_handler): Change first argument to - void *. - (_gpgme_op_encrypt_init_result): New function. - (_gpgme_op_encrypt_start): Rename to ... - (encrypt_start): ... this. - (gpgme_op_encrypt_start): Use encrypt_start, not - gpgme_op_encrypt_start. - (gpgme_op_encrypt): Likewise. - - * gpgme.h (GpgmePubKeyAlgo, GpgmeHashAlgo, GpgmeInvalidUserID, - GpgmeNewSignature, GpgmeSignResult): New data types. - (gpgme_op_sign_result, gpgme_pubkey_algo_name, - gpgme_hash_algo_name): New prototypes. - * gpgme.c (gpgme_pubkey_algo_name): New function. - (gpgme_hash_algo_name): Likewise. - * ops.h (_gpgme_parse_inv_userid, _gpgme_op_sign_init_result): New - prototype. - (_gpgme_op_sign_status_handler): Fix prototype. - * op-support.c: Include and . - (_gpgme_parse_inv_userid): New function. - * sign.c: Include and "gpgme.h", but not , - and "util.h". - (SKIP_TOKEN_OR_RETURN): Remove macro. - (struct sign_result): Change to op_data_t type and rework it. - (release_sign_result): Rename to ... - (release_op_data): ... this and rewrite it. - (append_xml_info): Remove function. - (gpgme_op_sign_result): New function. - (parse_sig_created): New function. - (_gpgme_sign_status_handler): Change first argument to void *. - Rewrite the function to use the new result structure and functions. - (_gpgme_op_sign_init_result): New function. - (_gpgme_op_sign_start): Rename to ... - (sign_start): ... this. Call _gpgme_op_sign_init_result. - (gpgme_op_sign_start): Use sign_start instead _gpgme_op_sign_start. - (gpgme_op_sign): Likewise. - * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Call - _gpgme_op_sign_init_result. - - * delete.c: Include and "gpgme.h", but not "util.h" or - "key.h". - (enum delete_problem): Move into function delete_status_handler. - (delete_status_handler): Change first argument to void *. Parse - delete problem with strtol instead atoi. Return better error - values. - (_gpgme_op_delete_start): Rename to ... - (delete_start): ... this. Rework error handling. - (gpgme_op_delete_start): Use delete_start instead - _gpgme_op_delete_start. - (gpgme_op_delete): Likewise. - * gpgme.h (GpgmeDataType): Removed. - -2003-04-25 Marcus Brinkmann - - * gpgme.h: Change GPGME_IMPORT_PRIVATE to GPGME_IMPORT_SECRET. - * import.c (parse_import_res): Parse unchanged field. - - * gpgme.h: New enum for GPGME_IMPORT_NEW, GPGME_IMPORT_UID, - GPGME_IMPORT_SIG, GPGME_IMPORT_SUBKEY, GPGME_IMPORT_PRIVATE. - (GpgmeError): GPGME_Unknown_Reason, GPGME_Not_Found, - GPGME_Ambiguous_Specification, GPGME_Wrong_Key_Usage, - GPGME_Key_Revoked, GPGME_Key_Expired, GPGME_No_CRL_Known, - GPGME_CRL_Too_Old, GPGME_Policy_Mismatch, GPGME_No_Secret_Key, - GPGME_Key_Not_Trusted, GPGME_Issuer_Missing, GPGME_Chain_Too_Long, - GPGME_Unsupported_Algorithm, GPGME_Sig_Expired, - GPGME_Bad_Signature, GPGME_No_Public_Key added as new error codes. - (struct _gpgme_import_status): New structure. - (GpgmeImportStatus): New type. - (struct _gpgme_op_import_result): New structure. - (GpgmeImportResult): New type. - (gpgme_op_import_result): New function. - * import.c: Include and "gpgme.h", but not "util.h". - (struct import_result): Change to type op_data_t. - (release_import_result): Rename to ... - (release_op_data): ... this. - (append_xml_impinfo): Function removed. - (gpgme_op_import_result): New function. - (parse_import): New function. - (parse_import_res): Likewise. - (import_status_handler): Change first argument to void *. Rewrite - to use new functions. - (_gpgme_op_import_start): Rework error handling. - - * edit.c: Do not include , "util.h", but "gpgme.h". - (edit_resut): Change to typedef for op_data_t. - (edit_status_handler): Change first argument to void *. - Rework error handling. - (command_handler): Rework error handling. - (_gpgme_op_edit_start): Rename to ... - (edit_start): ... this. Rework error handling. - (gpgme_op_edit_start): Rewrite using edit_start. - (gpgme_op_edit): Likewise. - - * ops.h (_gpgme_passphrase_start): Remove prototype. - * passphrase.c: Do not include , "util.h" or - "debug.h", but "gpgme.h". - (struct passphrase_result): Change to typedef for op_data_t. - (release_passphrase_result): Rename to release_op_data. - (_gpgme_passphrase_status_handler): Change first argument to void *. - Use new op_data_t type. - (_gpgme_passphrase_command_handler): Use new op_data_t type. - (_gpgme_passphrase_start): Remove function. - * decrypt.c (_gpgme_decrypt_start): Rewrite error handling. Do - not call _gpgme_passphrase_start, but install command handler. - * encrypt.c (_gpgme_op_encrypt_start): Likewise. - * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. - * sign.c (_gpgme_op_sign_start): Likewise. - - * context.h (struct gpgme_context_s): Remove member initialized, - use_cms and help_data_1. Add member protocol. Make use_armor and - use_textmode bit flags. Make keylist_mode, include_certs, - signers_len and signers_size unsigned. - * gpgme.c (gpgme_new): Initialize CTX->protocol. - (gpgme_set_protocol): Do not check CTX. Use CTX->protocol. - (gpgme_get_protocol): Likewise. - (gpgme_release): Do not release CTX->help_data_1. - * op-support.c (_gpgme_op_reset): Use CTX->protocol. - - * wait-private.c (_gpgme_wait_private_event_cb): Remove variable CTX. - - * data.c: Do not include , but "gpgme.h". - (_gpgme_data_inbound_handler): Expand _gpgme_data_append, because - it will go. Do not assert DH. - (_gpgme_data_outbound_handler): Do not assert DH. - - * export.c: Do not include , "debug.h" and "util.h", but - "gpgme.h". - (export_status_handler): Change type of first argument to void *. - (_gpgme_op_export_start): Rename to ... - (export_start): ... this. Rework error handling. - (gpgme_op_export_start): Rewritten to use export_start instead - _gpgme_op_export_start. - (gpgme_op_export): Likewise. - - * gpgme.h (GpgmeError): Add GPGME_Busy, GPGME_No_Request. - (GPGME_No_Recipients, GPGME_Invalid_Recipient, - GPGME_No_Passphrase): New macros. - - * key.c (gpgme_key_get_string_attr): Fix validity attribute. - -2003-04-24 Marcus Brinkmann - - * gpgme.h (struct _gpgme_op_genkey_result): New structure. - (GpgmeGenKeyResult): New type. - (gpgme_op_genkey): Drop last argument. - (gpgme_op_genkey_result): New function. - * genkey.c: Do not include "util.h", but "gpgme.h". - (struct genkey_result): Replace with ... - (op_data_t): ... this new type. - (release_genkey_result): Replace with ... - (release_op_data): ... this new function. - (gpgme_op_genkey_result): New function. - (genkey_status_handler): Rewritten using new op_data_t type. - (get_key_parameter): New function. - (_gpgme_op_genkey_start): Renamed to - (genkey_start): ... this and rewritten. - (gpgme_op_genkey_start): Use genkey_start instead - _gpgme_op_genkey_start. - (gpgme_op_genkey): Rewritten. Remove FPR argument. - - * context.h (struct gpgme_context_s): Remove member verbosity. - * gpgme.c (gpgme_new): Do not set member verbosity. - * engine.h (_gpgme_engine_set_verbosity): Remove prototype. - * engine.c (_gpgme_engine_set_verbosity): Remove function. - * engine-backend.h (struct engine_ops): Remove set_verbosity. - * engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Remove set_verbosity member. - * rungpg.c (_gpgme_engine_ops_gpg): Likewise. - (gpg_set_verbosity): Remove function. - * decrypt.c (_gpgme_decrypt_start): Don't call - _gpgme_engine_set_verbosity. - * delete.c (_gpgme_op_delete_start): Likewise. - * edit.c (_gpgme_op_edit_start): Likewise. - * encrypt.c (_gpgme_op_encrypt_start): Likewise. - * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. - * export.c (_gpgme_op_export_start): Likewise. - * genkey.c (_gpgme_op_genkey_start): Likewise. - * import.c (_gpgme_op_import_start): Likewise. - * keylist.c (gpgme_op_keylist_start): Likewise. - (gpgme_op_keylist_ext_start): Likewise. - * sign.c (_gpgme_op_sign_start): Likewise. - * verify.c (_gpgme_op_verify_start): Likewise. - - * Makefile.am (libgpgme_la_SOURCES): Add key-cache.c. - * key.c (key_cache_initialized, key_cache_size, - key_cache_max_chain_length, ): Removed. - (struct key_cache_item_s, key_cache_lock, key_cache, - key_cache_unused_items, hash_key, _gpgme_key_cache_add, - _gpgme_key_cache_get, gpgme_get_key): Moved to ... - * key-cache.c: ... here. New file. - * key.h (_gpgme_key_cache_init): Remove prototypes. - (_gpgme_key_cache_add,_gpgme_key_cache_get): Move to ... - * ops.h: ... here. - * version.c: Do not include "key.h". - (do_subsystem_inits): Do not call _gpgme_key_cache_init. - - * mkstatus: Strip trailing comma. - * gpgme.h (GpgmeStatus): Pretty print. - - * gpgme.h (GpgmeError): Rename GPGME_No_Passphrase to - GPGME_Bad_Passphrase. - * passphrase.c (_gpgme_passphrase_status_handler): Use - GPGME_Bad_Passphrase instead GPGME_No_Passphrase. - - * gpgme.h (GpgmeError): Rename GPGME_No_Recipients to - GPGME_No_UserID and GPGME_Invalid_Recipient to - GPGME_Invalid_UserID. - * encrypt.c (_gpgme_encrypt_status_handler): Use GPGME_No_UserID - instead GPGME_No_Recipients and GPGME_Invalid_UserID instead - GPGME_Invalid_Recipient. - (_gpgme_op_encrypt_start): Likewise. - - * gpgme.h (GpgmeError): Remove GPGME_Busy and GPGME_No_Request. - * wait-user.c (_gpgme_wait_user_event_cb): Don't clear CTX->pending. - * wait-private.c (_gpgme_wait_private_event_cb): Likewise. - * wait-global.c (gpgme_wait): Likewise. - * verify.c (_gpgme_op_verify_start): Likewise. - (gpgme_get_sig_status): Don't check pending flag. - (gpgme_get_sig_string_attr): Likewise. - (gpgme_get_sig_ulong_attr): Likewise. - (gpgme_get_sig_key): Likewise. - * op-support.c (_gpgme_op_reset): Likewise. - * trustlist.c (gpgme_op_trustlist_start): Don't clear pending flag. - (gpgme_op_trustlist_next): Don't check or clear pending flag. - (gpgme_op_trustlist_end): Likewise. - * sign.c (_gpgme_op_sign_start): Likewise. - * context.h (struct gpgme_context_s): Remove member PENDING. - * decrypt.c (_gpgme_decrypt_start): Likewise. - * delete.c (_gpgme_op_delete_start): Likewise. - * edit.c (_gpgme_op_edit_start): Likewise. - * encrypt.c (_gpgme_op_encrypt_start): Likewise. - * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. - * export.c (_gpgme_op_export_start): Likewise. - * genkey.c (_gpgme_op_genkey_start): Likewise. - * import.c (_gpgme_op_import_start): Likewise. - * key.c (gpgme_get_key): Likewise. - * keylist.c (gpgme_op_keylist_start): Likewise. - (gpgme_op_keylist_ext_start): Likewise. - (gpgme_op_keylist_next): Likewise. - (gpgme_op_keylist_end): Likewise. - * data-compat.c (gpgme_error_to_errno): Don't convert EBUSY. - -2003-02-06 Marcus Brinkmann - - * gpgme.h (GpgmePassphraseCb): Change type to return GpgmeError, - and add argument for returning the result string. - (gpgme_cancel): Remove prototype. - * gpgme.c (gpgme_cancel): Remove function. - * context.h (struct gpgme_context_s): Remove member cancel. - * passphrase.c (_gpgme_passphrase_command_handler): Call the - passphrase callback in the new way. - -2003-01-30 Marcus Brinkmann - - * edit.c (_gpgme_edit_status_handler): Call the progress status - handler. - -2003-02-05 Marcus Brinkmann - - * wait-user.c (_gpgme_wait_user_remove_io_cb): Move check for no - I/O handlers left to ... - (_gpgme_user_io_cb_handler): ... here. - -2003-02-04 Marcus Brinkmann - - * trustlist.c (trustlist_colon_handler): Release ITEM if name - could not be allocated. - (gpgme_trust_item_release): Only release name if it is allocated. - Reported by Marc Mutz . - -2003-02-04 Marcus Brinkmann - - * rungpg.c (read_status): If he status handler returns an error, - return it. - (status_handler): If read_status fails, just return the error. - -2003-02-01 Marcus Brinkmann - - * engine-gpgsm.c (start): Handle all errors, not only most of - them. - (xtoi_1, xtoi_2): Remove macro. - (status_handler): Replace use of xtoi_2 with _gpgme_hextobyte. - -2003-02-01 Marcus Brinkmann - - * engine-gpgsm.c (map_assuan_error): Replace - ASSUAN_Bad_Certificate_Path with ASSUAN_Bad_Certificate_Chain. - (gpgsm_new): Use assuan_pipe_connect instead assuan_pipe_connect2. - - * util.h (DIMof): Remove macro. - - * ops.h (_gpgme_op_event_cb, _gpgme_op_event_cb_user, - _gpgme_data_unread): Prototypes removed. - -2003-01-30 Marcus Brinkmann - - * types.h: File removed. - * Makefile.am (libgpgme_la_SOURCES): Remove types.h. - * io.h (struct spawn_fd_item_s): Do not include "types.h". - * key.h: Likewise. - * context.h: Likewise. - * cengine-gpgsm.h: Likewise. - * engine.h: Include "gpgme.h" instead "types.h". Add prototypes - for EngineStatusHandler, EngineColonLineHandler and - EngineCommandHandler. - (_gpgme_engine_set_status_handler): Change parameter type from - GpgmeStatusHandler to EngineStatusHandler. - (_gpgme_engine_set_command_handler): Change parameter type from - GpgmeCommandHandler to EngineCommandHandler. - (_gpgme_engine_set_colon_line_handler): Change parameter type from - GpgmeColonLineHandler to EngineColonLineHandler. - * engine-backend.h: Include "engine.h" instead "types.h". - (struct engine_ops): Change Gpgme*Handler parameters in members - set_command_handler, set_colon_line_handler and set_status_handler - to Engine*Handler. - * engine.c (_gpgme_engine_set_status_handler): Change parameter - type from GpgmeStatusHandler to EngineStatusHandler. - (_gpgme_engine_set_command_handler): Change parameter type from - GpgmeCommandHandler to EngineCommandHandler. - (_gpgme_engine_set_colon_line_handler): Change parameter type from - GpgmeColonLineHandler to EngineColonLineHandler. - * rungpg.c (struct gpg_object_s): Change type of member status.fnc - from GpgmeStatusHandler to EngineStatusHandler. Change type of - member colon.fnc from GpgmeColonLineHandler to - EngineColonLineHandler. Change type of member cmd.fnc from - GpgmeCommandHandler to EngineCommandHandler. - * engine-gpgsm.c (struct gpgsm_object_s): Likewise. - * rungpg.c (gpg_set_status_handler): Change parameter type from - GpgmeStatusHandler to EngineStatusHandler. - * engine-gpgsm.c (gpgsm_set_status_handler): Likewise. - (assuan_simple_command): Likewise. - * rungpg.c (gpg_set_colon_line_handler): Change parameter type - from GpgmeColonLineHandler to EngineColonLineHandler. - * engine-gpgsm.c (gpgsm_set_colon_line_handler): Likewise. - * rungpg.c (gpg_set_command_handler): Change parameter type from - GpgmeCommandHandler to EngineCommandHandler. - - * engine-gpgsm.c (status_handler): Do not close status fd at end - of function. - - * ops.h (_gpgme_op_data_lookup): Add prototype. - * op-support.c: Include . - (_gpgme_op_data_lookup): New function. - * decrypt.c (_gpgme_release_decrypt_result): Function removed. - (struct decrypt_result_s): Rename to ... - (struct decrypt_resul): ... this. - (DecryptResult): New type. - (_gpgme_decrypt_status_handler): Don't use - test_and_allocate_result, but use _gpgme_op_data_lookup to - retrieve result data object. - * sign.c (_gpgme_release_sign_result): Function removed. - (release_sign_result): New function. - (struct sign_result_s): Rename to ... - (struct sign_result): ... this. - (SignResult): New type. - (_gpgme_sign_status_handler): Don't use - test_and_allocate_result, but use _gpgme_op_data_lookup to - retrieve result data object. - * encrypt.c (struct encrypt_result_s): Rename to ... - (struct encrypt_result): ... this. - (_gpgme_release_encrypt_result): Function removed. - (release_encrypt_result): New function. - (_gpgme_encrypt_status_handler): Don't use - test_and_allocate_result, but use _gpgme_op_data_lookup to - retrieve result data object. - * verify.c (struct verify_result_s): Rename to ... - (struct verify_result): ... this. Remove member next. - (VerifyResult): New type. - (_gpgme_release_verify_result): Function removed. - (release_verify_result): New function. - (finish_sig): Change first argument to type VerifyResult. Diddle - the type of the op_data structure. - (add_notation): Change first argument to type VerifyResult. - (_gpgme_verify_status_handler): Don't use - test_and_allocate_result, but use _gpgme_op_data_lookup to - retrieve result data object. - * passphrase.c (struct passphrase_result_s): Rename to ... - (struct passphrase_result): ... this. Remove member next. - (PassphraseResult): New type. - (_gpgme_release_passphrase_result): Function removed. - (release_passphrase_result): New function. - (_gpgme_passphrase_status_handler): Don't use - test_and_allocate_result, but use _gpgme_op_data_lookup to - retrieve result data object. - (_gpgme_passphrase_command_handler): Likewise. - * keylist.c (struct keylist_result_s): Rename to ... - (struct keylist_result): ... this. Remove member next. - (KeylistResult): New type. - (_gpgme_release_keylist_result): Function removed. - (release_keylist_result): New function. - (keylist_status_handler): Don't use - test_and_allocate_result, but use _gpgme_op_data_lookup to - retrieve result data object. - * edit.c (struct edit_result_s): Rename to ... - (struct edit_result): ... this. Remove member next. - (EditResult): New type. - (_gpgme_release_edit_result): Function removed. - (release_edit_result): New function. - (edit_status_handler): Don't use - test_and_allocate_result, but use _gpgme_op_data_lookup to - retrieve result data object. - (command_handler): Likewise. - * types.h (DecryptResult, SignResult, EncryptResult, - PassphraseResult, ImportResult, DeleteResult, GenKeyResult, - KeylistResult, EditResult): Types removed. - * ops.h: Don't include "types.h", but "gpgme.h" and "context.h". - (test_and_allocate_result): Remove macro. - (_gpgme_release_decrypt_result): Remove prototype. - (_gpgme_decrypt_result): Remove prototype. - (_gpgme_release_sign_result): Remove prototype. - (_gpgme_release_encrypt_result): Remove prototype. - (_gpgme_release_passphrase_result): Remove prototype. - (_gpgme_release_import_result): Remove prototype. - (_gpgme_release_delete_result): Remove prototype. - (_gpgme_release_genkey_result): Remove prototype. - (_gpgme_release_keylist_result): Remove prototype. - (_gpgme_release_edit_result): Remove prototype. - (_gpgme_release_verify_result): Remove prototype. - * gpgme.c (_gpgme_release_result): Rewritten. - * context.h (enum ctx_op_data_type): New enum. - (struct ctx_op_data): New structure. - (struct gpgme_context_s): Replace the member result with a member - op_data. - (fail_on_pending_request): Remove macro. - * op-support.c (_gpgme_op_reset): Expand macro - fail_on_pending_request. - * util.h: Don't include "types.h" or "debug.h", but include "gpgme.h". - -2003-01-19 Marcus Brinkmann - - * rungpg.c (_gpgme_engine_ops_gpg): Remove gpg_start. - (gpg_start): Rename to ... - (start): ... this function. Change arguments to GpgObject. - (gpg_decrypt): Call start. - (gpg_edit): Likewise. - (gpg_encrypt): Likewise. - (gpg_encrypt_sign): Likewise. - (gpg_export): Likewise. - (gpg_import): Likewise. - (gpg_keylist): Likewise. - (gpg_keylist_ext): Likewise. - (gpg_trustlist): Likewise. - (gpg_verify): Likewise. - - * engine-gpgsm.c (_gpgme_engine_ops_encrypt): Remove gpgsm_start. - (gpgsm_start): Rename to ... - (struct gpgsm_object_s): Remove member command. - (gpgsm_release): Don't free command. - (start): ... this function. Change arguments to GpgsmObject and - const char *. - (gpgsm_decrypt): Call start. - (gpgsm_delete): Likewise. - (gpgsm_encrypt): Likewise. - (gpgsm_export): Likewise. - (gpgsm_genkey): Likewise. - (gpgsm_import): Likewise. - (gpgsm_keylist): Likewise. - (gpgsm_keylist_ext): Likewise. - (gpgsm_verify): Likewise. - - * decrypt.c (_gpgme_decrypt_start): Don't call - _gpgme_engine_start. - * delete.c (_gpgme_op_delete_start): Likewise. - * edit.c (_gpgme_op_edit_start): Likewise. - * encrypt.c (_gpgme_op_encrypt_start): - * encrypt-sign.c (_gpgme_op_encrypt_sign_start): - * export.c (_gpgme_op_export_start): Likewise. - * genkey.c (_gpgme_op_genkey_start): Likewise. - * import.c (_gpgme_op_import_start): Likewise. - * keylist.c (gpgme_op_keylist_ext_start): Likewise. - (gpgme_op_keylist_start): Likewise. - * sign.c (_gpgme_op_sign_start): Likewise. - * trustlist.c (gpgme_op_trustlist_start): Likewise. - * verify.c (_gpgme_op_verify_start): Likewise. - - * engine-backend.h (struct engine_ops): Remove member start. - - * engine.h (_gpgme_engine_start): Remove prototype. - * engine.c (_gpgme_engine_start): Remove function. - -2003-01-19 Miguel Coca - - * w32-io.c (_gpgme_io_select): Add missing argument in calls to - DEBUG_BEGIN. - * w32-util.c: Include "sema.h". - (find_program_in_registry): Change DEBUG1 to DEBUG2, fixes compilation - error. - -2003-01-29 Marcus Brinkmann - - * types.h: Remove byte and ulong types. - * util.h (_gpgme_hextobyte): Change prototype to unsigned char - instead byte. - * conversion.c (_gpgme_hextobyte): Change argument to unsigned - char instead byte. - (_gpgme_decode_c_string): Likewise, and beautify. Also support a - few more escaped characters. Be more strict about buffer size. - (_gpgme_data_append_percentstring_for_xml): Change type of SRC, - BUF and DST to unsigned char instead byte. - * progress.c (_gpgme_progress_status_handler): Use unsigned char - instead byte. - * debug.c (trim_spaces): Likewise. - - * util.h (mk_error): Remove macro. - * conversion.c, data.c, data-compat.c, decrypt.c, delete.c, - edit.c, encrypt.c, encrypt-sign.c, engine.c, engine-gpgsm.c, - export.c, genkey.c, gpgme.c, import.c, key.c, keylist.c, - passphrase.c, progress.c, recipient.c, rungpg.c, sign.c, - signers.c, trustlist.c, verify.c, wait.c, wait-global.c, - wait-private (literally everywhere): Expand the mk_error macro. - - * context.h (wait_on_request_or_fail): Remove macro. - - * context.h (gpgme_context_s): Remove member ERROR. - * types.h (GpgmeStatusHandler): Change return type to GpgmeError. - (GpgmeCommandHandler): Change return type to GpgmeError and add - new argument RESULT. - * gpgme.h (GpgmeIOCb): Change return type to GpgmeError. - (GpgmeEventIO): New event GPGME_EVENT_START. - (GpgmeIdleFunc): Remove type. - (gpgme_register_idle): Remove prototype. - * data.c: Include . - (_gpgme_data_inbound_handler): Change return type to GpgmeError. - Return any error instead ignoring it, don't close file descriptor - on error. - (_gpgme_data_outbound_handler): Likewise. - * decrypt.c: Do not include , and . - (_gpgme_decrypt_status_handler): Change return type to GpgmeError. - Return error instead setting ctx->error. Return success at end of - function. - (gpgme_op_decrypt): Don't work around the old kludge anymore. - * decrypt-verify.c (decrypt_verify_status_handler): Change return - type to GpgmeError. Return possible errors. - * delete.c: Do not include , , and - . - (delete_status_handler): Change return type to GpgmeError. Return - error instead setting ctx->error. Return success at end of - function. - * edit.c: Do not include and . - (_gpgme_edit_status_handler): Change type to GpgmeError, - make static and rename to ... - (edit_status_handler): ... this. Return error directly. - (command_handler): Change return type to GpgmeError, add result - argument. Return error directly. - * encrypt.c (status_handler_finish): Remove function. - (_gpgme_encrypt_status_handler): Change return type to GpgmeError. - Return error directly. - (_gpgme_encrypt_sym_status_handler): Likewise. - * encrypt-sign.c (encrypt_sign_status_handler): Likewise. - * engine-gpgsm.c (close_notify_handler): Do not signal done event - anymore. - (status_handler): Change return type to GpgmeError. Diddle things - around a bit to return errors directly. - (start): Send start event. - * export.c: Do not include , and . - (export_status_handler): Change return type to GpgmeError. Don't - check ctx->error. - * genkey.c: Do not include and . - (genkey_status_handler): Change return type to GpgmeError. Don't - check ctx->error. Return errors directly. - * gpgme.c (_gpgme_release_result): Do not initialize ctx->error. - (_gpgme_op_event_cb): Function removed. - (_gpgme_op_event_cb_user): Likewise. - * import.c: Do not include , and . - (import_status_handler): Change return type to GpgmeError. Don't - check ctx->error. - * keylist.c (keylist_colon_handler, keylist_status_handler, finish_key): - Change return type to GpgmeError, return error directly. - * Makefile (libgpgme_la_SOURCES): Add wait-global.c, - wait-private.c and wait-user.c - * ops.h (test_and_allocate_result): Return error instead setting - ctx->error. - (_gpgme_data_inbound_handler, _gpgme_data_outbound_handler, - _gpgme_verify_status_handler, _gpgme_decrypt_status_handler, - _gpgme_sign_status_handler, _gpgme_encrypt_staus_handler, - _gpgme_passphrase_status_handler, _gpgme_progress_status_handler): - Change return type to GpgmeError. - (_gpgme_passphease_command_handler): Change return type to - GpgmeError and add new argument RESULT. - * op-support.c: Use new callback functions, and change private - data to ctx everywhere. - * passphrase.c (_gpgme_passphrase_status_handler): Change return - type to GpgmeError, return error directly. - (_gpgme_passphrase_command_handler): Change return type to - GpgmeError, add result argument. Return results accordingly. - * progress.c (_gpgme_progress_status_handler): Change return type - to GpgmeError, return errors directly. - * rungpg.c (status_handler): Change return type to GpgmeError. - Return error directly. - (close_notify_handler): Don't send done event. - (colon_line_handler): Change return type to GpgmeError, return - errors directly. - * rungpg.c (start): Send start event. - * sign.c (_gpgme_sign_status_handler): Change return type to - GpgmeError, return errors directly. - * trustlist.c (trustlist_status_handler): Change return type to - GpgmeError. Return 0. - (trustlist_colon_handler): Change return type GpgmeError. Return - errors directly. - * verify.c (add_notation): Change return type to GpgmeError, - return errors directly. - (_gpgme_verify_status_handler): Likewise. - * wait.h (struct fd_table): Remove lock member. - (struct wait_item_s): Moved here from wait.c. - (struct tag): New structure. - (_gpgme_wait_event_cb): Remove prototype. - (_gpgme_wait_private_event_cb, _gpgme_wait_global_event_cb, - _gpgme_wait_user_add_io_cb, _gpgme_wait_user_remove_io_cb, - _gpgme_wait_user_event_io_cb): New prototypes. - * wait.c: Don't include . - (ftd_global, ctx_done_list, ctx_done_list_size, - ctx_done_list_length, ctx_done_list_lock, idle_function): Remove - global variable. - (gpgme_register_idle, do_select, _gpgme_wait_event_cb): Remove - function. - (gpgme_wait): Move to file wait-global.c. - (_gpgme_add_io_cb): Take ctx as private argument, initialize ctx - member in wait item and tag. - (_gpgme_remove_io_cb): Take ctx from tag. Don't use FDT lock. - (_gpgme_wait_one, _gpgme_wait_on_condition): Move to - wait-private.c. - (gpgme_fd_table_init): Don't initialize FDT->lock. - (gpgme_fd_table_deinit): Don't destroy FDT->lock. - (_gpgme_fd_table_put): Make static and rename to ... - (fd_table_put): ... this function. Don't use FDT->lock. - (struct wait_item_s): Move to wait.h. - * wait-global.c: New file. - * wait-private.c: New file. - * wait-user.c: New file. - - * key.c (gpgme_key_sig_get_string_attr): Use validity_to_string - instead otrust_to_string to calculate validity. - -2003-01-30 Marcus Brinkmann - - * types.h (EngineObject): Move typedef to ... - * engine.h: ... here. - * types.h (GpgObject): Move typedef to ... - * rungpg.c: ... here. - * types.h (GpgsmObject): Move typedef to ... - * engine-gpgsm.c: ... here. - - * util.h (return_if_fail, return_null_if_fail, - return_val_if_fail): Remove macro. - * gpgme.c (gpgme_cancel): Don't use return_if_fail. - * key.c (gpgme_key_ref): Likewise. - * signers.c (gpgme_signers_enum): Likewise. - (gpgme_signers_clear): Likewise. - - * engine-backend.h (struct engine_ops): Rename get_path to - get_file_name. - * gpgme.h (struct _gpgme_engine_info): Rename member path to - file_name. - * version.c: Do not include , , context.h and - util.h. Other clean ups. - (parse_version_number): Protect more seriously against - overflow. - (gpgme_get_engine_info): Move to ... - * engine.c (gpgme_get_engine_info): ... here. - (_gpgme_engine_get_info): Function removed. - (_gpgme_engine_get_path): Make static and rename to ... - (engine_get_file_name): .. this. - (_gpgme_engine_get_version): Make static and rename to ... - (engine_get_version): ... this. - (_gpgme_engine_get_req_version): Make static and rename to ... - (engine_get_req_version): ... this. - * engine.h (_gpgme_engine_get_path, _gpgme_engine_get_version, - _gpgme_engine_req_version, _gpgme_engine_get_info.): Remove - prototypes. - - * gpgme.h (enum GpgmeProtocol): Remove GPGME_PROTOCOL_AUTO. - * gpgme.c (gpgme_set_protocol): Don't handle GPGME_PROTOCOL_AUTO. - (gpgme_get_protocol_name): New function. - - * engine-backend.h (struct engine_ops): New member - get_req_version, remove member check_version. - * engine.h (_gpgme_Engine_get_version): New prototype. - * rungpg.c (gpg_get_req_version): New function. - (gpg_check_version): Function removed. - (_gpgme_engine_ops_gpg): Add gpg_get_req_version, remove - gpg_check_version. - * engine-gpgsm.c (gpgsm_get_req_version): New function. - (gpgsm_check_version): Function removed. - (_gpgme_engine_ops_gpgsm): Add gpgsm_get_req_version, remove - gpgsm_check_version. - * engine.c: Include ops.h. - (_gpgme_engine_get_req_version): New function. - (gpgme_engine_check_version): Rewritten. - * version.c (gpgme_get_engine_info): Rewritten. - * gpgme.h (gpgme_engine_info): New structure. - (GpgmeEngineInfo): New type. - -2003-01-06 Werner Koch - - * keylist.c (set_mainkey_capability): Handle 'd' and 'D' used - since gpg 1.3 to denote disabled keys. - -2003-01-06 Marcus Brinkmann - - * data-mem.c: Include . - * engine.c: Likewise. - -2003-01-06 Marcus Brinkmann - - * Makefile.am (libgpgme_la_DEPENDENCIES): Correct bug in last change. - -2002-12-24 Marcus Brinkmann - - * gpgme.h (gpgme_op_verify, gpgme_op_decrypt_verify): Drop R_STAT - argument. - * decrypt-verify.c (gpgme_op_decrypt_verify): Drop R_STAT - argument. - * verify.c (gpgme_op_verify): Drop R_STAT argument. - (_gpgme_intersect_stati): Function removed. - * ops.h (_gpgme_intersect_stati): Remove prototype. - -2002-12-24 Marcus Brinkmann - - * libgpgme.vers: New file. - * Makefile.am (EXTRA_DIST): Add libgpgme.vers. - (libgpgme_version_script_cmd): New variable. - (libgpgme_la_LDFLAGS): Add libgpgme_version_script_cmd here. - (libgpgme_la_DEPENDENCIES): New variable. - -2002-12-23 Marcus Brinkmann - - * key.c (gpgme_key_get_string_attr): Don't accept GPGME_ATTR_IS_SECRET. - (otrust_to_string): New function. - (gpgme_key_get_as_xml): Use it. - (validity_to_string): New function. - (gpgme_key_get_string_attr): Beautify using above functions. - (gpgme_key_get_ulong_attr): Likewise. - -2002-12-23 Marcus Brinkmann - - * data-mem.c (mem_release): Fix gcc warning. - * data-user.c (user_release): Likewise. - -2002-12-06 Marcus Brinkmann - - * data.h (gpgme_data_release_cb): Change return type to void. - (gpgme_data_read_cb): Change return type to ssize_t. - * data.c (gpgme_data_read): Likewise. - * data-stream.c (stream_read): Likewise. - * data-fd.c (fd_read): Likewise. - * data-mem.c (mem_read): Likewise. - (mem_release): Change return type to void. - * data-user.c (user_read): Change return type to ssize_t. - (user_release): Change return type to void. - * data-compat.c (old_user_read): Change return type to ssize_t. - * gpgme.h (GpgmeDataReadCb): Likewise. - (gpgme_data_read): Likewise. - (GpgmeDataSeekCb): Change return type to off_t. - -2002-12-04 Marcus Brinkmann - - * gpgme.h: Add prototype for gpgme_get_key. - * key.c (gpgme_get_key): New function. - * verify.c (gpgme_get_sig_key): Rewrite using gpgme_get_key. - - * gpgme.h: Add prototypes for new interfaces - gpgme_key_sig_get_string_attr and gpgme_key_get_ulong_attr. - (enum GpgmeAttr): New attribute GPGME_ATTR_SIG_CLASS. - * gpgme.c (gpgme_set_keylist_mode): Allow GPGME_KEYLIST_MODE_SIGS. - * key.h (struct certsig_s): New members ALGO, NAME_PART, - EMAIL_PART, COMMENT_PART, NAME, SIG_STAT and SIG_CLASS. - - * conversion.c (_gpgme_decode_c_string): Add new parameter LEN. - Use that to determine if allocation is desired or not. - * util.h: Adjust prototype of _gpgme_decode_c_string. - * keylist.c (keylist_colon_handler): Adjust caller of - _gpgme_decode_c_string. - - * key.h (struct gpgme_key_s): New member last_uid. - * key.c (_gpgme_key_append_name): Rewritten using - _gpgme_decode_c_string and the last_uid pointer. - (my_isdigit): Macro removed. - (ALLOC_CHUNK): Likewise. - * keylist.c (set_userid_flags): Use last_uid member of KEY. - - * context.h (struct user_id_s): New member last_certsig. - * key.h: Add prototype for _gpgme_key_add_certsig. - * key.c (_gpgme_key_add_certsig): New function. - (set_user_id_part): Move function before _gpgme_key_add_certsig. - (parse_user_id): Change first argument to SRC, add new arguments - NAME, EMAIL and COMMENT. Change code to use these arguments - instead going through UID. Move function before - _gpgme_add_certsig. - (parse_x509_user_id): Likewise. - (_gpgme_key_append_name): Adjust arguments to parse_x509_user_id - and parse_user_id invocation. - (one_certsig_as_xml): New function. - (one_uid_as_xml): Print signatures. - * context.h (struct gpgme_context_s): New member TMP_UID. - * keylist.c (keylist_colon_handler): Rewritten, implement "sig" - record entries. - - * key.c (get_certsig): New function. - (gpgme_key_sig_get_string_attr): Likewise. - (gpgme_key_sig_get_ulong_attr): Likewise. - - * keylist.c: Include . - (my_isdigit): Macro removed. - (set_mainkey_trust_info): Use isdigit, not my_isdigit. - (set_userid_flags): Likewise. - (set_subkey_trust_info): Likewise. - (set_ownertrust): Likewise. - (finish_key): Move function up a bit and remove prototype. - - * rungpg.c (gpg_keylist_ext): Correct precedence of signature - listing mode. - (gpg_keylist_ext): Implement signature listing mode. - -2002-11-25 Marcus Brinkmann - - * rungpg.c (_gpgme_gpg_spawn): Do not set parent fds to -1. - * posix-io.c (_gpgme_io_spawn): Call _gpgme_io_close instead close - for parent fds. - * w32-io.c (_gpgme_io_spawn): Call _gpgme_io_close instead - CloseHandle for parent fds. - -2002-11-22 Marcus Brinkmann - - * gpgme.h [_MSC_VER]: Define ssize_t as long. - -2002-11-22 Werner Koch - - * engine-gpgsm.c (_gpgme_gpgsm_new): Save the result of a first - setlocale before doing another setlocale. - -2002-11-21 Marcus Brinkmann - - * decrypt.c: Some beautyfication. - - * verify.c (_gpgme_verify_status_handler): Treat - GPGME_STATUS_UNEXPECTED like GPGME_STATUS_NODATA. - Reported by Miguel Coca . - -2002-11-19 Marcus Brinkmann - - * genkey.c: Only include if [HAVE_CONFIG_H]. - (struct genkey_result_s): Add new member FPR. - (_gpgme_release_genkey_result): Free RESULT->fpr if set. - (genkey_status_handler): Extract the fingerprint from the status - line. - (gpgme_op_genkey): Add new argument FPR and return the fingerprint - in it. - * gpgme.h: Adjust prototype of gpgme_op_genkey. - -2002-11-19 Marcus Brinkmann - - * rungpg.c (gpg_keylist): Add --with-fingerprint to gpg invocation - twice, to get fingerprints on subkeys. Suggested by Timo Schulz - . - (gpg_keylist_ext): Likewise. - -2002-11-05 Marcus Brinkmann - - * import.c (append_xml_impinfo): Use - _gpgme_data_append_string_for_xml rather than - _gpgme_data_append_string for the field content. - Submitted by Miguel Coca . - -2002-10-10 Marcus Brinkmann - - * rungpg.h, engine-gpgsm.h: File removed. - * engine-backend.h: New file. - * Makefile.am (gpgsm_components): New variable, set depending on - automake conditional HAVE_GPGSM. - (libgpgme_la_SOURCES): Add engine-backend.h, remove rungpg.h and - engine-gpgsm.h. Replace engine-gpgsm.c with ${gpgsm_components}. - (status-table.h): Depend on gpgme.h, not rungpg.h. - * conversion.c: Include . - * engine-gpgsm.c: Do not set ENABLE_GPGSM here. Include - "engine-backend.h" instead "engine-gpgsm.h". Reorder some - functions and remove all function prototypes. - (_gpgme_gpgsm_get_version): Make static and rename to ... - (gpgsm_get_version): ... this. - (_gpgme_gpgsm_check_version): Make static and rename to ... - (gpgsm_check_version): ... this. - (_gpgme_gpgsm_new): Make static. Change argument type from - GpgsmObject * to void **. Call gpgsm_release instead - _gpgme_gpgsm_release. - (_gpgme_gpgsm_op_decrypt): Make static and rename to ... - (gpgsm_check_decrypt): ... this. - (_gpgme_gpgsm_op_delete): Make static and rename to ... - (gpgsm_check_delete): ... this. - (_gpgme_gpgsm_set_recipients): Make static and rename to ... - (gpgsm_check_set_recipients): ... this. - (_gpgme_gpgsm_op_encrypt): Make static and rename to ... - (gpgsm_encrypt): ... this. - (_gpgme_gpgsm_op_export): Make static and rename to ... - (gpgsm_export): ... this. - (_gpgme_gpgsm_op_genkey): Make static and rename to ... - (gpgsm_genkey): ... this. - (_gpgme_gpgsm_op_import): Make static and rename to ... - (gpgsm_import): ... this. - (_gpgme_gpgsm_op_keylist): Make static and rename to ... - (gpgsm_keylist): ... this. - (_gpgme_gpgsm_op_keylist_ext): Make static and rename to ... - (gpgsm_keylist_ext): ... this. - (_gpgme_gpgsm_op_sign): Make static and rename to ... - (gpgsm_sign): ... this. - (_gpgme_gpgsm_op_trustlist): Make static and rename to ... - (gpgsm_trustlist): ... this. - (_gpgme_gpgsm_op_verify): Make static and rename to ... - (gpgsm_verify): ... this. - (gpgsm_status_handler): Rename to ... - (status_handler): ... this. - (_gpgme_gpgsm_set_status_handler): Make static and rename to ... - (gpgsm_set_status_handler): ... this. - (_gpgme_gpgsm_set_colon_line_handler): Make static and rename to ... - (gpgsm_set_colon_line_handler): ... this. - (_gpgme_gpgsm_add_io_cb): Rename to ... - (add_io_cb): ... this. - (_gpgme_gpgsm_start): Make static and rename to ... - (gpgsm_start): ... this. - (_gpgme_gpgsm_set_io_cb): Make static and rename to ... - (gpgsm_set_io_cb): ... this. - (_gpgme_gpgsm_io_event): Make static and rename to ... - (gpgsm_io_event): ... this. - (struct _gpgme_engine_ops_gpgsm): New variable. - [!ENABLE_GPGSM]: Removed. - * engine.c: Do not include , , , - , "io.h", "rungpg.h" and "engine-gpgsm.h". Include - and "engine-backend.h". - (struct engine_object_s): Rewritten. - (engine_ops): New variable. - * engine.c (_gpgme_engine_get_path, _gpgme_engine_get_version, - _gpgme_engine_check_version, _gpgme_engine_new, - _gpgme_engine_release, _gpgme_engine_set_verbosity, - _gpgme_engine_set_status_handler, - _gpgme_engine_set_command_handler, - _gpgme_engine_set_colon_line_handler, _gpgme_engine_op_decrypt, - _gpgme_engine_op_delete, _gpgme_engine_op_edit, - _gpgme_engine_op_encrypt, _gpgme_engine_op_encrypt_sign, - _gpgme_engine_op_export, _gpgme_engine_op_genkey, - _gpgme_engine_op_import, _gpgme_engine_op_keylist, - _gpgme_engine_op_keylist_ext, _gpgme_engine_op_sign, - _gpgme_engine_op_trustlist, _gpgme_engine_op_verify, - _gpgme_engine_start, _gpgme_engine_set_io_cbs, - _gpgme_engine_io_event): Reimplement. - * engine.h: Fix a few comments and a variable name in a prototype. - * ops.h: Do not include "rungpg.h". - * passphrase.c: Include config.h only if [HAVE_CONFIG_H]. Do not - include "rungpg.h". - * recipient.c: Likewise. - * signers.c: Likewise. - * version.c: Likewise. - * rungpg.c: Likewise. Include "engine-backend.h". Reorder - functions and remove prototypes. - (_gpgme_gpg_get_version): Make static and rename to ... - (gpg_get_version): ... this. - (_gpgme_gpg_check_version): Make static and rename to ... - (gpg_check_version): ... this. - (_gpgme_gpg_new): Make static. Change argument type from - GpgObject * to void **. Call gpg_release instead - _gpgme_gpg_release. - (_gpgme_gpg_op_decrypt): Make static and rename to ... - (gpg_check_decrypt): ... this. - (_gpgme_gpg_op_delete): Make static and rename to ... - (gpg_check_delete): ... this. - (_gpgme_gpg_set_recipients): Make static and rename to ... - (gpg_check_set_recipients): ... this. - (_gpgme_gpg_op_encrypt): Make static and rename to ... - (gpg_encrypt): ... this. - (_gpgme_gpg_op_export): Make static and rename to ... - (gpg_export): ... this. - (_gpgme_gpg_op_genkey): Make static and rename to ... - (gpg_genkey): ... this. - (_gpgme_gpg_op_import): Make static and rename to ... - (gpg_import): ... this. - (_gpgme_gpg_op_keylist): Make static and rename to ... - (gpg_keylist): ... this. - (_gpgme_gpg_op_keylist_ext): Make static and rename to ... - (gpg_keylist_ext): ... this. - (_gpgme_gpg_op_sign): Make static and rename to ... - (gpg_sign): ... this. - (_gpgme_gpg_op_trustlist): Make static and rename to ... - (gpg_trustlist): ... this. - (_gpgme_gpg_op_verify): Make static and rename to ... - (gpg_verify): ... this. - (gpg_status_handler): Rename to ... - (status_handler): ... this. - (_gpgme_gpg_set_status_handler): Make static and rename to ... - (gpg_set_status_handler): ... this. - (_gpgme_gpg_set_colon_line_handler): Make static and rename to ... - (gpg_set_colon_line_handler): ... this. - (gpgme_gpg_add_io_cb): Rename to ... - (add_io_cb): ... this. - (_gpgme_gpg_start): Make static and rename to ... - (gpg_start): ... this. - (_gpgme_gpg_set_io_cb): Make static and rename to ... - (gpg_set_io_cb): ... this. - (_gpgme_gpg_io_event): Make static and rename to ... - (gpg_io_event): ... this. - (struct _gpgme_engine_ops_gpg): New variable. - -2002-10-10 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_verify) [!ENABLE_GPGSM]: Add - missing argument. - -2002-10-09 Marcus Brinkmann - - * data.h, data-user.c, data-stream.c, data-mem.c, data-fd.c, - data-compat.c: New file. Really check them in this time, completes - 2002-10-08 change. - - * rungpg.h (GpgStatusHandler): Rename type to GpgmeStatusHandler - and move to ... - * types.h (GpgmeStatusHandler): ... here. - * rungpg.h (GpgColonLineHandler): Rename type to GpgmeColonLineHandler. - and move to ... - * types.h (GpgmeColonLineHandler): ... here. - * rungpg.h (GpgCommandHandler): Rename type to GpgmeCommandHandler. - and move to ... - * types.h (GpgmeCommandHandler): ... here. - * engine.h: Don't include "rungpg.h". - (_gpgme_engine_set_status_handler): Change type of - argument from GpgStatusHandler to GpgmeStatusHandler. - (_gpgme_engine_set_colon_line_handler): Change type of - argument from GpgColonLineHandler to GpgmeColonLineHandler. - (_gpgme_engine_set_command_handler): Change type of - argument from GpgCommandHandler to GpgmeCommandHandler. - * engine-gpgsm.h: Don't include "rungpg.h". - (_gpgme_gpgsm_set_status_handler): Change type of - argument from GpgStatusHandler to GpgmeStatusHandler. - (_gpgme_gpgsm_set_colon_line_handler): Change type of - argument from GpgColonLineHandler to GpgmeColonLineHandler. - * engine-gpgsm.c: Do not include "rungpg.h". - (struct gpgsm_object_s): Change type of - status.fnc to GpgmeStatusHandler. Change type of colon.fnc to - GpgmeColonLineHandler. - (gpgsm_assuan_simple_command): Change type of argument from - GpgStatusHandler to GpgmeStatusHandler. - (_gpgme_gpgsm_set_status_handler): Likewise. - (_gpgme_gpgsm_set_colon_line_handler): Change type of argument from - GpgColonLineHandler to GpgmeColonLineHandler. - * rungpg.h (_gpgme_gpg_set_status_handler): Change type of - argument from GpgStatusHandler to GpgmeStatusHandler. - (_gpgme_gpg_set_colon_line_handler): Change type of - argument from GpgColonLineHandler to GpgmeColonLineHandler. - (_gpgme_gpg_set_command_handler): Change type of - argument from GpgCommandHandler to GpgmeCommandHandler. - * rungpg.c (struct gpg_object_s): Change type of status.fnc to - GpgmeStatusHandler. Change type of colon.fnc to - GpgmeColonLineHandler. Change type of cmd.fnc to - GpgmeCommandLineHandler. - (_gpgme_gpg_set_status_handler): Change type of argument FNC to - GpgmeStatusHandler. - (_gpgme_gpg_set_colon_line_handler): Change type of argument FNC - to GpgmeColonLineHandler. - (_gpgme_gpg_set_command_handler): Change type of argument FNC to - GpgmeCommandHandler. - * engine.c (_gpgme_engine_set_status_handler): Change type of - argument FNC to GpgmeStatusHandler. - (_gpgme_engine_set_colon_line_handler): Change type of argument FNC - to GpgmeColonLineHandler. - (_gpgme_engine_set_command_handler): Change type of argument FNC to - GpgmeCommandHandler. - - * rungpg.h (_gpgme_gpg_enable_pipemode): Remove prototype. - * rungpg.c (struct gpg_object_s): Remove PM. - (pipemode_cb): Prototype removed. - (add_pm_data): Function removed. - (_gpgme_gpg_enable_pipemode): Likewise. - (pipemode_copy): Likewise. - (pipemode_cb): Likewise. - (add_arg): Don't check for pipemode. - (add_data): Likewise. - (_gpgme_gpg_set_status_handler): Likewise. - (_gpgme_gpg_set_colon_line_handler): Likewise. - (_gpgme_gpg_set_command_handler): Likewise. - (_gpgme_gpg_spawn): Likewise. - (_gpgme_gpg_spawn): Don't set PM.active. - (_gpgme_gpg_op_verify): Remove pipemode case. - * verify.c (_gpgme_op_verify_start): Remove pipemode case. - - * rungpg.h (_gpgme_gpg_add_arg, _gpgme_gpg_add_data, - _gpgme_gpg_add_pm_data, _gpgme_gpg_housecleaning, - _gpgme_gpg_set_simple_line_handler): Prototype removed. - (_gpgme_gpg_set_verbosity): New prototype. - * rungpg.c (_gpgme_gpg_add_data): Make static and rename to ... - (add_data): ... this. - (_gpgme_gpg_add_pm_data): Call add_data, not _gpgme_gpg_add_data. - (_gpgme_gpg_set_command_handler): Likewise. - (_gpgme_gpg_op_decrypt, _gpgme_gpg_op_edit, _gpgme_gpg_op_encrypt, - _gpgme_gpg_op_encrypt_sign, _gpgme_gpg_op_export, - _gpgme_gpg_op_genkey, _gpgme_gpg_op_import, _gpgme_gpg_op_sign, - _gpgme_gpg_op_verify): Likewise. - (_gpgme_gpg_add_pm_data): Rename to ... - (add_pm_data): ... this. - (_gpgme_gpg_op_verify): Call add_pm_data, not - _gpgme_gpg_add_pm_data. - (_gpgme_gpg_add_arg): Make static and rename to ... - (add_arg): ... this. - (_gpgme_gpg_set_command_handler, _gpgme_gpg_new, - _gpgme_gpg_op_decrypt, _gpgme_gpg_op_delete, - _gpgme_append_gpg_args_from_signers, _gpgme_gpg_op_edit, - _gpgme_append_gpg_args_from_recipients, _gpgme_gpg_op_encrypt, - _gpgme_gpg_op_encrypt_sign, _gpgme_gpg_op_export, - _gpgme_gpg_op_genkey, _gpgme_gpg_op_import, _gpgme_gpg_op_keylist, - _gpgme_gpg_op_keylist_ext, _gpgme_gpg_op_trustlist, - _gpgme_gpg_op_sign, _gpgme_gpg_op_verify): Use add_arg, not - _gpgme_gpg_add_arg. - (_gpgme_gpg_set_verbosity): New function. - (struct gpg_object_s): Remove member simple from colon. - (_gpgme_gpg_set_colon_line_handler): Don't initialize simple. - (_gpgme_gpg_set_simple_line_handler): Removed function. - (read_colon_line): Don't check the GPG->colon.simple. - * engine.c (_gpgme_engine_set_verbosity): Call - _gpgme_gpg_set_verbosity instead _gpgme_gpg_add_arg. - -2002-10-08 Marcus Brinkmann - - * util.h (_gpgme_malloc, _gpgme_realloc, _gpgme_calloc, - _gpgme_strdup, _gpgme_free): Remove prototypes. - (xtrymalloc, xtrycalloc, xtryrealloc, xtrystrdup, xfree): Remove - macros. - * util.c: File removed. - * Makefile.am (libgpgme_la_SOURCES): Remove util.h. - * conversion.c (_gpgme_decode_c_string): Use malloc instead of - xtrymalloc, realloc instead of xtryrealloc, calloc instead of - xtrycalloc, free instead of xfree. - (_gpgme_data_append_percentstring_for_xml): Likewise. - * data.c (_gpgme_data_new, _gpgme_data_release): Likewise. - * data-compat.c (gpgme_data_new_from_filepart): Likewise. - * data-mem.c (mem_write, mem_release, gpgme_data_new_from_mem, - _gpgme_data_get_as_string): Likewise. - * debug.c (debug_init): Likewise. - * decrypt.c (_gpgme_release_decrypt_result): Likewise. - * delete.c (_gpgme_release_delete_result): Likewise. - * edit.c (_gpgme_release_edit_result, _gpgme_op_edit_start): - Likewise. - * encrypt.c (_gpgme_release_encrypt_result): Likewise. - * engine.c (_gpgme_engine_get_info, _gpgme_engine_new, - _gpgme_engine_release): Likewise. - * engine-gpgsm.c (_gpgme_gpgsm_new, _gpgme_gpgsm_release, - _gpgme_gpgsm_op_decrypt, _gpgme_gpgsm_op_delete, - gpgsm_set_recipients, _gpgme_gpgsm_op_encrypt, - _gpgme_gpgsm_op_export, _gpgme_gpgsm_op_genkey, - _gpgme_gpgsm_op_import, _gpgme_gpgsm_op_keylist, - _gpgme_gpgsm_op_keylist_ext, _gpgme_gpgsm_op_sign, - _gpgme_gpgsm_op_verify, gpgsm_status_handler): Likewise. - * genkey.c (_gpgme_release_genkey_result): Likewise. - * gpgme.c (gpgme_new, gpgme_release): Likewise. - * import.c (_gpgme_release_import_result): Likewise. - * key.c (_gpgme_key_cache_init, _gpgme_key_cache_add, key_new, - add_subkey, gpgme_key_release, _gpgme_key_append_name): Likewise. - * keylist.c (_gpgme_release_keylist_result, keylist_colon_handler, - _gpgme_op_keylist_event_cb, gpgme_op_keylist_next): Likewise. - * ops.h (test_and_allocate_result): Likewise. - * passphrase.c (_gpgme_release_passphrase_result, - _gpgme_passphrase_status_handler, - _gpgme_passphrase_command_handler): Likewise. - * progress.c (_gpgme_progress_status_handler): Likewise. - * recipient.c (gpgme_recipients_new, gpgme_recipients_release, - gpgme_recipients_add_name_with_validity): Likewise. - * rungpg.c (_gpgme_gpg_new, _gpgme_gpg_release, - _gpgme_gpg_add_arg, _gpgme_gpg_add_data, - _gpgme_gpg_set_colon_line_handler, free_argv, free_fd_data_map, - build_argv, _gpgme_gpg_spawn, read_status, read_colon_line): - Likewise. - * sign.c (_gpgme_release_sign_result): Likewise. - * signers.c (_gpgme_signers_add): Likewise. - * trustlist.c (trust_item_new, trustlist_colon_handler, - _gpgme_op_trustlist_event_cb, gpgme_op_trustlist_next, - gpgme_trustitem_release): Likewise. - * verify.c (_gpgme_release_verify_result, finish_sig): Likewise. - * version.c (gpgme_get_engine_info, _gpgme_get_program_version): - Likewise. - * w32-io.c (create_reader, create_writer, destroy_reader, - destroy_writer, build_commandline, _gpgme_io_spawn): Likewise. - * w32-sema.c (critsect_init, _gpgme_sema_cs_destroy): Likewise. - * w32-util.c (read_w32_registry_string): Likewise. - * wait.c (_gpgme_fd_table_deinit, _gpgme_fd_table_put, - _gpgme_wait_event_cb, _gpgme_add_io_cb, _gpgme_remove_io_cb) - * data-compat.c: Include . - -2002-10-08 Marcus Brinkmann - - New data object component: - - * gpgme.h (GpgmeDataReadCb, GpgmeDataWriteCb, GpgmeDataSeekCb, - GpgmeDataReleaseCb): New types. - (struct GpgmeDataCbs): New structure. - (gpgme_data_read): Changed prototype to match that of read() closely. - (gpgme_data_write): Similar for write(). - (gpgme_data_seek, gpgme_data_new_from_cbs, gpgme_data_new_from_fd, - gpgme_data_new_from_stream): New prototypes. - (gpgme_data_get_type, gpgme_check_engine): Prototype removed. - - * Makefile.am (libgpgme_la_SOURCES): Add data.h, data-fd.c, - data-stream.c, data-mem.c, data-user.c and data-compat.c. - * data.c: Reimplemented from scratch. - * (data-compat.c, data-fd.c, data.h, data-mem.c, data-stream.c, - data-user.c): New file. - * context.h (struct gpgme_data_s): Removed. - * conversion.c: Include and . - (_gpgme_data_append): New function. - * data.c (_gpgme_data_append_string): Move to ... - * conversion.c (_gpgme_data_append_string): ... here. - * data.c (_gpgme_data_append_for_xml): Move to ... - * conversion.c (_gpgme_data_append_for_xml): ... here. - * data.c (_gpgme_data_append_string_for_xml): Move to ... - * conversion.c (_gpgme_data_append_string_for_xml): ... here. - * data.c (_gpgme_data_append_percentstring_for_xml): Move to ... - * conversion.c (_gpgme_data_append_percentstring_for_xml): ... here. - - * ops.h (_gpgme_data_get_mode, _gpgme_data_set_mode): Prototype - removed. - * types.h (GpgmeDataMode): Type removed. - - * decrypt.c (_gpgme_decrypt_start): Don't check data type or mode. - * edit.c (_gpgme_op_edit_start): Likewise. - * encrypt.c (_gpgme_op_encrypt_start): Likewise. - * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. - * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. - * export.c (_gpgme_op_export_start): Likewise. - * genkey.c (_gpgme_op_genkey_start): Likewise. - * import.c (_gpgme_op_import_start): Likewise. - * sign.c (_gpgme_op_sign_start): Likewise. - * verify.c (_gpgme_op_verify_start): Likewise. - - * encrypt.c (gpgme_op_encrypt): Remove hack that returns invalid - no recipient if no data was returned. - * encrypt-sign.c (gpgme_op_encrypt_sign): Remove hack that returns - no recipient if no data was returned. - * encrypt-sign.c (gpgme_op_encrypt_sign): Remove hack that returns - no recipient if no data was returned. - - * engine.c (_gpgme_engine_op_verify): Add new argument to - differentiate detached from normal signatures. - * engine.h (_gpgme_engine_op_verify): Likewise for prototype. - * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Likewise. Don't check - mode of data argument. - * engine-gpgsm.h (_gpgme_gpgsm_op_verify): Likewise for prototype. - * gpgme.h (gpgme_op_verify_start): Likewise for prototype. - (gpgme_op_verify): Likewise for prototype. - * rungpg.c (_gpgme_gpg_op_verify): Likewise. - * rungpg.h (_gpgme_gpg_op_verify): Likewise for prototype. - * verify.c (_gpgme_op_verify_start): Likewise. - (gpgme_op_verify_start): Likewise. - (gpgme_op_verify): Likewise. - - * rungpg.c (struct arg_and_data_s): New member INBOUND to hold - direction of data object. - (_gpgme_gpg_add_data): Add new argument INBOUND. Use it to - determine direction of data object. - (_gpgme_gpg_add_pm_data, _gpgme_gpg_set_command_handler, - _gpgme_gpg_op_decrypt, _gpgme_gpg_op_edit, _gpgme_gpg_op_encrypt, - _gpgme_gpg_op_encrypt_sign, _gpgme_gpg_op_export, - _gpgme_gpg_op_genkey, _gpgme_gpg_op_import, _gpgme_gpg_op_sign, - _gpgme_gpg_op_verify): Add new argument to _gpgme_gpg_add_data - invocation. - (build_argv): Use new member INBOUND to determine direction of - file descriptor. Don't check the data type. - * rungpg.h (_gpgme_gpg_add_data): Add new argument to prototype. - - * gpgme.c (gpgme_get_op_info): Don't call - _gpgme_data_get_as_string if CTX->op_info is NULL. - - * version.c (gpgme_check_engine): Function removed. - -2002-09-30 Werner Koch - - * keylist.c (keylist_colon_handler): Take care when printing a - NULL with the DEBUG. - - * engine-gpgsm.c (struct gpgsm_object_s): New member ANY. - (gpgsm_status_handler): Run the colon function to indicate EOF. - (_gpgme_gpgsm_set_colon_line_handler): Better reset ANY here. - -2002-09-28 Marcus Brinkmann - - * conversion.c (_gpgme_hextobyte): Prevent superfluous - multiplication with base. Reported by Stéphane Corthésy. - - * keylist.c (gpgme_op_keylist_ext_start): Use private asynchronous - operation type in invocation of _gpgme_op_reset. - -2002-09-20 Werner Koch - - * ath.c: Include sys/time.h if sys/select.h is not available. - -2002-09-13 Marcus Brinkmann - - * keylist.c (keylist_status_handler): Do not call finish_key() here. - (gpgme_op_keylist_ext_start): Set CTX->tmp_key to NULL. - -2002-09-03 Marcus Brinkmann - - * Makefile.am (assuan_libobjs): Remove @LTLIBOBJS@ as we link them - into gpgme unconditionally. - (libgpgme_la_LIBADD): Change @LIBOBJS@ into @LTLIBOBJS@. - -2002-09-02 Marcus Brinkmann - - * Makefile.am (assuan_libobjs): Use @LTLIBOBJS@ instead @LIBOBJS@. - -2002-09-02 Marcus Brinkmann - - * debug.c (_gpgme_debug_add): Test *LINE, not LINE. - (_gpgme_debug_end): Likewise. - Reported by Dr. Stefan Dalibor . - -2002-09-02 Marcus Brinkmann - - * posix-io.c (_gpgme_io_select): Don't use a non-constant struct - initializer. - * version.c (_gpgme_get_program_version): Likewise. - Reported by Dr. Stefan Dalibor . - -2002-09-02 Marcus Brinkmann - - * conversion.c (_gpgme_decode_c_string): Set DESTP before - modifying DEST. - - * conversion.c (_gpgme_decode_c_string): Fix off by one error in - last change. - * rungpg.c (_gpgme_append_gpg_args_from_signers): Move before - _gpgme_op_edit so its prototype is known early on. - - * conversion.c: New file. - * util.h: Add prototypes for _gpgme_decode_c_string and - _gpgme_hextobyte. - * keylist.c (keylist_colon_handler): Call _gpgme_decode_c_string - on issuer name. - * Makefile.am (libgpgme_la_SOURCES): Add conversion.c - * key.c (_gpgme_key_append_name): Replace calls to hextobyte by - calls to _gpgme_hextobyte. - (hash_key): Likewise. - -2002-09-01 Marcus Brinkmann - - * op-support.c (_gpgme_op_reset): Set CTX->pending after calling - _gpgme_engine_release, as this will reset pending to zero in the - event done callback on cancelled operations. - -2002-08-30 Marcus Brinkmann - - * rungpg.c (_gpgme_gpg_op_edit): Add args from signers. - Suggested by Miguel Coca . - - * rungpg.c (_gpgme_gpg_op_edit): Add bogus ctx argument. - * rungpg.h: Also to prototype. - * engine.c (_gpgme_engine_op_edit): Likewise. - * engine.h: Likewise. - * edit.c (_gpgme_op_edit_start): Likewise. - -2002-08-29 Werner Koch - - * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Implement signer - selection. - * vasprintf.c (va_copy): Define macro if not yet defined. - -2002-08-29 Marcus Brinkmann - - * passphrase.c (_gpgme_passphrase_status_handler): Reset - CTX->result.passphrase->no_passphrase if passphrase is given (good - or bad). Submitted by Jean DIRAISON . - -2002-08-28 Marcus Brinkmann - - * posix-io.c (_gpgme_io_spawn): Use a double-fork approach. - Return 0 on success, -1 on error. - * version.c (_gpgme_get_program_version): Don't wait for the child. - * engine.c (_gpgme_engine_housecleaning): Function removed. - (do_reaping): Likewise. - (_gpgme_engine_add_child_to_reap_list): Likewise. - (struct reap_s): Removed. - (reap_list): Likewise. - (reap_list_lock): Likewise. - * engine.h (_gpgme_engine_io_event): Remove prototypes for - _gpgme_engine_housecleaning and - _gpgme_engine_add_child_to_reap_list. - * rungpg.c (_gpgme_gpg_release): Don't add child to reap list. - (struct gpg_object_s): Remove PID member. - (_gpgme_gpg_new): Don't initialize GPG->pid. - (_gpgme_gpg_spawn): Don't set GPG->pid. - * wait.c (run_idle): Removed. - (gpgme_wait): Run idle_function directly. - -2002-08-21 Marcus Brinkmann - - * encrypt-sign.c (encrypt_sign_status_handler): Remove dead - variables encrypt_info and encrypt_info_len. - * trustlist.c (gpgme_op_trustlist_start): Set colon line handler. - * posix-sema.c (sema_fatal): Remove function. - All these reported by Stéphane Corthésy. - -2002-08-23 Werner Koch - - * gpgme-config.in: Made --prefix work for --libs. - -2002-08-21 Marcus Brinkmann - - * ath.h: Update list of symbols that get a prefix: Rename the - ath_mutex_*_available symbols to ath_*_available. - -2002-08-21 Marcus Brinkmann - - * stpcpy.c: New file from gnulib. - * Makefile.am (assuan_libobjs): Remove jnlib. - -2002-08-20 Marcus Brinkmann - - * gpgme.h: Add prototype for gpgme_op_import_ext. - * import.c (struct import_result_s): New member `nr_considered'. - Rename `any_imported' to `nr_imported'. - (import_status_handler): Increment nr_imported. Set nr_considered - if appropriate. - (gpgme_op_import_ext): New function. - (gpgme_op_import): Implement in terms of gpgme_op_import_ext. - -2002-08-20 Werner Koch - - * gpgme.m4: Replaced with a new and faster version. This does not - anymore try to build test programs. If we really need test - programs, we should add an option to gpgme-config to do so. - - * vasprintf.c (int_vasprintf): Hack to handle NULL passed for %s. - -2002-08-20 Marcus Brinkmann - - * gpgme.c (_gpgme_set_op_info): Append data on subsequent calls. - * encrypt-sign.c (encrypt_sign_status_handler): Remove op_info - handling. - -2002-08-19 Werner Koch - - * decrypt.c (is_token,skip_token): Duplicated from verify.c - (gpgme_op_decrypt): Hack to properly return Decryption_Failed.. - (_gpgme_decrypt_status_handler): Create an operation info. - -2002-08-14 Werner Koch - - * key.h (struct certsig_s): New. Use it in gpgme_key_s. - * key.c (gpgme_key_release): Release it. We need to add more code - of course. - (_gpgme_key_append_name): Use memset to intialize the struct. - * gpgme.h (GPGME_KEYLIST_MODE_SIGS): New. - * rungpg.c (_gpgme_gpg_op_keylist): Include sigs in listing depending - non the list mode. - - * key.c (gpgme_key_get_string_attr): Use GPGME_ATTR_TYPE to return - information about the key type (PGP or X.509). - (gpgme_key_get_ulong_attr): Likewise. - - * keylist.c (keylist_colon_handler): Include 1 in the check for - valid algorithms so that RSA is usable. Store the issuer name and - serial number also for "crs" records. Parse the expire date for - subkeys. - (set_userid_flags): Put them onto the last appended key. - -2002-07-29 Marcus Brinkmann - - * rungpg.c (_gpgme_gpg_op_edit): Use --with-colons. - -2002-07-28 Marcus Brinkmann - - * data.c (gpgme_data_read): For GPGME_DATA_TYPE_NONE, return EOF - instead an error. - - The following changes make it possible to flush an inbound data - pipe before invoking a command handler: - - * posix-io.c (_gpgme_io_select): Accept new argument NONBLOCK to - _gpgme_io_select. Set timeout of 0 if this is set. - * w32-io.c (_gpgme_io_select): Likewise. - * io.h: Add new argument NONBLOCK to _gpgme_io_select prototype. - * wait.c (do_select): Add new argument to _gpgme_io_select - invocation. - * rungpg.h (_gpgme_gpg_set_command_handler): Add new argument - linked_data to prototype. - * engine.h (_gpgme_engine_set_command_handler): Likewise. - * engine.c (_gpgme_engine_set_command_handler): Likewise. - * passphrase.c (_gpgme_passphrase_start): Pass NULL as linked_data - argument to _gpgme_engine_set_command_handler. - * rungpg.c (struct gpg_object_s): New members linked_data and - linked_idx in CMD. - (_gpgme_gpg_new): Initialize those new members. - (_gpgme_gpg_set_command_handler): Accept new argument linked_data. - (build_argv): Handle linked_data in the same hack as cb_data. - (read_status): If linked_data is in use, flush the pipe before - activating the command handler. - * gpgme.h: Add prototypes for gpgme_op_edit_start and - gpgme_op_edit. - - The next changes export the status codes to the user: - - * decrypt.c (_gpgme_decrypt_status_handler): Likewise, also prefix - all STATUS_ with GPGME_. - * delete.c (delete_status_handler): Likewise. - * decrypt-verify.c (decrypt_verify_status_handler): Likewise. - * encrypt.c (_gpgme_encrypt_status_handler): Likewise. - (_gpgme_encrypt_sym_status_handler): Likewise. - * encrypt-sign.c (encrypt_sign_status_handler): Likewise. - * engine-gpgsm.c (parse_status): Likewise. - (gpgsm_status_handler): Likewise. - (gpgsm_set_recipients): Likewise. - * export.c (export_status_handler): Likewise. - * genkey.c (genkey_status_handler): Likewise. - * import.c (append_xml_impinfo): Likewise. - (import_status_handler): Likewise. - * keylist.c (keylist_status_handler): Likewise. - * passphrase.c (_gpgme_passphrase_status_handler): Likewise. - (command_handler): Likewise. - * progress.c (_gpgme_progress_status_handler): Likewise. - * sign.c (_gpgme_sign_status_handler): Likewise. - * trustlist.c (trustlist_status_handler): Likewise. - * verify.c (_gpgme_verify_status_handler): Likewise. - * gpgme.h (GpgmeEditCb): New type. - * rungpg.h (GpgStatusCode): Rename and move to ... - * gpgme.h (GpgmeStatusCode): ... this and here. - * Makefile.am (status-table.h): Run mkstatus on gpgme.h, not rungpg.h. - * mkstatus: Prefix STATUS with GPGME_. - * rungpg.h (GpgStatusHandler, GpgCommandHandler): Change type - accordingly. - * ops.h (_gpgme_verify_status_handler, - _gpgme_decrypt_status_handler, _gpgme_sign_status_handler, - _gpgme_encrypt_status_handler, _gpgme_passphrase_status_handler, - _gpgme_progress_status_handler): Likewise. - * rungpg.c (struct gpg_object_s): Likewise for CMD.code. - - These changes add an edit operation to GPGME: - - * context.h (struct gpgme_context_s): New member RESULT.edit. * - ops.h: Add prototype for _gpgme_release_edit_result and - _gpgme_passphrase_command_handler. - * passphrase.c (command_handler): Make non-static and rename to ... - (_gpgme_passphrase_command_handler): ... this. - (_gpgme_passphrase_start): Use new name for command handler. - * types.h: Add EditResult type. - * gpgme.c (_gpgme_release_result): Release EDIT result. - * edit.c: New file. - * Makefile.am (libgpgme_la_SOURCES): Add edit.c. - (libgpgme_la_LDADD): Rename to libgpgme_la_LIBADD, and include - assuan_libobjs. - (assuan_libobjs): New variable, set this instead - libgpgme_la_LIBADD. - * engine.h (_gpgme_engine_op_edit): New prototype. - * engine.c (_gpgme_engine_op_edit): New function. - * rungpg.h (_gpgme_gpg_op_edit): New prototype. - * rungpg.c (_gpgme_gpg_op_edit): New function. - -2002-07-27 Marcus Brinkmann - - * delete.c (delete_problem): New case ambigious specification. - (delete_status_handler): Handle new case (poorly). - -2002-07-25 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_delete): Implement this. - -2002-07-25 Marcus Brinkmann - - * Makefile.am (libgpgme_la_LDADD): Add @LIBOBJS@ for vasprintf and - fopencookie. - * vasprintf.c: Update to more recent libiberty version. - * debug.h: Replace #elsif with #elif. - - Submitted by Stéphane Corthésy: - * util.h (vasprintf): Correct prototype. - * encrypt-sign.c: Include . - (encrypt_sign_status_handler): Change type of ENCRYPT_INFO_LEN to - size_t. - * ath-pthread.c: Include , not . - * ath-pth.c: Likewise. - -2002-07-25 Marcus Brinkmann - - * wait.c (fdt_global): Make static. Reported by Stéphane - Corthésy. - - * rungpg.c (_gpgme_gpg_op_keylist_ext): Skip empty string - patterns. Reported by Stéphane Corthésy. - - * key.c (gpgme_key_get_as_xml): Add OTRUST attribute. Requested - by Stéphane Corthésy. - (gpgme_key_get_string_attr): Add GPGME_ATTR_SIG_SUMMARY case to - silence gcc warning. - - * rungpg.c (_gpgme_gpg_new): Always set utf8 as charset. - -2002-07-03 Marcus Brinkmann - - * gpgme.c (gpgme_set_io_cbs): Deal with CTX being NULL. - - * gpgme.c (_gpgme_op_event_cb_user): New function. - * op-support.c (_gpgme_op_reset): Support a new mode of operation - for private or user event loop. Use new user event callback - wrapper. - * trustlist.c (gpgme_op_trustlist_start): Use this new mode. - * keylist.c (gpgme_op_keylist_start): Likewise. - - * rungpg.c (_gpgme_gpg_io_event): New function. - * rungpg.h (_gpgme_gpg_io_event): New prototype. - * engine-gpgsm.c (_gpgme_gpg_io_event): New function. - * engine-gpgsm.h (_gpgme_gpgsm_io_event): New prototype. - * engine.c (_gpgme_engine_io_event): New function. - * engine.h (_gpgme_engine_io_event): New prototype. - * keylist.c (finish_key): Call _gpgme_engine_io_event, and move - the real work for the default IO callback routines to ... - (_gpgme_op_keylist_event_cb): ... here. New function. - * trustlist.c (trustlist_colon_handler): Signal - GPGME_EVENT_NEXT_TRUSTITEM. Move queue manipulation to ... - (_gpgme_op_trustlist_event_cb): ... here. New function. - * gpgme.c (_gpgme_op_event_cb): Call _gpgme_op_keylist_event_cb - and _gpgme_op_trustlist_event_cb when appropriate. - * ops.h (_gpgme_op_keylist_event_cb): New prototype. - (_gpgme_op_trustlist_event_cb): Likewise. - * op-support.c (_gpgme_op_reset): Add comment why we don't use the - user provided event handler directly. - * gpgme.h (GpgmeRegisterIOCb): Return GpgmeError value, and TAG in - a pointer argument. - * wait.c (_gpgme_add_io_cb): Likewise. - * wait.h (_gpgme_add_io_cb): Likewise for prototype. - * rungpg.c (_gpgme_gpg_add_io_cb): Call IO_CBS->add with new - argument. Fix up error handling. - * engine-gpgsm.c (_gpgme_gpgsm_add_io_cb): Call IO_CBS->add with - new argument, fix up error handling. - -2002-07-03 Werner Koch - - * encrypt.c (status_handler_finish): New. - (_gpgme_encrypt_status_handler): Moved some code out to the new - function and call this function also in case we get into the - status handler with an error which might happen due to a kludge in - engine-gpgsm.c - -2002-06-28 Marcus Brinkmann - - * keylist.c (gpgme_op_keylist_ext_start): Always use our own FD - table (eg use synchronous mode). - -2002-06-27 Marcus Brinkmann - - * gpgme.h: Fix documentation of key attribute retrieval functions. - -2002-06-28 Marcus Brinkmann - - * ops.h (_gpgme_wait_on_condition): Remove HANG argument from - prototype and change return type to GpgmeError. - (_gpgme_wait_one): New prototype. - * wait.c (gpgme_wait): Replace with the meat from - _gpgme_wait_on_condition here, and remove the support for - conditions. - (_gpgme_wait_on_condition): Remove HANG argument from prototype - and change return type to GpgmeError. Replace with meat from - _gpgme_wait_one and add support for conditions. - (_gpgme_wait_one): Just call _gpgme_wait_on_condition without - condition. - * keylist.c (gpgme_op_keylist_ext_start): Always use our own FD - table (eg use synchronous mode). - (gpgme_op_keylist_next): Remove HANG argument from - _gpgme_wait_on_condition. Check its return value. - * trustlist.c (gpgme_op_trustlist_start): Always use our own FD - table (eg use synchronous mode). - (gpgme_op_trustlist_next): Remove HANG argument from - _gpgme_wait_on_condition. Check its return value. - -2002-06-26 Werner Koch - - * engine-gpgsm.c (map_assuan_error): Map No_Data_Available to EOF. - - * import.c (append_xml_impinfo): Kludge to print fingerprint - instead of keyid for use with gpgsm. - (import_status_handler): Set a flag to know whether any import - occured. - (gpgme_op_import): Reurn -1 if no certificate ewas imported. - -2002-06-25 Werner Koch - - * engine-gpgsm.c (_gpgme_gpgsm_set_io_cbs) [ENABLE_GPGSM]: Fixed - function arguments. - -2002-06-25 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_export): Only export the keys - listed in RECP. - * export.c (gpgme_op_export): If no data was returned, return - GPGME_No_Recipients. - -2002-06-25 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_export): Implement. - -2002-06-21 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_assuan_simple_command): Return ERR. - (parse_status): New function. - (gpgsm_status_handler): Use parse_status. - (gpgsm_assuan_simple_command): Accept new arguments STATUS_FNC and - STATUS_FNC_VALUE and process status messages. - (gpgsm_set_recipients): Pass new arugments to gpgsm_assuan_simple_command. - (gpgsm_set_fd): Likewise. - (_gpgme_gpgsm_op_keylist): Likewise. - (_gpgme_gpgsm_op_keylist_ext): Likewise. - (_gpgme_gpgsm_op_sign): Likewise. - -2002-06-21 Marcus Brinkmann - - * wait.c (_gpgme_remove_io_cb): Unlock FDT->lock. - -2002-06-20 Werner Koch - - * rungpg.c (build_argv): Ignore GPG_AGENT_INFO if set but empty. - - * verify.c (calc_sig_summary): Set bad policy for wrong key usage. - (skip_token): New. - (_gpgme_verify_status_handler): Watch out for wrong key usage. - (gpgme_get_sig_string_attr): Hack to return info on the key - usage. Does now make use of the former RESERVED argument which - has been renamed to WHATIDX. - (gpgme_get_sig_ulong_attr): Renamed RESERVED to WHATIDX. - -2002-06-14 Marcus Brinkmann - - * wait.c (do_select): Return -1 on error, and 0 if nothing to run. - (_gpgme_wait_one): Only set HANG to zero if do_select returned an - error, or there are no more file descriptors to wait on. - (_gpgme_wait_on_condition): Ignore return value from do_select for - now. - -2002-06-13 Werner Koch - - * verify.c (gpgme_op_verify): Make sure that we never access an - unitialized result structure. - -2002-06-12 Werner Koch - - * keylist.c (struct keylist_result_s): New. - (_gpgme_release_keylist_result): Release it here - (keylist_status_handler): Handle truncated. - (append_xml_keylistinfo): New. - * gpgme.c (_gpgme_release_result): and use it here. - * types.h: Declare the new type here. - * context.h (struct gpgme_context_s): Use it here. - -2002-06-11 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_release): Close status_cb.fd. - (_gpgme_gpgsm_new): Duplicate status file descriptor, so we can - use our own close notification mechanism without interfering with - assuan. - -2002-06-11 Werner Koch - - * gpgme.h: Add GPGME_ATTR_SIG_SUMMARY and the GPGME_SIGSUM_ - constants. - * verify.c (calc_sig_summary): New. - (gpgme_get_sig_ulong_attr): And use it here. - -2002-06-10 Werner Koch - - * rungpg.h: Add new status codes TRUNCATED and ERROR. - * verify.c (is_token, copy_token): New. - (_gpgme_verify_status_handler): Use copy_token, handle the new - ERROR status and store the errorcode used withgpgsm and trust - status codes. - * gpgme.h: New attribute ERRTOK. - * key.c (gpgme_key_get_string_attr): Add dummy case for it. - (gpgme_get_sig_string_attr): Use it here to return the last error. - -2002-06-10 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_start): Move the code that sets the - close notification for the status fd to ... - (_gpgme_gpgsm_new): ... here. - * wait.h: Include "sema.h". Remove prototypes of - _gpgme_remove_proc_from_wait_queue and - _gpgme_register_pipe_handler. Add prototypes of - _gpgme_fd_table_init, _gpgme_fd_table_deinit, _gpgme_fd_table_put, - _gpgme_add_io_cb, _gpgme_remove_io_cb, _gpgme_wait_event_cb and - _gpgme_wait_one.. - * wait.c: Remove global variables PROC_QUEUE, PROC_QUEUE_LOCK, - FD_TABLE_SIZE, FD_TABLE, FD_TABLE_LOCK. New global variables - FDT_GLOBAL, CTX_DONE_LIST, CTX_DONE_LIST_SIZE, - CTX_DONE_LIST_LENGTH and CTX_DONE_LIST_LOCK. Remove struct - proc_s. Replace struct wait_item_s. - (_gpgme_fd_table_init): New function. - (_gpgme_fd_table_deinit): Likewise. - (_gpgme_fd_table_put): Likewise. - (set_process_done): Remove function. - (do_select): Take argument FDT. Use that to decide which fds to - select on. - (_gpgme_remove_proc_from_wait_queue): Remove function. - (_gpgme_wait_event_cb): New function. - (_gpgme_wait_one): Likewise. - (_gpgme_register_pipe_hanldler): Remove function. - (_gpgme_add_io_cb): New function. - (_gpgme_remove_io_cb): Likewise. - (_gpgme_freeze_fd): Remove function. - (_gpgme_thaw_fd): Remove function. - * rungpg.c (struct fd_data_map_s): Add new member TAG. - (struct gpg_object_s): Likewise for STATUS and COLON. Add member - IDX to CMD. Add new member IO_CBS. - (close_notify_handler): New variables POSSIBLY_DONE and NOT_DONE. - For each I/O callback, check if it should be unregistered. If all - callbacks have been unregistered, trigger GPGME_EVENT_DONE. - Remove member RUNNING. - (_gpgme_gpg_new): Initialize new members. - (_gpgme_gpg_release): Check PID not RUNNING. Don't call - _gpgme_remove_proc_from_wait_queue. Close GPG->CMD.FD if set. - (build_argv): Store away the index instead the file descriptor for - CMD. - (_gpgme_gpg_add_io_cb): New function. - (_gpgme_gpg_spawn): Use _gpgme_gpg_add_io_cb to register IO - callbacks. - (gpg_status_handler): Change return type to void, remove PID - argument, close filedescriptor if EOF or error occurs. - (read_status): Use _gpgme_gpg_add_io_cb instead _gpgme_thaw_fd. - Use IO_CBS->remove instead _gpgme_freeze_fd. - (gpg_colon_line_handler): Change return type to void, remove PID - argument, close filedescriptor if EOF or error occurs. - (command_cb): Use IO_CBS->remove instead _gpgme_freeze_fd. - (_gpgme_gpg_set_io_cbs): New function. - * rungpg.h (_gpgme_gpg_set_io_cbs): Prototype for - _gpgme_gpg_set_io_cbs. - * gpgme.h (GpgmeIOCb): New type. - (GpgmeRegisterIOCb): Likewise. - (GpgmeRemoveIOCb): Likewise. - (GpgmeEventIO): Likewise. - (GpgmeEventIOCb): Likewise. - (struct GpgmeIOCbs): New structure to hold I/O callbacks. - (gpgme_set_op_io_cbs): New prototype. - (gpgme_get_op_io_cbs): Likewise. - * ops.h: New prototype for _gpgme_op_event_cb. Remove prototypes - for _gpgme_freeze_fd and _gpgme_thaw_fd. Remove PID argument from - _gpgme_data_inbound_handler and _gpgme_data_outbound_handler - prototype. Add prototype for _gpgme_op_reset. - Add synchronous argument to _gpgme_decrypt_start prototype. - * io.h: Beautification. - * gpgme.c: Include "wait.h". - (gpgme_new): Initialize FDT. - (gpgme_set_io_cbs): New function. - (gpgme_get_io_cbs): Likewise. - (_gpgme_op_event_cb): Likewise. - * data.c (_gpgme_data_inbound_handler): Change return type to - void. Drop PID argument. Close FD on error and EOF. - (write_mem_data): Don't close FD here ... - (write_cb_data): ... or here ... - (_gpgme_data_outbound_handler): ... but here. Change return type - to void. Drop PID argument. - * context.h: Include "wait.h". - (struct gpgme_context_s): New members FDT and IO_CBS. - * op-support.c: New file. - * Makefile.am (libgpgme_la_SOURCES): Add op-support.c. - * ops.h: Add prototype for _gpgme_op_reset(). - * decrypt.c (_gpgme_decrypt_start): New argument SYNCHRONOUS. Use - _gpgme_op_reset. - (gpgme_op_decrypt_start): Add synchronous argument. - (gpgme_op_decrypt): Likewise. Use _gpgme_wait_one instead - gpgme_wait. - * delete.c (gpgme_op_delete_start): Rename to ... - (_gpgme_op_delete_start): ... this. New argument SYNCHRONOUS. - Use _gpgme_op_reset. Make function static. - (gpgme_op_delete_start): Just a wrapper around - _gpgme_op_delete_start now. - (gpgme_op_delete): Add synchronous argument. Use _gpgme_wait_one - instead gpgme_wait. - * encrypt.c: Include "wait.h". - (ggpgme_op_encrypt_start): Rename to ... - (_gpgme_op_encrypt_start): ... this. New argument SYNCHRONOUS. - Use _gpgme_op_reset. Make function static. - (gpgme_op_encrypt_start): Just a wrapper around - _gpgme_op_encrypt_start now. - (gpgme_op_encrypt): Add synchronous argument. Use _gpgme_wait_one - instead gpgme_wait. - * encrypt_sign.c (gpgme_op_encrypt_sign_start): Rename to ... - (_gpgme_op_encrypt_sign_start): ... this. New argument - SYNCHRONOUS. Use _gpgme_op_reset. Make function static. - (gpgme_op_encrypt_sign_start): Just a wrapper around - _gpgme_op_encrypt_sign_start now. - (gpgme_op_encrypt_sign): Add synchronous argument. Use - _gpgme_wait_one instead gpgme_wait. - * export.c (gpgme_op_export_start): Rename to ... - (_gpgme_op_export_start): ... this. New argument SYNCHRONOUS. - Use _gpgme_op_reset. Make function static. - (gpgme_op_export_start): Just a wrapper around - _gpgme_op_export_start now. - (gpgme_op_export): Add synchronous argument. Use _gpgme_wait_one - instead gpgme_wait. - * genkey.c (gpgme_op_genkey_start): Rename to ... - (_gpgme_op_genkey_start): ... this. New argument SYNCHRONOUS. - Use _gpgme_op_reset. Make function static. - (gpgme_op_genkey_start): Just a wrapper around - _gpgme_op_genkey_start now. - (gpgme_op_genkey): Add synchronous argument. Use _gpgme_wait_one - instead gpgme_wait. - * import.c (gpgme_op_import_start): Rename to ... - (_gpgme_op_import_start): ... this. New argument SYNCHRONOUS. - Use _gpgme_op_reset. Make function static. - (gpgme_op_import_start): Just a wrapper around - _gpgme_op_import_start now. - (gpgme_op_import): Add synchronous argument. Use _gpgme_wait_one - instead gpgme_wait. - * keylist.c (gpgme_op_keylist_start): Use _gpgme_op_reset. - (gpgme_op_keylist_ext_start): Likewise. - * sign.c (gpgme_op_sign_start): Rename to ... - (_gpgme_op_sign_start): ... this. New argument SYNCHRONOUS. Use - _gpgme_op_reset. Make function static. - (gpgme_op_sign_start): Just a wrapper around _gpgme_op_sign_start - now. - (gpgme_op_sign): Add synchronous argument. Use _gpgme_wait_one - instead gpgme_wait. - * trustlist.c (gpgme_op_trustlist_start): Use _gpgme_op_reset. - * verify.c (gpgme_op_verify_start): Rename to ... - (_gpgme_op_verify_start): ... this. New argument SYNCHRONOUS. - Use _gpgme_op_reset. Make function static. - (gpgme_op_verify_start): Just a wrapper around - _gpgme_op_verify_start now. - (gpgme_op_verify): Add synchronous argument. Use _gpgme_wait_one - instead gpgme_wait. - * engine-gpgsm.c (iocb_data_t): New type. - (struct gpgsm_object_s): New member status_cb. Replace input_fd - and input_data with input_cb. Replace output_fd and output_data - with output_cb. Replace message_fd and message_data with - message_cb. New member io_cbs. - (_gpgme_gpgsm_new): Initialize all new members (and drop the old - ones). - (close_notify_handler): New variable POSSIBLY_DONE. For each I/O - callback, check if it should be unregistered. If all callbacks - have been unregistered, trigger GPGME_EVENT_DONE. - (_gpgme_gpgsm_release): Remove variable PID. Use new variable - names to close the file descriptors. - (_gpgme_gpgsm_op_decrypt): Use new variable names, - (_gpgme_gpgsm_op_encrypt): Likewise. - (_gpgme_gpgsm_op_genkey): Likewise. - (_gpgme_gpgsm_op_import): Likewise. - (_gpgme_gpgsm_op_keylist): Likewise. - (_gpgme_gpgsm_op_keylist_ext): Likewise. - (_gpgme_gpgsm_op_sign): Likewise. - (_gpgme_gpgsm_op_verify): Likewise. - (gpgsm_status_handler): Drop argument PID. Change return type to - void. Close status pipe before returning because of EOF or error. - (_gpgme_gpgsm_add_io_cb): New function. - (_gpgme_gpgsm_start): Use _gpgme_gpgsm_add_io_cb to register - callback function. - (_gpgme_gpgsm_set_io_cbs): New function. - * engine-gpgsm.h: New prototype for _gpgme_gpgsm_set_io_cbs. - * engine.c (_gpgme_engine_set_io_cbs): New function. - * engine.h: New prototype for _gpgme_engine_set_io_cbs. - -2002-06-04 Marcus Brinkmann - - * Makefile.am (libgpgme_la_SOURCES): Remove mutex.h. - -2002-06-03 Marcus Brinkmann - - * key.c: Include . - (_gpgme_key_append_name): Skip one more char when - processing escaped char. Submitted by Marc Mutz . - Handle hexadecimal encodings. Also reported by Marc. Thanks! - -2002-06-02 Marcus Brinkmann - - * ath.h: Enable the _gpgme_ prefix. Fix all those prefix macros. - * posix-sema.c: Use that prefix here. - * posix-io.c: Include "ath.h". - (_gpgme_io_read): Use _gpgme_ath_read instead read. - (_gpgme_io_write): Use _gpgme_ath_write instead write. - (_gpgme_io_waitpid): Use _gpgme_ath_waitpid instead waitpid. - (_gpgme_io_select): Use _gpgme_ath_select instead select. - -2002-06-02 Marcus Brinkmann - - * Makefile.am (ath_components): New variable. - (ath_components_pthread): Likewise. - (ath_components_pth): Likewise. - (system_components): Add ath_componentes. - - * ath.h: New file. - * ath.c: Likewise. - * ath-pthread.c: Likewise. - * ath-pth.c: Likewise. - * posix-sema.c (_gpgme_sema_cs_enter): Rework to use the ATH - interface. - * mutex.h: Remove file. - -2002-05-30 Werner Koch - - * key.c (gpgme_key_get_string_attr): Return NULL when asking for - an issuer with IDX > 0. We don't support altIssuerNames for now. - -2002-05-22 Werner Koch - - * engine-gpgsm.c (_gpgme_gpgsm_op_keylist_ext): Aehmm, added - missing variable definition. Oohh - Marcus was faster. - -2002-05-22 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_keylist_ext): Fix last change. - -2002-05-21 Werner Koch - - * engine-gpgsm.c (_gpgme_gpgsm_op_keylist) - (_gpgme_gpgsm_op_keylist_ext): Pass the keylist mode to gpgsm. - -2002-05-10 Werner Koch - - * key.h (gpgme_key_s): Add OTRUST. - * keylist.c (set_ownertrust): New. - (keylist_colon_handler): Get the ownertrust value - * key.c (gpgme_key_get_string_attr,gpgme_key_get_ulong_attr): - Return that value. - -2002-05-08 Marcus Brinkmann - - * w32-util.c: New static variable GET_PATH_LOCK. - (_gpgme_get_gpg_path): Remove superfluous NULL initializer. - Take lock while determining path. - (_gpgme_get_gpgsm_path): Likewise. - * version.c (do_subsystem_inits): Set DONE to 1 after - initialization. - (gpgme_get_engine_info): New variable ENGINE_INFO_LOCK. Take lock - while determining engine info. - * rungpg.c (_gpgme_gpg_get_version): New variable - GPG_VERSION_LOCK. Take the lock while determining the program - version. - * posix-io.c: Include "sema.h". - (_gpgme_io_spawn): New variable FIXED_SIGNALS_LOCK. Take the lock - while fixing the signals. - (_gpgme_io_select): Make READFDS and WRITEFDS non-static. - * key.c: Include "sema.h". New globals KEY_CACHE_LOCK and - KEY_REF_LOCK. - (capabilities_to_string): Make STRINGS very const. - (_gpgme_key_cache_add): Lock the key cache. - (_gpgme_key_cache_get): Likewise. - (gpgme_key_ref, gpgme_key_release): Lock the key_ref_lock. - * import.c (append_xml_impinfo): Make IMPORTED_FIELDS and - IMPORT_RES_FIELDS very const. Make FIELD and FIELD_NAME a litle - const. - * engine.c (_gpgme_engine_get_info): New variable - ENGINE_INFO_LOCK. Take lock while determining engine info. - * engine-gpgsm.c: Include "sema.h". - (_gpgme_gpgsm_get_version): New variable GPGSM_VERSION_LOCK. Take - lock while getting program version. - -2002-05-08 Marcus Brinkmann - - * debug.h: New file. - * Makefile.am (libgpgme_la_SOURCES): Add debug.h. - * util.h: Removed all prototypes and declarations related to - debugging. Include "debug.h". - - * debug.c (debug_level): Comment variable and remove superfluous - zero initializer. - (errfp): Likewise. - (_gpgme_debug_enabled): Function removed. - (struct debug_control_s): Definition removed. - (_gpgme_debug_level): Function removed. - (_gpgme_debug_begin): Rewritten to use vasprintf. Accept a - pritnf-style format specification and a variable number of - arguments. - (_gpgme_debug_add): Rewritten using vasprintf. Expect that format - starts out with "%s" for simplicity. - (_gpgme_debug_end): Rewritten using vasprintf. Do not accept a - TEXT argument anymore. - - * posix-io.c (_gpgme_io_select): Use new level argument for - DEBUG_BEGIN instead explicit if construct. - - * debug.c (debug_init): Remove superfluous zero initializer, - remove volatile flag of INITIALIZED. Do not use the - double-checked locking algorithm, it is fundamentally flawed and - will empty your fridge (on a more serious note, despite the - volatile flag it doesn't give you the guarantee you would expect, - for example on a DEC Alpha or an SMP machine. The volatile only - serializes accesses to the volatile variable, but not to the other - variables). - -2002-05-03 Werner Koch - - * engine-gpgsm.c (_gpgme_gpgsm_new): Redirect any gpgsm error - output to /dev/null. - - * verify.c (gpgme_get_sig_key): Set the protocol of the listctx. - * gpgme.c (gpgme_get_protocol): New. - - * data.c (gpgme_data_write): Changed type of BUFFER to void*. - (gpgme_data_read): Ditto. - - * verify.c (_gpgme_verify_status_handler): Handle TRUST_* status - lines so that a claim can be made without looking up the key. - (gpgme_get_sig_string_attr): New. - (gpgme_get_sig_ulong_attr): New. - - * gpgme.h (GpgmeAttr): Added GPGME_ATTR_SIG_STATUS. - - * rungpg.h: Add new status codes from gpg 1.0.7 and formatted the - list to align with the status.h file from gnupg. - - * gpgme.h (GpgmeSigStat): Add _GOOD_EXP and _GOOD_EXPKEY. - * verify.c (_gpgme_verify_status_handler, finish_sig): Handle - these new status codes. Store the expiration time - -2002-04-27 Werner Koch - - * gpgme.h (GpgmeData_Encoding): New. - * data.c (gpgme_data_get_encoding,gpgme_data_set_encoding): New. - * engine-gpgsm.c (map_input_enc): New. Use it in all local - functions where the INPUT command gets send. - -2002-04-27 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Close the output - descriptor only when we don't need it anymore. Close the message - descriptor if we don't need it. - -2002-04-26 Werner Koch - - * Makefile.am (libgpgme_la_LIBADD): Use libtool libraries. - -2002-04-25 Marcus Brinkmann - - * rungpg.c (_gpgme_gpg_release): Call gpgme_data_release on - GPG->cmd.cb_data, not xfree. - -2002-04-25 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_new): Set the display, ttyname, - ttytype, lc_ctype and lc_messages options in the server. - -2002-04-24 Marcus Brinkmann - - * engine-gpgsm.c (map_assuan_error): Add new error codes. - -2002-04-23 Werner Koch - - * key.c (gpgme_key_get_ulong_attr): Swapped use of can_encrypt and - can_certify to return the requested values. - -2002-04-23 Marcus Brinkmann - - * gpgme.c (gpgme_get_progress_cb): Allow either return parameter - to be NULL. - (gpgme_get_passphrase_cb): Likewise. - -2002-04-22 Marcus Brinkmann - - * gpgme.c (gpgme_get_passphrase_cb): New function. - (gpgme_get_progress_cb): New function. - * gpgme.h: Add new prototypes for gpgme_get_passphrase_cb and - gpgme_get_progress_cb. - -2002-03-28 Werner Koch - - * gpgme.h (GpgmeAttr): Add values for issuer and chaining. - * key.h (gpgme_key_s): Add issuer and chaining elements for X509. - * keylist.c (keylist_colon_handler): Store them. - * key.c (gpgme_key_release): Free them. - (gpgme_key_get_as_xml,gpgme_key_get_string_attr): Print them. - -2002-03-26 Werner Koch - - * Makefile.am (libgpgme_la_SOURCES): Add mutex.h - -2002-03-21 Werner Koch - - * util.h [!HAVE_FOPENCOOKIE]: Make sure off_t and ssize_t are - defined. - -2002-03-18 Marcus Brinkmann - - * Makefile.am (system_components): New variable, set depending on - HAVE_DOSISH_SYSTEM. - (libgpgme_la_SOURCES): Use system_components. Remove `syshdr.h'. - * syshdr.h: File removed. - - * posix-io.c: Remove !HAVE_DOSISH_SYSTEM safeguard. Clean up source. - * posix-sema.c: Likewise. - * posix-util.c: Likewise. - - * w32-io.c: Remove HAVE_DOSISH_SYSTEM safeguard. - * w32-sema.c: Likewise. - * w32-util.c: Likewise. - - * posix-io.c: Include `unistd.h', do not include `syshdr.h'. - * posix-sema.c: Likewise. - * w32-io.c: Include `io.h', do not include `syshdr.h' - * w32-sema.c: Likewise. - * w32-util.c: Likewise. - * data.c: Do not include `syshdr.h'. - * wait.c: Likewise. - * wait.h: Code cleanup. - - * mutex.h: New file. - * posix-sema.c: Implement. - -2002-03-08 Werner Koch - - * util.h [!HAVE_FOPENCOOKIE]: Fixed type. Thanks to Frank Heckenbach. - -2002-03-07 Werner Koch - - * gpgme.h (gpgme_op_keylist_ext_start): Add prototype. - -2002-03-06 Marcus Brinkmann - - * encrypt.c (_gpgme_encrypt_sym_status_handler): New function. - (gpgme_op_encrypt_start): New variable SYMMETRIC, set it if RECP - is null, and if it is set, use _gpgme_encrypt_sym_status_handler - as status handler and run _gpgme_passphrase_start. - * rungpg.c (_gpgme_gpg_op_encrypt): If RECP is zero, do symmetric - encryption. - * engine-gpgsm.c (_gpgme_gpgsm_op_encrypt): If RECP is zero, - return error value. - - * rungpg.c (_gpgme_gpg_op_verify): Add "--" argument. - -2002-03-03 Marcus Brinkmann - - * passphrase.c (_gpgme_passphrase_status_handler): Also set the - error No_Passphrase if only a bad passphrase was provided. - -2002-03-03 Marcus Brinkmann - - * rungpg.c (_gpgme_gpg_op_verify): If TEXT is of mode - GPGME_DATA_MODE_IN, construct a command line that stores the - plaintext in TEXT. - * verify.c (gpgme_op_verify_start): Accept TEXT being - uninitialized, and in this case interpret SIG as a normal or - cleartext signature and TEXT as a return data object. - * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Likewise. - -2002-03-03 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_keylist_ext) [!ENABLE_GPGSM]: - Add stub function. - -2002-02-28 Werner Koch - - * key.h (subkey_s): New member expires_at. - * keylist.c (keylist_colon_handler): Set it here - * key.c (gpgme_key_get_as_xml,gpgme_key_get_ulong_attr): Return it. - -2002-02-27 Marcus Brinkmann - - * rungpg.h (_gpgme_gpg_op_keylist_ext): New prototype. - * rungpg.c (_gpgme_gpg_op_keylist_ext): New function. - * engine-gpgsm.h (_gpgme_gpgsm_op_keylist_ext): New prototype. - * engine-gpgsm.c (_gpgme_gpgsm_op_keylist_ext): New function. - * engine.h (_gpgme_engine_op_keylist_ext): New prototype. - * engine.c (_gpgme_engine_op_keylist_ext): New function. - * keylist.c (gpgme_op_keylist_ext_start): New function. - -2002-02-27 Marcus Brinkmann - - * gpgme.h: Add new error code GPGME_Invalid_Recipient. - * encrypt.c (struct encrypt_result_s): New member invalid_recipients, - rename no_recipients to no_valid_recipients. - (_gpgme_encrypt_status_handler): Include error for invalid - recipients. - * engine-gpgsm.c (gpgsm_set_recipients): Change type of first - argument to GpgsmObject. Use that to report back the status about - the recipients. - -2002-02-26 Marcus Brinkmann - - * verify.c (_gpgme_verify_status_handler): Fix the last change. - -2002-02-25 Marcus Brinkmann - - * verify.c (_gpgme_verify_status_handler): Parse the args line to - see if the problem is due to a missing key, and report that back - to the user. - -2002-02-25 Marcus Brinkmann - - * engine.c (_gpgme_engine_op_encrypt_sign): New function. - * engine.h (_gpgme_engine_op_encrypt_sign): New prototype. - * rungpg.c (_gpgme_append_gpg_args_from_signers): New function. - (_gpgme_gpg_op_sign): Use that new function. - (_gpgme_gpg_op_encrypt_sign): New function. - * rungpg.h (_gpgme_gpg_op_encrypt_sign): New prototype. - * gpgme.h (gpgme_op_encrypt_sign_start): New prototype. - (gpgme_op_encrypt_sign): Likewise. - * Makefile.am (libgpgme_la_SOURCES): Add encrypt-sign.c. - * ops.h (_gpgme_encrypt_status_handler): Add prototype. - (_gpgme_sign_status_handler): Add prototype. - * sign.c (sign_status_handler): Rename to ... - (_gpgme_sign_status_handler): ... this and make non-static. - * encrypt.c (encrypt_status_handler): Rename to ... - (_gpgme_encrypt_status_handler): ... this and make non-static. - * encrypt.c (gpgme_op_encrypt_start): Use new status handler name. - * sign.c (gpgme_op_sign_start): Likewise. - -2002-02-25 Marcus Brinkmann - - * context.h (struct gpgme_context_s): New member include_certs. - * gpgme.h (gpgme_set_include_certs): Add prototype. - (gpgme_get_include_certs): Likewise. - * gpgme.c (gpgme_set_include_certs): New function. - (gpgme_get_include_certs): Likewise. - (gpgme_new): Set include_certs to 1 (the default). - * engine.c (_gpgme_engine_op_sign): Accept new argument include_certs, - and pass it to _gpgme_gpgsm_op_sign. - * engine.h (_gpgme_engine_op_sign): Likewise for prototype. - * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Accept new argument - include_certs and handle it. - * engine-gpgsm.h (_gpgme_gpgsm_start): Add new argument include_certs. - * sign.c (gpgme_op_sign_start): Add new argument to - _gpgme_engine_op_sign call. - -2002-02-14 Werner Koch - - * keylist.c (gpgme_op_keylist_start): Do not use a verbose listing. - -2002-02-13 Werner Koch - - * vasprintf.c, fopencookie.c: Add replacement functions. - * util.h: Add prototypes for them. - -2002-02-09 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_assuan_simple_command): Return 0 if we - reach the end of the function. - -2002-02-09 Marcus Brinkmann - - * genkey.c (gpgme_op_genkey_start): Fix logic in validity check. - (gpgme_op_genkey_start): Skip newlines after opening tag. - - * engine-gpgsm.c (_gpgme_gpgsm_start): Remove cruft. - -2002-02-08 Marcus Brinkmann - - * genkey.c (gpgme_op_genkey_start): Allow PUBKEY and SECKEY to be - set, and pass them down to the crypto engine. - * engine-gpgsm.h (_gpgme_gpgsm_start): New arguments PUBKEY and SECKEY. - * engine.h: Likewise. - * rungpg.h (_gpgme_gpg_spawn): Likewise. - * engine.c (_gpgme_engine_op_genkey): Likewise. Use those - arguments. - * rungpg.c (_gpgme_gpg_op_genkey): Likewise. Complain if those - arguments are set. - * engine-gpgsm.c (_gpgme_gpgsm_op_genkey): Likewise. Implement - function. - - * engine-gpgsm.c (_gpgme_gpgsm_op_keylist): Beautify comment. - -2002-02-06 Marcus Brinkmann - - * rungpg.c (_gpgme_gpg_op_keylist): Remove handling of keylist - mode (for now). - -2002-02-06 Marcus Brinkmann - - * wait.c (gpgme_wait): Add new argument STATUS, in which the - status of the returned context is returned. - (_gpgme_wait_on_condition): Rework the function a bit, to make it - aware of cancelled processes, and to allow to use gpgme_wait with - CTX being NULL (as documented in the source). - (struct proc_s): New member REPORTED. - * gpgme.h: Fix prototype. - * verify.c (gpgme_op_verify): Fix use of gpgme_wait. - * sign.c (gpgme_op_sign): Likewise. - * import.c (gpgme_op_import): Likewise. - * genkey.c (gpgme_op_genkey): Likewise. - * export.c (gpgme_op_export): Likewise. - * encrypt.c (gpgme_op_encrypt): Likewise. - * delete.c (gpgme_op_delete): Likewise. - * decrypt-verify.c (gpgme_op_decrypt_verify): Likewise. - -2002-02-06 Marcus Brinkmann - - * gpgme.c (gpgme_set_keylist_mode): Possibly return an error - value. - (gpgme_get_keylist_mode): New function. - (gpgme_new): Set the default for keylist_mode member of CTX. - - * gpgme.h (gpgme_set_keylist_mode): Fix prototype. - (gpgme_get_keylist_mode): New prototype. - (GPGME_KEYLIST_MODE_LOCAL): New macro. - (GPGME_KEYLIST_MODE_EXTERN): Likewise.. - -2002-02-02 Marcus Brinkmann - - This patch has gotten a bit large... mmh. The main thing that - happens here is that error values are now not determined in the - operation function after gpgme_wait completed, but in the status - handler when EOF is received. It should always be the case that - either an error is flagged or EOF is received, so that after a - gpgme_wait you should never have the situation that no error is - flagged and EOF is not received. One problem is that the engine - status handlers don't have access to the context, a horrible - kludge works around this for now. All errors that happen during a - pending operation should be catched and reported in ctx->error, - including out-of-core and cancellation. This rounds up neatly a - couple of loose ends, and makes it possible to pass up any errors - in the communication with the backend as well. As a bonus, there - will be a function to access gpgme->wait, so that the operations - can truly be implemented with their _start function. - - * engine-gpgsm.c (gpgsm_status_handler): Horrible kludge to report - error back to the context. - * rungpg.c (gpg_status_handler): Same horrible kludge applied here. - - * engine-gpgsm.c (gpgsm_assuan_simple_command): Add error checking. - - * wait.c (_gpgme_wait_on_condition): If canceled, set CTX->error - to a value indication that. - - * verify.c (add_notation): Set error, not out_of_core. - (finish_sig): Likewise. - (gpgme_op_verify_start): Don't clear out_of_core. - (_gpgme_verify_status_handler): At EOF, clean up the notation data. - (gpgme_op_verify): And don't do it here. - - * trustlist.c (trustlist_status_handler): Check error, not out_of_core. - (gpgme_op_trustlist_start): Don't clear out_of_core. - (gpgme_op_trustlist_next): Check error, not out_of_core. - (gpgme_op_trustlist_end): Likewise. - - * ops.h (test_and_allocate_result): New macro. - (_gpgme_passphrase_result): Remove prototype. - * delete.c (gpgme_op_delete): Return error from context. - (delete_status_handler): Use macro test_and_allocate_result. - Perform error checking at EOF. - (gpgme_op_delete_start): Release result. - * passphrase.c (_gpgme_passphrase_status_handler): Use macro - test_and_allocate_result, and perform error checking here. - (_gpgme_passphrase_result): Function removed. - * sign.c (gpgme_op_sign_start): Do not set out_of_core to zero. - (gpgme_op_sign): Just return the error value from the context. - (sign_status_handler): Only progress if no error is set yet. If - we process an EOF, set the resulting error value (if any). - * decrypt.c (_gpgme_decrypt_result): Function removed. - (create_result_struct): Function removed. - (_gpgme_decrypt_status_handler): Use macro test_and_allocate_result, - caclulate error on EOF, do not progress with errors. - (_gpgme_decrypt_start): Do not set out_of_core to zero. - (gpgme_op_decrypt): Just return the error value from the context. - * encrypt.c (encrypt_status_handler): Perform the error checking - here. - (gpgme_op_encrypt_start): Do not clear out_of_core. - * export.c (export_status_handler): Return if error is set in context. - (gpgme_op_export_start): Release result. - (gpgme_op_export): Return error from context. - * decrypt-verify.c (gpgme_op_decrypt_verify): Return the error in - the context. - * genkey.c (genkey_status_handler): Use macro - test_and_allocate_result. Perform error checking at EOF. - (gpgme_op_genkey): Just return the error from context. - * import.c (gpgme_op_import): Return the error from context. - (import_status_handler): Use macro test_and_allocate_result. - * keylist.c (gpgme_op_keylist_start): Do not clear out_of_core. - (gpgme_op_keylist_next): Return error of context. - (keylist_colon_handler): Set error instead out_of_code. - (finish_key): Likewise. - - * context.h: Remove member out_of_core, add member error. - * gpgme.c (_gpgme_release_result): Clear error flag. - - * engine.h (_gpgme_engine_get_error): New prototype. - * engine.c (_gpgme_engine_get_error): New function. - * engine-gpgsm.c (_gpgme_gpgsm_get_error): New function. - - * engine-gpgsm.c (map_assuan_error): New function. - (gpgsm_assuan_simple_command): Change return type to GpgmeError, - use the new function to map error values. - (gpgsm_set_fd): Change return type tp GpgmeError. - (_gpgme_gpgsm_op_decrypt): Change type of ERR to GpgmeError. - (gpgsm_set_recipients): Likewise. Change type of return value - equivalently. Adjust error values. - (_gpgme_gpgsm_op_import): Likewise. - (_gpgme_gpgsm_op_sign): Likewise. - (struct gpgsm_object_s): New member error. - (gpgsm_status_handler): Set error if error occurs. Determine - error number from ERR line received. If assuan_read_line fails, - terminate the connection. - -2002-02-01 Marcus Brinkmann - - * Makefile.am (MOSTLYCLEANFILES): New variable. - -2002-02-01 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_status_handler): At error, terminate the - connection to the server. - -2002-01-31 Marcus Brinkmann - - * rungpg.h: Add STATUS_KEY_CREATED. - - * progress.c: New file. - * Makefile.am (libgpgme_la_SOURCES): Add progress.c. - - * genkey.c (genkey_status_handler): Use - _gpgme_progress_status_handler. Add check for status. - (struct genkey_result_s): New structure. - (_gpgme_release_genkey_result): New function. - (gpgme_op_genkey): Check for error. - * gpgme.c (_gpgme_release_result): Call - _gpgme_release_genkey_result. - * ops.h (_gpgme_release_genkey_result): Add prototype. - * types.h (GenKeyResult): New type. - * context.h (gpgme_context_s): Add GenKeyResult to member result. - -2002-01-30 Marcus Brinkmann - - * gpgme.c (_gpgme_release_result): Call - _gpgme_release_delete_result. - * ops.h (_gpgme_release_delete_result): Add prototype. - * types.h (DeleteResult): New type. - * context.h (gpgme_context_s): Add DeleteResult to member result. - - * delete.c (enum delete_problem): New type. - (struct delete_result_s): New structure. - (_gpgme_release_delete_result): New function. - (delete_status_handler): Implement more status codes. - (gpgme_op_delete): Return error on failure. - - * import.c (MAX_IMPORTED_FIELDS): Bump up to 14. - -2002-01-30 Marcus Brinkmann - - * import.c (struct import_result_s): New structure. - (_gpgme_release_import_result): New function. - (append_xml_impinfo): Likewise. - (import_status_handler): Implement. - * gpgme.c (_gpgme_release_result): Add call to - _gpgme_release_import_result. - * ops.h (_gpgme_release_import_result): Add prototype. - * types.h (ImportResult): New type. - * context.h (gpgme_context_s): Add ImportResult to member result. - - * encrypt.c (gpgme_op_encrypt): Code clean up. - -2002-01-30 Marcus Brinkmann - - * gpgme.h: Add lots of comment and fix the formatting. Add - gpgme_trustlist_end prototype. - -2002-01-29 Marcus Brinkmann - - * gpgme.h: Add new type GpgmeIdleFunc. Change type of - gpgme_register_idle to return and accept this type. - * wait.c (gpgme_register_idle): Fix type. - Save and return old value of idle_function. - -2002-01-29 Werner Koch - - * engine-gpgsm.c (_gpgme_gpgsm_op_keylist): Implement secret only mode. - - * keylist.c (keylist_colon_handler): Add support for the new "crs" - record type. - -2002-01-22 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_release): Call assuan_disconnect, - not assuan_pipe_disconnect. - - * Makefile.am (libgpgme_la_LIBADD): Change to link assuan and - jnlib (needed by assuan) statically into libgpgme. Linking a - static library into a shared library this way is not portable. - -2002-01-22 Marcus Brinkmann - - * gpgme.h (GpgmePassphraseCb): Change type of R_HD from void* to - void**. - -2002-01-22 Marcus Brinkmann - - * data.c (gpgme_data_new_from_filepart): Change type of LENGTH - from off_t to size_t. - * gpgme.h: Likewise. - -2002-01-22 Marcus Brinkmann - - * wait.c (_gpgme_wait_on_condition): If the process finished, - reset the pending flag. Also if the operation was cancelled. - - (struct proc_s): Rename READY to DONE. - (wait_item_s): Likewise. - (set_process_ready): Rename to ... - (set_process_done): ... this. - (_gpgme_remove_proc_from_wait_queue): Call set_process_done - instead set_process_ready. - (_gpgme_wait_on_condition): Likewise. - (do_select): Rename READY to DONE. - - * verify.c (gpgme_op_verify): Do not set pending to zero here. - * sign.c (gpgme_op_sign): Likewise. - * import.c (gpgme_op_import): Likewise. - * genkey.c (gpgme_op_genkey): Likewise. - * export.c (gpgme_op_export): Likewise. - * encrypt.c (gpgme_op_encrypt): Likewise. - * delete.c (gpgme_op_delete): Likewise. - * decrypt-verify.c (gpgme_op_decrypt_verify): Likewise. - * decrypt.c (gpgme_op_decrypt): Likewise. - -2002-01-22 Marcus Brinkmann - - * export.c: Cleanup. - -2002-01-15 Marcus Brinkmann - - * trustlist.c: Various source clean ups. - (my_isdigit): Removed. - (gpgme_op_trustlist_end): New function. - -2002-01-13 Marcus Brinkmann - - * gpgme.c: Various source clean ups, like renaming C to CTX where - appropriate. - (gpgme_new): Clear R_CTX before starting the work. - (my_isdigit): Removed. - (my_isxdigit): Likewise. - - * data.c: Various source clean ups. - (gpgme_data_new_from_mem): Check BUFFER after clearing R_DH. - (gpgme_data_new_with_read_cb): Similar for READ_CB. - (gpgme_data_new_from_file): Loop over fread while EINTR. - (gpgme_data_new_from_filepart): Rediddled a bit. Allow LENGTH to - be zero. Loop over fread while EINTR. - - (my_isdigit): Removed. - (my_isxdigit): Likewise. - -2001-12-21 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_new): Replace General_Error with - Pipe_Error where appropriate. - -2001-12-19 Marcus Brinkmann - - * engine.c: Include `string.h'. Reported by Stéphane Corthésy. - - * version.c (get_engine_info): Remove prototype. - -2001-12-19 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_new): New variable CHILD_FDS. - Fill it with the servers fds, and pass it to assuan_pipe_connect. - -2001-12-18 Marcus Brinkmann - - * keylist.c (gpgme_op_keylist_end): New function. - * gpgme.h (gpgme_op_keylist_end): New prototype. - - * engine.h (gpgme_engine_check_version): Move prototype to ... - * gpgme.h (gpgme_engine_check_version): ... here. - - * genkey.c (gpgme_op_genkey_start): Remove unused variable. - -2001-12-18 Marcus Brinkmann - - * version.c (gpgme_get_engine_info): Reimplemented. - (gpgme_check_engine): Reimplemented. - (_gpgme_compare_versions): Return NULL if MY_VERSION is NULL. - - * engine.c: Include `io.h'. - (gpgme_engine_get_info): New function. - * engine.h (gpgme_engine_check_version, _gpgme_engine_get_info): - Add prototype. - -2001-12-18 Marcus Brinkmann - - * rungpg.c (struct reap_s, reap_list, reap_list_lock): Moved to ... - * engine.c (struct reap_s, reap_list, reap_list_lock): ... here. - Include `time.h', `sys/types.h', `assert.h', and `sema.h'. - - * rungpg.c (_gpgme_engine_add_child_to_reap_list): New function. - (do_reaping, _gpgme_gpg_housecleaning): Moved to ... - * engine.c (do_reaping, _gpgme_engine_housecleaning): ... here. - * rungpg.c (_gpgme_gpg_release): Replace code that is now in its - own function by call to _gpgme_engine_add_child_to_reap_list(). - - * wait.c: Include `engine.h'. - (run_idle): Call _gpgme_engine_housecleaning(), not - _gpgme_gpg_housecleaning(). - -2001-12-18 Marcus Brinkmann - - * key.c (_gpgme_key_append_name): Append, not prepend, the uid. - Initialize the next field of the uid structure. - (gpgme_key_get_as_xml): Do not list last uid first. - -2001-12-17 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_set_colon_line_handler): New - function [!ENABLE_GPGSM]. - -2001-12-14 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Put TEXT into - message_data, not SIG. - (_gpgme_gpgsm_op_sign): Use `--detached', not `--detach'. - - * sign.c (sign_status_handler): Call - _gpgme_passphrase_status_handler early. - -2001-12-14 Marcus Brinkmann - - * engine-gpgsm.c: Revert last change. - -2001-12-14 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_status_handler): Freeze the output file - handler when ending this operation, otherwise the wait function - will sit on it. - -2001-12-14 Marcus Brinkmann - - * engine-gpgsm.c (struct gpgsm_object_s): New member colon.attic. - (_gpgme_gpgsm_new): Initialize some more members. - (_gpgme_gpgsm_release): Free the colon line handler's attic line. - (gpgsm_status_handler): Rework the inline-data processing. - -2001-12-13 Marcus Brinkmann - - * rungpg.c (_gpgme_gpg_spawn): Do not add the fds to the child - list that are not dup'ed, for those the close-on-exec flag is set - now. - * version.c (_gpgme_get_program_version): Remove first entry in - CFD, as the close-on-exec flag is now set for this fd. - -2001-12-13 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_encrypt): Do not add `armor' - option to `ENCRYPT'. - * engine-gpgsm.c (gpgsm_set_recipients): Free LINE when returning - successfully. - -2001-12-13 Marcus Brinkmann - - * engine-gpgsm.c (close_notify_handler): New function. - (_gpgme_gpgsm_new): Manage the file descriptors a - bit differently. Do not set close-on-exec flags. - (_gpgme_gpgsm_op_decrypt): Do not set message_fd - to -1, this is done by the close handler. - (_gpgme_gpgsm_op_encrypt): Likewise. - (_gpgme_gpgsm_op_import): Likewise (also for output_fd). - (_gpgme_gpgsm_op_keylist): Likewise (also for input_fd and output_fd). - (_gpgme_gpgsm_op_sign): Likewise. - (_gpgme_gpgsm_op_verify): Likewise, but for output_fd. - - * posix-io.c (_gpgme_io_pipe): Set the close-on-exec flag for the - non-inherited file descriptor index of the pipe. - -2001-12-13 Werner Koch - - * engine-gpgsm.c (_gpgme_gpgsm_set_colon_line_handler): New. - (gpgsm_status_handler): Pass datalines to a colon handler - * engine.c (_gpgme_engine_set_colon_line_handler): Set the colon - handler for gpgsm. - - * engine-gpgsm.c (_gpgme_gpgsm_op_keylist): Allow NULL for - pattern. - (gpgsm_assuan_simple_command): Removed underscore from - assuan_write_line. - (_gpgme_gpgsm_start): Ditto. - (gpgsm_assuan_simple_command): Replaced interal Assuan read - function by the new assuan_read_line. Removed the use of the - internal header. - (gpgsm_status_handler): Ditto. Use the new assuan_pending_line. - (_gpgme_gpgsm_start): Use the documented way to get an fd from - assuan. - - * keylist.c (keylist_colon_handler): Handle "crt" records - * key.h (gpgme_key_s): Add an x509 flag. - * key.c (parse_x509_user_id): New. - (_gpgme_key_append_name): Handle x.509 names. - -2001-12-05 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_status_handler): Make it work with current - version of assuan. - -2001-12-05 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_set_fd): Accept one more argument OPT. - (_gpgme_gpgsm_op_encrypt): Pass armor argument to gpgsm_set_fd for - output descriptor. - (_gpgme_gpgsm_op_sign): Likewise. - -2001-12-05 Marcus Brinkmann - - * keylist.c (gpgme_op_keylist_next): Set pending to 0 if EOF - occurs. - -2001-11-26 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Fix stupid typo. - -2001-11-24 Marcus Brinkmann - - * engine-gpgsm.c (gpgsm_status_handler): Don't break if bsearch fails. - Deal with assuan read line returning more than one line (for now). - -2001-11-23 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Implement it according to - the current protocol definition. - -2001-11-23 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_new): Set CLOEXEC flag for parent - ends of the pipe. - -2001-11-22 Marcus Brinkmann - - * engine-gpgsm.c: Include stdlib.h and string.h. Also include, - for now, rungpg.h and status-table.h. - (gpgsm_status_handler): Implement more of the status handler. - -2001-11-22 Marcus Brinkmann - - * engine.c (_gpgme_engine_op_decrypt): Implement CMS case. - (_gpgme_engine_op_delete): Likewise. - (_gpgme_engine_op_encrypt): Likewise. - (_gpgme_engine_op_export): Likewise. - (_gpgme_engine_op_genkey): Likewise. - (_gpgme_engine_op_keylist): Likewise. - (_gpgme_engine_op_sign): Likewise. - (_gpgme_engine_op_trustlist): Likewise. - - * engine-gpgsm.c (_gpgme_gpgsm_op_encrypt): New function. - (gpgsm_assuan_simple_command): Likewise. - (gpgsm_set_recipients): Likewise. - (gpgsm_set_fd): Reimplement using gpgsm_assuan_simple_command. - (_gpgme_gpgsm_op_delete): New function. - (_gpgme_gpgsm_op_export): Likewise. - (_gpgme_gpgsm_op_genkey): Likewise. - (_gpgme_gpgsm_op_sign): Likewise. - (_gpgme_gpgsm_op_keylist): Likewise. - (_gpgme_gpgsm_op_trustlist): Likewise. - (_gpgme_gpgsm_release): Release command. - (_gpgme_gpgsm_op_decrypt): Allocate command. - (_gpgme_gpgsm_op_import): Likewise. - (gpgsm_status_handler): Also treat `ERR' strings as EOF. - -2001-11-22 Marcus Brinkmann - - * gpgme.h (gpgme_set_protocol): New prototype. - -2001-11-22 Marcus Brinkmann - - * engine-gpgsm.c (_gpgme_gpgsm_op_decrypt): New function. - (_gpgme_gpgsm_op_import): Likewise. - -2001-11-22 Marcus Brinkmann - - * engine-gpgsm.c: Shuffle around header inclusion a bit, to still - keep them seperate. - (_gpgme_set_status_handler) [!ENABLE_GPGSM]: New function. - -2001-11-22 Werner Koch - - * engine-gpgsm.c: Include more headers so that NULL and mk_error - is defined even with an undefined GPGSM_PATH. - -2001-11-22 Marcus Brinkmann - - * rungpg.c (gpg_inbound_handler, write_mem_data, write_cb_data, - gpg_outbound_handler): Moved to ... - * data.c (_gpgme_data_inbound_handler, write_mem_data, - write_cb_data, _gpgme_data_outbound_handler): ... here. Make the - _gpgme_* ones non-static. - * data.c: Include io.h. - - * ops.h (_gpgme_data_inbound_handler): New prototype. - (_gpgme_data_outbound_handler): Likewise. - (_gpgme_gpg_spawn): Use these new functions. - - * engine-gpgsm.h (_gpgme_gpgsm_op_decrypt, _gpgme_gpgsm_op_delete, - _gpgme_gpgsm_op_encrypt, _gpgme_gpgsm_op_export, - _gpgme_gpgsm_op_genkey, _gpgme_gpgsm_op_import, - _gpgme_gpgsm_op_keylist, _gpgme_gpgsm_op_sign, - _gpgme_gpgsm_op_trustlist, _gpgme_gpgsm_op_verify, - _gpgme_gpgsm_start, _gpgme_gpgsm_set_status_handler): New prototype. - Include for status handler function. - - * engine-gpgsm.c (struct gpgsm_object_s): New members input_fd, - input_data, output_fd, output_data, message_fd, message_data, command - and status. - (_gpgme_gpgsm_new): Open input, output and message pipes before - connecting to the client. Close server's ends afterwards. - (_gpgme_gpgsm_release): Close open file descriptors. Remove - server process from wait queue. - (_gpgme_gpgsm_op_verify, _gpgme_gpgsm_start, - _gpgme_gpgsm_set_status_handler, gpgms_status_handler): New function. - - * engine.c (_gpgme_engine_start): Implement for GPGME_PROTOCOL_CMS. - (_gpgme_engine_set_status_handler): Likewise. - (_gpgme_engine_op_verify): Likewise. - -2001-11-21 Marcus Brinkmann - - * context.h: Do not include rungpg.h, but engine.h. - (struct gpgme_context_s): Replace member gpg with engine. - * gpgme.c (gpgme_release): Release engine, not gpg. - - * recipient.c (_gpgme_append_gpg_args_from_recifgpients): Function - moved ... - * rungpg.c (_gpgme_append_gpg_args_from_recipients): ... here. - Make static, change order of arguments, and return an error value. - * ops.h (_gpgme_append_gpg_args_from_recipients): Removed prototype. - - * rungpg.h (_gpgme_gpg_op_verify): Add prototype. - (_gpgme_gpg_op_encrypt): Likewise. - (_gpgme_gpg_op_decrypt): Likewise. - (_gpgme_gpg_op_delete): Likewise. - (_gpgme_gpg_op_export): Likewise. - (_gpgme_gpg_op_genkey): Likewise. - (_gpgme_gpg_op_import): Likewise. - (_gpgme_gpg_op_keylist): Likewise. - (_gpgme_gpg_op_sign): Likewise. - (_gpgme_gpg_op_trustlist): Likewise. - * rungpg.c (_gpgme_gpg_op_verify): New function. - (_gpgme_gpg_op_encrypt): Likewise. - (_gpgme_gpg_op_decrypt): Likewise. - (_gpgme_gpg_op_delete): Likewise. - (_gpgme_gpg_op_export): Likewise. - (_gpgme_gpg_op_genkey): Likewise. - (_gpgme_gpg_op_import): Likewise. - (_gpgme_gpg_op_keylist): Likewise. - (_gpgme_gpg_op_sign): Likewise. - (_gpgme_gpg_op_trustlist): Likewise. - - * engine.h (_gpgme_engine_set_status_handler): Add prototype. - (_gpgme_engine_set_command_handler): Likewise. - (_gpgme_engine_set_colon_line_handler): Likewise. - (_gpgme_engine_op_decrypt): Likewise. - (_gpgme_engine_op_delete): Likewise. - (_gpgme_engine_op_encrypt): Likewise. - (_gpgme_engine_op_export): Likewise. - (_gpgme_engine_op_genkey): Likewise. - (_gpgme_engine_op_import): Likewise. - (_gpgme_engine_op_keylist): Likewise. - (_gpgme_engine_op_sign): Likewise. - (_gpgme_engine_op_trustlist): Likewise. - (_gpgme_engine_op_verify): Likewise. - (_gpgme_engine_start): Likewise. - * engine.c (_gpgme_engine_set_status_handler): New function. - (_gpgme_engine_set_command_handler): Likewise. - (_gpgme_engine_set_colon_line_handler): Likewise. - (_gpgme_engine_op_decrypt): Likewise. - (_gpgme_engine_op_delete): Likewise. - (_gpgme_engine_op_encrypt): Likewise. - (_gpgme_engine_op_export): Likewise. - (_gpgme_engine_op_genkey): Likewise. - (_gpgme_engine_op_import): Likewise. - (_gpgme_engine_op_keylist): Likewise. - (_gpgme_engine_op_sign): Likewise. - (_gpgme_engine_op_trustlist): Likewise. - (_gpgme_engine_op_verify): Likewise. - (_gpgme_engine_start): Likewise. - - * verify.c (gpgme_op_verify_start): Reimplement in terms of above - functions. - * encrypt.c (gpgme_op_encrypt_start): Likewise. - * decrypt.c (_gpgme_decrypt_start): Likewise. - * passphrase.c (_gpgme_passphrase_start): Likewise. - * keylist.c (gpgme_op_keylist_start): Likewise. - -2001-11-20 Marcus Brinkmann - - * types.h: Add types EngineObject and GpgsmObject. - - * Makefile.am (libgpgme_la_SOURCES): Add engine-gpgsm.h, - engine-gpgsm.c, engine.h and engine.c. - * engine.h: New file. - * engine.c: Likewise. - * engine-gpgsm.h: Likewise. - * engine-gpgsm.c: Likewise. - - * rungpg.c (_gpgme_gpg_get_version): New function. - (_gpgme_gpg_check_version): Likewise. - * rungpg.h: Add prototypes for _gpgme_gpg_get_version and - _gpgme_gpg_check_version. - - * version.c (compare_versions): Rename to ... - (_gpgme_compare_versions): ... this. Make non-static. - (gpgme_check_version): Use _gpgme_compare_versions rather than - compare_versions. - (gpgme_check_engine): Likewise. - * ops.h (_gpgme_get_program_version): Add prototype. - -2001-11-20 Marcus Brinkmann - - * Makefile.am (libgpgme_la_INCLUDES): Remove obsolete directive. - (AM_CPPFLAGS): New directive [BUILD_ASSUAN]. - (libgpgme_la_LIBADD): Likewise. - -2001-11-20 Marcus Brinkmann - - * version.c: Remove global variables lineno and - tmp_engine_version. - (version_handler): Removed. - (_gpgme_get_program_version): New function. - (get_engine_info): Don't use context and version_handler, - but _gpgme_get_program_version. - * ops.h (_gpgme_get_program_version): Add prototype for - _gpgme_get_program_version (we expect to use it elsewhere soon). - -2001-11-18 Marcus Brinkmann - - * version.c (get_engine_info): If GnuPG is not available, return - an error message. - * posix-util.c (_gpgme_get_gpg_path): Allow GPG_PATH to be - undefined. - (_gpgme_get_gpgsm_path): New function. - * w32-util.c (find_program_in_registry): New static function. - (_gpgme_get_gpg_path): Allow GPG_PATH to be undefined. Rework - to use find_program_in_registry. - (_gpgme_get_gpgsm_path): New function. - (util.h): Prototype _gpgme_get_gpgsm_path). - * rungpg.c (_gpgme_gpg_spawn): Verify that _gpgme_get_gpg_path() - returns non-null. - -2001-11-16 Marcus Brinkmann - - * decrypt-verify.c: New file. - * Makefile.am (libgpgme_la_SOURCES): Add decrypt-verify.c. - * types.h: Add decrypt-verify types. - * ops.h: Likewise. - * context.h: Add result type for decrypt-verify. - * gpgme.h: Add decrypt-verify prototypes. - - * decrypt.c (decrypt_status_handler): Renamed to ... - (_gpgme_decrypt_status_handler): ... this. Make non-static. - (_gpgme_decrypt_start): New function, derived from - gpgme_op_decrypt_start. - (gpgme_op_decrypt_start): Reimplement in terms of - _gpgme_decrypt_start. - (_gpgme_decrypt_result): New function to retrieve error value. - (gpgme_op_decrypt): Use _gpgme_decrypt_result. - * ops.h: Add prototypes for new functions. - - * verify.c (verify_status_handler): Renamed to ... - (_gpgme_verify_status_handler): ... this. Make non-static. - (gpgme_op_verify_start): Use new function name. - (intersect_stati): Renamed to ... - (_gpgme_intersect_stati): ... this. Make non-static. - (gpgme_op_verify): Use new name. - * ops.h: Add prototypes for new functions. - -2001-11-16 Marcus Brinkmann - - * passphrase.c: New file. - * Makefile.am (libgpgme_la_SOURCES): Add passphrase.c. - * ops.h (_gpgme_passphrase_result): Add prototypes from - passphrase.c. - * types.h: Likewise. - * context.h: Add member passphrase to result. - * gpgme.c (_gpgme_release_result): Release passphrase member. - - * decrypt.c: Some formatting and variable name changes (like - CTX instead C). - (struct decrypt_result_s): Remove members now found in - passphrase result. - (_gpgme_release_decrypt_result): Don't release removed members. - (decrypt_status_handler): Call _gpgme_passphrase_status_handler, - and don't handle the cases catched there. - (command_handler): Removed. - (gpgme_op_decrypt_start): Don't set command handler, but invoke - _gpgme_passphrase_start which does it. - (gpgme_op_decrypt): Invoke _gpgme_passphrase_result and drop the - cases covered by it. - - * sign.c Some formatting and variable name changes (like - CTX instead C). - (struct sign_result_s): Remove members now found in - passphrase result. - (_gpgme_release_sign_result): Don't release removed members. - (sign_status_handler): Call _gpgme_passphrase_status_handler, - and don't handle the cases catched there. - (command_handler): Removed. - (gpgme_op_sign_start): Don't set command handler, but invoke - _gpgme_passphrase_start which does it. - (gpgme_op_sign): Invoke _gpgme_passphrase_result and drop the - cases covered by it. - -2001-11-15 Marcus Brinkmann - - * decrypt.c (command_handler): Fix last change. - -2001-11-15 Marcus Brinkmann - - * verify.c (_gpgme_release_verify_result): Rename RES to RESULT. - Rename R2 to NEXT_RESULT. - (intersect_stati): Rename RES to RESULT. - (gpgme_get_sig_status): Likewise. Do not check return_type, but - the member verify of result. - (gpgme_get_sig_key): Likewise. - - * sign.c (_gpgme_release_sign_result): Rename RES to RESULT. If - RESULT is zero, return. - (sign_status_handler, command_handler): Do not check return_type, - but the member sign of result. - (gpgme_op_sign): Likewise. Drop assertion. - - * encrypt.c (_gpgme_release_encrypt_result): Rename RES to RESULT. - If RESULT is zero, return. - (encrypt_status_handler): Do not check return_type, but the member - encrypt of result. - (gpgme_op_encrypt): Likewise. Drop assertion. - - * decrypt.c (_gpgme_release_decrypt_result): Rename RES to RESULT. - (create_result_struct): Do not set result_type. - (command_handler, decrypt_status_handler): Do not check - return_type, but the member decrypt of result. - (gpgme_op_decrypt): Likewise. Drop assertion. - - * context.h (enum ResultType): Removed. - (struct gpgme_context_s): Remove member result_type. - (struct result): Replaces union result. - * gpgme.c: Include string.h. - (_gpgme_release_result): Release all members of c->result, which - is now a struct. Zero out all members of the struct afterwards. - -2001-11-11 Marcus Brinkmann - - * rungpg.c (_gpgme_gpg_release): Release GPG->cmd.cb_data. - Release all members of the list GPG->arglist. - Reported by Michael Schmidt . - -2001-11-02 Marcus Brinkmann - - * rungpg.c (pipemode_copy): Change type of NBYTES to size_t. - - * key.c: Include string.h. - * data.c: Likewise. - * recipient.c: Likewise. - -2001-10-29 Marcus Brinkmann - - * context.h: New member signers_len. - * signers.c (gpgme_signers_clear): Require that signers are - non-NULL with assertion. Use signers_len to determine how much - keys to release. Add documentation. - (gpgme_signers_add): Use signers_len to determine if the buffer is - large enough. Use xtryrealloc rather than xtrymalloc and copying. - Add documentation. - (gpgme_signers_enum): Use signers_len to determine if key is - available. Add documentation. - -2001-10-22 Marcus Brinkmann - - * data.c (_gpgme_data_append): Check if LENGTH is smaller than - ALLOC_CHUNK, not DH->length. - -2001-10-17 Marcus Brinkmann - - * gpgme.c (gpgme_set_protocol): Fix last change. - -2001-10-15 Werner Koch - - * gpgme.h (GpgmeProtocol): New. - * gpgme.c (gpgme_set_protocol): New. - -2001-09-26 Werner Koch - - * gpgme.c (gpgme_set_passphrase_cb): Ignore a NULL context. - (gpgme_set_progress_cb): Ditto. Suggested by Mark Mutz. - -2001-09-17 Werner Koch - - * keylist.c (finish_key): Shortcut for no tmp_key. Changed all - callers to use this function without a check for tmp_key. - - * keylist.c (gpgme_op_keylist_next): Reset the key_cond after - emptying the queue. Bug reported by Stéphane Corthésy. - -2001-09-12 Werner Koch - - * data.c (gpgme_data_rewind): Allow rewind for callbacks. - -2001-09-07 Werner Koch - - * rungpg.h: Add NO_RECP. - * encrypt.c (encrypt_status_handler): Take on No_RECP. - (gpgme_op_encrypt): Better error return. - - * verify.c (verify_status_handler): Take on NODATA. - -2001-09-03 Werner Koch - - * rungpg.h: Added STATUS_INV_RECP. - * gpgme.c (_gpgme_release_result): Add support for new - EncryptResult object. - * encrypt.c (append_xml_encinfo): New. - (encrypt_status_handler): Add some status parsing. - (_gpgme_release_encrypt_result): New. - -2001-08-29 Werner Koch - - * recipient.c (gpgme_recipients_release): Free the list. By Timo. - - * keylist.c (keylist_colon_handler): Do a finish key if we receive - an EOF here. This is probably the reason for a lot of bugs - related to keylisting. It is so obvious. Kudos to Enno Cramer - for pointing that out. - -2001-08-28 Werner Koch - - * gpgme.c, gpgme.h (gpgme_get_op_info): New. - (_gpgme_set_op_info): New. - (_gpgme_release_result): Reset the op_info here. - * sign.c (append_xml_siginfo): New. - (sign_status_handler): Store the sig create information. - -2001-07-31 Werner Koch - - * encrypt.c (gpgme_op_encrypt): Hack to detect no valid recipients. - -2001-07-30 Werner Koch - - * gpgme.c (gpgme_get_armor,gpgme_get_textmode): New. - - * rungpg.c (build_argv): Disable armor comments - * w32-io.c (build_commandline): Need to add quotes here - -2001-07-24 Werner Koch - - * data.c (gpgme_data_read): Add a a way to return the available bytes. - -2001-07-23 Werner Koch - - * util.c: Removed stpcpy() because we use the version from jnlib. - -2001-07-19 Werner Koch - - * mkstatus: Define the collating sequence for sort. - -2001-06-26 Werner Koch - - * rungpg.h: Add STATUS_UNEXPECTED as suggested by Timo. - -2001-06-15 Werner Koch - - * keylist.c (set_userid_flags): Fixed the assigned values. Kudos - to Timo for pointing this out. - -2001-06-01 Werner Koch - - * debug.c (_gpgme_debug_begin): Fixed a /tmp race. Noted by - Johannes Poehlmann. - -2001-05-28 Werner Koch - - * version.c (gpgme_check_engine): Stop version number parsing at - the opening angle and not the closing one. By Tommy Reynolds. - -2001-05-01 José Carlos García Sogo - - * encrypt.c (gpgme_op_encrypt_start): Deleted the assert ( !c->gpg ) - line, because it gave an error if another operation had been made - before using the same context. - - * decrypt.c (gpgme_op_decrypt_start): The same as above. Also added - one line to release the gpg object in the context (if any). - -2001-04-26 Werner Koch - - * key.c, key.h (_gpgme_key_cache_init): New. - (_gpgme_key_cache_add): New. - (_gpgme_key_cache_get): New. - * version.c (do_subsystem_inits): Init the cache. - * keylist.c (finish_key): Put key into the cache - * verify.c (gpgme_get_sig_key): First look into the cache. - -2001-04-19 Werner Koch - - * keylist.c (parse_timestamp): Adjusted for the changed - --fixed-list-mode of gpg 1.0.4h. - -2001-04-05 Werner Koch - - * verify.c (gpgme_op_verify_start): Enabled pipemode for detached sigs. - -2001-04-04 Werner Koch - - * w32-io.c (_gpgme_io_select): Don't select on the writer if there - are still bytes pending. Timo found this not easy to track down - race condition. - -2001-04-02 Werner Koch - - * gpgme.h: Add GPGME_ATTR_KEY_{EXPIRED,DISABLED}. - * key.c (gpgme_key_get_ulong_attr): And return those attribs. - - * verify.c (gpgme_get_sig_key): Set keyliosting mode depending on - the mode set in the current context. Suggested by Timo. - - * key.c (gpgme_key_get_ulong_attr): Return can_certify and not - can_encrypt. By Timo. - -2001-03-30 Werner Koch - - * debug.c (debug_init): Allow to specify a debug file. - (_gpgme_debug_level): New. - - * posix-io.c (_gpgme_io_read, _gpgme_io_write): Print output. - (_gpgme_io_select): Debug only with level > 2. - -2001-03-15 Werner Koch - - * rungpg.c: Included time.h. - - * key.h: New keyflags for capabilities. - * keylist.c (set_mainkey_capability, set_subkey_capability): New. - (keylist_colon_handler): Parse them. - * gpgme.h: New attribute values for capabilties. - * key.c (gpgme_key_get_string_attr): Return them. - (capabilities_to_string): New. - (gpgme_key_get_ulong_attr): Return the global caps. - -2001-03-14 Werner Koch - - * w32-io.c (destroy_reader,destroy_writer): Fixed syntax error. - Thanks to Jan Oliver Wagner. - -2001-03-13 Werner Koch - - * context.h: Add invalid and revoke flags to user_id structure. - * keylist.c (gpgme_op_keylist_start): Use --fixed-list-mode. - (keylist_colon_handler): Adjust for that. - (set_userid_flags): New. - (set_mainkey_trust_info): Handle new key invalid flag - (set_subkey_trust_info): Ditto. - * gpgme.h: Add new attributes for key and user ID flags. - * key.c (_gpgme_key_append_name): Init these flags - (gpgme_key_get_as_xml): Print them. - (one_uid_as_xml): New helper for above. - (gpgme_key_get_string_attr, gpgme_key_get_ulong_attr): - Return the new attributes. Enhanced, so that subkey information - can be returned now. - -2001-02-28 Werner Koch - - * w32-io.c (destroy_reader): Set stop_me flag. - (writer,create_writer,destroy_writer,find_writer,kill_writer): New. - (_gpgme_io_write): Use a writer thread to avaoid blocking. - (_gpgme_io_close): Cleanup a writer thread - (_gpgme_io_select): Repalce tthe faked wait on writing by a real - waiting which is now possible due to the use of a writer thread. - -2001-02-20 Werner Koch - - * w32-io.c (destroy_reader,kill_reader): New. - (create_reader, reader): Add a new event to stop the thread. - (_gpgme_io_close): Kill the reader thread. - - * posix-io.c (_gpgme_io_select): Handle frozen fds here. - * 32-io.c (_gpgme_io_select): Ditto. Removed a bunch of unused code. - - * wait.c: Reworked the whole thing. - * rungpg.c (_gpgme_gpg_new): Init pid to -1. - (_gpgme_gpg_release): Remove the process from the wait queue. - -2001-02-19 Werner Koch - - * w32-io.c (_gpgme_io_set_close_notify): New. - (_gpgme_io_close): Do the notification. - - * posix-io.c (_gpgme_io_select): Use a 1 sec timeout and not 200 - microseconds. - - * wait.c (remove_process): Don't close the fd here. - (do_select): Set the fd to -1 and remove the is_closed flag everywhere. - (_gpgme_wait_on_condition): Remove the assert on the queue and - break out if we could not find the queue. The whole thing should - be reworked. - - * posix-io.c (_gpgme_io_set_close_notify): New. - (_gpgme_io_close): Do the notification. - - * rungpg.c (close_notify_handler): New. - (_gpgme_gpg_new): Register a callback for the fd. - (_gpgme_gpg_set_colon_line_handler): Ditto. - (build_argv): Ditto - -2001-02-13 Werner Koch - - * rungpg.c (struct reap_s): Replaced pid_t by int. - - * types.h: Add ulong typedef. - - * rungpg.c (do_reaping,_gpgme_gpg_housecleaning): New. - (_gpgme_gpg_release): Reap children. - * io.h, posix-io.c (_gpgme_io_kill): New. - * w32-io.c (_gpgme_io_kill): New (dummy). - - * keylist.c (gpgme_op_keylist_start): Cancel a pending request. - - * posix-io.c (_gpgme_io_read): Add some debug output. - (_gpgme_io_write): Ditto. - (_gpgme_io_select): Increased the timeout. - -2001-02-12 Werner Koch - - Enhanced the signature verification, so that it can how handle - more than one signature and is able to return more information on - the signatures. - * verify.c (gpgme_get_sig_key): New. - (gpgme_get_sig_status): New. - - * gpgme.h: Add stdio.h. - (GpgmeSigStat): New status DIFF. - -2001-02-01 Werner Koch - - * w32-io.c (set_synchronize): Add EVENT_MODIFY_STATE. Add Debug - code to all Set/ResetEvent(). - - * rungpg.c (read_status): Check for end of stream only if we have - an r. By Timo. - -2001-01-31 Werner Koch - - * wait.c (_gpgme_wait_on_condition): Removed all exit code processing. - (propagate_term_results,clear_active_fds): Removed. - (count_active_fds): Renamed to .. - (count_active_and_thawed_fds): .. this and count only thawed fds. - - * rungpg.c (gpg_colon_line_handler): Return colon.eof and not - status.eof ;-) - -2001-01-30 Werner Koch - - * w32-io.c (_gpgme_io_spawn): Use the supplied path arg. - - * version.c (get_engine_info): Return better error information. - - * posix-util.c, w32-util.c: New. - (_gpgme_get_gpg_path): New, suggested by Jan-Oliver. - * rungpg.c (_gpgme_gpg_spawn): Use new function to get GPG's path. - - * signers.c (gpgme_signers_add): Ooops, one should test code and - not just write it; the newarr was not assigned. Thanks to José - for pointing this out. Hmmm, still not tested, why should a coder - test his fix :-) - - * w32-io.c: Does now use reader threads, so that we can use - WaitForMultipleObjects. - * sema.h, posix-sema.c, w32-sema.c: Support for Critcial sections. - Does currently only work for W32. - - * debug.c, util.h : New. Changed all fprintfs to use this new - set of debugging functions. - -2001-01-23 Werner Koch - - * data.c (_gpgme_data_release_and_return_string): Fixed string - termination. - -2001-01-22 Werner Koch - - * delete.c: New. - - * signers.c: New. - * key.c (gpgme_key_ref, gpgme_key_unref): New. - * sign.c (gpgme_op_sign_start): Allow the use of other keys. - - * version.c (gpgme_get_engine_info,gpgme_check_engine): New. - * rungpg.c (_gpgme_gpg_set_simple_line_handler): New. - -2001-01-05 Werner Koch - - * data.c (gpgme_data_rewind): Allow to rewind data_type_none. - - - Copyright 2001,2002,2003,2004,2005,2006,2007,2008,2009,2010, - 2011 g10 Code GmbH - - This file is free software; as a special exception the author gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. - - This file is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY, to the extent permitted by law; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/src/ChangeLog-2011 b/src/ChangeLog-2011 new file mode 100644 index 00000000..c1a901a2 --- /dev/null +++ b/src/ChangeLog-2011 @@ -0,0 +1,7148 @@ +2011-12-02 Werner Koch + + NB: ChangeLog files are no longer manually maintained. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist". See doc/HACKING for details. + +2011-10-25 Marcus Brinkmann + + * Makefile.am: Remove build rules for libgpgme-pth. + * gpgme.m4: Remove support for libgpgme-pth. + +2011-05-26 Marcus Brinkmann + + * decrypt.c (gpgme_op_decrypt_start, gpgme_op_decrypt): Check CTX. + * decrypt-verify.c (gpgme_op_decrypt_verify_start) + (gpgme_op_decrypt_verify): Likewise. + * delete.c (gpgme_op_delete_start, gpgme_op_delete): Likewise. + * edit.c (gpgme_op_edit_start, gpgme_op_edit) + (gpgme_op_card_edit_start, gpgme_op_card_edit): Likewise. + * encrypt.c (gpgme_op_encrypt_start, gpgme_op_encrypt): Likewise. + * encrypt-sign.c (gpgme_op_encrypt_sign_start) + (gpgme_op_encrypt_sign): Likewise. + * export.c (gpgme_op_export_start, gpgme_op_export) + (gpgme_op_export_ext_start, gpgme_op_export_ext) + (gpgme_op_export_keys_start, gpgme_op_export_keys): Likewise. + * genkey.c (gpgme_op_genkey_start, gpgme_op_genkey): Likewise. + * getauditlog.c (gpgme_op_getauditlog_start) + (gpgme_op_getauditlog): Likewise. + * gpgconf.c (gpgme_op_conf_load, gpgme_op_conf_save): Likewise. + * import.c (gpgme_op_import_start, gpgme_op_import_keys_start) + (gpgme_op_import_keys, gpgme_op_import): Likewise. + * keylist.c (gpgme_op_keylist_start, gpgme_op_keylist_ext_start): + Likewise. + * opassuan.c (gpgme_op_assuan_transact_start) + (gpgme_op_assuan_transact_ext): Likewise. + * passwd.c (gpgme_op_passwd_start, gpgme_op_passwd): Likewise. + * sign.c (gpgme_op_sign_start, gpgme_op_sign): Likewise. + * trustlist.c (gpgme_op_trustlist_start) + (gpgme_op_trustlist_next): Likewise. + * verify.c (gpgme_op_verify_start, gpgme_get_sig_key): Likewise. + * op-support.c (_gpgme_op_data_lookup): Likewise. + * vfs-create.c (gpgme_op_vfs_transact, gpgme_op_vfs_create): Likewise. + * vfs-mount.c (gpgme_op_vfs_mount, gpgme_op_vfs_transact): Likewise. + * gpgme.c (gpgme_set_protocol) + (gpgme_set_sub_protocol) + (gpgme_set_armor, gpgme_set_include_certs) + (gpgme_set_keylist_mode, gpgme_set_passphrase_cb) + (gpgme_set_progress_cb, gpgme_set_io_cbs, gpgme_set_locale) + (gpgme_ctx_set_engine_info, gpgme_sig_notation_clear): Likewise. + * gpgme.c (gpgme_new): Check for valid R_CTX. + (gpgme_cancel, gpgme_cancel_async, gpgme_release): Likewise. + +2011-04-06 Werner Koch + + * gpgme-config.in: Add option --host. Change options --cflags and + --libs to collapse duplicate include and lib dirs. Try to put + extra libs at the end. + + * gpgme.h.in: Use INSERT__TYPEDEFS_FOR_GPGME_H to include platform + specific typedefs. + +2011-02-03 Werner Koch + + * extra-stati.h: New. + * mkstatus: Extend to also process extra-stati.h + * Makefile.am (main_sources): Add extra-stati.h + (status-table.h): Depend on extra-stati.h and adjust rule. + +2011-02-03 Marcus Brinkmann + + * w32-io.c (_gpgme_io_socket): Return fd, not res. + +2011-02-02 Marcus Brinkmann + + * assuan-support.c (my_socket, my_connect): New functions. + (_gpgme_assuan_system_hooks): Add my_Socket, my_connect. + * priv-io.h (_gpgme_io_socket): New prototype. + * w32-io.c (pid_to_handle, handle_to_oid, fd_to_handle): Remove macros. + (is_socket): Remove function. + (_gpgme_io_spawn) [HAVE_W32CE_SYSTEM]: Remove some dead code. + (_gpgme_io_spawn): Translate handles before DuplicateHandle them. + +2011-02-02 Marcus Brinkmann + + * w32-util.c (mkstemp): Don't use CreateFile instead of open (the + function is not used on Windows CE, and the callers were not + adjusted). + +2011-01-21 Marcus Brinkmann + + * engine-gpgconf.c (_gpgme_conf_opt_change): Fix the case that is + not self-assignment. + +2010-12-08 Werner Koch + + * gpgme-tool.c (strcpy_escaped_plus): New. + (DIM, xtoi_1, xtoi_2): New. + (cmd_keylist): Allow for multiple patterns. + +2010-11-23 Marcus Brinkmann + + * w32-io.c (create_reader, create_writer): Use small stack size on + Windows CE. + +2010-11-23 Marcus Brinkmann + + * gpgme.h.in (gpgme_conf_arg_new): Make VALUE arg const void *. + * gpgconf.c (_gpgme_conf_arg_new): Likewise. + (gpgme_conf_arg_new): Likewise. + * engine-gpgconf.c (_gpgme_conf_arg_new): Likewise. + (gpgconf_write): Remove debug hack. + +2010-11-19 Marcus Brinkmann + + * engine-gpgconf.c (_gpgme_conf_opt_change): Support + self-assignment. Requested by Marc Mutz. + +2010-11-17 Marcus Brinkmann + + * vasprintf.c (int_vasprintf) [HAVE_W32CE_SYSTEM]: Just use a + fixed size buffer, as va_copy is not easy to fake. + +2010-11-15 Marcus Brinkmann + + * w32-ce.h (strcasecmp, strdup) [_MSC_VER]: Define. + * genkey.c, passphrase.c: Include util.h. + + * w32-util.c (_gpgme_w32ce_get_debug_envvar): Fix return value. + +2010-11-15 Werner Koch + + * data-compat.c (gpgme_data_new_from_filepart) + (gpgme_data_new_from_file) [W32CE && _MSC_VER]: Return not + GPG_ERR_NOT_IMPLEMENTED. + + * w32-ce.h (HKEY_PERFORMANCE_DATA, HKEY_CURRENT_CONFIG, _IOLBF) + (abort) [_MSC_VER]: Provide these macros. + + * ath.h [W32CE && _MSC_VER]: Include winsock2.h. + + * ath.c (ath_read, ath_write) [W32CE && _MSC_VER]: Do not call + non-available functions. + +2010-11-04 Werner Koch + + * w32-ce.h [_MSC_VER && W32CE]: Undef leave. + * export.c: Include util.h so that we get the above undef. + + * memrchr.c: Remove. Used to be a replacement function required + by the formerly included assuan code. + +2010-11-03 Werner Koch + + * debug.c (_gpgme_debug) [W32CE]: Replace locatime by GetLocalTime. + + * signers.c (gpgme_signers_clear): Remove useless return. + Reported by Patrick Spendrin. + + * w32-util.c: s/__inline__/GPG_ERR_INLINE/ + + * setenv.c: Include string.h due to our strerror replacement. + + * w32-ce.h (access, bsearch): New macros. + * w32-ce.c (_gpgme_wince_access): New. + (RegQueryValueExA): Change DATA to a void*. + (_gpgme_wince_bsearch): New. Taken from glibc 2.6. + + Guard include of sys/stat.h and sys/types.h. + +2010-11-02 Werner Koch + + * data-fd.c (read, write, lseek) [W32CE && ! __MINGW32CE__]: New. + Taken from Pedro Alves Public Domain code. + + * w32-ce.h (SHGetSpecialFolderPath): Remove our defines and + prototypes. We use the system provided prototypes now. + * w32-ce.c: Include shlobj.h + (_WIN32_IE): Define to 0x0400 + (CreateFileA): New. + * w32-util.c: Explicitly include windows headers before util.h. + (_gpgme_w32ce_get_debug_envvar): Do not use wchar_t strings for + read_w32_registry_string. + (mkstemp): Use CreateFile instead of open. + + * w32-io.c (handle_to_fd, fd_tohandle): Add. We need them for W32. + * w32-util.c (_WIN32_IE): Define to 0x0400. + + * util.h [W32]: Include windows.h. + * w32-sema.c: Do not include windows.h directly. + * ath.c (ssize_t, pid_t)[_MSC_VER]: Add new types. + * gpgme.c (gpgme_result_ref, gpgme_result_unref): Do not use a + void pointer in pointer arithmetic. + * w32-util.c: Include util.h prior to ath.h. Don't include + windows.h directly. + (F_OK): Define if not defined. + * w32-ce.c: Include string.h. + (RegQueryValueExA): Use WINAPI modifier to match the declaration. + * vfs-create.c: Include string.h because under W32CE with MSC we + get a warning related to our strerror replacement. + * encrypt-sign.c: Include stdlib.h, string.h and errno.h. + * priv-io.h [W32CE]: Include w32-ce.h + * w32-ce.h: Include winsock2.h and ws2tcpip.h. + (_MSV_VER): Remove useless macro. + (pid_t): Add typedef. + + Guard all includes of unistd.h and sys/time.h. + +2010-10-28 Marcus Brinkmann + + * opassuan.c (gpgme_op_assuan_transact_ext): Fix uninitialized + value use. Reported by Marc Mutz. + +2010-10-07 Werner Koch + + * gpgme-tool.c (ARGP_ERR_UNKNOWN): Use EDEADLK if available. + + * w32-util.c (_gpgme_w32ce_get_debug_envvar) [W32CE]: New. + * debug.c (debug_init) [W32CE]: Use new function. + +2010-09-16 Werner Koch + + * import.c: Include "util.h". + (parse_import): Return GPG_ERR_MISSING_ISSUER_CERT. + + * util.h: Add fallback define for GPG_ERR_MISSING_ISSUER_CERT. + * op-support.c: Include "util.h". + (_gpgme_parse_inv_recp): Handle new code 12. + +2010-09-02 Marcus Brinkmann + + * error.c (gpgme_err_code_to_errno): Fix cut and paste bug (thanks + to Marc Mutz). + +2010-09-01 Marcus Brinkmann + + * w32-io.c: Revert change from 2009-06-18, as it created a race + condition. + +2010-08-18 Marcus Brinkmann + + * gpgme.def: Add gpgme_err_code_from_syserror and gpgme_err_set_errno. + * libgpgme.vers: Likewise. + * gpgme.h.in (gpgme_error_from_errno): Fix return type to + gpgme_error_t. + (gpgme_err_code_from_syserror, gpgme_err_set_errno): New prototype. + (gpgme_error_from_syserror): New inline function (why are + gpgme_err_make_from_errno and gpgme_error_from_errno not inline + functions?). + * error.c (gpgme_error_from_errno): Fix return type to gpgme_error_t. + (gpgme_err_set_errno, gpgme_err_code_from_syserror): New functions. + +2010-08-03 Marcus Brinkmann + + * gpgme-tool.c (result_encrypt_to_xml, result_sign_to_xml) + (result_verify_to_xml, result_import_to_xml) + (result_genkey_to_xml): Check vigorously for null pointers. + + * w32-io.c (GPGCEDEV_IOCTL_ASSIGN_RVID): New macro. + (_gpgme_io_spawn): Use ASSIGN_RVID. + +2010-06-11 Marcus Brinkmann + + * w32-io.c (_gpgme_io_spawn): Remove debug printf. + +2010-06-10 Marcus Brinkmann + + * gpgme-tool.c (gpgme_server): Use special hack for Windows CE to + get at stdin and stdout. + + * engine-gpgsm.c (gpgsm_new): Translate returned achild_fds back + to child_fds. + + * debug.h (TRACE_SUC6): New macro. + * w32-io.c (MAX_SLAFD): New macro. + (fd_table): New static variable. + (new_fd, release_fd): New functions. + (fd_to_handle, handle_to_fd, handle_to_socket): Remove macros. + (MAX_READERS, MAX_WRITERS): Increase to 64. + (notify_table): Increase to MAX_SLAFD. + (struct reader_context_s, struct writer_context_s): Add member + file_sock. + (reader, writer): Use file_hd vs file_sock to decide if socket + operations to use. Remove auto-detect mode. + (create_reader, create_writer): Set file_sock. Unblock pending + thread only if this is a pipe fd. + (_gpgme_io_pipe): Allocate fds from table and return slot indices + instead of windows handles. This allows to properly handle RVIDs. + (_gpgme_io_close): Handle dup'ed file descriptors. + (build_commandline) [HAVE_W32_SYSTEM]: Use RVID from fd table now. + (_gpgme_io_spawn): Use fd table now. + (_gpgme_io_fd2str): Use RVID from fd table now. + (_gpgme_io_dup): Implement using fd table. + (_gpgme_io_socket): Allocate fds from table. + (_gpgme_io_connect): Use fd from table. + + * w32-glib-io.c (find_channel): Check that the slot is used. + +2010-06-09 Marcus Brinkmann + + * w32-io.c [HAVE_W32CE_SYSTEM]: Include assuan.h and winioctl.h. + (GPGCEDEV_IOCTL_UNBLOCK) [HAVE_W32CE_SYSTEM]: Define. + (set_synchronize) [HAVE_W32CE_SYSTEM]: Stub it out. + (is_socket): Allow to return -1 for auto-detect (old behaviour). + (is_socket) [HAVE_W32CE_SYSTEM]: Return -1. + (reader): Handle auto-detect case. Handle ctx->stop_me before + checking for EOF. + (destroy_reader) [HAVE_W32CE_SYSTEM]: Unblock a pending reader. + (writer): Handle auto-detect case. Handle ctx->stop_me with + ERROR_BUSY. + (destroy_writer) [HAVE_W32CE_SYSTEM]: Unblock a pending writer. + (_gpgme_io_pipe) [HAVE_W32CE_SYSTEM]: Implement in terms of a + half-pipe. + (build_commandline) [HAVE_W32CE_SYSTEM]: New function. + (_gpgme_io_spawn) [HAVE_W32CE_SYSTEM]: Implement it differently + for this platform. + (_gpgme_io_fd2str) [HAVE_W32CE_SYSTEM]: Implement it for RVIDs. + (_gpgme_io_dup) [HAVE_W32CE_SYSTEM]: Stub it out. + + * gpgme-tool.c (result_add_timestamp): Add missing NULL argument. + (result_sign_to_xml): Protect against NULL fingerprint. + (struct server): New members input_fd, input_filename, + input_stream output_fd, output_filename, output_stream, + message_filename, message_stream. + (server_reset_fds): Deallocate those. + (server_parse_fd): New function. + (server_data_obj): Take optional filename argument and direction + argument. Also take new argument to return a filestream that + needs to be closed after destroying the data object. + Change all callers, too. + (input_notify, output_notify): Removed. + (cmd_input, cmd_output): New functions. + (gpgme_server): Do not register input and output notifier. + (register_commands): Use cmd_input and cmd_output. + (cmd_message): Rewritten to use server_parse_fd. + (cmd_delete, cmd_keylist): Fix inverted option check. + (main) [HAVE_W32CE_SYSTEM]: Sleep a bit to work around bug in ssh. + + * genkey.c (gpgme_op_genkey): Return err with TRACE_ERR. + +2010-05-12 Marcus Brinkmann + + * conversion.c (_gpgme_timegm) [HAVE_W32_SYSTEM]: New static + function. + (_gpgme_parse_timestamp) [HAVE_W32_SYSTEM]: Use it. + + * gpgme-tool.c (main): Protect call to setlocale with + HAVE_SETLOCALE. + + * Makefile.am (system_components): Remove custom cppflags from + RCCOMPILE (because gpg-error adds -idirafter that makes RC bail. + [HAVE_W32CE_SYSTEM]: Add w32-ce.h and w32-ce.c, clear + libexec_PROGRAMS. + * w32-ce.h, w32-ce.c: New files. + + * priv-io.h: Include + * util.h: Likewise. + +2010-05-11 Marcus Brinkmann + + * w32-util.c: Include ath.h + (HAVE_ALLOW_SET_FOREGROUND_WINDOW) [!HAVE_W32CE_SYSTEM]: Define + it. + (RTLD_LAZY, dlopen, dlsym, + dlclose) [!HAVE_ALLOW_SET_FORGROUND_WINDOW]: Don't define anymore. + (_gpgme_allow_set_foreground_window) [!HAVE_ALLOW_SET_FOREGROUND_WINDOW]: + Make it a stub. + (read_w32_registry_string): Use FooA variants of Windows functions + instead of Foo (which dispatches depending on UNICODE). + [!HAVE_W32CE_SYSTEM]: Don't check environment. + (w32_shgetfolderpath): Remove. + (find_program_at_standard_place): Call + SHGetSpecialFolderPath (which is available on all Windows systems + and also Windows CE). + (mkstemp): Use ath_self instead of getpid. + (_gpgme_mkstemp): Use GetTempPathA instead of GetTempPath. + + * gpgme.h.in: Use _WIN32 instead of _MSC_VER. Include time.h for + time_t. + +2010-05-07 Marcus Brinkmann + + * engine-g13.c, gpgme.c, engine-gpgsm.c, engine-gpg.c, + op-support.c, engine-assuan.c, gpgme-tool.c: Include + only if available with HAVE_LOCALE_H and conditionalize use of + LC_CTYPE on its definition. + * engine-gpgconf.c: Do not include . + + * engine-gpgsm.c (gpgsm_new, start): Cast between int and + assuan_fd_t. + * assuan-support.c (my_pipe, my_close, my_read, my_write): Likewise. + * gpgme-tool.c (server_data_obj, server_reset_fds, gpgme_server), + (my_recvmsg, my_sendmsg, my_spawn): Likewise. + * engine-assuan.c (start): Likewise. + * engine-g13.c (start): Likewise. + +2010-05-06 Marcus Brinkmann + + * w32-glib-io.c, w32-io.c, w32-qt-io.cpp, w32-sema.c, w32-util.c: + Do not include . + + * sign.c, data-user.c, conversion.c, debug.c, verify.c, data.c, + decrypt.c, delete.c, assuan-support.c, import.c, engine-gpgsm.c, + data-mem.c, op-support.c, w32-io.c, w32-util.c, data-compat.c: Use + gpg_error_from_syserror instead gpg_error_from_errno, and use + gpg_err_set_errno to set error number. + * setenv.c: Include and define __set_errno to use + gpg_err_set_errno. + * gpgme-tool.c (ARGP_ERR_UNKNOWN): Define to EDEADLOCK (which is + mapped in Windows CE) instead of E2BIG (which is not). + (gt_import_keys): Initialize err. + +2010-04-19 Marcus Brinkmann + + * assuan-support.c (my_spawn): Cast to avoid warning. + * engine-g13.c (g13_new): Make ARGV array of pointer to const + char. + (g13_assuan_simple_command) [!USE_DESCRIPTOR_FUNCTION]: Don't define. + * ops.h (_gpgme_key_append_name): Same in prototype. + * key.c (_gpgme_key_append_name): Make SRC argument pointer to + const char. + * posix-util.c (_gpgme_get_uiserver_socket_path): Make HOMEDIR + const. + * vfs-mount.c (gpgme_op_vfs_transact_start): Never define this + potentially useful but currently unused function. + * vfs-create.c (gpgme_op_vfs_transact_start): Likewise. + +2010-04-16 Werner Koch + + * w32-io.c (is_socket): New. + (reader, writer): Use it to figure out the API to use. + +2010-03-15 Werner Koch + + * gpgme.h.in: Add autoconf template to set generated file to + read-only in an emacs buffer. + +2010-03-12 Werner Koch + + * gpgme.h.in (GPGME_STATUS_SUCCESS): Use the right file for the + change; see below. + + * passwd.c (op_data_t): New. + (passwd_start): Setup OPD. + (passwd_status_handler): Return GPG_ERR_NOT_SUPPORTED if needed. + * context.h (OPDATA_PASSWD): New. + * gpgme.h (GPGME_STATUS_SUCCESS): New. + +2010-03-09 Werner Koch + + * engine-gpgsm.c (gpgsm_keylist): Try to start the agent. + +2010-02-17 Werner Koch + + * posix-io.c (notify_table): Change implementation. + (notify_table_item_t, notify_table_size, notify_table_lock): New. + (_gpgme_io_close, _gpgme_io_set_close_notify): Adjust for new + implementation. + +2010-02-16 Werner Koch + + * gpgme-tool.c (spacep, has_option, skip_options): New. + (cmd_export): Implement option --minimal. + + * gpgme.h.in (GPGME_EXPORT_MODE_MINIMAL): New. + * export.c (export_start, export_ext_start): Implement it. + * engine-gpg.c (export_common): Ditto. + +2010-01-25 Werner Koch + + * w32-io.c (_gpgme_io_connect): Fix return code check to make it work. + + * version.c (do_subsystem_inits): Remove superfluous second + WSAStartup. + +2010-01-22 Werner Koch + + * w32-io.c (writer): Try to use send first. + (reader): Try to use recv first. + +2010-01-08 Werner Koch + + * engine-gpg.c (gpg_passwd): New. + (_gpgme_engine_ops_gpg): Register. + * passwd.c (parse_error): New. + (passwd_status_handler): Use it. + +2010-01-07 Marcus Brinkmann + + * gpgme-tool.c (result_xml_write_cb_t, struct result_xml_state): + New types. + (MAX_TAGS): New macro. + (result_init, result_xml_indent, result_xml_tag_start) + (result_xml_tag_data, result_xml_tag_end, result_add_error) + (result_add_pubkey_algo, result_add_hash_algo, result_add_keyid) + (result_add_fpr, result_add_timestamp, result_add_sig_mode) + (result_add_value, result_add_string, result_encrypt_to_xml) + (result_decrypt_to_xml, result_sign_to_xml) + (result_verify_to_xml, result_import_to_xml) + (result_genkey_to_xml, result_keylist_to_xml) + (result_vfs_mount_to_xml): New functions. + (gt_result): Rewritten. + +2010-01-05 Werner Koch + + * gpgme-tool.c (gt_passwd, cmd_passwd): New. + (register_commands): Register. + + * gpgme.h.in (gpgme_op_passwd_start, gpgme_op_passwd): New. + * libgpgme.vers, gpgme.def: Add new functions. + * passwd.c: New. + * Makefile.am (main_sources): Add passwd.c + * engine.c, engine.h (_gpgme_engine_op_passwd): New. + * engine-backend.h (struct engine_ops): Add PASSWD. + * engine-gpgsm.c (gpgsm_passwd): New. + (_gpgme_engine_ops_gpgsm): Register. + (gpgsm_reset): Reset only if we have a conenction. + + * gpgme.h.in (GPGME_PK_ECDSA, GPGME_PK_ECDH): New. + * gpgme.c (gpgme_pubkey_algo_name): Add them. + +2009-12-22 Marcus Brinkmann + + * debug.c: Test for TLS, not __GNUC__ + +2009-12-15 Marcus Brinkmann + + * assuan-support.c (my_spawn): Calloc, not malloc, the fd_items. + +2009-12-10 Werner Koch + + * debug.c (debug_init): Test on sgid process. + +2009-12-08 Marcus Brinkmann + + * Makefile.am (LTRCCOMPILE): Refactor with ... + (RCCOMPILE): ... this new macro. + (SUFFIXES): Add .lo. + (gpgme_res_ldflag): Removed. + (gpgme_res): Use libtool object file name here. + (libgpgme_la_LDFLAGS): Remove gpgme_res_ldflag usage. + (libgpgme_la_LIBADD): Add gpgme_res. + + * ath.c (ath_self) [HAVE_W32_SYSTEM]: Fix typo. + +2009-12-02 Werner Koch + + * gpgconf.c (gpgme_conf_arg_release): No return in a function + returning void. Reported by Wyllys Ingersoll. + +2009-12-01 Werner Koch + + * gpgme-tool.c (cmd_getauditlog): Add flag --html. + (hlp_getauditlog): New. + + * gpgme-tool.c (GT_GCC_A_SENTINEL, GT_GCC_A_PRINTF): New. + (gt_write_status): Use sentinel. + (argp_error, log_error): Use printf attribute. + (argp_parse): Remove extra argument to argp_error. + (_gt_progress_cb, gt_get_engine_info, gt_get_keylist_mode) + (gt_result): Add NULL arg. + +2009-11-26 Marcus Brinkmann + + * opassuan.c (opassuan_start): Allocate result structure before + beginning operation. + +2009-11-25 Marcus Brinkmann + + * gpgme-tool.c (gpgme_server): Use assuan_fd_t and assuan_fdopen + on fds. + +2009-11-13 + + * sign.c (_gpgme_sign_status_handler): Handle SIG_CREATED_SEEN. + * engine-uiserver.c (uiserver_sign): Make sending SENDER optional. + +2009-11-10 Marcus Brinkmann + + * op-support.c (_gpgme_op_reset): Instead of last change, only set + sub protocol if it is not the default. + +2009-11-10 Werner Koch + + * op-support.c (_gpgme_op_reset): Ignore GPG_ERR_NOT_IMPLEMENTED + while setting the sub protocol. + + * engine-uiserver.c (uiserver_new): Pass fdpassing flag to + assuan_socket_connect. + (set_recipients): Replace fingerprint by user id. + + * engine-gpgsm.c (set_recipients): Fix non-terminating loop in + case of a missing key. + +2009-11-10 Marcus Brinkmann + + * gpgme.c (gpgme_new): Set default sub protocol. + * gpgme-tool.c: Implement get sub protocol. + + * gpgme.h.in (gpgme_get_sub_protocol): Add prototype. + * gpgme.def, libgpgme.vers: Add gpgme_get_sub_protocol. + * context.h (struct gpgme_context): New member sub_protocol. + * gpgme.c (gpgme_set_sub_protocol): Set CTX->sub_protocol. + (gpgme_get_sub_protocol): New function. + * op-support.c (_gpgme_op_reset): Set sub protocol. + + * Makefile.am (uiserver_components): New variable. + (main_sources): Add it. + * ops.h, key.c (_gpgme_key_append_name): Take CONVERT argument, + implement it. Adjust callers. + (gpgme_key_from_uid): New function. + * gpgme.h.in (gpgme_protocol_t): Add GPGME_PROTOCOL_DEFAULT. + (gpgme_encrypt_flags_t): Add GPGME_ENCRYPT_PREPARE, + GPGME_ENCRYPT_EXPECT_SIGN. + (gpgme_set_sub_protocol, gpgme_key_from_uid): New functions. + * libgpgme.vers, gpgme.def: Add new functions. + * gpgme.c (gpgme_set_protocol): Add UIServer protocol. + (gpgme_set_sub_protocol): New function. + (gpgme_get_protocol_name): Add UIServer and default protocol. + * assuan-support.c: Return correct error values, implement + socketpair for POSIX. + * priv-io.h, posix-io.c, w32-io.c, w32-glib-io.c, + w32-qt-io.cpp (_gpgme_io_spawn): Add ATFORK and ATFORKVALUE + arguments. Implement it for POSIX. Adjust all callers. + * engine.h, engine-backend.h (_gpgme_engine_set_protocol) + (_gpgme_engine_op_decrypt_verify): New prototypes. Adjust all + users. + * engine.c (engine_ops, gpgme_get_engine_info): Add UIServer + engine. + (_gpgme_engine_set_protocol, _gpgme_engine_op_decrypt_verify): New + function. + * decrypt-verify.c (decrypt_verify_start): Call + _gpgme_engine_op_decrypt_verify. + * util.h, posix-util.c, + w32-util.c (_gpgme_get_uiserver_socket_path): New function. + * engine-gpgsm.c (gpgsm_set_fd): Fix _gpgme_io_pipe invocation. + * gpgme-tool.c: Some support for UIServer protocol. + * engine-uiserver.c: New file. + +2009-11-09 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_new): Close server side FDs. + +2009-11-06 Marcus Brinkmann + + * gpgme-tool.c (struct gpgme_tool): New members write_data and + write_data_hook. + (gt_write_data): New function. + (gt_result): Output vfs_mount result. + (server_write_data): New function. + (gpgme_server): Initialize write_data members. + +2009-11-05 Marcus Brinkmann + + * engine-g13.c (struct engine_g13): Remove members RESULT_CB and + RESULT_CB_VALUE. + (g13_assuan_simple_command, status_handler): Don't use those anymore. + (g13_transact): Remove them from argument list, too. + * vfs-mount.c (_gpgme_vfs_mount_status_handler): New function. + (_gpgme_op_vfs_mount): Pass it to transact. + + * engine-assuan.c (llass_new): Update use of assuan_socket_connect. + * engine-gpgsm.c (gpgsm_new): Update use of assuan_pipe_connect. + * engine-g13.c (g13_new): Likewise. + + * priv-io.h (IOSPAWN_FLAG_NOCLOSE): New flag. + * w32-io.c (_gpgme_io_spawn): Implement this flag. + * posix-io.c (_gpgme_io_spawn): Likewise. + * w32-glib-io.c (_gpgme_io_spawn): Likewise. + * assuan-support.c (my_spawn): Set this flag. + + * decrypt.c (gpgme_op_decrypt_start): Fix use of debug macro. + * decrypt-verify.c (gpgme_op_decrypt_verify_start): Likewise. + * delete.c (gpgme_op_delete_start): Likewise. + * edit.c (gpgme_op_edit_start, gpgme_op_card_edit_start): + Likewise. + * encrypt.c (gpgme_op_encrypt_start): Likewise. + * encrypt-sign.c (gpgme_op_encrypt_sign_start): Likewise. + * export.c (gpgme_op_export_start, gpgme_op_export_ext_start) + (gpgme_op_export_keys_start, gpgme_op_export_keys): Likewise. + * genkey.c (gpgme_op_genkey_start): Likewise. + * getauditlog.c (gpgme_op_getauditlog_start): Likewise. + * import.c (gpgme_op_import_start, gpgme_op_import_keys_start): + Likewise. + * opassuan.c (gpgme_op_assuan_transact_start): Likewise. + * sign.c (gpgme_op_sign_start): Likewise. + * verify.c (gpgme_op_verify_start): Likewise. + * vfs-create.c (gpgme_op_vfs_create): Likewise. + * vfs-mount.c (gpgme_op_vfs_mount): Likewise. + +2009-11-04 Marcus Brinkmann + + * ath.h (ath_self): New prototype. Include + * ath.c, ath-pth.c, ath-pthread.c (ath_self): New function. + * debug.h: Rewrite most macros to beautify debug output. + (_gpgme_debug_buffer): Remove tagname and tag argument. + (_gpgme_debug_frame_begin, _gpgme_debug_frame_end): New prototypes. + * debug.c: Include . Don't include assuan.h. + (frame_nr, FRAME_NR): New thread-specific variable and macro. + (debug_init): Do not initialize assuan. Call _gpgme_debug after + initialization instead using printf directly. + (_gpgme_debug): Do not call debug_init (we now ensure proper + initialization by user). Add timestamp and thread/process ID. + (_gpgme_debug_buffer): Do not take tagname and tag argument. + (_gpgme_debug_frame_begin, _gpgme_debug_frame_end): New functions. + * version.c (gpgme_check_version_internal, gpgme_check_version): + Fix debug string. Do not initialize assuan. + * posix-io.c (get_max_fds): Use 0 not NULL (nicer debug output). + +2009-11-04 Werner Koch + + * gpgme-tool.c (register_commands): Add HELP feature. + +2009-11-03 Werner Koch + + * gpgme.h.in (GPGME_PROTOCOL_UISERVER): New. + +2009-11-03 Marcus Brinkmann + + * Makefile.am (main_sources): Change g13.c to vfs-mount.c. Add + vfs-create.c + * vfs-create.c: New file. + * g13.c: Renamed to ... + * vfs-mount.c: ... this new file. + * gpgme.h.in (gpgme_op_vfs_create): New prototype. + * gpgme.def, libgpgme.vers: Add gpgme_op_vfs_create. + * gpgme-tool.c (gt_vfs_create, cmd_vfs_create): New functions. + (register_commands): Add VFS_CREATE and CREAET. + +2009-11-02 Marcus Brinkmann + + * debug.h (_gpgme_debug_buffer): Make TAG argument const const. + * debug.c (_gpgme_debug_buffer): Likewise. + * gpgme-tool.c (input_notify, output_notify): Adjust type to new + assuan interface. + * decrypt.c (gpgme_op_decrypt_result): Remove unused variable. + * opassuan.c (gpgme_op_assuan_transact): Fix return value. + +2009-10-30 Marcus Brinkmann + + * Makefile.am (noinst_PROGRAMS): New target gpgme-tool. + (gpgme_tool_LDADD): New variable. + * gpgme-tool.c: New file. + * ops.h (_gpgme_sig_notation_clearm _gpgme_signers_clear): New + prototypes. + * gpgme.c (gpgme_set_protocol): Allow GPGME_PROTOCOL_GPGCONF (when + had that gone missing?). + (_gpgme_sig_notation_clear): New function without debug output. + (gpgme_release): Call it and _gpgme_signers_clear. + * signers.c (_gpgme_signers_clear): New function without debug output. + * g13.c (gpgme_op_vfs_mount): Add debug output. + * assuan-support.c (my_spawn): Allow fd_child_list to be NULL. + * conversion.c (_gpgme_encode_percent_string): Fix infinite loop. + * debug.h: Put tag in front of debug lines, should make for nicer + output. + * engine-assuan.c (llass_new): Use our new system hooks for libassuan. + * engine-g13.c (g13_new): Remove redundant assuan context allocation. + * version.c (gpgme_check_version_internal): Delay debug output + until after gpgme_check_version was called. + +2009-10-28 Marcus Brinkmann + + * signers.c, encrypt-sign.c, encrypt.c, delete.c, keylist.c, + edit.c, import.c, export.c: Fix last change in debug output. + +2009-10-27 Marcus Brinkmann + + * edit.c (gpgme_op_edit_start, gpgme_op_edit) + (gpgme_op_card_edit_start, gpgme_op_card_edit): Add debug output. + * encrypt-sign.c (gpgme_op_encrypt_sign_start) + (gpgme_op_encrypt_sign): Likewise. + * encrypt.c (gpgme_op_encrypt_start, gpgme_op_encrypt) + (gpgme_op_encrypt_result): Likewise. + * export.c (gpgme_op_export_start, gpgme_op_export) + (gpgme_op_export_ext_start, gpgme_op_export_ext) + (gpgme_op_export_keys_start, gpgme_op_export_keys): Likewise. + * genkey.c (gpgme_op_genkey_start, gpgme_op_genkey) + (gpgme_op_genkey_result): Likewise. + * getauditlog.c (gpgme_op_getauditlog_start) + (gpgme_op_getauditlog): Likewise. + * import.c (gpgme_op_import_result, gpgme_op_import_start) + (gpgme_op_import): Likewise. + * keylist.c (gpgme_op_keylist_result, keylist_colon_handler) + (gpgme_op_keylist_start, gpgme_op_keylist_ext_start) + (gpgme_op_keylist_next, gpgme_op_keylist_end, gpgme_get_key): Likewise. + * opassuan.c (gpgme_op_assuan_transact_start) + (gpgme_op_assuan_transact_ext, gpgme_op_assuan_result) + (gpgme_op_assuan_transact): Likewise. + * signers.c (gpgme_signers_add, gpgme_signers_clear): Likewise. + * trustlist.c (gpgme_op_trustlist_start) + (gpgme_op_trustlist_next, gpgme_op_trustlist_end): Likewise. + * verify.c (gpgme_op_verify_start, gpgme_op_verify) + (gpgme_op_verify_result): Likewise. + +2009-10-26 Marcus Brinkmann + + * gpgme.h.in (struct gpgme_io_event_done_data) + (gpgme_io_event_done_data_t): New types. + (struct _gpgme_op_assuan_result): Deprecate the err member. + (gpgme_op_assuan_result): Deprecate (for now). + (gpgme_op_assuan_transact_ext): New prototype. + (gpgme_op_assuan_transact): Deprecate. + (struct _gpgme_op_g13_result): Replace with ... + (struct _gpgme_op_vfs_mount_result): ... this. + (gpgme_op_g13_mount): Replace with ... + (gpgme_op_vfs_mount): ... this. + * gpgme.def (gpgme_op_assuan_transact_ext, gpgme_wait_ext) + (gpgme_op_vfs_mount_result, gpgme_op_vfs_mount): New. + (gpgme_op_g13_mount): Remove. + * libgpgme.vers: Likewise. + * engine-backend.h (struct engine_ops): Remove RESULT_CB and + RESULT_CB_VALUE args in opassuan_transact member. Add CANCEL_OP + member. + * ops.h (_gpgme_cancel_with_err, _gpgme_wait_on_condition): Add + OP_ERR argument. + (_gpgme_wait_one_ext): New prototype. + * context.h (ctx_op_data_id_t): Add OPDATA_VFS_MOUNT. + * engine-g13.c (g13_cancel_op): New function. + (parse_status): Remove declaration. + (g13_assuan_simple_command): Do nothing with status lines for now. + (status_handler): Update opaque value access. + (_gpgme_engine_ops_g13): Add new cancel_op member. + * gpgme.c (_gpgme_cancel_with_err): Add new parameter OP_ERR. + Handle operational errors. + (gpgme_cancel, gpgme_io_read, gpgme_io_write): Add debug output. + * data.c (_gpgme_data_inbound_handler) + (_gpgme_data_outbound_handler): Adjust opaque value access. + * engine-gpg.c (command_handler, status_handler) + (colon_line_handler): Likewise. + * engine-gpgsm.c (status_handler): Likewise. + * engine-gpg.c (_gpgme_engine_ops_gpg): Add cancel_op member. + * engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Likewise. + * g13.c: Rewritten (and will be rewritten again). + * engine.h (_gpgme_engine_op_assuan_transact): Remove result_cb + and result_cb_value parameters from prototype. + (_gpgme_engine_cancel_op): New prototype. + * engine.c (engine_ops) [! ENABLE_ASSUAN]: Add missing comma. + (_gpgme_engine_op_assuan_transact): Remove result_cb and + result_cb_value parameter. + (_gpgme_engine_cancel_op): New function. + * wait.h (_gpgme_run_io_cb): Add new argument OP_ERR. + (struct io_cb_data): New struct to pass opaque data and get a + op_err return value. Needed because we can't modify I/O callback + handler signature because it is exposed to the user. + * wait.c (_gpgme_run_io_cb): Add OP_ERR parameter. Handle + operational errors. + * wait-user.c (_gpgme_user_io_cb_handler): Handle operational + errors. + * wait-private.c (_gpgme_wait_on_condition): New argument to + retrieve the operational result. Handle operational errors in + session based protocols. + (_gpgme_wait_one_ext): New function. + (_gpgme_wait_one): Pass argument in invocation of + _gpgme_wait_on_condition. + * wait-global.c (struct ctx_list_item): Add member OP_ERR. + (ctx_done): New argument OP_ERR. + (ctx_wait): New argument OP_ERR. + (gpgme_wait_ext): New function based on gpgme_wait but handling + operational errors. + (gpgme_wait): Implement in term of gpgme_wait_ext. + * keylist.c (gpgme_op_keylist_next): Pass argument in invocation + of _gpgme_wait_on_condition. + * trustlist.c (gpgme_op_trustlist_next): Pass argument in + invocation of _gpgme_wait_on_condition. + * engine-assuan.c (struct engine_llass): Replace members RESULT_CB + and RESULT_CB_VALUE by LAST_OP_ERR. + (_gpgme_engine_assuan_last_op_err): Add this hack function. + (llass_cancel_op): New function. + (_gpgme_engine_llass_ops): Add cancel_op member. + (llass_status_handler): Update opaque value access. + (llass_transact): Remove RESULT_CB and RESULT_CB_VALUE arguments. + * opassuan.c: Move compat hacks to the end of file. + (opassuan_start): Do not set OPD->result.err. + Do not pass RESULT_Cb and CTX to _gpgme_engine_op_assuan_transact. + (gpgme_op_assuan_transact_ext): New function. + + * debug.h (DEBUG_GLOBAL): New debug level. + * conversion.c (gnupg_errors, _gpgme_map_gnupg_error): Removed. + * data-user.c (gpgme_data_new_from_cbs): Add debug output. + * data-fd.c (gpgme_data_new_from_fd): Likewise. + * data-stream.c (gpgme_data_new_from_stream): Likewise. + * decrypt.c (gpgme_op_decrypt_result, gpgme_op_decrypt_start) + (gpgme_op_decrypt): Likewise. + * delete.c (gpgme_op_delete_start, gpgme_op_delete): Likewise. + * decrypt-verify.c (gpgme_op_decrypt_verify_start) + (gpgme_op_decrypt_verify): Likewise. + * sign.c (gpgme_op_sign_result): Fix debug message. + * data-mem.c (gpgme_data_new): Improve debug output. + * verify.c (parse_trust): Use atoi instead of + _gpgme_map_gnupg_error. + * decrypt.c (_gpgme_decrypt_status_handler): Likewise. + +2009-10-22 Marcus Brinkmann + + * Makefile.am: Remove @NETLIBS@ from LIBADDs. + (g13_components): New variable. + (main_sources): Add $(g13_components). + * g13.c, engine-g13.c: New files. + * engine.c (engine_ops): Check for assuan for assuan engine, add + g13 engine. + * util.h (_gpgme_get_g13_path, _gpgme_encode_percent_string): New + prototypes. + * conversion.c (_gpgme_encode_percent_string): New function. + * gpgme.h.in (gpgme_protocol_t): Add GPGME_PROTOCOL_G13. + (struct _gpgme_op_g13_result, gpgme_g13_result_t): New types. + (gpgme_op_g13_mount): New function. + * gpgme.def, libgpgme.vers: Add gpgme_op_g13_mount. + * gpgme.c (gpgme_set_protocol): Allow GPGME_PROTOCOL_G13. + (gpgme_get_protocol_name): Add GPGME_PROTOCOL_G13. + * posix-util.c (_gpgme_get_g13_path): New function. + * w32-util.c (_gpgme_get_g13_path): New function. + * engine-backend.h (_gpgme_engine_ops_g13): New declaration. + +2009-10-20 Marcus Brinkmann + + * gpgme-config.in (netlibs): Remove. + (assuan_cflags, assuan_libs): Add. + + * Makefile.am (assuan_cppflags, assuan_libobjs): Removed. + (gpgsm_components): Move engine-assuan.c to ... + (assuan_components): ... this new variable. + (main_sources): Add this new variable. + (AM_CPPFLAGS): Remove $(assuan_cppflags). + (AM_CFLAGS): Add @LIBASSUAN_CFLAGS@. + (libgpgme_la_DEPENDENCIES, libgpgme_pth_la_DEPENDENCIES) + (libgpgme_glib_la_DEPENDENCIES, libgpgme_qt_la_DEPENDENCIES) + (libgpgme_pthread_la_DEPENDENCIES): Remove $(assuan_libobjs). + (libgpgme_la_LIBADD, libgpgme_pth_la_LIBADD) + (libgpgme_glib_la_LIBADD, libgpgme_qt_la_LIBADD)) + (libgpgme_pthread_la_LIBADD): Replace $(assuan_libobjs) by + @LIBASSUAN_LIBS@. + * priv-io.h [!HAVE_W32_SYSTEM]: Declare _gpgme_io_recvmsg, + _gpgme_io_sendmsg, _gpgme_io_waitpid. + * engine-backend.h: Define with [ENABLE_ASSUAN] instead + of [ENABLE_GPGSM]. + * posix-io.c (_gpgme_io_waitpid): Make non-static. + * util.h (ENABLE_ASSUAN): Declar _gpgme_assuan_system_hooks, + _gpgme_assuan_malloc_hooks, _gpgme_assuan_log_cb. + * engine-gpgsm.c: Don't map assuan error codes. Use + assuan_release instead of assuan_disconnect. + (map_assuan_error): Remove function. + (gpgsm_new): Use new assuan context interface. + * engine-assuan.c: Use assuan_release instead of + assuan_disconnect. + (llass_new): Use new assuan context interface. + +2009-10-07 + + * priv-io.h [W32]: Include windows.h instead of sys/socket.h. + +2009-08-06 Werner Koch + + * op-support.c (_gpgme_parse_inv_recp): Allow for no fingerprint. + + * engine-gpgsm.c (gpgsm_sign): Hook up the status func for the + SIGNER command. + * gpgme.h.in (GPGME_STATUS_INV_SGNR, GPGME_STATUS_NO_SGNR): New. + * sign.c (op_data_t): Add fields IGNORE_INV_RECP and INV_SGNR_SEEN. + (_gpgme_op_sign_init_result): Factor code out to ... + (sign_init_result): .. new. Init new fields. + (sign_start): Use sign_init_result. + (_gpgme_sign_status_handler): Take care of the new INV_SGNR. + Return an error if no signature has been created. + +2009-07-07 Werner Koch + + * engine-gpgsm.c (struct engine_gpgsm): Add fields + input_helper_data and input_helper_memory. + (close_notify_handler): Release these new fields. + (gpgsm_import): Implement the keyarray feature. + + * engine-gpg.c (gpg_import): Actually return GPG_ERR_INV_VALUE. + + * engine-gpgsm.c (gpgsm_import): Return an error for unknown data + encodings. + +2009-06-22 Marcus Brinkmann + + * debug.h: Everywhere, use %p instead of 0x%x to print pointer. + [HAVE_STDINT_H]: Include . + (_TRACE, TRACE, TRACE0, TRACE1, TRACE2, TRACE3, TRACE6): Cast tag + to (uintptr_t) before casting it to (void*) to silence GCC + warning. + + * gpgme.h.in (_GPGME_DEPRECATED_OUTSIDE_GPGME): New macro. + * sign.c (_GPGME_IN_GPGME): Define it. + * keylist.c (_GPGME_IN_GPGME): Define it. + + * debug.c (_gpgme_debug_begin, _gpgme_debug_add): Handle error in + vasprintf and asprintf. + + * priv-io.h: Include . Declare _gpgme_io_connect. + +2009-06-18 Marcus Brinkmann + + * gpgme.h.in (GPGME_CONF_PATHNAME): Revert last change, it's + back! (GPA still uses it...). + + * gpgme.def: Fix stupid typo. + * w32-io.c (_gpgme_io_pipe): Add missing declaration. + + * gpgme.h.in (GPGME_CONF_PATHNAME): Remove obsolete macro. + + * w32-io.c (_gpgme_io_pipe): Allocate reader/writer thread right + away. + (_gpgme_io_read, _gpgme_io_write, _gpgme_io_select) + (_gpgme_io_dup): Never allocate threads here. + (find_writer, find_reader): Check return value of thread creation + function. + + * context.h (CTX_OP_DATA_MAGIC): New macro. + (struct ctx_op_data): New member MAGIC. + * op-support.c (_gpgme_op_data_lookup): Initialize magic. + * gpgme.c (gpgme_result_unref, gpgme_result_ref): Check magic. + +2009-06-16 Marcus Brinkmann + + * gpgme.c (gpgme_result_unref): Hot fix to release a lock. + + * gpgme.c (result_ref_lock): New global variable. + (gpgme_result_ref, gpgme_result_unref): use it. + +2009-06-16 Werner Koch + + * version.c: Include stdlib.h. + + * gpgme.h.in (gpgme_data_encoding_t): Add GPGME_DATA_ENCODING_URL, + GPGME_DATA_ENCODING_URLESC, GPGME_DATA_ENCODING_URL0. + * data.c (gpgme_data_set_encoding): Adjust for new values. + * engine-gpg.c (string_from_data): New. + (gpg_import): Implement --fetch-key feature. + + * gpgme.h.in (gpgme_op_export_keys_start, gpgme_op_export_keys): New. + * gpgme.def, libgpgme.vers: Add them. + * export.c (gpgme_op_export_keys_start, gpgme_op_export_keys): New. + (export_keys_start): New. + + * gpgme.h.in (gpgme_export_mode_t, GPGME_EXPORT_MODE_EXTERN): New. + (gpgme_op_export_start, gpgme_op_export, gpgme_op_export_ext_start) + (gpgme_op_export_ext): Change arg RESERVED to MODE of new + compatible type. + * export.c (gpgme_export_ext_start, gpgme_op_export) + (gpgme_op_export_ext_start, gpgme_op_export_ext): Ditto. + (export_start): Ditto. + * engine.c (_gpgme_engine_op_export): Ditto. + * engine-backend.h (struct engine_ops): Ditto. + * engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Ditto. + * engine-gpg.c (gpg_export, gpg_export_ext): Ditto. Implement + mode EXTERN. + (gpg_export, gpg_export_ext): Factor common code out to .. + (export_common): .. this. + + * gpgme.h.in (gpgme_op_import_keys_start, gpgme_op_import_keys): New. + * gpgme.def, libgpgme.vers: Add them. + * import.c (gpgme_op_import_keys_start, gpgme_op_import_keys): New. + (_gpgme_op_import_keys_start): New. + * engine.c (_gpgme_engine_op_import): Add arg KEYARRAY. + * engine-backend.h (struct engine_ops): Ditto. + * engine-gpgsm.c (gpgsm_import): Ditto. Not functional. + * engine-gpg.c (gpg_import): Ditto. Implement it. + +2009-06-15 Marcus Brinkmann + + * gpgme.h.in (gpgme_result_ref, gpgme_result_unref): Add + prototypes. + * gpgme.def, libgpgme.vers (gpgme_result_ref, gpgme_result_unref): + Add these. + * context.h (struct ctx_op_data): Add member "references". + * gpgme.c (gpgme_result_ref, gpgme_result_unref): New functions. + (_gpgme_release_result): Use gpgme_result_unref. + * op-support.c (_gpgme_op_data_lookup): Initialize references. + +2009-06-12 Werner Koch + + * gpgme-w32spawn.c (translate_get_from_file): Parse optional spawn + flags. Add new arg R_FLAGS. Fix segv on file w/o LF. + (translate_handles): Add new arg R_FLAGS. Avoid possible segv. + (main): Pass flags for my_spawn. + (my_spawn): Add arg FLAGS and implement AllowSetForegroundWindow. + + * priv-io.h (IOSPAWN_FLAG_ALLOW_SET_FG): New. + * w32-io.c (_gpgme_io_spawn): Add arg FLAGS and implement it. + * w32-glib-io.c (_gpgme_io_spawn): Ditto. + * w32-qt-io.cpp (_gpgme_io_spawn): Ditto. + * posix-io.c (_gpgme_io_spawn): Add dummy arg FLAGS. + * engine-gpg.c (start): Call spawn with new flag. + + * w32-util.c (_gpgme_allow_set_foregound_window): Rename to + _gpgme_allow_set_foreground_window. Change all callers. + * posix-util.c (_gpgme_allow_set_foreground_window): Ditto. + +2009-06-10 Werner Koch + + * w32-util.c (_gpgme_allow_set_foregound_window): Add trace support. + +2009-06-09 Werner Koch + + * engine-gpg.c (gpg_io_event): Test for cmd.fd. + + * version.c (gpgme_check_version_internal): Make result const. + + * gpgme.c: Include priv-io.h. + (gpgme_io_read, gpgme_io_write): New. + * libgpgme.vers (GPGME_1.1): Add them. + * gpgme.def: Ditto. + + * Makefile.am (main_sources): Remove gpgme.h. + (include_HEADERS): Rename to nodist_include_HEADERS so that a + VPATH build won't use the distributed one. + + * util.h (GPG_ERR_NOT_OPERATIONAL): Define. + +2009-05-28 Marcus Brinkmann + + * gpgme.h.in (gpgme_check_version_internal): New prototype. + (gpgme_check_version): New macro, overriding function of the same + name. + * libgpgme.vers, gpgme.def: Add gpgme_check_version_internal.o + * context.h (_gpgme_selftest): New variable declaration. + * version.c: Include "context.h". + (gpgme_check_version): Set _gpgme_selftest on success. + (gpgme_check_version_internal): New function. + * gpgme.c (_gpgme_selftest): Define it. + (gpgme_new): Check the selftest result. + +2009-05-18 Marcus Brinkmann + + * gpgme.h.in (gpgme_encrypt_flags_t): Add + GPGME_ENCRYPT_NO_ENCRYPT_TO. + * engine-gpg.c (gpg_encrypt): Pass --no-encrypt-to to gpg if + GPGME_ENCRYPT_NO_ENCRYPT_TO flag is set. + +2009-05-14 Werner Koch + + * gpgme.h.in (gpgme_status_code_t): Explicitly initialize for + better maintainability and to help debugging. + +2009-05-05 Marcus Brinkmann + + * gpgme.h.in: Add compile time check for _FILE_OFFSET_BITS. + +2009-04-15 Marcus Brinkmann + + * posix-io.c (_gpgme_io_socket, _gpgme_io_connect): New functions. + * w32-io.c (_gpgme_io_connect): Fix stupid error. + +2009-04-08 Marcus Brinkmann + + * w32-glib-io.c (giochannel_table): New members used, fd, socket. + (find_channel): Drop CREATE argument. + (new_dummy_channel_from_fd, new_channel_from_fd) + (new_channel_from_socket): New functions. + (_gpgm_io_fd2str): Implement for sockets. + (_gpgme_io_write, _gpgme_io_read): Translate EAGAIN errors + correctly. + (_gpgme_io_pipe): Fix for new channel bookkeeping. + (_gpgme_io_close, _gpgme_io_dup): Likewise. + (wsa2errno, _gpgme_io_socket, _gpgme_io_connect): New. + * w32-io.c (MAX_READERS, MAX_WRITERS): Bump up to 40. + (wsa2errno, _gpgme_io_socket, _gpgme_io_connect): New. + * w32-qt-io.cpp (_gpgme_io_socket, _gpgme_io_connect): New stubs. + * version.c [HAVE_W32_SYSTEM]: Include "windows.h. + (do_subsystem_inits) [HAVE_W32_SYSTEM]: Call WSAStartup. + * engine-assuan.c (llass_status_handler): Ignore EAGAIN errors. + +2009-03-18 Werner Koch + + * gpgme.h.in (GPGME_KEYLIST_MODE_EPHEMERAL): New. + * engine-gpgsm.c (gpgsm_keylist): Send new option. + +2009-03-13 Werner Koch + + * gpgme-config.in: Make sure locale is set to C. + +2009-02-24 Werner Koch + + * gpgme.h.in (struct _gpgme_op_assuan_result): New. + (gpgme_assuan_result_t): New. + (gpgme_op_assuan_result): Change return type. + (struct _gpgme_assuan_sendfnc_ctx) + (gpgme_assuan_sendfnc_ctx_t, gpgme_assuan_sendfnc_t):Remove. + (gpgme_assuan_inquire_cb_t): Changed. + * opassuan.c (op_data_t): Make use of a result structure. + (gpgme_op_assuan_result): Change return type. + (opassuan_start): Use result structure. + (result_cb): Ditto. + * engine-assuan.c (struct _gpgme_assuan_sendfnc_ctx): Remove. + (inquire_cb_sendfnc): Remove. + (inquire_cb): Change for new callback scheme. Not yet finished. + (llass_status_handler): Allow sending a CANCEL from the inquire CB. + +2009-02-04 Werner Koch + + * w32-glib-io.c (_gpgme_io_spawn): Make ARGV argument const to + match prototype. + * w32-qt-io.cpp (_gpgme_io_spawn): Ditto. + +2009-02-03 Werner Koch + + * gpgme.h.in (struct _gpgme_subkey): Add fields IS_CARDKEY and + CARD_NUMBER.. + * key.c (gpgme_key_unref): Release field CARD_NUMBER. + * keylist.c (keylist_colon_handler): Factor common code out to ... + (parse_sec_field15): New. Set card number. + +2009-01-26 Werner Koch + + * opassuan.c, dirinfo.c, engine-assuan.c: New. + * Makefile.am: Add them. + * engine-backend.h: Add _gpgme_engine_ops_assuan. + (struct engine_ops): Add field OPASSUAN_TRANSACT. Update all + engine intializers. + * Makefile.am (gpgsm_components): Add engine-assuan.c. + * gpgme.h.in (gpgme_protocol_t): Add GPGME_PROTOCOL_ASSUAN. + (gpgme_assuan_data_cb_t, gpgme_assuan_sendfnc_ctx_t) + (gpgme_assuan_inquire_cb_t, gpgme_assuan_status_cb_t): New. + (gpgme_op_assuan_transact_start, gpgme_op_assuan_transact): New. + * gpgme.c (gpgme_get_protocol_name): Ditto. + (gpgme_set_protocol): Support it. + * engine.c (gpgme_get_engine_info): Ditto. + (engine_ops): Register it. + (_gpgme_engine_op_assuan_transact): New. + * libgpgme.vers (gpgme_op_assuan_transact_start) + (gpgme_op_assuan_transact): New. + * gpgme.def (gpgme_op_assuan_transact_start) + (gpgme_op_assuan_transact): New. + * engine-backend.h (struct engine_ops): Add GET_HOME_DIR and + initialize to NULL for all engines. + * engine.c (engine_get_home_dir): New. + (gpgme_get_engine_info): Use it. + (_gpgme_set_engine_info): Use it. + * engine.h (engine_assuan_result_cb_t): New. + * context.h (ctx_op_data_id_t): Add OPDATA_ASSUAN. + + * util.h (GPG_ERR_UNFINISHED): Define if not yet defined. + + * version.c (gpgme_check_version): Protect trace arg against NULL. + +2009-01-19 Werner Koch + + * rungpg.c: Rename to engine-gpg.c + * Makefile.am (main_sources): Ditto. + +2008-12-03 Marcus Brinkmann + + * Makefile.am (status-table.h): Use $(builddir) to find gpgme.h. + +2008-11-18 Werner Koch + + * version.c (do_subsystem_inits): Always initialize I/O + subsystem. Fixes regression from 2007-08-02. + + * decrypt.c (_gpgme_decrypt_status_handler): Use + _gpgme_map_gnupg_error to parse the error code for decrypt.algorithm. + +2008-10-30 Marcus Brinkmann + + * wait-private.c (_gpgme_wait_on_condition): Remove unused + variable IDX. + * wait-global.c: Include ops.h to silence gcc warning. + (_gpgme_wait_global_event_cb): Pass error value directly. + * wait-user.c: Include ops.h to silence gcc warning. + + * posix-io.c (_gpgme_io_spawn): Make ARGV argument const to + silence gcc warning. Cast argument to execv to silence warning. + * w32-io.c (_gpgme_io_spawn): Likewise. + * priv-io.h (_gpgme_io_spawn): Likewise for prototype. + +2008-10-24 Werner Koch + + * rungpg.c (gpg_keylist_preprocess): Escape backslashes too. + +2008-10-23 Marcus Brinkmann + + * rungpg.c (gpg_keylist_preprocess): Convert percent escaped + string to C coded string. + +2008-10-20 Werner Koch + + * Makefile.am (EXTRA_DIST): Add gpgme.h.in. + + * gpgme.h: Rename to gpgme.h.in. + * gpgme.h.in (GPGME_VERSION): Use autoconf substitution. + + * posix-io.c: Include sys/uio.h. Fixes bug #818. + +2008-10-18 Marcus Brinkmann + + * w32-util.c (find_program_in_registry): Don't define. + (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path) + (_gpgme_get_gpgconf_path): Do not check for fooProgram in the + registry anymore. It is now no longer possible to overwrite the + default location in that way. + +2008-10-17 Werner Koch + + * w32-glib-io.c (_gpgme_io_fd2str): Use "%d" and not "%ld" to work + around a bug in mingw32. + +2008-09-23 Marcus Brinkmann + + * gpgme.c (gpgme_sig_notation_clear): Clear CTX->sig_notations. + Submitted by "Daniel Mueller" + +2008-09-16 Marcus Brinkmann + + * rungpg.c (gpg_new): Don't use errno with ttyname_r. + +2008-08-11 Marcus Brinkmann + + * rungpg.c (gpg_cancel): Remove cmd fd before status fd. + * gpgme.c (_gpgme_cancel_with_err): New function. + (gpgme_cancel): Reimplement in terms of _gpgme_cancel_with_err. + * wait-private.c (_gpgme_wait_on_condition): Use + _gpgme_cancel_with_err. + * wait-user.c (_gpgme_user_io_cb_handler): Likewise. + * wait-global.c (_gpgme_wait_global_event_cb, gpgme_wait): Likewise. + +2008-08-08 Marcus Brinkmann + + * rungpg.c (command_handler): Remove I/O callback on error, too. + +2008-06-29 Marcus Brinkmann + + * gpgme.c (gpgme_cancel_async): Remove unused variable. + +2008-06-27 Marcus Brinkmann + + * libgpgme.vers: Add gpgme_cancel_async. + * gpgme.def: Likewise. + + * context.h: Include "sema.h". + (struct gpgme_context): New members lock and canceled. + * gpgme.c (gpgme_new): Initialize lock. + (gpgme_release): Destroy lock. + (gpgme_cancel_async): New function. + * op-support.c (_gpgme_op_reset): Reset the canceled flag. + * wait-global.c (gpgme_wait): Check cancel flag before processing + any I/O callbacks. + * wait-private.c (_gpgme_wait_on_condition): Likewise. + * wait-user.c (_gpgme_user_io_cb_handler): Likewise. + +2008-06-26 Werner Koch + + * w32-util.c (_gpgme_mkstemp): Replace sprint by stpcpy. + (mkstemp): Need to use GetSystemTimeAsFileTime for better + compatibility. + +2008-06-25 Marcus Brinkmann + + * gpgme-w32spawn.c: New file. + * Makefile.am (libexec_PROGRAMS) [HAVE_W32_SYSTEM]: New variable + with gpgme-w32spawn. + * engine-gpgsm.c (gpgsm_new): Use server translated handles. + (gpgsm_set_locale): Return early if locale value is NULL. + * util.h (_gpgme_mkstemp) + (_gpgme_get_w32spawn_path) [HAVE_W32_SYSTEM]: New function + prototypes. + * w32-util.c: Include , and . + (letters, mkstemp, _gpgme_mkstemp, _gpgme_get_w32spawn_path): New + functions. + * rungpg.c (gpg_decrypt, gpg_encrypt, gpg_encrypt_sign) + (gpg_genkey, gpg_import, gpg_verify, gpg_sign): Pass data over + special filename FD rather than stdin. + (struct arg_and_data_s): Add member ARG_LOCP. + (struct fd_data_map_s): Add member ARG_LOC. + (struct engine_gpg): Add member ARG_LOC to status and colon. + (_add_arg, add_arg_with_locp): New function. + (add_arg_ext): Reimplement in terms of _add_arg. + (gpg_new): Remember argument location for status FD. + (build_argv): Set argument location if requested. Also set + argument location of fd_data_map for data items. + (start): Adjust caller of _gpgme_io_spawn. + * priv-io.h (struct spawn_fd_item_s): Add members peer_name and + arg_loc. + (_gpgme_io_spawn): Remove parent fd list argument. + * posix-io.c (get_max_fds): New function. + (_gpgme_io_dup): Add tracing. + (_gpgme_io_spawn): Remove parent fd list. Change meaning of child + fd list to contain all child fds that should be inherited. Close + all other file descriptors after fork. + * w32-io.c, w32-glib-io.c, w32-qt-io.c(_gpgme_io_spawn): Remove + parent fd list. Change meaning of child fd list to contain all + child fds that should be inherited. Do not inherit any file + descriptors, but DuplicateHandle them. Spawn process through + wrapper process. Provide wrapper process with a temporary file + containing handle translation data. Return translated handle + names. + * w32-io.c (reader): Add more tracing output. + (_gpgme_io_read): Likewise. + * engine-gpgconf.c (gpgconf_read): Adjust caller of + _gpgme_io_spawn. + * version.c (_gpgme_get_program_version): Likewise. + +2008-06-20 Werner Koch + + * engine-gpgconf.c (gpgconf_read): Change ARGV initialization for + compatibility with old compilers. Fix amount of memmove. Fix + CR removal. + +2008-06-19 Werner Koch + + * gpgme.h (GPGME_CONF_PATHNAME): Replace by GPGME_CONF_FILENAME, + change all callers and provide compatibilty macro. + (gpgme_conf_type_t): Add complex types 34..37. + * engine-gpgconf.c (gpgconf_parse_option, arg_to_data) + (_gpgme_conf_arg_new, _gpgme_conf_arg_release): Add new types. + +2008-06-19 Marcus Brinkmann + + * engine-gpgconf.c (gpgconf_parse_option): Fix comma detection. + +2008-05-09 Werner Koch + + * engine-gpgconf.c (gpgconf_read): Do not pass empty lines to the + callback. + +2008-05-07 Werner Koch + + * engine-gpgconf.c (gpgconf_write): Change argv[0] to a + self-explaining string. Needs a proper fix, though. + + * rungpg.c (gpg_keylist, gpg_keylist_ext): Factor common code out + to .. + (gpg_build_keylist_options): .. new. Allow combination of extern + and intern mode. + (gpg_new): DFT_TTYNAME is an array, thus check the first character. + +2008-05-06 Werner Koch + + * version.c (extract_version_string): New. + (_gpgme_get_program_version): Use it to allow for suffixes in the + version line. + +2008-04-28 Werner Koch + + * engine-gpgconf.c (gpgconf_read): Fixed segv. Avoid memmove for + each line. + +2008-04-22 Marcus Brinkmann + + * w32-qt-io.cpp, kdpipeiodevice.cpp: New versions from Frank + Osterfeld, implement blocking select. + +2008-03-11 Marcus Brinkmann + + * data.c (gpgme_data_read, gpgme_data_write): Retry on EINTR. + +2008-03-06 Marcus Brinkmann + + * key.c (_gpgme_key_add_sig): Terminate UID in case SRC is NULL. + Reported by Marc Mutz. + +2008-03-05 Marcus Brinkmann + + * decrypt.c (release_op_data): Release OPD->result.recipients. + * encrypt.c (release_op_data): Release invalid_recipient. + +2008-02-15 Marcus Brinkmann + + * engine-gpgconf.c (gpgconf_read): Fix end-of-line handline. + +2008-02-14 Werner Koch + + * w32-io.c (_gpgme_io_spawn): Add arg R_PID to return the pid. + * posix-io.c (_gpgme_io_spawn): Ditto. + * w32-glib-io.c (_gpgme_io_spawn): Ditto. + * w32-qt-io.cpp (_gpgme_io_spawn): Ditto. + * priv-io.h (_gpgme_io_spawn): Adjust prototyp and change all callers. + * rungpg.c (start): Call _gpgme_allow_set_foregound_window. + + * w32-util.c (_gpgme_allow_set_foregound_window): New. + * posix-util.c (_gpgme_allow_set_foregound_window): New. + * engine-gpgsm.c (default_inq_cb): New. + (gpgsm_new) [W32]: Enable pinentry notifications. + (status_handler): Handle inquiries. + +2008-01-30 Marcus Brinkmann + + * kdpipeiodevice.cpp: New version by Frank Osterfeld, fixes race + condition. + +2008-01-28 Marcus Brinkmann + + * engine-gpgsm.c (map_input_enc): Rename to ... + (map_data_enc): ... this. Also change all callers. + (gpgsm_encrypt, gpgsm_export, gpgsm_export_ext, gpgsm_genkey) + (gpgsm_sign): Set encoding for output. + +2008-01-28 Werner Koch + + * keylist.c (gpgme_get_key): Skip duplicated keys. Fixes bug 876. + +2008-01-14 Marcus Brinkmann + + * engine-gpgconf.c (gpgconf_config_load_cb): Fix program_name + field. + +2008-01-10 Marcus Brinkmann + + * kdpipeiodevice.cpp: New version from Frank Osterfeld. + + * engine-gpgconf.c (gpgconf_config_load_cb2): Handle the flag + NO_ARG_DESC. + +2008-01-04 Marcus Brinkmann + + * Makefile.am (gpgconf_components): New variable. + (main_sources): Add gpgconf.c. + * gpgme.h (gpgme_protocol_t): New protocol GPGME_PROTOCOL_GPGCONF. + (gpgme_conf_level_t, gpgme_conf_type_t, gpgme_conf_arg_t) + (gpgme_conf_opt_t, gpgme_conf_comp_t, gpgme_conf_arg_new) + (gpgme_conf_arg_release, gpgme_conf_opt_change) + (gpgme_conf_release, gpgme_op_conf_load, gpgme_op_conf_save): New + types. + * gpgconf.c, engine-gpgconf.c: New files. + * engine.h: (_gpgme_engine_op_conf_load, + (_gpgme_engine_op_conf_save): New prototypes. + * op-support.c (_gpgme_op_reset): Ignore not implemented locale + function. + * posix-util.c (_gpgme_get_gpgconf_path): New function. + * w32-util.c (_gpgme_get_gpgconf_path): New function. + * engine-gpgsm.c: + (_gpgme_engine_ops_gpgsm): Add stubs for conf_load and conf_save. + * rungpg.c: + (_gpgme_engine_ops_gpg): Add stubs for conf_load and conf_save. + * gpgme.def: Add new gpgconf related interfaces. + * libgpgme.vers: Likewise. + * util.h (_gpgme_get_gpgconf_path): New prototype. + * gpgme.h (gpgme_protocol_t): Add GPGME_PROTOCOL_GPGCONF. + * engine-backend.h (_gpgme_engine_ops_gpgconf): New prototype. + (struct engine_ops): Add members for conf_load and conf_save. + * engine.c (engine_ops): Add _gpgme_engine_ops_gpgconf. + (_gpgme_engine_op_conf_load, + (_gpgme_engine_op_conf_save): New functions. + (gpgme_get_engine_info): Allow protocol GPGME_PROTOCOL_GPGCONF. + +2007-11-28 Marcus Brinkmann + + * w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Search + for installation directory. Remove old fallback default. + (find_program_in_inst_dir): New function. + +2007-11-26 Werner Koch + + * engine-gpgsm.c (struct engine_gpgsm): Add field INLINE_DATA and + always reset it before calling start. + (gpgsm_new): Clear it. + (status_handler): Implement it. + (gpgsm_getauditlog) [USE_DESCRIPTOR_PASSING]: Use INLINE_DATA. + +2007-11-23 Werner Koch + + * op-support.c (_gpgme_op_reset): Implement a no-reset flag. + * getauditlog.c (getauditlog_start): Use that flag. + +2007-11-20 Werner Koch + + * op-support.c (_gpgme_parse_inv_recp): Add new reason code 11. + +2007-11-22 Werner Koch + + * gpgme.h (gpgme_op_getauditlog_start, gpgme_op_getauditlog): New. + * libgpgme.vers: Ditto. + * gpgme.def: Ditto. + * getauditlog.c: New. + * engine-backend.h (struct engine_ops): Add member GETAUDITLOG. + * engine-gpgsm.c (gpgsm_getauditlog): New. + (_gpgme_engine_ops_gpgsm): Insert new function. + (gpgsm_new): Try to enable audit log support. + * rungpg.c (_gpgme_engine_ops_gpg): Insert dummy entry. + +2007-11-12 Marcus Brinkmann + + * kdpipeiodevice.cpp: New version from Frank Osterfeld. + +2007-10-11 Marcus Brinkmann + + * kdpipeiodevice.cpp: New version from Frank Osterfeld. + +2007-10-09 Marcus Brinkmann + + * kdpipeiodevice.cpp: New version from Frank Osterfeld and Marc + Mutz. + +2007-10-05 Marcus Brinkmann + + * kdpipeiodevice.cpp, w32-qt-io.cpp: New versions from Frank + Osterfeld. + +2007-10-04 Marcus Brinkmann + + * kdpipeiodevice.h, kdpipeiodevice.cpp, kdpipeiodevice.moc, + w32-qt-io.cpp: New versions from Frank Osterfeld. + +2007-10-02 Marcus Brinkmann + + * kdpipeiodevice.cpp, kdpipeiodevice.moc: New versions. + * w32-qt-io.cpp (_gpgme_io_fd2str): Print actual_fd if available. + (_gpgme_io_dup): Only acquire a reference, do not actually dup. + Submitted by Frank Osterfeld. + + * priv-io.h, engine-gpgsm.c: Add comments. + * w32-qt-io.cpp (_gpgme_io_select): Remove code handling frozen FDs. + * w32-glib-io.c (_gpgme_io_close): Always dereference the channel, + even if not primary. + (_gpgme_io_dup): Acquire a reference. Replace unused + implementation by assertion. + +2007-09-28 Werner Koch + + * engine-gpgsm.c (iocb_data_t): Add SERVER_FD_STR. + (gpgsm_new): Set it. + (gpgsm_set_fd): Use it. + + * w32-glib-io.c (find_channel): Add a new primary flag. + (_gpgme_io_close): Close channel only if primary. + (_gpgme_io_dup): Put newfd into the table as shallow copy. + + * priv-io.h (struct io_select_fd_s): Remove member FROZEN. + * w32-io.c (_gpgme_io_select): Ditto. + * w32-glib-io.c (_gpgme_io_select): Ditto. + + * posix-io.c (_gpgme_io_select): Ditto. + * rungpg.c (read_status): Ditto. + * wait.c (fd_table_put): Ditto. + + * rungpg.c (gpg_io_event): Add tracing. + (start): Use gpg_io_event for sending the start event. + * engine-gpgsm.c (gpgsm_io_event): Add tracing. + (start): Use gpgsm_io_event for sending the start event. + * wait.c (_gpgme_add_io_cb, _gpgme_run_io_cb): Add tracing. + +2007-09-28 Marcus Brinkmann + + * kdpipeiodevice.moc, w32-qt-io.cpp, kdpipeiodevice.cpp: New + versions from Frank Osterfeld. + +2007-09-27 Marcus Brinkmann + + * w32-glib-io.c (_gpgme_io_spawn), + w32-qt-io.cpp (_gpgme_io_spawn), w32-io.c (_gpgme_io_spawn): Close + the process handle, return 0. + + * gpgme.h (gpgme_protocol_t): Add GPGME_PROTOCOL_UNKNOWN. + * gpgme.c (gpgme_get_protocol_name): Implement support for + GPGME_PROTOCOL_UNKNOWN. + + * kdpipeiodevice.h: Fix last change. + + * w32-glib-io.c (_gpgme_io_pipe), w32-qt-io.c (_gpgme_io_pipe), + w32-io.c (_gpgme_io_pipe), posix-io.c (_gpgme_io_pipe): Fix debug + output. + +2007-09-25 Marcus Brinkmann + + * conversion.c, keylist.c: Include . + + * kdpipeiodevice.h: Use namespace _gpgme_. + * kdpipeiodevice.cpp: Use namespace _gpgme_. + [Q_OS_WIN32 && NOMINMAX]: Do not define NOMINMAX again. + * w32-qt-io.cpp: Change namespace of KDPipeIODevice to + _gpgme_::KDPipeIODevice. + +2007-09-17 Werner Koch + + * rungpg.c (gpg_new): Make robust against undefined ttyname or + ttytype. + +2007-09-14 Werner Koch + + * data-mem.c (gpgme_data_release_and_get_mem): Fix tracing bug. + +2007-09-14 Marcus Brinkmann + + * gpgme.c (gpgme_release): Call gpgme_sig_notation_clear. + +2007-09-13 Marcus Brinkmann + + * rungpg.c (gpg_new): Handle return value of _gpgme_getenv (fixes + small memory leak). + +2007-09-07 Marcus Brinkmann + + * Makefile.am (libgpgme_qt_la_SOURCES): Move + moc_kdpipeiodevice.cpp to EXTRA_DIST, as this is only included by + another file (it's more like a header file than a cpp file, but + automake doesn't know that). + + * w32-qt-io.cpp (_gpgme_io_spawn): Fix several cast errors and typos. + * w32-io.c (_gpgme_io_write): Use TRACE_SYSRES instead of TRACE_SYS. + (libgpgme_qt_la_LIBADD): Add QT4_CORE_LIBS, not QT4_CORE_LIB. + + * kdpipeiodevice.h, kdpipeiodevice.cpp, moc_kdpipeiodevice.cpp, + kdpipeiodevice.moc, w32-qt-io.c: New files. + * Makefile.am (ltlib_gpgme_extra): Rename to ltlib_gpgme_glib. + (ltlib_gpgme_qt): New variable. + (lib_LTLIBRARIES): Add $(ltlib_gpgme_qt). + (libgpgme_qt_la_SOURCES): New variable. + (AM_CPPFLAGS): Add @QT4_CORE_INCLUDES@ + (AM_CFLAGS): Add @QT4_CORE_CFLAGS@. + (libgpgme_qt_la_LDFLAGS, libgpgme_qt_la_DEPENDENCIES) + (libgpgme_qt_la_LIBADD): New variables. + + * sema.h (struct critsect_s): Rename "private" to "priv" to make + C++ users happy. Change users. + * posix-sema.c (_gpgme_sema_cs_enter, _gpgme_sema_cs_leave) + (_gpgme_sema_cs_destroy): Likewise. + * w32-sema.c (critsect_init, _gpgme_sema_cs_enter) + (_gpgme_sema_cs_leave, _gpgme_sema_cs_destroy): Likewise. + * w32-glib-io.c (gpgme_get_giochannel): Change return type to + void*. + (gpgme_get_fdptr): New function. + * w32-io.c (gpgme_get_fdptr): New function + * gpgme.def: Add gpgme_get_fdptr. + +2007-08-22 Marcus Brinkmann + + * w32-io.c (_gpgme_io_write): Return early if COUNT is zero. + (writer): Remove superfluous check. + +2007-08-20 Marcus Brinkmann + + * gpgme.h: Move include of gpg-error.h out of extern "C". + +2007-08-07 Werner Koch + + * gpgme.h (struct _gpgme_signature): Add member CHAIN_MODEL. + * verify.c (parse_trust): Set Chain_MODEL. + +2007-08-02 Werner Koch + + * w32-glib-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS flag. + * w32-io.c (_gpgme_io_spawn): Ditto. + (_gpgme_io_write): Map ERROR_NO_DATA to EPIPE. + * debug.c (_gpgme_debug): Enable assuan logging. + (_gpgme_debug_subsystem_init): New. + * version.c (do_subsystem_inits): Disable assuan logging and + initialize the debug system. + (gpgme_check_version): Do not trace before the subsystems are + initialized. + +2007-07-17 Marcus Brinkmann + + * debug.c: Include and "debug.h". + (_gpgme_debug): Save and restore ERRNO. + (TOHEX): New macro. + (_gpgme_debug_buffer): New function. + * conversion.c, data-compat.c, data-mem.c, data.c, engine-gpgsm.c, + gpgme.c, keylist.c, posix-io.c, rungpg.c, sign.c, version.c, + w32-io.c, wait.c: Replace DEBUG macros by TRACE_* variants. In + most of these files, add many more tracepoints. + +2007-07-16 Marcus Brinkmann + + * engine-gpgsm.c (status_handler): Do not send BYE here. + + * w32-io.c (struct reader_context_s, struct writer_context_s): New + members REFCOUNT. + (create_reader, create_writer): Initialize C->refcount to 1. + (destroy_reader, destroy_writer): Only destroy if C->refcount + drops to 0. + (find_reader, find_writer, kill_reader, kill_writer): Beautify. + * priv-io.h (_gpgme_io_dup): New prototype. + * posix-io.c (_gpgme_io_dup): New function. + * w32-io.c (_gpgme_io_dup): Likewise. + * w32-glib-io.c (_gpgme_io_dup): Likewise. + * engine-gpgsm.c (start): Reverting to version 2007-07-10. + +2007-07-13 Marcus Brinkmann + + * data-user.c (user_read, user_write, user_seek): Set errno and + return -1 instead returning the error code directly. + * data-compat.c (old_user_seek): Likewise. + * gpgme.c (gpgme_sig_notation_add): Return error properly. + + * Revert the "close_notify_handler" returns int stuff. Always + close in the _gpgme_io_close implementations. + * engine-gpgsm.c (status_handler): Try to terminate the connection + in case of error. + * w32-io.c (_gpgme_io_read): Return C->error_code in ERRNO. + (_gpgme_io_write): Likewise. + + * priv-io.h (_gpgme_io_set_close_notify): Change type of HANDLER + to _gpgme_close_notify_handler. + (_gpgme_close_notify_handler): New type. + (_gpgme_io_dup): Remove prototype. + * posix-io.c (notify_table, _gpgme_io_set_close_notify): Change + type of HANDLER to _gpgme_close_notify_handler_t. + (_gpgme_io_close): Do not close the FD if handler returns 0. + (_gpgme_io_dup): Remove function. + * w32-io.c (notify_table, _gpgme_io_set_close_notify, + _gpgme_io_close): Change type of HANDLER to + _gpgme_close_notify_handler_t. + (_gpgme_io_close): Do not close the FD if handler returns 0. + (_gpgme_io_dup): Remove function. + * w32-glib-io.c (_gpgme_io_dup): Remove function. + (_gpgme_io_set_close_notify, notify_table): Change type of HANDLER + to _gpgme_close_notify_handler_t. + (_gpgme_io_close): Do not close the FD if handler returns 0. + * rungpg.c (close_notify_handler): Change return type to int, + return 1. + * engine-gpgsm.c (close_notify_handler): Change return type to + int, return 0 for status FD and 1 for all other FDs. + (start): Do not duplicate the status FD. + +2007-07-12 Marcus Brinkmann + + * Makefile.am: Replace implicite rule by suffix rule. Add + SUFFIXES for that. + +2007-07-12 Werner Koch + + * version.c (do_subsystem_inits) [W32]: Make sure that the socket + system has been started. + +2007-07-10 Marcus Brinkmann + + * priv-io.h (_gpgme_io_dup): New prototype. + * posix-io.c (_gpgme_io_dup): New function. + * w32-io.c (_gpgme_io_dup): Likewise. + * w32-glib-io.c (_gpgme_io_dup): Likewise. + * engine-gpgsm.c (start): Use _gpgme_dup() instead of dup(). + +2007-07-08 Marcus Brinkmann + + * engine-gpgsm.c [HAVE_W32_SYSTEM]: Enable the bunch of the file. + * funopen.c (funopen): Rename to _gpgme_funopen. + +2007-04-30 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_new): Fix error handling for ttyname_r. + * rungpg.c (gpg_new): Likewise. + Submitted by Stephen Tether. + +2007-02-26 Werner Koch + + * verify.c (op_data_t): New element PLAINTEXT_SEEN. + (_gpgme_verify_status_handler): Return an error if more than one + plaintext has been seen. + (parse_error): New arg SET_STATUS. Also detect it based on an + ERROR status (gpg > 1.4.6). + +2007-01-26 Werner Koch + + * 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 + + * data.h (_gpgme_data_get_fd): Add prototype. + (gpgme_data_get_fd_cb): New type. + (struct _gpgme_data_cbs): New member get_fd. + * data.c (_gpgme_data_get_fd): New function. + * data-fd.c (fd_get_fd): New function. + (fd_cbs): Add fd_get_fd. + * data-stream.c (stream_get_fd): New function. + (stream_cbs): Add stream_get_fd. + * data-mem.c (mem_cbs): Add NULL for get_fd callback. + * data-user.c (user_cbs): Likewise. + * engine-gpgsm.c (gpgsm_set_fd) [USE_DESCRIPTOR_PASSING]: Try to + short-cut by passing the data descriptor directly. + +2007-01-17 Marcus Brinkmann + + * w32-io.c (build_commandline): Quote all command line arguments. + * w32-glib-io.c (build_commandline): Likewise. + +2007-01-10 Werner Koch + + * ttyname_r.c (ttyname_r) [W32]: Return a dummy name. + +2007-01-08 Werner Koch + + * version.c (do_subsystem_inits): Do assuan init only if building + with Assuan. + * setenv.c: Include assuan-def.h only if building with Assuan + support. + + * op-support.c (_gpgme_op_reset): Set LC_MESSAGES only if + if defined. + * engine-gpgsm.c (gpgsm_set_locale): Ditto. + * rungpg.c (gpg_set_locale): Ditto. + +2006-12-17 Marcus Brinkmann + + * gpgme.c (gpgme_set_protocol): Shut down the engine when + switching protocols. + (gpgme_ctx_set_engine_info): Likewise for engine info. + * engine.h (_gpgme_engine_reset): New function prototype. + * engine.c (_gpgme_engine_reset): New function. + * engine-backend.h (struct engine_ops): New member RESET. + * rungpg.c (_gpgme_engine_ops_gpg): Add NULL for reset function. + * engine-gpgsm.c (_gpgme_engine_ops_gpgsm) + [USE_DESCRIPTOR_PASSING]: Add gpgsm_reset for reset. + (_gpgme_engine_ops_gpgsm) [!USE_DESCRIPTOR_PASSING]: Add NULL for + reset function. + (gpgsm_reset) [USE_DESCRIPTOR_PASSING]: New function. + * op-support.c (_gpgme_op_reset): Try to use the engine's reset + function if available. + * engine-gpgsm.c (gpgsm_new): Move code to dup status_fd to ... + (start): ... here. + * posix-io.c (_gpgme_io_recvmsg, _gpgme_io_sendmsg): New functions. + + * engine.h (_gpgme_engine_new): Remove arguments lc_ctype and + lc_messages from prototype. + (_gpgme_engine_set_locale): New prototype. + * engine.c (_gpgme_engine_set_locale): New function. + * op-support.c (_gpgme_op_reset): Call _gpgme_engine_set_locale. + * engine-backend.h (struct engine_ops): Add new member SET_LOCALE. + Remove arguments lc_messages and lc_ctype from member NEW. + * engine-gpgsm.c (struct engine_gpgsm): New members lc_ctype_set + and lc_messages_set. + (gpgsm_new): Remove lc_messages and lc_ctype + arguments. + (gpgsm_set_locale): New function. + (_gpgme_engine_ops_gpgsm): Add gpgsm_set_locale. + * rungpg.c (struct engine_gpg): Add new members lc_messages and + lc_ctype. + (gpg_release): Release lc_messages and lc_ctype if set. + (gpg_new): Remove lc_messages and lc_ctype arguments. + (gpg_set_locale): New function. + (_gpgme_engine_ops_gpg): Add gpg_set_locale. + (add_arg): Implement in terms of: + (add_arg_ext): New function. + (start): Set lc-messages and lc-ctype arguments here. + +2006-12-03 Marcus Brinkmann + + * engine-gpgsm.c (struct engine_gpgsm): Move members + input_fd_server, output_fd_server, message_fd_server to ... + (iocb_data): ... here (as server_fd). + (close_notify_handler): Reset tags as well. + (gpgsm_new): Implement support for descriptor + passing. + (fd_type_t): New type. + (gpgsm_clear_fd): New function. Use it instead of _gpgsm_io_close + for unused communication channels. + (gpgsm_set_fd): Rewritten to support descriptor passing. All + relevant callers adjusted as well (previously of _gpgme_io_close). + +2006-12-02 Marcus Brinkmann + + * version.c: Include "assuan.h". + (do_subsystem_inits): Call assuan_set_assuan_err_source. + +2006-12-01 Marcus Brinkmann + + * Makefile.am (libgpgme_real_la_SOURCES): Rename to main_sources. + (libgpgme_la_SOURCES, libgpgme_pthread_la_SOURCES, + libgpgme_glib_la_SOURCES, libgpgme_pth_la_SOURCES): Add + $(main_sources). + (libgpgme_la_DEPENDENCIES, libgpgme_la_LIBADD, + libgpgme_pthread_la_DEPENDENCIES, libgpgme_pthread_la_LIBADD, + libgpgme_pth_la_DEPENDENCIES, libgpgme_pth_la_LIBADD, + libgpgme_glib_la_DEPENDENCIES, libgpgme_glib_la_LIBADD): Remove + libgpgme-real.la. + (noinst_LTLIBRARIES): Removed. + (libgpgme_glib_la_CFLAGS, libgpgme_pth_la_CFLAGS): Removed. + (AM_CFLAGS): New variable. + +2006-11-30 Marcus Brinkmann + + * engine-gpgsm.c: Replace AssuanError with gpg_error_t and + ASSUAN_CONTEXT with assuan_context_t. + +2006-11-29 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_new): Check return value of + assuan_pipe_connect. + + * rungpg.c: Include . + (gpg_new): Support --display, --ttyname, --ttytype, --lc-ctype and + --lc-messages. Fixes issue 734. + +2006-10-24 Marcus Brinkmann + + * trustlist.c (gpgme_op_trustlist_next): Return error if OPD is + NULL. + +2006-10-23 Marcus Brinkmann + + * wait-global.c (gpgme_wait): Unlock CTX_LIST_LOCK while calling + _gpgme_engine_io_event(). + + * keylist.c (gpgme_op_keylist_next): Return error if OPD is NULL. + +2006-09-25 Marcus Brinkmann + + * data-mem.c (gpgme_data_release_and_get_mem): Release the data + object properly. + +2006-09-22 Marcus Brinkmann + + * keylist.c (keylist_colon_handler): Move debug output after + initialising KEY. + +2006-07-29 Marcus Brinkmann + + * gpgme-config.in (Options): Add NETLIBS. + * Makefile.am (libgpgme_la_LIBADD, libgpgme_pthread_la_LIBADD, + libgpgme_pth_la_LIBADD, libgpgme_glib_la_LIBADD): Add NETLIBS. + + * rungpg.c (read_status): Fix comparison disguising as an + assignment. + +2005-03-24 Marcus Brinkmann + + * gpgme.c (gpgme_set_locale): Remove conditional on + HAVE_W32_SYSTEM, and just check for LC_MESSAGES. + +2006-07-16 Marcus Brinkmann + + * rungpg.c (read_status): Strip potential carriage return. + * genkey.c (get_key_parameter): Skip potential carriage return. + * version.c (_gpgme_get_program_version): Strip potential carriage + return. + + * data.c (gpgme_data_set_file_name): Allow to clear the file name + by passing NULL. + +2006-06-22 Marcus Brinkmann + + * keylist.c (gpgme_get_key): Also clone the engine info. + +2006-03-06 Marcus Brinkmann + + * gpgme-config.in (cflags_pth): Revert accidential removal of + pthread support with last change. + +2006-02-28 Marcus Brinkmann + + * w32-glib-io.c (O_BINARY) [!O_BINARY]: New macro. + (_gpgme_io_pipe): Open pipes in binary mode. + +2006-02-22 Marcus Brinkmann + + * engine.c (gpgme_engine_check_version): Reimplemented to allow + checking the version correctly even after changing the engine + information. Bug reported by Stéphane Corthésy. + + * rungpg.c (read_colon_line): Invoke colon preprocess handler if + it is set. + (colon_preprocessor_t): New type. + (struct engine_gpg): New member colon.preprocess_fnc. + (gpg_keylist_preprocess): New function. + * keylist.c (keylist_colon_handler): Allow short key IDs. + +2006-02-15 Marcus Brinkmann + + * w32-io.c (create_writer): Make C->have_data a manually resetted + event. + (writer): Move code from end of if block to beginning, so it + is also run the first time. + (_gpgme_io_write): Move assert check after error check. Reset + the is_empty event, and also do it eagerly. + (_gpgme_io_select): Unconditionally wait for the is_empty event. + +2006-01-26 Werner Koch + + * w32-util.c (_gpgme_get_conf_int): New. + * posix-util.c (_gpgme_get_conf_int): New. + * w32-io.c (get_desired_thread_priority): New. + (create_reader, create_writer): Use it here. + +2006-01-04 Werner Koch + + * debug.h (_gpgme_debug_srcname): New. Use it with the debug macros. + + * w32-glib-io.c (_gpgme_io_set_nonblocking): Add debug + statements. Disable error return for failed nonblocking call. + +2006-01-03 Marcus Brinkmann + + * w32-glib-io.c (_gpgme_io_close): Only close fd if there is no + channel for it. + +2005-12-31 Marcus Brinkmann + + * w32-glib-io.c (find_channel): Set channel to unbuffered. + (_gpgme_io_select): Fix debug output. + +2005-12-23 Werner Koch + + * gpgme.h (struct _gpgme_signature): Append field PKA_ADDRESS. + * verify.c (release_op_data, _gpgme_verify_status_handler): Set + this field. + +2005-12-20 Werner Koch + + * gpgme.h (gpgme_status_code_t): Added GPGME_STATUS_PKA_TRUST_BAD + and GPGME_STATUS_PKA_TRUST_GOOD. + (struct _gpgme_signature): New field pka_trust. + * verify.c (_gpgme_verify_status_handler): Set pka_trust. + +2005-12-06 Werner Koch + + * keylist.c (keylist_colon_handler): Store fingerprints of the + subkeys. Reset the secret flag of subkeys for stub secret keys. + (NR_FIELDS): Bumped up to 16 + +2005-11-27 Marcus Brinkmann + + * engine.c (_gpgme_set_engine_info): Use new_file_name in + engine_get_version invocation. Reported by Stéphane Corthésy. + +2005-11-24 Marcus Brinkmann + + * w32-glib-io.c (_gpgme_io_fd2str): Remove debug printf. + +2005-11-18 Werner Koch + + * w32-glib-io.c: Include glib.h before windows to avoid a symbol + shadowing warning. + (find_channel): Better use g_io_channel_win32_new_fd instead of + the autodetection function g_io_channel_unix_new. + (_gpgme_io_select): Rewritten. It is now a fully working select + implementation. + +2005-11-18 Marcus Brinkmann + + * priv-io.h (_gpgme_io_fd2str): New prototype. + * posix-io.c (_gpgme_io_fd2str): New function. + * w32-io.c (_gpgme_io_fd2str): New function. + * rungpg.c: Use this new function. + * w32-glib-io.c (_gpgme_io_fd2str): Rewrote the file handle code + again. Two's company, three's the musketeers. + + * w32-glib-io.c: Rewrote the file handle code. We don't create + system fds for every handle (doesn't work for inherited handles), + but we create pseudo fds in a private namespace that designate a + handle and potentially a giochannel. + +2005-11-18 Werner Koch + + * versioninfo.rc.in: Set file version to LT-version + Svn-revision. + +2005-11-17 Marcus Brinkmann + + * w32-glib-io.c: New file. + * gpgme.def (gpgme_get_giochannel): Add symbol. + * Makefile.am (system_components) [HAVE_DOSISH_SYSTEM]: Remove + w32-io.c. + (ltlib_gpgme_extra): New variable. + (lib_LTLIBRARIES): Add $(ltlib_gpgme_extra). + (system_components_not_extra): New variable. + (libgpgme_la_SOURCES, libgpgme_pthread_la_SOURCES, + (libgpgme_pth_la_SOURCES): Add $(system_components_not_extra). + (libgpgme_glib_la_LDFLAGS, libgpgme_glib_la_DEPENDENCIES, + (libgpgme_glib_la_LIBADD, libgpgme_glib_la_CFLAGS) + [BUILD_W32_GLIB]: New variables. + * gpgme-config.in (glib): New option. + * gpgme.m4 (AM_PATH_GPGME_GLIB): New macro. + +2005-11-17 Marcus Brinkmann + + * priv-io.h (_gpgme_io_waitpid, _gpgme_io_kill): Removed. + * w32-io.c (_gpgme_io_waitpid, _gpgme_io_kill): Removed. + * posix-io.c (_gpgme_io_kill): Removed. + (_gpgme_io_waitpid): Declare static. + +2005-10-24 Marcus Brinkmann + + * w32-io.c (_gpgme_io_spawn): Don't minimize window, hide it. + +2005-10-21 Werner Koch + + * Makefile.am: Fixed cut+paste problem + +2005-10-20 Marcus Brinkmann + + * Makefile.am: Build versioninfo.lo, not versioninfo.o. Also, fix + the whole mess. + +2005-10-16 Marcus Brinkmann + + * rungpg.c (gpg_edit): Don't add a key argument if in card edit + mode. + +2005-10-06 Marcus Brinkmann + + * Makefile.am (gpgme.dll gpgme.dll.a): Use $(srcdir) for + gpgme.def. + + * gpgme.h (gpgme_free): New prototype. + * data-mem.c (gpgme_free): New function. + * libgpgme.vers (GPGME_1.1): Add gpgme_free. + * gpgme.def: Add gpgme_free. + +2005-10-02 Marcus Brinkmann + + * util.h (_gpgme_decode_percent_string): Add new argument BINARY + to prototype. + * verify.c (parse_notation): Likewise for invocation. + * conversion.c (_gpgme_decode_percent_string): Likewise to + declaration. If set, do not replace '\0' characters with a + printable string. + * gpgme.h (struct _gpgme_key_sig): New field notations. + * ops.h (_gpgme_parse_notation): New prototype. + * sig-notation.c (_gpgme_parse_notation): New function. + * key.c (gpgme_key_unref): Free all signature notations. + * keylist.c (op_data_t): New member tmp_keysig. + (finish_key): Clear OPD->tmp_keysig. + * gpgme.c (gpgme_set_keylist_mode): Remove check. + * rungpg.c (gpg_keylist): Support listing signature notations. + (gpg_keylist_ext): Likewise. + +2005-10-01 Marcus Brinkmann + + * engine.h (_gpgme_set_engine_info): Add prototype. + * engine-backend.h (struct engine_ops): Change return type of + get_file_name() to const char * to silence gcc warning. + * engine.c (engine_get_file_name): Change return type to const + char * to silence gcc warning. + (gpgme_get_engine_info): Use transitional variable to go from + const char * to char * to silence gcc warning. + (_gpgme_set_engine_info): Likewise. + * engine-gpgsm.c (struct engine_gpgsm): Change type of LINE to + char * to silence gcc warning. + (gpgsm_new): Make ARGV a pointer to const char. + (status_handler): Change type of SRC, END, DST, ALINE and NEWLINE + to char * to silence gcc warning. + + * gpgme.def: Add gpgme_data_set_file_name, + gpgme_data_get_file_name, gpgme_sig_notation_clear, + gpgme_sig_notation_add and gpgme_sig_notation_get. + * libgpgme.vers: Add gpgme_sig_notation_clear, + gpgme_sig_notation_add and gpgme_sig_notation_get. + * Makefile.am (libgpgme_real_la_SOURCES): Add sig-notation.c. + * context.h (struct gpgme_context): New field sig_notations. + * gpgme.h (struct _gpgme_sig_notation): New member value_len and + critical. + (GPGME_SIG_NOTATION_CRITICAL): New symbol. + (gpgme_sig_notation_flags_t): New type. + (gpgme_sig_notation_add, gpgme_sig_notation_clear, + gpgme_sig_notation_get): New prototypes. + * ops.h (_gpgme_sig_notation_create, _gpgme_sig_notation_free): + New prototypes. + * sig-notation.c (_gpgme_sig_notation_free): New file. + * verify.c (parse_notation): Use support functions. + (release_op_data): Likewise. + * rungpg.c (append_args_from_sig_notations): New function. + (gpg_encrypt_sign, gpg_sign): Call it. + +2005-09-30 Marcus Brinkmann + + * data.h (struct gpgme_data): New member file_name. + * data.c (gpgme_data_set_filename): New function. + (_gpgme_data_release): Free DH->filename if necessary. + (gpgme_data_get_filename): New function. + * rungpg.c (gpg_encrypt): Set filename option. + (gpg_encrypt_sign): Likewise. + (gpg_sign): Likewise. + * libgpgme.vers (GPGME_1.1): Add gpgme_data_set_file_name and + gpgme_data_get_file_name. + + * decrpyt.c, verify.c, gpgme.h: Replace plaintext_filename with + file_name. + +2005-09-29 Marcus Brinkmann + + * gpgme.h (struct _gpgme_key): Add field is_qualified. + (struct _gpgme_subkey): Likewise. + * keylist.c (set_subkey_capability, set_mainkey_capability): Set + field is_qualified. + +2005-09-23 Werner Koch + + * w32-io.c (_gpgme_io_pipe): Removed use of environment variable + again. + (create_reader, create_writer): Set thread priority higher. + +2005-09-19 Werner Koch + + * w32-io.c (_gpgme_io_pipe): New environment variable to change + the size of the pipe buffer. + +2005-09-13 Werner Koch + + * ath.c: Changes to make it work under W32. + +2005-09-12 Marcus Brinkmann + + * Makefile.am (libgpgme_la_SOURCES): Set to ath.h and ath.c. + (ath_pth_src, ath_pthread_src): Removed. + (w32_o_files): Replace ath-compat.o with ath.o. + (libgpgme_pth_la_CFLAGS): New variable. + * ath-compat.c, ath-pthread-compat.c, ath-pth-compat.c: Removed. + * ath.h (ath_pthread_available, ath_pth_available): Removed. + (ath_init) [!_ATH_EXT_SYM_PREFIX]: Do not define macro. + (struct ath_ops, ath_init) [_ATH_COMPAT]: Removed. + (_ATH_COMPAT): Macro removed. + * posix-sema.c (_gpgme_sema_subsystem_init): Do not call + _gpgme_ath_init. + +2005-09-12 Marcus Brinkmann + + * keylist.c (release_op_data): Do not free opd->tmp_uid. + +2005-09-07 Werner Koch + + * w32-io.c (build_commandline): Quote argv[0]. + +2005-08-26 Marcus Brinkmann + + * rungpg.c (command_handler): Use _gpgme_io_write instead of write. + + * edit.c (command_handler): Do not depend on PROCESSED being + available. + + * engine.h (engine_command_handler_t): Add new argument processed. + * ops.h (_gpgme_passphrase_command_handler_internal): Rename + prototype to ... + (_gpgme_passphrase_command_handler): ... this one. + * passphrase.c (_gpgme_passphrase_command_handler_internal): + Rename to ... + (_gpgme_passphrase_command_handler): ... this one. + * edit.c (command_handler): Add new argument processed. Remove + local variable with the same name. Always return processed as + true. + * rungpg.c (command_handler): Send a newline character if the + handler did not. + +2005-08-26 Werner Koch + + * w32-util.c (read_w32_registry_string): Updated from code used by + GnuPG. This allows for expanding strings and features the + implicit fallback key. + (w32_shgetfolderpath, find_program_at_standard_place): New. + (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): With no registry + entry, locate the programs at the standard place. + (dlopen, dlsym, dlclose): New, so that we can keep on using what + we are accustomed to. + + * debug.c (debug_init): Use PATHSEP_C so that under W32 a + semicolon is used which allows us to create files with drive + letters. + + * w32-io.c (_gpgme_io_read, _gpgme_io_write): Print content in + debug mode too. + +2005-07-27 Marcus Brinkmann + + * gpgme.h (gpgme_status_code_t): Add GPGME_STATUS_PLAINTEXT. + (struct _gpgme_op_decrypt_result): New member plaintext_filename. + (struct _gpgme_op_verify_result): Likewise. + * ops.h (_gpgme_parse_plaintext): Add prototype. + * op-support.c (_gpgme_parse_plaintext): New function. + * decrypt.c (release_op_data): Release + OPD->result.plaintext_filename. + (_gpgme_decrypt_status_handler): Handle GPGME_STATUS_PLAINTEXT. + * verify.c (release_op_data): Release + OPD->result.plaintext_filename. + (_gpgme_verify_status_handler): Handle GPGME_STATUS_PLAINTEXT. + +2005-08-08 Werner Koch + + * util.h (stpcpy): Renamed to .. + (_gpgme_stpcpy): .. this and made inline. This avoids duplicate + definitions when linking statically. + * stpcpy.c: Removed. + +2005-08-19 Werner Koch + + * gpgme.def: New. + * versioninfo.rc.in: New. + * Makefile.am: Addes support for building a W32 DLL. + + * ttyname_r.c (ttyname_r) [W32]: Return error. + * ath-compat.c [W32]: select and co are not yet supported; return + error. + * data-stream.c (stream_seek): Use ftell if ftello is not available. + +2005-07-26 Marcus Brinkmann + + * keylist.c (gpgme_get_key): Allow key IDs. + +2005-06-20 Marcus Brinkmann + + * gpgme.m4: Only call GPGME_CONFIG if found. + +2005-06-03 Marcus Brinkmann + + * gpgme.h (struct _gpgme_signature): New members pubkey_algo and + hash_algo. + * verify.c (parse_valid_sig): Parse pubkey and hash algo numbers. + (parse_new_sig): Parse pubkey, hash algo and timestamp for ERRSIG. + + (_gpgme_decrypt_status_handler): Fix last change. + + * gpgme.h (struct _gpgme_recipient): New structure. + (gpgme_recipient_t): New type. + (struct _gpgme_op_decrypt_result): Add member recipients. + * decrypt.c (op_data_t): New member last_recipient_p. + (_gpgme_op_decrypt_init_result): Initialize last_recipient_p. + (parse_enc_to): New function. + (_gpgme_decrypt_status_handler): Handle status ENC_TO and + NO_SECKEY. + + * wait-global.c (gpgme_wait): Break out of the fd processing loop + after an error. + Reported by Igor Belyi . + +2005-06-02 Marcus Brinkmann + + * wait.h (_gpgme_run_io_cb): New prototype. + * wait.c (_gpgme_run_io_cb): New function. + * wait-global.c (gpgme_wait): Call it. + * wait-user.c (_gpgme_user_io_cb_handler): Likewise. + * wait-private.c (_gpgme_wait_on_condition): Likewise. + +2005-06-02 Werner Koch + + * passphrase.c (_gpgme_passphrase_status_handler): Take care of + GPGME_STATUS_NEED_PASSPHRASE_PIN. + (_gpgme_passphrase_command_handler_internal): Also act on the key + "passphrase.pin.ask". + + * gpgme.h: Added status codes GPGME_STATUS_SIG_SUBPACKET, + GPGME_STATUS_NEED_PASSPHRASE_PIN, GPGME_STATUS_SC_OP_FAILURE, + GPGME_STATUS_SC_OP_SUCCESS, GPGME_STATUS_CARDCTRL, + GPGME_STATUS_BACKUP_KEY_CREATED. + +2005-05-28 Marcus Brinkmann + + * data-user.c: Include . + +2005-05-17 Marcus Brinkmann + + * gpgme.c (gpgme_new): Set the CTX->include_certs default to the + default. + +2005-05-11 Marcus Brinkmann + + * w32-io.c (_gpgme_io_select): Fix loop increment. + +2005-05-05 Marcus Brinkmann + + * data-user.c (user_release): Only call user hook if provided. + (user_seek): Return EBADF if no user hook is provided. + (user_read): Likewise. + (user_write): Likewise. + +2005-04-28 Marcus Brinkmann + + * gpgme.h (GPGME_INCLUDE_CERTS_DEFAULT): New macro. + * engine-gpgsm.c (gpgsm_sign): Send the include-certs option after + the reset, just for cleanliness, and do not sent it at all if the + default is requested. + * gpgme.c (gpgme_set_include_certs): Allow to use + GPGME_INCLUDE_CERTS_DEFAULT. + +2005-04-21 Werner Koch + + * verify.c (calc_sig_summary): Set the key revoked bit. + +2005-04-14 Marcus Brinkmann + + * wait-global.c (gpgme_wait): Use LI->ctx when checking a context + in the list, not the user-provided CTX. + Reported by Igor Belyi . + + * wait-global.c (gpgme_wait): If no context is found, and we + should not hang, set *status to 0 and return NULL. + Reported by Igor Belyi . + +2005-03-24 Marcus Brinkmann + + * data.h (EOPNOTSUPP) [_WIN32]: Remove definition. + * data.c (EOPNOTSUPP) [HAVE_W32_SYSTEM]: Remove definition. + (gpgme_data_read, gpgme_data_write, gpgme_data_seek): Return + ENOSYS instead EOPNOTSUPP. + * data-compat.c (EOPNOTSUPP) [HAVE_W32_SYSTEM]: Remove definition. + (gpgme_error_to_errno): Map GPG_ERR_NOT_SUPPORTED + to ENOSYS. + +2005-03-24 Marcus Brinkmann + + * io.h: Rename to ... + * priv-io.h: ... this. + * Makefile.am (libgpgme_real_la_SOURCES): Change io.h to priv-io.h. + * data.c, engine-gpgsm.c, posix-io.c, rungpg.c, version.c, + w32-io.c, wait-private.c, wait-global.c, wait-user.c, wait.c: + Change all includes of "io.h" to "priv-io.h" + +2005-03-09 Werner Koch + + * w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Do not + cast away type checks. + + * io.h [W32]: Do not include stdio.h. If it is needed do it at + the right place. + + * data.h [W32]: Removed kludge for EOPNOTSUP. + * data.c, data-compat.c [W32]: Explicitly test for it here. + + Replaced use of _WIN32 by HAVE_W32_SYSTEM except for public header + files. + +2005-03-07 Timo Schulz + + * gpgme.h: [_WIN32] Removed ssize_t typedef. + * ath.h: [_WIN32] Added some (dummy) types. + * io.h: [_WIN32] include stdio.h. + * data.h: [_WIN32] Define EOPNOTSUPP. + * w32-io.c [_WIN32] (_gpgme_io_subsystem_init): New. + * gpgme.c [_WIN32] (gpgme_set_locale): Disabled. + +2004-12-12 Marcus Brinkmann + + * engine.c (_gpgme_set_engine_info): Fix assertion. + +2004-12-11 Marcus Brinkmann + + * util.h [HAVE_CONFIG_H && HAVE_TTYNAME_R] (ttyname_r): Define + prototype. + * ttyname_r.c: New file. + +2004-12-07 Marcus Brinkmann + + * putc_unlocked.c, funopen.c: I just claim copyright on these + files and change their license to LGPL, because they are totally + trivial wrapper functions. + * isascii.c: Change copyright notice to the one from ctype/ctype.h + in the GNU C Library (CVS Head 2004-10-10), where isascii is + defined as a macro doing exactly the same as the function in this + file. + * memrchr.c: Update from the GNU C Library (CVS Head 2001-07-06). + * stpcpy.c: Update from the GNU C Library (CVS Head 2004-10-10). + * ath.c, ath-compat.c, ath.h, ath-pth.c, ath-pth-compat.c, + ath-pthread.c, ath-pthread-compat.c, context.h, conversion.c, + data.c, data-compat.c, data-fd.c, data.h, data-mem.c, + data-stream.c, data-user.c, debug.c, debug.h, decrypt.c, + decrypt-verify.c, delete.c, edit.c, encrypt.c, encrypt-sign.c, + engine-backend.h, engine.c, engine-gpgsm.c, engine.h, error.c, + export.c, genkey.c, get-env.c, gpgme.c, gpgme.h, import.c, io.h, + key.c, keylist.c, mkstatus, Makefile.am, ops.h, op-support.c, + passphrase.c, posix-io.c, posix-sema.c, posix-util.c, progress.c, + rungpg.c, sema.h, sign.c, signers.c, trust-item.c, trustlist.c, + util.h, verify.c, version.c, w32-io.c, w32-sema.c, w32-util.c, + wait.c, wait-global.c, wait.h, wait-private.c, wait-user.c: Change + license to LGPL. + +2004-12-07 Marcus Brinkmann + + * libgpgme.vers (GPGME_1.1): New version. + * engine-backend.h (struct engine_ops): Add argument FILE_NAME to + member get_version(). Add arguments FILE_NAME and HOME_DIR to + member new(). Change return type of get_file_name and get_version + to char *. + * engine-gpgsm.c (gpgsm_get_version): Change return type to char + pointer. Do not cache result. + (gpgsm_new): Add file_name and home_dir argument, and use them + instead of the defaults, if set. + * rungpg.c (struct engine_gpg): New member file_name. + (gpg_get_version): Change return type to char pointer, and do not + cache result. + (gpg_release): Free gpg->file_name. + (gpg_new): Take new arguments file_name and home_dir. Set the + --homedir argument if HOME_DIR is not NULL. Set gpg->file_name. + (start): Use gpg->file_name instead _gpgme_get_gpg_path, if set. + * engine.h (_gpgme_engine_info_copy, _gpgme_engine_info_release): + New prototypes. + (_gpgme_engine_new): Change first argument to gpgme_engine_info_t + info. + * engine.c: Include . + (gpgme_get_engine_info): Set *INFO within the lock. Move + ENGINE_INFO and ENGINE_INFO_LOCK to .... + (engine_info, engine_info_lock): ... here. New static variables. + (engine_get_version): Add file_name argument to + get_version invocation. Change return type to char pointer. + (gpgme_engine_check_version): Rewritten to free() the return value + of engine_get_version after using it. + (_gpgme_engine_info_release): New function. + (gpgme_get_engine_info): Rewritten. + (_gpgme_engine_info_copy): New function. + (_gpgme_set_engine_info): New function. + (gpgme_set_engine_info): New function. + (_gpgme_engine_new): Change first argument to gpgme_engine_info_t + info, and use that. + * gpgme.h (struct _gpgme_engine_info): Change type of file_name + and version to char * (remove the const). New member home_dir. + (gpgme_set_engine_info, gpgme_ctx_get_engine_info, + gpgme_ctx_set_engine_info): New prototypes. + * context.h (struct gpgme_context): New member engine_info. + * gpgme.c (gpgme_new): Allocate CTX->engine_info. + (gpgme_release): Deallocate CTX->engine_info. + (gpgme_ctx_get_engine_info, gpgme_ctx_set_engine_info): New + functions. + * op-support.c (_gpgme_op_reset): Look for correct engine info and + pass it to _gpgme_engine_new. + * version.c (gpgme_check_version): Adjust to + _gpgme_compare_versions returning an int. + (_gpgme_compare_versions): Return an int value, not a const char + pointer. + * ops.h (_gpgme_compare_versions): Same for prototype. + +2004-10-03 Marcus Brinkmann + + * verify.c (parse_trust): If no reason is provided, set + SIG->validity_reason to 0. + (calc_sig_summary): Set GPGME_SIGSUM_CRL_TOO_OLD if appropriate. + +2004-10-22 Marcus Brinkmann + + * engine-gpgsm.c (map_assuan_error): Return 0 if ERR is 0. + (start): Call map_assuan_error on return value of + assuan_write_line. + +2004-10-05 Marcus Brinkmann + + * op-support.c (_gpgme_op_data_lookup): Use char pointer for + pointer arithmetic. + +2004-09-30 Marcus Brinkmann + + * gpgme.m4: Implement the --api-version check. + + * rungpg.c (read_status): Move the polling of the output data pipe + to just before removing the command fd, from just before adding + it. This avoids buffering problems. + + * data.c (_gpgme_data_inbound_handler): Use _gpgme_io_read, not + read, to improve debug output. + +2004-09-29 Marcus Brinkmann + + * gpgme.h (GPGME_IMPORT_NEW, GPGME_IMPORT_UID, GPGME_IMPORT_SIG, + GPGME_IMPORT_SUBKEY, GPGME_IMPORT_SECRET, + (GPGME_KEYLIST_MODE_LOCAL, GPGME_KEYLIST_MODERN_EXTERN, + GPGME_KEYLIST_MODE_SIGS, GPGME_KEYLIST_MODE_VALIDATE): Change from + enum to macros. + (gpgme_keylist_mode_t): Define as unsigned int. + (gpgme_key_t): Change type of keylist_mode to + gpgme_keylist_mode_t. + +2004-09-23 Marcus Brinkmann + + * data.c (_gpgme_data_outbound_handler): Close the file descriptor + if we get an EPIPE. + + * data-stream.c (stream_seek): Call ftello and return the current + offset. + * data.h (struct gpgme_data): Change type of data.mem.offset to + off_t. + * data.c (gpgme_data_seek): Check dh->cbs->seek callback, not read + callback. If SEEK_CUR, adjust the offset by the pending buffer + size. Clear pending buffer on success. + + +2004-09-14 Marcus Brinkmann + + * gpgme.m4: Add copyright notice. + +2004-08-18 Marcus Brinkmann + + * passphrase.c (_gpgme_passphrase_status_handler): Always run the + status handler. + +2004-08-17 Marcus Brinkmann + + * rungpg.c (build_argv): Use --no-sk-comment, not --no-comment. + +2004-06-23 Marcus Brinkmann + + * key.c (_gpgme_key_append_name): Make sure tail points to the + byte following the uid. + (_gpgme_key_add_sig): Likewise. Don't use calloc, but malloc and + memset. + +2004-06-02 Marcus Brinkmann + + * libgpgme.vers: Remove C-style comment, which is not supported by + older binutils. + +2004-05-21 Marcus Brinkmann + + * gpgme-config.in (Options): Support --api-version. + + * libgpgme.vers: List all gpgme symbols under version GPGME_1.0. + + * decrypt.c (_gpgme_decrypt_status_handler): Fix last change. + * verify.c (parse_error): Likewise. + + * verify.c (parse_error): Do not skip location of where token. + + * gpgme.h (gpgme_status_code_t): Add GPGME_STATUS_REVKEYSIG. + * verify.c (_gpgme_verify_status_handler): Add handling of + GPGME_STATUS_REVKEYSIG. + (parse_trust): Likewise. + +2004-05-21 Marcus Brinkmann + + * gpgme.h (struct _gpgme_decrypt_result): New fields + wrong_key_usage and _unused. + * decrypt.c (_gpgme_decrypt_status_handler): Don't skip over + character after a matched string, as in a protocol error this + could skip over the trailing binary zero. + Handle decrypt.keyusage error notifications. + + * gpgme.h (struct _gpgme_key): New member keylist_mode. + * keylist.c (keylist_colon_handler): Set the keylist_mode of KEY. + +2004-04-29 Marcus Brinkmann + + * gpgme.h (struct _gpgme_signature): Change member WRONG_KEY_USAGE + to unsigned int. Same for member _unused. + + * keylist.c (set_mainkey_trust_info): Rewritten. + (set_subkey_capability): Handle 'd' (disabled). + (set_mainkey_capability): Rewritten. + +2004-04-22 Marcus Brinkmann + + * gpgme.m4: Quote first argument to AC_DEFUN. + +2004-04-21 Werner Koch + + * key.c (gpgme_key_unref): Allow passing NULL like free does. + The rule of least surprise. + +2004-04-15 Werner Koch + + * verify.c (prepare_new_sig, _gpgme_verify_status_handler): Remove + unused result.signatures items. + + * keylist.c (gpgme_get_key): Return an error if FPR is NULL. + +2004-04-08 Werner Koch + + * verify.c (_gpgme_verify_status_handler): Ignore the error status + if we can't process it. + * decrypt-verify.c (decrypt_verify_status_handler): Backed out + yesterday's hack. It is not any longer required. + +2004-04-07 Werner Koch + + * decrypt-verify.c (decrypt_verify_status_handler): Hack to cope + with meaningless error codes from the verify status function. + +2004-04-05 Werner Koch + + * gpgme.h: Add GPGME_STATUS_NEWSIG. + + * verify.c (parse_error): Compare only the last part of the where + token. + (prepare_new_sig): New. + (parse_new_sig): Use prepare_new_sig when required. + (_gpgme_verify_status_handler): Handle STATUS_NEWSIG. + + * engine-gpgsm.c (gpgsm_keylist_ext): Send with-validation + option. Fixed pattern construction. + (status_handler): Add debugging output. + +2004-03-23 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_new): Protect _only_ tty related code with + isatty(). Submitted by Bernhard Herzog. + +2004-03-11 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_new): Protect all tty related code with + isatty(). + + * rungpg.c (gpg_cancel): Set GPG->fd_data_map to NULL after + releasing it. + * engine-gpgsm.c (gpgsm_cancel): Only call assuan_disconnect if + GPGSM->assuan_ctx is not NULL. Set it to NULL afterwards. + +2004-03-07 Marcus Brinkmann + + * gpgme-config.in: Do not emit include and lib directory for + prefix "/usr" or "". + +2004-03-03 Werner Koch + + * engine-gpgsm.c (gpgsm_export_ext): Properly insert a space + beween patterns. + +2004-02-18 Werner Koch + + * gpgme-config.in: Ignore setting of --prefix. + +2004-02-25 Marcus Brinkmann + + * rungpg.c (gpg_cancel): New function. + (gpg_release): Call it here. + (_gpgme_engine_ops_gpg): Add it here. + * engine-gpgsm.c (gpgsm_cancel): Fix last change. + +2004-02-24 Marcus Brinkmann + + * gpgme.c (gpgme_cancel): New function. + * engine-backend.h (struct engine_ops): New member cancel. + * engine.h (_gpgme_engine_cancel): New prototype. + * engine.c (_gpgme_engine_cancel): New function. + * engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Add new member cancel. + (gpgsm_cancel): New function. + (gpgsm_release): Use it. + * rungpg.c (_gpgme_engine_ops_gpg): Add new member cancel. + +2004-02-17 Werner Koch + + * gpgme.h: Add GPGME_KEYLIST_MODE_VALIDATE. + * engine-gpgsm.c (gpgsm_keylist): Send this to gpgsm. + +2004-02-15 Werner Koch + + * memrchr.c (memrchr): Fixed implementation. Problem pointed out + by Adriaan de Groot. + +2004-02-01 Marcus Brinkmann + + * rungpg.c (build_argv): Use --no-comment, not --comment "". + + * data-compat.c (gpgme_data_new_from_filepart): Call fseeko if + available. + * data-stream.c (stream_seek): Likewise. + +2004-01-16 Werner Koch + + * conversion.c (_gpgme_map_gnupg_error): Handle numerical codes as + used by GnuPG 1.9.x + +2004-01-13 Marcus Brinkmann + + * gpgme.h (struct _gpgme_key_sig): Fix comment on REVOKED. + +2004-01-12 Werner Koch + + * sign.c: Include util.h for prototype of _gpgme_parse_timestamp. + +2003-12-25 Marcus Brinkmann + + * gpgme.h (_GPGME_D_CLASS): Revert this change. + (struct _gpgme_key_sig): For C++ compilers, rename class + member to _obsolete_class. Add new member sig_class. + (struct _gpgme_new_signature): Same here. + * key.c (gpgme_key_sig_get_ulong_attr): Use CERTSIG->sig_class, + not CERTSIG->class. + * keylist.c (keylist_colon_handler): Likewise for KEYSIG, but keep + setting KEYSIG->class, too. Rename variable CLASS to SIG_CLASS. + * sign.c (parse_sig_created): Set SIG->sig_class. + +2003-12-22 Werner Koch + + * gpgme.h (_GPGME_D_CLASS): Kludge for C++ compatibility without + changing the C API. + +2003-11-19 Werner Koch + + * conversion.c (_gpgme_parse_timestamp): New. + (atoi_1, atoi_2, atoi_4): New. + * keylist.c (parse_timestamp): Removed. Changed all callers to use + the new function. + * verify.c (parse_valid_sig): Ditto. Repalced the errno check. + * sign.c (parse_sig_created): Ditto. + +2003-10-31 Werner Koch + + * keylist.c (parse_timestamp): Detect ISO 8601 timestamps and try + to convert them. + +2003-10-10 Marcus Brinkmann + + * genkey.c (get_key_parameter): Make a copy of the key parameters. + Submitted by Miguel Coca . + +2003-10-06 Marcus Brinkmann + + * data-compat.c: Include before for + broken systems. + + * engine-gpgsm.c (map_assuan_error): If ERR is -1, return sensible + error. + + * io.h (_gpgme_io_subsystem_init): New prototype. + * posix-io.c (_gpgme_io_subsystem_init): Add function. + (_gpgme_io_spawn): Do not fixup signal handler here. + * version.c (do_subsystem_inits): Call _gpgme_io_subsystem_init. + + * debug.c (debug_init): Drop const qualifier from E. + + * ath.h (struct ath_ops): Make ADDR argument of CONNECT prototype + const. + (ath_connect): Make ADDR argument const. + * ath-pthread.c (ath_connect): Likewise. + * ath-pth.c (ath_connect): Likewise. + * ath-compat.c (ath_connect): Likewise. + * ath.c (ath_connect): Likewise. + + * ath.h [HAVE_SYS_SELECT_H]: Include for fd_set. + [!HAVE_SYS_SELECT_H]: Include . + + * conversion.c (_gpgme_hextobyte): Drop "unsigned" from type of + SRC argument. + * util.h (_gpgme_hextobyte): Likewise for prototype. + + * gpgme.h: Remove trailing comma in enum. + + * rungpg.c: Do not include , , , + , , or "unistd.h". + +2003-10-02 Marcus Brinkmann + + * engine-backend.h (struct engine_ops): Add argument TYPE. + * engine.c (_gpgme_engine_op_edit): Likewise. + * engine.h: Likewise. + * rungpg.c (gpg_edit): Likewise. Use it. + * edit.c (edit_start): Likewise. Pass it on. + (gpgme_op_edit_start, gpgme_op_edit): Likewise. + (gpgme_op_card_edit_start, gpgme_op_card_edit): New functions. + +2003-09-30 Marcus Brinkmann + + * gpgme.h (gpg_strerror_r): Change prototype to match + gpg_strerror_r change. + * error.c (gpg_strerror_r): Likewise, also update implementation. + + * gpgme.c (gpgme_hash_algo_name): Change name of RMD160 to + RIPEMD160, name of TIGER to TIGER192, name of CRC32-RFC1510 to + CRC32RFC1510, and name of CRC24-RFC2440 to CRC24RFC2440. + +2003-09-14 Marcus Brinkmann + + * gpgme.h: Add prototype for gpgme_set_locale. + + * gpgme.h: Define macro _GPGME_INLINE depending on the compiler + characteristics and use that instead __inline__. + + * context.h (struct gpgme_context): New members lc_ctype and + lc_messages. + * gpgme.c: Include . + (def_lc_lock, def_lc_ctype, def_lc_messages): New static + variables. + (gpgme_set_locale): New function. + * engine.c (_gpgme_engine_new): Add arguments lc_ctype and + lc_messages. + * engine.h (_gpgme_engine_new): Likewise. + * engine-gpgsm.c (gpgsm_new): Likewise. + * rungpg.c (gpg_new): Likewise. + * engine-backend.h (struct engine_ops): Likewise to NEW. + * op-support.c (_gpgme_op_reset): Likewise to invocation of + _gpgme_engine_new. + +2003-09-13 Marcus Brinkmann + + * gpgme.h (gpgme_strerror_r): New prototype. + * error.c (gpgme_strerror_r): New function. + + * get-env.c: New file. + * util.h (_gpgme_getenv): Add prototype. + * Makefile.am (libgpgme_real_la_SOURCES): Add get-env.c. + * rungpg.c (build_argv): Use _gpgme_getenv. + * debug.c (debug_init): Likewise. + * engine-gpgsm.c (gpgsm_new): Likewise. + (gpgsm_new): Use ttyname_r. + * w32-io.c (_gpgme_io_spawn): Disable debugging for now. + +2003-09-03 Marcus Brinkmann + + * gpgme-config.in: Use $libdir, not @libdir@, for the echo + command. + + * gpgme-config.in: Rewritten. + * gpgme.m4: Rewritten. + +2003-08-19 Marcus Brinkmann + + The ath files (ath.h, ath.c, ath-pth.c, ath-pthread.c, + ath-compat.c, ath-pth-compat.c and ath-pthread-compat.c) have been + updated to have better thread support, and the Makefile.am was + changed to reflect that. + + * util.h [!HAVE_FOPENCOOKIE]: Remove fopencookie declaration. + * engine-gpgsm.c (gpgsm_assuan_simple_command): Set ERR to return + value of status_fnc. + * rungpg.c (start): Return SAVED_ERRNO, not errno. + +2003-08-18 Marcus Brinkmann + + * rungpg.c (start): Use saved_errno instead errno. + +2003-08-18 Marcus Brinkmann + + * funopen.c, putc_unlocked.c, isascii.c, memrchr.c: New files. + * fopencookie.c: File removed. + +2003-08-15 Marcus Brinkmann + + * gpgme-config.in: Put gpg-error related flags after gpgme's. + +2003-08-14 Marcus Brinkmann + + * gpgme.h (struct _gpgme_new_signature): Rename member CLASS to + _OBSOLETE_CLASS, add member CLASS with type unsigned int. + * sign.c (parse_sig_created): Also set SIG->_unused_class for + backward compatibility. + +2003-08-04 Marcus Brinkmann + + * verify.c (parse_new_sig): Fix status parsing case. + +2003-07-31 Marcus Brinkmann + + * gpgme.h (struct _gpgme_subkey): Add flag CAN_AUTHENTICATE. + Lower _UNUSED to 23 bits. + (struct _gpgme_key): Likewise. + * keylist.c (set_mainkey_capability): Support 'a' and 'A'. + (set_subkey_capability): Support 'a'. + + * keylist.c (gpgme_get_key): Check if there is more than one key + listed, and return GPG_ERR_AMBIGUOUS_NAME in that case. + + * util.h (_gpgme_decode_c_string): Change type of LEN argument to + size_t. + (_gpgme_decode_percent_string): Likewise. + * conversion.c (_gpgme_decode_c_string): Likewise. + (_gpgme_decode_percent_string): Likewise. + (_gpgme_map_gnupg_error): Change type of I to unsigned int. + * signers.c (gpgme_signers_clear): Likewise. + (gpgme_signers_enum): New unsigned variable SEQNO, set to SEQ. + Use SEQNO instead SEQ. + * wait.c (fd_table_put): Change type of I and J to unsigned int. + * wait-global.c (_gpgme_wait_global_event_cb): Change type of IDX + to unsigned int. + (gpgme_wait): Change type of I and IDX to unsigned int. + * wait-private.c (_gpgme_wait_on_condition): Change type of IDX + and I to unsigned int. + * posix-io.c (_gpgme_io_close): Cast return value of macro DIM to + int to suppress gcc warning. + (_gpgme_io_set_close_notify): Likewise. + (_gpgme_io_select): Change type of I to unsigned int. + * engine.c (gpgme_get_engine_info): Change type of PROTO to + unsigned int. + * wait-user.c (_gpgme_user_io_cb_handler): Change type of IDX and + I to unsigned int. + +2003-07-29 Marcus Brinkmann + + * decrypt-verify.c (decrypt_verify_status_handler): Expand silly + and wrong expression. + * encrypt-sign.c (encrypt_sign_status_handler): Likewise. + * encrypt.c (encrypt_sym_status_handler): Likewise. + * sign.c (sign_status_handler): Likewise. + * verify.c (verify_status_handler): Likewise. + * decrypt.c (decrypt_status_handler): Likewise. + + * engine.c (gpgme_get_engine_info): Initialize NULL. + +2003-07-23 Marcus Brinkmann + + * gpgme-config.in (gpg_error_libs): Quote GPG_ERROR_CFLAGS and + GPG_ERROR_LIBS when setting the corresponding variables. + Reported by Stéphane Corthésy. + +2003-07-22 Marcus Brinkmann + + * engine-gpgsm.c (set_recipients): Move declaration of NEWLEN to + the beginning of the block. + +2003-06-22 Marcus Brinkmann + + * data-mem.c (mem_write): Copy original buffer content. + +2003-06-22 Marcus Brinkmann + + * gpgme.h (gpgme_user_ids_release, gpgme_user_ids_append): Remove + prototypes. + +2003-06-06 Marcus Brinkmann + + * Makefile.am (AM_CPPFLAGS): Add @GPG_ERROR_CFLAGS@. + * gpgme-config.in (gpg_error_libs, gpg_error_cflags): New variables. + Print them. + + * op-support.c (_gpgme_parse_inv_userid): Rename to + _gpgme_parse_inv_recp and change to new datatype. + * ops.h (_gpgme_parse_inv_key): Fix prototype. + * gpgme.h (struct _gpgme_invalid_user_id): Rename to + __gpgme_invalid_key. Rename field ID to KEY. + (gpgme_invalid_user_id_t): Rename to gpgme_invalid_key_t. + (struct _gpgme_op_encrypt_result): Here, too. + (struct _gpgme_op_sign_result): Likewise. + * encrypt.c (struct op_data): Likewise. + (release_op_data): Likewise. + * sign.c (struct op_data): Likewise. + (release_op_data): Likewise. + + * posix-io.c (_gpgme_io_read): Save errno across debug calls. + (_gpgme_io_write): Likewise. + (_gpgme_io_pipe): Likewise. + (_gpgme_io_select): Likewise. + + * rungpg.c (struct engine_gpg): Remove arg_error. + (add_arg): Don't set arg_error. + (add_data): Likewise. + (start): Don't check arg_error. + (gpg_new): Check return value of add_arg. + * verify.c (parse_notation): Free allocated memory at error. + +2003-06-05 Marcus Brinkmann + + Everywhere: Use libgpg-error error codes. + + * Makefile.am (EXTRA_DIST): Remove mkerrors. + (BUILT_SOURCES): Remove errors.c. + (MOSTLYCLEANFILES): Likewise. + (libgpgme_la_SOURCES): Likewise. Add error.c. + (errors.c): Remove target. + * mkerrors: File removed. + * error.c: New file. + + * gpgme.h (gpgme_error_t): Change to type gpg_error_t. + (gpgme_err_code_t, gpgme_err_source_t): New types. + (gpgme_err_code, gpgme_err_source, gpgme_error, gpgme_err_make): + New static inline functions. + (gpgme_strsource, gpgme_err_code_from_errno, + gpgme_err_code_to_errno, gpgme_err_make_from_errno, + gpgme_error_from_errno): New prototypes. + +2003-05-29 Marcus Brinkmann + + * gpgme.h (gpgme_op_export_start): Change second arg to const char *. + (gpgme_op_export): Likewise. + (gpgme_op_export_ext_start): New prototype. + (gpgme_op_export_ext): Likewise. + * engine.h: Likewise for _gpgme_engine_op_export and + _gpgme_engine_op_export_ext. + * engine-backend.h (struct engine_ops): Change second argument of + prototype of export to const char *, and add reserverd int as + third argument. Add prototype for export_ext. + * engine.c (_gpgme_engine_op_export_ext): New function. + (_gpgme_engine_op_export): Change second argument of prototype of + export to const char *, and add reserverd int as third argument. + * rungpg.c (gpg_export): Change second argument of prototype of + export to const char *, and add reserverd int as third argument. + (gpg_export_ext): New function. + (gpg_keylist_ext): Break loop at error. + (_gpgme_engine_ops_gpg): Add gpg_export_ext. + * engine-gpgsm.c (gpgsm_export): Change second argument of + prototype of export to const char *, and add reserverd int as + third argument. + (gpgsm_export_ext): New function. + (_gpgme_engine_ops_gpgsm): Add gpgsm_export_ext. + * export.c (export_start): Change second argument of prototype of + export to const char *, and add reserverd int as third argument. + (gpgme_op_export_start): Likewise. + (export_ext_start): New function. + (gpgme_op_export_ext_start): Likewise. + (gpgme_op_export_ext): Likewise. + + * gpgme.h (gpgme_keylist_mode_t): New type for anonymous enum. + (gpgme_sigsum_t): New type for anonymous enum. + + * encrypt-sign.c (encrypt_sign_start): Check for errors earlier, + and return an error if RECP is not set. + + * Makefile.am (libgpgme_la_SOURCES): Remove user-id.c. + * user-id.c: Remove file. + * ops.h: Remove prototype for _gpgme_user_ids_all_valid. + * gpgme.h (gpgme_encrypt_flags_t): New type. + (gpgme_op_encrypt_start): Change second parameter to type + gpgme_key_t[], and add third parameter. + (gpgme_op_encrypt): Likewise. + (gpgme_op_encrypt_sign_start): Likewise. + (gpgme_op_encrypt_sign): Likewise. + * encrypt.c (encrypt_start): Likewise. + (gpgme_op_encrypt_start): Likewise. + (gpgme_op_encrypt): Likewise. Pass flags to engine. + * encrypt-sign.c (encrypt_sign_start): Likewise. + (gpgme_op_encrypt_sign_start): Likewise. + (gpgme_op_encrypt_sign): Likewise. + * engine-backend.h (struct engine_ops): Likewise for prototypes of + encrypt and encrypt_sign. + * engine.h: Likewise for prototypes of _gpgme_engine_op_encrypt + and _gpgme_engine_op_encrypt_sign. + * engine.c (_gpgme_engine_op_encrypt): Likewise. + (_gpgme_engine_op_encrypt_sign): Likewise. + * rungpg.c (gpg_encrypt): Likewise. + (gpg_encrypt_sign): Likewise. + * rungpg.c (gpg_encrypt): Check flags for always trust option. + * engine-gpgsm.c (gpgsm_encrypt): Likewise. + (set_recipients): Rewritten to use keys instead user IDs. + * rungpg.c (append_args_from_recipients): Rewritten to use keys + instead user IDs. + * encrypt.c (_gpgme_encrypt_status_handler): Change errors + returned to GPGME_Invalid_Key and GPGME_General_Error. + +2003-05-28 Marcus Brinkmann + + * engine-gpgsm.c: Rename GpgsmObject to engine_gpgsm_t. + (struct gpgsm_object_s): Rename to struct engine_gpgsm. + * rungpg.c: Rename GpgObject to engine_gpg_t. + (struct gpg_object_s): Rename to struct engine_gpg. + + * context.h (struct gpgme_context): Change EngineObject to + engine_object_t. + (enum ctx_op_data_type): Rename to ctx_op_data_id_t. + (ctx_op_data_t): New type. + (struct gpgme_context): Use it. + * ops.h (_gpgme_op_data_lookup): Use new type name. + * op-support.c (_gpgme_op_data_lookup): Likewise. + * engine.c: Rename EngineObject to engine_t in the file. Also + EngineStatusHandler to engine_status_handler_t, + EngineCommandHandler to engine_command_handler_t and + EngineColonLineHandler to engine_colon_line_handler. + * rungpg.c (start): Likewise. + * engine-gpgsm.c: Likewise. + * engine-backend.h (struct engine_ops): Likewise + * engine.h (struct engine_object_s): Rename to struct engine. + (EngineObject): Rename to engine_t. Also everywhere else in the + file. + (EngineStatusHandler): Rename to engine_status_handler_t. + (EngineColonLineHandler): Rename to engine_colon_line_handler_t. + (EngineCommandHandler): Rename to engine_command_handler_t. + + * engine-gpgsm.c (gpgsm_export): Fix bug in last change. + + * Makefile.am (libgpgme_la_SOURCES): Remove recipient.c, add + user-id.c. + * gpgme.h (gpgme_recipients_t): Removed. + (gpgme_recipients_new, gpgme_recipients_release, + gpgme_recipients_add_name, + gpgme_recipients_add_name_with_validity, gpgme_recipients_count, + gpgme_recipients_enum_open, gpgme_recipients_enum_read, + gpgme_recipients_enum_close): Removed. + (gpgme_op_encrypt, gpgme_op_encrypt_start, gpgme_op_encrypt_sign, + gpgme_op_encrypt_sign_start, gpgme_op_export_start, + gpgme_op_export): Change second argument to gpgme_user_id_t. + (gpgme_user_ids_release): New prototype. + (gpgme_user_ids_append): Likewise. + * ops.h (_gpgme_recipients_all_valid): Remove. + (_gpgme_user_ids_all_valid): Add. + * context.h (struct gpgme_recipients): Removed. + * user-id.c: New file. + * recipient.c: Removed file. + * rungpg.c (append_args_from_recipients): Change last arg to + gpgme_user_id_t. Reimplement. + (gpg_encrypt): Change second arg to gpgme_user_id_t. + (gpg_encrypt_sign): Likewise. + (gpg_export): Likewise. Rewrite user ID list code. + * engine.c (_gpgme_engine_op_encrypt): Change second arg to + gpgme_user_id_t. + (_gpgme_engine_op_encrypt_sign): Likewise. + (_gpgme_engine_op_export): Likewise. + * engine.h (_gpgme_engine_op_encrypt, _gpgme_engine_op_encrypt_sign, + _gpgme_engine_op_export): Likewise. + * engine-gpgsm.c (set_recipients): Likewise. Rewrite loop code. + (gpgsm_encrypt): Likewise. + (gpgsm_export): Likewise. + * engine-backend.h (struct engine_ops): Likewise for members + ENCRYPT, ENCRYPT_SIGN and EXPORT. + * export.c (export_start, gpgme_op_export_start, gpgme_op_export): + Likewise. + * encrypt.c (encrypt_start): Likewise. Don't check for count of + recipients. + (gpgme_op_encrypt_start): Likewise. + (gpgme_op_encrypt): Likewise. + * encrypt-sign.c (encrypt_sign_start): Likewise. + (gpgme_op_encrypt_sign): Likewise. + (gpgme_op_encrypt_sign_start): Likewise. + +2003-05-27 Marcus Brinkmann + + * gpgme.h (struct _gpgme_op_import_result): Add skipped_new_keys. + * import.c (parse_import_res): Add skipped_new_keys parser. + + * op-support.c (_gpgme_parse_inv_userid): Add missing break + statements. + * encrypt.c (gpgme_op_encrypt): Use gpgme_error_t instead of int. + +2003-05-27 Marcus Brinkmann + + * encrypt.c (gpgme_op_encrypt_result): Use intermediate variable + HOOK to avoid compiler warning. Don't ask, you don't want to know. + (_gpgme_encrypt_status_handler): Likewise. + (_gpgme_op_encrypt_init_result): Likewise. + * decrypt.c (gpgme_op_decrypt_result): Likewise. + (_gpgme_decrypt_status_handler): Likewise. + (_gpgme_op_decrypt_init_result): Likewise. + * verify.c (gpgme_op_verify_result): Likewise. + (_gpgme_verify_status_handler): Likewise. + (_gpgme_op_verify_init_result): Likewise. + * edit.c (edit_status_handler): Likewise. + (command_handler): Likewise. + (edit_start): Likewise. + * genkey.c (gpgme_op_genkey_result): Likewise. + (genkey_status_handler): Likewise. + (genkey_start): Likewise. + * import.c (gpgme_op_import_result): Likewise. + (import_status_handler): Likewise. + (_gpgme_op_import_start): Likewise. + * trustlist.c (gpgme_op_trustlist_next): Likewise. + (_gpgme_op_trustlist_event_cb): Likewise. + (gpgme_op_trustlist_start): Likewise. + * keylist.c (gpgme_op_keylist_result): Likewise. + (keylist_colon_handler): Likewise. + (keylist_status_handler): Likewise. + (_gpgme_op_keylist_event_cb): Likewise. + (gpgme_op_keylist_start): Likewise. + (gpgme_op_keylist_ext_start): Likewise. + (gpgme_op_keylist_next): Likewise. + * passphrase.c (_gpgme_passphrase_status_handler): Likewise. + (_gpgme_passphrase_command_handler_internal): Likewise. + * sign.c (gpgme_op_sign_result): Likewise. + (_gpgme_sign_status_handler): Likewise. + (_gpgme_op_sign_init_result): Likewise. + + * passphrase.c (_gpgme_passphrase_command_handler_internal): Fix + access to pointer type. + +2003-05-26 Marcus Brinkmann + + * engine.h (EngineCommandHandler): Change last argument to int fd. + * gpgme.h (gpgme_passphrase_cb_t): Rewritten to take parts of the + description and fd. + (gpgme_edit_cb_t): Change last argument to int fd. + * ops.h (_gpgme_passphrase_command_handler_internal): New prototype. + * passphrase.c: Include . + (op_data_t): Rename userid_hint to uid_hint, remove last_pw_handle. + (release_op_data): Check values before calling free. + (_gpgme_passphrase_status_handler): Likewise. + (_gpgme_passphrase_command_handler_internal): New function. + (_gpgme_passphrase_command_handler): Rewritten. + * edit.c (edit_status_handler): Pass -1 as fd argument. + (command_handler): Update prototype. New variable processed. Use + it to store return value of + _gpgme_passphrase_command_handler_internal which is now used + instead _gpgme_passphrase_command_handler. Use it also to check + if we should call the user's edit function. Pass fd to user's + edit function. + * rungpg.c (struct gpg_object_s): Change type of cmd.cb_data to + void *. + (gpg_release): Check value before calling free. Do not release + cmd.cb_data. + (command_cb): Function removed. + (command_handler): New function. Thus we don't use a data object + for command handler stuff anymore, but handle it directly. This + allows proper error reporting (cancel of passphrase requests, for + example). Also all callbacks work via direct writes to the file + descriptor (so that passphrases are not kept in insecure memory). + (gpg_set_command_handler): Rewritten to use even more ugly hacks. + (read_status): Check cmd.keyword before calling free. Install + command_handler as the I/O callback handler with GPG as private + data. + + * rungpg.c (gpg_new): Add --enable-progress-filter to gpg + invocation. + * decrypt-verify.c (_gpgme_op_decrypt_verify_start): Rename to + decrypt_verify_start. + (gpgme_op_decrypt_verify_start): Call decrypt_verify_start. + (gpgme_op_decrypt_verify): Likewise. + * verify.c (verify_status_handler): New function that also calls + progress status handler. + (_gpgme_op_verify_start): Set status handler to verify_status_handler. + Rename to (verify_start). + (gpgme_op_verify_start): Call verify_start. + (gpgme_op_verify): Likewise. + * encrypt.c (encrypt_status_handler): New function. + (_gpgme_encrypt_sym_status_handler): Call progress status handler. + Make static. Rename to encrypt_sym_status_handler. + (encrypt_start): Set status handler to encrypt_sym_status_handler + or encrypt_status_handler. + * sign.c (sign_status_handler): New function. + (sign_start): Set status handler to sign_status_handler. + * decrypt.c (decrypt_status_handler): New function that also calls + progress status handler. + (decrypt_start): Set status handler to decrypt_status_handler. + * encrypt-sign.c (encrypt_sign_status_handler): Likewise. + * decrypt-verify.c (decrypt_verify_status_handler): Call + _gpgme_progress_status_handler. + + * conversion.c (_gpgme_decode_c_string): Add missing break + statement. + + * recipient.c (gpgme_recipients_add_name_with_validity): Add one + to buffer to allocate. + +2003-05-19 Marcus Brinkmann + + * verify.c (parse_new_sig): Fix ERRSIG case. + Submitted by Benjamin Lee . + +2003-05-18 Marcus Brinkmann + + * gpgme.h: The following types are renamed. The old name is kept + as a deprecated typedef. + (GpgmeCtx): Rename to gpgme_ctx_t. + (GpgmeData): Rename to gpgme_data_t. + (GpgmeRecipients): Rename to gpgme_recipients_t. + (GpgmeError): Rename to gpgme_error_t. + (GpgmeDataEncoding): Rename to gpgme_data_encoding_t. + (GpgmePubKeyAlgo): Rename to gpgme_pubkey_algo_t. + (GpgmeHashAlgo): Rename to gpgme_hash_algo_t. + (GpgmeSigStat): Rename to gpgme_sig_stat_t. + (GpgmeSigMode): Rename to gpgme_sig_mode_t. + (GpgmeAttr): Rename to gpgme_attr_t. + (GpgmeValidity): Rename to gpgme_validity_t. + (GpgmeProtocol): Rename to gpgme_protocol_t. + (GpgmeStatusCode): Rename to gpgme_status_code_t. + (GpgmeEngineInfo): Rename to gpgme_engine_info_t. + (GpgmeSubkey): Rename to gpgme_subkey_t. + (GpgmeKeySig): Rename to gpgme_keysig_t. + (GpgmeUserID): Rename to gpgme_user_id_t. + (GpgmePassphraseCb): Rename to gpgme_passphrase_cb_t. + (GpgmeProgressCb): Rename to gpgme_progress_cb_t. + (GpgmeEditCb): Rename to gpgme_edit_cb_t. + (GpgmeIOCb): Rename to gpgme_io_cb_t. + (GpgmeRegisterIOCb): Rename to gpgme_register_io_cb_t. + (GpgmeRemoveIOCb): Rename to gpgme_remove_io_cb_t. + (GpgmeEventIO): Rename to gpgme_event_io_t. + (GpgmeEventIOCb): Rename to gpgme_event_io_cb_t. + (GpgmeIOCbs): Rename to gpgme_io_cbs. + (gpgme_io_cbs_t): New type. + (GpgmeDataReadCb): Rename to gpgme_data_read_cb_t. + (GpgmeDataWriteCb): Rename to gpgme_data_write_cb_t. + (GpgmeDataSeekCb): Rename to gpgme_data_seek_cb_t. + (GpgmeDataReleaseCb): Rename to gpgme_data_release_cb_t. + (GpgmeDataCbs): Rename to gpgme_data_cbs. + (gpgme_data_cbs_t): New type. + (GpgmeInvalidUserID): Rename to gpgme_invalid_user_id_t. + (GpgmeEncryptResult): Rename to gpgme_encrypt_result_t. + (GpgmeDecryptResult): Rename to gpgme_decrypt_result_t. + (GpgmeNewSignature): Rename to gpgme_new_signature_t. + (GpgmeSignResult): Rename to gpgme_sign_result_t. + (GpgmeSigNotation): Rename to gpgme_sig_notation_t. + (GpgmeSignature): Rename to gpgme_signature_t. + (GpgmeVerifyResult): Rename to gpgme_verify_result_t. + (GpgmeImportStatus): Rename to gpgme_import_status_t. + (GpgmeImportResult): Rename to gpgme_import_result_t. + (GpgmeGenKeyResult): Rename to gpgme_genkey_result_t. + (GpgmeKeyListResult): Rename to gpgme_keylist_result_t. + (GpgmeTrustItem): Rename to gpgme_trust_item_t. + * gpgme.h (gpgme_deprecated_error_t): New type, swallowing macros + GPGME_No_Recipients, GPGME_Invalid_Recipient and + GPGME_No_Passphrase. + * data.h (struct gpgme_data_s): Rename to struct gpgme_data. + * context.h (struct gpgme_context_s): Rename to struct + gpgme_context. + (struct gpgme_recipients_s): Rename to gpgme_recipients. + +2003-05-18 Marcus Brinkmann + + * keylist.c (finish_key): Clear OPD->tmp_uid. + +2003-05-18 Marcus Brinkmann + + * verify.c (_gpgme_verify_status_handler): Return GPGME_No_Data + for NODATA status without signatures. + +2003-05-05 Marcus Brinkmann + + * key.c (_gpgme_key_append_name): Use decoded string to parse user id. + (_gpgme_key_add_sig): Likewise. + +2003-05-04 Marcus Brinkmann + + * context.h (struct gpgme_context_s): Remove member op_info. + + * key.c (_gpgme_key_add_sig): Initialize SIG->uid. + + * gpgme.h (GpgmeError): Add deprecated values for + GPGME_Invalid_Type and GPGME_Invalid_Mode. + +2003-04-30 Marcus Brinkmann + + * gpgme.h (gpgme_get_op_info): Remove prototype. + * ops.h (_gpgme_set_op_info, + _gpgme_data_release_and_return_string, _gpgme_data_get_as_string, + _gpgme_data_append, _gpgme_data_append_string, + _gpgme_data_append_string_for_xml, _gpgme_data_append_for_xml, + _gpgme_data_append_percentstring_for_xml): Likewise. + (_gpgme_progress_status_handler): Change first arg to void *. + * progress.c (_gpgme_progress_status_handler): Likewise. + * conversion.c: Do not include , , , + and , but . + (_gpgme_data_append): Remove function. + (_gpgme_data_append_string): Likewise. + (_gpgme_data_append_for_xml): Likewise. + (_gpgme_data_append_string_for_xml): Likewise. + (_gpgme_data_append_percentstring_for_xml): Likewise. + * data-mem.c (_gpgme_data_get_as_string): Likewise. + (_gpgme_data_release_and_return_string): Likewise. + * gpgme.c (gpgme_get_op_info): Likewise. + (_gpgme_set_op_info): Likewise. + + * gpgme.h (struct _gpgme_key): New structure. + (GpgmeKey): Define using _gpgme_key. + (struct _gpgme_subkey): New structure. + (GpgmeSubKey): New type. + (struct _gpgme_key_sig): New structure. + (GpgmeKeySig): New type. + (struct _gpgme_user_id): New structure. + (GpgmeUserID): New type. + (struct _gpgme_op_keylist_result): New structure. + (GpgmeKeyListResult): New type. + (gpgme_op_keylist_result): New function. + (gpgme_key_get_as_xml): Remove prototype. + * context.h (struct gpgme_context_s): Remove members tmp_key, + tmp_uid, key_cond and key_queue. + (struct key_queue_item_s): Remove structure. + (struct user_id_s): Remove structure. + (struct gpgme_recipients_s): Replace with simple + GpgmeUserID list. + * gpgme.c (gpgme_release): Do not release CTX->tmp_key. + * ops.h (_gpgme_key_add_subkey, _gpgme_key_append_name, + _gpgme_key_add_sig, _gpgme_trust_item_new): New prototypes. + * rungpg.c (command_cb): Return GpgmeError instead int. + New variable ERR. Use it to hold return value of cmd handler. + (gpg_delete): Access fingerprint of key directly. + (append_args_from_signers): Likewise. + (gpg_edit): Likewise. + (append_args_from_recipients): Use GpgmeUserID for recipient list. + * engine-gpgsm.c: Do not include "key.h". + (gpgsm_delete): Access fingerprint of key directly. + (gpgsm_sign): Likewise. + (set_recipients): Use GpgmeUserID for recipients. Invert invalid + user ID flag. + * key.h: File removed. + * key.c: Completely reworked to use exposed GpgmeKey data types. + * keylist.c: Likewise. + * recipient.c: Completely reworked to use GpgmeUserID. + +2003-04-29 Marcus Brinkmann + + * gpgme.h (gpgme_get_key): Remove force_update argument. + * key-cache.c: File removed. + * Makefile.am (libgpgme_la_SOURCES): Remove key-cache.c. + * ops.h (_gpgme_key_cache_add, _gpgme_key_cache_get): Remove + prototypes. + * keylist.c (_gpgme_op_keylist_event_cb): Don't call + _gpgme_key_cache_add. + (gpgme_get_key): New function. + * verify.c (gpgme_get_sig_key): Remove last argument to + gpgme_get_key invocation. + + * gpgme.h (struct _gpgme_trust_item): New structure. + (GpgmeTrustItem): New type. + (gpgme_trust_item_ref, gpgme_trust_item_unref): New prototypes. + * context.h (struct trust_queue_item_s): Remove structure. + (struct gpgme_context_s): Remove trust_queue member. + * Makefile.am (libgpgme_la_SOURCES): Add trust-item.c. + * trust-item.c: New file. + * trustlist.c: Do not include or , but + "gpgme.h". + (struct trust_queue_item_s): Change to new type op_data_t. + (trust_status_handler): Change first argument to void *. + (trust_colon_handler): Likewise. + (_gpgme_op_trustlist_event_cb): Use op_data_t type. + (gpgme_op_trustlist_start): Use op_data_t and rework error + handling. + (gpgme_op_trustlist_next): Use op_data_t. + (gpgme_trust_item_release): Remove function. + (gpgme_trust_item_get_string_attr): Likewise. + (gpgme_trust_item_get_int_attr): Likewise. + + * verify.c (calc_sig_summary): Do not set GPGME_SIGSUM_SYS_ERROR + for bad signatures. + +2003-04-28 Marcus Brinkmann + + * context.h: Remove OPDATA_VERIFY_COLLECTING. + (struct gpgme_context_s): Remove member notation. + * gpgme.h: Make enum for GPGME_KEYLIST_MODE_* values. + + * gpgme.h (struct _gpgme_sig_notation): New structure. + (GpgmeSigNotation): New type. + (struct _gpgme_signature): New structure. + (GpgmeSignature): New type. + (struct _gpgme_op_verify_result): New structure. + (GpgmeVerifyResult): New type. + (gpgme_op_verify_result): New prototype. + (gpgme_get_notation): Remove prototype. + * ops.h (_gpgme_op_verify_init_result): New prototype. + (_gpgme_verify_status_handler): Change first argument to void *. + * util.h (_gpgme_decode_percent_string, _gpgme_map_gnupg_error): + New prototypes. + * conversion.c (_gpgme_decode_percent_string): New function. + (gnupg_errors): New static global. + (_gpgme_map_gnupg_error): New function. + * gpgme.c (gpgme_release): Don't release CTX->notation. + (gpgme_get_notation): Remove function. + * decrypt-verify.c (_gpgme_op_decrypt_verify_start): Call + _gpgme_op_verify_init_result. + * verify.c: Do not include , and "key.h", but + do include "gpgme.h". + (struct verify_result): Replace with ... + (op_data_t): ... this type. + (release_verify_result): Remove function. + (release_op_data): New function. + (is_token): Remove function. + (skip_token): Remove function. + (copy_token): Remove function. + (gpgme_op_verify_result): New function. + (calc_sig_summary): Rewritten. + (finish_sig): Remove function. + (parse_new_sig): New function. + (parse_valid_sig): New function. + (parse_notation): New function. + (parse_trust): New function. + (parse_error): New function. + (_gpgme_verify_status_handler): Rewritten. Change first argument + to void *. + (_gpgme_op_verify_start): Rework error handling. Call + _gpgme_op_verify_init_result. + (gpgme_op_verify): Do not release or clear CTX->notation. + (gpgme_get_sig_status): Rewritten. + (gpgme_get_sig_string_attr): Likewise. + (gpgme_get_sig_ulong_attr): Likewise. + (gpgme_get_sig_key): Likewise. + + * gpgme.h (struct _gpgme_op_decrypt_result): New structure. + (GpgmeDecryptResult): New type. + (gpgme_op_decrypt_result): New prototype. + * ops.h (_gpgme_op_decrypt_init_result): New prototype. + (_gpgme_decrypt_status_handler): Fix prototype. + (_gpgme_decrypt_start): Remove prototype. + * decrypt-verify.c: Do not include , , + and , "util.h" and "context.h", but + "gpgme.h". + (decrypt_verify_status_handler): Change first argument to void *, + and rework error handling. + (_gpgme_op_decrypt_verify_start): New function. + (gpgme_op_decrypt_verify_start): Rewrite using + _gpgme_op_decrypt_verify_start. + (gpgme_op_decrypt_verify): Likewise. + * decrypt.c: Include , "gpgme.h" and "util.h". + (struct decrypt_result): Change to typedef op_data_t, rewritten. + (is_token): Remove function. + (release_op_data): New function. + (skip_token): Remove function. + (gpgme_op_decrypt_result): New function. + (_gpgme_decrypt_status_handler): Change first argument to void *. + Rework error handling. + (_gpgme_decrypt_start): Rename to ... + (decrypt_start): ... this. Call _gpgme_op_decrypt_init_result. + (_gpgme_op_decrypt_init_result): New function. + (gpgme_op_decrypt_start): Use decrypt_start. + (gpgme_op_decrypt): Likewise. + +2003-04-27 Marcus Brinkmann + + * encrypt-sign.c: Do not include , , + , , and "util.h", but "gpgme.h". + (_gpgme_op_encrypt_sign_start): Rename to ... + (encrypt_sign_start): ... this. + (gpgme_op_encrypt_sign_start): Use encrypt_sign_start, not + _gpgme_op_encrypt_sign_start. + (gpgme_op_encrypt_sign): Likewise. + + * gpgme.h (GpgmeEncryptResult): New data type. + (gpgme_op_encrypt_result): New prototype. + * ops.h (_gpgme_op_encrypt_init_result): New prototype. + (_gpgme_op_encrypt_status_handler): Fix prototype. + * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Call + _gpgme_op_encrypt_init_result. + * encrypt.c: Do not include , , "util.h" and + "wait.h". Include and "gpgme.h". + (SKIP_TOKEN_OR_RETURN): Remove macro. + (struct encrypt_result): Rename to ... + (op_data_t): ... new data type. Rewrite for user result data. + (append_xml_encinfo): Remove function. + (release_op_data): New function. + (gpgme_op_encrypt_result): New function. + (_gpgme_op_encrypt_status_handler): Change first argument to void *. + Rewrite result parsing. + (_gpgme_op_encrypt_sym_status_handler): Change first argument to + void *. + (_gpgme_op_encrypt_init_result): New function. + (_gpgme_op_encrypt_start): Rename to ... + (encrypt_start): ... this. + (gpgme_op_encrypt_start): Use encrypt_start, not + gpgme_op_encrypt_start. + (gpgme_op_encrypt): Likewise. + + * gpgme.h (GpgmePubKeyAlgo, GpgmeHashAlgo, GpgmeInvalidUserID, + GpgmeNewSignature, GpgmeSignResult): New data types. + (gpgme_op_sign_result, gpgme_pubkey_algo_name, + gpgme_hash_algo_name): New prototypes. + * gpgme.c (gpgme_pubkey_algo_name): New function. + (gpgme_hash_algo_name): Likewise. + * ops.h (_gpgme_parse_inv_userid, _gpgme_op_sign_init_result): New + prototype. + (_gpgme_op_sign_status_handler): Fix prototype. + * op-support.c: Include and . + (_gpgme_parse_inv_userid): New function. + * sign.c: Include and "gpgme.h", but not , + and "util.h". + (SKIP_TOKEN_OR_RETURN): Remove macro. + (struct sign_result): Change to op_data_t type and rework it. + (release_sign_result): Rename to ... + (release_op_data): ... this and rewrite it. + (append_xml_info): Remove function. + (gpgme_op_sign_result): New function. + (parse_sig_created): New function. + (_gpgme_sign_status_handler): Change first argument to void *. + Rewrite the function to use the new result structure and functions. + (_gpgme_op_sign_init_result): New function. + (_gpgme_op_sign_start): Rename to ... + (sign_start): ... this. Call _gpgme_op_sign_init_result. + (gpgme_op_sign_start): Use sign_start instead _gpgme_op_sign_start. + (gpgme_op_sign): Likewise. + * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Call + _gpgme_op_sign_init_result. + + * delete.c: Include and "gpgme.h", but not "util.h" or + "key.h". + (enum delete_problem): Move into function delete_status_handler. + (delete_status_handler): Change first argument to void *. Parse + delete problem with strtol instead atoi. Return better error + values. + (_gpgme_op_delete_start): Rename to ... + (delete_start): ... this. Rework error handling. + (gpgme_op_delete_start): Use delete_start instead + _gpgme_op_delete_start. + (gpgme_op_delete): Likewise. + * gpgme.h (GpgmeDataType): Removed. + +2003-04-25 Marcus Brinkmann + + * gpgme.h: Change GPGME_IMPORT_PRIVATE to GPGME_IMPORT_SECRET. + * import.c (parse_import_res): Parse unchanged field. + + * gpgme.h: New enum for GPGME_IMPORT_NEW, GPGME_IMPORT_UID, + GPGME_IMPORT_SIG, GPGME_IMPORT_SUBKEY, GPGME_IMPORT_PRIVATE. + (GpgmeError): GPGME_Unknown_Reason, GPGME_Not_Found, + GPGME_Ambiguous_Specification, GPGME_Wrong_Key_Usage, + GPGME_Key_Revoked, GPGME_Key_Expired, GPGME_No_CRL_Known, + GPGME_CRL_Too_Old, GPGME_Policy_Mismatch, GPGME_No_Secret_Key, + GPGME_Key_Not_Trusted, GPGME_Issuer_Missing, GPGME_Chain_Too_Long, + GPGME_Unsupported_Algorithm, GPGME_Sig_Expired, + GPGME_Bad_Signature, GPGME_No_Public_Key added as new error codes. + (struct _gpgme_import_status): New structure. + (GpgmeImportStatus): New type. + (struct _gpgme_op_import_result): New structure. + (GpgmeImportResult): New type. + (gpgme_op_import_result): New function. + * import.c: Include and "gpgme.h", but not "util.h". + (struct import_result): Change to type op_data_t. + (release_import_result): Rename to ... + (release_op_data): ... this. + (append_xml_impinfo): Function removed. + (gpgme_op_import_result): New function. + (parse_import): New function. + (parse_import_res): Likewise. + (import_status_handler): Change first argument to void *. Rewrite + to use new functions. + (_gpgme_op_import_start): Rework error handling. + + * edit.c: Do not include , "util.h", but "gpgme.h". + (edit_resut): Change to typedef for op_data_t. + (edit_status_handler): Change first argument to void *. + Rework error handling. + (command_handler): Rework error handling. + (_gpgme_op_edit_start): Rename to ... + (edit_start): ... this. Rework error handling. + (gpgme_op_edit_start): Rewrite using edit_start. + (gpgme_op_edit): Likewise. + + * ops.h (_gpgme_passphrase_start): Remove prototype. + * passphrase.c: Do not include , "util.h" or + "debug.h", but "gpgme.h". + (struct passphrase_result): Change to typedef for op_data_t. + (release_passphrase_result): Rename to release_op_data. + (_gpgme_passphrase_status_handler): Change first argument to void *. + Use new op_data_t type. + (_gpgme_passphrase_command_handler): Use new op_data_t type. + (_gpgme_passphrase_start): Remove function. + * decrypt.c (_gpgme_decrypt_start): Rewrite error handling. Do + not call _gpgme_passphrase_start, but install command handler. + * encrypt.c (_gpgme_op_encrypt_start): Likewise. + * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. + * sign.c (_gpgme_op_sign_start): Likewise. + + * context.h (struct gpgme_context_s): Remove member initialized, + use_cms and help_data_1. Add member protocol. Make use_armor and + use_textmode bit flags. Make keylist_mode, include_certs, + signers_len and signers_size unsigned. + * gpgme.c (gpgme_new): Initialize CTX->protocol. + (gpgme_set_protocol): Do not check CTX. Use CTX->protocol. + (gpgme_get_protocol): Likewise. + (gpgme_release): Do not release CTX->help_data_1. + * op-support.c (_gpgme_op_reset): Use CTX->protocol. + + * wait-private.c (_gpgme_wait_private_event_cb): Remove variable CTX. + + * data.c: Do not include , but "gpgme.h". + (_gpgme_data_inbound_handler): Expand _gpgme_data_append, because + it will go. Do not assert DH. + (_gpgme_data_outbound_handler): Do not assert DH. + + * export.c: Do not include , "debug.h" and "util.h", but + "gpgme.h". + (export_status_handler): Change type of first argument to void *. + (_gpgme_op_export_start): Rename to ... + (export_start): ... this. Rework error handling. + (gpgme_op_export_start): Rewritten to use export_start instead + _gpgme_op_export_start. + (gpgme_op_export): Likewise. + + * gpgme.h (GpgmeError): Add GPGME_Busy, GPGME_No_Request. + (GPGME_No_Recipients, GPGME_Invalid_Recipient, + GPGME_No_Passphrase): New macros. + + * key.c (gpgme_key_get_string_attr): Fix validity attribute. + +2003-04-24 Marcus Brinkmann + + * gpgme.h (struct _gpgme_op_genkey_result): New structure. + (GpgmeGenKeyResult): New type. + (gpgme_op_genkey): Drop last argument. + (gpgme_op_genkey_result): New function. + * genkey.c: Do not include "util.h", but "gpgme.h". + (struct genkey_result): Replace with ... + (op_data_t): ... this new type. + (release_genkey_result): Replace with ... + (release_op_data): ... this new function. + (gpgme_op_genkey_result): New function. + (genkey_status_handler): Rewritten using new op_data_t type. + (get_key_parameter): New function. + (_gpgme_op_genkey_start): Renamed to + (genkey_start): ... this and rewritten. + (gpgme_op_genkey_start): Use genkey_start instead + _gpgme_op_genkey_start. + (gpgme_op_genkey): Rewritten. Remove FPR argument. + + * context.h (struct gpgme_context_s): Remove member verbosity. + * gpgme.c (gpgme_new): Do not set member verbosity. + * engine.h (_gpgme_engine_set_verbosity): Remove prototype. + * engine.c (_gpgme_engine_set_verbosity): Remove function. + * engine-backend.h (struct engine_ops): Remove set_verbosity. + * engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Remove set_verbosity member. + * rungpg.c (_gpgme_engine_ops_gpg): Likewise. + (gpg_set_verbosity): Remove function. + * decrypt.c (_gpgme_decrypt_start): Don't call + _gpgme_engine_set_verbosity. + * delete.c (_gpgme_op_delete_start): Likewise. + * edit.c (_gpgme_op_edit_start): Likewise. + * encrypt.c (_gpgme_op_encrypt_start): Likewise. + * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. + * export.c (_gpgme_op_export_start): Likewise. + * genkey.c (_gpgme_op_genkey_start): Likewise. + * import.c (_gpgme_op_import_start): Likewise. + * keylist.c (gpgme_op_keylist_start): Likewise. + (gpgme_op_keylist_ext_start): Likewise. + * sign.c (_gpgme_op_sign_start): Likewise. + * verify.c (_gpgme_op_verify_start): Likewise. + + * Makefile.am (libgpgme_la_SOURCES): Add key-cache.c. + * key.c (key_cache_initialized, key_cache_size, + key_cache_max_chain_length, ): Removed. + (struct key_cache_item_s, key_cache_lock, key_cache, + key_cache_unused_items, hash_key, _gpgme_key_cache_add, + _gpgme_key_cache_get, gpgme_get_key): Moved to ... + * key-cache.c: ... here. New file. + * key.h (_gpgme_key_cache_init): Remove prototypes. + (_gpgme_key_cache_add,_gpgme_key_cache_get): Move to ... + * ops.h: ... here. + * version.c: Do not include "key.h". + (do_subsystem_inits): Do not call _gpgme_key_cache_init. + + * mkstatus: Strip trailing comma. + * gpgme.h (GpgmeStatus): Pretty print. + + * gpgme.h (GpgmeError): Rename GPGME_No_Passphrase to + GPGME_Bad_Passphrase. + * passphrase.c (_gpgme_passphrase_status_handler): Use + GPGME_Bad_Passphrase instead GPGME_No_Passphrase. + + * gpgme.h (GpgmeError): Rename GPGME_No_Recipients to + GPGME_No_UserID and GPGME_Invalid_Recipient to + GPGME_Invalid_UserID. + * encrypt.c (_gpgme_encrypt_status_handler): Use GPGME_No_UserID + instead GPGME_No_Recipients and GPGME_Invalid_UserID instead + GPGME_Invalid_Recipient. + (_gpgme_op_encrypt_start): Likewise. + + * gpgme.h (GpgmeError): Remove GPGME_Busy and GPGME_No_Request. + * wait-user.c (_gpgme_wait_user_event_cb): Don't clear CTX->pending. + * wait-private.c (_gpgme_wait_private_event_cb): Likewise. + * wait-global.c (gpgme_wait): Likewise. + * verify.c (_gpgme_op_verify_start): Likewise. + (gpgme_get_sig_status): Don't check pending flag. + (gpgme_get_sig_string_attr): Likewise. + (gpgme_get_sig_ulong_attr): Likewise. + (gpgme_get_sig_key): Likewise. + * op-support.c (_gpgme_op_reset): Likewise. + * trustlist.c (gpgme_op_trustlist_start): Don't clear pending flag. + (gpgme_op_trustlist_next): Don't check or clear pending flag. + (gpgme_op_trustlist_end): Likewise. + * sign.c (_gpgme_op_sign_start): Likewise. + * context.h (struct gpgme_context_s): Remove member PENDING. + * decrypt.c (_gpgme_decrypt_start): Likewise. + * delete.c (_gpgme_op_delete_start): Likewise. + * edit.c (_gpgme_op_edit_start): Likewise. + * encrypt.c (_gpgme_op_encrypt_start): Likewise. + * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. + * export.c (_gpgme_op_export_start): Likewise. + * genkey.c (_gpgme_op_genkey_start): Likewise. + * import.c (_gpgme_op_import_start): Likewise. + * key.c (gpgme_get_key): Likewise. + * keylist.c (gpgme_op_keylist_start): Likewise. + (gpgme_op_keylist_ext_start): Likewise. + (gpgme_op_keylist_next): Likewise. + (gpgme_op_keylist_end): Likewise. + * data-compat.c (gpgme_error_to_errno): Don't convert EBUSY. + +2003-02-06 Marcus Brinkmann + + * gpgme.h (GpgmePassphraseCb): Change type to return GpgmeError, + and add argument for returning the result string. + (gpgme_cancel): Remove prototype. + * gpgme.c (gpgme_cancel): Remove function. + * context.h (struct gpgme_context_s): Remove member cancel. + * passphrase.c (_gpgme_passphrase_command_handler): Call the + passphrase callback in the new way. + +2003-01-30 Marcus Brinkmann + + * edit.c (_gpgme_edit_status_handler): Call the progress status + handler. + +2003-02-05 Marcus Brinkmann + + * wait-user.c (_gpgme_wait_user_remove_io_cb): Move check for no + I/O handlers left to ... + (_gpgme_user_io_cb_handler): ... here. + +2003-02-04 Marcus Brinkmann + + * trustlist.c (trustlist_colon_handler): Release ITEM if name + could not be allocated. + (gpgme_trust_item_release): Only release name if it is allocated. + Reported by Marc Mutz . + +2003-02-04 Marcus Brinkmann + + * rungpg.c (read_status): If he status handler returns an error, + return it. + (status_handler): If read_status fails, just return the error. + +2003-02-01 Marcus Brinkmann + + * engine-gpgsm.c (start): Handle all errors, not only most of + them. + (xtoi_1, xtoi_2): Remove macro. + (status_handler): Replace use of xtoi_2 with _gpgme_hextobyte. + +2003-02-01 Marcus Brinkmann + + * engine-gpgsm.c (map_assuan_error): Replace + ASSUAN_Bad_Certificate_Path with ASSUAN_Bad_Certificate_Chain. + (gpgsm_new): Use assuan_pipe_connect instead assuan_pipe_connect2. + + * util.h (DIMof): Remove macro. + + * ops.h (_gpgme_op_event_cb, _gpgme_op_event_cb_user, + _gpgme_data_unread): Prototypes removed. + +2003-01-30 Marcus Brinkmann + + * types.h: File removed. + * Makefile.am (libgpgme_la_SOURCES): Remove types.h. + * io.h (struct spawn_fd_item_s): Do not include "types.h". + * key.h: Likewise. + * context.h: Likewise. + * cengine-gpgsm.h: Likewise. + * engine.h: Include "gpgme.h" instead "types.h". Add prototypes + for EngineStatusHandler, EngineColonLineHandler and + EngineCommandHandler. + (_gpgme_engine_set_status_handler): Change parameter type from + GpgmeStatusHandler to EngineStatusHandler. + (_gpgme_engine_set_command_handler): Change parameter type from + GpgmeCommandHandler to EngineCommandHandler. + (_gpgme_engine_set_colon_line_handler): Change parameter type from + GpgmeColonLineHandler to EngineColonLineHandler. + * engine-backend.h: Include "engine.h" instead "types.h". + (struct engine_ops): Change Gpgme*Handler parameters in members + set_command_handler, set_colon_line_handler and set_status_handler + to Engine*Handler. + * engine.c (_gpgme_engine_set_status_handler): Change parameter + type from GpgmeStatusHandler to EngineStatusHandler. + (_gpgme_engine_set_command_handler): Change parameter type from + GpgmeCommandHandler to EngineCommandHandler. + (_gpgme_engine_set_colon_line_handler): Change parameter type from + GpgmeColonLineHandler to EngineColonLineHandler. + * rungpg.c (struct gpg_object_s): Change type of member status.fnc + from GpgmeStatusHandler to EngineStatusHandler. Change type of + member colon.fnc from GpgmeColonLineHandler to + EngineColonLineHandler. Change type of member cmd.fnc from + GpgmeCommandHandler to EngineCommandHandler. + * engine-gpgsm.c (struct gpgsm_object_s): Likewise. + * rungpg.c (gpg_set_status_handler): Change parameter type from + GpgmeStatusHandler to EngineStatusHandler. + * engine-gpgsm.c (gpgsm_set_status_handler): Likewise. + (assuan_simple_command): Likewise. + * rungpg.c (gpg_set_colon_line_handler): Change parameter type + from GpgmeColonLineHandler to EngineColonLineHandler. + * engine-gpgsm.c (gpgsm_set_colon_line_handler): Likewise. + * rungpg.c (gpg_set_command_handler): Change parameter type from + GpgmeCommandHandler to EngineCommandHandler. + + * engine-gpgsm.c (status_handler): Do not close status fd at end + of function. + + * ops.h (_gpgme_op_data_lookup): Add prototype. + * op-support.c: Include . + (_gpgme_op_data_lookup): New function. + * decrypt.c (_gpgme_release_decrypt_result): Function removed. + (struct decrypt_result_s): Rename to ... + (struct decrypt_resul): ... this. + (DecryptResult): New type. + (_gpgme_decrypt_status_handler): Don't use + test_and_allocate_result, but use _gpgme_op_data_lookup to + retrieve result data object. + * sign.c (_gpgme_release_sign_result): Function removed. + (release_sign_result): New function. + (struct sign_result_s): Rename to ... + (struct sign_result): ... this. + (SignResult): New type. + (_gpgme_sign_status_handler): Don't use + test_and_allocate_result, but use _gpgme_op_data_lookup to + retrieve result data object. + * encrypt.c (struct encrypt_result_s): Rename to ... + (struct encrypt_result): ... this. + (_gpgme_release_encrypt_result): Function removed. + (release_encrypt_result): New function. + (_gpgme_encrypt_status_handler): Don't use + test_and_allocate_result, but use _gpgme_op_data_lookup to + retrieve result data object. + * verify.c (struct verify_result_s): Rename to ... + (struct verify_result): ... this. Remove member next. + (VerifyResult): New type. + (_gpgme_release_verify_result): Function removed. + (release_verify_result): New function. + (finish_sig): Change first argument to type VerifyResult. Diddle + the type of the op_data structure. + (add_notation): Change first argument to type VerifyResult. + (_gpgme_verify_status_handler): Don't use + test_and_allocate_result, but use _gpgme_op_data_lookup to + retrieve result data object. + * passphrase.c (struct passphrase_result_s): Rename to ... + (struct passphrase_result): ... this. Remove member next. + (PassphraseResult): New type. + (_gpgme_release_passphrase_result): Function removed. + (release_passphrase_result): New function. + (_gpgme_passphrase_status_handler): Don't use + test_and_allocate_result, but use _gpgme_op_data_lookup to + retrieve result data object. + (_gpgme_passphrase_command_handler): Likewise. + * keylist.c (struct keylist_result_s): Rename to ... + (struct keylist_result): ... this. Remove member next. + (KeylistResult): New type. + (_gpgme_release_keylist_result): Function removed. + (release_keylist_result): New function. + (keylist_status_handler): Don't use + test_and_allocate_result, but use _gpgme_op_data_lookup to + retrieve result data object. + * edit.c (struct edit_result_s): Rename to ... + (struct edit_result): ... this. Remove member next. + (EditResult): New type. + (_gpgme_release_edit_result): Function removed. + (release_edit_result): New function. + (edit_status_handler): Don't use + test_and_allocate_result, but use _gpgme_op_data_lookup to + retrieve result data object. + (command_handler): Likewise. + * types.h (DecryptResult, SignResult, EncryptResult, + PassphraseResult, ImportResult, DeleteResult, GenKeyResult, + KeylistResult, EditResult): Types removed. + * ops.h: Don't include "types.h", but "gpgme.h" and "context.h". + (test_and_allocate_result): Remove macro. + (_gpgme_release_decrypt_result): Remove prototype. + (_gpgme_decrypt_result): Remove prototype. + (_gpgme_release_sign_result): Remove prototype. + (_gpgme_release_encrypt_result): Remove prototype. + (_gpgme_release_passphrase_result): Remove prototype. + (_gpgme_release_import_result): Remove prototype. + (_gpgme_release_delete_result): Remove prototype. + (_gpgme_release_genkey_result): Remove prototype. + (_gpgme_release_keylist_result): Remove prototype. + (_gpgme_release_edit_result): Remove prototype. + (_gpgme_release_verify_result): Remove prototype. + * gpgme.c (_gpgme_release_result): Rewritten. + * context.h (enum ctx_op_data_type): New enum. + (struct ctx_op_data): New structure. + (struct gpgme_context_s): Replace the member result with a member + op_data. + (fail_on_pending_request): Remove macro. + * op-support.c (_gpgme_op_reset): Expand macro + fail_on_pending_request. + * util.h: Don't include "types.h" or "debug.h", but include "gpgme.h". + +2003-01-19 Marcus Brinkmann + + * rungpg.c (_gpgme_engine_ops_gpg): Remove gpg_start. + (gpg_start): Rename to ... + (start): ... this function. Change arguments to GpgObject. + (gpg_decrypt): Call start. + (gpg_edit): Likewise. + (gpg_encrypt): Likewise. + (gpg_encrypt_sign): Likewise. + (gpg_export): Likewise. + (gpg_import): Likewise. + (gpg_keylist): Likewise. + (gpg_keylist_ext): Likewise. + (gpg_trustlist): Likewise. + (gpg_verify): Likewise. + + * engine-gpgsm.c (_gpgme_engine_ops_encrypt): Remove gpgsm_start. + (gpgsm_start): Rename to ... + (struct gpgsm_object_s): Remove member command. + (gpgsm_release): Don't free command. + (start): ... this function. Change arguments to GpgsmObject and + const char *. + (gpgsm_decrypt): Call start. + (gpgsm_delete): Likewise. + (gpgsm_encrypt): Likewise. + (gpgsm_export): Likewise. + (gpgsm_genkey): Likewise. + (gpgsm_import): Likewise. + (gpgsm_keylist): Likewise. + (gpgsm_keylist_ext): Likewise. + (gpgsm_verify): Likewise. + + * decrypt.c (_gpgme_decrypt_start): Don't call + _gpgme_engine_start. + * delete.c (_gpgme_op_delete_start): Likewise. + * edit.c (_gpgme_op_edit_start): Likewise. + * encrypt.c (_gpgme_op_encrypt_start): + * encrypt-sign.c (_gpgme_op_encrypt_sign_start): + * export.c (_gpgme_op_export_start): Likewise. + * genkey.c (_gpgme_op_genkey_start): Likewise. + * import.c (_gpgme_op_import_start): Likewise. + * keylist.c (gpgme_op_keylist_ext_start): Likewise. + (gpgme_op_keylist_start): Likewise. + * sign.c (_gpgme_op_sign_start): Likewise. + * trustlist.c (gpgme_op_trustlist_start): Likewise. + * verify.c (_gpgme_op_verify_start): Likewise. + + * engine-backend.h (struct engine_ops): Remove member start. + + * engine.h (_gpgme_engine_start): Remove prototype. + * engine.c (_gpgme_engine_start): Remove function. + +2003-01-19 Miguel Coca + + * w32-io.c (_gpgme_io_select): Add missing argument in calls to + DEBUG_BEGIN. + * w32-util.c: Include "sema.h". + (find_program_in_registry): Change DEBUG1 to DEBUG2, fixes compilation + error. + +2003-01-29 Marcus Brinkmann + + * types.h: Remove byte and ulong types. + * util.h (_gpgme_hextobyte): Change prototype to unsigned char + instead byte. + * conversion.c (_gpgme_hextobyte): Change argument to unsigned + char instead byte. + (_gpgme_decode_c_string): Likewise, and beautify. Also support a + few more escaped characters. Be more strict about buffer size. + (_gpgme_data_append_percentstring_for_xml): Change type of SRC, + BUF and DST to unsigned char instead byte. + * progress.c (_gpgme_progress_status_handler): Use unsigned char + instead byte. + * debug.c (trim_spaces): Likewise. + + * util.h (mk_error): Remove macro. + * conversion.c, data.c, data-compat.c, decrypt.c, delete.c, + edit.c, encrypt.c, encrypt-sign.c, engine.c, engine-gpgsm.c, + export.c, genkey.c, gpgme.c, import.c, key.c, keylist.c, + passphrase.c, progress.c, recipient.c, rungpg.c, sign.c, + signers.c, trustlist.c, verify.c, wait.c, wait-global.c, + wait-private (literally everywhere): Expand the mk_error macro. + + * context.h (wait_on_request_or_fail): Remove macro. + + * context.h (gpgme_context_s): Remove member ERROR. + * types.h (GpgmeStatusHandler): Change return type to GpgmeError. + (GpgmeCommandHandler): Change return type to GpgmeError and add + new argument RESULT. + * gpgme.h (GpgmeIOCb): Change return type to GpgmeError. + (GpgmeEventIO): New event GPGME_EVENT_START. + (GpgmeIdleFunc): Remove type. + (gpgme_register_idle): Remove prototype. + * data.c: Include . + (_gpgme_data_inbound_handler): Change return type to GpgmeError. + Return any error instead ignoring it, don't close file descriptor + on error. + (_gpgme_data_outbound_handler): Likewise. + * decrypt.c: Do not include , and . + (_gpgme_decrypt_status_handler): Change return type to GpgmeError. + Return error instead setting ctx->error. Return success at end of + function. + (gpgme_op_decrypt): Don't work around the old kludge anymore. + * decrypt-verify.c (decrypt_verify_status_handler): Change return + type to GpgmeError. Return possible errors. + * delete.c: Do not include , , and + . + (delete_status_handler): Change return type to GpgmeError. Return + error instead setting ctx->error. Return success at end of + function. + * edit.c: Do not include and . + (_gpgme_edit_status_handler): Change type to GpgmeError, + make static and rename to ... + (edit_status_handler): ... this. Return error directly. + (command_handler): Change return type to GpgmeError, add result + argument. Return error directly. + * encrypt.c (status_handler_finish): Remove function. + (_gpgme_encrypt_status_handler): Change return type to GpgmeError. + Return error directly. + (_gpgme_encrypt_sym_status_handler): Likewise. + * encrypt-sign.c (encrypt_sign_status_handler): Likewise. + * engine-gpgsm.c (close_notify_handler): Do not signal done event + anymore. + (status_handler): Change return type to GpgmeError. Diddle things + around a bit to return errors directly. + (start): Send start event. + * export.c: Do not include , and . + (export_status_handler): Change return type to GpgmeError. Don't + check ctx->error. + * genkey.c: Do not include and . + (genkey_status_handler): Change return type to GpgmeError. Don't + check ctx->error. Return errors directly. + * gpgme.c (_gpgme_release_result): Do not initialize ctx->error. + (_gpgme_op_event_cb): Function removed. + (_gpgme_op_event_cb_user): Likewise. + * import.c: Do not include , and . + (import_status_handler): Change return type to GpgmeError. Don't + check ctx->error. + * keylist.c (keylist_colon_handler, keylist_status_handler, finish_key): + Change return type to GpgmeError, return error directly. + * Makefile (libgpgme_la_SOURCES): Add wait-global.c, + wait-private.c and wait-user.c + * ops.h (test_and_allocate_result): Return error instead setting + ctx->error. + (_gpgme_data_inbound_handler, _gpgme_data_outbound_handler, + _gpgme_verify_status_handler, _gpgme_decrypt_status_handler, + _gpgme_sign_status_handler, _gpgme_encrypt_staus_handler, + _gpgme_passphrase_status_handler, _gpgme_progress_status_handler): + Change return type to GpgmeError. + (_gpgme_passphease_command_handler): Change return type to + GpgmeError and add new argument RESULT. + * op-support.c: Use new callback functions, and change private + data to ctx everywhere. + * passphrase.c (_gpgme_passphrase_status_handler): Change return + type to GpgmeError, return error directly. + (_gpgme_passphrase_command_handler): Change return type to + GpgmeError, add result argument. Return results accordingly. + * progress.c (_gpgme_progress_status_handler): Change return type + to GpgmeError, return errors directly. + * rungpg.c (status_handler): Change return type to GpgmeError. + Return error directly. + (close_notify_handler): Don't send done event. + (colon_line_handler): Change return type to GpgmeError, return + errors directly. + * rungpg.c (start): Send start event. + * sign.c (_gpgme_sign_status_handler): Change return type to + GpgmeError, return errors directly. + * trustlist.c (trustlist_status_handler): Change return type to + GpgmeError. Return 0. + (trustlist_colon_handler): Change return type GpgmeError. Return + errors directly. + * verify.c (add_notation): Change return type to GpgmeError, + return errors directly. + (_gpgme_verify_status_handler): Likewise. + * wait.h (struct fd_table): Remove lock member. + (struct wait_item_s): Moved here from wait.c. + (struct tag): New structure. + (_gpgme_wait_event_cb): Remove prototype. + (_gpgme_wait_private_event_cb, _gpgme_wait_global_event_cb, + _gpgme_wait_user_add_io_cb, _gpgme_wait_user_remove_io_cb, + _gpgme_wait_user_event_io_cb): New prototypes. + * wait.c: Don't include . + (ftd_global, ctx_done_list, ctx_done_list_size, + ctx_done_list_length, ctx_done_list_lock, idle_function): Remove + global variable. + (gpgme_register_idle, do_select, _gpgme_wait_event_cb): Remove + function. + (gpgme_wait): Move to file wait-global.c. + (_gpgme_add_io_cb): Take ctx as private argument, initialize ctx + member in wait item and tag. + (_gpgme_remove_io_cb): Take ctx from tag. Don't use FDT lock. + (_gpgme_wait_one, _gpgme_wait_on_condition): Move to + wait-private.c. + (gpgme_fd_table_init): Don't initialize FDT->lock. + (gpgme_fd_table_deinit): Don't destroy FDT->lock. + (_gpgme_fd_table_put): Make static and rename to ... + (fd_table_put): ... this function. Don't use FDT->lock. + (struct wait_item_s): Move to wait.h. + * wait-global.c: New file. + * wait-private.c: New file. + * wait-user.c: New file. + + * key.c (gpgme_key_sig_get_string_attr): Use validity_to_string + instead otrust_to_string to calculate validity. + +2003-01-30 Marcus Brinkmann + + * types.h (EngineObject): Move typedef to ... + * engine.h: ... here. + * types.h (GpgObject): Move typedef to ... + * rungpg.c: ... here. + * types.h (GpgsmObject): Move typedef to ... + * engine-gpgsm.c: ... here. + + * util.h (return_if_fail, return_null_if_fail, + return_val_if_fail): Remove macro. + * gpgme.c (gpgme_cancel): Don't use return_if_fail. + * key.c (gpgme_key_ref): Likewise. + * signers.c (gpgme_signers_enum): Likewise. + (gpgme_signers_clear): Likewise. + + * engine-backend.h (struct engine_ops): Rename get_path to + get_file_name. + * gpgme.h (struct _gpgme_engine_info): Rename member path to + file_name. + * version.c: Do not include , , context.h and + util.h. Other clean ups. + (parse_version_number): Protect more seriously against + overflow. + (gpgme_get_engine_info): Move to ... + * engine.c (gpgme_get_engine_info): ... here. + (_gpgme_engine_get_info): Function removed. + (_gpgme_engine_get_path): Make static and rename to ... + (engine_get_file_name): .. this. + (_gpgme_engine_get_version): Make static and rename to ... + (engine_get_version): ... this. + (_gpgme_engine_get_req_version): Make static and rename to ... + (engine_get_req_version): ... this. + * engine.h (_gpgme_engine_get_path, _gpgme_engine_get_version, + _gpgme_engine_req_version, _gpgme_engine_get_info.): Remove + prototypes. + + * gpgme.h (enum GpgmeProtocol): Remove GPGME_PROTOCOL_AUTO. + * gpgme.c (gpgme_set_protocol): Don't handle GPGME_PROTOCOL_AUTO. + (gpgme_get_protocol_name): New function. + + * engine-backend.h (struct engine_ops): New member + get_req_version, remove member check_version. + * engine.h (_gpgme_Engine_get_version): New prototype. + * rungpg.c (gpg_get_req_version): New function. + (gpg_check_version): Function removed. + (_gpgme_engine_ops_gpg): Add gpg_get_req_version, remove + gpg_check_version. + * engine-gpgsm.c (gpgsm_get_req_version): New function. + (gpgsm_check_version): Function removed. + (_gpgme_engine_ops_gpgsm): Add gpgsm_get_req_version, remove + gpgsm_check_version. + * engine.c: Include ops.h. + (_gpgme_engine_get_req_version): New function. + (gpgme_engine_check_version): Rewritten. + * version.c (gpgme_get_engine_info): Rewritten. + * gpgme.h (gpgme_engine_info): New structure. + (GpgmeEngineInfo): New type. + +2003-01-06 Werner Koch + + * keylist.c (set_mainkey_capability): Handle 'd' and 'D' used + since gpg 1.3 to denote disabled keys. + +2003-01-06 Marcus Brinkmann + + * data-mem.c: Include . + * engine.c: Likewise. + +2003-01-06 Marcus Brinkmann + + * Makefile.am (libgpgme_la_DEPENDENCIES): Correct bug in last change. + +2002-12-24 Marcus Brinkmann + + * gpgme.h (gpgme_op_verify, gpgme_op_decrypt_verify): Drop R_STAT + argument. + * decrypt-verify.c (gpgme_op_decrypt_verify): Drop R_STAT + argument. + * verify.c (gpgme_op_verify): Drop R_STAT argument. + (_gpgme_intersect_stati): Function removed. + * ops.h (_gpgme_intersect_stati): Remove prototype. + +2002-12-24 Marcus Brinkmann + + * libgpgme.vers: New file. + * Makefile.am (EXTRA_DIST): Add libgpgme.vers. + (libgpgme_version_script_cmd): New variable. + (libgpgme_la_LDFLAGS): Add libgpgme_version_script_cmd here. + (libgpgme_la_DEPENDENCIES): New variable. + +2002-12-23 Marcus Brinkmann + + * key.c (gpgme_key_get_string_attr): Don't accept GPGME_ATTR_IS_SECRET. + (otrust_to_string): New function. + (gpgme_key_get_as_xml): Use it. + (validity_to_string): New function. + (gpgme_key_get_string_attr): Beautify using above functions. + (gpgme_key_get_ulong_attr): Likewise. + +2002-12-23 Marcus Brinkmann + + * data-mem.c (mem_release): Fix gcc warning. + * data-user.c (user_release): Likewise. + +2002-12-06 Marcus Brinkmann + + * data.h (gpgme_data_release_cb): Change return type to void. + (gpgme_data_read_cb): Change return type to ssize_t. + * data.c (gpgme_data_read): Likewise. + * data-stream.c (stream_read): Likewise. + * data-fd.c (fd_read): Likewise. + * data-mem.c (mem_read): Likewise. + (mem_release): Change return type to void. + * data-user.c (user_read): Change return type to ssize_t. + (user_release): Change return type to void. + * data-compat.c (old_user_read): Change return type to ssize_t. + * gpgme.h (GpgmeDataReadCb): Likewise. + (gpgme_data_read): Likewise. + (GpgmeDataSeekCb): Change return type to off_t. + +2002-12-04 Marcus Brinkmann + + * gpgme.h: Add prototype for gpgme_get_key. + * key.c (gpgme_get_key): New function. + * verify.c (gpgme_get_sig_key): Rewrite using gpgme_get_key. + + * gpgme.h: Add prototypes for new interfaces + gpgme_key_sig_get_string_attr and gpgme_key_get_ulong_attr. + (enum GpgmeAttr): New attribute GPGME_ATTR_SIG_CLASS. + * gpgme.c (gpgme_set_keylist_mode): Allow GPGME_KEYLIST_MODE_SIGS. + * key.h (struct certsig_s): New members ALGO, NAME_PART, + EMAIL_PART, COMMENT_PART, NAME, SIG_STAT and SIG_CLASS. + + * conversion.c (_gpgme_decode_c_string): Add new parameter LEN. + Use that to determine if allocation is desired or not. + * util.h: Adjust prototype of _gpgme_decode_c_string. + * keylist.c (keylist_colon_handler): Adjust caller of + _gpgme_decode_c_string. + + * key.h (struct gpgme_key_s): New member last_uid. + * key.c (_gpgme_key_append_name): Rewritten using + _gpgme_decode_c_string and the last_uid pointer. + (my_isdigit): Macro removed. + (ALLOC_CHUNK): Likewise. + * keylist.c (set_userid_flags): Use last_uid member of KEY. + + * context.h (struct user_id_s): New member last_certsig. + * key.h: Add prototype for _gpgme_key_add_certsig. + * key.c (_gpgme_key_add_certsig): New function. + (set_user_id_part): Move function before _gpgme_key_add_certsig. + (parse_user_id): Change first argument to SRC, add new arguments + NAME, EMAIL and COMMENT. Change code to use these arguments + instead going through UID. Move function before + _gpgme_add_certsig. + (parse_x509_user_id): Likewise. + (_gpgme_key_append_name): Adjust arguments to parse_x509_user_id + and parse_user_id invocation. + (one_certsig_as_xml): New function. + (one_uid_as_xml): Print signatures. + * context.h (struct gpgme_context_s): New member TMP_UID. + * keylist.c (keylist_colon_handler): Rewritten, implement "sig" + record entries. + + * key.c (get_certsig): New function. + (gpgme_key_sig_get_string_attr): Likewise. + (gpgme_key_sig_get_ulong_attr): Likewise. + + * keylist.c: Include . + (my_isdigit): Macro removed. + (set_mainkey_trust_info): Use isdigit, not my_isdigit. + (set_userid_flags): Likewise. + (set_subkey_trust_info): Likewise. + (set_ownertrust): Likewise. + (finish_key): Move function up a bit and remove prototype. + + * rungpg.c (gpg_keylist_ext): Correct precedence of signature + listing mode. + (gpg_keylist_ext): Implement signature listing mode. + +2002-11-25 Marcus Brinkmann + + * rungpg.c (_gpgme_gpg_spawn): Do not set parent fds to -1. + * posix-io.c (_gpgme_io_spawn): Call _gpgme_io_close instead close + for parent fds. + * w32-io.c (_gpgme_io_spawn): Call _gpgme_io_close instead + CloseHandle for parent fds. + +2002-11-22 Marcus Brinkmann + + * gpgme.h [_MSC_VER]: Define ssize_t as long. + +2002-11-22 Werner Koch + + * engine-gpgsm.c (_gpgme_gpgsm_new): Save the result of a first + setlocale before doing another setlocale. + +2002-11-21 Marcus Brinkmann + + * decrypt.c: Some beautyfication. + + * verify.c (_gpgme_verify_status_handler): Treat + GPGME_STATUS_UNEXPECTED like GPGME_STATUS_NODATA. + Reported by Miguel Coca . + +2002-11-19 Marcus Brinkmann + + * genkey.c: Only include if [HAVE_CONFIG_H]. + (struct genkey_result_s): Add new member FPR. + (_gpgme_release_genkey_result): Free RESULT->fpr if set. + (genkey_status_handler): Extract the fingerprint from the status + line. + (gpgme_op_genkey): Add new argument FPR and return the fingerprint + in it. + * gpgme.h: Adjust prototype of gpgme_op_genkey. + +2002-11-19 Marcus Brinkmann + + * rungpg.c (gpg_keylist): Add --with-fingerprint to gpg invocation + twice, to get fingerprints on subkeys. Suggested by Timo Schulz + . + (gpg_keylist_ext): Likewise. + +2002-11-05 Marcus Brinkmann + + * import.c (append_xml_impinfo): Use + _gpgme_data_append_string_for_xml rather than + _gpgme_data_append_string for the field content. + Submitted by Miguel Coca . + +2002-10-10 Marcus Brinkmann + + * rungpg.h, engine-gpgsm.h: File removed. + * engine-backend.h: New file. + * Makefile.am (gpgsm_components): New variable, set depending on + automake conditional HAVE_GPGSM. + (libgpgme_la_SOURCES): Add engine-backend.h, remove rungpg.h and + engine-gpgsm.h. Replace engine-gpgsm.c with ${gpgsm_components}. + (status-table.h): Depend on gpgme.h, not rungpg.h. + * conversion.c: Include . + * engine-gpgsm.c: Do not set ENABLE_GPGSM here. Include + "engine-backend.h" instead "engine-gpgsm.h". Reorder some + functions and remove all function prototypes. + (_gpgme_gpgsm_get_version): Make static and rename to ... + (gpgsm_get_version): ... this. + (_gpgme_gpgsm_check_version): Make static and rename to ... + (gpgsm_check_version): ... this. + (_gpgme_gpgsm_new): Make static. Change argument type from + GpgsmObject * to void **. Call gpgsm_release instead + _gpgme_gpgsm_release. + (_gpgme_gpgsm_op_decrypt): Make static and rename to ... + (gpgsm_check_decrypt): ... this. + (_gpgme_gpgsm_op_delete): Make static and rename to ... + (gpgsm_check_delete): ... this. + (_gpgme_gpgsm_set_recipients): Make static and rename to ... + (gpgsm_check_set_recipients): ... this. + (_gpgme_gpgsm_op_encrypt): Make static and rename to ... + (gpgsm_encrypt): ... this. + (_gpgme_gpgsm_op_export): Make static and rename to ... + (gpgsm_export): ... this. + (_gpgme_gpgsm_op_genkey): Make static and rename to ... + (gpgsm_genkey): ... this. + (_gpgme_gpgsm_op_import): Make static and rename to ... + (gpgsm_import): ... this. + (_gpgme_gpgsm_op_keylist): Make static and rename to ... + (gpgsm_keylist): ... this. + (_gpgme_gpgsm_op_keylist_ext): Make static and rename to ... + (gpgsm_keylist_ext): ... this. + (_gpgme_gpgsm_op_sign): Make static and rename to ... + (gpgsm_sign): ... this. + (_gpgme_gpgsm_op_trustlist): Make static and rename to ... + (gpgsm_trustlist): ... this. + (_gpgme_gpgsm_op_verify): Make static and rename to ... + (gpgsm_verify): ... this. + (gpgsm_status_handler): Rename to ... + (status_handler): ... this. + (_gpgme_gpgsm_set_status_handler): Make static and rename to ... + (gpgsm_set_status_handler): ... this. + (_gpgme_gpgsm_set_colon_line_handler): Make static and rename to ... + (gpgsm_set_colon_line_handler): ... this. + (_gpgme_gpgsm_add_io_cb): Rename to ... + (add_io_cb): ... this. + (_gpgme_gpgsm_start): Make static and rename to ... + (gpgsm_start): ... this. + (_gpgme_gpgsm_set_io_cb): Make static and rename to ... + (gpgsm_set_io_cb): ... this. + (_gpgme_gpgsm_io_event): Make static and rename to ... + (gpgsm_io_event): ... this. + (struct _gpgme_engine_ops_gpgsm): New variable. + [!ENABLE_GPGSM]: Removed. + * engine.c: Do not include , , , + , "io.h", "rungpg.h" and "engine-gpgsm.h". Include + and "engine-backend.h". + (struct engine_object_s): Rewritten. + (engine_ops): New variable. + * engine.c (_gpgme_engine_get_path, _gpgme_engine_get_version, + _gpgme_engine_check_version, _gpgme_engine_new, + _gpgme_engine_release, _gpgme_engine_set_verbosity, + _gpgme_engine_set_status_handler, + _gpgme_engine_set_command_handler, + _gpgme_engine_set_colon_line_handler, _gpgme_engine_op_decrypt, + _gpgme_engine_op_delete, _gpgme_engine_op_edit, + _gpgme_engine_op_encrypt, _gpgme_engine_op_encrypt_sign, + _gpgme_engine_op_export, _gpgme_engine_op_genkey, + _gpgme_engine_op_import, _gpgme_engine_op_keylist, + _gpgme_engine_op_keylist_ext, _gpgme_engine_op_sign, + _gpgme_engine_op_trustlist, _gpgme_engine_op_verify, + _gpgme_engine_start, _gpgme_engine_set_io_cbs, + _gpgme_engine_io_event): Reimplement. + * engine.h: Fix a few comments and a variable name in a prototype. + * ops.h: Do not include "rungpg.h". + * passphrase.c: Include config.h only if [HAVE_CONFIG_H]. Do not + include "rungpg.h". + * recipient.c: Likewise. + * signers.c: Likewise. + * version.c: Likewise. + * rungpg.c: Likewise. Include "engine-backend.h". Reorder + functions and remove prototypes. + (_gpgme_gpg_get_version): Make static and rename to ... + (gpg_get_version): ... this. + (_gpgme_gpg_check_version): Make static and rename to ... + (gpg_check_version): ... this. + (_gpgme_gpg_new): Make static. Change argument type from + GpgObject * to void **. Call gpg_release instead + _gpgme_gpg_release. + (_gpgme_gpg_op_decrypt): Make static and rename to ... + (gpg_check_decrypt): ... this. + (_gpgme_gpg_op_delete): Make static and rename to ... + (gpg_check_delete): ... this. + (_gpgme_gpg_set_recipients): Make static and rename to ... + (gpg_check_set_recipients): ... this. + (_gpgme_gpg_op_encrypt): Make static and rename to ... + (gpg_encrypt): ... this. + (_gpgme_gpg_op_export): Make static and rename to ... + (gpg_export): ... this. + (_gpgme_gpg_op_genkey): Make static and rename to ... + (gpg_genkey): ... this. + (_gpgme_gpg_op_import): Make static and rename to ... + (gpg_import): ... this. + (_gpgme_gpg_op_keylist): Make static and rename to ... + (gpg_keylist): ... this. + (_gpgme_gpg_op_keylist_ext): Make static and rename to ... + (gpg_keylist_ext): ... this. + (_gpgme_gpg_op_sign): Make static and rename to ... + (gpg_sign): ... this. + (_gpgme_gpg_op_trustlist): Make static and rename to ... + (gpg_trustlist): ... this. + (_gpgme_gpg_op_verify): Make static and rename to ... + (gpg_verify): ... this. + (gpg_status_handler): Rename to ... + (status_handler): ... this. + (_gpgme_gpg_set_status_handler): Make static and rename to ... + (gpg_set_status_handler): ... this. + (_gpgme_gpg_set_colon_line_handler): Make static and rename to ... + (gpg_set_colon_line_handler): ... this. + (gpgme_gpg_add_io_cb): Rename to ... + (add_io_cb): ... this. + (_gpgme_gpg_start): Make static and rename to ... + (gpg_start): ... this. + (_gpgme_gpg_set_io_cb): Make static and rename to ... + (gpg_set_io_cb): ... this. + (_gpgme_gpg_io_event): Make static and rename to ... + (gpg_io_event): ... this. + (struct _gpgme_engine_ops_gpg): New variable. + +2002-10-10 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_verify) [!ENABLE_GPGSM]: Add + missing argument. + +2002-10-09 Marcus Brinkmann + + * data.h, data-user.c, data-stream.c, data-mem.c, data-fd.c, + data-compat.c: New file. Really check them in this time, completes + 2002-10-08 change. + + * rungpg.h (GpgStatusHandler): Rename type to GpgmeStatusHandler + and move to ... + * types.h (GpgmeStatusHandler): ... here. + * rungpg.h (GpgColonLineHandler): Rename type to GpgmeColonLineHandler. + and move to ... + * types.h (GpgmeColonLineHandler): ... here. + * rungpg.h (GpgCommandHandler): Rename type to GpgmeCommandHandler. + and move to ... + * types.h (GpgmeCommandHandler): ... here. + * engine.h: Don't include "rungpg.h". + (_gpgme_engine_set_status_handler): Change type of + argument from GpgStatusHandler to GpgmeStatusHandler. + (_gpgme_engine_set_colon_line_handler): Change type of + argument from GpgColonLineHandler to GpgmeColonLineHandler. + (_gpgme_engine_set_command_handler): Change type of + argument from GpgCommandHandler to GpgmeCommandHandler. + * engine-gpgsm.h: Don't include "rungpg.h". + (_gpgme_gpgsm_set_status_handler): Change type of + argument from GpgStatusHandler to GpgmeStatusHandler. + (_gpgme_gpgsm_set_colon_line_handler): Change type of + argument from GpgColonLineHandler to GpgmeColonLineHandler. + * engine-gpgsm.c: Do not include "rungpg.h". + (struct gpgsm_object_s): Change type of + status.fnc to GpgmeStatusHandler. Change type of colon.fnc to + GpgmeColonLineHandler. + (gpgsm_assuan_simple_command): Change type of argument from + GpgStatusHandler to GpgmeStatusHandler. + (_gpgme_gpgsm_set_status_handler): Likewise. + (_gpgme_gpgsm_set_colon_line_handler): Change type of argument from + GpgColonLineHandler to GpgmeColonLineHandler. + * rungpg.h (_gpgme_gpg_set_status_handler): Change type of + argument from GpgStatusHandler to GpgmeStatusHandler. + (_gpgme_gpg_set_colon_line_handler): Change type of + argument from GpgColonLineHandler to GpgmeColonLineHandler. + (_gpgme_gpg_set_command_handler): Change type of + argument from GpgCommandHandler to GpgmeCommandHandler. + * rungpg.c (struct gpg_object_s): Change type of status.fnc to + GpgmeStatusHandler. Change type of colon.fnc to + GpgmeColonLineHandler. Change type of cmd.fnc to + GpgmeCommandLineHandler. + (_gpgme_gpg_set_status_handler): Change type of argument FNC to + GpgmeStatusHandler. + (_gpgme_gpg_set_colon_line_handler): Change type of argument FNC + to GpgmeColonLineHandler. + (_gpgme_gpg_set_command_handler): Change type of argument FNC to + GpgmeCommandHandler. + * engine.c (_gpgme_engine_set_status_handler): Change type of + argument FNC to GpgmeStatusHandler. + (_gpgme_engine_set_colon_line_handler): Change type of argument FNC + to GpgmeColonLineHandler. + (_gpgme_engine_set_command_handler): Change type of argument FNC to + GpgmeCommandHandler. + + * rungpg.h (_gpgme_gpg_enable_pipemode): Remove prototype. + * rungpg.c (struct gpg_object_s): Remove PM. + (pipemode_cb): Prototype removed. + (add_pm_data): Function removed. + (_gpgme_gpg_enable_pipemode): Likewise. + (pipemode_copy): Likewise. + (pipemode_cb): Likewise. + (add_arg): Don't check for pipemode. + (add_data): Likewise. + (_gpgme_gpg_set_status_handler): Likewise. + (_gpgme_gpg_set_colon_line_handler): Likewise. + (_gpgme_gpg_set_command_handler): Likewise. + (_gpgme_gpg_spawn): Likewise. + (_gpgme_gpg_spawn): Don't set PM.active. + (_gpgme_gpg_op_verify): Remove pipemode case. + * verify.c (_gpgme_op_verify_start): Remove pipemode case. + + * rungpg.h (_gpgme_gpg_add_arg, _gpgme_gpg_add_data, + _gpgme_gpg_add_pm_data, _gpgme_gpg_housecleaning, + _gpgme_gpg_set_simple_line_handler): Prototype removed. + (_gpgme_gpg_set_verbosity): New prototype. + * rungpg.c (_gpgme_gpg_add_data): Make static and rename to ... + (add_data): ... this. + (_gpgme_gpg_add_pm_data): Call add_data, not _gpgme_gpg_add_data. + (_gpgme_gpg_set_command_handler): Likewise. + (_gpgme_gpg_op_decrypt, _gpgme_gpg_op_edit, _gpgme_gpg_op_encrypt, + _gpgme_gpg_op_encrypt_sign, _gpgme_gpg_op_export, + _gpgme_gpg_op_genkey, _gpgme_gpg_op_import, _gpgme_gpg_op_sign, + _gpgme_gpg_op_verify): Likewise. + (_gpgme_gpg_add_pm_data): Rename to ... + (add_pm_data): ... this. + (_gpgme_gpg_op_verify): Call add_pm_data, not + _gpgme_gpg_add_pm_data. + (_gpgme_gpg_add_arg): Make static and rename to ... + (add_arg): ... this. + (_gpgme_gpg_set_command_handler, _gpgme_gpg_new, + _gpgme_gpg_op_decrypt, _gpgme_gpg_op_delete, + _gpgme_append_gpg_args_from_signers, _gpgme_gpg_op_edit, + _gpgme_append_gpg_args_from_recipients, _gpgme_gpg_op_encrypt, + _gpgme_gpg_op_encrypt_sign, _gpgme_gpg_op_export, + _gpgme_gpg_op_genkey, _gpgme_gpg_op_import, _gpgme_gpg_op_keylist, + _gpgme_gpg_op_keylist_ext, _gpgme_gpg_op_trustlist, + _gpgme_gpg_op_sign, _gpgme_gpg_op_verify): Use add_arg, not + _gpgme_gpg_add_arg. + (_gpgme_gpg_set_verbosity): New function. + (struct gpg_object_s): Remove member simple from colon. + (_gpgme_gpg_set_colon_line_handler): Don't initialize simple. + (_gpgme_gpg_set_simple_line_handler): Removed function. + (read_colon_line): Don't check the GPG->colon.simple. + * engine.c (_gpgme_engine_set_verbosity): Call + _gpgme_gpg_set_verbosity instead _gpgme_gpg_add_arg. + +2002-10-08 Marcus Brinkmann + + * util.h (_gpgme_malloc, _gpgme_realloc, _gpgme_calloc, + _gpgme_strdup, _gpgme_free): Remove prototypes. + (xtrymalloc, xtrycalloc, xtryrealloc, xtrystrdup, xfree): Remove + macros. + * util.c: File removed. + * Makefile.am (libgpgme_la_SOURCES): Remove util.h. + * conversion.c (_gpgme_decode_c_string): Use malloc instead of + xtrymalloc, realloc instead of xtryrealloc, calloc instead of + xtrycalloc, free instead of xfree. + (_gpgme_data_append_percentstring_for_xml): Likewise. + * data.c (_gpgme_data_new, _gpgme_data_release): Likewise. + * data-compat.c (gpgme_data_new_from_filepart): Likewise. + * data-mem.c (mem_write, mem_release, gpgme_data_new_from_mem, + _gpgme_data_get_as_string): Likewise. + * debug.c (debug_init): Likewise. + * decrypt.c (_gpgme_release_decrypt_result): Likewise. + * delete.c (_gpgme_release_delete_result): Likewise. + * edit.c (_gpgme_release_edit_result, _gpgme_op_edit_start): + Likewise. + * encrypt.c (_gpgme_release_encrypt_result): Likewise. + * engine.c (_gpgme_engine_get_info, _gpgme_engine_new, + _gpgme_engine_release): Likewise. + * engine-gpgsm.c (_gpgme_gpgsm_new, _gpgme_gpgsm_release, + _gpgme_gpgsm_op_decrypt, _gpgme_gpgsm_op_delete, + gpgsm_set_recipients, _gpgme_gpgsm_op_encrypt, + _gpgme_gpgsm_op_export, _gpgme_gpgsm_op_genkey, + _gpgme_gpgsm_op_import, _gpgme_gpgsm_op_keylist, + _gpgme_gpgsm_op_keylist_ext, _gpgme_gpgsm_op_sign, + _gpgme_gpgsm_op_verify, gpgsm_status_handler): Likewise. + * genkey.c (_gpgme_release_genkey_result): Likewise. + * gpgme.c (gpgme_new, gpgme_release): Likewise. + * import.c (_gpgme_release_import_result): Likewise. + * key.c (_gpgme_key_cache_init, _gpgme_key_cache_add, key_new, + add_subkey, gpgme_key_release, _gpgme_key_append_name): Likewise. + * keylist.c (_gpgme_release_keylist_result, keylist_colon_handler, + _gpgme_op_keylist_event_cb, gpgme_op_keylist_next): Likewise. + * ops.h (test_and_allocate_result): Likewise. + * passphrase.c (_gpgme_release_passphrase_result, + _gpgme_passphrase_status_handler, + _gpgme_passphrase_command_handler): Likewise. + * progress.c (_gpgme_progress_status_handler): Likewise. + * recipient.c (gpgme_recipients_new, gpgme_recipients_release, + gpgme_recipients_add_name_with_validity): Likewise. + * rungpg.c (_gpgme_gpg_new, _gpgme_gpg_release, + _gpgme_gpg_add_arg, _gpgme_gpg_add_data, + _gpgme_gpg_set_colon_line_handler, free_argv, free_fd_data_map, + build_argv, _gpgme_gpg_spawn, read_status, read_colon_line): + Likewise. + * sign.c (_gpgme_release_sign_result): Likewise. + * signers.c (_gpgme_signers_add): Likewise. + * trustlist.c (trust_item_new, trustlist_colon_handler, + _gpgme_op_trustlist_event_cb, gpgme_op_trustlist_next, + gpgme_trustitem_release): Likewise. + * verify.c (_gpgme_release_verify_result, finish_sig): Likewise. + * version.c (gpgme_get_engine_info, _gpgme_get_program_version): + Likewise. + * w32-io.c (create_reader, create_writer, destroy_reader, + destroy_writer, build_commandline, _gpgme_io_spawn): Likewise. + * w32-sema.c (critsect_init, _gpgme_sema_cs_destroy): Likewise. + * w32-util.c (read_w32_registry_string): Likewise. + * wait.c (_gpgme_fd_table_deinit, _gpgme_fd_table_put, + _gpgme_wait_event_cb, _gpgme_add_io_cb, _gpgme_remove_io_cb) + * data-compat.c: Include . + +2002-10-08 Marcus Brinkmann + + New data object component: + + * gpgme.h (GpgmeDataReadCb, GpgmeDataWriteCb, GpgmeDataSeekCb, + GpgmeDataReleaseCb): New types. + (struct GpgmeDataCbs): New structure. + (gpgme_data_read): Changed prototype to match that of read() closely. + (gpgme_data_write): Similar for write(). + (gpgme_data_seek, gpgme_data_new_from_cbs, gpgme_data_new_from_fd, + gpgme_data_new_from_stream): New prototypes. + (gpgme_data_get_type, gpgme_check_engine): Prototype removed. + + * Makefile.am (libgpgme_la_SOURCES): Add data.h, data-fd.c, + data-stream.c, data-mem.c, data-user.c and data-compat.c. + * data.c: Reimplemented from scratch. + * (data-compat.c, data-fd.c, data.h, data-mem.c, data-stream.c, + data-user.c): New file. + * context.h (struct gpgme_data_s): Removed. + * conversion.c: Include and . + (_gpgme_data_append): New function. + * data.c (_gpgme_data_append_string): Move to ... + * conversion.c (_gpgme_data_append_string): ... here. + * data.c (_gpgme_data_append_for_xml): Move to ... + * conversion.c (_gpgme_data_append_for_xml): ... here. + * data.c (_gpgme_data_append_string_for_xml): Move to ... + * conversion.c (_gpgme_data_append_string_for_xml): ... here. + * data.c (_gpgme_data_append_percentstring_for_xml): Move to ... + * conversion.c (_gpgme_data_append_percentstring_for_xml): ... here. + + * ops.h (_gpgme_data_get_mode, _gpgme_data_set_mode): Prototype + removed. + * types.h (GpgmeDataMode): Type removed. + + * decrypt.c (_gpgme_decrypt_start): Don't check data type or mode. + * edit.c (_gpgme_op_edit_start): Likewise. + * encrypt.c (_gpgme_op_encrypt_start): Likewise. + * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. + * encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise. + * export.c (_gpgme_op_export_start): Likewise. + * genkey.c (_gpgme_op_genkey_start): Likewise. + * import.c (_gpgme_op_import_start): Likewise. + * sign.c (_gpgme_op_sign_start): Likewise. + * verify.c (_gpgme_op_verify_start): Likewise. + + * encrypt.c (gpgme_op_encrypt): Remove hack that returns invalid + no recipient if no data was returned. + * encrypt-sign.c (gpgme_op_encrypt_sign): Remove hack that returns + no recipient if no data was returned. + * encrypt-sign.c (gpgme_op_encrypt_sign): Remove hack that returns + no recipient if no data was returned. + + * engine.c (_gpgme_engine_op_verify): Add new argument to + differentiate detached from normal signatures. + * engine.h (_gpgme_engine_op_verify): Likewise for prototype. + * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Likewise. Don't check + mode of data argument. + * engine-gpgsm.h (_gpgme_gpgsm_op_verify): Likewise for prototype. + * gpgme.h (gpgme_op_verify_start): Likewise for prototype. + (gpgme_op_verify): Likewise for prototype. + * rungpg.c (_gpgme_gpg_op_verify): Likewise. + * rungpg.h (_gpgme_gpg_op_verify): Likewise for prototype. + * verify.c (_gpgme_op_verify_start): Likewise. + (gpgme_op_verify_start): Likewise. + (gpgme_op_verify): Likewise. + + * rungpg.c (struct arg_and_data_s): New member INBOUND to hold + direction of data object. + (_gpgme_gpg_add_data): Add new argument INBOUND. Use it to + determine direction of data object. + (_gpgme_gpg_add_pm_data, _gpgme_gpg_set_command_handler, + _gpgme_gpg_op_decrypt, _gpgme_gpg_op_edit, _gpgme_gpg_op_encrypt, + _gpgme_gpg_op_encrypt_sign, _gpgme_gpg_op_export, + _gpgme_gpg_op_genkey, _gpgme_gpg_op_import, _gpgme_gpg_op_sign, + _gpgme_gpg_op_verify): Add new argument to _gpgme_gpg_add_data + invocation. + (build_argv): Use new member INBOUND to determine direction of + file descriptor. Don't check the data type. + * rungpg.h (_gpgme_gpg_add_data): Add new argument to prototype. + + * gpgme.c (gpgme_get_op_info): Don't call + _gpgme_data_get_as_string if CTX->op_info is NULL. + + * version.c (gpgme_check_engine): Function removed. + +2002-09-30 Werner Koch + + * keylist.c (keylist_colon_handler): Take care when printing a + NULL with the DEBUG. + + * engine-gpgsm.c (struct gpgsm_object_s): New member ANY. + (gpgsm_status_handler): Run the colon function to indicate EOF. + (_gpgme_gpgsm_set_colon_line_handler): Better reset ANY here. + +2002-09-28 Marcus Brinkmann + + * conversion.c (_gpgme_hextobyte): Prevent superfluous + multiplication with base. Reported by Stéphane Corthésy. + + * keylist.c (gpgme_op_keylist_ext_start): Use private asynchronous + operation type in invocation of _gpgme_op_reset. + +2002-09-20 Werner Koch + + * ath.c: Include sys/time.h if sys/select.h is not available. + +2002-09-13 Marcus Brinkmann + + * keylist.c (keylist_status_handler): Do not call finish_key() here. + (gpgme_op_keylist_ext_start): Set CTX->tmp_key to NULL. + +2002-09-03 Marcus Brinkmann + + * Makefile.am (assuan_libobjs): Remove @LTLIBOBJS@ as we link them + into gpgme unconditionally. + (libgpgme_la_LIBADD): Change @LIBOBJS@ into @LTLIBOBJS@. + +2002-09-02 Marcus Brinkmann + + * Makefile.am (assuan_libobjs): Use @LTLIBOBJS@ instead @LIBOBJS@. + +2002-09-02 Marcus Brinkmann + + * debug.c (_gpgme_debug_add): Test *LINE, not LINE. + (_gpgme_debug_end): Likewise. + Reported by Dr. Stefan Dalibor . + +2002-09-02 Marcus Brinkmann + + * posix-io.c (_gpgme_io_select): Don't use a non-constant struct + initializer. + * version.c (_gpgme_get_program_version): Likewise. + Reported by Dr. Stefan Dalibor . + +2002-09-02 Marcus Brinkmann + + * conversion.c (_gpgme_decode_c_string): Set DESTP before + modifying DEST. + + * conversion.c (_gpgme_decode_c_string): Fix off by one error in + last change. + * rungpg.c (_gpgme_append_gpg_args_from_signers): Move before + _gpgme_op_edit so its prototype is known early on. + + * conversion.c: New file. + * util.h: Add prototypes for _gpgme_decode_c_string and + _gpgme_hextobyte. + * keylist.c (keylist_colon_handler): Call _gpgme_decode_c_string + on issuer name. + * Makefile.am (libgpgme_la_SOURCES): Add conversion.c + * key.c (_gpgme_key_append_name): Replace calls to hextobyte by + calls to _gpgme_hextobyte. + (hash_key): Likewise. + +2002-09-01 Marcus Brinkmann + + * op-support.c (_gpgme_op_reset): Set CTX->pending after calling + _gpgme_engine_release, as this will reset pending to zero in the + event done callback on cancelled operations. + +2002-08-30 Marcus Brinkmann + + * rungpg.c (_gpgme_gpg_op_edit): Add args from signers. + Suggested by Miguel Coca . + + * rungpg.c (_gpgme_gpg_op_edit): Add bogus ctx argument. + * rungpg.h: Also to prototype. + * engine.c (_gpgme_engine_op_edit): Likewise. + * engine.h: Likewise. + * edit.c (_gpgme_op_edit_start): Likewise. + +2002-08-29 Werner Koch + + * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Implement signer + selection. + * vasprintf.c (va_copy): Define macro if not yet defined. + +2002-08-29 Marcus Brinkmann + + * passphrase.c (_gpgme_passphrase_status_handler): Reset + CTX->result.passphrase->no_passphrase if passphrase is given (good + or bad). Submitted by Jean DIRAISON . + +2002-08-28 Marcus Brinkmann + + * posix-io.c (_gpgme_io_spawn): Use a double-fork approach. + Return 0 on success, -1 on error. + * version.c (_gpgme_get_program_version): Don't wait for the child. + * engine.c (_gpgme_engine_housecleaning): Function removed. + (do_reaping): Likewise. + (_gpgme_engine_add_child_to_reap_list): Likewise. + (struct reap_s): Removed. + (reap_list): Likewise. + (reap_list_lock): Likewise. + * engine.h (_gpgme_engine_io_event): Remove prototypes for + _gpgme_engine_housecleaning and + _gpgme_engine_add_child_to_reap_list. + * rungpg.c (_gpgme_gpg_release): Don't add child to reap list. + (struct gpg_object_s): Remove PID member. + (_gpgme_gpg_new): Don't initialize GPG->pid. + (_gpgme_gpg_spawn): Don't set GPG->pid. + * wait.c (run_idle): Removed. + (gpgme_wait): Run idle_function directly. + +2002-08-21 Marcus Brinkmann + + * encrypt-sign.c (encrypt_sign_status_handler): Remove dead + variables encrypt_info and encrypt_info_len. + * trustlist.c (gpgme_op_trustlist_start): Set colon line handler. + * posix-sema.c (sema_fatal): Remove function. + All these reported by Stéphane Corthésy. + +2002-08-23 Werner Koch + + * gpgme-config.in: Made --prefix work for --libs. + +2002-08-21 Marcus Brinkmann + + * ath.h: Update list of symbols that get a prefix: Rename the + ath_mutex_*_available symbols to ath_*_available. + +2002-08-21 Marcus Brinkmann + + * stpcpy.c: New file from gnulib. + * Makefile.am (assuan_libobjs): Remove jnlib. + +2002-08-20 Marcus Brinkmann + + * gpgme.h: Add prototype for gpgme_op_import_ext. + * import.c (struct import_result_s): New member `nr_considered'. + Rename `any_imported' to `nr_imported'. + (import_status_handler): Increment nr_imported. Set nr_considered + if appropriate. + (gpgme_op_import_ext): New function. + (gpgme_op_import): Implement in terms of gpgme_op_import_ext. + +2002-08-20 Werner Koch + + * gpgme.m4: Replaced with a new and faster version. This does not + anymore try to build test programs. If we really need test + programs, we should add an option to gpgme-config to do so. + + * vasprintf.c (int_vasprintf): Hack to handle NULL passed for %s. + +2002-08-20 Marcus Brinkmann + + * gpgme.c (_gpgme_set_op_info): Append data on subsequent calls. + * encrypt-sign.c (encrypt_sign_status_handler): Remove op_info + handling. + +2002-08-19 Werner Koch + + * decrypt.c (is_token,skip_token): Duplicated from verify.c + (gpgme_op_decrypt): Hack to properly return Decryption_Failed.. + (_gpgme_decrypt_status_handler): Create an operation info. + +2002-08-14 Werner Koch + + * key.h (struct certsig_s): New. Use it in gpgme_key_s. + * key.c (gpgme_key_release): Release it. We need to add more code + of course. + (_gpgme_key_append_name): Use memset to intialize the struct. + * gpgme.h (GPGME_KEYLIST_MODE_SIGS): New. + * rungpg.c (_gpgme_gpg_op_keylist): Include sigs in listing depending + non the list mode. + + * key.c (gpgme_key_get_string_attr): Use GPGME_ATTR_TYPE to return + information about the key type (PGP or X.509). + (gpgme_key_get_ulong_attr): Likewise. + + * keylist.c (keylist_colon_handler): Include 1 in the check for + valid algorithms so that RSA is usable. Store the issuer name and + serial number also for "crs" records. Parse the expire date for + subkeys. + (set_userid_flags): Put them onto the last appended key. + +2002-07-29 Marcus Brinkmann + + * rungpg.c (_gpgme_gpg_op_edit): Use --with-colons. + +2002-07-28 Marcus Brinkmann + + * data.c (gpgme_data_read): For GPGME_DATA_TYPE_NONE, return EOF + instead an error. + + The following changes make it possible to flush an inbound data + pipe before invoking a command handler: + + * posix-io.c (_gpgme_io_select): Accept new argument NONBLOCK to + _gpgme_io_select. Set timeout of 0 if this is set. + * w32-io.c (_gpgme_io_select): Likewise. + * io.h: Add new argument NONBLOCK to _gpgme_io_select prototype. + * wait.c (do_select): Add new argument to _gpgme_io_select + invocation. + * rungpg.h (_gpgme_gpg_set_command_handler): Add new argument + linked_data to prototype. + * engine.h (_gpgme_engine_set_command_handler): Likewise. + * engine.c (_gpgme_engine_set_command_handler): Likewise. + * passphrase.c (_gpgme_passphrase_start): Pass NULL as linked_data + argument to _gpgme_engine_set_command_handler. + * rungpg.c (struct gpg_object_s): New members linked_data and + linked_idx in CMD. + (_gpgme_gpg_new): Initialize those new members. + (_gpgme_gpg_set_command_handler): Accept new argument linked_data. + (build_argv): Handle linked_data in the same hack as cb_data. + (read_status): If linked_data is in use, flush the pipe before + activating the command handler. + * gpgme.h: Add prototypes for gpgme_op_edit_start and + gpgme_op_edit. + + The next changes export the status codes to the user: + + * decrypt.c (_gpgme_decrypt_status_handler): Likewise, also prefix + all STATUS_ with GPGME_. + * delete.c (delete_status_handler): Likewise. + * decrypt-verify.c (decrypt_verify_status_handler): Likewise. + * encrypt.c (_gpgme_encrypt_status_handler): Likewise. + (_gpgme_encrypt_sym_status_handler): Likewise. + * encrypt-sign.c (encrypt_sign_status_handler): Likewise. + * engine-gpgsm.c (parse_status): Likewise. + (gpgsm_status_handler): Likewise. + (gpgsm_set_recipients): Likewise. + * export.c (export_status_handler): Likewise. + * genkey.c (genkey_status_handler): Likewise. + * import.c (append_xml_impinfo): Likewise. + (import_status_handler): Likewise. + * keylist.c (keylist_status_handler): Likewise. + * passphrase.c (_gpgme_passphrase_status_handler): Likewise. + (command_handler): Likewise. + * progress.c (_gpgme_progress_status_handler): Likewise. + * sign.c (_gpgme_sign_status_handler): Likewise. + * trustlist.c (trustlist_status_handler): Likewise. + * verify.c (_gpgme_verify_status_handler): Likewise. + * gpgme.h (GpgmeEditCb): New type. + * rungpg.h (GpgStatusCode): Rename and move to ... + * gpgme.h (GpgmeStatusCode): ... this and here. + * Makefile.am (status-table.h): Run mkstatus on gpgme.h, not rungpg.h. + * mkstatus: Prefix STATUS with GPGME_. + * rungpg.h (GpgStatusHandler, GpgCommandHandler): Change type + accordingly. + * ops.h (_gpgme_verify_status_handler, + _gpgme_decrypt_status_handler, _gpgme_sign_status_handler, + _gpgme_encrypt_status_handler, _gpgme_passphrase_status_handler, + _gpgme_progress_status_handler): Likewise. + * rungpg.c (struct gpg_object_s): Likewise for CMD.code. + + These changes add an edit operation to GPGME: + + * context.h (struct gpgme_context_s): New member RESULT.edit. * + ops.h: Add prototype for _gpgme_release_edit_result and + _gpgme_passphrase_command_handler. + * passphrase.c (command_handler): Make non-static and rename to ... + (_gpgme_passphrase_command_handler): ... this. + (_gpgme_passphrase_start): Use new name for command handler. + * types.h: Add EditResult type. + * gpgme.c (_gpgme_release_result): Release EDIT result. + * edit.c: New file. + * Makefile.am (libgpgme_la_SOURCES): Add edit.c. + (libgpgme_la_LDADD): Rename to libgpgme_la_LIBADD, and include + assuan_libobjs. + (assuan_libobjs): New variable, set this instead + libgpgme_la_LIBADD. + * engine.h (_gpgme_engine_op_edit): New prototype. + * engine.c (_gpgme_engine_op_edit): New function. + * rungpg.h (_gpgme_gpg_op_edit): New prototype. + * rungpg.c (_gpgme_gpg_op_edit): New function. + +2002-07-27 Marcus Brinkmann + + * delete.c (delete_problem): New case ambigious specification. + (delete_status_handler): Handle new case (poorly). + +2002-07-25 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_delete): Implement this. + +2002-07-25 Marcus Brinkmann + + * Makefile.am (libgpgme_la_LDADD): Add @LIBOBJS@ for vasprintf and + fopencookie. + * vasprintf.c: Update to more recent libiberty version. + * debug.h: Replace #elsif with #elif. + + Submitted by Stéphane Corthésy: + * util.h (vasprintf): Correct prototype. + * encrypt-sign.c: Include . + (encrypt_sign_status_handler): Change type of ENCRYPT_INFO_LEN to + size_t. + * ath-pthread.c: Include , not . + * ath-pth.c: Likewise. + +2002-07-25 Marcus Brinkmann + + * wait.c (fdt_global): Make static. Reported by Stéphane + Corthésy. + + * rungpg.c (_gpgme_gpg_op_keylist_ext): Skip empty string + patterns. Reported by Stéphane Corthésy. + + * key.c (gpgme_key_get_as_xml): Add OTRUST attribute. Requested + by Stéphane Corthésy. + (gpgme_key_get_string_attr): Add GPGME_ATTR_SIG_SUMMARY case to + silence gcc warning. + + * rungpg.c (_gpgme_gpg_new): Always set utf8 as charset. + +2002-07-03 Marcus Brinkmann + + * gpgme.c (gpgme_set_io_cbs): Deal with CTX being NULL. + + * gpgme.c (_gpgme_op_event_cb_user): New function. + * op-support.c (_gpgme_op_reset): Support a new mode of operation + for private or user event loop. Use new user event callback + wrapper. + * trustlist.c (gpgme_op_trustlist_start): Use this new mode. + * keylist.c (gpgme_op_keylist_start): Likewise. + + * rungpg.c (_gpgme_gpg_io_event): New function. + * rungpg.h (_gpgme_gpg_io_event): New prototype. + * engine-gpgsm.c (_gpgme_gpg_io_event): New function. + * engine-gpgsm.h (_gpgme_gpgsm_io_event): New prototype. + * engine.c (_gpgme_engine_io_event): New function. + * engine.h (_gpgme_engine_io_event): New prototype. + * keylist.c (finish_key): Call _gpgme_engine_io_event, and move + the real work for the default IO callback routines to ... + (_gpgme_op_keylist_event_cb): ... here. New function. + * trustlist.c (trustlist_colon_handler): Signal + GPGME_EVENT_NEXT_TRUSTITEM. Move queue manipulation to ... + (_gpgme_op_trustlist_event_cb): ... here. New function. + * gpgme.c (_gpgme_op_event_cb): Call _gpgme_op_keylist_event_cb + and _gpgme_op_trustlist_event_cb when appropriate. + * ops.h (_gpgme_op_keylist_event_cb): New prototype. + (_gpgme_op_trustlist_event_cb): Likewise. + * op-support.c (_gpgme_op_reset): Add comment why we don't use the + user provided event handler directly. + * gpgme.h (GpgmeRegisterIOCb): Return GpgmeError value, and TAG in + a pointer argument. + * wait.c (_gpgme_add_io_cb): Likewise. + * wait.h (_gpgme_add_io_cb): Likewise for prototype. + * rungpg.c (_gpgme_gpg_add_io_cb): Call IO_CBS->add with new + argument. Fix up error handling. + * engine-gpgsm.c (_gpgme_gpgsm_add_io_cb): Call IO_CBS->add with + new argument, fix up error handling. + +2002-07-03 Werner Koch + + * encrypt.c (status_handler_finish): New. + (_gpgme_encrypt_status_handler): Moved some code out to the new + function and call this function also in case we get into the + status handler with an error which might happen due to a kludge in + engine-gpgsm.c + +2002-06-28 Marcus Brinkmann + + * keylist.c (gpgme_op_keylist_ext_start): Always use our own FD + table (eg use synchronous mode). + +2002-06-27 Marcus Brinkmann + + * gpgme.h: Fix documentation of key attribute retrieval functions. + +2002-06-28 Marcus Brinkmann + + * ops.h (_gpgme_wait_on_condition): Remove HANG argument from + prototype and change return type to GpgmeError. + (_gpgme_wait_one): New prototype. + * wait.c (gpgme_wait): Replace with the meat from + _gpgme_wait_on_condition here, and remove the support for + conditions. + (_gpgme_wait_on_condition): Remove HANG argument from prototype + and change return type to GpgmeError. Replace with meat from + _gpgme_wait_one and add support for conditions. + (_gpgme_wait_one): Just call _gpgme_wait_on_condition without + condition. + * keylist.c (gpgme_op_keylist_ext_start): Always use our own FD + table (eg use synchronous mode). + (gpgme_op_keylist_next): Remove HANG argument from + _gpgme_wait_on_condition. Check its return value. + * trustlist.c (gpgme_op_trustlist_start): Always use our own FD + table (eg use synchronous mode). + (gpgme_op_trustlist_next): Remove HANG argument from + _gpgme_wait_on_condition. Check its return value. + +2002-06-26 Werner Koch + + * engine-gpgsm.c (map_assuan_error): Map No_Data_Available to EOF. + + * import.c (append_xml_impinfo): Kludge to print fingerprint + instead of keyid for use with gpgsm. + (import_status_handler): Set a flag to know whether any import + occured. + (gpgme_op_import): Reurn -1 if no certificate ewas imported. + +2002-06-25 Werner Koch + + * engine-gpgsm.c (_gpgme_gpgsm_set_io_cbs) [ENABLE_GPGSM]: Fixed + function arguments. + +2002-06-25 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_export): Only export the keys + listed in RECP. + * export.c (gpgme_op_export): If no data was returned, return + GPGME_No_Recipients. + +2002-06-25 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_export): Implement. + +2002-06-21 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_assuan_simple_command): Return ERR. + (parse_status): New function. + (gpgsm_status_handler): Use parse_status. + (gpgsm_assuan_simple_command): Accept new arguments STATUS_FNC and + STATUS_FNC_VALUE and process status messages. + (gpgsm_set_recipients): Pass new arugments to gpgsm_assuan_simple_command. + (gpgsm_set_fd): Likewise. + (_gpgme_gpgsm_op_keylist): Likewise. + (_gpgme_gpgsm_op_keylist_ext): Likewise. + (_gpgme_gpgsm_op_sign): Likewise. + +2002-06-21 Marcus Brinkmann + + * wait.c (_gpgme_remove_io_cb): Unlock FDT->lock. + +2002-06-20 Werner Koch + + * rungpg.c (build_argv): Ignore GPG_AGENT_INFO if set but empty. + + * verify.c (calc_sig_summary): Set bad policy for wrong key usage. + (skip_token): New. + (_gpgme_verify_status_handler): Watch out for wrong key usage. + (gpgme_get_sig_string_attr): Hack to return info on the key + usage. Does now make use of the former RESERVED argument which + has been renamed to WHATIDX. + (gpgme_get_sig_ulong_attr): Renamed RESERVED to WHATIDX. + +2002-06-14 Marcus Brinkmann + + * wait.c (do_select): Return -1 on error, and 0 if nothing to run. + (_gpgme_wait_one): Only set HANG to zero if do_select returned an + error, or there are no more file descriptors to wait on. + (_gpgme_wait_on_condition): Ignore return value from do_select for + now. + +2002-06-13 Werner Koch + + * verify.c (gpgme_op_verify): Make sure that we never access an + unitialized result structure. + +2002-06-12 Werner Koch + + * keylist.c (struct keylist_result_s): New. + (_gpgme_release_keylist_result): Release it here + (keylist_status_handler): Handle truncated. + (append_xml_keylistinfo): New. + * gpgme.c (_gpgme_release_result): and use it here. + * types.h: Declare the new type here. + * context.h (struct gpgme_context_s): Use it here. + +2002-06-11 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_release): Close status_cb.fd. + (_gpgme_gpgsm_new): Duplicate status file descriptor, so we can + use our own close notification mechanism without interfering with + assuan. + +2002-06-11 Werner Koch + + * gpgme.h: Add GPGME_ATTR_SIG_SUMMARY and the GPGME_SIGSUM_ + constants. + * verify.c (calc_sig_summary): New. + (gpgme_get_sig_ulong_attr): And use it here. + +2002-06-10 Werner Koch + + * rungpg.h: Add new status codes TRUNCATED and ERROR. + * verify.c (is_token, copy_token): New. + (_gpgme_verify_status_handler): Use copy_token, handle the new + ERROR status and store the errorcode used withgpgsm and trust + status codes. + * gpgme.h: New attribute ERRTOK. + * key.c (gpgme_key_get_string_attr): Add dummy case for it. + (gpgme_get_sig_string_attr): Use it here to return the last error. + +2002-06-10 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_start): Move the code that sets the + close notification for the status fd to ... + (_gpgme_gpgsm_new): ... here. + * wait.h: Include "sema.h". Remove prototypes of + _gpgme_remove_proc_from_wait_queue and + _gpgme_register_pipe_handler. Add prototypes of + _gpgme_fd_table_init, _gpgme_fd_table_deinit, _gpgme_fd_table_put, + _gpgme_add_io_cb, _gpgme_remove_io_cb, _gpgme_wait_event_cb and + _gpgme_wait_one.. + * wait.c: Remove global variables PROC_QUEUE, PROC_QUEUE_LOCK, + FD_TABLE_SIZE, FD_TABLE, FD_TABLE_LOCK. New global variables + FDT_GLOBAL, CTX_DONE_LIST, CTX_DONE_LIST_SIZE, + CTX_DONE_LIST_LENGTH and CTX_DONE_LIST_LOCK. Remove struct + proc_s. Replace struct wait_item_s. + (_gpgme_fd_table_init): New function. + (_gpgme_fd_table_deinit): Likewise. + (_gpgme_fd_table_put): Likewise. + (set_process_done): Remove function. + (do_select): Take argument FDT. Use that to decide which fds to + select on. + (_gpgme_remove_proc_from_wait_queue): Remove function. + (_gpgme_wait_event_cb): New function. + (_gpgme_wait_one): Likewise. + (_gpgme_register_pipe_hanldler): Remove function. + (_gpgme_add_io_cb): New function. + (_gpgme_remove_io_cb): Likewise. + (_gpgme_freeze_fd): Remove function. + (_gpgme_thaw_fd): Remove function. + * rungpg.c (struct fd_data_map_s): Add new member TAG. + (struct gpg_object_s): Likewise for STATUS and COLON. Add member + IDX to CMD. Add new member IO_CBS. + (close_notify_handler): New variables POSSIBLY_DONE and NOT_DONE. + For each I/O callback, check if it should be unregistered. If all + callbacks have been unregistered, trigger GPGME_EVENT_DONE. + Remove member RUNNING. + (_gpgme_gpg_new): Initialize new members. + (_gpgme_gpg_release): Check PID not RUNNING. Don't call + _gpgme_remove_proc_from_wait_queue. Close GPG->CMD.FD if set. + (build_argv): Store away the index instead the file descriptor for + CMD. + (_gpgme_gpg_add_io_cb): New function. + (_gpgme_gpg_spawn): Use _gpgme_gpg_add_io_cb to register IO + callbacks. + (gpg_status_handler): Change return type to void, remove PID + argument, close filedescriptor if EOF or error occurs. + (read_status): Use _gpgme_gpg_add_io_cb instead _gpgme_thaw_fd. + Use IO_CBS->remove instead _gpgme_freeze_fd. + (gpg_colon_line_handler): Change return type to void, remove PID + argument, close filedescriptor if EOF or error occurs. + (command_cb): Use IO_CBS->remove instead _gpgme_freeze_fd. + (_gpgme_gpg_set_io_cbs): New function. + * rungpg.h (_gpgme_gpg_set_io_cbs): Prototype for + _gpgme_gpg_set_io_cbs. + * gpgme.h (GpgmeIOCb): New type. + (GpgmeRegisterIOCb): Likewise. + (GpgmeRemoveIOCb): Likewise. + (GpgmeEventIO): Likewise. + (GpgmeEventIOCb): Likewise. + (struct GpgmeIOCbs): New structure to hold I/O callbacks. + (gpgme_set_op_io_cbs): New prototype. + (gpgme_get_op_io_cbs): Likewise. + * ops.h: New prototype for _gpgme_op_event_cb. Remove prototypes + for _gpgme_freeze_fd and _gpgme_thaw_fd. Remove PID argument from + _gpgme_data_inbound_handler and _gpgme_data_outbound_handler + prototype. Add prototype for _gpgme_op_reset. + Add synchronous argument to _gpgme_decrypt_start prototype. + * io.h: Beautification. + * gpgme.c: Include "wait.h". + (gpgme_new): Initialize FDT. + (gpgme_set_io_cbs): New function. + (gpgme_get_io_cbs): Likewise. + (_gpgme_op_event_cb): Likewise. + * data.c (_gpgme_data_inbound_handler): Change return type to + void. Drop PID argument. Close FD on error and EOF. + (write_mem_data): Don't close FD here ... + (write_cb_data): ... or here ... + (_gpgme_data_outbound_handler): ... but here. Change return type + to void. Drop PID argument. + * context.h: Include "wait.h". + (struct gpgme_context_s): New members FDT and IO_CBS. + * op-support.c: New file. + * Makefile.am (libgpgme_la_SOURCES): Add op-support.c. + * ops.h: Add prototype for _gpgme_op_reset(). + * decrypt.c (_gpgme_decrypt_start): New argument SYNCHRONOUS. Use + _gpgme_op_reset. + (gpgme_op_decrypt_start): Add synchronous argument. + (gpgme_op_decrypt): Likewise. Use _gpgme_wait_one instead + gpgme_wait. + * delete.c (gpgme_op_delete_start): Rename to ... + (_gpgme_op_delete_start): ... this. New argument SYNCHRONOUS. + Use _gpgme_op_reset. Make function static. + (gpgme_op_delete_start): Just a wrapper around + _gpgme_op_delete_start now. + (gpgme_op_delete): Add synchronous argument. Use _gpgme_wait_one + instead gpgme_wait. + * encrypt.c: Include "wait.h". + (ggpgme_op_encrypt_start): Rename to ... + (_gpgme_op_encrypt_start): ... this. New argument SYNCHRONOUS. + Use _gpgme_op_reset. Make function static. + (gpgme_op_encrypt_start): Just a wrapper around + _gpgme_op_encrypt_start now. + (gpgme_op_encrypt): Add synchronous argument. Use _gpgme_wait_one + instead gpgme_wait. + * encrypt_sign.c (gpgme_op_encrypt_sign_start): Rename to ... + (_gpgme_op_encrypt_sign_start): ... this. New argument + SYNCHRONOUS. Use _gpgme_op_reset. Make function static. + (gpgme_op_encrypt_sign_start): Just a wrapper around + _gpgme_op_encrypt_sign_start now. + (gpgme_op_encrypt_sign): Add synchronous argument. Use + _gpgme_wait_one instead gpgme_wait. + * export.c (gpgme_op_export_start): Rename to ... + (_gpgme_op_export_start): ... this. New argument SYNCHRONOUS. + Use _gpgme_op_reset. Make function static. + (gpgme_op_export_start): Just a wrapper around + _gpgme_op_export_start now. + (gpgme_op_export): Add synchronous argument. Use _gpgme_wait_one + instead gpgme_wait. + * genkey.c (gpgme_op_genkey_start): Rename to ... + (_gpgme_op_genkey_start): ... this. New argument SYNCHRONOUS. + Use _gpgme_op_reset. Make function static. + (gpgme_op_genkey_start): Just a wrapper around + _gpgme_op_genkey_start now. + (gpgme_op_genkey): Add synchronous argument. Use _gpgme_wait_one + instead gpgme_wait. + * import.c (gpgme_op_import_start): Rename to ... + (_gpgme_op_import_start): ... this. New argument SYNCHRONOUS. + Use _gpgme_op_reset. Make function static. + (gpgme_op_import_start): Just a wrapper around + _gpgme_op_import_start now. + (gpgme_op_import): Add synchronous argument. Use _gpgme_wait_one + instead gpgme_wait. + * keylist.c (gpgme_op_keylist_start): Use _gpgme_op_reset. + (gpgme_op_keylist_ext_start): Likewise. + * sign.c (gpgme_op_sign_start): Rename to ... + (_gpgme_op_sign_start): ... this. New argument SYNCHRONOUS. Use + _gpgme_op_reset. Make function static. + (gpgme_op_sign_start): Just a wrapper around _gpgme_op_sign_start + now. + (gpgme_op_sign): Add synchronous argument. Use _gpgme_wait_one + instead gpgme_wait. + * trustlist.c (gpgme_op_trustlist_start): Use _gpgme_op_reset. + * verify.c (gpgme_op_verify_start): Rename to ... + (_gpgme_op_verify_start): ... this. New argument SYNCHRONOUS. + Use _gpgme_op_reset. Make function static. + (gpgme_op_verify_start): Just a wrapper around + _gpgme_op_verify_start now. + (gpgme_op_verify): Add synchronous argument. Use _gpgme_wait_one + instead gpgme_wait. + * engine-gpgsm.c (iocb_data_t): New type. + (struct gpgsm_object_s): New member status_cb. Replace input_fd + and input_data with input_cb. Replace output_fd and output_data + with output_cb. Replace message_fd and message_data with + message_cb. New member io_cbs. + (_gpgme_gpgsm_new): Initialize all new members (and drop the old + ones). + (close_notify_handler): New variable POSSIBLY_DONE. For each I/O + callback, check if it should be unregistered. If all callbacks + have been unregistered, trigger GPGME_EVENT_DONE. + (_gpgme_gpgsm_release): Remove variable PID. Use new variable + names to close the file descriptors. + (_gpgme_gpgsm_op_decrypt): Use new variable names, + (_gpgme_gpgsm_op_encrypt): Likewise. + (_gpgme_gpgsm_op_genkey): Likewise. + (_gpgme_gpgsm_op_import): Likewise. + (_gpgme_gpgsm_op_keylist): Likewise. + (_gpgme_gpgsm_op_keylist_ext): Likewise. + (_gpgme_gpgsm_op_sign): Likewise. + (_gpgme_gpgsm_op_verify): Likewise. + (gpgsm_status_handler): Drop argument PID. Change return type to + void. Close status pipe before returning because of EOF or error. + (_gpgme_gpgsm_add_io_cb): New function. + (_gpgme_gpgsm_start): Use _gpgme_gpgsm_add_io_cb to register + callback function. + (_gpgme_gpgsm_set_io_cbs): New function. + * engine-gpgsm.h: New prototype for _gpgme_gpgsm_set_io_cbs. + * engine.c (_gpgme_engine_set_io_cbs): New function. + * engine.h: New prototype for _gpgme_engine_set_io_cbs. + +2002-06-04 Marcus Brinkmann + + * Makefile.am (libgpgme_la_SOURCES): Remove mutex.h. + +2002-06-03 Marcus Brinkmann + + * key.c: Include . + (_gpgme_key_append_name): Skip one more char when + processing escaped char. Submitted by Marc Mutz . + Handle hexadecimal encodings. Also reported by Marc. Thanks! + +2002-06-02 Marcus Brinkmann + + * ath.h: Enable the _gpgme_ prefix. Fix all those prefix macros. + * posix-sema.c: Use that prefix here. + * posix-io.c: Include "ath.h". + (_gpgme_io_read): Use _gpgme_ath_read instead read. + (_gpgme_io_write): Use _gpgme_ath_write instead write. + (_gpgme_io_waitpid): Use _gpgme_ath_waitpid instead waitpid. + (_gpgme_io_select): Use _gpgme_ath_select instead select. + +2002-06-02 Marcus Brinkmann + + * Makefile.am (ath_components): New variable. + (ath_components_pthread): Likewise. + (ath_components_pth): Likewise. + (system_components): Add ath_componentes. + + * ath.h: New file. + * ath.c: Likewise. + * ath-pthread.c: Likewise. + * ath-pth.c: Likewise. + * posix-sema.c (_gpgme_sema_cs_enter): Rework to use the ATH + interface. + * mutex.h: Remove file. + +2002-05-30 Werner Koch + + * key.c (gpgme_key_get_string_attr): Return NULL when asking for + an issuer with IDX > 0. We don't support altIssuerNames for now. + +2002-05-22 Werner Koch + + * engine-gpgsm.c (_gpgme_gpgsm_op_keylist_ext): Aehmm, added + missing variable definition. Oohh - Marcus was faster. + +2002-05-22 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_keylist_ext): Fix last change. + +2002-05-21 Werner Koch + + * engine-gpgsm.c (_gpgme_gpgsm_op_keylist) + (_gpgme_gpgsm_op_keylist_ext): Pass the keylist mode to gpgsm. + +2002-05-10 Werner Koch + + * key.h (gpgme_key_s): Add OTRUST. + * keylist.c (set_ownertrust): New. + (keylist_colon_handler): Get the ownertrust value + * key.c (gpgme_key_get_string_attr,gpgme_key_get_ulong_attr): + Return that value. + +2002-05-08 Marcus Brinkmann + + * w32-util.c: New static variable GET_PATH_LOCK. + (_gpgme_get_gpg_path): Remove superfluous NULL initializer. + Take lock while determining path. + (_gpgme_get_gpgsm_path): Likewise. + * version.c (do_subsystem_inits): Set DONE to 1 after + initialization. + (gpgme_get_engine_info): New variable ENGINE_INFO_LOCK. Take lock + while determining engine info. + * rungpg.c (_gpgme_gpg_get_version): New variable + GPG_VERSION_LOCK. Take the lock while determining the program + version. + * posix-io.c: Include "sema.h". + (_gpgme_io_spawn): New variable FIXED_SIGNALS_LOCK. Take the lock + while fixing the signals. + (_gpgme_io_select): Make READFDS and WRITEFDS non-static. + * key.c: Include "sema.h". New globals KEY_CACHE_LOCK and + KEY_REF_LOCK. + (capabilities_to_string): Make STRINGS very const. + (_gpgme_key_cache_add): Lock the key cache. + (_gpgme_key_cache_get): Likewise. + (gpgme_key_ref, gpgme_key_release): Lock the key_ref_lock. + * import.c (append_xml_impinfo): Make IMPORTED_FIELDS and + IMPORT_RES_FIELDS very const. Make FIELD and FIELD_NAME a litle + const. + * engine.c (_gpgme_engine_get_info): New variable + ENGINE_INFO_LOCK. Take lock while determining engine info. + * engine-gpgsm.c: Include "sema.h". + (_gpgme_gpgsm_get_version): New variable GPGSM_VERSION_LOCK. Take + lock while getting program version. + +2002-05-08 Marcus Brinkmann + + * debug.h: New file. + * Makefile.am (libgpgme_la_SOURCES): Add debug.h. + * util.h: Removed all prototypes and declarations related to + debugging. Include "debug.h". + + * debug.c (debug_level): Comment variable and remove superfluous + zero initializer. + (errfp): Likewise. + (_gpgme_debug_enabled): Function removed. + (struct debug_control_s): Definition removed. + (_gpgme_debug_level): Function removed. + (_gpgme_debug_begin): Rewritten to use vasprintf. Accept a + pritnf-style format specification and a variable number of + arguments. + (_gpgme_debug_add): Rewritten using vasprintf. Expect that format + starts out with "%s" for simplicity. + (_gpgme_debug_end): Rewritten using vasprintf. Do not accept a + TEXT argument anymore. + + * posix-io.c (_gpgme_io_select): Use new level argument for + DEBUG_BEGIN instead explicit if construct. + + * debug.c (debug_init): Remove superfluous zero initializer, + remove volatile flag of INITIALIZED. Do not use the + double-checked locking algorithm, it is fundamentally flawed and + will empty your fridge (on a more serious note, despite the + volatile flag it doesn't give you the guarantee you would expect, + for example on a DEC Alpha or an SMP machine. The volatile only + serializes accesses to the volatile variable, but not to the other + variables). + +2002-05-03 Werner Koch + + * engine-gpgsm.c (_gpgme_gpgsm_new): Redirect any gpgsm error + output to /dev/null. + + * verify.c (gpgme_get_sig_key): Set the protocol of the listctx. + * gpgme.c (gpgme_get_protocol): New. + + * data.c (gpgme_data_write): Changed type of BUFFER to void*. + (gpgme_data_read): Ditto. + + * verify.c (_gpgme_verify_status_handler): Handle TRUST_* status + lines so that a claim can be made without looking up the key. + (gpgme_get_sig_string_attr): New. + (gpgme_get_sig_ulong_attr): New. + + * gpgme.h (GpgmeAttr): Added GPGME_ATTR_SIG_STATUS. + + * rungpg.h: Add new status codes from gpg 1.0.7 and formatted the + list to align with the status.h file from gnupg. + + * gpgme.h (GpgmeSigStat): Add _GOOD_EXP and _GOOD_EXPKEY. + * verify.c (_gpgme_verify_status_handler, finish_sig): Handle + these new status codes. Store the expiration time + +2002-04-27 Werner Koch + + * gpgme.h (GpgmeData_Encoding): New. + * data.c (gpgme_data_get_encoding,gpgme_data_set_encoding): New. + * engine-gpgsm.c (map_input_enc): New. Use it in all local + functions where the INPUT command gets send. + +2002-04-27 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Close the output + descriptor only when we don't need it anymore. Close the message + descriptor if we don't need it. + +2002-04-26 Werner Koch + + * Makefile.am (libgpgme_la_LIBADD): Use libtool libraries. + +2002-04-25 Marcus Brinkmann + + * rungpg.c (_gpgme_gpg_release): Call gpgme_data_release on + GPG->cmd.cb_data, not xfree. + +2002-04-25 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_new): Set the display, ttyname, + ttytype, lc_ctype and lc_messages options in the server. + +2002-04-24 Marcus Brinkmann + + * engine-gpgsm.c (map_assuan_error): Add new error codes. + +2002-04-23 Werner Koch + + * key.c (gpgme_key_get_ulong_attr): Swapped use of can_encrypt and + can_certify to return the requested values. + +2002-04-23 Marcus Brinkmann + + * gpgme.c (gpgme_get_progress_cb): Allow either return parameter + to be NULL. + (gpgme_get_passphrase_cb): Likewise. + +2002-04-22 Marcus Brinkmann + + * gpgme.c (gpgme_get_passphrase_cb): New function. + (gpgme_get_progress_cb): New function. + * gpgme.h: Add new prototypes for gpgme_get_passphrase_cb and + gpgme_get_progress_cb. + +2002-03-28 Werner Koch + + * gpgme.h (GpgmeAttr): Add values for issuer and chaining. + * key.h (gpgme_key_s): Add issuer and chaining elements for X509. + * keylist.c (keylist_colon_handler): Store them. + * key.c (gpgme_key_release): Free them. + (gpgme_key_get_as_xml,gpgme_key_get_string_attr): Print them. + +2002-03-26 Werner Koch + + * Makefile.am (libgpgme_la_SOURCES): Add mutex.h + +2002-03-21 Werner Koch + + * util.h [!HAVE_FOPENCOOKIE]: Make sure off_t and ssize_t are + defined. + +2002-03-18 Marcus Brinkmann + + * Makefile.am (system_components): New variable, set depending on + HAVE_DOSISH_SYSTEM. + (libgpgme_la_SOURCES): Use system_components. Remove `syshdr.h'. + * syshdr.h: File removed. + + * posix-io.c: Remove !HAVE_DOSISH_SYSTEM safeguard. Clean up source. + * posix-sema.c: Likewise. + * posix-util.c: Likewise. + + * w32-io.c: Remove HAVE_DOSISH_SYSTEM safeguard. + * w32-sema.c: Likewise. + * w32-util.c: Likewise. + + * posix-io.c: Include `unistd.h', do not include `syshdr.h'. + * posix-sema.c: Likewise. + * w32-io.c: Include `io.h', do not include `syshdr.h' + * w32-sema.c: Likewise. + * w32-util.c: Likewise. + * data.c: Do not include `syshdr.h'. + * wait.c: Likewise. + * wait.h: Code cleanup. + + * mutex.h: New file. + * posix-sema.c: Implement. + +2002-03-08 Werner Koch + + * util.h [!HAVE_FOPENCOOKIE]: Fixed type. Thanks to Frank Heckenbach. + +2002-03-07 Werner Koch + + * gpgme.h (gpgme_op_keylist_ext_start): Add prototype. + +2002-03-06 Marcus Brinkmann + + * encrypt.c (_gpgme_encrypt_sym_status_handler): New function. + (gpgme_op_encrypt_start): New variable SYMMETRIC, set it if RECP + is null, and if it is set, use _gpgme_encrypt_sym_status_handler + as status handler and run _gpgme_passphrase_start. + * rungpg.c (_gpgme_gpg_op_encrypt): If RECP is zero, do symmetric + encryption. + * engine-gpgsm.c (_gpgme_gpgsm_op_encrypt): If RECP is zero, + return error value. + + * rungpg.c (_gpgme_gpg_op_verify): Add "--" argument. + +2002-03-03 Marcus Brinkmann + + * passphrase.c (_gpgme_passphrase_status_handler): Also set the + error No_Passphrase if only a bad passphrase was provided. + +2002-03-03 Marcus Brinkmann + + * rungpg.c (_gpgme_gpg_op_verify): If TEXT is of mode + GPGME_DATA_MODE_IN, construct a command line that stores the + plaintext in TEXT. + * verify.c (gpgme_op_verify_start): Accept TEXT being + uninitialized, and in this case interpret SIG as a normal or + cleartext signature and TEXT as a return data object. + * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Likewise. + +2002-03-03 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_keylist_ext) [!ENABLE_GPGSM]: + Add stub function. + +2002-02-28 Werner Koch + + * key.h (subkey_s): New member expires_at. + * keylist.c (keylist_colon_handler): Set it here + * key.c (gpgme_key_get_as_xml,gpgme_key_get_ulong_attr): Return it. + +2002-02-27 Marcus Brinkmann + + * rungpg.h (_gpgme_gpg_op_keylist_ext): New prototype. + * rungpg.c (_gpgme_gpg_op_keylist_ext): New function. + * engine-gpgsm.h (_gpgme_gpgsm_op_keylist_ext): New prototype. + * engine-gpgsm.c (_gpgme_gpgsm_op_keylist_ext): New function. + * engine.h (_gpgme_engine_op_keylist_ext): New prototype. + * engine.c (_gpgme_engine_op_keylist_ext): New function. + * keylist.c (gpgme_op_keylist_ext_start): New function. + +2002-02-27 Marcus Brinkmann + + * gpgme.h: Add new error code GPGME_Invalid_Recipient. + * encrypt.c (struct encrypt_result_s): New member invalid_recipients, + rename no_recipients to no_valid_recipients. + (_gpgme_encrypt_status_handler): Include error for invalid + recipients. + * engine-gpgsm.c (gpgsm_set_recipients): Change type of first + argument to GpgsmObject. Use that to report back the status about + the recipients. + +2002-02-26 Marcus Brinkmann + + * verify.c (_gpgme_verify_status_handler): Fix the last change. + +2002-02-25 Marcus Brinkmann + + * verify.c (_gpgme_verify_status_handler): Parse the args line to + see if the problem is due to a missing key, and report that back + to the user. + +2002-02-25 Marcus Brinkmann + + * engine.c (_gpgme_engine_op_encrypt_sign): New function. + * engine.h (_gpgme_engine_op_encrypt_sign): New prototype. + * rungpg.c (_gpgme_append_gpg_args_from_signers): New function. + (_gpgme_gpg_op_sign): Use that new function. + (_gpgme_gpg_op_encrypt_sign): New function. + * rungpg.h (_gpgme_gpg_op_encrypt_sign): New prototype. + * gpgme.h (gpgme_op_encrypt_sign_start): New prototype. + (gpgme_op_encrypt_sign): Likewise. + * Makefile.am (libgpgme_la_SOURCES): Add encrypt-sign.c. + * ops.h (_gpgme_encrypt_status_handler): Add prototype. + (_gpgme_sign_status_handler): Add prototype. + * sign.c (sign_status_handler): Rename to ... + (_gpgme_sign_status_handler): ... this and make non-static. + * encrypt.c (encrypt_status_handler): Rename to ... + (_gpgme_encrypt_status_handler): ... this and make non-static. + * encrypt.c (gpgme_op_encrypt_start): Use new status handler name. + * sign.c (gpgme_op_sign_start): Likewise. + +2002-02-25 Marcus Brinkmann + + * context.h (struct gpgme_context_s): New member include_certs. + * gpgme.h (gpgme_set_include_certs): Add prototype. + (gpgme_get_include_certs): Likewise. + * gpgme.c (gpgme_set_include_certs): New function. + (gpgme_get_include_certs): Likewise. + (gpgme_new): Set include_certs to 1 (the default). + * engine.c (_gpgme_engine_op_sign): Accept new argument include_certs, + and pass it to _gpgme_gpgsm_op_sign. + * engine.h (_gpgme_engine_op_sign): Likewise for prototype. + * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Accept new argument + include_certs and handle it. + * engine-gpgsm.h (_gpgme_gpgsm_start): Add new argument include_certs. + * sign.c (gpgme_op_sign_start): Add new argument to + _gpgme_engine_op_sign call. + +2002-02-14 Werner Koch + + * keylist.c (gpgme_op_keylist_start): Do not use a verbose listing. + +2002-02-13 Werner Koch + + * vasprintf.c, fopencookie.c: Add replacement functions. + * util.h: Add prototypes for them. + +2002-02-09 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_assuan_simple_command): Return 0 if we + reach the end of the function. + +2002-02-09 Marcus Brinkmann + + * genkey.c (gpgme_op_genkey_start): Fix logic in validity check. + (gpgme_op_genkey_start): Skip newlines after opening tag. + + * engine-gpgsm.c (_gpgme_gpgsm_start): Remove cruft. + +2002-02-08 Marcus Brinkmann + + * genkey.c (gpgme_op_genkey_start): Allow PUBKEY and SECKEY to be + set, and pass them down to the crypto engine. + * engine-gpgsm.h (_gpgme_gpgsm_start): New arguments PUBKEY and SECKEY. + * engine.h: Likewise. + * rungpg.h (_gpgme_gpg_spawn): Likewise. + * engine.c (_gpgme_engine_op_genkey): Likewise. Use those + arguments. + * rungpg.c (_gpgme_gpg_op_genkey): Likewise. Complain if those + arguments are set. + * engine-gpgsm.c (_gpgme_gpgsm_op_genkey): Likewise. Implement + function. + + * engine-gpgsm.c (_gpgme_gpgsm_op_keylist): Beautify comment. + +2002-02-06 Marcus Brinkmann + + * rungpg.c (_gpgme_gpg_op_keylist): Remove handling of keylist + mode (for now). + +2002-02-06 Marcus Brinkmann + + * wait.c (gpgme_wait): Add new argument STATUS, in which the + status of the returned context is returned. + (_gpgme_wait_on_condition): Rework the function a bit, to make it + aware of cancelled processes, and to allow to use gpgme_wait with + CTX being NULL (as documented in the source). + (struct proc_s): New member REPORTED. + * gpgme.h: Fix prototype. + * verify.c (gpgme_op_verify): Fix use of gpgme_wait. + * sign.c (gpgme_op_sign): Likewise. + * import.c (gpgme_op_import): Likewise. + * genkey.c (gpgme_op_genkey): Likewise. + * export.c (gpgme_op_export): Likewise. + * encrypt.c (gpgme_op_encrypt): Likewise. + * delete.c (gpgme_op_delete): Likewise. + * decrypt-verify.c (gpgme_op_decrypt_verify): Likewise. + +2002-02-06 Marcus Brinkmann + + * gpgme.c (gpgme_set_keylist_mode): Possibly return an error + value. + (gpgme_get_keylist_mode): New function. + (gpgme_new): Set the default for keylist_mode member of CTX. + + * gpgme.h (gpgme_set_keylist_mode): Fix prototype. + (gpgme_get_keylist_mode): New prototype. + (GPGME_KEYLIST_MODE_LOCAL): New macro. + (GPGME_KEYLIST_MODE_EXTERN): Likewise.. + +2002-02-02 Marcus Brinkmann + + This patch has gotten a bit large... mmh. The main thing that + happens here is that error values are now not determined in the + operation function after gpgme_wait completed, but in the status + handler when EOF is received. It should always be the case that + either an error is flagged or EOF is received, so that after a + gpgme_wait you should never have the situation that no error is + flagged and EOF is not received. One problem is that the engine + status handlers don't have access to the context, a horrible + kludge works around this for now. All errors that happen during a + pending operation should be catched and reported in ctx->error, + including out-of-core and cancellation. This rounds up neatly a + couple of loose ends, and makes it possible to pass up any errors + in the communication with the backend as well. As a bonus, there + will be a function to access gpgme->wait, so that the operations + can truly be implemented with their _start function. + + * engine-gpgsm.c (gpgsm_status_handler): Horrible kludge to report + error back to the context. + * rungpg.c (gpg_status_handler): Same horrible kludge applied here. + + * engine-gpgsm.c (gpgsm_assuan_simple_command): Add error checking. + + * wait.c (_gpgme_wait_on_condition): If canceled, set CTX->error + to a value indication that. + + * verify.c (add_notation): Set error, not out_of_core. + (finish_sig): Likewise. + (gpgme_op_verify_start): Don't clear out_of_core. + (_gpgme_verify_status_handler): At EOF, clean up the notation data. + (gpgme_op_verify): And don't do it here. + + * trustlist.c (trustlist_status_handler): Check error, not out_of_core. + (gpgme_op_trustlist_start): Don't clear out_of_core. + (gpgme_op_trustlist_next): Check error, not out_of_core. + (gpgme_op_trustlist_end): Likewise. + + * ops.h (test_and_allocate_result): New macro. + (_gpgme_passphrase_result): Remove prototype. + * delete.c (gpgme_op_delete): Return error from context. + (delete_status_handler): Use macro test_and_allocate_result. + Perform error checking at EOF. + (gpgme_op_delete_start): Release result. + * passphrase.c (_gpgme_passphrase_status_handler): Use macro + test_and_allocate_result, and perform error checking here. + (_gpgme_passphrase_result): Function removed. + * sign.c (gpgme_op_sign_start): Do not set out_of_core to zero. + (gpgme_op_sign): Just return the error value from the context. + (sign_status_handler): Only progress if no error is set yet. If + we process an EOF, set the resulting error value (if any). + * decrypt.c (_gpgme_decrypt_result): Function removed. + (create_result_struct): Function removed. + (_gpgme_decrypt_status_handler): Use macro test_and_allocate_result, + caclulate error on EOF, do not progress with errors. + (_gpgme_decrypt_start): Do not set out_of_core to zero. + (gpgme_op_decrypt): Just return the error value from the context. + * encrypt.c (encrypt_status_handler): Perform the error checking + here. + (gpgme_op_encrypt_start): Do not clear out_of_core. + * export.c (export_status_handler): Return if error is set in context. + (gpgme_op_export_start): Release result. + (gpgme_op_export): Return error from context. + * decrypt-verify.c (gpgme_op_decrypt_verify): Return the error in + the context. + * genkey.c (genkey_status_handler): Use macro + test_and_allocate_result. Perform error checking at EOF. + (gpgme_op_genkey): Just return the error from context. + * import.c (gpgme_op_import): Return the error from context. + (import_status_handler): Use macro test_and_allocate_result. + * keylist.c (gpgme_op_keylist_start): Do not clear out_of_core. + (gpgme_op_keylist_next): Return error of context. + (keylist_colon_handler): Set error instead out_of_code. + (finish_key): Likewise. + + * context.h: Remove member out_of_core, add member error. + * gpgme.c (_gpgme_release_result): Clear error flag. + + * engine.h (_gpgme_engine_get_error): New prototype. + * engine.c (_gpgme_engine_get_error): New function. + * engine-gpgsm.c (_gpgme_gpgsm_get_error): New function. + + * engine-gpgsm.c (map_assuan_error): New function. + (gpgsm_assuan_simple_command): Change return type to GpgmeError, + use the new function to map error values. + (gpgsm_set_fd): Change return type tp GpgmeError. + (_gpgme_gpgsm_op_decrypt): Change type of ERR to GpgmeError. + (gpgsm_set_recipients): Likewise. Change type of return value + equivalently. Adjust error values. + (_gpgme_gpgsm_op_import): Likewise. + (_gpgme_gpgsm_op_sign): Likewise. + (struct gpgsm_object_s): New member error. + (gpgsm_status_handler): Set error if error occurs. Determine + error number from ERR line received. If assuan_read_line fails, + terminate the connection. + +2002-02-01 Marcus Brinkmann + + * Makefile.am (MOSTLYCLEANFILES): New variable. + +2002-02-01 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_status_handler): At error, terminate the + connection to the server. + +2002-01-31 Marcus Brinkmann + + * rungpg.h: Add STATUS_KEY_CREATED. + + * progress.c: New file. + * Makefile.am (libgpgme_la_SOURCES): Add progress.c. + + * genkey.c (genkey_status_handler): Use + _gpgme_progress_status_handler. Add check for status. + (struct genkey_result_s): New structure. + (_gpgme_release_genkey_result): New function. + (gpgme_op_genkey): Check for error. + * gpgme.c (_gpgme_release_result): Call + _gpgme_release_genkey_result. + * ops.h (_gpgme_release_genkey_result): Add prototype. + * types.h (GenKeyResult): New type. + * context.h (gpgme_context_s): Add GenKeyResult to member result. + +2002-01-30 Marcus Brinkmann + + * gpgme.c (_gpgme_release_result): Call + _gpgme_release_delete_result. + * ops.h (_gpgme_release_delete_result): Add prototype. + * types.h (DeleteResult): New type. + * context.h (gpgme_context_s): Add DeleteResult to member result. + + * delete.c (enum delete_problem): New type. + (struct delete_result_s): New structure. + (_gpgme_release_delete_result): New function. + (delete_status_handler): Implement more status codes. + (gpgme_op_delete): Return error on failure. + + * import.c (MAX_IMPORTED_FIELDS): Bump up to 14. + +2002-01-30 Marcus Brinkmann + + * import.c (struct import_result_s): New structure. + (_gpgme_release_import_result): New function. + (append_xml_impinfo): Likewise. + (import_status_handler): Implement. + * gpgme.c (_gpgme_release_result): Add call to + _gpgme_release_import_result. + * ops.h (_gpgme_release_import_result): Add prototype. + * types.h (ImportResult): New type. + * context.h (gpgme_context_s): Add ImportResult to member result. + + * encrypt.c (gpgme_op_encrypt): Code clean up. + +2002-01-30 Marcus Brinkmann + + * gpgme.h: Add lots of comment and fix the formatting. Add + gpgme_trustlist_end prototype. + +2002-01-29 Marcus Brinkmann + + * gpgme.h: Add new type GpgmeIdleFunc. Change type of + gpgme_register_idle to return and accept this type. + * wait.c (gpgme_register_idle): Fix type. + Save and return old value of idle_function. + +2002-01-29 Werner Koch + + * engine-gpgsm.c (_gpgme_gpgsm_op_keylist): Implement secret only mode. + + * keylist.c (keylist_colon_handler): Add support for the new "crs" + record type. + +2002-01-22 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_release): Call assuan_disconnect, + not assuan_pipe_disconnect. + + * Makefile.am (libgpgme_la_LIBADD): Change to link assuan and + jnlib (needed by assuan) statically into libgpgme. Linking a + static library into a shared library this way is not portable. + +2002-01-22 Marcus Brinkmann + + * gpgme.h (GpgmePassphraseCb): Change type of R_HD from void* to + void**. + +2002-01-22 Marcus Brinkmann + + * data.c (gpgme_data_new_from_filepart): Change type of LENGTH + from off_t to size_t. + * gpgme.h: Likewise. + +2002-01-22 Marcus Brinkmann + + * wait.c (_gpgme_wait_on_condition): If the process finished, + reset the pending flag. Also if the operation was cancelled. + + (struct proc_s): Rename READY to DONE. + (wait_item_s): Likewise. + (set_process_ready): Rename to ... + (set_process_done): ... this. + (_gpgme_remove_proc_from_wait_queue): Call set_process_done + instead set_process_ready. + (_gpgme_wait_on_condition): Likewise. + (do_select): Rename READY to DONE. + + * verify.c (gpgme_op_verify): Do not set pending to zero here. + * sign.c (gpgme_op_sign): Likewise. + * import.c (gpgme_op_import): Likewise. + * genkey.c (gpgme_op_genkey): Likewise. + * export.c (gpgme_op_export): Likewise. + * encrypt.c (gpgme_op_encrypt): Likewise. + * delete.c (gpgme_op_delete): Likewise. + * decrypt-verify.c (gpgme_op_decrypt_verify): Likewise. + * decrypt.c (gpgme_op_decrypt): Likewise. + +2002-01-22 Marcus Brinkmann + + * export.c: Cleanup. + +2002-01-15 Marcus Brinkmann + + * trustlist.c: Various source clean ups. + (my_isdigit): Removed. + (gpgme_op_trustlist_end): New function. + +2002-01-13 Marcus Brinkmann + + * gpgme.c: Various source clean ups, like renaming C to CTX where + appropriate. + (gpgme_new): Clear R_CTX before starting the work. + (my_isdigit): Removed. + (my_isxdigit): Likewise. + + * data.c: Various source clean ups. + (gpgme_data_new_from_mem): Check BUFFER after clearing R_DH. + (gpgme_data_new_with_read_cb): Similar for READ_CB. + (gpgme_data_new_from_file): Loop over fread while EINTR. + (gpgme_data_new_from_filepart): Rediddled a bit. Allow LENGTH to + be zero. Loop over fread while EINTR. + + (my_isdigit): Removed. + (my_isxdigit): Likewise. + +2001-12-21 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_new): Replace General_Error with + Pipe_Error where appropriate. + +2001-12-19 Marcus Brinkmann + + * engine.c: Include `string.h'. Reported by Stéphane Corthésy. + + * version.c (get_engine_info): Remove prototype. + +2001-12-19 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_new): New variable CHILD_FDS. + Fill it with the servers fds, and pass it to assuan_pipe_connect. + +2001-12-18 Marcus Brinkmann + + * keylist.c (gpgme_op_keylist_end): New function. + * gpgme.h (gpgme_op_keylist_end): New prototype. + + * engine.h (gpgme_engine_check_version): Move prototype to ... + * gpgme.h (gpgme_engine_check_version): ... here. + + * genkey.c (gpgme_op_genkey_start): Remove unused variable. + +2001-12-18 Marcus Brinkmann + + * version.c (gpgme_get_engine_info): Reimplemented. + (gpgme_check_engine): Reimplemented. + (_gpgme_compare_versions): Return NULL if MY_VERSION is NULL. + + * engine.c: Include `io.h'. + (gpgme_engine_get_info): New function. + * engine.h (gpgme_engine_check_version, _gpgme_engine_get_info): + Add prototype. + +2001-12-18 Marcus Brinkmann + + * rungpg.c (struct reap_s, reap_list, reap_list_lock): Moved to ... + * engine.c (struct reap_s, reap_list, reap_list_lock): ... here. + Include `time.h', `sys/types.h', `assert.h', and `sema.h'. + + * rungpg.c (_gpgme_engine_add_child_to_reap_list): New function. + (do_reaping, _gpgme_gpg_housecleaning): Moved to ... + * engine.c (do_reaping, _gpgme_engine_housecleaning): ... here. + * rungpg.c (_gpgme_gpg_release): Replace code that is now in its + own function by call to _gpgme_engine_add_child_to_reap_list(). + + * wait.c: Include `engine.h'. + (run_idle): Call _gpgme_engine_housecleaning(), not + _gpgme_gpg_housecleaning(). + +2001-12-18 Marcus Brinkmann + + * key.c (_gpgme_key_append_name): Append, not prepend, the uid. + Initialize the next field of the uid structure. + (gpgme_key_get_as_xml): Do not list last uid first. + +2001-12-17 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_set_colon_line_handler): New + function [!ENABLE_GPGSM]. + +2001-12-14 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_verify): Put TEXT into + message_data, not SIG. + (_gpgme_gpgsm_op_sign): Use `--detached', not `--detach'. + + * sign.c (sign_status_handler): Call + _gpgme_passphrase_status_handler early. + +2001-12-14 Marcus Brinkmann + + * engine-gpgsm.c: Revert last change. + +2001-12-14 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_status_handler): Freeze the output file + handler when ending this operation, otherwise the wait function + will sit on it. + +2001-12-14 Marcus Brinkmann + + * engine-gpgsm.c (struct gpgsm_object_s): New member colon.attic. + (_gpgme_gpgsm_new): Initialize some more members. + (_gpgme_gpgsm_release): Free the colon line handler's attic line. + (gpgsm_status_handler): Rework the inline-data processing. + +2001-12-13 Marcus Brinkmann + + * rungpg.c (_gpgme_gpg_spawn): Do not add the fds to the child + list that are not dup'ed, for those the close-on-exec flag is set + now. + * version.c (_gpgme_get_program_version): Remove first entry in + CFD, as the close-on-exec flag is now set for this fd. + +2001-12-13 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_encrypt): Do not add `armor' + option to `ENCRYPT'. + * engine-gpgsm.c (gpgsm_set_recipients): Free LINE when returning + successfully. + +2001-12-13 Marcus Brinkmann + + * engine-gpgsm.c (close_notify_handler): New function. + (_gpgme_gpgsm_new): Manage the file descriptors a + bit differently. Do not set close-on-exec flags. + (_gpgme_gpgsm_op_decrypt): Do not set message_fd + to -1, this is done by the close handler. + (_gpgme_gpgsm_op_encrypt): Likewise. + (_gpgme_gpgsm_op_import): Likewise (also for output_fd). + (_gpgme_gpgsm_op_keylist): Likewise (also for input_fd and output_fd). + (_gpgme_gpgsm_op_sign): Likewise. + (_gpgme_gpgsm_op_verify): Likewise, but for output_fd. + + * posix-io.c (_gpgme_io_pipe): Set the close-on-exec flag for the + non-inherited file descriptor index of the pipe. + +2001-12-13 Werner Koch + + * engine-gpgsm.c (_gpgme_gpgsm_set_colon_line_handler): New. + (gpgsm_status_handler): Pass datalines to a colon handler + * engine.c (_gpgme_engine_set_colon_line_handler): Set the colon + handler for gpgsm. + + * engine-gpgsm.c (_gpgme_gpgsm_op_keylist): Allow NULL for + pattern. + (gpgsm_assuan_simple_command): Removed underscore from + assuan_write_line. + (_gpgme_gpgsm_start): Ditto. + (gpgsm_assuan_simple_command): Replaced interal Assuan read + function by the new assuan_read_line. Removed the use of the + internal header. + (gpgsm_status_handler): Ditto. Use the new assuan_pending_line. + (_gpgme_gpgsm_start): Use the documented way to get an fd from + assuan. + + * keylist.c (keylist_colon_handler): Handle "crt" records + * key.h (gpgme_key_s): Add an x509 flag. + * key.c (parse_x509_user_id): New. + (_gpgme_key_append_name): Handle x.509 names. + +2001-12-05 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_status_handler): Make it work with current + version of assuan. + +2001-12-05 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_set_fd): Accept one more argument OPT. + (_gpgme_gpgsm_op_encrypt): Pass armor argument to gpgsm_set_fd for + output descriptor. + (_gpgme_gpgsm_op_sign): Likewise. + +2001-12-05 Marcus Brinkmann + + * keylist.c (gpgme_op_keylist_next): Set pending to 0 if EOF + occurs. + +2001-11-26 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Fix stupid typo. + +2001-11-24 Marcus Brinkmann + + * engine-gpgsm.c (gpgsm_status_handler): Don't break if bsearch fails. + Deal with assuan read line returning more than one line (for now). + +2001-11-23 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Implement it according to + the current protocol definition. + +2001-11-23 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_new): Set CLOEXEC flag for parent + ends of the pipe. + +2001-11-22 Marcus Brinkmann + + * engine-gpgsm.c: Include stdlib.h and string.h. Also include, + for now, rungpg.h and status-table.h. + (gpgsm_status_handler): Implement more of the status handler. + +2001-11-22 Marcus Brinkmann + + * engine.c (_gpgme_engine_op_decrypt): Implement CMS case. + (_gpgme_engine_op_delete): Likewise. + (_gpgme_engine_op_encrypt): Likewise. + (_gpgme_engine_op_export): Likewise. + (_gpgme_engine_op_genkey): Likewise. + (_gpgme_engine_op_keylist): Likewise. + (_gpgme_engine_op_sign): Likewise. + (_gpgme_engine_op_trustlist): Likewise. + + * engine-gpgsm.c (_gpgme_gpgsm_op_encrypt): New function. + (gpgsm_assuan_simple_command): Likewise. + (gpgsm_set_recipients): Likewise. + (gpgsm_set_fd): Reimplement using gpgsm_assuan_simple_command. + (_gpgme_gpgsm_op_delete): New function. + (_gpgme_gpgsm_op_export): Likewise. + (_gpgme_gpgsm_op_genkey): Likewise. + (_gpgme_gpgsm_op_sign): Likewise. + (_gpgme_gpgsm_op_keylist): Likewise. + (_gpgme_gpgsm_op_trustlist): Likewise. + (_gpgme_gpgsm_release): Release command. + (_gpgme_gpgsm_op_decrypt): Allocate command. + (_gpgme_gpgsm_op_import): Likewise. + (gpgsm_status_handler): Also treat `ERR' strings as EOF. + +2001-11-22 Marcus Brinkmann + + * gpgme.h (gpgme_set_protocol): New prototype. + +2001-11-22 Marcus Brinkmann + + * engine-gpgsm.c (_gpgme_gpgsm_op_decrypt): New function. + (_gpgme_gpgsm_op_import): Likewise. + +2001-11-22 Marcus Brinkmann + + * engine-gpgsm.c: Shuffle around header inclusion a bit, to still + keep them seperate. + (_gpgme_set_status_handler) [!ENABLE_GPGSM]: New function. + +2001-11-22 Werner Koch + + * engine-gpgsm.c: Include more headers so that NULL and mk_error + is defined even with an undefined GPGSM_PATH. + +2001-11-22 Marcus Brinkmann + + * rungpg.c (gpg_inbound_handler, write_mem_data, write_cb_data, + gpg_outbound_handler): Moved to ... + * data.c (_gpgme_data_inbound_handler, write_mem_data, + write_cb_data, _gpgme_data_outbound_handler): ... here. Make the + _gpgme_* ones non-static. + * data.c: Include io.h. + + * ops.h (_gpgme_data_inbound_handler): New prototype. + (_gpgme_data_outbound_handler): Likewise. + (_gpgme_gpg_spawn): Use these new functions. + + * engine-gpgsm.h (_gpgme_gpgsm_op_decrypt, _gpgme_gpgsm_op_delete, + _gpgme_gpgsm_op_encrypt, _gpgme_gpgsm_op_export, + _gpgme_gpgsm_op_genkey, _gpgme_gpgsm_op_import, + _gpgme_gpgsm_op_keylist, _gpgme_gpgsm_op_sign, + _gpgme_gpgsm_op_trustlist, _gpgme_gpgsm_op_verify, + _gpgme_gpgsm_start, _gpgme_gpgsm_set_status_handler): New prototype. + Include for status handler function. + + * engine-gpgsm.c (struct gpgsm_object_s): New members input_fd, + input_data, output_fd, output_data, message_fd, message_data, command + and status. + (_gpgme_gpgsm_new): Open input, output and message pipes before + connecting to the client. Close server's ends afterwards. + (_gpgme_gpgsm_release): Close open file descriptors. Remove + server process from wait queue. + (_gpgme_gpgsm_op_verify, _gpgme_gpgsm_start, + _gpgme_gpgsm_set_status_handler, gpgms_status_handler): New function. + + * engine.c (_gpgme_engine_start): Implement for GPGME_PROTOCOL_CMS. + (_gpgme_engine_set_status_handler): Likewise. + (_gpgme_engine_op_verify): Likewise. + +2001-11-21 Marcus Brinkmann + + * context.h: Do not include rungpg.h, but engine.h. + (struct gpgme_context_s): Replace member gpg with engine. + * gpgme.c (gpgme_release): Release engine, not gpg. + + * recipient.c (_gpgme_append_gpg_args_from_recifgpients): Function + moved ... + * rungpg.c (_gpgme_append_gpg_args_from_recipients): ... here. + Make static, change order of arguments, and return an error value. + * ops.h (_gpgme_append_gpg_args_from_recipients): Removed prototype. + + * rungpg.h (_gpgme_gpg_op_verify): Add prototype. + (_gpgme_gpg_op_encrypt): Likewise. + (_gpgme_gpg_op_decrypt): Likewise. + (_gpgme_gpg_op_delete): Likewise. + (_gpgme_gpg_op_export): Likewise. + (_gpgme_gpg_op_genkey): Likewise. + (_gpgme_gpg_op_import): Likewise. + (_gpgme_gpg_op_keylist): Likewise. + (_gpgme_gpg_op_sign): Likewise. + (_gpgme_gpg_op_trustlist): Likewise. + * rungpg.c (_gpgme_gpg_op_verify): New function. + (_gpgme_gpg_op_encrypt): Likewise. + (_gpgme_gpg_op_decrypt): Likewise. + (_gpgme_gpg_op_delete): Likewise. + (_gpgme_gpg_op_export): Likewise. + (_gpgme_gpg_op_genkey): Likewise. + (_gpgme_gpg_op_import): Likewise. + (_gpgme_gpg_op_keylist): Likewise. + (_gpgme_gpg_op_sign): Likewise. + (_gpgme_gpg_op_trustlist): Likewise. + + * engine.h (_gpgme_engine_set_status_handler): Add prototype. + (_gpgme_engine_set_command_handler): Likewise. + (_gpgme_engine_set_colon_line_handler): Likewise. + (_gpgme_engine_op_decrypt): Likewise. + (_gpgme_engine_op_delete): Likewise. + (_gpgme_engine_op_encrypt): Likewise. + (_gpgme_engine_op_export): Likewise. + (_gpgme_engine_op_genkey): Likewise. + (_gpgme_engine_op_import): Likewise. + (_gpgme_engine_op_keylist): Likewise. + (_gpgme_engine_op_sign): Likewise. + (_gpgme_engine_op_trustlist): Likewise. + (_gpgme_engine_op_verify): Likewise. + (_gpgme_engine_start): Likewise. + * engine.c (_gpgme_engine_set_status_handler): New function. + (_gpgme_engine_set_command_handler): Likewise. + (_gpgme_engine_set_colon_line_handler): Likewise. + (_gpgme_engine_op_decrypt): Likewise. + (_gpgme_engine_op_delete): Likewise. + (_gpgme_engine_op_encrypt): Likewise. + (_gpgme_engine_op_export): Likewise. + (_gpgme_engine_op_genkey): Likewise. + (_gpgme_engine_op_import): Likewise. + (_gpgme_engine_op_keylist): Likewise. + (_gpgme_engine_op_sign): Likewise. + (_gpgme_engine_op_trustlist): Likewise. + (_gpgme_engine_op_verify): Likewise. + (_gpgme_engine_start): Likewise. + + * verify.c (gpgme_op_verify_start): Reimplement in terms of above + functions. + * encrypt.c (gpgme_op_encrypt_start): Likewise. + * decrypt.c (_gpgme_decrypt_start): Likewise. + * passphrase.c (_gpgme_passphrase_start): Likewise. + * keylist.c (gpgme_op_keylist_start): Likewise. + +2001-11-20 Marcus Brinkmann + + * types.h: Add types EngineObject and GpgsmObject. + + * Makefile.am (libgpgme_la_SOURCES): Add engine-gpgsm.h, + engine-gpgsm.c, engine.h and engine.c. + * engine.h: New file. + * engine.c: Likewise. + * engine-gpgsm.h: Likewise. + * engine-gpgsm.c: Likewise. + + * rungpg.c (_gpgme_gpg_get_version): New function. + (_gpgme_gpg_check_version): Likewise. + * rungpg.h: Add prototypes for _gpgme_gpg_get_version and + _gpgme_gpg_check_version. + + * version.c (compare_versions): Rename to ... + (_gpgme_compare_versions): ... this. Make non-static. + (gpgme_check_version): Use _gpgme_compare_versions rather than + compare_versions. + (gpgme_check_engine): Likewise. + * ops.h (_gpgme_get_program_version): Add prototype. + +2001-11-20 Marcus Brinkmann + + * Makefile.am (libgpgme_la_INCLUDES): Remove obsolete directive. + (AM_CPPFLAGS): New directive [BUILD_ASSUAN]. + (libgpgme_la_LIBADD): Likewise. + +2001-11-20 Marcus Brinkmann + + * version.c: Remove global variables lineno and + tmp_engine_version. + (version_handler): Removed. + (_gpgme_get_program_version): New function. + (get_engine_info): Don't use context and version_handler, + but _gpgme_get_program_version. + * ops.h (_gpgme_get_program_version): Add prototype for + _gpgme_get_program_version (we expect to use it elsewhere soon). + +2001-11-18 Marcus Brinkmann + + * version.c (get_engine_info): If GnuPG is not available, return + an error message. + * posix-util.c (_gpgme_get_gpg_path): Allow GPG_PATH to be + undefined. + (_gpgme_get_gpgsm_path): New function. + * w32-util.c (find_program_in_registry): New static function. + (_gpgme_get_gpg_path): Allow GPG_PATH to be undefined. Rework + to use find_program_in_registry. + (_gpgme_get_gpgsm_path): New function. + (util.h): Prototype _gpgme_get_gpgsm_path). + * rungpg.c (_gpgme_gpg_spawn): Verify that _gpgme_get_gpg_path() + returns non-null. + +2001-11-16 Marcus Brinkmann + + * decrypt-verify.c: New file. + * Makefile.am (libgpgme_la_SOURCES): Add decrypt-verify.c. + * types.h: Add decrypt-verify types. + * ops.h: Likewise. + * context.h: Add result type for decrypt-verify. + * gpgme.h: Add decrypt-verify prototypes. + + * decrypt.c (decrypt_status_handler): Renamed to ... + (_gpgme_decrypt_status_handler): ... this. Make non-static. + (_gpgme_decrypt_start): New function, derived from + gpgme_op_decrypt_start. + (gpgme_op_decrypt_start): Reimplement in terms of + _gpgme_decrypt_start. + (_gpgme_decrypt_result): New function to retrieve error value. + (gpgme_op_decrypt): Use _gpgme_decrypt_result. + * ops.h: Add prototypes for new functions. + + * verify.c (verify_status_handler): Renamed to ... + (_gpgme_verify_status_handler): ... this. Make non-static. + (gpgme_op_verify_start): Use new function name. + (intersect_stati): Renamed to ... + (_gpgme_intersect_stati): ... this. Make non-static. + (gpgme_op_verify): Use new name. + * ops.h: Add prototypes for new functions. + +2001-11-16 Marcus Brinkmann + + * passphrase.c: New file. + * Makefile.am (libgpgme_la_SOURCES): Add passphrase.c. + * ops.h (_gpgme_passphrase_result): Add prototypes from + passphrase.c. + * types.h: Likewise. + * context.h: Add member passphrase to result. + * gpgme.c (_gpgme_release_result): Release passphrase member. + + * decrypt.c: Some formatting and variable name changes (like + CTX instead C). + (struct decrypt_result_s): Remove members now found in + passphrase result. + (_gpgme_release_decrypt_result): Don't release removed members. + (decrypt_status_handler): Call _gpgme_passphrase_status_handler, + and don't handle the cases catched there. + (command_handler): Removed. + (gpgme_op_decrypt_start): Don't set command handler, but invoke + _gpgme_passphrase_start which does it. + (gpgme_op_decrypt): Invoke _gpgme_passphrase_result and drop the + cases covered by it. + + * sign.c Some formatting and variable name changes (like + CTX instead C). + (struct sign_result_s): Remove members now found in + passphrase result. + (_gpgme_release_sign_result): Don't release removed members. + (sign_status_handler): Call _gpgme_passphrase_status_handler, + and don't handle the cases catched there. + (command_handler): Removed. + (gpgme_op_sign_start): Don't set command handler, but invoke + _gpgme_passphrase_start which does it. + (gpgme_op_sign): Invoke _gpgme_passphrase_result and drop the + cases covered by it. + +2001-11-15 Marcus Brinkmann + + * decrypt.c (command_handler): Fix last change. + +2001-11-15 Marcus Brinkmann + + * verify.c (_gpgme_release_verify_result): Rename RES to RESULT. + Rename R2 to NEXT_RESULT. + (intersect_stati): Rename RES to RESULT. + (gpgme_get_sig_status): Likewise. Do not check return_type, but + the member verify of result. + (gpgme_get_sig_key): Likewise. + + * sign.c (_gpgme_release_sign_result): Rename RES to RESULT. If + RESULT is zero, return. + (sign_status_handler, command_handler): Do not check return_type, + but the member sign of result. + (gpgme_op_sign): Likewise. Drop assertion. + + * encrypt.c (_gpgme_release_encrypt_result): Rename RES to RESULT. + If RESULT is zero, return. + (encrypt_status_handler): Do not check return_type, but the member + encrypt of result. + (gpgme_op_encrypt): Likewise. Drop assertion. + + * decrypt.c (_gpgme_release_decrypt_result): Rename RES to RESULT. + (create_result_struct): Do not set result_type. + (command_handler, decrypt_status_handler): Do not check + return_type, but the member decrypt of result. + (gpgme_op_decrypt): Likewise. Drop assertion. + + * context.h (enum ResultType): Removed. + (struct gpgme_context_s): Remove member result_type. + (struct result): Replaces union result. + * gpgme.c: Include string.h. + (_gpgme_release_result): Release all members of c->result, which + is now a struct. Zero out all members of the struct afterwards. + +2001-11-11 Marcus Brinkmann + + * rungpg.c (_gpgme_gpg_release): Release GPG->cmd.cb_data. + Release all members of the list GPG->arglist. + Reported by Michael Schmidt . + +2001-11-02 Marcus Brinkmann + + * rungpg.c (pipemode_copy): Change type of NBYTES to size_t. + + * key.c: Include string.h. + * data.c: Likewise. + * recipient.c: Likewise. + +2001-10-29 Marcus Brinkmann + + * context.h: New member signers_len. + * signers.c (gpgme_signers_clear): Require that signers are + non-NULL with assertion. Use signers_len to determine how much + keys to release. Add documentation. + (gpgme_signers_add): Use signers_len to determine if the buffer is + large enough. Use xtryrealloc rather than xtrymalloc and copying. + Add documentation. + (gpgme_signers_enum): Use signers_len to determine if key is + available. Add documentation. + +2001-10-22 Marcus Brinkmann + + * data.c (_gpgme_data_append): Check if LENGTH is smaller than + ALLOC_CHUNK, not DH->length. + +2001-10-17 Marcus Brinkmann + + * gpgme.c (gpgme_set_protocol): Fix last change. + +2001-10-15 Werner Koch + + * gpgme.h (GpgmeProtocol): New. + * gpgme.c (gpgme_set_protocol): New. + +2001-09-26 Werner Koch + + * gpgme.c (gpgme_set_passphrase_cb): Ignore a NULL context. + (gpgme_set_progress_cb): Ditto. Suggested by Mark Mutz. + +2001-09-17 Werner Koch + + * keylist.c (finish_key): Shortcut for no tmp_key. Changed all + callers to use this function without a check for tmp_key. + + * keylist.c (gpgme_op_keylist_next): Reset the key_cond after + emptying the queue. Bug reported by Stéphane Corthésy. + +2001-09-12 Werner Koch + + * data.c (gpgme_data_rewind): Allow rewind for callbacks. + +2001-09-07 Werner Koch + + * rungpg.h: Add NO_RECP. + * encrypt.c (encrypt_status_handler): Take on No_RECP. + (gpgme_op_encrypt): Better error return. + + * verify.c (verify_status_handler): Take on NODATA. + +2001-09-03 Werner Koch + + * rungpg.h: Added STATUS_INV_RECP. + * gpgme.c (_gpgme_release_result): Add support for new + EncryptResult object. + * encrypt.c (append_xml_encinfo): New. + (encrypt_status_handler): Add some status parsing. + (_gpgme_release_encrypt_result): New. + +2001-08-29 Werner Koch + + * recipient.c (gpgme_recipients_release): Free the list. By Timo. + + * keylist.c (keylist_colon_handler): Do a finish key if we receive + an EOF here. This is probably the reason for a lot of bugs + related to keylisting. It is so obvious. Kudos to Enno Cramer + for pointing that out. + +2001-08-28 Werner Koch + + * gpgme.c, gpgme.h (gpgme_get_op_info): New. + (_gpgme_set_op_info): New. + (_gpgme_release_result): Reset the op_info here. + * sign.c (append_xml_siginfo): New. + (sign_status_handler): Store the sig create information. + +2001-07-31 Werner Koch + + * encrypt.c (gpgme_op_encrypt): Hack to detect no valid recipients. + +2001-07-30 Werner Koch + + * gpgme.c (gpgme_get_armor,gpgme_get_textmode): New. + + * rungpg.c (build_argv): Disable armor comments + * w32-io.c (build_commandline): Need to add quotes here + +2001-07-24 Werner Koch + + * data.c (gpgme_data_read): Add a a way to return the available bytes. + +2001-07-23 Werner Koch + + * util.c: Removed stpcpy() because we use the version from jnlib. + +2001-07-19 Werner Koch + + * mkstatus: Define the collating sequence for sort. + +2001-06-26 Werner Koch + + * rungpg.h: Add STATUS_UNEXPECTED as suggested by Timo. + +2001-06-15 Werner Koch + + * keylist.c (set_userid_flags): Fixed the assigned values. Kudos + to Timo for pointing this out. + +2001-06-01 Werner Koch + + * debug.c (_gpgme_debug_begin): Fixed a /tmp race. Noted by + Johannes Poehlmann. + +2001-05-28 Werner Koch + + * version.c (gpgme_check_engine): Stop version number parsing at + the opening angle and not the closing one. By Tommy Reynolds. + +2001-05-01 José Carlos García Sogo + + * encrypt.c (gpgme_op_encrypt_start): Deleted the assert ( !c->gpg ) + line, because it gave an error if another operation had been made + before using the same context. + + * decrypt.c (gpgme_op_decrypt_start): The same as above. Also added + one line to release the gpg object in the context (if any). + +2001-04-26 Werner Koch + + * key.c, key.h (_gpgme_key_cache_init): New. + (_gpgme_key_cache_add): New. + (_gpgme_key_cache_get): New. + * version.c (do_subsystem_inits): Init the cache. + * keylist.c (finish_key): Put key into the cache + * verify.c (gpgme_get_sig_key): First look into the cache. + +2001-04-19 Werner Koch + + * keylist.c (parse_timestamp): Adjusted for the changed + --fixed-list-mode of gpg 1.0.4h. + +2001-04-05 Werner Koch + + * verify.c (gpgme_op_verify_start): Enabled pipemode for detached sigs. + +2001-04-04 Werner Koch + + * w32-io.c (_gpgme_io_select): Don't select on the writer if there + are still bytes pending. Timo found this not easy to track down + race condition. + +2001-04-02 Werner Koch + + * gpgme.h: Add GPGME_ATTR_KEY_{EXPIRED,DISABLED}. + * key.c (gpgme_key_get_ulong_attr): And return those attribs. + + * verify.c (gpgme_get_sig_key): Set keyliosting mode depending on + the mode set in the current context. Suggested by Timo. + + * key.c (gpgme_key_get_ulong_attr): Return can_certify and not + can_encrypt. By Timo. + +2001-03-30 Werner Koch + + * debug.c (debug_init): Allow to specify a debug file. + (_gpgme_debug_level): New. + + * posix-io.c (_gpgme_io_read, _gpgme_io_write): Print output. + (_gpgme_io_select): Debug only with level > 2. + +2001-03-15 Werner Koch + + * rungpg.c: Included time.h. + + * key.h: New keyflags for capabilities. + * keylist.c (set_mainkey_capability, set_subkey_capability): New. + (keylist_colon_handler): Parse them. + * gpgme.h: New attribute values for capabilties. + * key.c (gpgme_key_get_string_attr): Return them. + (capabilities_to_string): New. + (gpgme_key_get_ulong_attr): Return the global caps. + +2001-03-14 Werner Koch + + * w32-io.c (destroy_reader,destroy_writer): Fixed syntax error. + Thanks to Jan Oliver Wagner. + +2001-03-13 Werner Koch + + * context.h: Add invalid and revoke flags to user_id structure. + * keylist.c (gpgme_op_keylist_start): Use --fixed-list-mode. + (keylist_colon_handler): Adjust for that. + (set_userid_flags): New. + (set_mainkey_trust_info): Handle new key invalid flag + (set_subkey_trust_info): Ditto. + * gpgme.h: Add new attributes for key and user ID flags. + * key.c (_gpgme_key_append_name): Init these flags + (gpgme_key_get_as_xml): Print them. + (one_uid_as_xml): New helper for above. + (gpgme_key_get_string_attr, gpgme_key_get_ulong_attr): + Return the new attributes. Enhanced, so that subkey information + can be returned now. + +2001-02-28 Werner Koch + + * w32-io.c (destroy_reader): Set stop_me flag. + (writer,create_writer,destroy_writer,find_writer,kill_writer): New. + (_gpgme_io_write): Use a writer thread to avaoid blocking. + (_gpgme_io_close): Cleanup a writer thread + (_gpgme_io_select): Repalce tthe faked wait on writing by a real + waiting which is now possible due to the use of a writer thread. + +2001-02-20 Werner Koch + + * w32-io.c (destroy_reader,kill_reader): New. + (create_reader, reader): Add a new event to stop the thread. + (_gpgme_io_close): Kill the reader thread. + + * posix-io.c (_gpgme_io_select): Handle frozen fds here. + * 32-io.c (_gpgme_io_select): Ditto. Removed a bunch of unused code. + + * wait.c: Reworked the whole thing. + * rungpg.c (_gpgme_gpg_new): Init pid to -1. + (_gpgme_gpg_release): Remove the process from the wait queue. + +2001-02-19 Werner Koch + + * w32-io.c (_gpgme_io_set_close_notify): New. + (_gpgme_io_close): Do the notification. + + * posix-io.c (_gpgme_io_select): Use a 1 sec timeout and not 200 + microseconds. + + * wait.c (remove_process): Don't close the fd here. + (do_select): Set the fd to -1 and remove the is_closed flag everywhere. + (_gpgme_wait_on_condition): Remove the assert on the queue and + break out if we could not find the queue. The whole thing should + be reworked. + + * posix-io.c (_gpgme_io_set_close_notify): New. + (_gpgme_io_close): Do the notification. + + * rungpg.c (close_notify_handler): New. + (_gpgme_gpg_new): Register a callback for the fd. + (_gpgme_gpg_set_colon_line_handler): Ditto. + (build_argv): Ditto + +2001-02-13 Werner Koch + + * rungpg.c (struct reap_s): Replaced pid_t by int. + + * types.h: Add ulong typedef. + + * rungpg.c (do_reaping,_gpgme_gpg_housecleaning): New. + (_gpgme_gpg_release): Reap children. + * io.h, posix-io.c (_gpgme_io_kill): New. + * w32-io.c (_gpgme_io_kill): New (dummy). + + * keylist.c (gpgme_op_keylist_start): Cancel a pending request. + + * posix-io.c (_gpgme_io_read): Add some debug output. + (_gpgme_io_write): Ditto. + (_gpgme_io_select): Increased the timeout. + +2001-02-12 Werner Koch + + Enhanced the signature verification, so that it can how handle + more than one signature and is able to return more information on + the signatures. + * verify.c (gpgme_get_sig_key): New. + (gpgme_get_sig_status): New. + + * gpgme.h: Add stdio.h. + (GpgmeSigStat): New status DIFF. + +2001-02-01 Werner Koch + + * w32-io.c (set_synchronize): Add EVENT_MODIFY_STATE. Add Debug + code to all Set/ResetEvent(). + + * rungpg.c (read_status): Check for end of stream only if we have + an r. By Timo. + +2001-01-31 Werner Koch + + * wait.c (_gpgme_wait_on_condition): Removed all exit code processing. + (propagate_term_results,clear_active_fds): Removed. + (count_active_fds): Renamed to .. + (count_active_and_thawed_fds): .. this and count only thawed fds. + + * rungpg.c (gpg_colon_line_handler): Return colon.eof and not + status.eof ;-) + +2001-01-30 Werner Koch + + * w32-io.c (_gpgme_io_spawn): Use the supplied path arg. + + * version.c (get_engine_info): Return better error information. + + * posix-util.c, w32-util.c: New. + (_gpgme_get_gpg_path): New, suggested by Jan-Oliver. + * rungpg.c (_gpgme_gpg_spawn): Use new function to get GPG's path. + + * signers.c (gpgme_signers_add): Ooops, one should test code and + not just write it; the newarr was not assigned. Thanks to José + for pointing this out. Hmmm, still not tested, why should a coder + test his fix :-) + + * w32-io.c: Does now use reader threads, so that we can use + WaitForMultipleObjects. + * sema.h, posix-sema.c, w32-sema.c: Support for Critcial sections. + Does currently only work for W32. + + * debug.c, util.h : New. Changed all fprintfs to use this new + set of debugging functions. + +2001-01-23 Werner Koch + + * data.c (_gpgme_data_release_and_return_string): Fixed string + termination. + +2001-01-22 Werner Koch + + * delete.c: New. + + * signers.c: New. + * key.c (gpgme_key_ref, gpgme_key_unref): New. + * sign.c (gpgme_op_sign_start): Allow the use of other keys. + + * version.c (gpgme_get_engine_info,gpgme_check_engine): New. + * rungpg.c (_gpgme_gpg_set_simple_line_handler): New. + +2001-01-05 Werner Koch + + * data.c (gpgme_data_rewind): Allow to rewind data_type_none. + + + Copyright (C) 2001,2002,2003,2004,2005,2006,2007,2008,2009,2010, + 2011 g10 Code GmbH + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/src/Makefile.am b/src/Makefile.am index d4f4ba7f..cc0b78d3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,8 +19,9 @@ ## Process this file with automake to produce Makefile.in # Note: moc_kdpipeiodevice should actually be a dependcy below. -EXTRA_DIST = gpgme-config.in gpgme.m4 mkstatus libgpgme.vers \ +EXTRA_DIST = gpgme-config.in gpgme.m4 mkstatus libgpgme.vers ChangeLog-2011 \ gpgme.h.in versioninfo.rc.in gpgme.def moc_kdpipeiodevice.cpp + BUILT_SOURCES = status-table.h MOSTLYCLEANFILES = status-table.h bin_SCRIPTS = gpgme-config diff --git a/tests/ChangeLog b/tests/ChangeLog deleted file mode 100644 index 9c954896..00000000 --- a/tests/ChangeLog +++ /dev/null @@ -1,933 +0,0 @@ -2011-05-11 Marcus Brinkmann - - * gpgsm/Makefile.am (DISTCLEANFILES): Move to ... - (CLEANFILES): ... here. - (clean-local): New rule. - * gpg/Makefile.am (DISTCLEANFILES): Move to ... - (CLEANFILES): ... here. - -2011-05-05 Marcus Brinkmann - - * gpg/Makefile.am: Unset GPG_AGENT_INFO when setting up local - configuration. - (clean-local): Shut down local gpg-agent. - -2011-05-04 Marcus Brinkmann - - * gpg/t-import.c (check_result): Complete secret key pair counting - and disable status check, as GPG 2.1 currently emits two IMPORT_OK - lines and we only look at the first. - -2011-04-27 Marcus Brinkmann - - * gpg/Makefile.am (DISTCLEANFILES): Add S.gpg-agent. - (mkdemodirs, ./Alpha/Secret.gpg): Remove targets. - (GNUPGHOME): Export as absolute build directory (for gpg-agent). - (./pubring.gpg): Remove --homedir option, import secdemo.asc. - (clean-local): Rewrite. - * gpg/secdemo.asc: New file. - * gpg/pubkey-1.asc, gpg/seckey-1.asc: Change passphrase to - "abc" (now needed as GnuPG 2.1 asks for secret key passphrase on - import). - * gpg/t-keylist.c (keys): Update key info for Joe Random Hacker. - (main): Disable check for can_encrypt, as this is now in a - different subkey. - * gpg/t-encrypt-sign.c (check_result): Allow RMD160 hash - algorithm. - * gpg/t-import.c (check_result): One secret key pair now counts as - two secret keys, allow that. - -2009-11-03 Werner Koch - - * run-support.h (fail_if_err): Include program name. - - * run-sign.c (main): Add option --uiserver. - -2009-10-26 Marcus Brinkmann - - * opassuan/t-command.c: Update to new interface. - -2009-10-15 Werner Koch - - * run-verify.c: New. - -2009-08-06 Werner Koch - - * run-sign.c: New. - -2009-07-07 Werner Koch - - * run-keylist.c (main): Add options --cms and --openpgp. - - * gpg/pgp-keylist.c: Rename to ... - * run-keylist.c: ... this. - * gpg/pgp-import.c: Rename to ... - * run-import.c: ... this. - * gpg/pgp-export.c: Rename to ... - * run-export.c: ... this. - * run-support.h: New. Copied from gpg/t-support.h. - * gpg/Makefile.am (noinst_PROGRAMS): Remove them. - * Makefile.am (noinst_PROGRAMS): Add them. - (noinst_HEADERS): New. - -2009-06-22 Marcus Brinkmann - - * gpg/t-support.h (passphrase_cb): Implement write() according to - the book to silence compiler warning. - * gpgsm/t-support.h (passphrase_cb): Likewise. - -2009-06-16 Werner Koch - - * gpg/pgp-import.c: New. - * gpg/t-support.h (print_import_result, nonnull): Factored out - from other tools. - - * gpg/pgp-export.c, gpg/pgp-keylist.c: New. - -2009-06-09 Werner Koch - - * gpg/Makefile.am (./pubring.gpg): Ignore errors in case of - already imported keys. Add --no-permission-warning and remove - obsolete --allow-secret-key-import. - * gpg/mkdemodirs.in (GPG): Add --no-permission-warning. - - * gpg/t-edit.c (edit_fnc): Use gpgme_io_write. - -2009-04-19 Moritz - - * gpg/Makefile.am (EXTRA_DIST): Replaced mkdemodirs with mkdemodirs.in. - (mkdemodirs): New target. - (clean-local): Added command for removing mkdemodirs script. - (./Alpha/Secret.gpg): Added dependency on mkdemodirs. - - * gpg/mkdemodirs: Renamed to ... - * gpg/mkdemodirs.in: ... here. - * gpg/mkdemodirs.in (GPG): Derive value from @GPG@ instead of - hard-coding "gpg". - -2009-02-24 Werner Koch - - * opassuan/t-command.c: Adjust for changed new op_assuan interface. - -2009-02-03 Werner Koch - - * gpg/t-keylist.c (main): Check that new fields is_cardkey and - card_number are not set. - -2009-01-26 Werner Koch - - * opassuan/: New. - * opassuan/Makefile.am: New. - * opassuan/t-command.c: New. - -2008-12-03 Marcus Brinkmann - - * Makefile.am (INCLUDES): Fix path to include file. - * gpg/Makefile.am (INCLUDES), gpgsm/Makefile.am (INCLUDES): Likewise. - -2008-11-18 Werner Koch - - * gpgsm/cms-decrypt.c: New. - -2008-11-03 Marcus Brinkmann - - * gpgsm/Makefile.am (INCLUDES, LDADD): Replace gpgme path with src. - * gpg/Makefile.am (INCLUDES, LDADD, t_thread1_LDADD): Likewise. - * Makefile.am (LDADD): Likewise. - -2008-10-30 Werner Koch - - * gpgsm/cms-keylist.c: New. - -2008-06-19 Werner Koch - - * gpg/t-gpgconf.c (dump_arg): Add new types. Print strings in - quotes. - -2008-01-28 Marcus Brinkmann - - * gpg/Makefile.am (DISTCLEANFILES): Add pubring.kbx~. - -2008-01-10 Marcus Brinkmann - - * gpg/t-gpgconf.c (main): Allow for dirmngr not to be available. - - * gpg/Makefile.am (./gpg-agent.conf): Correct pinentry path. - - * gpg/pinentry: New file. - * gpg/Makefile.am (DISTCLEANFILES, all-local): Add gpg-agent.conf - (./gpg-agent.conf): New target. - (EXTRA_DIST): Add pinentry. - - * gpg/t-gpgconf.c (main): Exit early if compiled without gpgconf. - -2008-01-04 Marcus Brinkmann - - * gpg/Makefile.am (CLEANFILES): Add pubring.kbx and dirmngr.conf. - - * Makefile.am (TESTS_ENVIRONMENT): Use absolute path for - GNUPGHOME. - * gpg/Makefile.am (TESTS_ENVIRONMENT): Use absolute path for - GNUPGHOME. - * gpgsm/Makefile.am (TESTS_ENVIRONMENT): Use absolute path for - GNUPGHOME. - * gpg/Makefile.am (TESTS): Add t-gpgconf. - t-gpgconf.c: New file. - -2007-11-23 Marcus Brinkmann - - * gpgsm/t-verify.c (show_auditlog): Check for GPG_ERR_ASS_UNKNOWN_CMD. - -2007-11-23 Werner Koch - - * gpgsm/t-verify.c (check_result): Don't exit on error but set a flag. - (main): Cosnult flag for return value. - (show_auditlog): New. - (main): Use it. - -2007-09-27 Marcus Brinkmann - - * t-engine-info.c (check_engine_info): Fix debug output. - * gpg/Makefile.am (tests_unix): New variable. - (TESTS): Use it. - * gpg/t-support.h (passphrase_cb) [HAVE_W32_SYSTEM]: Use WriteFile instead of write. - * gpg/t-wait.c [HAVE_W32_SYSTEM]: Define sleep as _sleep. - -2007-09-14 Marcus Brinkmann - - * gpgsm/t-verify.c (main): Release TEXT and SIG. - -2007-07-12 Marcus Brinkmann - - * gpgsm/Makefile.am (key_id): Change := into =. - -2007-07-12 Werner Koch - - * gpgsm/t-support.h (init_gpgme) [W32]: Do not init the locales as - the constants are not available. - -2007-02-26 Werner Koch - - * gpg/t-verify.c (double_plaintext_sig): New. - (main): Check it. - -2006-12-02 Marcus Brinkmann - - * gpgsm/t-keylist.c (main): Skip unknown keys. Newer versions of - GPGSM import more keys than older ones. - -2005-12-06 Werner Koch - - * gpg/t-keylist.c (main): Changed for that secondary keys now have - a fingerprint. - * gpg/t-keylist-sig.c (main): Ditto. - * gpgsm/t-keylist.c (main): Ditto. The test used to be wrong. - -2005-10-18 Werner Koch - - * gpg/pubdemo.asc, gpg/secdemo.asc: Add 2 expired subkeys to - Whisky. - * gpg/t-keylist.c: Reordered list to match new demo keyring. Add - arg for number of subkeys and for extra checking function. - (main): Enhanced a few error outputs. Changed subkey - counting. Call extra checking fucntion. - (check_whisky): New. - -2005-10-07 Marcus Brinkmann - - * gpgsm/t-keylist.c (main): Allow for an email address as a second - uid. - - * gpg/t-sig-notation.c: Change critical notation to something - GnuPG understands. - -2005-10-01 Marcus Brinkmann - - * gpg/Makefile.am (EXTRA_DIST): Remove gpg.conf. - (DISTCLEANFILES): Add gpg.conf. - (all-local): Add gpg.conf. - (./gpg.conf): New target. - * gpg/gpg.conf: Remove file. - - * gpg/Makefile.am (EXTRA_DIST): Add gpg.conf. - - * gpg/Makefile.am (TESTS): Add t-sig-notation. - * gpg/t-sig-notation.c (check_result): New file. - * gpg/t-verify.c (check_result): Also check the length of the - notation data. - * gpg/gpg.conf: New file. - -2005-09-30 Marcus Brinkmann - - * gpg/Makefile.am (TESTS): Add t-filename. - * gpg/t-filename.c: New file. - -2005-09-23 Werner Koch - - * gpg/t-support.h (init_gpgme) [W32]: Don't use LC_MESSAGES. - - * gpg/t-encrypt-large.c: New test. - * gpg/Makefile.am (TESTS): Add t-encrypt-large. - -2005-06-03 Marcus Brinkmann - - * gpg/Makefile.am (TESTS): Add t-wait. - * gpg/t-wait.c (main): New test. - -2004-12-07 Marcus Brinkmann - - * gpg/mkdemodirs: Add copyright notice. - - * gpgsm/Makefile.am, gpgsm/t-support.h, gpgsm/t-decrypt.c, - gpgsm/t-encrypt.c, gpgsm/t-export.c, gpgsm/t-genkey.c, - gpgsm/t-import.c, gpgsm/t-keylist.c, gpgsm/t-sign.c, - gpgsm/t-verify.c, gpg/Makefile.am, gpg/t-decrypt.c, - gpg/t-decrypt-verify.c, gpg/t-edit.c, gpg/t-encrypt.c, - gpg/t-encrypt-sign.c, gpg/t-encrypt-sym.c, gpg/t-eventloop.c, - gpg/t-export.c, gpg/t-genkey.c, gpg/t-import.c, gpg/t-keylist.c, - gpg/t-keylist-sig.c, gpg/t-sign.c, gpg/t-signers.c, - gpg/t-support.h, gpg/t-thread1.c, gpg/t-trustlist.c, - gpg/t-verify.c, Makefile.am, t-data.c, t-engine-info.c, - t-version.c: Change license to LGPL. - -2004-08-17 Marcus Brinkmann - - * gpgsm/t-keylist.c (struct): Add new fields VALIDITY and - KEY_LENGTH. - (main): Use them. - * gpgsm/t-import.c (check_result): New argument total_stat. - (main): Pass this argument. Reduce number of total considered - keys to 1 for the second test. - -2004-04-05 Werner Koch - - * gpgsm/Makefile.am: Changed the faked system time to 20011213T12000. - -2004-03-07 Marcus Brinkmann - - * gpgsm/t-keylist.c: Add chain IDs. - -2004-03-03 Werner Koch - - * gpgsm/t-export.c (main): Also check exporting 2 certificates. - -2004-02-17 Werner Koch - - * gpgsm/t-import.c (check_result): gpgsm does now return info in - the result->imports; adjust for that. - - * gpgsm/Makefile.am (TESTS_ENVIRONMENT): Reset the GPG_AGENT_INFO. - - Include config.h at the top of each C source. This is required - due to LFS support. - - * gpg/t-keylist-sig.c (main): s/class/sig_class/. - * gpg/t-signers.c (check_result): Ditto. - * gpg/t-sign.c (check_result): Ditto. - * gpg/t-encrypt-sign.c (check_result): Ditto. - * gpgsm/t-sign.c (check_result): Ditto. - -2004-01-12 Werner Koch - - * gpg/t-keylist-sig.c (main): Temporary disabled one test due top - gpg 1.3.4 problems. - * gpg/t-import.c (check_result): Likewise. - -2003-11-19 Werner Koch - - * gpg/t-support.h (DIM): Added. - - * gpg/t-verify.c (check_result): Rewrote test for notations - because the order of notaions is not guaranteed. - - * gpgsm/t-support.h (fail_if_err): Also print the numeric values. - -2003-10-06 Marcus Brinkmann - - * gpg/t-eventloop.c: Include for old systems. - - * gpgsm/Makefile.am (DISTCLEANFILES): Add random_seed. - - * gpg/t-thread1.c (thread_one): Do not call initialize_gpgme. - Likewise. - -2003-09-14 Marcus Brinkmann - - * gpg/t-thread1.c (main): Call init_gpgme here. - (initialize_gpgme): Function removed. - - * gpg/t-thread1.c: New file. - * gpg/Makefile.am (TESTS): Add t-thread1.c. - (t_thread1_LDADD): New variable. - (LDADD): Remove GPG Error lib. - * gpgsm/Makefile.am (LDADD): Likewise. - - * gpg/t-import.c (main): Likewise. - * gpg/t-keylist-sig.c (main): Likewise. - * gpg/t-keylist.c (main): Likewise. - * gpg/t-sign.c (main): Likewise. - * gpg/t-signers.c (main): Likewise. - * gpg/t-trustlist.c (main): Likewise. - * gpgsm/t-support.h: Include and . - (init_gpgme): New function. - * gpg/t-support.h: Likewise. - * gpgsm/t-verify.c (main): Call init_gpgme. - * gpgsm/t-decrypt.c (main): Likewise. - * gpgsm/t-encrypt.c (main): Likewise. - * gpgsm/t-export.c (main): Likewise. - * gpgsm/t-genkey.c (main): Likewise. - * gpgsm/t-import.c (main): Likewise. - * gpgsm/t-keylist.c (main): Likewise. - * gpgsm/t-sign.c (main): Likewise. - * gpg/t-verify.c (main): Call init_gpgme. - * gpg/t-decrypt-verify.c (main): Likewise. - * gpg/t-decrypt.c (main): Likewise. - * gpg/t-edit.c (main): Likewise. - * gpg/t-encrypt-sign.c (main): Likewise. - * gpg/t-encrypt-sym.c (main): Likewise. - * gpg/t-encrypt.c (main): Likewise. - * gpg/t-eventloop.c (main): Likewise. - * gpg/t-export.c (main): Likewise. - * gpg/t-genkey.c (main): Likewise. - -2003-08-14 Marcus Brinkmann - - * gpg/t-sign.c (check_result): Change output format for signature - class to unsigned int. - * gpg/t-signers.c (check_result): Likewise. - * gpg/t-encrypt-sign.c (check_result): Likewise. - * gpgsm/t-sign.c (check_result): Likewise. - -2003-07-31 Marcus Brinkmann - - * gpg/t-verify.c (check_result): Change type of SUMMARY to - unsigned int. - * gpg/t-decrypt-verify.c (check_verify_result): Likewise. - * gpg/t-keylist-sig.c (keys): Change type of member CLASS to - unsigned int. - * t-data.c (read_cb): Change type of AMOUNT to unsigned int. - * t-version.c (version): Remove unused variable. - -2003-07-22 Marcus Brinkmann - - * Makefile.am (AM_CPPFLAGS): New variable. - (LDADD): Add @GPG_ERROR_LIBS@. - * gpg/Makefile.am (AM_CPPFLAGS): New variable. - (LDADD): Add @GPG_ERROR_LIBS@. - * gpgsm/Makefile.am (AM_CPPFLAGS): New variable. - (LDADD): Add @GPG_ERROR_LIBS@. - -2003-06-06 Marcus Brinkmann - - Everywhere: Use libgpg-error error codes. - - * gpg/Makefile.am (noinst_HEADERS): New variable. - * gpg/t-support.h: New file. - * gpgsm/Makefile.am (noinst_HEADERS): New variable. - * gpgsm/t-support.h: New file. - -2003-05-29 Marcus Brinkmann - - * gpg/t-encrypt-sym.c (main): Adapt to new syntax. - * gpg/t-encrypt.c (main): Likewise. - * gpg/t-eventloop.c (main): Likewise. - * gpg/t-encrypt-sign.c (main): Likewise. - * gpgsm/t-export.c (main): Likewise. - * gpgsm/t-encrypt.c (main): Likewise. - -2003-05-28 Marcus Brinkmann - - * gpg/t-eventloop.c (main): Rewrite recipient management. - * gpg/t-encrypt-sign.c (main): Likewise. - * gpg/t-encrypt.c (main): Likewise. - * gpg/t-export.c (main): Likewise. - * gpgsm/t-encrypt.c (main): Likewise. - * gpgsm/t-export.c (main): Likewise. - -2003-05-27 Marcus Brinkmann - - * gpg/Makefile.am (TESTS): Order t-keylist and t-keylist-sig after - t-import. - * gpg/t-edit.c (edit_fnc): Fix primary UID for keylisting tests. - * gpg/t-keylist.c: Change order of user IDs. - * gpg/t-keylist-sig.c: Likewise. - * gpg/t-import.c: Add support for gpg in CVS. - -2003-05-27 Marcus Brinkmann - - * t-data.c: Remove TEST_OUT_CB. - (main): Likewise. - * gpg/t-trustlist.c (main): Access ITEM directly. - - * (t-decrypt-verify.c, t-decrypt.c, t-edit.c, t-encrypt-sign.c, - t-encrypt-sym.c, t-sign.c, t-signers.c): Include . - (passphrase_cb): Rewritten. - * t-edit.c (edit_fnc): Rewritten. - -2003-05-04 Marcus Brinkmann - - * gpg/t-keylist-sig.c (main): Remove timestamp check. - - * gpgsm/t-keylist.c: Add check for timestamp. - - * gpg/Makefile.am (TESTS): Add t-keylist-sig. - * gpg/t-keylist-sig.c: New file. - -2003-04-30 Marcus Brinkmann - - * gpg/t-eventloop.c (main): Do not call print_op_info. - (print_op_info): Function removed. - - * gpg/t-keylist.c: Rewritten. - * gpgsm/t-keylist.c (main): Rewritten. - * gpg/t-edit.c (main): Do not use gpgme_key_get_as_xml. Use - gpgme_key_unref instead gpgme_key_release. - * gpg/t-signers.c (main): Use gpgme_key_unref instead - gpgme_key_release. - -2003-04-29 Marcus Brinkmann - - * gpg/t-trustlist.c: Rewritten. - - * gpg/t-verify.c (main): Rewritten. - * gpg/t-decrypt-verify.c: Rewritten. - * gpgsm/t-verify.c (main): Rewritten. - -2003-04-28 Marcus Brinkmann - - * gpgsm/t-decrypt.c (main): Rewritten. - - * gpg/t-decrypt.c: Rewritten. - - * gpg/t-signers.c: Rewritten. - -2003-04-27 Marcus Brinkmann - - * gpg/t-encrypt-sign.c (check_result): Rewritten. - - * gpg/t-sign.c: Rewritten. - * gpgsm/t-sign.c: Rewritten. - * gpg/t-encrypt.c: Check for invalid recipients. - * gpgsm/t-encrypt.c: Likewise. - - * gpg/t-import.c (check_result): Really use FPR. - * gpgsm/t-import.c (check_result): Rewritten. - -2003-04-25 Marcus Brinkmann - - * gpg/t-import.c: Rewritten. - - * gpgsm/t-genkey.c: Rewritten. - * gpgsm/Makefile.am (noinst_PROGRAMS): Add t-genkey. - * gpg/t-genkey.c: Include . - (main): Check result->fpr before checking its length. - -2003-04-24 Marcus Brinkmann - - * gpg/t-genkey.c: Rewritten to match new semantics. - -2003-02-06 Marcus Brinkmann - - * gpg/t-decrypt.c (passphrase_cb): Fix to new prototype. - * gpg/t-decrypt-verify.c (passphrase_cb): Likewise. - * gpg/t-edit.c (passphrase_cb): Likewise. - * gpg/t-encrypt-sign.c (passphrase_cb): Likewise. - * gpg/t-encrypt-sym.c (passphrase_cb): Likewise. - * gpg/t-sign.c (passphrase_cb): Likewise. - * gpg/t-signers.c (passphrase_cb): Likewise. - -2003-01-30 Marcus Brinkmann - - * t-engine-info.c: Use file_name instead path throughout. - - * Makefile.am (TESTS): Add t-engine-info. - * t-engine-info.c: New file. - * gpg/t-encrypt.c (main): Don't print engine info. - * gpg/t-eventloop.c (main): Likewise. - * gpg/t-encrypt-sign.c (main): Likewise. - * gpgsm/t-encrypt.c (main): Likewise. - -2002-12-24 Marcus Brinkmann - - * gpgsm/t-verify.c (main): Adjust caller of gpgme_op_verify. - * gpg/t-verify.c (main): Likewise. - * gpg/t-decrypt-verify.c (main): Likewise for - gpgme_op_decrypt_verify. - -2002-12-23 Marcus Brinkmann - - * gpgsm/Makefile.am (./gpgsm.conf): Add a faked system time to - avoid certification's expiry. - * gpgsm/t-encrypt.c (main): Use the short certification name. - -2002-11-19 Marcus Brinkmann - - * gpg/t-genkey.c (main): Add missing argument to gpgme_op_genkey - invocation. - -2002-10-09 Marcus Brinkmann - - * gpg/t-decrypt.c (print_data): Update to new gpgme_data_read - interface, and use gpgme_engine_check_version instead - gpgme_check_version. - * gpg/t-decrypt-verify.c (print_data): Likewise. - * gpg/t-edit.c (main): Likewise. - * gpg/t-encrypt.c (print_data): Likewise. - * gpg/t-encrypt-sign.c (print_data): Likewise. - * gpg/t-encrypt-sym.c (print_data): Likewise. - * gpg/t-eventloop.c (print_data): Likewise. - * gpg/t-export.c (print_data): Likewise. - * gpg/t-sign.c (print_data): Likewise. - * gpg/t-signers.c (print_data): Likewise. - * gpgsm/t-decrypt.c (print_data): Likewise. - * gpgsm/t-encrypt.c (print_data): Likewise. - * gpgsm/t-export.c (print_data): Likewise. - * gpgsm/t-sign.c (print_data): Likewise. - * gpg/t-verify.c (main): Likewise for gpgme_op_verify. - * gpgsm/t-verify.c (main): Likewise for gpgme_op_verify. - * t-data.c (read_once_test): Likewise. - (write_test): Update for new behaviour of data objects. - (main): Remove type test. - -2002-09-30 Werner Koch - - * gpgsm/t-keylist.c (doit): Add arg SECRET. - (main): Add option --secret. - -2002-09-28 Marcus Brinkmann - - * t-version.c: Include . Reported by Stéphane Corthésy. - -2002-09-02 Marcus Brinkmann - - * gpg/t-keylist.c (main): Test PATTERN for NULL before printing. - Reported by Dr. Stefan Dalibor . - -2002-08-01 Marcus Brinkmann - - * gpg/t-edit.c: Also add a test for the expire command (testing - the passphrase callback). - -2002-07-28 Marcus Brinkmann - - * gpg/t-edit.c: New file. - * gpg/Makefile (TESTS): Add t-edit. - -2002-07-25 Marcus Brinkmann - - * gpg/t-encrypt-sym.c (main): Change type of I to size_t and - rename to LEN. - * gpg/t-verify.c (main): Likewise. Submitted by Stéphane - Corthésy. - -2002-07-03 Marcus Brinkmann - - * gpg/t-eventloop.c: New file. - * gpg/Makefile (TESTS): Add t-eventloop. - -2002-06-26 Werner Koch - - * gpgsm/t-import.c (print_op_info): New. - (main): Print operation info. - -2002-06-25 Werner Koch - - * gpgsm/Makefile.am (DISTCLEANFILES): new. - -2002-06-25 Marcus Brinkmann - - * gpgsm/Makefile.am (TESTS): Add t-export. - gpgsm/t-export.c: New file. - -2002-06-20 Werner Koch - - * gpgsm/t-sign.c (main): Also test a normal signature. - - * gpg/Makefile (TESTS_ENVIRONMENT): Set GPG_AGENT_INFO empty. - * gpg/t-signers.c, gpg/t-sign.c, gpg/t-encrypt-sym.c - * gpg/t-encrypt-sign.c, gpg/t-decrypt.c - * gpg/t-decrypt-verify.c (main): Changed the GPG_AGENT_INFO check to - match the one in ../../gpgme/rungpg.c. - -2002-06-12 Werner Koch - - * gpgsm/t-keylist.c (doit): Print operation info if available. - -2002-06-10 Werner Koch - - * gpgsm/t-verify.c (print_sig_stat): Print the error token. - -2002-06-04 Werner Koch - - * gpgsm/t-encrypt.c (main): Add a simple option parser and allow - to specify an encryption key. - -2002-05-26 Marcus Brinkmann - - * gpg/Makefile.am (all-local): Remove dependency on ./secring.gpg. - (./secring.gpg): Remove target, and move all rules for this target - to ... - (./pubring.gpg): ... here. This was necessary because GnuPG 1.0.7 - does create an empty secring.gpg file when importing public keys. - -2002-05-08 Marcus Brinkmann - - * gpgsm/t-verify.c (validity_string): New. - (print_sig_stat): Print expire time and validity. - (status_string): Add new exipred stati. - -2002-05-03 Werner Koch - - * gpg/t-verify.c (validity_string): New. - (print_sig_stat): Print expire time and validity. - (status_string): Add new exipred stati. - -2002-04-05 Marcus Brinkmann - - * gpgsm/Makefile.am (./trustlist.txt): Put more into this file to - prevent use of gpg-agent. - (./gpg-agent.conf): Remove target. - (all-local): Remove ./gpg-agent.conf. - -2002-04-05 Marcus Brinkmann - - * gpgsm/t-keylist.c (main): Use gpgme_engine_check_version instead - gpgme_check_engine. - * gpgsm/t-encrypt.c (main): Likewise. - -2002-03-06 Marcus Brinkmann - - * gpg/t-encrypt-sym.c: New file. - * gpg/Makefile.am (TESTS): Add t-encrypt-sym. - -2002-03-05 Marcus Brinkmann - - * gpg/Makefile.am (CLEANFILES): Remove random_seed, which is now - in DISTCLEANFILES. - -2002-03-04 Werner Koch - - * gpg/Makefile.am (DISTCLEANFILES): Added. - -2002-03-03 Marcus Brinkmann - - * gpg/t-verify.c (main): Add a few more sanity checks, and a check - for normal signatures. - -2002-02-26 Marcus Brinkmann - - * gpg/t-encrypt-sign.c: New file. - * gpg/Makefile.am (TESTS): Add t-encrypt-sign. - -2002-02-13 Werner Koch - - * gpgsm/Makefile.am (private-keys-v1.d): Don't - fail when the directory already exists. - -2002-02-12 Marcus Brinkmann - - * gpg/Makefile.am (CLEANFILES): New target. - (distclean-local): Rename to ... - (clean-local): ... this. - -2002-02-09 Marcus Brinkmann - - * gpgsm/Makefile.am (./private-keys-v1.d/$(key_id).key): Fix rule. - -2002-02-09 Marcus Brinkmann - - * gpgsm/t-genkey.c: New file (not added to Makefile.am because of - gpg-agent bug). - -2002-02-08 Marcus Brinkmann - - * gpgsm/Makefile.am (key_id): Update value. - (all-local): Add .key to keyid filename. - (./private-keys-v1.d/$(key_id)): Renamed to ... - (./private-keys-v1.d/$(key_id).key): ... this. - (all-local): Add ./gpgsm.conf, ./trustlist.txt. - (./gpgsm.conf, ./trustlist.txt): New target. - * gpgsm/567064FE6D14A17B2D811ABB407728BC558AA455: Renamed to ... - * gpgsm/32100C27173EF6E9C4E9A25D3D69F86D37A4F939: ... this. - -2002-01-30 Marcus Brinkmann - - * gpg/t-import.c (print_op_info): New function. - (main): Use it. - -2002-01-22 Marcus Brinkmann - - * gpg/t-signers.c (passphrase_cb): Change type of r_hd to void**. - * gpg/t-sign.c (passphrase_cb): Likewise. - * gpg/t-decrypt-verify.c (passphrase_cb): Likewise. - * gpg/t-decrypt.c (passphrase_cb): Likewise. - -2001-12-19 Marcus Brinkmann - - * gpg/t-decrypt-verify.c: Don't include `mcheck.h'. Reported by - Stéphane Corthésy. - -2001-12-19 Marcus Brinkmann - - * gpg/Makefile.am (EXTRA_DIST): Add missing line continuation. - -2001-12-19 Marcus Brinkmann - - * gpgsm/Makefile.am (EXTRA_DIST): Add $(key_id). - -2001-12-16 Marcus Brinkmann - - * gpgsm/Makefile: Rename `pubcerts.kbx' to `pubring.kbx'. - -2001-12-15 Marcus Brinkmann - - * gpgsm/t-keylist.c (check_two_contexts): Set protocols. - -2001-12-14 Marcus Brinkmann - - * gpgsm/t-sign.c: New file. - * gpgsm/Makefile.am (TESTS): Add t-sign. - -2001-12-14 Marcus Brinkmann - - * gpgsm/t-decrypt.c: New file. - * gpgsm/567064FE6D14A17B2D811ABB407728BC558AA455: Likewise. - * gpgsm/Makefile.am (TESTS): Add t-decrypt. - (key_id): New variable. - (all-local): New target ./private-keys-v1.d/$(key_id) added. - (./private-keys-v1.d/$(key_id)): New target. - -2001-12-14 Marcus Brinkmann - - * gpgsm/t-verify.c: New file. - * gpgsm/Makefile.am (TESTS): Add t-verify. - -2001-12-14 Marcus Brinkmann - - * gpg/Makefile.am (GPG): Set to @GPG_PATH@. - (./pubring.gpg): Use $(GPG) instead gpg. - (./secring.gpg): Likewise. - - * gpgsm/t-import.c (main): Remove third test case. - * gpgsm/Makefile.am (GPGSM): Set to @GPGSM@. - (all-local): New target. - (./pubcerts.kbx): Likewise. - * gpgsm/t-encrypt.c: New file. - * gpgsm/Makefile.am (TESTS): Add t-encrypt. - -2001-12-14 Marcus Brinkmann - - * gpgsm/t-keylist.c: New file. - * gpgsm/Makefile.am (TESTS): Add t-keylist. - -2001-12-13 Marcus Brinkmann - - * gpgsm/cert_dfn_pca01.der: New file. - * gpgsm/cert_dfn_pca15.der: Likewise. - * gpgsm/cert_g10code_test1.der: Likewise. - * gpgsm/t-import.c: Likewise. - * gpgsm/Makefile.am (EXTRADIST): Add new files. - (TESTS): Add t-import. - -2001-11-22 Marcus Brinkmann - - * gpg/: New directory. - * Makefile.am, t-verify.c, t-encrypt.c, t-signers.c, t-trustlist.c, - t-sign.c, t-keylist.c, t-import.c, t-genkey.c, t-export.c, - t-decrypt-verify.c, t-decrypt.c, t-version.c, t-data.c, mkdemodirs. - cipher-1.asc, cipher-2.asc, geheim.txt, pubdemo.asc, pubkey-1.asc, - secdemo.asc, seckey-1.asc): Move to sub directory gpg/. - - * gpg/Makefile.am (INCLUDES): Include gpgme/, not include/ and - intl/. - (LDD): Correct relative path to gpgme library. - (TESTS): Remove t-version and t-data. - * gpg/t-verify.c, gpg/t-encrypt.c, gpg/t-signers.c, gpg/t-trustlist.c, - gpg/t-sign.c, gpg/t-keylist.c, gpg/t-import.c, gpg/t-genkey.c, - gpg/t-export.c, gpg/t-decrypt-verify.c, gpg/t-decrypt.c, - t-version.c, t-data.c): Include gpgme.h, not "../gpgme/gpgme.h". - - * Makefile.am: New file. - * gpgsm/: New directory. - * gpgsm/Makefile.am: New file. - -2001-11-16 Marcus Brinkmann - - * Makefile.am (TESTS): Add t-decrypt-verify. - * t-decrypt-verify.c: New file. - * cipher-2.asc: Likewise. - -2001-11-02 Marcus Brinkmann - - * t-data.c: Include stddef.h. - (read_once_test): Change type of READ to size_t. - (read_test): Likewise. - (write_test): Likewise. - -2001-10-29 Marcus Brinkmann - - * t-signers.c: New file. - * Makefile.am (TESTS): Add t-signers. - -2001-10-22 Marcus Brinkmann - - * Makefile.am (TEST_ENVIRONMENT): Revert last change. - -2001-10-22 Marcus Brinkmann - - * Makefile.am (TEST_ENVIRONMENT): Set environment to $(srcdir), - not current directory. - -2001-10-22 Marcus Brinkmann - - * t-data.c (write_test): New function. - (main): Invoke write_test for all rounds except TEST_OUT_CB. - -2001-10-22 Marcus Brinkmann - - * Makefile.am (INCLUDES): Remove spurious duplicate to silence - automake. - -2001-10-16 Marcus Brinkmann - - * t-version.c: New file. - * t-data.c: Likewise. - * t-data-1.txt: Likewise. - * t-data-2.txt: Likewise. - * Makefile.am (TESTS): Add t-version, t-data. - -2001-09-17 Werner Koch - - * t-keylist.c (check_two_contexts): New. - -2001-09-03 Werner Koch - - * t-encrypt.c (print_op_info): New and use it after each operation.. - -2001-08-28 Werner Koch - - * t-sign.c (print_op_info): New and use it after each operation. - -2001-03-15 Werner Koch - - * t-keylist.c (doit): List subkeys too, show caps. - -2001-02-13 Werner Koch - - * t-verify.c (print_sig_stat): Repaled ulong by unsigned long - because we don't use the config stuff here. - -2001-02-12 Werner Koch - - * tests/t-verify.c (print_sig_stat): Print info about the keys. - - - Copyright 2001, 2004 g10 Code GmbH - - This file is free software; as a special exception the author gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. - - This file is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY, to the extent permitted by law; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/tests/ChangeLog-2011 b/tests/ChangeLog-2011 new file mode 100644 index 00000000..596c2df3 --- /dev/null +++ b/tests/ChangeLog-2011 @@ -0,0 +1,941 @@ +2011-12-02 Werner Koch + + NB: ChangeLog files are no longer manually maintained. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist". See doc/HACKING for details. + +2011-05-11 Marcus Brinkmann + + * gpgsm/Makefile.am (DISTCLEANFILES): Move to ... + (CLEANFILES): ... here. + (clean-local): New rule. + * gpg/Makefile.am (DISTCLEANFILES): Move to ... + (CLEANFILES): ... here. + +2011-05-05 Marcus Brinkmann + + * gpg/Makefile.am: Unset GPG_AGENT_INFO when setting up local + configuration. + (clean-local): Shut down local gpg-agent. + +2011-05-04 Marcus Brinkmann + + * gpg/t-import.c (check_result): Complete secret key pair counting + and disable status check, as GPG 2.1 currently emits two IMPORT_OK + lines and we only look at the first. + +2011-04-27 Marcus Brinkmann + + * gpg/Makefile.am (DISTCLEANFILES): Add S.gpg-agent. + (mkdemodirs, ./Alpha/Secret.gpg): Remove targets. + (GNUPGHOME): Export as absolute build directory (for gpg-agent). + (./pubring.gpg): Remove --homedir option, import secdemo.asc. + (clean-local): Rewrite. + * gpg/secdemo.asc: New file. + * gpg/pubkey-1.asc, gpg/seckey-1.asc: Change passphrase to + "abc" (now needed as GnuPG 2.1 asks for secret key passphrase on + import). + * gpg/t-keylist.c (keys): Update key info for Joe Random Hacker. + (main): Disable check for can_encrypt, as this is now in a + different subkey. + * gpg/t-encrypt-sign.c (check_result): Allow RMD160 hash + algorithm. + * gpg/t-import.c (check_result): One secret key pair now counts as + two secret keys, allow that. + +2009-11-03 Werner Koch + + * run-support.h (fail_if_err): Include program name. + + * run-sign.c (main): Add option --uiserver. + +2009-10-26 Marcus Brinkmann + + * opassuan/t-command.c: Update to new interface. + +2009-10-15 Werner Koch + + * run-verify.c: New. + +2009-08-06 Werner Koch + + * run-sign.c: New. + +2009-07-07 Werner Koch + + * run-keylist.c (main): Add options --cms and --openpgp. + + * gpg/pgp-keylist.c: Rename to ... + * run-keylist.c: ... this. + * gpg/pgp-import.c: Rename to ... + * run-import.c: ... this. + * gpg/pgp-export.c: Rename to ... + * run-export.c: ... this. + * run-support.h: New. Copied from gpg/t-support.h. + * gpg/Makefile.am (noinst_PROGRAMS): Remove them. + * Makefile.am (noinst_PROGRAMS): Add them. + (noinst_HEADERS): New. + +2009-06-22 Marcus Brinkmann + + * gpg/t-support.h (passphrase_cb): Implement write() according to + the book to silence compiler warning. + * gpgsm/t-support.h (passphrase_cb): Likewise. + +2009-06-16 Werner Koch + + * gpg/pgp-import.c: New. + * gpg/t-support.h (print_import_result, nonnull): Factored out + from other tools. + + * gpg/pgp-export.c, gpg/pgp-keylist.c: New. + +2009-06-09 Werner Koch + + * gpg/Makefile.am (./pubring.gpg): Ignore errors in case of + already imported keys. Add --no-permission-warning and remove + obsolete --allow-secret-key-import. + * gpg/mkdemodirs.in (GPG): Add --no-permission-warning. + + * gpg/t-edit.c (edit_fnc): Use gpgme_io_write. + +2009-04-19 Moritz + + * gpg/Makefile.am (EXTRA_DIST): Replaced mkdemodirs with mkdemodirs.in. + (mkdemodirs): New target. + (clean-local): Added command for removing mkdemodirs script. + (./Alpha/Secret.gpg): Added dependency on mkdemodirs. + + * gpg/mkdemodirs: Renamed to ... + * gpg/mkdemodirs.in: ... here. + * gpg/mkdemodirs.in (GPG): Derive value from @GPG@ instead of + hard-coding "gpg". + +2009-02-24 Werner Koch + + * opassuan/t-command.c: Adjust for changed new op_assuan interface. + +2009-02-03 Werner Koch + + * gpg/t-keylist.c (main): Check that new fields is_cardkey and + card_number are not set. + +2009-01-26 Werner Koch + + * opassuan/: New. + * opassuan/Makefile.am: New. + * opassuan/t-command.c: New. + +2008-12-03 Marcus Brinkmann + + * Makefile.am (INCLUDES): Fix path to include file. + * gpg/Makefile.am (INCLUDES), gpgsm/Makefile.am (INCLUDES): Likewise. + +2008-11-18 Werner Koch + + * gpgsm/cms-decrypt.c: New. + +2008-11-03 Marcus Brinkmann + + * gpgsm/Makefile.am (INCLUDES, LDADD): Replace gpgme path with src. + * gpg/Makefile.am (INCLUDES, LDADD, t_thread1_LDADD): Likewise. + * Makefile.am (LDADD): Likewise. + +2008-10-30 Werner Koch + + * gpgsm/cms-keylist.c: New. + +2008-06-19 Werner Koch + + * gpg/t-gpgconf.c (dump_arg): Add new types. Print strings in + quotes. + +2008-01-28 Marcus Brinkmann + + * gpg/Makefile.am (DISTCLEANFILES): Add pubring.kbx~. + +2008-01-10 Marcus Brinkmann + + * gpg/t-gpgconf.c (main): Allow for dirmngr not to be available. + + * gpg/Makefile.am (./gpg-agent.conf): Correct pinentry path. + + * gpg/pinentry: New file. + * gpg/Makefile.am (DISTCLEANFILES, all-local): Add gpg-agent.conf + (./gpg-agent.conf): New target. + (EXTRA_DIST): Add pinentry. + + * gpg/t-gpgconf.c (main): Exit early if compiled without gpgconf. + +2008-01-04 Marcus Brinkmann + + * gpg/Makefile.am (CLEANFILES): Add pubring.kbx and dirmngr.conf. + + * Makefile.am (TESTS_ENVIRONMENT): Use absolute path for + GNUPGHOME. + * gpg/Makefile.am (TESTS_ENVIRONMENT): Use absolute path for + GNUPGHOME. + * gpgsm/Makefile.am (TESTS_ENVIRONMENT): Use absolute path for + GNUPGHOME. + * gpg/Makefile.am (TESTS): Add t-gpgconf. + t-gpgconf.c: New file. + +2007-11-23 Marcus Brinkmann + + * gpgsm/t-verify.c (show_auditlog): Check for GPG_ERR_ASS_UNKNOWN_CMD. + +2007-11-23 Werner Koch + + * gpgsm/t-verify.c (check_result): Don't exit on error but set a flag. + (main): Cosnult flag for return value. + (show_auditlog): New. + (main): Use it. + +2007-09-27 Marcus Brinkmann + + * t-engine-info.c (check_engine_info): Fix debug output. + * gpg/Makefile.am (tests_unix): New variable. + (TESTS): Use it. + * gpg/t-support.h (passphrase_cb) [HAVE_W32_SYSTEM]: Use WriteFile instead of write. + * gpg/t-wait.c [HAVE_W32_SYSTEM]: Define sleep as _sleep. + +2007-09-14 Marcus Brinkmann + + * gpgsm/t-verify.c (main): Release TEXT and SIG. + +2007-07-12 Marcus Brinkmann + + * gpgsm/Makefile.am (key_id): Change := into =. + +2007-07-12 Werner Koch + + * gpgsm/t-support.h (init_gpgme) [W32]: Do not init the locales as + the constants are not available. + +2007-02-26 Werner Koch + + * gpg/t-verify.c (double_plaintext_sig): New. + (main): Check it. + +2006-12-02 Marcus Brinkmann + + * gpgsm/t-keylist.c (main): Skip unknown keys. Newer versions of + GPGSM import more keys than older ones. + +2005-12-06 Werner Koch + + * gpg/t-keylist.c (main): Changed for that secondary keys now have + a fingerprint. + * gpg/t-keylist-sig.c (main): Ditto. + * gpgsm/t-keylist.c (main): Ditto. The test used to be wrong. + +2005-10-18 Werner Koch + + * gpg/pubdemo.asc, gpg/secdemo.asc: Add 2 expired subkeys to + Whisky. + * gpg/t-keylist.c: Reordered list to match new demo keyring. Add + arg for number of subkeys and for extra checking function. + (main): Enhanced a few error outputs. Changed subkey + counting. Call extra checking fucntion. + (check_whisky): New. + +2005-10-07 Marcus Brinkmann + + * gpgsm/t-keylist.c (main): Allow for an email address as a second + uid. + + * gpg/t-sig-notation.c: Change critical notation to something + GnuPG understands. + +2005-10-01 Marcus Brinkmann + + * gpg/Makefile.am (EXTRA_DIST): Remove gpg.conf. + (DISTCLEANFILES): Add gpg.conf. + (all-local): Add gpg.conf. + (./gpg.conf): New target. + * gpg/gpg.conf: Remove file. + + * gpg/Makefile.am (EXTRA_DIST): Add gpg.conf. + + * gpg/Makefile.am (TESTS): Add t-sig-notation. + * gpg/t-sig-notation.c (check_result): New file. + * gpg/t-verify.c (check_result): Also check the length of the + notation data. + * gpg/gpg.conf: New file. + +2005-09-30 Marcus Brinkmann + + * gpg/Makefile.am (TESTS): Add t-filename. + * gpg/t-filename.c: New file. + +2005-09-23 Werner Koch + + * gpg/t-support.h (init_gpgme) [W32]: Don't use LC_MESSAGES. + + * gpg/t-encrypt-large.c: New test. + * gpg/Makefile.am (TESTS): Add t-encrypt-large. + +2005-06-03 Marcus Brinkmann + + * gpg/Makefile.am (TESTS): Add t-wait. + * gpg/t-wait.c (main): New test. + +2004-12-07 Marcus Brinkmann + + * gpg/mkdemodirs: Add copyright notice. + + * gpgsm/Makefile.am, gpgsm/t-support.h, gpgsm/t-decrypt.c, + gpgsm/t-encrypt.c, gpgsm/t-export.c, gpgsm/t-genkey.c, + gpgsm/t-import.c, gpgsm/t-keylist.c, gpgsm/t-sign.c, + gpgsm/t-verify.c, gpg/Makefile.am, gpg/t-decrypt.c, + gpg/t-decrypt-verify.c, gpg/t-edit.c, gpg/t-encrypt.c, + gpg/t-encrypt-sign.c, gpg/t-encrypt-sym.c, gpg/t-eventloop.c, + gpg/t-export.c, gpg/t-genkey.c, gpg/t-import.c, gpg/t-keylist.c, + gpg/t-keylist-sig.c, gpg/t-sign.c, gpg/t-signers.c, + gpg/t-support.h, gpg/t-thread1.c, gpg/t-trustlist.c, + gpg/t-verify.c, Makefile.am, t-data.c, t-engine-info.c, + t-version.c: Change license to LGPL. + +2004-08-17 Marcus Brinkmann + + * gpgsm/t-keylist.c (struct): Add new fields VALIDITY and + KEY_LENGTH. + (main): Use them. + * gpgsm/t-import.c (check_result): New argument total_stat. + (main): Pass this argument. Reduce number of total considered + keys to 1 for the second test. + +2004-04-05 Werner Koch + + * gpgsm/Makefile.am: Changed the faked system time to 20011213T12000. + +2004-03-07 Marcus Brinkmann + + * gpgsm/t-keylist.c: Add chain IDs. + +2004-03-03 Werner Koch + + * gpgsm/t-export.c (main): Also check exporting 2 certificates. + +2004-02-17 Werner Koch + + * gpgsm/t-import.c (check_result): gpgsm does now return info in + the result->imports; adjust for that. + + * gpgsm/Makefile.am (TESTS_ENVIRONMENT): Reset the GPG_AGENT_INFO. + + Include config.h at the top of each C source. This is required + due to LFS support. + + * gpg/t-keylist-sig.c (main): s/class/sig_class/. + * gpg/t-signers.c (check_result): Ditto. + * gpg/t-sign.c (check_result): Ditto. + * gpg/t-encrypt-sign.c (check_result): Ditto. + * gpgsm/t-sign.c (check_result): Ditto. + +2004-01-12 Werner Koch + + * gpg/t-keylist-sig.c (main): Temporary disabled one test due top + gpg 1.3.4 problems. + * gpg/t-import.c (check_result): Likewise. + +2003-11-19 Werner Koch + + * gpg/t-support.h (DIM): Added. + + * gpg/t-verify.c (check_result): Rewrote test for notations + because the order of notaions is not guaranteed. + + * gpgsm/t-support.h (fail_if_err): Also print the numeric values. + +2003-10-06 Marcus Brinkmann + + * gpg/t-eventloop.c: Include for old systems. + + * gpgsm/Makefile.am (DISTCLEANFILES): Add random_seed. + + * gpg/t-thread1.c (thread_one): Do not call initialize_gpgme. + Likewise. + +2003-09-14 Marcus Brinkmann + + * gpg/t-thread1.c (main): Call init_gpgme here. + (initialize_gpgme): Function removed. + + * gpg/t-thread1.c: New file. + * gpg/Makefile.am (TESTS): Add t-thread1.c. + (t_thread1_LDADD): New variable. + (LDADD): Remove GPG Error lib. + * gpgsm/Makefile.am (LDADD): Likewise. + + * gpg/t-import.c (main): Likewise. + * gpg/t-keylist-sig.c (main): Likewise. + * gpg/t-keylist.c (main): Likewise. + * gpg/t-sign.c (main): Likewise. + * gpg/t-signers.c (main): Likewise. + * gpg/t-trustlist.c (main): Likewise. + * gpgsm/t-support.h: Include and . + (init_gpgme): New function. + * gpg/t-support.h: Likewise. + * gpgsm/t-verify.c (main): Call init_gpgme. + * gpgsm/t-decrypt.c (main): Likewise. + * gpgsm/t-encrypt.c (main): Likewise. + * gpgsm/t-export.c (main): Likewise. + * gpgsm/t-genkey.c (main): Likewise. + * gpgsm/t-import.c (main): Likewise. + * gpgsm/t-keylist.c (main): Likewise. + * gpgsm/t-sign.c (main): Likewise. + * gpg/t-verify.c (main): Call init_gpgme. + * gpg/t-decrypt-verify.c (main): Likewise. + * gpg/t-decrypt.c (main): Likewise. + * gpg/t-edit.c (main): Likewise. + * gpg/t-encrypt-sign.c (main): Likewise. + * gpg/t-encrypt-sym.c (main): Likewise. + * gpg/t-encrypt.c (main): Likewise. + * gpg/t-eventloop.c (main): Likewise. + * gpg/t-export.c (main): Likewise. + * gpg/t-genkey.c (main): Likewise. + +2003-08-14 Marcus Brinkmann + + * gpg/t-sign.c (check_result): Change output format for signature + class to unsigned int. + * gpg/t-signers.c (check_result): Likewise. + * gpg/t-encrypt-sign.c (check_result): Likewise. + * gpgsm/t-sign.c (check_result): Likewise. + +2003-07-31 Marcus Brinkmann + + * gpg/t-verify.c (check_result): Change type of SUMMARY to + unsigned int. + * gpg/t-decrypt-verify.c (check_verify_result): Likewise. + * gpg/t-keylist-sig.c (keys): Change type of member CLASS to + unsigned int. + * t-data.c (read_cb): Change type of AMOUNT to unsigned int. + * t-version.c (version): Remove unused variable. + +2003-07-22 Marcus Brinkmann + + * Makefile.am (AM_CPPFLAGS): New variable. + (LDADD): Add @GPG_ERROR_LIBS@. + * gpg/Makefile.am (AM_CPPFLAGS): New variable. + (LDADD): Add @GPG_ERROR_LIBS@. + * gpgsm/Makefile.am (AM_CPPFLAGS): New variable. + (LDADD): Add @GPG_ERROR_LIBS@. + +2003-06-06 Marcus Brinkmann + + Everywhere: Use libgpg-error error codes. + + * gpg/Makefile.am (noinst_HEADERS): New variable. + * gpg/t-support.h: New file. + * gpgsm/Makefile.am (noinst_HEADERS): New variable. + * gpgsm/t-support.h: New file. + +2003-05-29 Marcus Brinkmann + + * gpg/t-encrypt-sym.c (main): Adapt to new syntax. + * gpg/t-encrypt.c (main): Likewise. + * gpg/t-eventloop.c (main): Likewise. + * gpg/t-encrypt-sign.c (main): Likewise. + * gpgsm/t-export.c (main): Likewise. + * gpgsm/t-encrypt.c (main): Likewise. + +2003-05-28 Marcus Brinkmann + + * gpg/t-eventloop.c (main): Rewrite recipient management. + * gpg/t-encrypt-sign.c (main): Likewise. + * gpg/t-encrypt.c (main): Likewise. + * gpg/t-export.c (main): Likewise. + * gpgsm/t-encrypt.c (main): Likewise. + * gpgsm/t-export.c (main): Likewise. + +2003-05-27 Marcus Brinkmann + + * gpg/Makefile.am (TESTS): Order t-keylist and t-keylist-sig after + t-import. + * gpg/t-edit.c (edit_fnc): Fix primary UID for keylisting tests. + * gpg/t-keylist.c: Change order of user IDs. + * gpg/t-keylist-sig.c: Likewise. + * gpg/t-import.c: Add support for gpg in CVS. + +2003-05-27 Marcus Brinkmann + + * t-data.c: Remove TEST_OUT_CB. + (main): Likewise. + * gpg/t-trustlist.c (main): Access ITEM directly. + + * (t-decrypt-verify.c, t-decrypt.c, t-edit.c, t-encrypt-sign.c, + t-encrypt-sym.c, t-sign.c, t-signers.c): Include . + (passphrase_cb): Rewritten. + * t-edit.c (edit_fnc): Rewritten. + +2003-05-04 Marcus Brinkmann + + * gpg/t-keylist-sig.c (main): Remove timestamp check. + + * gpgsm/t-keylist.c: Add check for timestamp. + + * gpg/Makefile.am (TESTS): Add t-keylist-sig. + * gpg/t-keylist-sig.c: New file. + +2003-04-30 Marcus Brinkmann + + * gpg/t-eventloop.c (main): Do not call print_op_info. + (print_op_info): Function removed. + + * gpg/t-keylist.c: Rewritten. + * gpgsm/t-keylist.c (main): Rewritten. + * gpg/t-edit.c (main): Do not use gpgme_key_get_as_xml. Use + gpgme_key_unref instead gpgme_key_release. + * gpg/t-signers.c (main): Use gpgme_key_unref instead + gpgme_key_release. + +2003-04-29 Marcus Brinkmann + + * gpg/t-trustlist.c: Rewritten. + + * gpg/t-verify.c (main): Rewritten. + * gpg/t-decrypt-verify.c: Rewritten. + * gpgsm/t-verify.c (main): Rewritten. + +2003-04-28 Marcus Brinkmann + + * gpgsm/t-decrypt.c (main): Rewritten. + + * gpg/t-decrypt.c: Rewritten. + + * gpg/t-signers.c: Rewritten. + +2003-04-27 Marcus Brinkmann + + * gpg/t-encrypt-sign.c (check_result): Rewritten. + + * gpg/t-sign.c: Rewritten. + * gpgsm/t-sign.c: Rewritten. + * gpg/t-encrypt.c: Check for invalid recipients. + * gpgsm/t-encrypt.c: Likewise. + + * gpg/t-import.c (check_result): Really use FPR. + * gpgsm/t-import.c (check_result): Rewritten. + +2003-04-25 Marcus Brinkmann + + * gpg/t-import.c: Rewritten. + + * gpgsm/t-genkey.c: Rewritten. + * gpgsm/Makefile.am (noinst_PROGRAMS): Add t-genkey. + * gpg/t-genkey.c: Include . + (main): Check result->fpr before checking its length. + +2003-04-24 Marcus Brinkmann + + * gpg/t-genkey.c: Rewritten to match new semantics. + +2003-02-06 Marcus Brinkmann + + * gpg/t-decrypt.c (passphrase_cb): Fix to new prototype. + * gpg/t-decrypt-verify.c (passphrase_cb): Likewise. + * gpg/t-edit.c (passphrase_cb): Likewise. + * gpg/t-encrypt-sign.c (passphrase_cb): Likewise. + * gpg/t-encrypt-sym.c (passphrase_cb): Likewise. + * gpg/t-sign.c (passphrase_cb): Likewise. + * gpg/t-signers.c (passphrase_cb): Likewise. + +2003-01-30 Marcus Brinkmann + + * t-engine-info.c: Use file_name instead path throughout. + + * Makefile.am (TESTS): Add t-engine-info. + * t-engine-info.c: New file. + * gpg/t-encrypt.c (main): Don't print engine info. + * gpg/t-eventloop.c (main): Likewise. + * gpg/t-encrypt-sign.c (main): Likewise. + * gpgsm/t-encrypt.c (main): Likewise. + +2002-12-24 Marcus Brinkmann + + * gpgsm/t-verify.c (main): Adjust caller of gpgme_op_verify. + * gpg/t-verify.c (main): Likewise. + * gpg/t-decrypt-verify.c (main): Likewise for + gpgme_op_decrypt_verify. + +2002-12-23 Marcus Brinkmann + + * gpgsm/Makefile.am (./gpgsm.conf): Add a faked system time to + avoid certification's expiry. + * gpgsm/t-encrypt.c (main): Use the short certification name. + +2002-11-19 Marcus Brinkmann + + * gpg/t-genkey.c (main): Add missing argument to gpgme_op_genkey + invocation. + +2002-10-09 Marcus Brinkmann + + * gpg/t-decrypt.c (print_data): Update to new gpgme_data_read + interface, and use gpgme_engine_check_version instead + gpgme_check_version. + * gpg/t-decrypt-verify.c (print_data): Likewise. + * gpg/t-edit.c (main): Likewise. + * gpg/t-encrypt.c (print_data): Likewise. + * gpg/t-encrypt-sign.c (print_data): Likewise. + * gpg/t-encrypt-sym.c (print_data): Likewise. + * gpg/t-eventloop.c (print_data): Likewise. + * gpg/t-export.c (print_data): Likewise. + * gpg/t-sign.c (print_data): Likewise. + * gpg/t-signers.c (print_data): Likewise. + * gpgsm/t-decrypt.c (print_data): Likewise. + * gpgsm/t-encrypt.c (print_data): Likewise. + * gpgsm/t-export.c (print_data): Likewise. + * gpgsm/t-sign.c (print_data): Likewise. + * gpg/t-verify.c (main): Likewise for gpgme_op_verify. + * gpgsm/t-verify.c (main): Likewise for gpgme_op_verify. + * t-data.c (read_once_test): Likewise. + (write_test): Update for new behaviour of data objects. + (main): Remove type test. + +2002-09-30 Werner Koch + + * gpgsm/t-keylist.c (doit): Add arg SECRET. + (main): Add option --secret. + +2002-09-28 Marcus Brinkmann + + * t-version.c: Include . Reported by Stéphane Corthésy. + +2002-09-02 Marcus Brinkmann + + * gpg/t-keylist.c (main): Test PATTERN for NULL before printing. + Reported by Dr. Stefan Dalibor . + +2002-08-01 Marcus Brinkmann + + * gpg/t-edit.c: Also add a test for the expire command (testing + the passphrase callback). + +2002-07-28 Marcus Brinkmann + + * gpg/t-edit.c: New file. + * gpg/Makefile (TESTS): Add t-edit. + +2002-07-25 Marcus Brinkmann + + * gpg/t-encrypt-sym.c (main): Change type of I to size_t and + rename to LEN. + * gpg/t-verify.c (main): Likewise. Submitted by Stéphane + Corthésy. + +2002-07-03 Marcus Brinkmann + + * gpg/t-eventloop.c: New file. + * gpg/Makefile (TESTS): Add t-eventloop. + +2002-06-26 Werner Koch + + * gpgsm/t-import.c (print_op_info): New. + (main): Print operation info. + +2002-06-25 Werner Koch + + * gpgsm/Makefile.am (DISTCLEANFILES): new. + +2002-06-25 Marcus Brinkmann + + * gpgsm/Makefile.am (TESTS): Add t-export. + gpgsm/t-export.c: New file. + +2002-06-20 Werner Koch + + * gpgsm/t-sign.c (main): Also test a normal signature. + + * gpg/Makefile (TESTS_ENVIRONMENT): Set GPG_AGENT_INFO empty. + * gpg/t-signers.c, gpg/t-sign.c, gpg/t-encrypt-sym.c + * gpg/t-encrypt-sign.c, gpg/t-decrypt.c + * gpg/t-decrypt-verify.c (main): Changed the GPG_AGENT_INFO check to + match the one in ../../gpgme/rungpg.c. + +2002-06-12 Werner Koch + + * gpgsm/t-keylist.c (doit): Print operation info if available. + +2002-06-10 Werner Koch + + * gpgsm/t-verify.c (print_sig_stat): Print the error token. + +2002-06-04 Werner Koch + + * gpgsm/t-encrypt.c (main): Add a simple option parser and allow + to specify an encryption key. + +2002-05-26 Marcus Brinkmann + + * gpg/Makefile.am (all-local): Remove dependency on ./secring.gpg. + (./secring.gpg): Remove target, and move all rules for this target + to ... + (./pubring.gpg): ... here. This was necessary because GnuPG 1.0.7 + does create an empty secring.gpg file when importing public keys. + +2002-05-08 Marcus Brinkmann + + * gpgsm/t-verify.c (validity_string): New. + (print_sig_stat): Print expire time and validity. + (status_string): Add new exipred stati. + +2002-05-03 Werner Koch + + * gpg/t-verify.c (validity_string): New. + (print_sig_stat): Print expire time and validity. + (status_string): Add new exipred stati. + +2002-04-05 Marcus Brinkmann + + * gpgsm/Makefile.am (./trustlist.txt): Put more into this file to + prevent use of gpg-agent. + (./gpg-agent.conf): Remove target. + (all-local): Remove ./gpg-agent.conf. + +2002-04-05 Marcus Brinkmann + + * gpgsm/t-keylist.c (main): Use gpgme_engine_check_version instead + gpgme_check_engine. + * gpgsm/t-encrypt.c (main): Likewise. + +2002-03-06 Marcus Brinkmann + + * gpg/t-encrypt-sym.c: New file. + * gpg/Makefile.am (TESTS): Add t-encrypt-sym. + +2002-03-05 Marcus Brinkmann + + * gpg/Makefile.am (CLEANFILES): Remove random_seed, which is now + in DISTCLEANFILES. + +2002-03-04 Werner Koch + + * gpg/Makefile.am (DISTCLEANFILES): Added. + +2002-03-03 Marcus Brinkmann + + * gpg/t-verify.c (main): Add a few more sanity checks, and a check + for normal signatures. + +2002-02-26 Marcus Brinkmann + + * gpg/t-encrypt-sign.c: New file. + * gpg/Makefile.am (TESTS): Add t-encrypt-sign. + +2002-02-13 Werner Koch + + * gpgsm/Makefile.am (private-keys-v1.d): Don't + fail when the directory already exists. + +2002-02-12 Marcus Brinkmann + + * gpg/Makefile.am (CLEANFILES): New target. + (distclean-local): Rename to ... + (clean-local): ... this. + +2002-02-09 Marcus Brinkmann + + * gpgsm/Makefile.am (./private-keys-v1.d/$(key_id).key): Fix rule. + +2002-02-09 Marcus Brinkmann + + * gpgsm/t-genkey.c: New file (not added to Makefile.am because of + gpg-agent bug). + +2002-02-08 Marcus Brinkmann + + * gpgsm/Makefile.am (key_id): Update value. + (all-local): Add .key to keyid filename. + (./private-keys-v1.d/$(key_id)): Renamed to ... + (./private-keys-v1.d/$(key_id).key): ... this. + (all-local): Add ./gpgsm.conf, ./trustlist.txt. + (./gpgsm.conf, ./trustlist.txt): New target. + * gpgsm/567064FE6D14A17B2D811ABB407728BC558AA455: Renamed to ... + * gpgsm/32100C27173EF6E9C4E9A25D3D69F86D37A4F939: ... this. + +2002-01-30 Marcus Brinkmann + + * gpg/t-import.c (print_op_info): New function. + (main): Use it. + +2002-01-22 Marcus Brinkmann + + * gpg/t-signers.c (passphrase_cb): Change type of r_hd to void**. + * gpg/t-sign.c (passphrase_cb): Likewise. + * gpg/t-decrypt-verify.c (passphrase_cb): Likewise. + * gpg/t-decrypt.c (passphrase_cb): Likewise. + +2001-12-19 Marcus Brinkmann + + * gpg/t-decrypt-verify.c: Don't include `mcheck.h'. Reported by + Stéphane Corthésy. + +2001-12-19 Marcus Brinkmann + + * gpg/Makefile.am (EXTRA_DIST): Add missing line continuation. + +2001-12-19 Marcus Brinkmann + + * gpgsm/Makefile.am (EXTRA_DIST): Add $(key_id). + +2001-12-16 Marcus Brinkmann + + * gpgsm/Makefile: Rename `pubcerts.kbx' to `pubring.kbx'. + +2001-12-15 Marcus Brinkmann + + * gpgsm/t-keylist.c (check_two_contexts): Set protocols. + +2001-12-14 Marcus Brinkmann + + * gpgsm/t-sign.c: New file. + * gpgsm/Makefile.am (TESTS): Add t-sign. + +2001-12-14 Marcus Brinkmann + + * gpgsm/t-decrypt.c: New file. + * gpgsm/567064FE6D14A17B2D811ABB407728BC558AA455: Likewise. + * gpgsm/Makefile.am (TESTS): Add t-decrypt. + (key_id): New variable. + (all-local): New target ./private-keys-v1.d/$(key_id) added. + (./private-keys-v1.d/$(key_id)): New target. + +2001-12-14 Marcus Brinkmann + + * gpgsm/t-verify.c: New file. + * gpgsm/Makefile.am (TESTS): Add t-verify. + +2001-12-14 Marcus Brinkmann + + * gpg/Makefile.am (GPG): Set to @GPG_PATH@. + (./pubring.gpg): Use $(GPG) instead gpg. + (./secring.gpg): Likewise. + + * gpgsm/t-import.c (main): Remove third test case. + * gpgsm/Makefile.am (GPGSM): Set to @GPGSM@. + (all-local): New target. + (./pubcerts.kbx): Likewise. + * gpgsm/t-encrypt.c: New file. + * gpgsm/Makefile.am (TESTS): Add t-encrypt. + +2001-12-14 Marcus Brinkmann + + * gpgsm/t-keylist.c: New file. + * gpgsm/Makefile.am (TESTS): Add t-keylist. + +2001-12-13 Marcus Brinkmann + + * gpgsm/cert_dfn_pca01.der: New file. + * gpgsm/cert_dfn_pca15.der: Likewise. + * gpgsm/cert_g10code_test1.der: Likewise. + * gpgsm/t-import.c: Likewise. + * gpgsm/Makefile.am (EXTRADIST): Add new files. + (TESTS): Add t-import. + +2001-11-22 Marcus Brinkmann + + * gpg/: New directory. + * Makefile.am, t-verify.c, t-encrypt.c, t-signers.c, t-trustlist.c, + t-sign.c, t-keylist.c, t-import.c, t-genkey.c, t-export.c, + t-decrypt-verify.c, t-decrypt.c, t-version.c, t-data.c, mkdemodirs. + cipher-1.asc, cipher-2.asc, geheim.txt, pubdemo.asc, pubkey-1.asc, + secdemo.asc, seckey-1.asc): Move to sub directory gpg/. + + * gpg/Makefile.am (INCLUDES): Include gpgme/, not include/ and + intl/. + (LDD): Correct relative path to gpgme library. + (TESTS): Remove t-version and t-data. + * gpg/t-verify.c, gpg/t-encrypt.c, gpg/t-signers.c, gpg/t-trustlist.c, + gpg/t-sign.c, gpg/t-keylist.c, gpg/t-import.c, gpg/t-genkey.c, + gpg/t-export.c, gpg/t-decrypt-verify.c, gpg/t-decrypt.c, + t-version.c, t-data.c): Include gpgme.h, not "../gpgme/gpgme.h". + + * Makefile.am: New file. + * gpgsm/: New directory. + * gpgsm/Makefile.am: New file. + +2001-11-16 Marcus Brinkmann + + * Makefile.am (TESTS): Add t-decrypt-verify. + * t-decrypt-verify.c: New file. + * cipher-2.asc: Likewise. + +2001-11-02 Marcus Brinkmann + + * t-data.c: Include stddef.h. + (read_once_test): Change type of READ to size_t. + (read_test): Likewise. + (write_test): Likewise. + +2001-10-29 Marcus Brinkmann + + * t-signers.c: New file. + * Makefile.am (TESTS): Add t-signers. + +2001-10-22 Marcus Brinkmann + + * Makefile.am (TEST_ENVIRONMENT): Revert last change. + +2001-10-22 Marcus Brinkmann + + * Makefile.am (TEST_ENVIRONMENT): Set environment to $(srcdir), + not current directory. + +2001-10-22 Marcus Brinkmann + + * t-data.c (write_test): New function. + (main): Invoke write_test for all rounds except TEST_OUT_CB. + +2001-10-22 Marcus Brinkmann + + * Makefile.am (INCLUDES): Remove spurious duplicate to silence + automake. + +2001-10-16 Marcus Brinkmann + + * t-version.c: New file. + * t-data.c: Likewise. + * t-data-1.txt: Likewise. + * t-data-2.txt: Likewise. + * Makefile.am (TESTS): Add t-version, t-data. + +2001-09-17 Werner Koch + + * t-keylist.c (check_two_contexts): New. + +2001-09-03 Werner Koch + + * t-encrypt.c (print_op_info): New and use it after each operation. + +2001-08-28 Werner Koch + + * t-sign.c (print_op_info): New and use it after each operation. + +2001-03-15 Werner Koch + + * t-keylist.c (doit): List subkeys too, show caps. + +2001-02-13 Werner Koch + + * t-verify.c (print_sig_stat): Repaled ulong by unsigned long + because we don't use the config stuff here. + +2001-02-12 Werner Koch + + * tests/t-verify.c (print_sig_stat): Print info about the keys. + + + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2011 g10 Code GmbH + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/tests/Makefile.am b/tests/Makefile.am index 2441e6f5..0ecdab21 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,19 +1,19 @@ # Makefile.am - Makefile for GPGME tests. # Copyright (C) 2000 Werner Koch (dd9jn) # Copyright (C) 2001, 2004 g10 Code GmbH -# +# # This file is part of GPGME. -# +# # GPGME 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 2.1 of the # License, or (at your option) any later version. -# +# # GPGME 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 program; if not, see . @@ -23,7 +23,7 @@ TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) TESTS = t-version t-data t-engine-info -EXTRA_DIST = t-data-1.txt t-data-2.txt +EXTRA_DIST = t-data-1.txt t-data-2.txt ChangeLog-2011 INCLUDES = -I$(top_builddir)/src @@ -39,13 +39,13 @@ noinst_PROGRAMS = $(TESTS) run-keylist run-export run-import run-sign \ if RUN_GPG_TESTS gpgtests = gpg else -gpgtests = +gpgtests = endif if RUN_GPGSM_TESTS gpgsmtests = gpgsm opassuan else -gpgsmtests = +gpgsmtests = endif SUBDIRS = ${gpgtests} ${gpgsmtests} -- cgit v1.2.3