aboutsummaryrefslogtreecommitdiffstats
path: root/src/gpg-error.h.in (follow)
Commit message (Collapse)AuthorAgeFilesLines
* secmem: Exposed function should have consistent name.gniibe/secmemNIIBE Yutaka2018-09-071-1/+1
| | | | | | | * src/gpg-error.def.in, src/gpg-error.h.in, src/gpg-error.vers: Rename to gpgrt_secmem_is_secure (was: gpgrt_private_is_secure). * src/gpgrt-int.h, src/secmem.c: Reneme for _gpgrt_private_is_secure. * src/visibility.c, src/visibility.h: Follow the rename.
* secmem: Export symbols and the interface.NIIBE Yutaka2018-09-061-0/+21
| | | | | | | | | | | * src/Makefile.am (libgpg_error_la_SOURCES): Add secmem.c and secmem.h. * src/gpg-error.def.in: Add secmem symbols. * src/gpg-error.vers: Likewise. * src/gpg-error.h.in: Add secmem functions and macros. * src/secmem.h: Move internal prototypes to ... * src/gpgrt-int.h: ... here. * src/visibility.c: Add external functions. * src/visibility.h: Declare secmem functions.
* Remove leftover debug output from gpg-error.Werner Koch2018-07-051-2/+2
| | | | | | | | | * src/gpg-error.c (main): Remove a log_debug. -- Also a few typo fixes. Signed-off-by: Werner Koch <[email protected]>
* core: Fix problem with C11 and stdnoreturn.h.Werner Koch2018-05-301-3/+3
| | | | | | | | | * src/gpg-error.h.in (GPGRT_ATTR_NORETURN): Use gcc specific symbol name __noreturn__. -- GnuPG-bug-id: 4002 Signed-off-by: Werner Koch <[email protected]>
* doc: Beautify comments in gpg-error.h.Werner Koch2018-04-111-74/+84
| | | | | | -- Signed-off-by: Werner Koch <[email protected]>
* core: Finalize the API for argparse.Werner Koch2018-04-111-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | * src/gpg-error.h.in (ARGPARSE_end): Simplify. * src/argparse.c (_gpgrt_argparse_internal_s): Add field opts. (deinitialize): Release new field. (initialize): Add arg opts and create a copy of the option list. Add the internal options. (_gpgrt_argparse): Rename arg opts to opts_orig and set new local var opts. Adjust all references to opts. (find_long_option): Adjust for chnaged type of OPTS. Re-indent. (arg_parse): Remove internal option assignment. Rename arg opts to opts_orig and set new local var opts. Adjust all references to opts. (show_help): Adjust all references to opts. -- The old ARGPARSE_end maro was a bit cumbersome and does not allow to chnage the number of internal options. Thus this somewhat larger chnage to keep the internal options out of the API. Note that with this change the internal options now also work in a option file and not just on the command line; that does not make much sense but is probably less surprising. Signed-off-by: Werner Koch <[email protected]>
* core: Add Base-64 encoder.Werner Koch2018-03-221-4/+10
| | | | | | | | | | | | | | | | | | | | | | | * src/b64enc.c: Change to fit into libgpg-error. * src/Makefile.am: Add b64enc.c * src/b64dec.c: Use xtrymalloc etc. Always use gpg_err_code_t. (_gpgrt_b64dec_start): Set decoder flag (_gpgrt_b64dec_finish): Check for conflict. (_gpgrt_b64state): Move to ... * src/gpgrt-int.h: here. Add new fields. * src/visibility.c (gpgrt_b64enc_start): New. (gpgrt_b64enc_write): New. (gpgrt_b64enc_finish): New. * src/gpg-error.vers, src/gpg-error.def.in: Add new functions. * src/gpg-error.h.in: Ditto. * src/visibility.h: Ditto. * tests/t-b64dec.c: Remove. * tests/t-b64.c: New. * tests/Makefile.am (TESTS): Replace t-b64dec by t-b64. -- Signed-off-by: Werner Koch <[email protected]>
* core: Add public function gpgrt_usage.Werner Koch2018-03-211-0/+1
| | | | | | * src/visibility.c (gpgrt_usage): New. Signed-off-by: Werner Koch <[email protected]>
* core: Add the group of argparse functions.Werner Koch2018-03-211-0/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/visibility.c (gpgrt_argparse): New. (gpgrt_strusage): New. (gpgrt_set_strusage): New. (gpgrt_set_usage_outfnc): New. (gpgrt_set_fixed_string_mapper): New. * src/gpg-error.def.in, src/gpg-error.vers: Add new functions. * src/gpg-error.h.in: Add ARGPARSE macros from the former argparse.h. (gpgrt_argparse_t): New. (gpgrt_opt_t): New. * configure.ac (AH_BOTTOM): Request argparse macros. * src/Makefile.am (libgpg_error_la_SOURCES): Add argparse.c. * src/argparse.h: Remove. * src/argparse.c: Revamp to fit into libgpg-error. (_gpgrt_argparse): New. (_gpgrt_usage): Rename from usage. (_gpgrt_strusage): Rename from strusage. Define two new levels and templates for three common licenses. (_gpgrt_set_strusage): Rename from set_strusage. (_gpgrt_set_usage_outfnc): New. (_gpgrt_set_fixed_string_mapper): New. * tests/t-argparse.c: New. -- These functions are in use by GnuPG and other software for 20 years and it makes sense to have them always available instead of copying and maintaing the source in several projects. Note that there are minor changes in the API compared to GnuPG. Signed-off-by: Werner Koch <[email protected]>
* core: Fix building on W64Werner Koch2018-03-141-0/+1
| | | | | | | | | | | | | * src/w32-add.h: Remove hack to define pid_t. * src/gpg-error.h.in: Eval macro to define pid_t. * src/mkheader.c (have_sys_types_h, sys_types_h_included): New. (parse_config_h): Test for sys/types.h. (write_special): Protect inclusion of sys/types.h. Define new macro 'define:pid_t'. -- Regression-due-to: 1865c0ba1769b407a3c504f1ab0a4278704a9fc1 Signed-off-by: Werner Koch <[email protected]>
* build: Update copyright notices and remove gpgscm from the release.Werner Koch2018-03-131-1/+1
| | | | | | -- Signed-off-by: Werner Koch <[email protected]>
* core: Fix regression due to not exporting the process API.Werner Koch2018-03-131-2/+2
| | | | | | | -- Fixes-commit: 0e503cae75cb1a6aa257228a65941b7630ff35d6 Signed-off-by: Werner Koch <[email protected]>
* core: Remove accidently committed time function API.Werner Koch2018-03-121-31/+0
| | | | | | -- Fixes-commit: f9a33a7f7e44a644ff4e31f7e9f1c2c1ec1f8eee
* core: Do not export the process APIWerner Koch2018-03-121-1/+4
| | | | | | | | | -- We may need to change the API and thus we better wait before publishing this new interface. Signed-off-by: Werner Koch <[email protected]>
* core: Avoid using estream_t in the public API.Werner Koch2017-12-111-4/+33
| | | | | | | | | | * src/gpg-error.h.in: Always use gpgrt_stream-t. -- estream_t can only be used if GPGRT_ENABLE_ES_MACROS is defined. Fixes-commit: 1865c0ba1769b407a3c504f1ab0a4278704a9fc1 Signed-off-by: Werner Koch <[email protected]>
* core: Rename the gpgrt_log_levels enum values.Werner Koch2017-12-081-9/+9
| | | | | | | | | | | * src/gpg-error.h.in (gprt_log_levels): Rename to GPGRT_LOGLVL. -- Explicitly naming them and not distinguishing them from the other log constants is a Good Thing anyway. It also helps against the symbol name clash with the GPGRT enum values from gnupg's logging module. Signed-off-by: Werner Koch <[email protected]>
* core: Implement the spawn functions.Werner Koch2017-11-291-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpg-error.h.in (GPGRT_SPAWN_NONBLOCK): New const. (GPGRT_SPAWN_RUN_ASFW): New const. (GPGRT_SPAWN_DETACHED): New const. (gpgrt_make_pipe): New function. (gpgrt_create_pipe): New macro. (gpgrt_create_inbound_pipe): New macro. (gpgrt_create_outbound_pipe): New macro. (gpgrt_spawn_process): New function. (gpgrt_spawn_process_fd): New function. (gpgrt_spawn_process_detached): New function. (gpgrt_wait_process): New function. (gpgrt_wait_processes): New function. (gpgrt_kill_process): New function. (gpgrt_release_process): New function. * src/gpg-error.def.in, src/gpg-error.vers: Add new functions. * src/visibility.c, src/visibility.h: Add wrappers for new functions. * src/spawn-posix.c: Rework to better fit the use in gpgrt. Rename all public function with a _gpgrt prefix. * src/spawn-w32.c: Ditto. * src/gpgrt-int.h: Likewise. * src/Makefile.am (arch_sources): Add spawn-posix.c and spawn-w32.c. * src/w32-add.h: Add pid_t typedef as a temporary hack. * configure.ac: Check for signal.h and getrlimit. (AC_FUNC_FORK): New. -- This does build but porting the tests and further changes are required. Don't assume that the API for the new fucntions is stable. Signed-off-by: Werner Koch <[email protected]>
* core: Change new functions to return gpg_err_code_t.Werner Koch2017-11-281-3/+4
| | | | | | | | | | | | | | | | * src/gpg-error.h.in (gpgrt_sentenv, gpgrt_mkdir, gpgrt_chdir): Change return type to gpg_err_code_t. * src/sysutils.c (_gpgrt_setenv): Implement that. (_gpgrt_mkdir): Ditto. (_gpgrt_chdir): Ditto. * gpgscm/ffi.c (do_setenv, do_mkdir): Adjust for this change. -- The functions are already a bit different and thus it is useful to let them return a gpg-error style error code and don't let the user implement that for each call. Signed-off-by: Werner Koch <[email protected]>
* core: New API functions gpgrt_mkdir, gpgrt_chdir, gpgrt_getcwd.Werner Koch2017-11-281-0/+9
| | | | | | | | | | | | | | | | | | | | | | * src/gpg-error.h.in (gpgrt_mkdir, gpgrt_chdir, gpgrt_getcwd): New. * src/visibility.c, src/visibility.h: Add wrappers. * src/gpg-error.vers, src/gpg-error.def.in: Add them. * src/sysutils.c (modestr_to_mode): New. (_gpgrt_mkdir, _gpgrt_chdir, _gpgrt_getcwd): New. * m4/gnupg-misc.m4: New. * m4/Makefile.am (EXTRA_DIST): Add new M4 file. * configure.ac: Call new GNUPG_FUNC_MKDIR_TAKES_ONE_ARG. (AC_CHECK_FUNCS): Add stat. -- The code has been taken from GnuPG. _gpgrt_mkdir was originally written by me as gnupg_mkdir and here relicensed to LGPLv2.1+. _gpgrt_getcwd was originally written by in 2007 and also here relicensed to LGPLv2.1. The new M4 macro was also written by me for use in in GnuPG; it has been taken from GnUPG's acinclude.m4, moved to its own file here, and relicensed to FSFULLR. Signed-off-by: Werner Koch <[email protected]>
* core: New API functions gpgrt_getenv and gpgrt_setenv.Werner Koch2017-11-281-0/+13
| | | | | | | | | | | | | | | | | | | * src/gpg-error.h.in (gpgrt_getenv, gpgrt_setenv): New. (gpgrt_unsetenv): New macro. * src/gpg-error.vers, src/gpg-error.def.in: Add them. * src/visibility.c (gpgrt_getenv, gpgrt_setenv): New. * src/visibility.h: Add them. * src/sysutils.c: Include string.h and on Windows windows.h. (_gpgrt_getenv): New. (_gpgrt_setenv): New. -- These functions are wrappers to cope with Windows problems. The code is similar to what we have in GnuPG but not identical. Requires better testing. Signed-off-by: Werner Koch <[email protected]>
* core: Add new macro log_assert to the API.Werner Koch2017-11-271-2/+13
| | | | | | * src/gpg-error.h.in (log_assert): New macro. Signed-off-by: Werner Koch <[email protected]>
* core: Do not use the estream_t alias in gpg-error.h.Werner Koch2017-11-221-2/+2
| | | | | | | | | * src/gpg-error.h.in: Use gpgrt_stream_t in prototypes. -- estream_t is not necessary enabled so to keep the namespace clean. Signed-off-by: Werner Koch <[email protected]>
* core: New API functions gpgrt_strdup and gpgrt_strconcat.Werner Koch2017-11-171-0/+2
| | | | | | | | | | | | | | | * src/visibility.c (gpgrt_strdup): New API fucntion. (gpgrt_strconcat): New API fucntion. * src/visibility.h: Add corresponding macros. * src/gpg-error.def.in: Add them. * src/gpg-error.vers: Add them. * src/gpgrt-int.h (DIM): New macro. * src/init.c (_gpgrt_strdup): New. (_gpgrt_strconcat_core): New. (_gpgrt_strconcat): New. -- Signed-off-by: Werner Koch <[email protected]>
* core: New API functions gpgrt_malloc, gpgrt_calloc, and gpgrt_realloc.Werner Koch2017-11-171-1/+11
| | | | | | | | | | | | | * src/visibility.c (gpgrt_realloc): New API function. (gpgrt_malloc): New API function. (gpgrt_calloc): New API function. * src/visibility.h: Add corresponding macros. * src/gpg-error.def.in: Add them. * src/gpg-error.vers: Add them. * src/init.c (_gpgrt_calloc): New. * src/gpg-error.h.in: Add prototypes. Signed-off-by: Werner Koch <[email protected]>
* core: Add logging API.Werner Koch2017-11-171-4/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/visibility.c (gpgrt_get_errorcount): New API. (gpgrt_inc_errorcount): New API. (gpgrt_log_set_sink): New API. (gpgrt_log_set_socket_dir_cb): New API. (gpgrt_log_set_pid_suffix_cb): New API. (gpgrt_log_set_prefix): New API. (gpgrt_log_get_prefix): New API. (gpgrt_log_test_fd): New API. (gpgrt_log_get_fd): New API. (gpgrt_log_get_stream): New API. (gpgrt_log): New API. (gpgrt_logv): New API. (gpgrt_logv_prefix): New API. (gpgrt_log_string): New API. (gpgrt_log_info): New API. (gpgrt_log_error): New API. (gpgrt_log_fatal): New API. (gpgrt_log_bug): New API. (gpgrt_log_debug): New API. (gpgrt_log_debug_string): New API. (gpgrt_log_printf): New API. (gpgrt_log_flush): New API. (gpgrt_log_printhex): New API. (gpgrt_log_clock): New API. (_gpgrt_log_assert): New function for the ABI. * src/visibility.h: Add corresponding macros. * src/gpg-error.def.in: Add new functions. * src/gpg-error.vers: Add new functions. * src/gpg-error.h.in (GPGRT_LOG_WITH_PREFIX): New constant. (GPGRT_LOG_WITH_TIME): New constant. (GPGRT_LOG_WITH_PID): New constant. (GPGRT_LOG_RUN_DETACHED): New constant. (GPGRT_LOG_NO_REGISTRY): New constant. (GPGRT_LOG_BEGIN): New enum value. (GPGRT_LOG_CONT): New enum value. (GPGRT_LOG_INFO): New enum value. (GPGRT_LOG_WARN): New enum value. (GPGRT_LOG_ERROR): New enum value. (GPGRT_LOG_FATAL): New enum value. (GPGRT_LOG_BUG): New enum value. (GPGRT_LOG_DEBUG): New enum value. (log_get_errorcount, log_inc_errorcount, log_set_file, log_set_fd) (log_set_stream, log_set_socket_dir_cb, log_set_pid_suffix_cb) (log_set_prefix, log_get_prefix, log_test_fd, log_get_fd) (log_get_stream, log_log, log_logv, log_logv_prefix, log_string) (log_bug, log_fatal, log_error, log_info, log_debug, log_debug_string) (log_printf, log_printhex, log_clock) (log_flush) [GPGRT_ENABLE_LOG_MACROS]: New wrapper macros. (gpgrt_assert): New macro. * src/gpgrt-int.h: Add prototypes for logging.c. (gpgrt_assert): Redefine for internal use. * src/logging.h: Remove. * src/logging.c: Include gpgrt-int.h instead of the stuff from GnuPG. Use _gpgrt malloc funcsions and the internal versions of the estream functions. Rename all public fucntions with a _gpgrt_ prefix. (print_prefix): Return the printed length. (_gpgrt_logv_internal): Ditto. (_gpgrt_log_printhex): Change order of args and turn into a printf like function. (_gpgrt_logv_printhex): New. Take the core of the former log_printhex. (_gpgrt_log_clock): Turn into a printf like functions. (_gpgrt_logv_clock): New. Take the core of the former log_clock. -- This logging API is a slightly modified version of what we are using in GnuPG. Signed-off-by: Werner Koch <[email protected]>
* Release 1.27libgpg-error-1.27Werner Koch2017-02-281-1/+1
| | | | | | | | | | * configure.ac: Bump LT version to C22/A22/R0. -- Note that C21/A21/R0 was used in 1.26 but later lost in the repo due to a merge. Signed-off-by: Werner Koch <[email protected]>
* New public header gpgrt.h as alias for gpg-error.hWerner Koch2017-02-281-1/+4
| | | | | | | | | | * src/gpg-error.h.in (GPGRT_H): New double include protection. * src/Makefile.am (nodist_include_HEADERS): Add gpgrt.h. (BUILT_SOURCES): Ditto. (CLEANFILES): Ditto. (gpgrt.h): New rule. Signed-off-by: Werner Koch <[email protected]>
* Add Base64 decoder.NIIBE Yutaka2017-02-011-0/+10
| | | | | | | | | | | | | | | | * NEWS: Add interface changes. * src/Makefile.am (libgpg_error_la_SOURCES): Add b64dec.c. * src/b64dec.c: New. Taken from gpgme. Prefix function names with _gpgrt_. Change API a bit, not exposing the structure. * src/gpg-error.def.in: Export Base64 functions. * src/gpg-error.vers: Likewise. * src/visibility.c, src/visibility.h: Likewise. * src/gpg-error.h.in: Add Base64 struct and functions. * src/gpgrt-int.h: Add Base64 internal functions. * tests/Makefile.am (TESTS): Add t-b64dec. * tests/t-b64dec.c: New. Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix macro GPGRT_GCC_VERSIONWerner Koch2017-01-031-1/+1
| | | | | | | | * src/gpg-error.h.in (GPGRT_GCC_VERSION): Fix. -- Fixes-commit: 4e790613f66efcfc62d73722d5f1730a37cb8324 Signed-off-by: Werner Koch <[email protected]>
* Fix typo in two new error descriptions.Werner Koch2016-11-141-1/+1
|
* Add new interface gpgrt_get_syscall_clamp.Werner Koch2016-11-121-0/+3
| | | | | | | | | | | | | * src/visibility.c (gpgrt_get_syscall_clamp): New. * src/gpg-error.vers, src/gpg-error.def.in: Add function. * src/gpg-error.h.in: Ditto. * src/estream.c (_gpgrt_get_syscall_clamp): New. -- This function can be used by other libraries to set their own system clamp functions. Signed-off-by: Werner Koch <[email protected]>
* Release 1.22.libgpg-error-1.22Werner Koch2016-04-251-1/+1
| | | | | | * configure.ac: Set LT version to C18/A18/R0. Signed-off-by: Werner Koch <[email protected]>
* Add function gpgrt_annotate_leaked_object.Peter Wu2016-03-241-0/+30
| | | | | | | | | | | | | | | | | | | | | | * src/gpg-error.h.in: add gpgrt_annotate_leaked_object to support marking memory as non-leaked for Clang and GCC. -- This annotation can be used to mark objects as explicitly leaked such that it can be ignored in tools like LeakSanitizer. The GPGRT_HAVE_LEAK_SANITIZER macro is explicitly not undefined to support -fsanitize=leak, a user or configure script could then decide to add this macro when just -fsanitize=leak is given. Signed-off-by: Peter Wu <[email protected]> Additional changes by -wk: - But __GNUC__ guard around the entire GPGRT_HAVE_LEAK_SANITIZER detection. - Add NEWS entry. Signed-off-by: Werner Koch <[email protected]>
* Convert http links to https where possible in the source.Daniel Kahn Gillmor2016-02-081-1/+1
| | | | | | | | | | | | | | | | -- * use https for bug reporting * in comments and docs, use https to refer to: - www.gnu.org - creativecommons.org - translationproject.org - mail.gnome.org - www.perl.org - www.ctan.org - www.cl.cam.ac.uk - www.ntg.nl - cygwin.com - www.ethnologue.com
* Fix typos found by codespell.Justus Winter2015-11-191-2/+2
| | | | | -- Signed-off-by: Justus Winter <[email protected]>
* estream: Add gpgrt_set_nonblock and gpgrt_poll.Werner Koch2015-09-251-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (AC_CHECK_HEADERS): Add sys/select.h and sys/time.h. * src/estream.c: Include both header if available. (COOKIE_IOCTL_NONBLOCK): New. (struct estream_cookie_fd): Add field nonblock. (func_fd_create): Set nonblock from MODEFLAGS. (es_func_fd_ioctl): New. (parse_mode): Add modeflag "nonblock". (es_fill): Map EWOULDBLOCK to EAGAIN. Do not set error indicator for EAGAIN. (es_flush, es_seek, es_write_nbf): Map EWOULDBLOCK to EAGAIN. (do_fdopen): Call COOKIE_IOCTL_NONBLOCK. (_gpgrt_set_nonblock): New. (_gpgrt_get_nonblock): New. (_gpgrt_poll): New. * src/gpg-error.h.in (struct _gpgrt_poll_s): New. (gpgrt_poll_t, es_poll_t): New. (es_set_nonblock, es_get_nonblock, es_poll): New. * src/gpg-error.vers, src/gpg-error.def.in: Add gpgrt_set_nonblock, gpgrt_get_nonblock, and gpgrt_poll. * src/visibility.c (gpgrt_set_nonblock, gpgrt_get_nonblock): New. (gpgrt_poll): New. * tests/t-common.h (DIM): New. * tests/t-poll.c: New. * tests/Makefile.am (TESTS): Add t-poll. (t_poll_LDADD): New. -- The poll interface uses select(2) internally because that is more portable than poll(2). Signed-off-by: Werner Koch <[email protected]>
* Add new version macros.Werner Koch2015-08-261-6/+9
| | | | | | | | | | | | | * src/gpg-error.h.in (GPGRT_VERSION): New. (GPGRT_VERSION_NUMBER): New. (GPG_ERROR_VERSION, GPG_ERROR_VERSION_NUMBER): Move to top of file. -- Eventually we will have a gpgrt.h file instead of gpg-error. To make things easier we already provide suitable named version macros. Miving them to the top makes it easier to find the version. Signed-off-by: Werner Koch <[email protected]>
* Add macro GPGRT_INLINE and avoid -Wundef warningsWerner Koch2015-08-261-27/+28
| | | | | | | | | | | | * src/gpg-error.h.in (GPG_ERR_INLINE): Use #if defined for possible undefined macros to avoid warnign with GCC's -Wundef option. (GPGRT_INLINE): New. -- I still consider using -Wundef for regular building a bad behaviour because undefined macros have a well defined value in a cpp conditional. That warning is useful for debugging build problems but should not be used as standard warning option. Anyway, here is a fix.
* Add new public macros for GCC attributes.Werner Koch2015-07-241-18/+96
| | | | | | | | | | * src/gpg-error.h.in (GPGRT_GCC_VERSION): New. (GPGRT_ATTR_NORETURN, GPGRT_ATTR_PRINTF, GPGRT_ATTR_NR_PRINTF): New. (GPGRT_ATTR_FORMAT_ARG, GPGRT_ATTR_SENTINEL): New. (GPGRT_ATTR_USED, GPGRT_ATTR_UNUSED, GPGRT_ATTR_DEPRECATED): New. (GPGRT_ATTR_PURE, GPGRT_ATTR_MALLOC): New. (GPGRT_HAVE_MACRO_FUNCTION, GPGRT_HAVE_PRAGMA_GCC_PUSH): New. (_GPGRT_GCC_A_PRINTF): Replace GPGRT_ATTR_PRINTF.
* Update copyright notices.Werner Koch2015-01-261-1/+1
| | | | --
* Change gpgrt_pending{,_unlocked} to macros.Werner Koch2014-10-031-4/+13
| | | | | | | | | | | | | | | | | | | | * src/gpg-error.h.in (gpgrt_pending): Change to a macro. (gpgrt_pending_unlocked): Change to a macro. (_gpgrt_pending, _gpgrt_pending_unlocked): New private functions. * src/visibility.c, src/visibility.h: Change accordingly. * src/gpg-error.vers, src/gpg-error.def.in: Ditto. * src/estream.c (_gpgrt_pending_unlocked): Rename to _gpgrt__pending_unlocked. (_gpgrt_pending): Rename to _gpgrt__pending. -- The function are supposed to be used with gprt_getc and thus we need to avoid the function call overhead. We may want to change them to inline functions, though. gpgrt_pending is changed to a macro with the idea that we eventually can export the samestream flags and thus avoid the function call overhead in the samethread case too.
* Add GPG_ERR_BOGUS_STRING and an experimental gpgrt_pending.Werner Koch2014-10-021-0/+4
| | | | | | | | | * src/visibility.c (gpgrt_pending, gpgrt_pending_unlocked): New. * src/estream.c (_gpgrt_pending, _gpgrt_pending_unlocked): New. (check_pending): new. (check_pending_fbf, check_pending_nbf): New. (es_func_mem_read, es_func_fd_read, es_func_w32_read) (es_func_fp_read, es_fill): Take care of the special 0 value for SIZE.
* Fix problems with ssize_t and off_t.Werner Koch2014-09-111-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (AC_SYS_LARGEFILE): New. (AC_CHECK_HEADERS): Check for stdint.h. (AC_CHECK_SIZEOF): Add for int, long and long long. (REPLACEMENT_FOR_OFF_T): New ac_define. * src/mkheader.c (have_stdint_h, have_w32_system, have_w64_system) (replacement_for_off_type, stdint_h_included): New. (xfree, xstrdup): New. (parse_config_h): New. (write_special): Support "define:gpgrt_off_t", "define:gpgrt_ssize_t", "api_ssize_t" tags. (main): Add config.h arg. Call parse_config_h. Fix substitute code. * src/Makefile.am (gpg-error.h): Pass config.h to mkheader. * src/gpg-error.h.in: Include definitions for gpgrt_ssize_t and gpgrt_off_t. Let mkheader insert ssize_t keywords. Chnage all off_t to gpgrt_off_t. * src/estream.c: Change all off_t to gpgrt_off_t. Chnage all ssize_t to gpgrt_ssize_t. * src/visibility.c (gpgrt_fseeko): Use gpgrt_off_t. (gpgrt_ftello): Ditto. (gpgrt_getline): Use gpgrt_ssize_t. (gpgrt_read_line): Ditto.
* Add gpgrt_set_alloc_func.Werner Koch2014-08-261-3/+7
| | | | | | | | | | | | | * src/visibility.c (gpgrt_set_alloc_func): New. * configure.ac (_ESTREAM_PRINTF_REALLOC): Define. (_ESTREAM_PRINTF_EXTRA_INCLUDE): Define. * src/estream.c (mem_alloc, mem_realloc, mem_free): Simplify. (_gpgrt_free): Remove. * src/init.c (custom_realloc): New var. (_gpgrt_set_alloc_func): New. (_gpgrt_realloc, _gpgrt_malloc, _gpgrt_free): New. * src/visibility.h (gpg_err_deinit): Mark as visible.
* Export missing init functions.Werner Koch2014-08-261-2/+6
| | | | | | | | | | | | | | | | | * src/gpg-error.h.in (gpgrt_init): New macro. (gpgrt_check_version): New prototype. * src/init.c (_gpg_err_init): Rename from gpg_err_init. (_gpg_err_deinit): Rename from gpg_err_deinit. * src/visibility.c (gpg_err_init): New. (gpg_err_deinit): New. (gpgrt_check_version): New. * src/gpg-error.vers (gpg_err_init, gpg_err_deinit): Add missing symbols. (gpgrt_check_version): New. * src/gpg-error.def.in (gpg_err_init, gpg_err_deinit): Add missing symbols. (gpgrt_check_version): New. * src/gpg-error.c (main): Use gpgrt_init macro.
* Include required headers into gpg-error.h.Werner Koch2014-08-261-0/+1
| | | | * src/gpg-error.h.in: Include stdarg.h.
* Replace locking code in estream functions.Werner Koch2014-08-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | * src/posix-lock.c: Add weak program for pthread_mutex_trylock. (_gpgrt_lock_trylock): New. * src/w32-lock.c (_gpgrt_lock_init): Add missing return statement. (_gpgrt_lock_trylock): New. * src/visibility.c (gpgrt_set_syscall_clamp): New. (gpgrt_lock_trylock): New. (gpgrt_vsnprintf): Fix symbol name. * src/init.c (DllMain): Mark unused arg. * src/estream.c: Replace npth mutexes by our own locks. Replace yeild macro by _gpgrt_yield. (pre_syscall_func, post_syscall_func): New. (do_deinit): Clear both new vars. (es_func_fd_read, es_func_fd_write): Call pre and post syscall functions instead of the former SYSCALL macros. (es_func_w32_read, es_func_w32_write): Ditto. (es_func_fd_seek, es_func_w32_seek, es_func_fp_read) (es_func_fp_write, es_func_fp_seek, es_func_fp_destroy): Bracket syscalls with the pre- and post-syscall fucntions. (do_npth_read, do_npth_write): Remove. (_gpgrt_es_init): Remove call to mutex init. It is now statically initialized. (_gpgrt_set_syscall_clamp): New. (es_create): Destroy stream lock on error. (do_close): Destroy stream lock.
* Add gpgrt_snprintf and gpgrt_vsnprintf.Werner Koch2014-08-251-4/+10
|
* Finish inclusion of estream into the API.Werner Koch2014-08-251-7/+14
|
* First set of changes to include estream into the API.Werner Koch2014-08-251-9/+364
| | | | | | | | | | | * configure.ac (AH_BOTTOM): Define GPGRT_ENABLE_ES_MACROS. * src/gpg-error.h.in: include stdio.h. Include most of the estream functions and rename structures and types. * src/estream.h: Rewrite. Include only gpg-error.h and local prototypes. * src/estream.c: Rename types and macros. * src/estream-printf.c (_gpgrt_estream_snprintf): Prefix public functions with _gpgrt_.