2025-10-07  Werner Koch  <wk@gnupg.org>

	Release 1.56.
	+ commit b3b68bde07b02dd2b6d78356ac90baa652a309fa


	estream: Implictly enable sysopen when the the share flag is given.
	+ commit 461cb5a8ea24785ef4f8c5282e09e69bf487fa7f
	* src/estream.c (parse_mode): Fix parsing of "share". Set sysopen
	flag.

	estream: Extend the new share keyword to allow all modes.
	+ commit 0b170a499a87abc4a18b6f7d76beb44901fa0cdd
	* src/estream.c (X_SHARE_RW): Replace by ...
	(X_SHARE_CUSTOM,X_SHARE_READ,X_SHARE_WRITE,X_SHARE_DEL): new.
	(func_file_create_w32): Set share_mode accordingly.
	(parse_mode): Extend the "share" keyword.

	* src/gpg-error.c (main): Add option --openmode to allow testing of
	the share modes.

2025-10-03  NIIBE Yutaka  <gniibe@fsij.org>

	Update copyright and version string in gpg-error.m4.
	+ commit 413b65f34fd1d58ae879412bfa248521ff284b3c
	* src/gpg-error.m4: Update.

2025-10-02  Werner Koch  <wk@gnupg.org>

	estream: New mode keyword "share=rw".
	+ commit 2344947717d29170c918a195541db568648c7aa3
	* src/estream.c (X_SAMETHREAD): Move to the top.  Also for the other
	 X_constants.
	(_gpgrt_fopen): Move setting of FILE_FLAG_SEQUENTIAL_SCAN to ...
	(func_file_create_w32): here. Replace arg flags_and_attrs by xflags
	and use cflags to set certain properties.
	(parse_mode): Add mode keyword "share=rw".

2025-09-24  NIIBE Yutaka  <gniibe@fsij.org>

	Also fix for test(1) operator -o.
	+ commit a51f30e923670040136dbf68f2a4275f586d129a
	* autogen.sh: Don't use -o operator, but shell ||.
	* src/gpgrt-config.in: Likewise.

2025-09-23  Werner Koch  <wk@gnupg.org>

	Fixes for obsoleted/removed test(1) operator -a.
	+ commit 6344dd1cad8f44b9a6ab39570795479e32bf7058
	* autogen.sh: Here.
	* configure.ac: And here.
	* src/gen-lock-obj.sh: And here.
	* src/gpg-error.m4 (AM_PATH_GPG_ERROR): And here.
	* src/gpgrt-config.in (eval_compare_version): And here.
	* src/gpgrt.m4 (AM_PATH_GPGRT): And here.

	Silence warnings when enabling the trace functions.
	+ commit 3cf07222264c1966333429280059dfed917b36e9
	* src/w32-estream.c (reader): Use correct printf format specifiers for
	the trace functions.

2025-09-23  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Don't convert slash->backslash when it's under Wine.
	+ commit 0313b660f8bd4e82ec8af6da593d745b9e658ce8
	* src/sysutils.c (_gpgrt_fname_to_wchar): No change under Wine.

	w32:spawn: Fix thread-unfriendly internal check.
	+ commit 00a40c0c599fb439facf1af55495d7ca1e496683
	* src/gpgrt-int.h (_gpgrt_windows_feature): New.
	* src/init.c (windows_specific_init): New.
	(real_init) [HAVE_W32_SYSTEM]: Call windows_specific_init.
	(_gpgrt_windows_feature): New.
	* src/spawn-w32.c (check_windows_version): Remove.
	(_gpgrt_process_spawn): Use _gpgrt_windows_feature.

2025-08-14  Werner Koch  <wk@gnupg.org>

	estream: Support the %b conversion specifier from C23.
	+ commit 6ac5332e4f6988112f4272cfe7a2eee31173ff3f
	* src/estream-printf.c (CONSSPEC_BIN): New.
	(compute_type): Handle it.
	(parse_format): Support 'b'.
	(do_format): Divert 'b' to pr_integer.
	(pr_integer): Print binary format.

	* tests/t-printf.c (check_fprintf_sf): Add two simple testcases.

	Set build specific variable for zOS.
	+ commit 7ee191f54c2a830767207fb6563380a87f60ddf0
	* configure.ac (EXTRA_LIBS_FOR_BUILD): New ac_subst.
	* src/Makefile.am (mkheader): Append that var to the rule.

2025-07-20  Ben Kibbey  <bjk@luxsci.net>

	syscfg: Add x86_64 Android arch.
	+ commit c6eacfae7c067149b08d07f2cadf2da14f888de5
	* src/syscfg/lock-obj-pub.x86_64-unknown-linux-androideabi.h: New.
	* src/Makefile.am (lock_obj_pub): Add it.

	syscfg: Add i686 Android arch.
	+ commit 7e05d3bda6ad10d564d151fa2c4c4939aa8892d4
	* src/syscfg/lock-obj-pub.i686-unknown-linux-androideabi.h: New.
	* src/Makefile.am (lock_obj_pub): Add it.

	syscfg: Add armv7a alias to arm for Android.
	+ commit 5caa2a6944ec12593a12aba772cfde5efc73b019
	* src/mkheader.c (canon_host_triplet): Add alias.

	syscfg: Add 64-bit Android arch.
	+ commit 587287c4a735b68ff3405ffcd2ea02da4ca82282
	* src/syscfg/lock-obj-pub.aarch64-unknown-linux-androideabi.h: New.
	* src/Makefile.am (lock_obj_pub): Add it.

2025-07-16  NIIBE Yutaka  <gniibe@fsij.org>

	w32:spawn: Support pipe I/O for GPGRT_PROCESS_DETACHED.
	+ commit 8a38d914512ca928ffa5c79199bd410c9324e0e6
	* src/spawn-w32.c (struct gpgrt_spawn_actions): Add detached field.
	(spawn_detached): Merge into ...
	(_gpgrt_process_spawn): ... here, supporting pipe I/O.
	(_gpgrt_process_release): Handle detached process.
	(_gpgrt_process_wait_list): Likewise.

2025-07-15  NIIBE Yutaka  <gniibe@fsij.org>

	w32:spawn: New flag GPGRT_PROCESS_STDIO_NUL.
	+ commit 311fb769d1ddb1aa6d7463b5b516359afebf208a
	* src/gpg-error.h.in (GPGRT_PROCESS_STDIO_NUL): New.
	* src/spawn-w32.c (w32_open_null): Add ENABLE_NULL_DEVICE argument.
	(_gpgrt_process_spawn): Follow the change.

	w32:spawn: Fix resource leaks for HANDLEs by w32_open_null.
	+ commit f28bf71b86ba6eac4260084f3a164a5c273c4628
	* src/spawn-w32.c (_gpgrt_process_spawn): Don't modify hd fields in
	ACT.  Clean up use of hd_in, hd_out, and hd_err.

2025-07-14  NIIBE Yutaka  <gniibe@fsij.org>

	w32:spawn: Fix inheriting HANDLEs.
	+ commit 0b01950237abe1cc28ef1fa5459e20c300af0946
	* src/spawn-w32.c (spawn_detached): Use EXTENDED_STARTUPINFO_PRESENT
	to enable lpAttributeList in STARTUPINFOEXW.
	(_gpgrt_process_spawn): Likewise.

2025-07-02  NIIBE Yutaka  <gniibe@fsij.org>

	gpgrt-config: It's gcc which supports -print-search-dirs option.
	+ commit cac7168088147a4d308b5ae7482135bc00db9f69
	* src/gpgrt-config.in (determine_gpgrt_libdir): Default to gcc.

2025-07-01  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Define _GPGRT_NEED_AFLOCAL for OS without AF_LOCAL.
	+ commit dffca928fbc94dd738c8a118eb64e0889441c077
	* src/spawn-posix.c (_GPGRT_NEED_AFLOCAL): Add.

2025-06-26  NIIBE Yutaka  <gniibe@fsij.org>

	spawn:posix: Use 1024 for arbitrary limit, following GPGME.
	+ commit 6cb61bb9cb552c430cc3a466ee056df5ed5a06e1
	* src/spawn-posix.c (get_max_fds): Use 1024 (was: 256).

	spawn:posix: Add an improvement when closefrom is not available.
	+ commit d302aff1eff1c51240007a75a1b2d7c08b326055
	* src/gpgrt-int.h (_gpgrt_close_all_fds): Fix function declaration.
	* src/spawn-posix.c (USE_GET_MAX_FDS): Define when closefrom is not
	available.
	(get_max_fds): Add an argument of FALLBACK_MAX_FDS.
	(_gpgrt_close_all_fds, my_exec, spawn_detached): Likewise.
	(_gpgrt_process_spawn): [USE_GET_MAX_FDS && _SC_OPEN_MAX]: It's a
	parent process which calls sysconf.

	posix:spawn: Use getdents64 when closefrom is not available.
	+ commit 9cc016c38df1531d6081317bfcc7ea705172e2ac
	* configure.ac (AC_CHECK_FUNCS): Check getdents64.
	* src/spawn-posix.c [!HAVE_CLOSEFROM] (get_max_fds): Use getdents64
	instead of readdir, for AS-Safety.

2025-06-23  NIIBE Yutaka  <gniibe@fsij.org>

	spawn:posix: Fix spawning a process on POSIX machine.
	+ commit 2c029e737e88494038b5143f1232b458977f31d4
	* src/spawn-posix.c (get_max_fds): Don't use _POSIX_OPEN_MAX, since
	it's irrelevant;  It's a minimum value of OPEN_MAX.

2025-06-16  Werner Koch  <wk@gnupg.org>

	w32: Allow building on Windows with gcc < 12.
	+ commit 1d4e09c9b1b184d0369a90c2adacab8f197310f6
	* src/spawn-w32.c (_WIN32_WINNT): Define.

2025-06-10  Collin Funk via Gnupg-devel  <gnupg-devel@gnupg.org>

	argparse: Remove a duplicated condition.
	+ commit 0cee6a44f8a22c8a015115bd5567e25e207cdbfe
	* src/argparse.c (emulated_registry_lookup): Remove duplicated
	condition.

2025-05-28  Werner Koch  <wk@gnupg.org>

	libtool: Add support for zOS.
	+ commit c42825f1612b13c27c2472c4190d64655891078b
	* m4/libtool.m4: Add casefor  openedition.

2025-05-28  NIIBE Yutaka  <gniibe@fsij.org>

	argparse: Fix a memory leak.
	+ commit ba7ed54668e4d7baea563f8b94cc887a41642f8d
	* src/argparse.c (handle_meta_echo): Free the STRING.

	yat2m: Release the memory after the use.
	+ commit 98d8f3d396b58d3086fd0416246908eba078917b
	* doc/yat2m.c (add_content): Fix the type of LINE.
	(finish_page): Clean up.

2025-04-24  Werner Koch  <wk@gnupg.org>

	Release 1.55.
	+ commit 99381397a06564fd8ae1c623c11036a5da099a4f


	Add commands mkdir and chdir to gpg-error.
	+ commit c002490a8f6dda044ae41118a6019da9ea3fc98c
	* src/gpg-error.c (main): Add new commands mkdir and chdir.  Allow for
	commands w/o dashes.

	w32: Yet another extended length path kludge.
	+ commit fba44d619d388aa413f4f50756c287a722437475
	* src/sysutils.c (_gpgrt_fname_to_wchar): Change threshold from 255
	to 250.

2025-04-22  Werner Koch  <wk@gnupg.org>

	w32: More changes to the extended length path handling.
	+ commit 65114f24e13f835a289f791ed7a5e408b2843d59
	* src/sysutils.c (has_path_separator): New.
	(_gpgrt_fname_to_wchar): Rewrite to add the prefix only when needed.
	----

	GetFullPathNameW has no MAX_PATH limit and thus can be used with any
	input.  We now prefix the resulting absolute path after the call to
	GFPN.  This allows to check whether the CWD is an UNC and thus use the
	right prefix.  We also don't run the entire thing for just a drive
	letter etc and further skip the prefix if the absolute path is less
	than MAX_PATH.  This gives better backward compatibility.

	There is also now a GPGRT_DISABLE_EXTLENPATH=-2 which does not disable
	the extended path handling but enables debug output.  To actually
	disable the feature a positive value must be used.

	Updates-commit 28ae4ee194ec56e98123d3aceda130161dfd2df8

2025-04-21  NIIBE Yutaka  <gniibe@fsij.org>

	Mark the initializations with __nonstring__ attribute.
	+ commit 1c58363541fcc331511d067ce388f32298fd8d29
	* src/b64enc.c (bintoasc): Use GPGRT_ATTR_NONSTRING.
	* src/gpg-error.h.in (GPGRT_ATTR_NONSTRING): New.

2025-04-17  Werner Koch  <wk@gnupg.org>

	Release 1.54.
	+ commit 9d47a0f1f8ae0b9aa4c2d0c230c08c8fbe243f42


2025-04-16  Werner Koch  <wk@gnupg.org>

	w32: Fix extended length path handling for UNC specified files.
	+ commit 28ae4ee194ec56e98123d3aceda130161dfd2df8
	* src/sysutils.c (_gpgrt_fname_to_wchar): Fix the extended length path
	support for UNC file names.  Also add an envvar to disable the entire
	extended length path support.

	Add command --fopen to gpg-error to help testing.
	+ commit 3c9beea348cdeaa3f3026a934b40badfb4d4bab2
	* src/gpg-error.c (main): Implement command --fopen.  Also ignore log
	file settings from the Registry.

2025-04-09  Werner Koch  <wk@gnupg.org>

	Release 1.53.
	+ commit f9e98ed8315eaf0468870149d22c5dcf992288ec


	tests: Check that we do not use the es macros in the public API.
	+ commit 26b876030dbda890b9630595419b422aa182c0dd
	* tests/t-version.c: Undef the macros.

2025-04-09  NIIBE Yutaka  <gniibe@fsij.org>

	Use gpgrt_stream_t for the API of gpgrt_nvc_*.
	+ commit 32475a7868f5e2e1c274a65ecc6791375054eaa4
	* src/gpg-error.h.in (gpgrt_nvc_parse): Use gpgrt_stream_t.
	(gpgrt_nvc_write): Likewise.

2025-04-08  Werner Koch  <wk@gnupg.org>

	Release 1.52.
	+ commit be471d158e4951f4b17335b0fc9ae2387a786b5b


2025-04-07  Werner Koch  <wk@gnupg.org>

	argparse: Make getreg meta command work on Unix.
	+ commit 9864dd4d66342cca340f8ebe57f46b2fa274bac0
	* src/argparse.c (_gpgrt_argparse_internal_s): Add fields no_registry
	and registry.
	(initialize): Init them.
	(emulated_registry_lookup): New.
	(handle_meta_getenv): Use it.
	* tests/etc/t-argparse.conf: Add a getreg meta command.
	* tests/t-argparse.c (opt): Add a disable-akr command.
	* tests/etc/Registry: New.

	Add a section mode to the name-value functions.
	+ commit d0b7d33536736ef6f3d41575b6f58b2d3a7c139b
	* src/gpg-error.h.in (GPGRT_NVC_SECTION): New.
	* src/name-value.c (_gpgrt_name_value_container): Add section_mode.
	(_gpgrt_nvc_new): Set it.
	(_gpgrt_nvc_get_flag): Return it.
	(valid_name): Add arg sectionmode and change callers.
	(do_nvc_parse): Parse section names in section mode.
	(_gpgrt_nvc_write): Return an error in section mode.

	Allow name-value lookup w/o a trailing colon for the name.
	+ commit afb277e5bdd92c16a4fdbd33b89dab4c03a5ae62
	* src/name-value.c (_gpgrt_name_value_entry): Add field namelen.
	(ascii_memcasecmp): New.
	(same_name_p): New.
	(valid_name): Strip the colon and return the length.
	(do_nvc_add): Set namelen.
	(_gpgrt_nvc_lookup): Simplify.

	* tests/t-name-value.c (test_getting_values): Add some extra tests.

	New public API gpgrt_nvc_* and gpgrt_nve_*
	+ commit 7ec1f27b60eec95297c5267ab5ebbdb73b263c3f
	* src/name-value.c: New.
	* tests/t-name-value.c: New.
	* src/gpg-error.def.in: Add new functions.
	* src/gpg-error.h.in: Ditto.
	* src/gpg-error.vers: Ditto.
	* src/visibility.c: Ditto.
	* src/visibility.h: Ditto.

	Update the copyright notice.
	+ commit 17bb01f86d1d75bb57418a0101c0f08a49bfdd07
	* configure.ac (GPGRT_STD_COPYRIGHT_LINE): New.
	* src/gpg-error.c (my_strusage): Use it here.

2025-04-04  Werner Koch  <wk@gnupg.org>

	w32: Improve the detection of the need for a \\?\ prefix.
	+ commit a4a692fcf1ed128693ec6d64d5e3163775aad10b
	* src/sysutils.c (_gpgrt_fname_to_wchar): Use the no-max-path prefix
	for shorter files and for filenames with path separators.

	Add test cases for the strlist functions.
	+ commit b6b0af7d4eb2c65318ac87253dc3979f99b301dd
	* tests/t-strlist.c: new.

	tests: Add macros to improve the debug output.
	+ commit be036dccd756e326470afcd7928a1d20790fc24a
	* tests/t-common.h (current_func): New var.
	(enter_test_function, leave_test_function): New macros.
	(die, fail, show): Print the fucntion name.

2025-04-01  Werner Koch  <wk@gnupg.org>

	New public API gpgrt_strlist_*
	+ commit 47097806f13d93daffb73b4221f3f18a99f66b2b
	* src/strlist.c: Rename all functions to have a _gpgrt_strlist prefix.
	(append_to_strlist2, strlist_length): Remove.
	(_gpgrt_strlist_free): rtake care of the wipe flag.
	(_gpgrt_strlist_add): Add a flags arg to use it for prepend and
	append.  Return an error on failure.
	(_gpgrt_strlist_tokenize): Ditto.
	(_gpgrt_strlist_copy): Chnage to return an error on failure.
	(_gpgrt_strlist_pop): Ditto.
	* src/Makefile.am (libgpg_error_la_SOURCES): Add strlist.c.
	* src/argparse.c (trim_spaces): Move to ...
	* src/stringutils.c (_gpgrt_trim_spaces): here and rename.
	* src/visibility.c: Add wrappers for all exported functions.
	* src/visibility.h: MArk exported functions as visisble.
	* src/gpg-error.def.in: Export new functions
	* src/gpg-error.vers: Ditto.
	* src/gpg-error.h.in (GPGRT_STRLIST_APPEND): New.
	(GPGRT_STRLIST_WIPE): New.
	(gpgrt_strlist_free): New.
	(gpgrt_strlist_add): New.
	(gpgrt_strlist_tokenize): New.
	(gpgrt_strlist_copy): New.
	(gpgrt_strlist_rev): New.
	(gpgrt_strlist_prev): New.
	(gpgrt_strlist_last): New.
	(gpgrt_strlist_pop): New.
	(gpgrt_strlist_find): New.
	(gpgrt_strlist_count): New inline function.

2025-02-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	Fix logic for finding the beta version number.
	+ commit 542b6fce139047b5a0fa42ae11179a2308ac8f9e
	* autogen.sh: Check if $tmp is empty after each assignment.

2025-02-06  NIIBE Yutaka  <gniibe@fsij.org>

	gpgrt-config: Append default directory to PKG_CONFIG_PATH.
	+ commit dbf1e0dc47229384d59cb19084de39a855e5c871
	* src/gpgrt-config.in: Fix initializing PKG_CONFIG_PATH.

2025-01-22  NIIBE Yutaka  <gniibe@fsij.org>

	Skip gpg-error-config-test.sh for specific incompatible pkg-config.
	+ commit b6df311368133df90c3bf338fbf5c90bd8d950f8
	* src/gpg-error-config-test.sh.in: Skip the test with pkgconf 1.8.0.

2025-01-15  NIIBE Yutaka  <gniibe@fsij.org>

	build: Remove defining GPG_ERR_ENABLE_ERRNO_MACROS.
	+ commit 71756ce3735183ddf7c340e071fa649c446e262c
	* configure.ac (GPG_ERR_ENABLE_ERRNO_MACROS): Remove.

2025-01-14  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Care about closefrom/close call is interrupted.
	+ commit 0f4fe2edf5e50cc72b3decea486f2cf57d265d8e
	* src/spawn-posix.c (closefrom_really): Handle interrupted call of
	closefrom.
	(close_except): Likewise for call of close.
	(_gpgrt_close_all_fds): Use closefrom_really and close_except.

2025-01-08  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Use closefrom when available.
	+ commit e3e793302b67e37727caf11a868b5b91d7c13f8c
	* configure.ac (AC_CHECK_FUNCS): Check closefrom.
	* src/spawn-posix.c [HAVE_CLOSEFROM]: Use closefrom if possible.

2024-12-12  Werner Koch  <wk@gnupg.org>

	New Windows API gpgrt_w32_reg_get_string.
	+ commit 652328c786f37e3a3de5c3b143ce9e0d524bfeb4
	* src/w32-reg.c (_gpgrt_w32_reg_query_string): Implement a prefix for
	root and consider an empty string for root also HKCU.
	* src/visibility.c (gpgrt_w32_reg_get_string): New.
	* src/gpg-error.def.in: Add new function.

	* src/gpg-error.c (my_strusage): Print the Windows version (32 or 64
	bit) of the binary.
	(main): New command --getreg.

2024-12-03  Werner Koch  <wk@gnupg.org>

	Minor cleanness fix for autogen.sh.
	+ commit 65a4bc30d99aada8e5f17711bc5a4ff242d22881
	* autogen.sh (w32root): Remove double slash in case of HOME=/.

2024-12-02  Daniel Cerqueira  <dan.git@lispclub.com>

	po: Update Portuguese Translation.
	+ commit 7baf9f6b4030012a9d813d5e0c108dd836479ad4


2024-11-21  Werner Koch  <wk@gnupg.org>

	autogen.sh: New command --print-tsdir.
	+ commit e15a7c411dcadb229f4ff1ae0259c51dde9fd535
	* autogen.sh: New command --print-tsdir.
	(maintainer_mode_option): Allow setting via autogen.rc

2024-11-14  NIIBE Yutaka  <gniibe@fsij.org>

	spawn:w32: Fix a memory leak on an error path.
	+ commit eb005c30157f4ce0cd335955f13567dda03685e3
	* src/spawn-w32.c (spawn_detached): Make sure to release
	lpAttributeList.
	(_gpgrt_process_spawn): Likewise.

2024-11-11  Werner Koch  <wk@gnupg.org>

	Release 1.51.
	+ commit b0bb9266010d84b30fa2dc6a2127b7e40dc03660


2024-10-23  NIIBE Yutaka  <gniibe@fsij.org>

	Avoid use of 'nullptr' for an identifier.
	+ commit d14c69a7f256a9444c5c64b808d8767e5a8ba68e
	* tests/t-printf.c (check_fprintf_sf): Use 'null_ptr'
	as an identifier.

2024-10-16  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Shorter identifier gpgrt_spawn_actions_set_env_rev.
	+ commit 1bca948594d9f8c26231bfb7ff7b2f3ebf9df295
	* src/gpg-error.def.in: Rename to gpgrt_spawn_actions_set_env_rev.
	* src/gpg-error.h.in: Likewise.
	* src/gpg-error.vers: Likewise.
	* src/gpgrt-int.h: Likewise.
	* src/spawn-posix.c: Likewise.
	* src/spawn-w32.c: Likewise.
	* src/visibility.c: Likewise.
	* src/visibility.h: Likewise.
	* tests/t-spawn.c (run_test): Use gpgrt_spawn_actions_set_env_rev.

2024-10-11  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Add new function to modify environment.
	+ commit 1860f6407f834b681c21f67db7236eaad161524c
	* src/gpg-error.def.in (gpgrt_spawn_actions_set_envchange): New.
	* src/gpg-error.vers (gpgrt_spawn_actions_set_envchange): New.
	* src/gpg-error.h.in (gpgrt_spawn_actions_set_envchange): New.
	* src/gpgrt-int.h (_gpgrt_spawn_actions_set_envchange): New.
	* src/spawn-posix.c (struct gpgrt_spawn_actions): New field ENVCHANGE.
	(prepare_environ): New.
	(my_exec): Take care of ENVCHANGE.
	(_gpgrt_spawn_actions_set_envchange): New.
	* src/spawn-w32.c (struct gpgrt_spawn_actions): New field ENVCHANGE.
	(prepare_env_block): New.
	(_gpgrt_spawn_actions_set_envchange): New.
	(spawn_detached, _gpgrt_process_spawn): Take care of ENVCHANGE.
	* src/visibility.c (gpgrt_spawn_actions_set_envchange): New.
	* src/visibility.h (gpgrt_spawn_actions_set_envchange): New.
	* tests/Makefile.am (TESTS): Add t-spawn.
	* tests/t-spawn.c: New.

2024-10-10  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Fix releasing memory for UTF-8 text.
	+ commit 68600fe17c5f8c72e421b5ca9d9622568c6f57fd
	* src/spawn-w32.c (spawn_detached): Use _gpgrt_free_wchar.
	(_gpgrt_process_spawn): Likewise.

2024-09-24  Werner Koch  <wk@gnupg.org>

	estream: Let poll return an error for a closed fd.
	+ commit 4a3dc85f695e6448e6279dc48894b500168f42f9
	* src/estream.c (_gpgrt_poll): Set got_nval.

2024-09-19  NIIBE Yutaka  <gniibe@fsij.org>

	posix: Fix forgotten _gpgrt_post_syscall on error path.
	+ commit bcab96484d4858fcde669b36d309ab7fbc79174e
	* src/spawn-posix.c (do_create_pipe_and_estream): Call post_syscall.

	posix: Fix memory leak for spawn.
	+ commit 4a0c942151da91ad75dbb45d4dc10c4751ee28e4
	* src/spawn-posix.c (spawn_detached): Free ARGV.

2024-09-16  NIIBE Yutaka  <gniibe@fsij.org>

	w32:spawn: Remove unused function get_max_fds.
	+ commit c2a713fe11e35b4567e0c7d2a20d8ab416b366ad
	* src/spawn-w32.c (get_max_fds): Remove.

2024-09-06  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Clarify the environment block encoding.
	+ commit 0f7b327ccf6d2018b193d5598c4a8a338f874a59
	* src/spawn-w32.c (_gpgrt_spawn_actions_set_envvars): It's an ASCII
	string.

2024-08-27  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Add GPGRT_PROCESS_ALLOW_SET_FG for gpgrt_process_spawn.
	+ commit b79d4206f482b323fb9f9d52a1c715e853752195
	* src/gpg-error.h.in (GPGRT_PROCESS_ALLOW_SET_FG): New.
	* src/spawn-w32.c (_gpgrt_process_spawn): Support the flag.

2024-08-02  Werner Koch  <wk@gnupg.org>

	w32: Allow initialization of new threads to utf8 mode.
	+ commit 7f36440d90964ffe809064365cb16033ba1dda69
	* src/init.c (utf8_for_new_threads): New var.
	(_gpgrt_w32_utf8_for_new_threads): New func.
	(get_tls): Init the TLS utf8 flag from the new var.
	* src/w32-gettext.c (_gpg_w32_gettext_use_utf8): Implement new flag.

2024-07-04  Werner Koch  <wk@gnupg.org>

	Put the full commit id into VERSION.
	+ commit 9c448f7c7a55c8293cd33ea0fcd33dd42032504d
	* autogen.sh <find-version>: Also print the full commit id.
	* configure.ac: Get the full commit id.  Add it to VERSION.
	(BUILD_REVISION): Replace this ac_define by
	(BUILD_COMMITID): this.
	* src/version.c (cright_blurb): Use here.

2024-06-20  Werner Koch  <wk@gnupg.org>

	core: Declare environ for macOS and others.
	+ commit a59e902b887fd92337c9728f668cf9c89da3957a
	* src/spawn-posix.c (environ): Declare.

2024-06-19  Werner Koch  <wk@gnupg.org>

	Release 1.50.
	+ commit bb732615daad9bba9026354ae90f0f5292ea4908


	spawn: New flag GPGRT_PROCESS_NO_EUID_CHECK.
	+ commit bdd1060445fa358d3ca3f1f98334de60cd5d6c10
	* src/gpg-error.h.in (GPGRT_PROCESS_NO_EUID_CHECK): New.
	* src/spawn-posix.c (spawn_detached): Move check to ...
	(_gpgrt_process_spawn): here and skip if flag is set.

	spawn: Keep struct definitions at the top of the file.
	+ commit 0078afb8c60af2c61c01688ca52f51ca95b25721
	* src/spawn-posix.c: Move include and struct defs around.
	* src/spawn-w32.c: Move struct defs around.

2024-06-13  NIIBE Yutaka  <gniibe@fsij.org>

	Apply spell fix.
	+ commit 82a34b733d89b2c3ebc45d8124378ada19017a65
	* src/gpg-error.m4: Apply spell fix from GnuPG master.

	Fix gpg-error.m4.
	+ commit c690e6e3655e7d9db79cd07cfacf3234ecd548cf
	* src/gpg-error.m4 (_AM_PATH_GPGRT_CONFIG): Don't set
	gpg_error_config_version.
	(AM_PATH_GPG_ERROR): Set GPG_ERROR_CONFIG here and set
	gpg_error_config_version with GPG_ERROR_CONFIG.

2024-06-07  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Support the use case in libassuan where PGMNAME==NULL.
	+ commit d53f35a5e6644b94fb25bf6afd365f4b0f5a18e0
	* src/spawn-posix.c (my_exec): When PGMNAME==NULL, just fork.
	(_gpgrt_process_spawn): Support PGMNAME==NULL use case.
	* src/spawn-w32.c (_gpgrt_process_spawn): Return GPG_ERR_INV_ARG,
	when PGMNAME==NULL.

2024-06-06  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Expose gpgrt_spawn_actions functions.
	+ commit e644311383350ce704611cce69f322a7d9dd548e
	* src/gpg-error.def.in: Update.
	* src/gpg-error.h.in: Add declarations.
	* src/gpg-error.vers: Update.
	* src/visibility.c: Update.
	* src/visibility.h: Update.

	spawn: Add new GPGRT_PROCESS_NO_CONSOLE for Windows.
	+ commit 03fd278d7f7a1e3e0d082de5efb9d85740cf0ab8
	* src/gpg-error.h.in (GPGRT_PROCESS_NO_CONSOLE): New.
	* src/spawn-w32.c (_gpgrt_process_spawn): Handle
	GPGRT_PROCESS_NO_CONSOLE.

	Fix return type of gpgrt_b64dec_*.
	+ commit 7d132a1a72ad618640640db278056ce04d32fdde
	* src/gpg-error.h.in (gpgrt_b64dec_proc): Return gpg_err_code_t.
	(gpgrt_b64dec_finish): Ditto.
	* src/visibility.c: Fix return type.

2024-06-05  Werner Koch  <wk@gnupg.org>

	spawn:w32: Allow for up to 32 inherited handles.
	+ commit 4ee656242aa93af42e74acb706a13f99212a93d6
	* src/spawn-w32.c (spawn_detached): Increase array size.
	(_gpgrt_process_spawn): Ditto.

	spawn: Avoid bumping the error counter.
	+ commit 60b9a68def583d7c3a1d47daec717a7f71233c55
	* src/spawn-posix.c: Use log_info instead of log_error.
	* src/spawn-w32.c: Ditto.
	(spawn_detached): Fix copying of hd[2]
	(_gpgrt_process_spawn): Ditto.

2024-06-05  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Expose spawn functions API.
	+ commit 2caaef8f6b89d7fcbbe3d480d192fe1952576942
	* src/gpg-error.def.in: Update.
	* src/gpg-error.vers: Update.
	* src/gpg-error.h.in: Add declarations.
	* src/visibility.c: Add implementations.
	* src/visibility.h: Expose them.

2024-06-04  NIIBE Yutaka  <gniibe@fsij.org>

	spawn:w32: Fix setting of dwFlags for CreateProcess.
	+ commit 3be8b2c95faac8543e2ceddb308b8c138dde11d8
	* src/spawn-w32.c (_gpgrt_process_spawn): Only set
	STARTF_USESTDHANDLES with active handles.

2024-05-30  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Allow NULL for ACT.
	+ commit adcb4170a40d7cf66181a6b3efc7c187892a1318
	* src/spawn-posix.c (_gpgrt_process_spawn): ACT may be null.
	* src/spawn-w32.c (_gpgrt_process_spawn): Likewise.

2024-05-29  NIIBE Yutaka  <gniibe@fsij.org>

	Fix process termination check at release.
	+ commit 5fec7d7ada4c5b1978cfba3be8b67475ff1e0859
	* src/spawn-posix.c (_gpgrt_process_release): When NOT terminated,
	terminate and wait.
	* src/spawn-w32.c (_gpgrt_process_release): Likewise.

	Fix how environment variables are specified for spawn.
	+ commit fbe1f5153c3cb8b7c5de40973cceee7f639804e7
	* src/gpgrt-int.h (_gpgrt_spawn_actions_set_envvars)
	[HAVE_W32_SYSTEM]: Assume use with GetEnvironmentStrings.
	(_gpgrt_spawn_actions_set_environ) [!HAVE_W32_SYSTEM]:
	New.
	* src/spawn-posix.c: Follow the change.
	* src/spawn-w32.c: Can specify envvars now.

	Cleaner semantics for _gpgrt_process_spawn without a callback.
	+ commit 6c05b35977c9d15da45b4fe6c0c870dbbf51657c
	* src/gpg-error.h.in (@define:struct_spawn_cb_arg@): Remove.
	(gpgrt_spawn_actions_t): New.
	(@define:spawn_actions_functions@): New.
	* src/gpgrt-int.h (_gpgrt_spawn_actions_new)
	(_gpgrt_spawn_actions_release, _gpgrt_spawn_actions_set_envvars)
	(_gpgrt_spawn_actions_set_redirect): New.
	[HAVE_W32_SYSTEM] (_gpgrt_spawn_actions_set_inherit_handles): New.
	[!HAVE_W32_SYSTEM] (_gpgrt_spawn_actions_set_inherit_fds)
	(_gpgrt_spawn_actions_set_atfork): New.
	(_gpgrt_process_spawn): Use gpgrt_spawn_actions_t.
	(_gpgrt_spawn_helper): Remove.
	* src/mkheader.c: Emit gpgrt_spawn_actions_* definition.
	* src/spawn-posix.c(_gpgrt_spawn_actions_new)
	(_gpgrt_spawn_actions_release, _gpgrt_spawn_actions_set_envvars)
	(_gpgrt_spawn_actions_set_redirect)
	(_gpgrt_spawn_actions_set_inherit_fds)
	(_gpgrt_spawn_actions_set_atfork): New.
	(spawn_detached, _gpgrt_process_spawn): Use gpgrt_spawn_actions_t.
	(_gpgrt_spawn_helper): Remove.
	* src/spawn-w32.c: Ditto, with
	_gpgrt_spawn_actions_set_inherit_handles, but no
	_gpgrt_spawn_actions_set_atfork.

2024-05-28  NIIBE Yutaka  <gniibe@fsij.org>

	Import spawn functions from GnuPG master.
	+ commit 8dc6e3281e17c5d2885dc71634ab1068b88fc738
	* src/gpg-error.h.in (@define:gpgrt_process_t@): Remove.
	(@define:struct_spawn_cb_arg@): New.
	(enum gpgrt_process_requests): New.
	(GPGRT_PROCESS_DETACHED, GPGRT_PROCESS_STDIN_PIPE)
	(GPGRT_PROCESS_STDOUT_PIPE, GPGRT_PROCESS_STDERR_PIPE)
	(GPGRT_PROCESS_STDINOUT_SOCKETPAIR, GPGRT_PROCESS_STDIN_KEEP)
	(GPGRT_PROCESS_STDOUT_KEEP, GPGRT_PROCESS_STDERR_KEEP)
	(GPGRT_PROCESS_STDFDS_SETTING, GPGRT_PROCESS_STREAM_NONBLOCK):
	New.
	* src/gpgrt-int.h (_gpgrt_process_spawn, _gpgrt_process_terminate)
	(_gpgrt_process_get_fds, _gpgrt_process_get_streams)
	(_gpgrt_process_ctl, _gpgrt_process_wait, _gpgrt_process_release)
	(_gpgrt_process_wait_list, _gpgrt_spawn_helper): New.
	* src/mkheader.c: Emit definition of struct_spawn_cb_arg.
	* src/spawn-posix.c (_gpgrt_process_spawn, _gpgrt_process_terminate)
	(_gpgrt_process_get_fds, _gpgrt_process_get_streams)
	(_gpgrt_process_ctl, _gpgrt_process_wait, _gpgrt_process_release)
	(_gpgrt_process_wait_list, _gpgrt_spawn_helper): New.
	* src/spawn-w32.c: Ditto.

2024-04-26  Werner Koch  <wk@gnupg.org>

	argparse: Fix a theoretical memory leak.
	+ commit a5f0e0b2f7897fc6ef1ab847146e16ef64d1d4a7
	* src/argparse.c (store_alias): Free NAME because it has ownerhip
	here.  Take care P is actually a pointer into NAME.

2024-04-25  Werner Koch  <wk@gnupg.org>

	Release 1.49.
	+ commit faed9c271ad22bbd2ed265d8e11badb53b7a2f32


	logging: New function gpgrt_logv_domain.
	+ commit 2f9a0895a103f0baf1c2ea38662112c1359bdb90
	* src/gpg-error.h.in (gpgrt_logv_domain): New.  Also add printf
	attributes to the other logv functions.
	* src/visibility.c (gpgrt_logv_domain): New.

2024-04-22  Werner Koch  <wk@gnupg.org>

	core: New function gpgrt_add_post_log_func.
	+ commit 319a505623c197d06ca3e76f30691fe65a982d6f
	* src/gpg-error.h.in (gpgrt_add_post_log_func): New.
	* src/gpg-error.vers: Add new function
	* src/gpg-error.def.in: Ditto.
	* src/visibility.c (gpgrt_add_post_log_func): New.
	* src/logging.c (struct post_log_func_item_s): New.
	(post_log_func_list): New.
	(_gpgrt_add_post_log_func): new.
	(run_post_log_funcs): New.
	(_gpgrt_logv_internal): Call for fatal and bug log levels.

2024-04-19  Werner Koch  <wk@gnupg.org>

	logging: Indent continuation lines of log_printhex.
	+ commit 6ab3e9ac43ba104f557d538db100953ae6245076
	* src/logging.c (_gpgrt_logv_internal): Change to return the length
	w/o prefix.
	(_gpgrt_logv_printhex): Indent wrapped lines properly.

2024-04-12  Werner Koch  <wk@gnupg.org>

	logging: Add a truncate keyword to log_printhex.
	+ commit 0a39fbefcb55379de1cdf1049de303c5ca0691b3
	* src/logging.c (_gpgrt_logv_printhex): Add keyword support.

2024-04-08  Werner Koch  <wk@gnupg.org>

	argparser: avoid endless loop due to a conf file read error.
	+ commit 2dc93cfecc7a7b22fd08365a789b8c6c4b8cc36c
	* src/argparse.c (struct _gpgrt_argparse_internal_s): Add forceeof
	flag.
	(initialize): Clear.
	(_gpgrt_argparse): Clear.
	(_gpgrt_argparse): Act upon.

2024-02-23  Werner Koch  <wk@gnupg.org>

	Release 1.48.
	+ commit 77b7c5ff6b756870811acaff53df0ebf1e5c2368


2024-02-21  Werner Koch  <wk@gnupg.org>

	argparse: Adjust help output for command mode.
	+ commit c3b6eaedd8707bca9892a0e188bf04532ca70818
	* src/argparse.c (show_help): Adjust for command style options.

2024-02-06  Werner Koch  <wk@gnupg.org>

	core: Add "wipe" mode flag.
	+ commit 49507cf6977f6c9fce1b651ae808e37b63fc3e4e
	* src/gpgrt-int.h (struct _gpgrt_stream_internal): Add field "wipe".
	* src/estream.c (mem_free2): New.
	(struct estream_cookie_mem): Add flag "wipe".
	(func_mem_create): Add arg wipe.
	(func_mem_destroy): Wipe.
	(X_WIPE): New.
	(parse_mode): Parse "wipe" mode flag.
	(init_stream_obj): Set it.
	(do_close): Wipe internal struct with its static buffers.
	(doreadline): Pass wipe mode along to help buffer.
	(_gpgrt_mopen): Pass wipe mode.
	(_gpgrt_fopenmem): Ditto.

	core: New function gpgrt_wipememory.
	+ commit 1fdd8749014cf390d6ea9dd4350146473362044e
	* src/init.c (_gpgrt_wipememory): New.
	* src/visibility.c (gpgrt_wipememory): New.
	* src/visibility.h: Add it.
	* src/gpg-error.def.in: Ditto.
	* src/gpg-error.vers: Ditto.

	argparser: Implement a command mode.
	+ commit b113114c7498fc6c48065a8c4816c610c6f08198
	* src/gpg-error.h.in (ARGPARSE_FLAG_COMMAND): New.
	* src/argparse.c (struct _gpgrt_argparse_internal_s): Add flags
	explicit_cmd_mode, cmd_mode, and command_seen.
	(initialize): Init them.  Mark default commands as commands.
	(handle_meta_command): New.
	(handle_metacmd): Add "command-mode" and "-command-mode".
	(find_long_option): Add arg only_commands.
	(arg_parse): Factor some code out to ...
	(handle_special_commands): new.
	(arg_parse): Implement the command-mode.

	* tests/t-argparse.c (main): Add some testing code.

2024-02-01  Jakub Jelen  <jjelen@redhat.com>

	gpgrt-config: Avoid warning about literals for curly braces.
	+ commit ae6fec7399d77e4e3a63287d94b1366ad121b505
	* src/gpgrt-config.in: Fix the pattern match for an expression with
	variable in the ".pc" config file.

2024-01-16  NIIBE Yutaka  <gniibe@fsij.org>

	estream: Fix call to string filter for estream-printf.
	+ commit 4a9def77488f2631f71737357d9e9dd874c9b302
	* src/estream-printf.c (pr_string): Make sure to prepare
	NUL-terminated string to call the string filter.

2024-01-15  Ineiev  <ineiev@gnu.org>

	po: Update Russian translation.
	+ commit 521e8d4db70c5cf4d4977d93f9ff7adce5de023f


2024-01-15  Jakub Bogusz  <qboosh@pld-linux.org>

	po: update Polish translation.
	+ commit 5142d0d7a2a3b52456010d47bac44322009bb31a


2023-11-16  NIIBE Yutaka  <gniibe@fsij.org>

	yat2m: Fix HTML output for backslash.
	+ commit f83eac17363a8c76c10b06712ba3dd39146f36b4
	* doc/yat2m.c (proc_texi_buffer): Use &bsol.

2023-11-15  NIIBE Yutaka  <gniibe@fsij.org>

	yat2m: Implement @item handling with @table item specification.
	+ commit e31d65345bcb420a2e0ee609d91322abfde4aa44
	* doc/yat2m.c (MAX_TABLE_NESTING): New.
	(table_item_stack): New.
	(proc_texi_cmd): Add @gcctabopt and @gnupgtabopt.
	Add handling of @item argument with proc_texi_buffer.
	Add handling of @table argument, push to table_item_stack.

	yat2m: Also handle @file treating '-' as minus.
	+ commit cfb1871240c4d12c2d2b7c92e2ef7afb30692f88
	* doc/yat2m.c (proc_texi_cmd): It's minus for @file.

2023-11-14  NIIBE Yutaka  <gniibe@fsij.org>

	yat2m: Output \- for @samp, @kbd, and @env, too.
	+ commit 7375b4c0acedc6333c9074db14a15fc2949f7752
	* doc/yat2m.c (proc_texi_cmd): Support more commands.

2023-11-09  NIIBE Yutaka  <gniibe@fsij.org>

	yat2m: Generate \- for roff for some commands.
	+ commit 3534e2cc73f9339acc8d154e9551339e544507c6
	* doc/yat2m.c (proc_texi_cmd): New flag to enable generating \- for
	roff for @command, @code, @url and @option for their argument, and
	@example and @smallexample until their @end.
	(proc_texi_buffer): Emit \- when enabled.

2023-11-07  NIIBE Yutaka  <gniibe@fsij.org>

	yat2m: Add support of @minus{} command.
	+ commit 8275d716bae68124c4c6bebde5305aed1dad5cd4
	* doc/yat2m.c (proc_texi_cmd): Support @minus.

	yat2m: Use \fP to return previous font.
	+ commit ab6324e5787a00d2f42638277542bc96b91de52e
	* doc/yat2m.c (proc_texi_cmd): Use \fP instead of \fR.

	yat2m: Fix backslash output in man.
	+ commit 6fe51354634361970761095f71e278b90b0dd4e7
	* doc/yat2m.c (proc_texi_buffer): Use \[rs] for backslash.

2023-11-07  Ben Kibbey  <bjk@luxsci.net>

	yat2m: Parse @dots{} to show ellipsis in HTML mode.
	+ commit db81ea1219e2baad0fadbc665465d3d03cbb4de2
	* doc/yat2m.c (proc_texi_cmd): Add "dots" to comamnd table and output
	  "..." in manpages and ellipsis in HTML mode.

2023-11-06  NIIBE Yutaka  <gniibe@fsij.org>

	yat2m: No en-dash and em-dash for @item line.
	+ commit 260f709413d8df6d0f2e65fb21685f8ce3038f5f
	* doc/yat2m.c (proc_texi_cmd): Disable parsing for dashes
	for @item.

2023-11-02  NIIBE Yutaka  <gniibe@fsij.org>

	yat2m: Interpret -- and --- verbatimly in @example.
	+ commit c57e1b1435e6a09e547b18df6c458f9f32a1a513
	* doc/yat2m.c (example_cmd_active): New.
	(proc_texi_cmd): Don't apply the processing for en-dash
	and em-dash when it's in @example/@smallexample.

	yat2m: Support Texinfo input -- and ---.
	+ commit 82a8e2cece08fa0ca6aff9bdf62414731d384083
	* doc/yat2m.c (proc_texi_buffer): Handle en-dash and em-dash.

2023-10-05  NIIBE Yutaka  <gniibe@fsij.org>

	doc: Minor style fix.
	+ commit 53d9d77a496f5b6bc6616a95abfc053f396c1a12


2023-09-27  NIIBE Yutaka  <gniibe@fsij.org>

	estream: String filter should NOT be called with non-nul string.
	+ commit 0fc740ffca848d17b8c71d1682de1e29b24db3cb
	* src/estream-printf.c (pr_string): Call the string filter function SF
	conditionally to avoid possible SEGV.

2023-09-01  NIIBE Yutaka  <gniibe@fsij.org>

	Fix the previous commit.
	+ commit 19d7ec4bfeda6222b11ac92cd4509850322727fc


	build: Change the default for --with-libtool-modification.
	+ commit 071effebcf7db745f5d3bc2b8bb43ffaac54366e
	* configure.ac (--with-libtool-modification): default=never.

2023-08-09  NIIBE Yutaka  <gniibe@fsij.org>

	build: Update libtool-patch.sed.
	+ commit b369ef64e05a2336eb98a28a55dd02193aefaefa
	* build-aux/libtool-patch.sed: Fail with exit code 1,
	when it doesn't go well.
