From e7c2a1bb8fc85270866e817835e79275afed8ddd Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Fri, 16 Jan 2015 01:19:43 +0000 Subject: [PATCH] libc: includes for changes --- Library/include/locale.h | 66 ++++++++++++++++++++++++++++++++++++++++ Library/include/stdlib.h | 2 ++ Library/include/string.h | 7 ++++- 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 Library/include/locale.h diff --git a/Library/include/locale.h b/Library/include/locale.h new file mode 100644 index 00000000..8521251b --- /dev/null +++ b/Library/include/locale.h @@ -0,0 +1,66 @@ +#ifndef _LOCALE_H +#define _LOCALE_H + +typedef void * locale_t; + +struct lconv { + char *decimal_point; + char *thousands_sep; + char *grouping; + char *int_curr_symbol; + char *currency_symbol; + char *mon_decimal_pont; + char *mon_thousands_sep; + char *positive_sign; + char *negative_sign; + char frac_digits; + char p_cs_precedes; + char p_sep_by_space; + char p_sign_posn; + char n_sign_posn; + /* ISO C99 added */ + char int_p_cs_precedes; + char int_p_sep_by_space; + char int_n_cs_precedes; + char int_n_sep_by_space; + char int_p_sign_posn; + char int_n_sign_posn; +}; + +extern char *setlocale(int, const char *); +extern struct lconv *localeconv(void); + +#define LC_ALL 0 +#define LC_ADDRESS 1 +#define LC_COLLATE 2 +#define LC_CTYPE 3 +#define LC_IDENTIFICATION 4 +#define LC_MEASUREMENT 5 +#define LC_MESSAGES 6 +#define LC_MONETARY 7 +#define LC_NAME 8 +#define LC_NUMERIC 9 +#define LC_PAPER 10 +#define LC_TELEPHONE 11 +#define LC_TIME 12 + +#define LC_GLOBAL_LOCALE ((void *)1) + +#define tolower_l(a,b) tolower(a) +#define toupper_l(a,b) toupper(a) + +#define isascii_l(a,b) isascii(a) +#define isalnum_l(a,b) isalnum(a) +#define isalpha_l(a,b) isalpha(a) +#define isblank_l(a,b) isblank(a) +#define iscntrl_l(a,b) iscntrl(a) +#define isdigit_l(a,b) isdigit(a) +#define isgraph_l(a,b) isgraph(a) +#define islower_l(a,b) islower(a) +#define isprint_l(a,b) isprint(a) +#define ispunct_l(a,b) ispunct(a) +#define isspace_l(a,b) isspace(a) +#define isupper_l(a,b) isupper(a) +#define isxdigit_l(a,b) isxdigit(a) + +#endif diff --git a/Library/include/stdlib.h b/Library/include/stdlib.h index 0f22d68f..75ab85f1 100644 --- a/Library/include/stdlib.h +++ b/Library/include/stdlib.h @@ -79,6 +79,8 @@ extern void *lsearch __P((void *key, void *base, size_t *num, size_t size, cmp_f extern void *_qbuf; extern void qsort __P((void *base, size_t num, size_t size, cmp_func_t cmp)); +#define mb_len(a,b) strnlen(a,b) + extern int opterr; extern int optind; extern char *optarg; diff --git a/Library/include/string.h b/Library/include/string.h index ac1d221f..ed8c044d 100644 --- a/Library/include/string.h +++ b/Library/include/string.h @@ -41,7 +41,7 @@ extern char *rindex __P ((const char *, int)); extern void bcopy __P ((const void*, void*, size_t)); extern void bzero __P ((void*, int)); -/* Othe common BSD functions */ +/* Other common BSD functions */ extern char *strpbrk __P ((const char *, const char *)); extern char *strsep __P ((char **, const char *)); extern char *strstr __P ((const char *, const char *)); @@ -54,6 +54,11 @@ extern size_t strlcat __P((char *, const char *, size_t)); extern char *strcasestr __P((const char *, const char *)); +/* Later ISOisms */ +extern size_t strnlen __P((const char *, size_t)); +extern size_t strxfrm __P((char *, const char *, size_t)); +extern int strcoll __P((const char *s1, const char *s2)); + #ifdef z80 #pagma inline(memcpy) #pagma inline(memset) -- 2.34.1