From: solar Date: Thu, 23 Dec 2010 06:15:28 +0000 (+0000) Subject: Started out on v0.6. X-Git-Url: https://pd.if.org/git/?p=pdclib;a=commitdiff_plain;h=0fa6394bc70eab55e0e38703a31a3072232c0729 Started out on v0.6. --- diff --git a/includes/ctype.h b/includes/ctype.h index 2c8071c..a4ac534 100644 --- a/includes/ctype.h +++ b/includes/ctype.h @@ -9,15 +9,85 @@ #ifndef _PDCLIB_CTYPE_H #define _PDCLIB_CTYPE_H _PDCLIB_CTYPE_H -/* ------------------------------------------------------------------------- */ -/* THIS IS A STUB - THIS IS A STUB - THIS IS A STUB - THIS IS A STUB */ -/* ------------------------------------------------------------------------- */ -/* This implements two functions that are required by / */ -/* for the C locale only. Will be replaced in v0.6 by something compliant. */ -/* ------------------------------------------------------------------------- */ - -int tolower( int c ); +/* Character classification functions */ + +/* Note that there is a difference between "whitespace" (any printing, non- + graph character, like horizontal and vertical tab), and "blank" (the literal + ' ' space character). + + There will be masking macros for each of these later on, but right now I + focus on the functions only. +*/ + +/* Returns isalpha( c ) || isdigit( c ) */ +int isalnum( int c ); + +/* Returns isupper( c ) || islower( c ) in the "C" locale. + In any other locale, also returns true for a locale-specific set of + alphabetic characters which are neither control characters, digits, + punctation, or whitespace. +*/ +int isalpha( int c ); + +/* Returns true if the character is a whitespace. In the "C" locale, only ' ' + and '\t' are considered whitespace. +*/ +int isblank( int c ); + +/* Returns true if the character is a control character. */ +int iscntrl( int c ); + +/* Returns true if the character is a decimal digit. */ +int isdigit( int c ); + +/* Returns true for every printing character except space (' '). */ +int isgraph( int c ); + +/* Returns true for lowercase letters in the "C" locale. + In any other locale, also returns true for a locale-specific set of + characters which are neither control characters, digits, punctation, or + space (' '). In a locale other than the "C" locale, a character might test + true for both islower() and isupper(). +*/ +int islower( int c ); + +/* Returns true for every printing character including space (' '). */ +int isprint( int c ); + +/* Returns true for every printing character that is neither whitespace + nor alphanumeric in the "C" locale. In any other locale, there might be + characters that are printing characters, but neither whitespace nor + alphanumeric. +*/ +int ispunct( int c ); + +/* Returns true for every standard whitespace character (' ', '\f', '\n', '\r', + '\t', '\v') in the "C" locale. In any other locale, also returns true for a + locale-specific set of characters for which isalnum() is false. +*/ int isspace( int c ); -#endif +/* Returns true for uppercase letters in the "C" locale. + In any other locale, also returns true for a locale-specific set of + characters which are neither control characters, digits, punctation, or + space (' '). In a locale other than the "C" locale, a character might test + true for both islower() and isupper(). +*/ +int isupper( int c ); + +/* Returns true for any hexadecimal-digit character. */ +int isxdigit( int c ); +/* Character case mapping functions */ + +/* Converts an uppercase letter to a corresponding lowercase letter. Input that + is not an uppercase letter remains unchanged. +*/ +int tolower( c ); + +/* Converts a lowercase letter to a corresponding uppercase letter. Input that + is not a lowercase letter remains unchanged. +*/ +int toupper( c ); + +#endif diff --git a/includes/errno.h b/includes/errno.h index 2795fdf..90c61db 100644 --- a/includes/errno.h +++ b/includes/errno.h @@ -1,6 +1,6 @@ /* $Id$ */ -/* Errors +/* 7.5 Errors This file is part of the Public Domain C Library (PDCLib). Permission is granted to use, modify, and / or redistribute at will. diff --git a/includes/locale.h b/includes/locale.h new file mode 100644 index 0000000..fd014db --- /dev/null +++ b/includes/locale.h @@ -0,0 +1,94 @@ +/* $Id$ */ + +/* 7.11 Localization + + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +#ifndef _PDCLIB_LOCALE_H +#define _PDCLIB_LOCALE_H _PDCLIB_LOCALE_H + +/* The structure returned by localeconv(). + + The values for *_sep_by_space: + 0 - no space + 1 - if symbol and sign are adjacent, a space seperates them from the value; + otherwise a space seperates the symbol from the value + 2 - if symbol and sign are adjacent, a space seperates them; otherwise a + space seperates the sign from the value + + The values for *_sign_posn: + 0 - Parentheses surround value and symbol + 1 - sign precedes value and symbol + 2 - sign succeeds value and symbol + 3 - sign immediately precedes symbol + 4 - sign immediately succeeds symbol +*/ +struct lconv +{ + char * decimal_point; /* decimal point character */ + char * thousands_sep; /* character for seperating groups of digits */ + char * grouping; /* string indicating the size of digit groups */ + char * mon_decimal_point; /* decimal point for monetary quantities */ + char * mon_thousands_sep; /* thousands_sep for monetary quantities */ + char * mon_grouping; /* grouping for monetary quantities */ + char * positive_sign; /* string indicating nonnegative mty. qty. */ + char * negative_sign; /* string indicating negative mty. qty. */ + char * currency_symbol; /* local currency symbol (e.g. '$') */ + char * int_curr_symbol; /* international currency symbol (e.g. "USD" */ + char frac_digits; /* fractional digits in local monetary qty. */ + char p_cs_precedes; /* if currency_symbol precedes positive qty. */ + char n_cs_precedes; /* if currency_symbol precedes negative qty. */ + char p_sep_by_space; /* if it is seperated by space from pos. qty. */ + char n_sep_by_space; /* if it is seperated by space from neg. qty. */ + char p_sign_posn; /* positioning of positive_sign for mon. qty. */ + char n_sign_posn; /* positioning of negative_sign for mon. qty. */ + char int_frac_digits; /* Same as above, for international format */ + char int_p_cs_precedes; /* Same as above, for international format */ + char int_n_cs_precedes; /* Same as above, for international format */ + char int_p_sep_by_space; /* Same as above, for international format */ + char int_n_sep_by_space; /* Same as above, for international format */ + char int_p_sign_posn; /* Same as above, for international format */ + char int_n_sign_posn; /* Same as above, for international format */ +} + +#ifndef _PDCLIB_NULL_DEFINED +#define _PDCLIB_NULL_DEFINED _PDCLIB_NULL_DEFINED +#define NULL _PDCLIB_NULL +#endif + +/* LC_ALL + - entire locale + LC_COLLATE + - strcoll(), strxfrm() + LC_CTYPE + - + LC_MONETARY + - monetary formatting as returned by localeconv + LC_NUMERIC + - decimal-point character for printf() / scanf() functions, string + conversions, and nonmonetary formattign as returned by localeconv + LC_TIME + - strftime(), wcsftime() + + First arguments to setlocale(). +*/ + +/* The category parameter can be any of the LC_* macros to specify if the call + to setlocale() shall affect the entire locale or only a portion thereof. + The category locale specifies which locale should be switched to, with "C" + being the minimal default locale, and "" being the locale-specific native + environment. A NULL pointer makes setlocale() return the *current* setting. + Otherwise, returns a pointer to a string associated with the specified + category for the new locale. +*/ +char * setlocale( int category, const char * locale ); + +/* Returns a struct lconv initialized to the values appropriate for the current + locale setting. +*/ +struct lconv * localeconv( void ); + +#endif + diff --git a/includes/stdio.h b/includes/stdio.h index b9a0224..6b562d9 100644 --- a/includes/stdio.h +++ b/includes/stdio.h @@ -1,6 +1,6 @@ /* $Id$ */ -/* Input/output +/* 7.19 Input/output This file is part of the Public Domain C Library (PDCLib). Permission is granted to use, modify, and / or redistribute at will. diff --git a/includes/stdlib.h b/includes/stdlib.h index f84851b..b035c9c 100644 --- a/includes/stdlib.h +++ b/includes/stdlib.h @@ -1,6 +1,6 @@ /* $Id$ */ -/* General utilities +/* 7.20 General utilities This file is part of the Public Domain C Library (PDCLib). Permission is granted to use, modify, and / or redistribute at will. diff --git a/includes/string.h b/includes/string.h index ef70df0..c5f74b5 100644 --- a/includes/string.h +++ b/includes/string.h @@ -1,6 +1,6 @@ /* $Id$ */ -/* String handling +/* 7.21 String handling This file is part of the Public Domain C Library (PDCLib). Permission is granted to use, modify, and / or redistribute at will. diff --git a/platform/example/includes/signal.h b/platform/example/includes/signal.h index e1b10f8..9b812c9 100644 --- a/platform/example/includes/signal.h +++ b/platform/example/includes/signal.h @@ -1,6 +1,6 @@ /* $Id$ */ -/* Signal handling +/* 7.14 Signal handling This file is part of the Public Domain C Library (PDCLib). Permission is granted to use, modify, and / or redistribute at will. diff --git a/platform/example_cygwin/includes/signal.h b/platform/example_cygwin/includes/signal.h index e1b10f8..9b812c9 100644 --- a/platform/example_cygwin/includes/signal.h +++ b/platform/example_cygwin/includes/signal.h @@ -1,6 +1,6 @@ /* $Id$ */ -/* Signal handling +/* 7.14 Signal handling This file is part of the Public Domain C Library (PDCLib). Permission is granted to use, modify, and / or redistribute at will.