Blame include/crypto/ctype.h

Packit c4476c
/*
Packit c4476c
 * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
Packit c4476c
 *
Packit c4476c
 * Licensed under the OpenSSL license (the "License").  You may not use
Packit c4476c
 * this file except in compliance with the License.  You can obtain a copy
Packit c4476c
 * in the file LICENSE in the source distribution or at
Packit c4476c
 * https://www.openssl.org/source/license.html
Packit c4476c
 */
Packit c4476c
Packit c4476c
/*
Packit c4476c
 * This version of ctype.h provides a standardised and platform
Packit c4476c
 * independent implementation that supports seven bit ASCII characters.
Packit c4476c
 * The specific intent is to not pass extended ASCII characters (> 127)
Packit c4476c
 * even if the host operating system would.
Packit c4476c
 *
Packit c4476c
 * There is EBCDIC support included for machines which use this.  However,
Packit c4476c
 * there are a number of concerns about how well EBCDIC is supported
Packit c4476c
 * throughout the rest of the source code.  Refer to issue #4154 for
Packit c4476c
 * details.
Packit c4476c
 */
Packit c4476c
#ifndef OSSL_CRYPTO_CTYPE_H
Packit c4476c
# define OSSL_CRYPTO_CTYPE_H
Packit c4476c
Packit c4476c
# define CTYPE_MASK_lower       0x1
Packit c4476c
# define CTYPE_MASK_upper       0x2
Packit c4476c
# define CTYPE_MASK_digit       0x4
Packit c4476c
# define CTYPE_MASK_space       0x8
Packit c4476c
# define CTYPE_MASK_xdigit      0x10
Packit c4476c
# define CTYPE_MASK_blank       0x20
Packit c4476c
# define CTYPE_MASK_cntrl       0x40
Packit c4476c
# define CTYPE_MASK_graph       0x80
Packit c4476c
# define CTYPE_MASK_print       0x100
Packit c4476c
# define CTYPE_MASK_punct       0x200
Packit c4476c
# define CTYPE_MASK_base64      0x400
Packit c4476c
# define CTYPE_MASK_asn1print   0x800
Packit c4476c
Packit c4476c
# define CTYPE_MASK_alpha   (CTYPE_MASK_lower | CTYPE_MASK_upper)
Packit c4476c
# define CTYPE_MASK_alnum   (CTYPE_MASK_alpha | CTYPE_MASK_digit)
Packit c4476c
Packit c4476c
/*
Packit c4476c
 * The ascii mask assumes that any other classification implies that
Packit c4476c
 * the character is ASCII and that there are no ASCII characters
Packit c4476c
 * that aren't in any of the classifications.
Packit c4476c
 *
Packit c4476c
 * This assumption holds at the moment, but it might not in the future.
Packit c4476c
 */
Packit c4476c
# define CTYPE_MASK_ascii   (~0)
Packit c4476c
Packit c4476c
# ifdef CHARSET_EBCDIC
Packit c4476c
int ossl_toascii(int c);
Packit c4476c
int ossl_fromascii(int c);
Packit c4476c
# else
Packit c4476c
#  define ossl_toascii(c)       (c)
Packit c4476c
#  define ossl_fromascii(c)     (c)
Packit c4476c
# endif
Packit c4476c
int ossl_ctype_check(int c, unsigned int mask);
Packit c4476c
int ossl_tolower(int c);
Packit c4476c
int ossl_toupper(int c);
Packit c4476c
Packit c4476c
int ascii_isdigit(const char inchar);
Packit c4476c
Packit c4476c
# define ossl_isalnum(c)        (ossl_ctype_check((c), CTYPE_MASK_alnum))
Packit c4476c
# define ossl_isalpha(c)        (ossl_ctype_check((c), CTYPE_MASK_alpha))
Packit c4476c
# ifdef CHARSET_EBCDIC
Packit c4476c
# define ossl_isascii(c)        (ossl_ctype_check((c), CTYPE_MASK_ascii))
Packit c4476c
# else
Packit c4476c
# define ossl_isascii(c)        (((c) & ~127) == 0)
Packit c4476c
# endif
Packit c4476c
# define ossl_isblank(c)        (ossl_ctype_check((c), CTYPE_MASK_blank))
Packit c4476c
# define ossl_iscntrl(c)        (ossl_ctype_check((c), CTYPE_MASK_cntrl))
Packit c4476c
# define ossl_isdigit(c)        (ossl_ctype_check((c), CTYPE_MASK_digit))
Packit c4476c
# define ossl_isgraph(c)        (ossl_ctype_check((c), CTYPE_MASK_graph))
Packit c4476c
# define ossl_islower(c)        (ossl_ctype_check((c), CTYPE_MASK_lower))
Packit c4476c
# define ossl_isprint(c)        (ossl_ctype_check((c), CTYPE_MASK_print))
Packit c4476c
# define ossl_ispunct(c)        (ossl_ctype_check((c), CTYPE_MASK_punct))
Packit c4476c
# define ossl_isspace(c)        (ossl_ctype_check((c), CTYPE_MASK_space))
Packit c4476c
# define ossl_isupper(c)        (ossl_ctype_check((c), CTYPE_MASK_upper))
Packit c4476c
# define ossl_isxdigit(c)       (ossl_ctype_check((c), CTYPE_MASK_xdigit))
Packit c4476c
# define ossl_isbase64(c)       (ossl_ctype_check((c), CTYPE_MASK_base64))
Packit c4476c
# define ossl_isasn1print(c)    (ossl_ctype_check((c), CTYPE_MASK_asn1print))
Packit c4476c
Packit c4476c
#endif