diff options
-rw-r--r-- | src/gpg-error.def.in | 3 | ||||
-rw-r--r-- | src/gpg-error.h.in | 14 | ||||
-rw-r--r-- | src/gpg-error.vers | 2 | ||||
-rw-r--r-- | src/visibility.c | 20 | ||||
-rw-r--r-- | src/visibility.h | 4 |
5 files changed, 38 insertions, 5 deletions
diff --git a/src/gpg-error.def.in b/src/gpg-error.def.in index e7c8e8c..7ccd05e 100644 --- a/src/gpg-error.def.in +++ b/src/gpg-error.def.in @@ -126,6 +126,7 @@ EXPORTS gpgrt_vasprintf @93 gpgrt_bsprintf @94 gpgrt_vbsprintf @95 - + gpgrt_snprintf @96 + gpgrt_vsnprintf @97 ;; end of file with public symbols for Windows. diff --git a/src/gpg-error.h.in b/src/gpg-error.h.in index 1e10d97..20139ee 100644 --- a/src/gpg-error.h.in +++ b/src/gpg-error.h.in @@ -585,15 +585,21 @@ void *gpgrt_opaque_get (gpgrt_stream_t stream); void gpgrt_fname_set (gpgrt_stream_t stream, const char *fname); const char *gpgrt_fname_get (gpgrt_stream_t stream); -int gpgrt_asprintf (char **r_buf, const char *_GPGRT__RESTRICT format, ...) +int gpgrt_asprintf (char **r_buf, const char * _GPGRT__RESTRICT format, ...) _GPGRT_GCC_A_PRINTF(2,3); -int gpgrt_vasprintf (char **r_buf, const char *_GPGRT__RESTRICT format, +int gpgrt_vasprintf (char **r_buf, const char * _GPGRT__RESTRICT format, va_list ap) _GPGRT_GCC_A_PRINTF(2,0); -char *gpgrt_bsprintf (const char *_GPGRT__RESTRICT format, ...) +char *gpgrt_bsprintf (const char * _GPGRT__RESTRICT format, ...) _GPGRT_GCC_A_PRINTF(1,2); -char *gpgrt_vbsprintf (const char *_GPGRT__RESTRICT format, va_list ap) +char *gpgrt_vbsprintf (const char * _GPGRT__RESTRICT format, va_list ap) _GPGRT_GCC_A_PRINTF(1,0); +int gpgrt_snprintf (char *buf, size_t bufsize, + const char * _GPGRT__RESTRICT format, ...) + _GPGRT_GCC_A_PRINTF(3,4); +int gpgrt_vsnprintf (char *buf,size_t bufsize, + const char * _GPGRT__RESTRICT format, va_list arg_ptr) + _GPGRT_GCC_A_PRINTF(3,0); #ifdef GPGRT_ENABLE_ES_MACROS diff --git a/src/gpg-error.vers b/src/gpg-error.vers index f878b07..a4ff726 100644 --- a/src/gpg-error.vers +++ b/src/gpg-error.vers @@ -109,6 +109,8 @@ GPG_ERROR_1.0 { gpgrt_vasprintf; gpgrt_bsprintf; gpgrt_vbsprintf; + gpgrt_snprintf; + gpgrt_vsnprintf; local: *; diff --git a/src/visibility.c b/src/visibility.c index d53ec26..811a5cf 100644 --- a/src/visibility.c +++ b/src/visibility.c @@ -619,3 +619,23 @@ gpgrt_vbsprintf (const char *_GPGRT__RESTRICT format, va_list ap) return NULL; return buf; } + +int +gpgrt_snprintf (char *buf, size_t bufsize, const char *format, ...) +{ + int rc; + va_list arg_ptr; + + va_start (arg_ptr, format); + rc = _gpgrt_estream_vsnprintf (buf, bufsize, format, arg_ptr); + va_end (arg_ptr); + + return rc; +} + +int +gpgrt_estream_vsnprintf (char *buf, size_t bufsize, + const char *format, va_list arg_ptr) +{ + return _gpgrt_estream_vsnprintf (buf, bufsize, format, arg_ptr); +} diff --git a/src/visibility.h b/src/visibility.h index 6455c1e..873ed5b 100644 --- a/src/visibility.h +++ b/src/visibility.h @@ -130,6 +130,8 @@ MARK_VISIBLE (gpgrt_asprintf) MARK_VISIBLE (gpgrt_vasprintf) MARK_VISIBLE (gpgrt_bsprintf) MARK_VISIBLE (gpgrt_vbsprintf) +MARK_VISIBLE (gpgrt_snprintf) +MARK_VISIBLE (gpgrt_vsnprintf) #undef MARK_VISIBLE @@ -225,6 +227,8 @@ MARK_VISIBLE (gpgrt_vbsprintf) #define gpgrt_vasprintf _gpgrt_USE_UNDERSCORED_FUNCTION #define gpgrt_bsprintf _gpgrt_USE_UNDERSCORED_FUNCTION #define gpgrt_vbsprintf _gpgrt_USE_UNDERSCORED_FUNCTION +#define gpgrt_snprintf _gpgrt_USE_UNDERSCORED_FUNCTION +#define gpgrt_vsnprintf _gpgrt_USE_UNDERSCORED_FUNCTION #endif /*!_GPGRT_INCL_BY_VISIBILITY_C*/ |