⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newlibctype.cxx

📁 eCos操作系统源码
💻 CXX
字号:
/*===========================================================================////      newlibctype.cxx////      newlib's implementation of the ctype functions////===========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 2004 eCosCentric Ltd.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos is distributed in the hope that it will be useful, but WITHOUT ANY// WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//===========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):    jlarmour// Contributors: // Date:         2004-02-16// Purpose:      Provides newlib's implementation of the ctype functions.// Description:  Also provides a degree of binary compatibility with newlib//               ctype functions, primarily for the benefit of libstdc++.// Usage:       ////####DESCRIPTIONEND####////=========================================================================*//* CONFIGURATION */#include <pkgconf/libc_i18n.h>   // Configuration header#ifdef CYGPKG_LIBC_I18N_NEWLIB_CTYPE#include <cyg/infra/cyg_type.h>#include <cyg/libc/i18n/newlibctype.h>#define _CONST  const    // just for compatibility#define _CTYPE_DATA_0_127 \        _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \        _C,     _C|_S,  _C|_S,  _C|_S,  _C|_S,  _C|_S,  _C,     _C, \        _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \        _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \        _S|_B,  _P,     _P,     _P,     _P,     _P,     _P,     _P, \        _P,     _P,     _P,     _P,     _P,     _P,     _P,     _P, \        _N,     _N,     _N,     _N,     _N,     _N,     _N,     _N, \        _N,     _N,     _P,     _P,     _P,     _P,     _P,     _P, \        _P,     _U|_X,  _U|_X,  _U|_X,  _U|_X,  _U|_X,  _U|_X,  _U, \        _U,     _U,     _U,     _U,     _U,     _U,     _U,     _U, \        _U,     _U,     _U,     _U,     _U,     _U,     _U,     _U, \        _U,     _U,     _U,     _P,     _P,     _P,     _P,     _P, \        _P,     _L|_X,  _L|_X,  _L|_X,  _L|_X,  _L|_X,  _L|_X,  _L, \        _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \        _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \        _L,     _L,     _L,     _P,     _P,     _P,     _P,     _C#define _CTYPE_DATA_128_256 \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0, \        0,      0,      0,      0,      0,      0,      0,      0_CONST char _ctype_[1 + 256] = {        0,        _CTYPE_DATA_0_127,        _CTYPE_DATA_128_256};_CONST char *__ctype_ptr = _ctype_ + 1;#undef _tolower#undef tolower#undef _toupper#undef toupperint_tolower(int c){    return isupper(c) ? (c) - 'A' + 'a' : c;}inttolower(int c){    return isupper(c) ? (c) - 'A' + 'a' : c;}int_toupper(int c){    return islower(c) ? c - 'a' + 'A' : c;}inttoupper(int c){    return islower(c) ? c - 'a' + 'A' : c;}#undef isalnum#undef isalpha#undef isascii#undef iscntrl#undef isdigit#undef islower#undef isgraph#undef isprint#undef ispunct#undef isspace#undef isupper#undef isxdigit#undef toasciiintisalnum(int c){    return((_ctype_ + 1)[c] & (_U|_L|_N));}intisalpha(int c){    return((_ctype_ + 1)[c] & (_U|_L));}int isascii(int c){    return c >= 0 && c< 128;}intiscntrl(int c){    return((_ctype_ + 1)[c] & _C);}intisdigit(int c){    return((_ctype_ + 1)[c] & _N);}intislower(int c){    return((_ctype_ + 1)[c] & _L);}intisgraph(int c){    return((_ctype_ + 1)[c] & (_P|_U|_L|_N));}intisprint(int c){    return((_ctype_ + 1)[c] & (_P|_U|_L|_N|_B));}intispunct(int c){    return((_ctype_ + 1)[c] & _P);}intisspace(int c){    return((_ctype_ + 1)[c] & _S);}intisupper(int c){    return((_ctype_ + 1)[c] & _U);}intisxdigit(int c){    return((_ctype_ + 1)[c] & ((_X)|(_N)));}inttoascii(int c){    return (c)&0177;}#endif // ifdef CYGPKG_LIBC_I18N_NEWLIB_CTYPE/* EOF newlibctype.cxx */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -