LCOV - code coverage report
Current view: top level - include/linux - ctype.h (source / functions) Hit Total Coverage
Test: combined.info Lines: 12 14 85.7 %
Date: 2022-03-28 13:20:08 Functions: 1 2 50.0 %
Branches: 32 48 66.7 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: GPL-2.0 */
       2                 :            : #ifndef _LINUX_CTYPE_H
       3                 :            : #define _LINUX_CTYPE_H
       4                 :            : 
       5                 :            : /*
       6                 :            :  * NOTE! This ctype does not handle EOF like the standard C
       7                 :            :  * library is required to.
       8                 :            :  */
       9                 :            : 
      10                 :            : #define _U      0x01    /* upper */
      11                 :            : #define _L      0x02    /* lower */
      12                 :            : #define _D      0x04    /* digit */
      13                 :            : #define _C      0x08    /* cntrl */
      14                 :            : #define _P      0x10    /* punct */
      15                 :            : #define _S      0x20    /* white space (space/lf/tab) */
      16                 :            : #define _X      0x40    /* hex digit */
      17                 :            : #define _SP     0x80    /* hard space (0x20) */
      18                 :            : 
      19                 :            : extern const unsigned char _ctype[];
      20                 :            : 
      21                 :            : #define __ismask(x) (_ctype[(int)(unsigned char)(x)])
      22                 :            : 
      23                 :            : #define isalnum(c)      ((__ismask(c)&(_U|_L|_D)) != 0)
      24                 :            : #define isalpha(c)      ((__ismask(c)&(_U|_L)) != 0)
      25                 :            : #define iscntrl(c)      ((__ismask(c)&(_C)) != 0)
      26                 :    2435358 : static inline int isdigit(int c)
      27                 :            : {
      28   [ +  +  -  -  :    2435358 :         return '0' <= c && c <= '9';
          -  -  -  -  +  
             +  +  +  +  
                      + ]
      29                 :            : }
      30                 :            : #define isgraph(c)      ((__ismask(c)&(_P|_U|_L|_D)) != 0)
      31                 :            : #define islower(c)      ((__ismask(c)&(_L)) != 0)
      32                 :            : #define isprint(c)      ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
      33                 :            : #define ispunct(c)      ((__ismask(c)&(_P)) != 0)
      34                 :            : /* Note: isspace() must return false for %NUL-terminator */
      35                 :            : #define isspace(c)      ((__ismask(c)&(_S)) != 0)
      36                 :            : #define isupper(c)      ((__ismask(c)&(_U)) != 0)
      37                 :            : #define isxdigit(c)     ((__ismask(c)&(_D|_X)) != 0)
      38                 :            : 
      39                 :            : #define isascii(c) (((unsigned char)(c))<=0x7f)
      40                 :            : #define toascii(c) (((unsigned char)(c))&0x7f)
      41                 :            : 
      42                 :       1770 : static inline unsigned char __tolower(unsigned char c)
      43                 :            : {
      44   [ +  +  +  +  :       1170 :         if (isupper(c))
             +  +  -  + ]
      45                 :        870 :                 c -= 'A'-'a';
      46   [ +  +  -  +  :       1170 :         return c;
             +  +  -  + ]
      47                 :            : }
      48                 :            : 
      49                 :     637246 : static inline unsigned char __toupper(unsigned char c)
      50                 :            : {
      51   [ +  +  +  + ]:     622697 :         if (islower(c))
      52                 :       7890 :                 c -= 'a'-'A';
      53   [ +  +  +  + ]:     623657 :         return c;
      54                 :            : }
      55                 :            : 
      56                 :            : #define tolower(c) __tolower(c)
      57                 :            : #define toupper(c) __toupper(c)
      58                 :            : 
      59                 :            : /*
      60                 :            :  * Fast implementation of tolower() for internal usage. Do not use in your
      61                 :            :  * code.
      62                 :            :  */
      63                 :    2210474 : static inline char _tolower(const char c)
      64                 :            : {
      65   [ -  +  +  + ]:    2210474 :         return c | 0x20;
      66                 :            : }
      67                 :            : 
      68                 :            : /* Fast check for octal digit */
      69                 :          0 : static inline int isodigit(const char c)
      70                 :            : {
      71   [ #  #  #  #  :          0 :         return c >= '0' && c <= '7';
                   #  # ]
      72                 :            : }
      73                 :            : 
      74                 :            : #endif

Generated by: LCOV version 1.14