home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / Texte / scribus / scribus-1.3.3.9-win32-install.exe / lib / curses / ascii.py < prev    next >
Text File  |  2004-06-01  |  3KB  |  100 lines

  1. """Constants and membership tests for ASCII characters"""
  2.  
  3. NUL     = 0x00  # ^@
  4. SOH     = 0x01  # ^A
  5. STX     = 0x02  # ^B
  6. ETX     = 0x03  # ^C
  7. EOT     = 0x04  # ^D
  8. ENQ     = 0x05  # ^E
  9. ACK     = 0x06  # ^F
  10. BEL     = 0x07  # ^G
  11. BS      = 0x08  # ^H
  12. TAB     = 0x09  # ^I
  13. HT      = 0x09  # ^I
  14. LF      = 0x0a  # ^J
  15. NL      = 0x0a  # ^J
  16. VT      = 0x0b  # ^K
  17. FF      = 0x0c  # ^L
  18. CR      = 0x0d  # ^M
  19. SO      = 0x0e  # ^N
  20. SI      = 0x0f  # ^O
  21. DLE     = 0x10  # ^P
  22. DC1     = 0x11  # ^Q
  23. DC2     = 0x12  # ^R
  24. DC3     = 0x13  # ^S
  25. DC4     = 0x14  # ^T
  26. NAK     = 0x15  # ^U
  27. SYN     = 0x16  # ^V
  28. ETB     = 0x17  # ^W
  29. CAN     = 0x18  # ^X
  30. EM      = 0x19  # ^Y
  31. SUB     = 0x1a  # ^Z
  32. ESC     = 0x1b  # ^[
  33. FS      = 0x1c  # ^\
  34. GS      = 0x1d  # ^]
  35. RS      = 0x1e  # ^^
  36. US      = 0x1f  # ^_
  37. SP      = 0x20  # space
  38. DEL     = 0x7f  # delete
  39.  
  40. controlnames = [
  41. "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",
  42. "BS",  "HT",  "LF",  "VT",  "FF",  "CR",  "SO",  "SI",
  43. "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
  44. "CAN", "EM",  "SUB", "ESC", "FS",  "GS",  "RS",  "US",
  45. "SP"
  46. ]
  47.  
  48. def _ctoi(c):
  49.     if type(c) == type(""):
  50.         return ord(c)
  51.     else:
  52.         return c
  53.  
  54. def isalnum(c): return isalpha(c) or isdigit(c)
  55. def isalpha(c): return isupper(c) or islower(c)
  56. def isascii(c): return _ctoi(c) <= 127          # ?
  57. def isblank(c): return _ctoi(c) in (8,32)
  58. def iscntrl(c): return _ctoi(c) <= 31
  59. def isdigit(c): return _ctoi(c) >= 48 and _ctoi(c) <= 57
  60. def isgraph(c): return _ctoi(c) >= 33 and _ctoi(c) <= 126
  61. def islower(c): return _ctoi(c) >= 97 and _ctoi(c) <= 122
  62. def isprint(c): return _ctoi(c) >= 32 and _ctoi(c) <= 126
  63. def ispunct(c): return _ctoi(c) != 32 and not isalnum(c)
  64. def isspace(c): return _ctoi(c) in (9, 10, 11, 12, 13, 32)
  65. def isupper(c): return _ctoi(c) >= 65 and _ctoi(c) <= 90
  66. def isxdigit(c): return isdigit(c) or \
  67.     (_ctoi(c) >= 65 and _ctoi(c) <= 70) or (_ctoi(c) >= 97 and _ctoi(c) <= 102)
  68. def isctrl(c): return _ctoi(c) < 32
  69. def ismeta(c): return _ctoi(c) > 127
  70.  
  71. def ascii(c):
  72.     if type(c) == type(""):
  73.         return chr(_ctoi(c) & 0x7f)
  74.     else:
  75.         return _ctoi(c) & 0x7f
  76.  
  77. def ctrl(c):
  78.     if type(c) == type(""):
  79.         return chr(_ctoi(c) & 0x1f)
  80.     else:
  81.         return _ctoi(c) & 0x1f
  82.  
  83. def alt(c):
  84.     if type(c) == type(""):
  85.         return chr(_ctoi(c) | 0x80)
  86.     else:
  87.         return _ctoi(c) | 0x80
  88.  
  89. def unctrl(c):
  90.     bits = _ctoi(c)
  91.     if bits == 0x7f:
  92.         rep = "^?"
  93.     elif isprint(bits & 0x7f):
  94.         rep = chr(bits & 0x7f)
  95.     else:
  96.         rep = "^" + chr(((bits & 0x7f) | 0x20) + 0x20)
  97.     if bits & 0x80:
  98.         return "!" + rep
  99.     return rep
  100.