URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.18.0/] [newlib/] [libc/] [ctype/] [tolower.c] - Rev 308
Go to most recent revision | Compare with Previous | Blame | View Log
/* FUNCTION <<tolower>>---translate characters to lowercase INDEX tolower INDEX _tolower ANSI_SYNOPSIS #include <ctype.h> int tolower(int <[c]>); int _tolower(int <[c]>); TRAD_SYNOPSIS #include <ctype.h> int tolower(<[c]>); int _tolower(<[c]>); DESCRIPTION <<tolower>> is a macro which converts uppercase characters to lowercase, leaving all other characters unchanged. It is only defined when <[c]> is an integer in the range <<EOF>> to <<255>>. You can use a compiled subroutine instead of the macro definition by undefining this macro using `<<#undef tolower>>'. <<_tolower>> performs the same conversion as <<tolower>>, but should only be used when <[c]> is known to be an uppercase character (<<A>>--<<Z>>). RETURNS <<tolower>> returns the lowercase equivalent of <[c]> when it is a character between <<A>> and <<Z>>, and <[c]> otherwise. <<_tolower>> returns the lowercase equivalent of <[c]> when it is a character between <<A>> and <<Z>>. If <[c]> is not one of these characters, the behaviour of <<_tolower>> is undefined. PORTABILITY <<tolower>> is ANSI C. <<_tolower>> is not recommended for portable programs. No supporting OS subroutines are required. */ #include <_ansi.h> #include <ctype.h> #if defined (_MB_EXTENDED_CHARSETS_ISO) || defined (_MB_EXTENDED_CHARSETS_WINDOWS) #include <limits.h> #include <stdio.h> #include <stdlib.h> #include <wctype.h> #include <wchar.h> #endif #undef tolower int _DEFUN(tolower,(c),int c) { #if defined (_MB_EXTENDED_CHARSETS_ISO) || defined (_MB_EXTENDED_CHARSETS_WINDOWS) if ((unsigned char) c <= 0x7f) return isupper (c) ? c - 'A' + 'a' : c; else if (c != EOF && MB_CUR_MAX == 1 && isupper (c)) { char s[MB_LEN_MAX] = { c, '\0' }; wchar_t wc; if (mbtowc (&wc, s, 1) >= 0 && wctomb (s, (wchar_t) towlower ((wint_t) wc)) == 1) c = (unsigned char) s[0]; } return c; #else return isupper(c) ? (c) - 'A' + 'a' : c; #endif }
Go to most recent revision | Compare with Previous | Blame | View Log