diff options
author | axel <axel@liljencrantz.se> | 2006-02-28 23:17:16 +1000 |
---|---|---|
committer | axel <axel@liljencrantz.se> | 2006-02-28 23:17:16 +1000 |
commit | 2401a163fe418310a1ed015b0d4fc8402740ff79 (patch) | |
tree | b30367f4988f169a3426489d9628e3d6873aa92e /wutil.h | |
parent | e8d802c5e184e069e783652fb60c9dec524acc93 (diff) |
Move all fallbacks for standard and not-so-standard unix functions to fallback.c, in order to have a one-stop place to look for such functions
darcs-hash:20060228131716-ac50b-0832193dbcaf7191dcb24456dc40f2e861a1382e.gz
Diffstat (limited to 'wutil.h')
-rw-r--r-- | wutil.h | 178 |
1 files changed, 1 insertions, 177 deletions
@@ -1,8 +1,7 @@ /** \file wutil.h Prototypes for wide character equivalents of various standard unix - functions. Also contains fallback implementations of a large number - of wide character unix functions. + functions. */ #ifndef FISH_WUTIL_H #define FISH_WUTIL_H @@ -100,179 +99,4 @@ wchar_t *wrealpath(const wchar_t *pathname, wchar_t *resolved_path); struct wdirent *wreaddir(DIR *dir ); -/* - Here follows the prototypes for fallback implementations of various - standarcs libc functions relating to wide character support. Some of - these prototypes are always defined, since some libc versions - include the code, but you have to use special magical #defines for - the prototype to appear. -*/ - -#if !HAVE_FWPRINTF - -/** - Print formated string. Some operating systems (Like NetBSD) do not - have wide string formating functions. Therefore we implement our - own. Not at all complete. Supports wide and narrow characters, - strings and decimal numbers, position (%n), field width and - precision. -*/ -int fwprintf( FILE *f, const wchar_t *format, ... ); - - -/** - Print formated string. Some operating systems (Like NetBSD) do not - have wide string formating functions. Therefore we define our - own. Not at all complete. Supports wide and narrow characters, - strings and decimal numbers, position (%n), field width and - precision. -*/ -int swprintf( wchar_t *str, size_t l, const wchar_t *format, ... ); - -/** - Print formated string. Some operating systems (Like NetBSD) do not - have wide string formating functions. Therefore we define our - own. Not at all complete. Supports wide and narrow characters, - strings and decimal numbers, position (%n), field width and - precision. -*/ -int wprintf( const wchar_t *format, ... ); - -/** - Print formated string. Some operating systems (Like NetBSD) do not - have wide string formating functions. Therefore we define our - own. Not at all complete. Supports wide and narrow characters, - strings and decimal numbers, position (%n), field width and - precision. -*/ -int vwprintf( const wchar_t *filter, va_list va ); - -/** - Print formated string. Some operating systems (Like NetBSD) do not - have wide string formating functions. Therefore we define our - own. Not at all complete. Supports wide and narrow characters, - strings and decimal numbers, position (%n), field width and - precision. -*/ -int vfwprintf( FILE *f, const wchar_t *filter, va_list va ); - -/** - Print formated string. Some operating systems (Like NetBSD) do not - have wide string formating functions. Therefore we define our - own. Not at all complete. Supports wide and narrow characters, - strings and decimal numbers, position (%n), field width and - precision. -*/ -int vswprintf( wchar_t *out, size_t n, const wchar_t *filter, va_list va ); - -#endif - -#ifndef HAVE_FGETWC - -/** - Fallback implementation of fgetwc -*/ -wint_t fgetwc(FILE *stream); - -/** - Fallback implementation of getwc -*/ -wint_t getwc(FILE *stream); - -#endif - -#ifndef HAVE_FPUTWC - -/** - Fallback implementation of fputwc -*/ -wint_t fputwc(wchar_t wc, FILE *stream); -/** - Fallback implementation of putwc -*/ -wint_t putwc(wchar_t wc, FILE *stream); - -#endif - -#ifndef HAVE_WCSTOK -/** - Fallback implementation of wcstok. Uses code borrowed from glibc. -*/ -wchar_t *wcstok(wchar_t *wcs, const wchar_t *delim, wchar_t **ptr); - -#endif - -/** - Return the number of columns used by a character. This is a libc - function, but the prototype for this function is missing in some libc - implementations. - - Fish has a fallback implementation in case the implementation is - missing altogether. In locales without a native wcwidth, Unicode - is probably so broken that it isn't worth trying to implement a - real wcwidth. Therefore, the fallback wcwidth assumes any printing - character takes up one column and anything else uses 0 columns. -*/ -int wcwidth( wchar_t c ); - -/** - Create a duplicate string. Wide string version of strdup. Will - automatically exit if out of memory. -*/ -wchar_t *wcsdup(const wchar_t *in); - -size_t wcslen(const wchar_t *in); - -/** - Case insensitive string compare function. Wide string version of - strcasecmp. - - This implementation of wcscasecmp does not take into account - esoteric locales where uppercase and lowercase do not cleanly - transform between each other. Hopefully this should be fine since - fish only uses this function with one of the strings supplied by - fish and guaranteed to be a sane, english word. Using wcscasecmp on - a user-supplied string should be considered a bug. -*/ -int wcscasecmp( const wchar_t *a, const wchar_t *b ); - -/** - Case insensitive string compare function. Wide string version of - strncasecmp. - - This implementation of wcsncasecmp does not take into account - esoteric locales where uppercase and lowercase do not cleanly - transform between each other. Hopefully this should be fine since - fish only uses this function with one of the strings supplied by - fish and guaranteed to be a sane, english word. Using wcsncasecmp on - a user-supplied string should be considered a bug. -*/ -int wcsncasecmp( const wchar_t *a, const wchar_t *b, int count ); - -/** - Returns a newly allocated wide character string wich is a copy of - the string in, but of length c or shorter. The returned string is - always null terminated, and the null is not included in the string - length. -*/ -wchar_t *wcsndup( const wchar_t *in, int c ); - -/** - Converts from wide char to digit in the specified base. If d is not - a valid digit in the specified base, return -1. -*/ -long convert_digit( wchar_t d, int base ); - -/** - Fallback implementation. Convert a wide character string to a - number in the specified base. This functions is the wide character - string equivalent of strtol. For bases of 10 or lower, 0..9 are - used to represent numbers. For bases below 36, a-z and A-Z are used - to represent numbers higher than 9. Higher bases than 36 are not - supported. -*/ -long wcstol(const wchar_t *nptr, - wchar_t **endptr, - int base); - #endif |