#define _bt_printf_perror(fp, fmt, args...) \
({ \
- char buf[PERROR_BUFLEN] = "Error in strerror_r()"; \
- bt_strerror_r(errno, buf, sizeof(buf)); \
- _bt_printfe(fp, "error", buf, fmt, ## args); \
+ const char *errstr; \
+ errstr = g_strerror(errno); \
+ _bt_printfe(fp, "error", errstr, fmt, ## args); \
})
#define _bt_printfl_perror(fp, lineno, fmt, args...) \
({ \
- char buf[PERROR_BUFLEN] = "Error in strerror_r()"; \
- bt_strerror_r(errno, buf, sizeof(buf)); \
- _bt_printfle(fp, "error", lineno, buf, fmt, ## args); \
+ const char *errstr; \
+ errstr = g_strerror(errno); \
+ _bt_printfle(fp, "error", lineno, errstr, fmt, ## args);\
})
/* printf without lineno information */
#include <string.h>
#include <stdlib.h>
-#if !defined(__GLIBC__) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !defined(_GNU_SOURCE))
-
-/* XSI-compliant strerror_r */
-static inline
-int bt_strerror_r(int errnum, char *buf, size_t buflen)
-{
- return strerror_r(errnum, buf, buflen);
-}
-
-#else
-
-/* GNU-compliant strerror_r */
-static inline
-int bt_strerror_r(int errnum, char *buf, size_t buflen)
-{
- char *retbuf;
-
- retbuf = strerror_r(errnum, buf, buflen);
- if (retbuf != buf)
- strncpy(buf, retbuf, buflen);
- buf[buflen - 1] = '\0';
- return 0;
-}
-
-#endif
-
#ifdef HAVE_STRNLEN
static inline
size_t bt_strnlen(const char *str, size_t max)
#include <babeltrace/values.h>
#include <inttypes.h>
#include <assert.h>
+#include <babeltrace/compat/string-internal.h>
#define BT_CTF_ATTR_NAME_INDEX 0
#define BT_CTF_ATTR_VALUE_INDEX 1
#include <babeltrace/ref.h>
#include <babeltrace/compiler-internal.h>
#include <babeltrace/types.h>
+#include <babeltrace/compat/string-internal.h>
#include <inttypes.h>
#include <babeltrace/object-internal.h>