mirror of
https://git.zap.org.au/git/trader.git
synced 2024-11-03 17:27:29 -05:00
Add the error-checking function xwcsdup()
This commit is contained in:
parent
02fd017807
commit
336611559b
4
lib/.gitignore
vendored
4
lib/.gitignore
vendored
@ -109,11 +109,15 @@ vfprintf.c
|
|||||||
vsnprintf.c
|
vsnprintf.c
|
||||||
wchar.in.h
|
wchar.in.h
|
||||||
wcrtomb.c
|
wcrtomb.c
|
||||||
|
wcsdup-impl.h
|
||||||
|
wcsdup.c
|
||||||
wcsrtombs-impl.h
|
wcsrtombs-impl.h
|
||||||
wcsrtombs-state.c
|
wcsrtombs-state.c
|
||||||
wcsrtombs.c
|
wcsrtombs.c
|
||||||
wctype.in.h
|
wctype.in.h
|
||||||
wcwidth.c
|
wcwidth.c
|
||||||
|
wmemcpy-impl.h
|
||||||
|
wmemcpy.c
|
||||||
xsize.h
|
xsize.h
|
||||||
|
|
||||||
alloca.h
|
alloca.h
|
||||||
|
2
m4/.gitignore
vendored
2
m4/.gitignore
vendored
@ -110,8 +110,10 @@ warn-on-use.m4
|
|||||||
wchar_h.m4
|
wchar_h.m4
|
||||||
wchar_t.m4
|
wchar_t.m4
|
||||||
wcrtomb.m4
|
wcrtomb.m4
|
||||||
|
wcsdup.m4
|
||||||
wcsrtombs.m4
|
wcsrtombs.m4
|
||||||
wctype_h.m4
|
wctype_h.m4
|
||||||
wcwidth.m4
|
wcwidth.m4
|
||||||
wint_t.m4
|
wint_t.m4
|
||||||
|
wmemcpy.m4
|
||||||
xsize.m4
|
xsize.m4
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
|
|
||||||
# Specification in the form of a command-line invocation:
|
# Specification in the form of a command-line invocation:
|
||||||
# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl assert btowc config-h ctype fprintf-posix getopt-gnu gettext gettext-h gettimeofday langinfo locale mbrtowc mbsrtowcs printf-posix sigaction signal snprintf-posix stat stdarg stdbool stdio strdup-posix striconv string strncat strstr sys_stat sys_time unistd vfprintf-posix vsnprintf-posix wchar wcrtomb wcsrtombs wctype-h wcwidth
|
# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl assert btowc config-h ctype fprintf-posix getopt-gnu gettext gettext-h gettimeofday langinfo locale mbrtowc mbsrtowcs printf-posix sigaction signal snprintf-posix stat stdarg stdbool stdio strdup-posix striconv string strncat strstr sys_stat sys_time unistd vfprintf-posix vsnprintf-posix wchar wcrtomb wcsdup wcsrtombs wctype-h wcwidth
|
||||||
|
|
||||||
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
||||||
gl_LOCAL_DIR([])
|
gl_LOCAL_DIR([])
|
||||||
@ -53,6 +53,7 @@ gl_MODULES([
|
|||||||
vsnprintf-posix
|
vsnprintf-posix
|
||||||
wchar
|
wchar
|
||||||
wcrtomb
|
wcrtomb
|
||||||
|
wcsdup
|
||||||
wcsrtombs
|
wcsrtombs
|
||||||
wctype-h
|
wctype-h
|
||||||
wcwidth
|
wcwidth
|
||||||
|
@ -44,8 +44,6 @@ typedef struct txwin {
|
|||||||
|
|
||||||
// Declarations for argument processing in mkchstr()
|
// Declarations for argument processing in mkchstr()
|
||||||
|
|
||||||
#define EILSEQ_REPL '?' // Illegal byte sequence replacement character
|
|
||||||
|
|
||||||
#define MAXFMTARGS 8 // Maximum number of positional arguments
|
#define MAXFMTARGS 8 // Maximum number of positional arguments
|
||||||
|
|
||||||
enum argument_type {
|
enum argument_type {
|
||||||
|
20
src/utils.c
20
src/utils.c
@ -487,5 +487,25 @@ char *xstrdup (const char *str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************/
|
||||||
|
// xwcsdup: Duplicate a wide-character string, with checking
|
||||||
|
|
||||||
|
wchar_t *xwcsdup (const wchar_t *str)
|
||||||
|
{
|
||||||
|
wchar_t *s;
|
||||||
|
|
||||||
|
|
||||||
|
if (str == NULL)
|
||||||
|
str = L"";
|
||||||
|
|
||||||
|
s = wcsdup(str);
|
||||||
|
if (s == NULL) {
|
||||||
|
err_exit_nomem();
|
||||||
|
}
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************/
|
/***********************************************************************/
|
||||||
// End of file
|
// End of file
|
||||||
|
15
src/utils.h
15
src/utils.h
@ -42,6 +42,9 @@
|
|||||||
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|
||||||
|
|
||||||
|
|
||||||
|
#define EILSEQ_REPL '?' // Illegal character sequence replacement
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* Global variable declarations *
|
* Global variable declarations *
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
@ -328,4 +331,16 @@ extern void *xmalloc (size_t size);
|
|||||||
extern char *xstrdup (const char *str);
|
extern char *xstrdup (const char *str);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Function: xwcsdup - Duplicate a wide-character string, with checking
|
||||||
|
Parameters: str - String to duplicate
|
||||||
|
Returns: wchar_t * - Pointer to new string, allocated with malloc()
|
||||||
|
|
||||||
|
This wrapper function duplicates a string by calling wcsdup(), then
|
||||||
|
checks if a NULL pointer has been returned. If so, the program
|
||||||
|
terminates with an "Out of memory" error.
|
||||||
|
*/
|
||||||
|
extern wchar_t *xwcsdup (const wchar_t *str);
|
||||||
|
|
||||||
|
|
||||||
#endif /* included_UTILS_H */
|
#endif /* included_UTILS_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user