home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / lib / libi18n / kinsokud.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  8.8 KB  |  218 lines

  1. /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18. /*    kinsokud.c    */
  19.  
  20. /*
  21.   Japanese Kinsoku table:
  22.   Characters are not allowed in the beginning of line 
  23. */
  24.  
  25. #include "intlpriv.h"
  26.  
  27. MODULE_PRIVATE const char *ProhibitBegin_SJIS[] = 
  28. {
  29. "\x21",  "\x25",  "\x29",  "\x2C",  "\x2E",  "\x3A",  "\x3B",  "\x3F",  "\x5D", "\x7D", 
  30. "\xA1",   "\xA3",   "\xA4",   "\xA5",   "\xDE",   "\xDF",   "\x81\x41", "\x81\x42", "\x81\x43", "\x81\x44",     
  31. "\x81\x45", "\x81\x46", "\x81\x47", "\x81\x48", "\x81\x49", "\x81\x4A", "\x81\x4B", "\x81\x52",    "\x81\x53", "\x81\x54", 
  32. "\x81\x55", "\x81\x58", "\x81\x66", "\x81\x68", "\x81\x6A", "\x81\x6C", "\x81\x6E", "\x81\x70", "\x81\x72", "\x81\x74",     
  33. "\x81\x76", "\x81\x78", "\x81\x7A", "\x81\x8B", "\x81\x8C", "\x81\x8D", "\x81\x8E", "\x81\x91", "\x81\x93", "\x81\xF1", 
  34. "\0"
  35. };
  36. MODULE_PRIVATE const char *ProhibitBegin_EUCJP[] = 
  37. {
  38. "\x21",     "\x25",      "\x29",   "\x2C",   "\x2E",   "\x3A",   "\x3B",   "\x3F",   "\x5D",   "\x7D",            
  39. "\x8E\xA1", "\x8E\xA3", "\x8E\xA4", "\x8E\xA5", "\x8E\xDE", "\x8E\xDF", "\xA1\xA2", "\xA1\xA3", "\xA1\xA4", "\xA1\xA5", 
  40. "\xA1\xA6", "\xA1\xA7", "\xA1\xA8", "\xA1\xA9", "\xA1\xAA", "\xA1\xAB", "\xA1\xAC", "\xA1\xB3", "\xA1\xB4", "\xA1\xB5",
  41. "\xA1\xB6", "\xA1\xB9", "\xA1\xC7", "\xA1\xC9",    "\xA1\xCB", "\xA1\xCD", "\xA1\xCF", "\xA1\xD1", "\xA1\xD3", "\xA1\xD5",
  42. "\xA1\xD7", "\xA1\xD9", "\xA1\xDB", "\xA1\xEB", "\xA1\xEC", "\xA1\xED", "\xA1\xEE", "\xA1\xF1", "\xA1\xF3", "\xA2\xF3",
  43. "\0"
  44. };
  45.  
  46. /*
  47.  * BIG5 table
  48.  */
  49. MODULE_PRIVATE const char *ProhibitBegin_BIG5[] = 
  50. {
  51. "\x21",     "\x29",     "\x2C",     "\x2E",     "\x3A",     "\x3B",     "\x3F",     "\x5D",     "\x7D",     "\xA1\x41", 
  52. "\xA1\x43", "\xA1\x44", "\xA1\x45", "\xA1\x46", "\xA1\x47", "\xA1\x48", "\xA1\x49", "\xA1\x4A", "\xA1\x4B", "\xA1\x4C", 
  53. "\xA1\x4D", "\xA1\x4E", "\xA1\x50", "\xA1\x51", "\xA1\x52", "\xA1\x53", "\xA1\x54", "\xA1\x55", "\xA1\x56", "\xA1\x57", 
  54. "\xA1\x58", "\xA1\x59", "\xA1\x5A", "\xA1\x5B", "\xA1\x5C", "\xA1\x5E", "\xA1\x60", "\xA1\x62", "\xA1\x64", "\xA1\x66", 
  55. "\xA1\x68", "\xA1\x6A", "\xA1\x6C", "\xA1\x6E", "\xA1\x70", "\xA1\x72", "\xA1\x74", "\xA1\x76", "\xA1\x78", "\xA1\x7A", 
  56. "\xA1\x7C", "\xA1\x7E", "\xA1\xA2", "\xA1\xA4", "\xA1\xA6", "\xA1\xA8", "\xA1\xAA", "\xA1\xAC", "\0"
  57. };
  58. /*
  59.     Convert the table from BIG5 into CNS_8BIT
  60. */
  61. MODULE_PRIVATE const char *ProhibitBegin_CNS[] = 
  62. {
  63. "\x21",     "\x29",     "\x2C",     "\x2E",     "\x3A",     "\x3B",     "\x3F",     "\x5D",     "\x7D",     "\xA1\xA2", 
  64. "\xA1\xA4", "\xA1\xA5", "\xA1\xA6", "\xA1\xA7", "\xA1\xA8", "\xA1\xA9", "\xA1\xAA", "\xA1\x4B", "\xA1\x4B", "\xA1\xAC", 
  65. "\xA1\xAC", "\xA1\xAD", "\xA1\xB1", "\xA1\xB2", "\xA1\xB3", "\xA1\xB4", "\xA1\xB5", "\xA1\xB6", "\xA1\xB7", "\xA1\xB8", 
  66. "\xA1\xB9", "\xA1\xBA", "\xA1\xBB", "\xA1\xBC", "\xA1\xBD", "\xA1\xBF", "\xA1\xC1", "\xA1\xC2", "\xA1\x64", "\xA1\x66", 
  67. "\xA1\xC9", "\xA1\xCB", "\xA1\xCD", "\xA1\xCF", "\xA1\xD1", "\xA1\xD3", "\xA1\xD5", "\xA1\xD7", "\xA1\xDA", "\xA1\xDB", 
  68. "\xA1\xDD", "\xA1\xDF", "\xA1\xE1", "\xA1\xE3", "\xA1\xE5", "\xA1\xE7", "\xA1\xE9", "\xA1\xEB", "\0"
  69. };
  70.  
  71. MODULE_PRIVATE const char *ProhibitBegin_GB[] = 
  72. {
  73. "\x21",     "\x29",     "\x2C",     "\x2E",     "\x3A",     "\x3B",     "\x3F",     "\x5D",     "\x7D",     "\xA1\xA2", 
  74. "\xA1\xA3", "\xA1\xA4", "\xA1\xA5", "\xA1\xA6", "\xA1\xA7", "\xA1\xA8", "\xA1\xA9", "\xA1\xAA", "\xA1\xAB", "\xA1\xAC", 
  75. "\xA1\xAD", "\xA1\xAF", "\xA1\xB1", "\xA1\xB3", "\xA1\xB5", "\xA1\xB7", "\xA1\xB9", "\xA1\xBB", "\xA1\xBD", "\xA1\xBF", 
  76. "\xA1\xC3", "\xA3\xA1", "\xA3\xA2", "\xA3\xA7", "\xA3\xA9", "\xA3\xAC", "\xA3\xAE", "\xA3\xBA", "\xA3\xBB", "\xA3\xBF", 
  77. "\xA3\xDD", "\xA3\xE0", "\xA3\xFC", "\xA3\xFD", "\0"
  78. };
  79.  
  80. MODULE_PRIVATE const char *ProhibitBegin_KSC[] = 
  81. {
  82. "\x21",     "\x25",     "\x29",     "\x2C",     "\x2E",     "\x3A",     "\x3B",     "\x3F",     "\x5D",     "\x7D", 
  83. "\xA1\xA2", "\xA1\xAF", "\xA1\xB1", "\xA1\xB3", "\xA1\xB5", "\xA1\xB7", "\xA1\xB9", "\xA1\xBB", "\xA1\xBD", "\xA1\xC6", 
  84. "\xA1\xC7", "\xA1\xC8", "\xA1\xC9", "\xA1\xCB", "\xA3\xA1", "\xA3\xA5", "\xA3\xA9", "\xA3\xAC", "\xA3\xAE", "\xA3\xBA", 
  85. "\xA3\xBB", "\xA3\xBF", "\xA3\xDC", "\xA3\xDD", "\xA3\xFD", "\0"
  86. };
  87.  
  88.  
  89. /*    ProhibitBegin_UTF8: Made by ftang.  */
  90. MODULE_PRIVATE const char *ProhibitBegin_UTF8[] = 
  91. {
  92. /* U+  21 */  "\x21",
  93. /* U+  25 */  "\x25",
  94. /* U+  29 */  "\x29",
  95. /* U+  2C */  "\x2C",
  96. /* U+  2E */  "\x2E",
  97. /* U+  3A */  "\x3A",
  98. /* U+  3B */  "\x3B",
  99. /* U+  5D */  "\x5D",
  100. /* U+  7D */  "\x7D",
  101. /* U+  3F */  "\x3F",
  102. /* U+  A2 */  "\xC2\xA2",
  103. /* U+  BB */  "\xC2\xBB",
  104. /* U+2019 */  "\xE2\x80\x99",
  105. /* U+201D */  "\xE2\x80\x9D",
  106. /* U+2024 */  "\xE2\x80\xA4",
  107. /* U+2025 */  "\xE2\x80\xA5",
  108. /* U+2026 */  "\xE2\x80\xA6",
  109. /* U+2030 */  "\xE2\x80\xB0",
  110. /* U+3001 */  "\xE3\x80\x81",
  111. /* U+3002 */  "\xE3\x80\x82",
  112. /* U+3005 */  "\xE3\x80\x85",
  113. /* U+3009 */  "\xE3\x80\x89",
  114. /* U+300B */  "\xE3\x80\x8B",
  115. /* U+300D */  "\xE3\x80\x8D",
  116. /* U+300F */  "\xE3\x80\x8F",
  117. /* U+3011 */  "\xE3\x80\x91",
  118. /* U+3015 */  "\xE3\x80\x95",
  119. /* U+3017 */  "\xE3\x80\x97",
  120. /* U+3019 */  "\xE3\x80\x99",
  121. /* U+301B */  "\xE3\x80\x9B",
  122. /* U+3099 */  "\xE3\x82\x99",
  123. /* U+309A */  "\xE3\x82\x9A",
  124. /* U+309B */  "\xE3\x82\x9B",
  125. /* U+309C */  "\xE3\x82\x9C",
  126. /* U+309D */  "\xE3\x82\x9D",
  127. /* U+309E */  "\xE3\x82\x9E",
  128. /* U+30FB */  "\xE3\x83\xBB",
  129. /* U+30FC */  "\xE3\x83\xBC",
  130. /* U+30FD */  "\xE3\x83\xBD",
  131. /* U+30FE */  "\xE3\x83\xBE",
  132. /* U+FF61 */  "\xEF\xBD\xA1",
  133. /* U+FF63 */  "\xEF\xBD\xA3",
  134. /* U+FF64 */  "\xEF\xBD\xA4",
  135. /* U+FF65 */  "\xEF\xBD\xA5",
  136. /* U+FF9E */  "\xEF\xBE\x9E",
  137. /* U+FF9F */  "\xEF\xBE\x9F",
  138. "\0"
  139. };
  140.  
  141.  
  142. /*
  143.   Japanese Kinsoku table:
  144.   Characters are not allowed in the end of line 
  145. */
  146.  
  147. MODULE_PRIVATE const char *ProhibitEnd_SJIS[] =
  148. {
  149. "\x24",     "\x28",     "\x5B",     "\x5C",     "\x7B",     "\xA2",     "\x81\x65", "\x81\x67", "\x81\x69", "\x81\x6B",
  150. "\x81\x6D", "\x81\x6F", "\x81\x71", "\x81\x73", "\x81\x75", "\x81\x77", "\x81\x79", "\x81\x8F", "\x81\x90", "\x81\x92",
  151. "\0"
  152. };
  153. MODULE_PRIVATE const char *ProhibitEnd_EUCJP[] =
  154. {
  155. "\x24",     "\x28",     "\x5B",     "\x5C",     "\x7B",     "\x8E\xA2", "\xA1\xC6", "\xA1\xC8", "\xA1\xCA", "\xA1\xCC",
  156. "\xA1\xCE", "\xA1\xD0", "\xA1\xD2", "\xA1\xD4", "\xA1\xD6", "\xA1\xD8", "\xA1\xDA", "\xA1\xEF", "\xA1\xF0", "\xA1\xF2",
  157. "\0"
  158. };
  159.  
  160. /*
  161.  * BIG5 table
  162.  */
  163. MODULE_PRIVATE const char *ProhibitEnd_BIG5[] = 
  164. {
  165. "\x28",    "\x5B",    "\x7B",    "\xA1\x5D", "\xA1\x5F", "\xA1\x61", "\xA1\x63", "\xA1\x65", "\xA1\x67", "\xA1\x69", 
  166. "\xA1\x6D","\xA1\x6F","\xA1\x71","\xA1\x73", "\xA1\x75", "\xA1\x77", "\xA1\x79", "\xA1\x7B", "\xA1\x7D", 
  167. "\xA1\xA1","\xA1\xA3","\xA1\xA5","\xA1\xA7", "\xA1\xA9", "\xA1\xAB", "\0"
  168. };
  169. /*
  170.     Convert the table from BIG5 into CNS
  171. */
  172. MODULE_PRIVATE const char *ProhibitEnd_CNS[] = 
  173. {
  174. "\x28",    "\x5B",    "\x7B",    "\xA1\xBE", "\xA1\xC0", "\xA1\xC2", "\xA1\xC4", "\xA1\xC6", "\xA1\xC8", "\xA1\xCA", 
  175. "\xA1\xCE","\xA1\xD0","\xA1\xD2","\xA1\xD4", "\xA1\xD6", "\xA1\xD8", "\xA1\xDA", "\xA1\xDC", "\xA1\xDE", 
  176. "\xA1\xE0","\xA1\xE2","\xA1\xE4","\xA1\xE6", "\xA1\xE8", "\xA1\xEA", "\0"
  177. };
  178.  
  179. MODULE_PRIVATE const char *ProhibitEnd_GB[] = 
  180. {
  181. "\x28",    "\x5B",    "\x7B",    "\xA1\xAE", "\xA1\xB0", "\xA1\xB2", "\xA1\xB4", "\xA1\xB6", "\xA1\xB8", "\xA1\xBA", 
  182. "\xA1\xBC","\xA1\xBE","\xA3\xA8","\xA3\xAE", "\xA3\xDB", "\xA3\xFB", "\0"
  183. };
  184.  
  185. MODULE_PRIVATE const char *ProhibitEnd_KSC[] = 
  186. {
  187. "\x28",    "\x5B",    "\x5C",    "\x7B",    "\xA1\xAE", "\xA1\xB0", "\xA1\xB2", "\xA1\xB4", "\xA1\xB6", "\xA1\xB8", 
  188. "\xA1\xBA","\xA1\xBC","\xA3\xA4","\xA3\xA8","\xA3\xDB", "\xA3\xDC", "\xA3\xFB", "\0"
  189. };
  190.  
  191. /*    ProhibitEnd_UTF8: Made by ftang.  */
  192. MODULE_PRIVATE const char *ProhibitEnd_UTF8[] = 
  193. {
  194. /* U+  24 */  "\x24",
  195. /* U+  28 */  "\x28",
  196. /* U+  5B */  "\x5B",
  197. /* U+  7B */  "\x7B",
  198. /* U+  A2 */  "\xC2\xA2",
  199. /* U+  A3 */  "\xC2\xA3",
  200. /* U+  A5 */  "\xC2\xA5",
  201. /* U+  AB */  "\xC2\xAB",
  202. /* U+2018 */  "\xE2\x80\x98",
  203. /* U+201C */  "\xE2\x80\x9C",
  204. /* U+3008 */  "\xE3\x80\x88",
  205. /* U+300A */  "\xE3\x80\x8A",
  206. /* U+300C */  "\xE3\x80\x8C",
  207. /* U+300E */  "\xE3\x80\x8E",
  208. /* U+3010 */  "\xE3\x80\x90",
  209. /* U+3014 */  "\xE3\x80\x94",
  210. /* U+3016 */  "\xE3\x80\x96",
  211. /* U+3018 */  "\xE3\x80\x98",
  212. /* U+301A */  "\xE3\x80\x9A",
  213. /* U+FF62 */  "\xEF\xBD\xA2",
  214. "\0"    
  215. };
  216.  
  217.  
  218.