chardefs.h
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* chardefs.h -- Character definitions for readline. */
  2. /* Copyright (C) 1994 Free Software Foundation, Inc.
  3.    This file is part of the GNU Readline Library, a library for
  4.    reading lines of text with interactive input and history editing.
  5.    The GNU Readline Library is free software; you can redistribute it
  6.    and/or modify it under the terms of the GNU General Public License
  7.    as published by the Free Software Foundation; either version 1, or
  8.    (at your option) any later version.
  9.    The GNU Readline Library is distributed in the hope that it will be
  10.    useful, but WITHOUT ANY WARRANTY; without even the implied warranty
  11.    of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.    GNU General Public License for more details.
  13.    The GNU General Public License is often shipped with GNU software, and
  14.    is generally kept in a file called COPYING or LICENSE.  If you do not
  15.    have a copy of the license, write to the Free Software Foundation,
  16.    675 Mass Ave, Cambridge, MA 02139, USA. */
  17. #ifndef _CHARDEFS_H_
  18. #define _CHARDEFS_H_
  19. #ifndef _m_ctype_h
  20. #include <ctype.h>
  21. #endif
  22. #if defined (HAVE_CONFIG_H)
  23. #  if defined (HAVE_STRING_H)
  24. #    include <string.h>
  25. #  else
  26. #    include <strings.h>
  27. #  endif /* HAVE_STRING_H */
  28. #else
  29. #  include <string.h>
  30. #endif /* !HAVE_CONFIG_H */
  31. #ifndef whitespace
  32. #define whitespace(c) (((c) == ' ') || ((c) == 't'))
  33. #endif
  34. #ifdef CTRL
  35. #undef CTRL
  36. #endif
  37. /* Some character stuff. */
  38. #define control_character_threshold 0x020   /* Smaller than this is control. */
  39. #define control_character_mask 0x1f     /* 0x20 - 1 */
  40. #define meta_character_threshold 0x07f     /* Larger than this is Meta. */
  41. #define control_character_bit 0x40     /* 0x000000, must be off. */
  42. #define meta_character_bit 0x080     /* x0000000, must be on. */
  43. #define largest_char 255     /* Largest character value. */
  44. #define CTRL_CHAR(c) ((c) < control_character_threshold && (c) >= 0)
  45. #define META_CHAR(c) ((c) > meta_character_threshold && (c) <= largest_char)
  46. #define CTRL(c) ((c) & control_character_mask)
  47. #define META(c) ((c) | meta_character_bit)
  48. #define UNMETA(c) ((c) & (~meta_character_bit))
  49. #define UNCTRL(c) _rl_to_upper(((c)|control_character_bit))
  50. /* Old versions
  51. #define _rl_lowercase_p(c) (((c) > ('a' - 1) && (c) < ('z' + 1)))
  52. #define _rl_uppercase_p(c) (((c) > ('A' - 1) && (c) < ('Z' + 1)))
  53. #define _rl_digit_p(c)  ((c) >= '0' && (c) <= '9')
  54. */
  55. #define _rl_lowercase_p(c) (islower(c))
  56. #define _rl_uppercase_p(c) (isupper(c))
  57. #define _rl_digit_p(x)  (isdigit (x))
  58. #define _rl_pure_alphabetic(c) (_rl_lowercase_p(c) || _rl_uppercase_p(c))
  59. #define ALPHABETIC(c) (_rl_lowercase_p(c) || _rl_uppercase_p(c) || _rl_digit_p(c))
  60. /* Old versions
  61. #  define _rl_to_upper(c) (_rl_lowercase_p(c) ? ((c) - 32) : (c))
  62. #  define _rl_to_lower(c) (_rl_uppercase_p(c) ? ((c) + 32) : (c))
  63. */
  64. #ifndef _rl_to_upper
  65. #  define _rl_to_upper(c) (islower(c) ? toupper(c) : (c))
  66. #  define _rl_to_lower(c) (isupper(c) ? tolower(c) : (c))
  67. #endif
  68. #ifndef _rl_digit_value
  69. #define _rl_digit_value(x) ((x) - '0')
  70. #endif
  71. #ifndef NEWLINE
  72. #define NEWLINE 'n'
  73. #endif
  74. #ifndef RETURN
  75. #define RETURN CTRL('M')
  76. #endif
  77. #ifndef RUBOUT
  78. #define RUBOUT 0x7f
  79. #endif
  80. #ifndef TAB
  81. #define TAB 't'
  82. #endif
  83. #ifdef ABORT_CHAR
  84. #undef ABORT_CHAR
  85. #endif
  86. #define ABORT_CHAR CTRL('G')
  87. #ifdef PAGE
  88. #undef PAGE
  89. #endif
  90. #define PAGE CTRL('L')
  91. #ifdef SPACE
  92. #undef SPACE
  93. #endif
  94. #define SPACE ' ' /* XXX - was 0x20 */
  95. #ifdef ESC
  96. #undef ESC
  97. #endif
  98. #define ESC CTRL('[')
  99. #ifndef ISOCTAL
  100. #define ISOCTAL(c)      ((c) >= '0' && (c) <= '7')
  101. #endif
  102. #define OCTVALUE(c)     ((c) - '0')
  103. #ifndef isxdigit
  104. #  define isxdigit(c)   (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
  105. #endif
  106. #define HEXVALUE(c) 
  107.   (((c) >= 'a' && (c) <= 'f') 
  108.    ? (c)-'a'+10 
  109.    : (c) >= 'A' && (c) <= 'F' ? (c)-'A'+10 : (c)-'0')
  110. #endif  /* _CHARDEFS_H_ */