react-native-nitro-zxing 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/README.md +34 -0
  2. package/VisionCameraZxing.podspec +48 -0
  3. package/android/CMakeLists.txt +43 -0
  4. package/android/build.gradle +150 -0
  5. package/android/fix-prefab.gradle +51 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +3 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +7 -0
  9. package/android/src/main/java/com/margelo/nitro/camera/zxing/VisionCameraZxingPackage.kt +21 -0
  10. package/cpp/BarcodeValueTypeClassifier.cpp +70 -0
  11. package/cpp/BarcodeValueTypeClassifier.hpp +14 -0
  12. package/cpp/FrameImageView.cpp +75 -0
  13. package/cpp/FrameImageView.hpp +34 -0
  14. package/cpp/HybridBarcode.cpp +59 -0
  15. package/cpp/HybridBarcode.hpp +26 -0
  16. package/cpp/HybridBarcodeScanner.cpp +121 -0
  17. package/cpp/HybridBarcodeScanner.hpp +26 -0
  18. package/cpp/HybridBarcodeScannerFactory.cpp +11 -0
  19. package/cpp/HybridBarcodeScannerFactory.hpp +14 -0
  20. package/cpp/ImageDownscaler.cpp +34 -0
  21. package/cpp/ImageDownscaler.hpp +21 -0
  22. package/cpp/ZXingDecoder.cpp +189 -0
  23. package/cpp/ZXingDecoder.hpp +72 -0
  24. package/cpp/zxing-core/LICENSE +202 -0
  25. package/cpp/zxing-core/README.md +156 -0
  26. package/cpp/zxing-core/core/CMakeLists.txt +784 -0
  27. package/cpp/zxing-core/core/Version.h.in +28 -0
  28. package/cpp/zxing-core/core/ZXingConfig.cmake.in +9 -0
  29. package/cpp/zxing-core/core/src/Barcode.cpp +255 -0
  30. package/cpp/zxing-core/core/src/Barcode.h +191 -0
  31. package/cpp/zxing-core/core/src/BarcodeData.h +100 -0
  32. package/cpp/zxing-core/core/src/BarcodeFormat.cpp +286 -0
  33. package/cpp/zxing-core/core/src/BarcodeFormat.h +272 -0
  34. package/cpp/zxing-core/core/src/BinaryBitmap.cpp +111 -0
  35. package/cpp/zxing-core/core/src/BinaryBitmap.h +66 -0
  36. package/cpp/zxing-core/core/src/BitArray.cpp +38 -0
  37. package/cpp/zxing-core/core/src/BitArray.h +181 -0
  38. package/cpp/zxing-core/core/src/BitMatrix.cpp +175 -0
  39. package/cpp/zxing-core/core/src/BitMatrix.h +199 -0
  40. package/cpp/zxing-core/core/src/BitMatrixCursor.h +253 -0
  41. package/cpp/zxing-core/core/src/BitMatrixIO.cpp +101 -0
  42. package/cpp/zxing-core/core/src/BitMatrixIO.h +21 -0
  43. package/cpp/zxing-core/core/src/BitSource.cpp +77 -0
  44. package/cpp/zxing-core/core/src/BitSource.h +72 -0
  45. package/cpp/zxing-core/core/src/ByteArray.h +42 -0
  46. package/cpp/zxing-core/core/src/CharacterSet.cpp +78 -0
  47. package/cpp/zxing-core/core/src/CharacterSet.h +58 -0
  48. package/cpp/zxing-core/core/src/ConcentricFinder.cpp +312 -0
  49. package/cpp/zxing-core/core/src/ConcentricFinder.h +156 -0
  50. package/cpp/zxing-core/core/src/Content.cpp +471 -0
  51. package/cpp/zxing-core/core/src/Content.h +82 -0
  52. package/cpp/zxing-core/core/src/ContentType.h +19 -0
  53. package/cpp/zxing-core/core/src/CreateBarcode.cpp +490 -0
  54. package/cpp/zxing-core/core/src/CreateBarcode.h +132 -0
  55. package/cpp/zxing-core/core/src/DecoderResult.h +92 -0
  56. package/cpp/zxing-core/core/src/DetectorResult.h +44 -0
  57. package/cpp/zxing-core/core/src/ECI.cpp +81 -0
  58. package/cpp/zxing-core/core/src/ECI.h +78 -0
  59. package/cpp/zxing-core/core/src/Error.cpp +29 -0
  60. package/cpp/zxing-core/core/src/Error.h +79 -0
  61. package/cpp/zxing-core/core/src/Flags.h +165 -0
  62. package/cpp/zxing-core/core/src/GTIN.cpp +253 -0
  63. package/cpp/zxing-core/core/src/GTIN.h +58 -0
  64. package/cpp/zxing-core/core/src/GlobalHistogramBinarizer.cpp +197 -0
  65. package/cpp/zxing-core/core/src/GlobalHistogramBinarizer.h +34 -0
  66. package/cpp/zxing-core/core/src/GridSampler.cpp +124 -0
  67. package/cpp/zxing-core/core/src/GridSampler.h +59 -0
  68. package/cpp/zxing-core/core/src/HRI.cpp +343 -0
  69. package/cpp/zxing-core/core/src/HRI.h +16 -0
  70. package/cpp/zxing-core/core/src/HybridBinarizer.cpp +315 -0
  71. package/cpp/zxing-core/core/src/HybridBinarizer.h +40 -0
  72. package/cpp/zxing-core/core/src/ImageView.h +168 -0
  73. package/cpp/zxing-core/core/src/JSON.cpp +154 -0
  74. package/cpp/zxing-core/core/src/JSON.h +66 -0
  75. package/cpp/zxing-core/core/src/LocalGrid.cpp +242 -0
  76. package/cpp/zxing-core/core/src/LocalGrid.h +91 -0
  77. package/cpp/zxing-core/core/src/LogMatrix.h +105 -0
  78. package/cpp/zxing-core/core/src/Matrix.h +125 -0
  79. package/cpp/zxing-core/core/src/MultiFormatReader.cpp +107 -0
  80. package/cpp/zxing-core/core/src/MultiFormatReader.h +34 -0
  81. package/cpp/zxing-core/core/src/MultiFormatWriter.cpp +111 -0
  82. package/cpp/zxing-core/core/src/MultiFormatWriter.h +62 -0
  83. package/cpp/zxing-core/core/src/Pattern.h +472 -0
  84. package/cpp/zxing-core/core/src/PerspectiveTransform.cpp +81 -0
  85. package/cpp/zxing-core/core/src/PerspectiveTransform.h +47 -0
  86. package/cpp/zxing-core/core/src/Point.h +185 -0
  87. package/cpp/zxing-core/core/src/Quadrilateral.h +215 -0
  88. package/cpp/zxing-core/core/src/Range.h +112 -0
  89. package/cpp/zxing-core/core/src/ReadBarcode.cpp +335 -0
  90. package/cpp/zxing-core/core/src/ReadBarcode.h +33 -0
  91. package/cpp/zxing-core/core/src/Reader.h +32 -0
  92. package/cpp/zxing-core/core/src/ReaderOptions.h +210 -0
  93. package/cpp/zxing-core/core/src/ReedSolomon.cpp +100 -0
  94. package/cpp/zxing-core/core/src/ReedSolomon.h +66 -0
  95. package/cpp/zxing-core/core/src/RegressionLine.h +161 -0
  96. package/cpp/zxing-core/core/src/ResultPoint.cpp +20 -0
  97. package/cpp/zxing-core/core/src/ResultPoint.h +35 -0
  98. package/cpp/zxing-core/core/src/StdGenerator.h +121 -0
  99. package/cpp/zxing-core/core/src/StdPrint.h +38 -0
  100. package/cpp/zxing-core/core/src/StdScope.h +55 -0
  101. package/cpp/zxing-core/core/src/StructuredAppend.h +19 -0
  102. package/cpp/zxing-core/core/src/SymbologyIdentifier.h +29 -0
  103. package/cpp/zxing-core/core/src/TextDecoder.cpp +59 -0
  104. package/cpp/zxing-core/core/src/TextDecoder.h +23 -0
  105. package/cpp/zxing-core/core/src/TextEncoder.cpp +75 -0
  106. package/cpp/zxing-core/core/src/TextEncoder.h +31 -0
  107. package/cpp/zxing-core/core/src/ThresholdBinarizer.h +58 -0
  108. package/cpp/zxing-core/core/src/TritMatrix.h +29 -0
  109. package/cpp/zxing-core/core/src/Utf.cpp +276 -0
  110. package/cpp/zxing-core/core/src/Utf.h +26 -0
  111. package/cpp/zxing-core/core/src/WhiteRectDetector.cpp +276 -0
  112. package/cpp/zxing-core/core/src/WhiteRectDetector.h +36 -0
  113. package/cpp/zxing-core/core/src/WriteBarcode.cpp +213 -0
  114. package/cpp/zxing-core/core/src/WriteBarcode.h +72 -0
  115. package/cpp/zxing-core/core/src/ZXAlgorithms.h +353 -0
  116. package/cpp/zxing-core/core/src/ZXConfig.h +17 -0
  117. package/cpp/zxing-core/core/src/ZXTestSupport.h +9 -0
  118. package/cpp/zxing-core/core/src/ZXVersion.h +14 -0
  119. package/cpp/zxing-core/core/src/ZXingC.cpp +460 -0
  120. package/cpp/zxing-core/core/src/ZXingC.h +296 -0
  121. package/cpp/zxing-core/core/src/ZXingCpp.cpp +18 -0
  122. package/cpp/zxing-core/core/src/ZXingCpp.h +76 -0
  123. package/cpp/zxing-core/core/src/ZXingQt.h +606 -0
  124. package/cpp/zxing-core/core/src/aztec/AZDecoder.cpp +376 -0
  125. package/cpp/zxing-core/core/src/aztec/AZDecoder.h +20 -0
  126. package/cpp/zxing-core/core/src/aztec/AZDetector.cpp +508 -0
  127. package/cpp/zxing-core/core/src/aztec/AZDetector.h +25 -0
  128. package/cpp/zxing-core/core/src/aztec/AZDetectorResult.h +51 -0
  129. package/cpp/zxing-core/core/src/aztec/AZEncoder.cpp +318 -0
  130. package/cpp/zxing-core/core/src/aztec/AZEncoder.h +44 -0
  131. package/cpp/zxing-core/core/src/aztec/AZEncodingState.h +40 -0
  132. package/cpp/zxing-core/core/src/aztec/AZHighLevelEncoder.cpp +377 -0
  133. package/cpp/zxing-core/core/src/aztec/AZHighLevelEncoder.h +36 -0
  134. package/cpp/zxing-core/core/src/aztec/AZReader.cpp +45 -0
  135. package/cpp/zxing-core/core/src/aztec/AZReader.h +21 -0
  136. package/cpp/zxing-core/core/src/aztec/AZToken.cpp +44 -0
  137. package/cpp/zxing-core/core/src/aztec/AZToken.h +39 -0
  138. package/cpp/zxing-core/core/src/aztec/AZWriter.cpp +38 -0
  139. package/cpp/zxing-core/core/src/aztec/AZWriter.h +55 -0
  140. package/cpp/zxing-core/core/src/datamatrix/DMBitLayout.cpp +194 -0
  141. package/cpp/zxing-core/core/src/datamatrix/DMBitLayout.h +21 -0
  142. package/cpp/zxing-core/core/src/datamatrix/DMDataBlock.cpp +63 -0
  143. package/cpp/zxing-core/core/src/datamatrix/DMDataBlock.h +41 -0
  144. package/cpp/zxing-core/core/src/datamatrix/DMDecoder.cpp +457 -0
  145. package/cpp/zxing-core/core/src/datamatrix/DMDecoder.h +19 -0
  146. package/cpp/zxing-core/core/src/datamatrix/DMDetector.cpp +1230 -0
  147. package/cpp/zxing-core/core/src/datamatrix/DMDetector.h +23 -0
  148. package/cpp/zxing-core/core/src/datamatrix/DMECEncoder.cpp +137 -0
  149. package/cpp/zxing-core/core/src/datamatrix/DMECEncoder.h +26 -0
  150. package/cpp/zxing-core/core/src/datamatrix/DMEncoderContext.h +128 -0
  151. package/cpp/zxing-core/core/src/datamatrix/DMHighLevelEncoder.cpp +919 -0
  152. package/cpp/zxing-core/core/src/datamatrix/DMHighLevelEncoder.h +29 -0
  153. package/cpp/zxing-core/core/src/datamatrix/DMReader.cpp +40 -0
  154. package/cpp/zxing-core/core/src/datamatrix/DMReader.h +21 -0
  155. package/cpp/zxing-core/core/src/datamatrix/DMSymbolInfo.cpp +141 -0
  156. package/cpp/zxing-core/core/src/datamatrix/DMSymbolInfo.h +78 -0
  157. package/cpp/zxing-core/core/src/datamatrix/DMSymbolShape.h +17 -0
  158. package/cpp/zxing-core/core/src/datamatrix/DMVersion.cpp +82 -0
  159. package/cpp/zxing-core/core/src/datamatrix/DMVersion.h +76 -0
  160. package/cpp/zxing-core/core/src/datamatrix/DMWriter.cpp +114 -0
  161. package/cpp/zxing-core/core/src/datamatrix/DMWriter.h +62 -0
  162. package/cpp/zxing-core/core/src/librscpp/README.md +65 -0
  163. package/cpp/zxing-core/core/src/librscpp/decode.h +258 -0
  164. package/cpp/zxing-core/core/src/librscpp/encode.h +124 -0
  165. package/cpp/zxing-core/core/src/librscpp/field.h +158 -0
  166. package/cpp/zxing-core/core/src/librscpp/poly.h +194 -0
  167. package/cpp/zxing-core/core/src/libzint/2of5inter.c +1 -0
  168. package/cpp/zxing-core/core/src/libzint/2of5inter_based.c +1 -0
  169. package/cpp/zxing-core/core/src/libzint/aztec.c +1 -0
  170. package/cpp/zxing-core/core/src/libzint/aztec.h +1 -0
  171. package/cpp/zxing-core/core/src/libzint/big5.h +1 -0
  172. package/cpp/zxing-core/core/src/libzint/codabar.c +1 -0
  173. package/cpp/zxing-core/core/src/libzint/code.c +1 -0
  174. package/cpp/zxing-core/core/src/libzint/code128.c +1 -0
  175. package/cpp/zxing-core/core/src/libzint/code128.h +1 -0
  176. package/cpp/zxing-core/core/src/libzint/common.c +1 -0
  177. package/cpp/zxing-core/core/src/libzint/common.h +1 -0
  178. package/cpp/zxing-core/core/src/libzint/dmatrix.c +1 -0
  179. package/cpp/zxing-core/core/src/libzint/dmatrix.h +1 -0
  180. package/cpp/zxing-core/core/src/libzint/dxfilmedge.c +1 -0
  181. package/cpp/zxing-core/core/src/libzint/eci.c +1 -0
  182. package/cpp/zxing-core/core/src/libzint/eci.h +1 -0
  183. package/cpp/zxing-core/core/src/libzint/eci_sb.h +1 -0
  184. package/cpp/zxing-core/core/src/libzint/filemem.c +1 -0
  185. package/cpp/zxing-core/core/src/libzint/filemem.h +1 -0
  186. package/cpp/zxing-core/core/src/libzint/fonts/normal_woff2.h +1 -0
  187. package/cpp/zxing-core/core/src/libzint/fonts/upcean_woff2.h +1 -0
  188. package/cpp/zxing-core/core/src/libzint/gb18030.h +1 -0
  189. package/cpp/zxing-core/core/src/libzint/gb2312.h +1 -0
  190. package/cpp/zxing-core/core/src/libzint/gbk.h +1 -0
  191. package/cpp/zxing-core/core/src/libzint/general_field.c +1 -0
  192. package/cpp/zxing-core/core/src/libzint/general_field.h +1 -0
  193. package/cpp/zxing-core/core/src/libzint/gs1.c +1 -0
  194. package/cpp/zxing-core/core/src/libzint/gs1.h +1 -0
  195. package/cpp/zxing-core/core/src/libzint/gs1_lint.h +1 -0
  196. package/cpp/zxing-core/core/src/libzint/iso3166.h +1 -0
  197. package/cpp/zxing-core/core/src/libzint/iso4217.h +1 -0
  198. package/cpp/zxing-core/core/src/libzint/ksx1001.h +1 -0
  199. package/cpp/zxing-core/core/src/libzint/large.c +1 -0
  200. package/cpp/zxing-core/core/src/libzint/large.h +1 -0
  201. package/cpp/zxing-core/core/src/libzint/library.c +1 -0
  202. package/cpp/zxing-core/core/src/libzint/maxicode.c +1 -0
  203. package/cpp/zxing-core/core/src/libzint/maxicode.h +1 -0
  204. package/cpp/zxing-core/core/src/libzint/medical.c +1 -0
  205. package/cpp/zxing-core/core/src/libzint/output.c +1 -0
  206. package/cpp/zxing-core/core/src/libzint/output.h +1 -0
  207. package/cpp/zxing-core/core/src/libzint/pdf417.c +1 -0
  208. package/cpp/zxing-core/core/src/libzint/pdf417.h +1 -0
  209. package/cpp/zxing-core/core/src/libzint/pdf417_tabs.h +1 -0
  210. package/cpp/zxing-core/core/src/libzint/qr.c +1 -0
  211. package/cpp/zxing-core/core/src/libzint/qr.h +1 -0
  212. package/cpp/zxing-core/core/src/libzint/raster.c +1 -0
  213. package/cpp/zxing-core/core/src/libzint/raster_font.h +1 -0
  214. package/cpp/zxing-core/core/src/libzint/reedsol.c +1 -0
  215. package/cpp/zxing-core/core/src/libzint/reedsol.h +1 -0
  216. package/cpp/zxing-core/core/src/libzint/reedsol_logs.h +1 -0
  217. package/cpp/zxing-core/core/src/libzint/rss.c +1 -0
  218. package/cpp/zxing-core/core/src/libzint/rss.h +1 -0
  219. package/cpp/zxing-core/core/src/libzint/sjis.h +1 -0
  220. package/cpp/zxing-core/core/src/libzint/stubs.c +137 -0
  221. package/cpp/zxing-core/core/src/libzint/svg.c +1 -0
  222. package/cpp/zxing-core/core/src/libzint/telepen.c +1 -0
  223. package/cpp/zxing-core/core/src/libzint/upcean.c +1 -0
  224. package/cpp/zxing-core/core/src/libzint/vector.c +1 -0
  225. package/cpp/zxing-core/core/src/libzint/zfiletypes.h +1 -0
  226. package/cpp/zxing-core/core/src/libzint/zint.h +1 -0
  227. package/cpp/zxing-core/core/src/libzint/zintconfig.h +1 -0
  228. package/cpp/zxing-core/core/src/libzueci/README.md +11 -0
  229. package/cpp/zxing-core/core/src/libzueci/zueci.c +1718 -0
  230. package/cpp/zxing-core/core/src/libzueci/zueci.h +179 -0
  231. package/cpp/zxing-core/core/src/libzueci/zueci_big5.h +3884 -0
  232. package/cpp/zxing-core/core/src/libzueci/zueci_common.h +31 -0
  233. package/cpp/zxing-core/core/src/libzueci/zueci_gb18030.h +264 -0
  234. package/cpp/zxing-core/core/src/libzueci/zueci_gb2312.h +2381 -0
  235. package/cpp/zxing-core/core/src/libzueci/zueci_gbk.h +4047 -0
  236. package/cpp/zxing-core/core/src/libzueci/zueci_ksx1001.h +2932 -0
  237. package/cpp/zxing-core/core/src/libzueci/zueci_sb.h +1112 -0
  238. package/cpp/zxing-core/core/src/libzueci/zueci_sjis.h +2286 -0
  239. package/cpp/zxing-core/core/src/maxicode/MCBitMatrixParser.cpp +68 -0
  240. package/cpp/zxing-core/core/src/maxicode/MCBitMatrixParser.h +30 -0
  241. package/cpp/zxing-core/core/src/maxicode/MCDecoder.cpp +329 -0
  242. package/cpp/zxing-core/core/src/maxicode/MCDecoder.h +19 -0
  243. package/cpp/zxing-core/core/src/maxicode/MCReader.cpp +65 -0
  244. package/cpp/zxing-core/core/src/maxicode/MCReader.h +21 -0
  245. package/cpp/zxing-core/core/src/oned/ODCodabarReader.cpp +102 -0
  246. package/cpp/zxing-core/core/src/oned/ODCodabarReader.h +21 -0
  247. package/cpp/zxing-core/core/src/oned/ODCodabarWriter.cpp +136 -0
  248. package/cpp/zxing-core/core/src/oned/ODCodabarWriter.h +34 -0
  249. package/cpp/zxing-core/core/src/oned/ODCode128Patterns.h +130 -0
  250. package/cpp/zxing-core/core/src/oned/ODCode128Reader.cpp +236 -0
  251. package/cpp/zxing-core/core/src/oned/ODCode128Reader.h +21 -0
  252. package/cpp/zxing-core/core/src/oned/ODCode128Writer.cpp +261 -0
  253. package/cpp/zxing-core/core/src/oned/ODCode128Writer.h +34 -0
  254. package/cpp/zxing-core/core/src/oned/ODCode39Reader.cpp +213 -0
  255. package/cpp/zxing-core/core/src/oned/ODCode39Reader.h +26 -0
  256. package/cpp/zxing-core/core/src/oned/ODCode39Writer.cpp +176 -0
  257. package/cpp/zxing-core/core/src/oned/ODCode39Writer.h +34 -0
  258. package/cpp/zxing-core/core/src/oned/ODCode93Patterns.h +80 -0
  259. package/cpp/zxing-core/core/src/oned/ODCode93Reader.cpp +112 -0
  260. package/cpp/zxing-core/core/src/oned/ODCode93Reader.h +21 -0
  261. package/cpp/zxing-core/core/src/oned/ODCode93Writer.cpp +192 -0
  262. package/cpp/zxing-core/core/src/oned/ODCode93Writer.h +32 -0
  263. package/cpp/zxing-core/core/src/oned/ODDXFilmEdgeReader.cpp +246 -0
  264. package/cpp/zxing-core/core/src/oned/ODDXFilmEdgeReader.h +26 -0
  265. package/cpp/zxing-core/core/src/oned/ODDataBarCommon.cpp +172 -0
  266. package/cpp/zxing-core/core/src/oned/ODDataBarCommon.h +204 -0
  267. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedBitDecoder.cpp +253 -0
  268. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedBitDecoder.h +19 -0
  269. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedReader.cpp +383 -0
  270. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedReader.h +25 -0
  271. package/cpp/zxing-core/core/src/oned/ODDataBarLimitedReader.cpp +163 -0
  272. package/cpp/zxing-core/core/src/oned/ODDataBarLimitedReader.h +23 -0
  273. package/cpp/zxing-core/core/src/oned/ODDataBarReader.cpp +240 -0
  274. package/cpp/zxing-core/core/src/oned/ODDataBarReader.h +25 -0
  275. package/cpp/zxing-core/core/src/oned/ODEAN13Writer.cpp +62 -0
  276. package/cpp/zxing-core/core/src/oned/ODEAN13Writer.h +34 -0
  277. package/cpp/zxing-core/core/src/oned/ODEAN8Writer.cpp +51 -0
  278. package/cpp/zxing-core/core/src/oned/ODEAN8Writer.h +34 -0
  279. package/cpp/zxing-core/core/src/oned/ODITFReader.cpp +97 -0
  280. package/cpp/zxing-core/core/src/oned/ODITFReader.h +33 -0
  281. package/cpp/zxing-core/core/src/oned/ODITFWriter.cpp +78 -0
  282. package/cpp/zxing-core/core/src/oned/ODITFWriter.h +34 -0
  283. package/cpp/zxing-core/core/src/oned/ODMultiUPCEANReader.cpp +323 -0
  284. package/cpp/zxing-core/core/src/oned/ODMultiUPCEANReader.h +32 -0
  285. package/cpp/zxing-core/core/src/oned/ODReader.cpp +259 -0
  286. package/cpp/zxing-core/core/src/oned/ODReader.h +35 -0
  287. package/cpp/zxing-core/core/src/oned/ODRowReader.h +222 -0
  288. package/cpp/zxing-core/core/src/oned/ODTelepenReader.cpp +199 -0
  289. package/cpp/zxing-core/core/src/oned/ODTelepenReader.h +25 -0
  290. package/cpp/zxing-core/core/src/oned/ODUPCAWriter.cpp +33 -0
  291. package/cpp/zxing-core/core/src/oned/ODUPCAWriter.h +34 -0
  292. package/cpp/zxing-core/core/src/oned/ODUPCEANCommon.cpp +80 -0
  293. package/cpp/zxing-core/core/src/oned/ODUPCEANCommon.h +129 -0
  294. package/cpp/zxing-core/core/src/oned/ODUPCEWriter.cpp +56 -0
  295. package/cpp/zxing-core/core/src/oned/ODUPCEWriter.h +34 -0
  296. package/cpp/zxing-core/core/src/oned/ODWriterHelper.cpp +39 -0
  297. package/cpp/zxing-core/core/src/oned/ODWriterHelper.h +48 -0
  298. package/cpp/zxing-core/core/src/pdf417/MicroPDFReader.cpp +796 -0
  299. package/cpp/zxing-core/core/src/pdf417/MicroPDFReader.h +23 -0
  300. package/cpp/zxing-core/core/src/pdf417/PDF417.cpp +85 -0
  301. package/cpp/zxing-core/core/src/pdf417/PDF417.h +81 -0
  302. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeMetadata.h +53 -0
  303. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeValue.cpp +48 -0
  304. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeValue.h +38 -0
  305. package/cpp/zxing-core/core/src/pdf417/PDFBoundingBox.cpp +116 -0
  306. package/cpp/zxing-core/core/src/pdf417/PDFBoundingBox.h +75 -0
  307. package/cpp/zxing-core/core/src/pdf417/PDFCodeword.h +71 -0
  308. package/cpp/zxing-core/core/src/pdf417/PDFCodewordDecoder.cpp +588 -0
  309. package/cpp/zxing-core/core/src/pdf417/PDFCodewordDecoder.h +41 -0
  310. package/cpp/zxing-core/core/src/pdf417/PDFCompaction.h +20 -0
  311. package/cpp/zxing-core/core/src/pdf417/PDFCustomData.h +32 -0
  312. package/cpp/zxing-core/core/src/pdf417/PDFDecoder.cpp +725 -0
  313. package/cpp/zxing-core/core/src/pdf417/PDFDecoder.h +20 -0
  314. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResult.cpp +247 -0
  315. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResult.h +74 -0
  316. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResultColumn.cpp +321 -0
  317. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResultColumn.h +83 -0
  318. package/cpp/zxing-core/core/src/pdf417/PDFDetector.cpp +371 -0
  319. package/cpp/zxing-core/core/src/pdf417/PDFDetector.h +45 -0
  320. package/cpp/zxing-core/core/src/pdf417/PDFEncoder.cpp +570 -0
  321. package/cpp/zxing-core/core/src/pdf417/PDFEncoder.h +182 -0
  322. package/cpp/zxing-core/core/src/pdf417/PDFHighLevelEncoder.cpp +570 -0
  323. package/cpp/zxing-core/core/src/pdf417/PDFHighLevelEncoder.h +32 -0
  324. package/cpp/zxing-core/core/src/pdf417/PDFReader.cpp +333 -0
  325. package/cpp/zxing-core/core/src/pdf417/PDFReader.h +28 -0
  326. package/cpp/zxing-core/core/src/pdf417/PDFScanningDecoder.cpp +559 -0
  327. package/cpp/zxing-core/core/src/pdf417/PDFScanningDecoder.h +41 -0
  328. package/cpp/zxing-core/core/src/pdf417/PDFWriter.cpp +170 -0
  329. package/cpp/zxing-core/core/src/pdf417/PDFWriter.h +74 -0
  330. package/cpp/zxing-core/core/src/pdf417/ZXBigInteger.cpp +623 -0
  331. package/cpp/zxing-core/core/src/pdf417/ZXBigInteger.h +81 -0
  332. package/cpp/zxing-core/core/src/pdf417/ZXNullable.h +105 -0
  333. package/cpp/zxing-core/core/src/qrcode/QRBitMatrixParser.cpp +294 -0
  334. package/cpp/zxing-core/core/src/qrcode/QRBitMatrixParser.h +41 -0
  335. package/cpp/zxing-core/core/src/qrcode/QRCodecMode.cpp +95 -0
  336. package/cpp/zxing-core/core/src/qrcode/QRCodecMode.h +59 -0
  337. package/cpp/zxing-core/core/src/qrcode/QRDataBlock.cpp +93 -0
  338. package/cpp/zxing-core/core/src/qrcode/QRDataBlock.h +52 -0
  339. package/cpp/zxing-core/core/src/qrcode/QRDataMask.h +50 -0
  340. package/cpp/zxing-core/core/src/qrcode/QRDecoder.cpp +359 -0
  341. package/cpp/zxing-core/core/src/qrcode/QRDecoder.h +19 -0
  342. package/cpp/zxing-core/core/src/qrcode/QRDetector.cpp +920 -0
  343. package/cpp/zxing-core/core/src/qrcode/QRDetector.h +45 -0
  344. package/cpp/zxing-core/core/src/qrcode/QRECB.h +52 -0
  345. package/cpp/zxing-core/core/src/qrcode/QREncodeResult.h +33 -0
  346. package/cpp/zxing-core/core/src/qrcode/QREncoder.cpp +568 -0
  347. package/cpp/zxing-core/core/src/qrcode/QREncoder.h +21 -0
  348. package/cpp/zxing-core/core/src/qrcode/QRErrorCorrectionLevel.cpp +51 -0
  349. package/cpp/zxing-core/core/src/qrcode/QRErrorCorrectionLevel.h +39 -0
  350. package/cpp/zxing-core/core/src/qrcode/QRFormatInformation.cpp +160 -0
  351. package/cpp/zxing-core/core/src/qrcode/QRFormatInformation.h +61 -0
  352. package/cpp/zxing-core/core/src/qrcode/QRMaskUtil.cpp +156 -0
  353. package/cpp/zxing-core/core/src/qrcode/QRMaskUtil.h +15 -0
  354. package/cpp/zxing-core/core/src/qrcode/QRMatrixUtil.cpp +318 -0
  355. package/cpp/zxing-core/core/src/qrcode/QRMatrixUtil.h +25 -0
  356. package/cpp/zxing-core/core/src/qrcode/QRReader.cpp +149 -0
  357. package/cpp/zxing-core/core/src/qrcode/QRReader.h +21 -0
  358. package/cpp/zxing-core/core/src/qrcode/QRVersion.cpp +754 -0
  359. package/cpp/zxing-core/core/src/qrcode/QRVersion.h +127 -0
  360. package/cpp/zxing-core/core/src/qrcode/QRWriter.cpp +51 -0
  361. package/cpp/zxing-core/core/src/qrcode/QRWriter.h +74 -0
  362. package/cpp/zxing-core/core/version.rc.in +34 -0
  363. package/cpp/zxing-core/core/zxing.pc.in +8 -0
  364. package/cpp/zxing-core/wrappers/ios/README.md +25 -0
  365. package/cpp/zxing-core/wrappers/ios/Sources/Wrapper/Version.h +29 -0
  366. package/cpp/zxing-core/zxing-cpp.podspec +45 -0
  367. package/lib/factory.d.ts +10 -0
  368. package/lib/factory.js +12 -0
  369. package/lib/index.d.ts +9 -0
  370. package/lib/index.js +9 -0
  371. package/lib/specs/Barcode.nitro.d.ts +63 -0
  372. package/lib/specs/Barcode.nitro.js +1 -0
  373. package/lib/specs/BarcodeFormat.d.ts +11 -0
  374. package/lib/specs/BarcodeFormat.js +1 -0
  375. package/lib/specs/BarcodeScanner.nitro.d.ts +89 -0
  376. package/lib/specs/BarcodeScanner.nitro.js +1 -0
  377. package/lib/specs/BarcodeScannerFactory.nitro.d.ts +26 -0
  378. package/lib/specs/BarcodeScannerFactory.nitro.js +1 -0
  379. package/lib/specs/BarcodeValueType.d.ts +9 -0
  380. package/lib/specs/BarcodeValueType.js +1 -0
  381. package/lib/specs/Point.d.ts +14 -0
  382. package/lib/specs/Point.js +1 -0
  383. package/lib/specs/Rect.d.ts +22 -0
  384. package/lib/specs/Rect.js +1 -0
  385. package/lib/useBarcodeScanner.d.ts +23 -0
  386. package/lib/useBarcodeScanner.js +25 -0
  387. package/nitro.json +20 -0
  388. package/nitrogen/generated/.gitattributes +1 -0
  389. package/nitrogen/generated/android/VisionCameraZxing+autolinking.cmake +83 -0
  390. package/nitrogen/generated/android/VisionCameraZxing+autolinking.gradle +27 -0
  391. package/nitrogen/generated/android/VisionCameraZxingOnLoad.cpp +49 -0
  392. package/nitrogen/generated/android/VisionCameraZxingOnLoad.hpp +34 -0
  393. package/nitrogen/generated/android/kotlin/com/margelo/nitro/camera/zxing/VisionCameraZxingOnLoad.kt +35 -0
  394. package/nitrogen/generated/ios/VisionCameraZxing+autolinking.rb +62 -0
  395. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Bridge.cpp +17 -0
  396. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Bridge.hpp +27 -0
  397. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Umbrella.hpp +38 -0
  398. package/nitrogen/generated/ios/VisionCameraZxingAutolinking.mm +35 -0
  399. package/nitrogen/generated/ios/VisionCameraZxingAutolinking.swift +16 -0
  400. package/nitrogen/generated/shared/c++/BarcodeFormat.hpp +124 -0
  401. package/nitrogen/generated/shared/c++/BarcodeScannerOptions.hpp +85 -0
  402. package/nitrogen/generated/shared/c++/BarcodeValueType.hpp +120 -0
  403. package/nitrogen/generated/shared/c++/HybridBarcodeScannerSpec.cpp +23 -0
  404. package/nitrogen/generated/shared/c++/HybridBarcodeScannerSpec.hpp +74 -0
  405. package/nitrogen/generated/shared/c++/HybridBarcodeSpec.cpp +27 -0
  406. package/nitrogen/generated/shared/c++/HybridBarcodeSpec.hpp +82 -0
  407. package/nitrogen/generated/shared/c++/HybridZXingBarcodeScannerFactorySpec.cpp +21 -0
  408. package/nitrogen/generated/shared/c++/HybridZXingBarcodeScannerFactorySpec.hpp +67 -0
  409. package/nitrogen/generated/shared/c++/Point.hpp +87 -0
  410. package/nitrogen/generated/shared/c++/Rect.hpp +95 -0
  411. package/nitrogen/generated/shared/c++/TargetBarcodeFormat.hpp +124 -0
  412. package/package.json +108 -0
  413. package/react-native.config.js +16 -0
  414. package/src/factory.ts +26 -0
  415. package/src/index.ts +9 -0
  416. package/src/specs/Barcode.nitro.ts +70 -0
  417. package/src/specs/BarcodeFormat.ts +31 -0
  418. package/src/specs/BarcodeScanner.nitro.ts +91 -0
  419. package/src/specs/BarcodeScannerFactory.nitro.ts +27 -0
  420. package/src/specs/BarcodeValueType.ts +25 -0
  421. package/src/specs/Point.ts +14 -0
  422. package/src/specs/Rect.ts +22 -0
  423. package/src/useBarcodeScanner.ts +36 -0
@@ -0,0 +1,1112 @@
1
+ /* zueci_sb.h - Extended Channel Interpretations single-byte, generated by "tools/gen_zueci_sb_h.php" from
2
+ "https://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP437.TXT" and
3
+ "https://unicode.org/Public/MAPPINGS/ISO8859/8859-*.TXT" and
4
+ "https://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP125*.TXT" */
5
+ /*
6
+ libzueci - an open source UTF-8 ECI library adapted from libzint
7
+ Copyright (C) 2022 gitlost
8
+ */
9
+ /* SPDX-License-Identifier: BSD-3-Clause */
10
+
11
+ #ifndef ZUECI_SB_H
12
+ #define ZUECI_SB_H
13
+
14
+ /* Tables for ECIs 0 & 2 IBM CP437 */
15
+ static const zueci_u16 zueci_cp437_u_u[128] = { /* Unicode codepoints sorted */
16
+ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A5, 0x00AA, 0x00AB, 0x00AC,
17
+ 0x00B0, 0x00B1, 0x00B2, 0x00B5, 0x00B7, 0x00BA, 0x00BB, 0x00BC,
18
+ 0x00BD, 0x00BF, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C9, 0x00D1,
19
+ 0x00D6, 0x00DC, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E4, 0x00E5,
20
+ 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED,
21
+ 0x00EE, 0x00EF, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F6, 0x00F7,
22
+ 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FF, 0x0192, 0x0393, 0x0398,
23
+ 0x03A3, 0x03A6, 0x03A9, 0x03B1, 0x03B4, 0x03B5, 0x03C0, 0x03C3,
24
+ 0x03C4, 0x03C6, 0x207F, 0x20A7, 0x2219, 0x221A, 0x221E, 0x2229,
25
+ 0x2248, 0x2261, 0x2264, 0x2265, 0x2310, 0x2320, 0x2321, 0x2500,
26
+ 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, 0x252C,
27
+ 0x2534, 0x253C, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555,
28
+ 0x2556, 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D,
29
+ 0x255E, 0x255F, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565,
30
+ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x2580,
31
+ 0x2584, 0x2588, 0x258C, 0x2590, 0x2591, 0x2592, 0x2593, 0x25A0,
32
+ };
33
+ #ifndef ZUECI_EMBED_NO_TO_ECI
34
+ static const unsigned char zueci_cp437_u_sb[128] = { /* Single-byte in Unicode order */
35
+ 0xFF, 0xAD, 0x9B, 0x9C, 0x9D, 0xA6, 0xAE, 0xAA,
36
+ 0xF8, 0xF1, 0xFD, 0xE6, 0xFA, 0xA7, 0xAF, 0xAC,
37
+ 0xAB, 0xA8, 0x8E, 0x8F, 0x92, 0x80, 0x90, 0xA5,
38
+ 0x99, 0x9A, 0xE1, 0x85, 0xA0, 0x83, 0x84, 0x86,
39
+ 0x91, 0x87, 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1,
40
+ 0x8C, 0x8B, 0xA4, 0x95, 0xA2, 0x93, 0x94, 0xF6,
41
+ 0x97, 0xA3, 0x96, 0x81, 0x98, 0x9F, 0xE2, 0xE9,
42
+ 0xE4, 0xE8, 0xEA, 0xE0, 0xEB, 0xEE, 0xE3, 0xE5,
43
+ 0xE7, 0xED, 0xFC, 0x9E, 0xF9, 0xFB, 0xEC, 0xEF,
44
+ 0xF7, 0xF0, 0xF3, 0xF2, 0xA9, 0xF4, 0xF5, 0xC4,
45
+ 0xB3, 0xDA, 0xBF, 0xC0, 0xD9, 0xC3, 0xB4, 0xC2,
46
+ 0xC1, 0xC5, 0xCD, 0xBA, 0xD5, 0xD6, 0xC9, 0xB8,
47
+ 0xB7, 0xBB, 0xD4, 0xD3, 0xC8, 0xBE, 0xBD, 0xBC,
48
+ 0xC6, 0xC7, 0xCC, 0xB5, 0xB6, 0xB9, 0xD1, 0xD2,
49
+ 0xCB, 0xCF, 0xD0, 0xCA, 0xD8, 0xD7, 0xCE, 0xDF,
50
+ 0xDC, 0xDB, 0xDD, 0xDE, 0xB0, 0xB1, 0xB2, 0xFE,
51
+ };
52
+ #endif /* ZUECI_EMBED_NO_TO_ECI */
53
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
54
+ static const char zueci_cp437_sb_u[128] = { /* Single-byte sorted indexes into Unicode table */
55
+ 21, 51, 35, 29, 30, 27, 31, 33,
56
+ 36, 37, 34, 41, 40, 38, 18, 19,
57
+ 22, 32, 20, 45, 46, 43, 50, 48,
58
+ 52, 24, 25, 2, 3, 4, 67, 53,
59
+ 28, 39, 44, 49, 42, 23, 5, 13,
60
+ 17, 76, 7, 16, 15, 1, 6, 14,
61
+ 124, 125, 126, 80, 86, 107, 108, 96,
62
+ 95, 109, 91, 97, 103, 102, 101, 82,
63
+ 83, 88, 87, 85, 79, 89, 104, 105,
64
+ 100, 94, 115, 112, 106, 90, 118, 113,
65
+ 114, 110, 111, 99, 98, 92, 93, 117,
66
+ 116, 84, 81, 121, 120, 122, 123, 119,
67
+ 59, 26, 54, 62, 56, 63, 11, 64,
68
+ 57, 55, 58, 60, 70, 65, 61, 71,
69
+ 73, 9, 75, 74, 77, 78, 47, 72,
70
+ 8, 68, 12, 69, 66, 10, 127, 0,
71
+ };
72
+ #endif /* ZUECI_EMBED_NO_TO_UTF8 */
73
+
74
+ #ifndef ZUECI_EMBED_NO_TO_ECI
75
+ /* Forward reference to base Unicode to ISO/IEC 8859 routine - see "zueci.c" */
76
+ static int zueci_u_iso8859(const zueci_u32 u, const zueci_u16 *tab_s, const zueci_u16 *tab_u_u,
77
+ const unsigned char *tab_u_sb, int e, unsigned char *dest);
78
+ #endif
79
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
80
+ /* Forward reference to base ISO/IEC 8859 to Unicode routine - see "zueci.c" */
81
+ static int zueci_iso8859_u(const unsigned char c, const unsigned int flags, const zueci_u16 *tab_s,
82
+ const zueci_u16 *tab_u_u, const char *tab_sb_u, const int c2_max, zueci_u32 *p_u);
83
+ #endif
84
+
85
+ /* Tables for ECI 4 ISO/IEC 8859-2 */
86
+ static const zueci_u16 zueci_iso8859_2_s[6] = { /* Straight-thru bit-flags */
87
+ 0x2191, 0x0111, 0x6A96, 0xB4D8, 0x6A96, 0x34D8,
88
+ };
89
+ static const zueci_u16 zueci_iso8859_2_u_u[57] = { /* Unicode codepoints sorted */
90
+ 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x010C, 0x010D,
91
+ 0x010E, 0x010F, 0x0110, 0x0111, 0x0118, 0x0119, 0x011A, 0x011B,
92
+ 0x0139, 0x013A, 0x013D, 0x013E, 0x0141, 0x0142, 0x0143, 0x0144,
93
+ 0x0147, 0x0148, 0x0150, 0x0151, 0x0154, 0x0155, 0x0158, 0x0159,
94
+ 0x015A, 0x015B, 0x015E, 0x015F, 0x0160, 0x0161, 0x0162, 0x0163,
95
+ 0x0164, 0x0165, 0x016E, 0x016F, 0x0170, 0x0171, 0x0179, 0x017A,
96
+ 0x017B, 0x017C, 0x017D, 0x017E, 0x02C7, 0x02D8, 0x02D9, 0x02DB,
97
+ 0x02DD,
98
+ };
99
+ #ifndef ZUECI_EMBED_NO_TO_ECI
100
+ static const unsigned char zueci_iso8859_2_u_sb[57] = { /* Single-byte in Unicode order */
101
+ 0xC3, 0xE3, 0xA1, 0xB1, 0xC6, 0xE6, 0xC8, 0xE8,
102
+ 0xCF, 0xEF, 0xD0, 0xF0, 0xCA, 0xEA, 0xCC, 0xEC,
103
+ 0xC5, 0xE5, 0xA5, 0xB5, 0xA3, 0xB3, 0xD1, 0xF1,
104
+ 0xD2, 0xF2, 0xD5, 0xF5, 0xC0, 0xE0, 0xD8, 0xF8,
105
+ 0xA6, 0xB6, 0xAA, 0xBA, 0xA9, 0xB9, 0xDE, 0xFE,
106
+ 0xAB, 0xBB, 0xD9, 0xF9, 0xDB, 0xFB, 0xAC, 0xBC,
107
+ 0xAF, 0xBF, 0xAE, 0xBE, 0xB7, 0xA2, 0xFF, 0xB2,
108
+ 0xBD,
109
+ };
110
+ #endif
111
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
112
+ static const char zueci_iso8859_2_sb_u[96] = { /* Single-byte sorted indexes into Unicode table */
113
+ -1, 2, 53, 20, -1, 18, 32, -1,
114
+ -1, 36, 34, 40, 46, -1, 50, 48,
115
+ -1, 3, 55, 21, -1, 19, 33, 52,
116
+ -1, 37, 35, 41, 47, 56, 51, 49,
117
+ 28, -1, -1, 0, -1, 16, 4, -1,
118
+ 6, -1, 12, -1, 14, -1, -1, 8,
119
+ 10, 22, 24, -1, -1, 26, -1, -1,
120
+ 30, 42, -1, 44, -1, -1, 38, -1,
121
+ 29, -1, -1, 1, -1, 17, 5, -1,
122
+ 7, -1, 13, -1, 15, -1, -1, 9,
123
+ 11, 23, 25, -1, -1, 27, -1, -1,
124
+ 31, 43, -1, 45, -1, -1, 39, 54,
125
+ };
126
+ #endif
127
+
128
+ #ifndef ZUECI_EMBED_NO_TO_ECI
129
+ /* ECI 4 ISO/IEC 8859-2 Latin alphabet No. 2 (Latin-2) */
130
+ static int zueci_u_iso8859_2(const zueci_u32 u, unsigned char *dest) {
131
+ return zueci_u_iso8859(u, zueci_iso8859_2_s, zueci_iso8859_2_u_u, zueci_iso8859_2_u_sb,
132
+ ZUECI_ASIZE(zueci_iso8859_2_u_u) - 1, dest);
133
+ }
134
+ #endif
135
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
136
+ static int zueci_iso8859_2_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
137
+ zueci_u32 *p_u) {
138
+ (void)len;
139
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_2_s, zueci_iso8859_2_u_u, zueci_iso8859_2_sb_u,
140
+ ZUECI_ASIZE(zueci_iso8859_2_sb_u), p_u);
141
+ }
142
+ #endif
143
+
144
+ /* Tables for ECI 5 ISO/IEC 8859-3 */
145
+ static const zueci_u16 zueci_iso8859_3_s[6] = { /* Straight-thru bit-flags */
146
+ 0x2199, 0x21BD, 0xFF97, 0x9EDE, 0xFF97, 0x1EDE,
147
+ };
148
+ static const zueci_u16 zueci_iso8859_3_u_u[28] = { /* Unicode codepoints sorted */
149
+ 0x0108, 0x0109, 0x010A, 0x010B, 0x011C, 0x011D, 0x011E, 0x011F,
150
+ 0x0120, 0x0121, 0x0124, 0x0125, 0x0126, 0x0127, 0x0130, 0x0131,
151
+ 0x0134, 0x0135, 0x015C, 0x015D, 0x015E, 0x015F, 0x016C, 0x016D,
152
+ 0x017B, 0x017C, 0x02D8, 0x02D9,
153
+ };
154
+ #ifndef ZUECI_EMBED_NO_TO_ECI
155
+ static const unsigned char zueci_iso8859_3_u_sb[28] = { /* Single-byte in Unicode order */
156
+ 0xC6, 0xE6, 0xC5, 0xE5, 0xD8, 0xF8, 0xAB, 0xBB,
157
+ 0xD5, 0xF5, 0xA6, 0xB6, 0xA1, 0xB1, 0xA9, 0xB9,
158
+ 0xAC, 0xBC, 0xDE, 0xFE, 0xAA, 0xBA, 0xDD, 0xFD,
159
+ 0xAF, 0xBF, 0xA2, 0xFF,
160
+ };
161
+ #endif
162
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
163
+ static const char zueci_iso8859_3_sb_u[96] = { /* Single-byte sorted indexes into Unicode table */
164
+ -1, 12, 26, -1, -1, -1, 10, -1,
165
+ -1, 14, 20, 6, 16, -1, -1, 24,
166
+ -1, 13, -1, -1, -1, -1, 11, -1,
167
+ -1, 15, 21, 7, 17, -1, -1, 25,
168
+ -1, -1, -1, -1, -1, 2, 0, -1,
169
+ -1, -1, -1, -1, -1, -1, -1, -1,
170
+ -1, -1, -1, -1, -1, 8, -1, -1,
171
+ 4, -1, -1, -1, -1, 22, 18, -1,
172
+ -1, -1, -1, -1, -1, 3, 1, -1,
173
+ -1, -1, -1, -1, -1, -1, -1, -1,
174
+ -1, -1, -1, -1, -1, 9, -1, -1,
175
+ 5, -1, -1, -1, -1, 23, 19, 27,
176
+ };
177
+ #endif
178
+
179
+ #ifndef ZUECI_EMBED_NO_TO_ECI
180
+ /* ECI 5 ISO/IEC 8859-3 Latin alphabet No. 3 (Latin-3) (South European) */
181
+ static int zueci_u_iso8859_3(const zueci_u32 u, unsigned char *dest) {
182
+ return zueci_u_iso8859(u, zueci_iso8859_3_s, zueci_iso8859_3_u_u, zueci_iso8859_3_u_sb,
183
+ ZUECI_ASIZE(zueci_iso8859_3_u_u) - 1, dest);
184
+ }
185
+ #endif
186
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
187
+ static int zueci_iso8859_3_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
188
+ zueci_u32 *p_u) {
189
+ (void)len;
190
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_3_s, zueci_iso8859_3_u_u, zueci_iso8859_3_sb_u,
191
+ ZUECI_ASIZE(zueci_iso8859_3_sb_u), p_u);
192
+ }
193
+ #endif
194
+
195
+ /* Tables for ECI 6 ISO/IEC 8859-4 */
196
+ static const zueci_u16 zueci_iso8859_4_s[6] = { /* Straight-thru bit-flags */
197
+ 0xA191, 0x0111, 0x6A7E, 0x9DF0, 0x6A7E, 0x1DF0,
198
+ };
199
+ static const zueci_u16 zueci_iso8859_4_u_u[50] = { /* Unicode codepoints sorted */
200
+ 0x0100, 0x0101, 0x0104, 0x0105, 0x010C, 0x010D, 0x0110, 0x0111,
201
+ 0x0112, 0x0113, 0x0116, 0x0117, 0x0118, 0x0119, 0x0122, 0x0123,
202
+ 0x0128, 0x0129, 0x012A, 0x012B, 0x012E, 0x012F, 0x0136, 0x0137,
203
+ 0x0138, 0x013B, 0x013C, 0x0145, 0x0146, 0x014A, 0x014B, 0x014C,
204
+ 0x014D, 0x0156, 0x0157, 0x0160, 0x0161, 0x0166, 0x0167, 0x0168,
205
+ 0x0169, 0x016A, 0x016B, 0x0172, 0x0173, 0x017D, 0x017E, 0x02C7,
206
+ 0x02D9, 0x02DB,
207
+ };
208
+ #ifndef ZUECI_EMBED_NO_TO_ECI
209
+ static const unsigned char zueci_iso8859_4_u_sb[50] = { /* Single-byte in Unicode order */
210
+ 0xC0, 0xE0, 0xA1, 0xB1, 0xC8, 0xE8, 0xD0, 0xF0,
211
+ 0xAA, 0xBA, 0xCC, 0xEC, 0xCA, 0xEA, 0xAB, 0xBB,
212
+ 0xA5, 0xB5, 0xCF, 0xEF, 0xC7, 0xE7, 0xD3, 0xF3,
213
+ 0xA2, 0xA6, 0xB6, 0xD1, 0xF1, 0xBD, 0xBF, 0xD2,
214
+ 0xF2, 0xA3, 0xB3, 0xA9, 0xB9, 0xAC, 0xBC, 0xDD,
215
+ 0xFD, 0xDE, 0xFE, 0xD9, 0xF9, 0xAE, 0xBE, 0xB7,
216
+ 0xFF, 0xB2,
217
+ };
218
+ #endif
219
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
220
+ static const char zueci_iso8859_4_sb_u[96] = { /* Single-byte sorted indexes into Unicode table */
221
+ -1, 2, 24, 33, -1, 16, 25, -1,
222
+ -1, 35, 8, 14, 37, -1, 45, -1,
223
+ -1, 3, 49, 34, -1, 17, 26, 47,
224
+ -1, 36, 9, 15, 38, 29, 46, 30,
225
+ 0, -1, -1, -1, -1, -1, -1, 20,
226
+ 4, -1, 12, -1, 10, -1, -1, 18,
227
+ 6, 27, 31, 22, -1, -1, -1, -1,
228
+ -1, 43, -1, -1, -1, 39, 41, -1,
229
+ 1, -1, -1, -1, -1, -1, -1, 21,
230
+ 5, -1, 13, -1, 11, -1, -1, 19,
231
+ 7, 28, 32, 23, -1, -1, -1, -1,
232
+ -1, 44, -1, -1, -1, 40, 42, 48,
233
+ };
234
+ #endif
235
+
236
+ #ifndef ZUECI_EMBED_NO_TO_ECI
237
+ /* ECI 6 ISO/IEC 8859-4 Latin alphabet No. 4 (Latin-4) (North European) */
238
+ static int zueci_u_iso8859_4(const zueci_u32 u, unsigned char *dest) {
239
+ return zueci_u_iso8859(u, zueci_iso8859_4_s, zueci_iso8859_4_u_u, zueci_iso8859_4_u_sb,
240
+ ZUECI_ASIZE(zueci_iso8859_4_u_u) - 1, dest);
241
+ }
242
+ #endif
243
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
244
+ static int zueci_iso8859_4_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
245
+ zueci_u32 *p_u) {
246
+ (void)len;
247
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_4_s, zueci_iso8859_4_u_u, zueci_iso8859_4_sb_u,
248
+ ZUECI_ASIZE(zueci_iso8859_4_sb_u), p_u);
249
+ }
250
+ #endif
251
+
252
+ /* Tables for ECI 7 ISO/IEC 8859-5 */
253
+ static const zueci_u16 zueci_iso8859_5_s[6] = { /* Straight-thru bit-flags */
254
+ 0x2001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
255
+ };
256
+ static const zueci_u16 zueci_iso8859_5_u_u[94] = { /* Unicode codepoints sorted */
257
+ 0x00A7, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
258
+ 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040E, 0x040F, 0x0410,
259
+ 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418,
260
+ 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420,
261
+ 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428,
262
+ 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0430,
263
+ 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438,
264
+ 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440,
265
+ 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448,
266
+ 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x0451,
267
+ 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459,
268
+ 0x045A, 0x045B, 0x045C, 0x045E, 0x045F, 0x2116,
269
+ };
270
+ #ifndef ZUECI_EMBED_NO_TO_ECI
271
+ static const unsigned char zueci_iso8859_5_u_sb[94] = { /* Single-byte in Unicode order */
272
+ 0xFD, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
273
+ 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAE, 0xAF, 0xB0,
274
+ 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8,
275
+ 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0,
276
+ 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8,
277
+ 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
278
+ 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8,
279
+ 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0,
280
+ 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8,
281
+ 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF1,
282
+ 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9,
283
+ 0xFA, 0xFB, 0xFC, 0xFE, 0xFF, 0xF0,
284
+ };
285
+ #endif
286
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
287
+ static const char zueci_iso8859_5_sb_u[96] = { /* Single-byte sorted indexes into Unicode table */
288
+ -1, 1, 2, 3, 4, 5, 6, 7,
289
+ 8, 9, 10, 11, 12, -1, 13, 14,
290
+ 15, 16, 17, 18, 19, 20, 21, 22,
291
+ 23, 24, 25, 26, 27, 28, 29, 30,
292
+ 31, 32, 33, 34, 35, 36, 37, 38,
293
+ 39, 40, 41, 42, 43, 44, 45, 46,
294
+ 47, 48, 49, 50, 51, 52, 53, 54,
295
+ 55, 56, 57, 58, 59, 60, 61, 62,
296
+ 63, 64, 65, 66, 67, 68, 69, 70,
297
+ 71, 72, 73, 74, 75, 76, 77, 78,
298
+ 93, 79, 80, 81, 82, 83, 84, 85,
299
+ 86, 87, 88, 89, 90, 0, 91, 92,
300
+ };
301
+ #endif
302
+
303
+ #ifndef ZUECI_EMBED_NO_TO_ECI
304
+ /* ECI 7 ISO/IEC 8859-5 Latin/Cyrillic */
305
+ static int zueci_u_iso8859_5(const zueci_u32 u, unsigned char *dest) {
306
+ return zueci_u_iso8859(u, zueci_iso8859_5_s, zueci_iso8859_5_u_u, zueci_iso8859_5_u_sb,
307
+ ZUECI_ASIZE(zueci_iso8859_5_u_u) - 1, dest);
308
+ }
309
+ #endif
310
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
311
+ static int zueci_iso8859_5_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
312
+ zueci_u32 *p_u) {
313
+ (void)len;
314
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_5_s, zueci_iso8859_5_u_u, zueci_iso8859_5_sb_u,
315
+ ZUECI_ASIZE(zueci_iso8859_5_sb_u), p_u);
316
+ }
317
+ #endif
318
+
319
+ /* Tables for ECI 8 ISO/IEC 8859-6 */
320
+ static const zueci_u16 zueci_iso8859_6_s[6] = { /* Straight-thru bit-flags */
321
+ 0x2011, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
322
+ };
323
+ static const zueci_u16 zueci_iso8859_6_u_u[48] = { /* Unicode codepoints sorted */
324
+ 0x060C, 0x061B, 0x061F, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625,
325
+ 0x0626, 0x0627, 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D,
326
+ 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635,
327
+ 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642,
328
+ 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A,
329
+ 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x0651, 0x0652,
330
+ };
331
+ #ifndef ZUECI_EMBED_NO_TO_ECI
332
+ static const unsigned char zueci_iso8859_6_u_sb[48] = { /* Single-byte in Unicode order */
333
+ 0xAC, 0xBB, 0xBF, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5,
334
+ 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD,
335
+ 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
336
+ 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE0, 0xE1, 0xE2,
337
+ 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA,
338
+ 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2,
339
+ };
340
+ #endif
341
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
342
+ static const char zueci_iso8859_6_sb_u[83] = { /* Single-byte sorted indexes into Unicode table */
343
+ -1, -1, -1, -1, -1, -1, -1, -1,
344
+ -1, -1, -1, -1, 0, -1, -1, -1,
345
+ -1, -1, -1, -1, -1, -1, -1, -1,
346
+ -1, -1, -1, 1, -1, -1, -1, 2,
347
+ -1, 3, 4, 5, 6, 7, 8, 9,
348
+ 10, 11, 12, 13, 14, 15, 16, 17,
349
+ 18, 19, 20, 21, 22, 23, 24, 25,
350
+ 26, 27, 28, -1, -1, -1, -1, -1,
351
+ 29, 30, 31, 32, 33, 34, 35, 36,
352
+ 37, 38, 39, 40, 41, 42, 43, 44,
353
+ 45, 46, 47,
354
+ };
355
+ #endif
356
+
357
+ #ifndef ZUECI_EMBED_NO_TO_ECI
358
+ /* ECI 8 ISO/IEC 8859-6 Latin/Arabic */
359
+ static int zueci_u_iso8859_6(const zueci_u32 u, unsigned char *dest) {
360
+ return zueci_u_iso8859(u, zueci_iso8859_6_s, zueci_iso8859_6_u_u, zueci_iso8859_6_u_sb,
361
+ ZUECI_ASIZE(zueci_iso8859_6_u_u) - 1, dest);
362
+ }
363
+ #endif
364
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
365
+ static int zueci_iso8859_6_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
366
+ zueci_u32 *p_u) {
367
+ (void)len;
368
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_6_s, zueci_iso8859_6_u_u, zueci_iso8859_6_sb_u,
369
+ ZUECI_ASIZE(zueci_iso8859_6_sb_u), p_u);
370
+ }
371
+ #endif
372
+
373
+ /* Tables for ECI 9 ISO/IEC 8859-7 */
374
+ static const zueci_u16 zueci_iso8859_7_s[6] = { /* Straight-thru bit-flags */
375
+ 0x3BC9, 0x288F, 0x0000, 0x0000, 0x0000, 0x0000,
376
+ };
377
+ static const zueci_u16 zueci_iso8859_7_u_u[77] = { /* Unicode codepoints sorted */
378
+ 0x037A, 0x0384, 0x0385, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C,
379
+ 0x038E, 0x038F, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395,
380
+ 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D,
381
+ 0x039E, 0x039F, 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6,
382
+ 0x03A7, 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE,
383
+ 0x03AF, 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6,
384
+ 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE,
385
+ 0x03BF, 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6,
386
+ 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE,
387
+ 0x2015, 0x2018, 0x2019, 0x20AC, 0x20AF,
388
+ };
389
+ #ifndef ZUECI_EMBED_NO_TO_ECI
390
+ static const unsigned char zueci_iso8859_7_u_sb[77] = { /* Single-byte in Unicode order */
391
+ 0xAA, 0xB4, 0xB5, 0xB6, 0xB8, 0xB9, 0xBA, 0xBC,
392
+ 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5,
393
+ 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD,
394
+ 0xCE, 0xCF, 0xD0, 0xD1, 0xD3, 0xD4, 0xD5, 0xD6,
395
+ 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE,
396
+ 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
397
+ 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE,
398
+ 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6,
399
+ 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE,
400
+ 0xAF, 0xA1, 0xA2, 0xA4, 0xA5,
401
+ };
402
+ #endif
403
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
404
+ static const char zueci_iso8859_7_sb_u[95] = { /* Single-byte sorted indexes into Unicode table */
405
+ -1, 73, 74, -1, 75, 76, -1, -1,
406
+ -1, -1, 0, -1, -1, -1, -1, 72,
407
+ -1, -1, -1, -1, 1, 2, 3, -1,
408
+ 4, 5, 6, -1, 7, -1, 8, 9,
409
+ 10, 11, 12, 13, 14, 15, 16, 17,
410
+ 18, 19, 20, 21, 22, 23, 24, 25,
411
+ 26, 27, -1, 28, 29, 30, 31, 32,
412
+ 33, 34, 35, 36, 37, 38, 39, 40,
413
+ 41, 42, 43, 44, 45, 46, 47, 48,
414
+ 49, 50, 51, 52, 53, 54, 55, 56,
415
+ 57, 58, 59, 60, 61, 62, 63, 64,
416
+ 65, 66, 67, 68, 69, 70, 71,
417
+ };
418
+ #endif
419
+
420
+ #ifndef ZUECI_EMBED_NO_TO_ECI
421
+ /* ECI 9 ISO/IEC 8859-7 Latin/Greek */
422
+ static int zueci_u_iso8859_7(const zueci_u32 u, unsigned char *dest) {
423
+ return zueci_u_iso8859(u, zueci_iso8859_7_s, zueci_iso8859_7_u_u, zueci_iso8859_7_u_sb,
424
+ ZUECI_ASIZE(zueci_iso8859_7_u_u) - 1, dest);
425
+ }
426
+ #endif
427
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
428
+ static int zueci_iso8859_7_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
429
+ zueci_u32 *p_u) {
430
+ (void)len;
431
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_7_s, zueci_iso8859_7_u_u, zueci_iso8859_7_sb_u,
432
+ ZUECI_ASIZE(zueci_iso8859_7_sb_u), p_u);
433
+ }
434
+ #endif
435
+
436
+ /* Tables for ECI 10 ISO/IEC 8859-8 */
437
+ static const zueci_u16 zueci_iso8859_8_s[6] = { /* Straight-thru bit-flags */
438
+ 0xFBFD, 0x7BFF, 0x0000, 0x0000, 0x0000, 0x0000,
439
+ };
440
+ static const zueci_u16 zueci_iso8859_8_u_u[32] = { /* Unicode codepoints sorted */
441
+ 0x00D7, 0x00F7, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5,
442
+ 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD,
443
+ 0x05DE, 0x05DF, 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5,
444
+ 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x200E, 0x200F, 0x2017,
445
+ };
446
+ #ifndef ZUECI_EMBED_NO_TO_ECI
447
+ static const unsigned char zueci_iso8859_8_u_sb[32] = { /* Single-byte in Unicode order */
448
+ 0xAA, 0xBA, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5,
449
+ 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED,
450
+ 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5,
451
+ 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFD, 0xFE, 0xDF,
452
+ };
453
+ #endif
454
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
455
+ static const char zueci_iso8859_8_sb_u[95] = { /* Single-byte sorted indexes into Unicode table */
456
+ -1, -1, -1, -1, -1, -1, -1, -1,
457
+ -1, -1, 0, -1, -1, -1, -1, -1,
458
+ -1, -1, -1, -1, -1, -1, -1, -1,
459
+ -1, -1, 1, -1, -1, -1, -1, -1,
460
+ -1, -1, -1, -1, -1, -1, -1, -1,
461
+ -1, -1, -1, -1, -1, -1, -1, -1,
462
+ -1, -1, -1, -1, -1, -1, -1, -1,
463
+ -1, -1, -1, -1, -1, -1, -1, 31,
464
+ 2, 3, 4, 5, 6, 7, 8, 9,
465
+ 10, 11, 12, 13, 14, 15, 16, 17,
466
+ 18, 19, 20, 21, 22, 23, 24, 25,
467
+ 26, 27, 28, -1, -1, 29, 30,
468
+ };
469
+ #endif
470
+
471
+ #ifndef ZUECI_EMBED_NO_TO_ECI
472
+ /* ECI 10 ISO/IEC 8859-8 Latin/Hebrew */
473
+ static int zueci_u_iso8859_8(const zueci_u32 u, unsigned char *dest) {
474
+ return zueci_u_iso8859(u, zueci_iso8859_8_s, zueci_iso8859_8_u_u, zueci_iso8859_8_u_sb,
475
+ ZUECI_ASIZE(zueci_iso8859_8_u_u) - 1, dest);
476
+ }
477
+ #endif
478
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
479
+ static int zueci_iso8859_8_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
480
+ zueci_u32 *p_u) {
481
+ (void)len;
482
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_8_s, zueci_iso8859_8_u_u, zueci_iso8859_8_sb_u,
483
+ ZUECI_ASIZE(zueci_iso8859_8_sb_u), p_u);
484
+ }
485
+ #endif
486
+
487
+ /* Tables for ECI 11 ISO/IEC 8859-9 */
488
+ static const zueci_u16 zueci_iso8859_9_s[6] = { /* Straight-thru bit-flags */
489
+ 0xFFFF, 0xFFFF, 0xFFFF, 0x9FFE, 0xFFFF, 0x9FFE,
490
+ };
491
+ static const zueci_u16 zueci_iso8859_9_u_u[6] = { /* Unicode codepoints sorted */
492
+ 0x011E, 0x011F, 0x0130, 0x0131, 0x015E, 0x015F,
493
+ };
494
+ #ifndef ZUECI_EMBED_NO_TO_ECI
495
+ static const unsigned char zueci_iso8859_9_u_sb[6] = { /* Single-byte in Unicode order */
496
+ 0xD0, 0xF0, 0xDD, 0xFD, 0xDE, 0xFE,
497
+ };
498
+ #endif
499
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
500
+ static const char zueci_iso8859_9_sb_u[95] = { /* Single-byte sorted indexes into Unicode table */
501
+ -1, -1, -1, -1, -1, -1, -1, -1,
502
+ -1, -1, -1, -1, -1, -1, -1, -1,
503
+ -1, -1, -1, -1, -1, -1, -1, -1,
504
+ -1, -1, -1, -1, -1, -1, -1, -1,
505
+ -1, -1, -1, -1, -1, -1, -1, -1,
506
+ -1, -1, -1, -1, -1, -1, -1, -1,
507
+ 0, -1, -1, -1, -1, -1, -1, -1,
508
+ -1, -1, -1, -1, -1, 2, 4, -1,
509
+ -1, -1, -1, -1, -1, -1, -1, -1,
510
+ -1, -1, -1, -1, -1, -1, -1, -1,
511
+ 1, -1, -1, -1, -1, -1, -1, -1,
512
+ -1, -1, -1, -1, -1, 3, 5,
513
+ };
514
+ #endif
515
+
516
+ #ifndef ZUECI_EMBED_NO_TO_ECI
517
+ /* ECI 11 ISO/IEC 8859-9 Latin alphabet No. 5 (Latin-5) (Latin/Turkish) */
518
+ static int zueci_u_iso8859_9(const zueci_u32 u, unsigned char *dest) {
519
+ return zueci_u_iso8859(u, zueci_iso8859_9_s, zueci_iso8859_9_u_u, zueci_iso8859_9_u_sb,
520
+ ZUECI_ASIZE(zueci_iso8859_9_u_u) - 1, dest);
521
+ }
522
+ #endif
523
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
524
+ static int zueci_iso8859_9_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
525
+ zueci_u32 *p_u) {
526
+ (void)len;
527
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_9_s, zueci_iso8859_9_u_u, zueci_iso8859_9_sb_u,
528
+ ZUECI_ASIZE(zueci_iso8859_9_sb_u), p_u);
529
+ }
530
+ #endif
531
+
532
+ /* Tables for ECI 12 ISO/IEC 8859-10 */
533
+ static const zueci_u16 zueci_iso8859_10_s[6] = { /* Straight-thru bit-flags */
534
+ 0x2081, 0x0081, 0xEA7E, 0xFD79, 0xEA7E, 0x7D79,
535
+ };
536
+ static const zueci_u16 zueci_iso8859_10_u_u[46] = { /* Unicode codepoints sorted */
537
+ 0x0100, 0x0101, 0x0104, 0x0105, 0x010C, 0x010D, 0x0110, 0x0111,
538
+ 0x0112, 0x0113, 0x0116, 0x0117, 0x0118, 0x0119, 0x0122, 0x0123,
539
+ 0x0128, 0x0129, 0x012A, 0x012B, 0x012E, 0x012F, 0x0136, 0x0137,
540
+ 0x0138, 0x013B, 0x013C, 0x0145, 0x0146, 0x014A, 0x014B, 0x014C,
541
+ 0x014D, 0x0160, 0x0161, 0x0166, 0x0167, 0x0168, 0x0169, 0x016A,
542
+ 0x016B, 0x0172, 0x0173, 0x017D, 0x017E, 0x2015,
543
+ };
544
+ #ifndef ZUECI_EMBED_NO_TO_ECI
545
+ static const unsigned char zueci_iso8859_10_u_sb[46] = { /* Single-byte in Unicode order */
546
+ 0xC0, 0xE0, 0xA1, 0xB1, 0xC8, 0xE8, 0xA9, 0xB9,
547
+ 0xA2, 0xB2, 0xCC, 0xEC, 0xCA, 0xEA, 0xA3, 0xB3,
548
+ 0xA5, 0xB5, 0xA4, 0xB4, 0xC7, 0xE7, 0xA6, 0xB6,
549
+ 0xFF, 0xA8, 0xB8, 0xD1, 0xF1, 0xAF, 0xBF, 0xD2,
550
+ 0xF2, 0xAA, 0xBA, 0xAB, 0xBB, 0xD7, 0xF7, 0xAE,
551
+ 0xBE, 0xD9, 0xF9, 0xAC, 0xBC, 0xBD,
552
+ };
553
+ #endif
554
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
555
+ static const char zueci_iso8859_10_sb_u[96] = { /* Single-byte sorted indexes into Unicode table */
556
+ -1, 2, 8, 14, 18, 16, 22, -1,
557
+ 25, 6, 33, 35, 43, -1, 39, 29,
558
+ -1, 3, 9, 15, 19, 17, 23, -1,
559
+ 26, 7, 34, 36, 44, 45, 40, 30,
560
+ 0, -1, -1, -1, -1, -1, -1, 20,
561
+ 4, -1, 12, -1, 10, -1, -1, -1,
562
+ -1, 27, 31, -1, -1, -1, -1, 37,
563
+ -1, 41, -1, -1, -1, -1, -1, -1,
564
+ 1, -1, -1, -1, -1, -1, -1, 21,
565
+ 5, -1, 13, -1, 11, -1, -1, -1,
566
+ -1, 28, 32, -1, -1, -1, -1, 38,
567
+ -1, 42, -1, -1, -1, -1, -1, 24,
568
+ };
569
+ #endif
570
+
571
+ #ifndef ZUECI_EMBED_NO_TO_ECI
572
+ /* ECI 12 ISO/IEC 8859-10 Latin alphabet No. 6 (Latin-6) (Nordic) */
573
+ static int zueci_u_iso8859_10(const zueci_u32 u, unsigned char *dest) {
574
+ return zueci_u_iso8859(u, zueci_iso8859_10_s, zueci_iso8859_10_u_u, zueci_iso8859_10_u_sb,
575
+ ZUECI_ASIZE(zueci_iso8859_10_u_u) - 1, dest);
576
+ }
577
+ #endif
578
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
579
+ static int zueci_iso8859_10_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
580
+ zueci_u32 *p_u) {
581
+ (void)len;
582
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_10_s, zueci_iso8859_10_u_u, zueci_iso8859_10_sb_u,
583
+ ZUECI_ASIZE(zueci_iso8859_10_sb_u), p_u);
584
+ }
585
+ #endif
586
+
587
+ /* Tables for ECI 13 ISO/IEC 8859-11 */
588
+ static const zueci_u16 zueci_iso8859_11_s[6] = { /* Straight-thru bit-flags */
589
+ 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
590
+ };
591
+ static const zueci_u16 zueci_iso8859_11_u_u[87] = { /* Unicode codepoints sorted */
592
+ 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, 0x0E08,
593
+ 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, 0x0E10,
594
+ 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, 0x0E18,
595
+ 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, 0x0E20,
596
+ 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, 0x0E28,
597
+ 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, 0x0E30,
598
+ 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, 0x0E38,
599
+ 0x0E39, 0x0E3A, 0x0E3F, 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44,
600
+ 0x0E45, 0x0E46, 0x0E47, 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C,
601
+ 0x0E4D, 0x0E4E, 0x0E4F, 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54,
602
+ 0x0E55, 0x0E56, 0x0E57, 0x0E58, 0x0E59, 0x0E5A, 0x0E5B,
603
+ };
604
+ #ifndef ZUECI_EMBED_NO_TO_ECI
605
+ static const unsigned char zueci_iso8859_11_u_sb[87] = { /* Single-byte in Unicode order */
606
+ 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8,
607
+ 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0,
608
+ 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8,
609
+ 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0,
610
+ 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8,
611
+ 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
612
+ 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8,
613
+ 0xD9, 0xDA, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
614
+ 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC,
615
+ 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4,
616
+ 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB,
617
+ };
618
+ #endif
619
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
620
+ static const char zueci_iso8859_11_sb_u[92] = { /* Single-byte sorted indexes into Unicode table */
621
+ -1, 0, 1, 2, 3, 4, 5, 6,
622
+ 7, 8, 9, 10, 11, 12, 13, 14,
623
+ 15, 16, 17, 18, 19, 20, 21, 22,
624
+ 23, 24, 25, 26, 27, 28, 29, 30,
625
+ 31, 32, 33, 34, 35, 36, 37, 38,
626
+ 39, 40, 41, 42, 43, 44, 45, 46,
627
+ 47, 48, 49, 50, 51, 52, 53, 54,
628
+ 55, 56, 57, -1, -1, -1, -1, 58,
629
+ 59, 60, 61, 62, 63, 64, 65, 66,
630
+ 67, 68, 69, 70, 71, 72, 73, 74,
631
+ 75, 76, 77, 78, 79, 80, 81, 82,
632
+ 83, 84, 85, 86,
633
+ };
634
+ #endif
635
+
636
+ #ifndef ZUECI_EMBED_NO_TO_ECI
637
+ /* ECI 13 ISO/IEC 8859-11 Latin/Thai */
638
+ static int zueci_u_iso8859_11(const zueci_u32 u, unsigned char *dest) {
639
+ return zueci_u_iso8859(u, zueci_iso8859_11_s, zueci_iso8859_11_u_u, zueci_iso8859_11_u_sb,
640
+ ZUECI_ASIZE(zueci_iso8859_11_u_u) - 1, dest);
641
+ }
642
+ #endif
643
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
644
+ static int zueci_iso8859_11_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
645
+ zueci_u32 *p_u) {
646
+ (void)len;
647
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_11_s, zueci_iso8859_11_u_u, zueci_iso8859_11_sb_u,
648
+ ZUECI_ASIZE(zueci_iso8859_11_sb_u), p_u);
649
+ }
650
+ #endif
651
+
652
+ /* Tables for ECI 15 ISO/IEC 8859-13 */
653
+ static const zueci_u16 zueci_iso8859_13_s[6] = { /* Straight-thru bit-flags */
654
+ 0x7ADD, 0x7AEF, 0x0230, 0x90E8, 0x0230, 0x10E8,
655
+ };
656
+ static const zueci_u16 zueci_iso8859_13_u_u[56] = { /* Unicode codepoints sorted */
657
+ 0x00C6, 0x00D8, 0x00E6, 0x00F8, 0x0100, 0x0101, 0x0104, 0x0105,
658
+ 0x0106, 0x0107, 0x010C, 0x010D, 0x0112, 0x0113, 0x0116, 0x0117,
659
+ 0x0118, 0x0119, 0x0122, 0x0123, 0x012A, 0x012B, 0x012E, 0x012F,
660
+ 0x0136, 0x0137, 0x013B, 0x013C, 0x0141, 0x0142, 0x0143, 0x0144,
661
+ 0x0145, 0x0146, 0x014C, 0x014D, 0x0156, 0x0157, 0x015A, 0x015B,
662
+ 0x0160, 0x0161, 0x016A, 0x016B, 0x0172, 0x0173, 0x0179, 0x017A,
663
+ 0x017B, 0x017C, 0x017D, 0x017E, 0x2019, 0x201C, 0x201D, 0x201E,
664
+ };
665
+ #ifndef ZUECI_EMBED_NO_TO_ECI
666
+ static const unsigned char zueci_iso8859_13_u_sb[56] = { /* Single-byte in Unicode order */
667
+ 0xAF, 0xA8, 0xBF, 0xB8, 0xC2, 0xE2, 0xC0, 0xE0,
668
+ 0xC3, 0xE3, 0xC8, 0xE8, 0xC7, 0xE7, 0xCB, 0xEB,
669
+ 0xC6, 0xE6, 0xCC, 0xEC, 0xCE, 0xEE, 0xC1, 0xE1,
670
+ 0xCD, 0xED, 0xCF, 0xEF, 0xD9, 0xF9, 0xD1, 0xF1,
671
+ 0xD2, 0xF2, 0xD4, 0xF4, 0xAA, 0xBA, 0xDA, 0xFA,
672
+ 0xD0, 0xF0, 0xDB, 0xFB, 0xD8, 0xF8, 0xCA, 0xEA,
673
+ 0xDD, 0xFD, 0xDE, 0xFE, 0xFF, 0xB4, 0xA1, 0xA5,
674
+ };
675
+ #endif
676
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
677
+ static const char zueci_iso8859_13_sb_u[96] = { /* Single-byte sorted indexes into Unicode table */
678
+ -1, 54, -1, -1, -1, 55, -1, -1,
679
+ 1, -1, 36, -1, -1, -1, -1, 0,
680
+ -1, -1, -1, -1, 53, -1, -1, -1,
681
+ 3, -1, 37, -1, -1, -1, -1, 2,
682
+ 6, 22, 4, 8, -1, -1, 16, 12,
683
+ 10, -1, 46, 14, 18, 24, 20, 26,
684
+ 40, 30, 32, -1, 34, -1, -1, -1,
685
+ 44, 28, 38, 42, -1, 48, 50, -1,
686
+ 7, 23, 5, 9, -1, -1, 17, 13,
687
+ 11, -1, 47, 15, 19, 25, 21, 27,
688
+ 41, 31, 33, -1, 35, -1, -1, -1,
689
+ 45, 29, 39, 43, -1, 49, 51, 52,
690
+ };
691
+ #endif
692
+
693
+ #ifndef ZUECI_EMBED_NO_TO_ECI
694
+ /* ECI 15 ISO/IEC 8859-13 Latin alphabet No. 7 (Latin-7) (Baltic Rim) */
695
+ static int zueci_u_iso8859_13(const zueci_u32 u, unsigned char *dest) {
696
+ return zueci_u_iso8859(u, zueci_iso8859_13_s, zueci_iso8859_13_u_u, zueci_iso8859_13_u_sb,
697
+ ZUECI_ASIZE(zueci_iso8859_13_u_u) - 1, dest);
698
+ }
699
+ #endif
700
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
701
+ static int zueci_iso8859_13_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
702
+ zueci_u32 *p_u) {
703
+ (void)len;
704
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_13_s, zueci_iso8859_13_u_u, zueci_iso8859_13_sb_u,
705
+ ZUECI_ASIZE(zueci_iso8859_13_sb_u), p_u);
706
+ }
707
+ #endif
708
+
709
+ /* Tables for ECI 16 ISO/IEC 8859-14 */
710
+ static const zueci_u16 zueci_iso8859_14_s[6] = { /* Straight-thru bit-flags */
711
+ 0x6289, 0x0040, 0xFFFF, 0xBF7E, 0xFFFF, 0xBF7E,
712
+ };
713
+ static const zueci_u16 zueci_iso8859_14_u_u[31] = { /* Unicode codepoints sorted */
714
+ 0x010A, 0x010B, 0x0120, 0x0121, 0x0174, 0x0175, 0x0176, 0x0177,
715
+ 0x0178, 0x1E02, 0x1E03, 0x1E0A, 0x1E0B, 0x1E1E, 0x1E1F, 0x1E40,
716
+ 0x1E41, 0x1E56, 0x1E57, 0x1E60, 0x1E61, 0x1E6A, 0x1E6B, 0x1E80,
717
+ 0x1E81, 0x1E82, 0x1E83, 0x1E84, 0x1E85, 0x1EF2, 0x1EF3,
718
+ };
719
+ #ifndef ZUECI_EMBED_NO_TO_ECI
720
+ static const unsigned char zueci_iso8859_14_u_sb[31] = { /* Single-byte in Unicode order */
721
+ 0xA4, 0xA5, 0xB2, 0xB3, 0xD0, 0xF0, 0xDE, 0xFE,
722
+ 0xAF, 0xA1, 0xA2, 0xA6, 0xAB, 0xB0, 0xB1, 0xB4,
723
+ 0xB5, 0xB7, 0xB9, 0xBB, 0xBF, 0xD7, 0xF7, 0xA8,
724
+ 0xB8, 0xAA, 0xBA, 0xBD, 0xBE, 0xAC, 0xBC,
725
+ };
726
+ #endif
727
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
728
+ static const char zueci_iso8859_14_sb_u[95] = { /* Single-byte sorted indexes into Unicode table */
729
+ -1, 9, 10, -1, 0, 1, 11, -1,
730
+ 23, -1, 25, 12, 29, -1, -1, 8,
731
+ 13, 14, 2, 3, 15, 16, -1, 17,
732
+ 24, 18, 26, 19, 30, 27, 28, 20,
733
+ -1, -1, -1, -1, -1, -1, -1, -1,
734
+ -1, -1, -1, -1, -1, -1, -1, -1,
735
+ 4, -1, -1, -1, -1, -1, -1, 21,
736
+ -1, -1, -1, -1, -1, -1, 6, -1,
737
+ -1, -1, -1, -1, -1, -1, -1, -1,
738
+ -1, -1, -1, -1, -1, -1, -1, -1,
739
+ 5, -1, -1, -1, -1, -1, -1, 22,
740
+ -1, -1, -1, -1, -1, -1, 7,
741
+ };
742
+ #endif
743
+
744
+ #ifndef ZUECI_EMBED_NO_TO_ECI
745
+ /* ECI 16 ISO/IEC 8859-14 Latin alphabet No. 8 (Latin-8) (Celtic) */
746
+ static int zueci_u_iso8859_14(const zueci_u32 u, unsigned char *dest) {
747
+ return zueci_u_iso8859(u, zueci_iso8859_14_s, zueci_iso8859_14_u_u, zueci_iso8859_14_u_sb,
748
+ ZUECI_ASIZE(zueci_iso8859_14_u_u) - 1, dest);
749
+ }
750
+ #endif
751
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
752
+ static int zueci_iso8859_14_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
753
+ zueci_u32 *p_u) {
754
+ (void)len;
755
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_14_s, zueci_iso8859_14_u_u, zueci_iso8859_14_sb_u,
756
+ ZUECI_ASIZE(zueci_iso8859_14_sb_u), p_u);
757
+ }
758
+ #endif
759
+
760
+ /* Tables for ECI 17 ISO/IEC 8859-15 */
761
+ static const zueci_u16 zueci_iso8859_15_s[6] = { /* Straight-thru bit-flags */
762
+ 0xFEAF, 0x8EEF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
763
+ };
764
+ static const zueci_u16 zueci_iso8859_15_u_u[8] = { /* Unicode codepoints sorted */
765
+ 0x0152, 0x0153, 0x0160, 0x0161, 0x0178, 0x017D, 0x017E, 0x20AC,
766
+ };
767
+ #ifndef ZUECI_EMBED_NO_TO_ECI
768
+ static const unsigned char zueci_iso8859_15_u_sb[8] = { /* Single-byte in Unicode order */
769
+ 0xBC, 0xBD, 0xA6, 0xA8, 0xBE, 0xB4, 0xB8, 0xA4,
770
+ };
771
+ #endif
772
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
773
+ static const char zueci_iso8859_15_sb_u[31] = { /* Single-byte sorted indexes into Unicode table */
774
+ -1, -1, -1, -1, 7, -1, 2, -1,
775
+ 3, -1, -1, -1, -1, -1, -1, -1,
776
+ -1, -1, -1, -1, 5, -1, -1, -1,
777
+ 6, -1, -1, -1, 0, 1, 4,
778
+ };
779
+ #endif
780
+
781
+ #ifndef ZUECI_EMBED_NO_TO_ECI
782
+ /* ECI 17 ISO/IEC 8859-15 Latin alphabet No. 9 (Latin-9) */
783
+ static int zueci_u_iso8859_15(const zueci_u32 u, unsigned char *dest) {
784
+ return zueci_u_iso8859(u, zueci_iso8859_15_s, zueci_iso8859_15_u_u, zueci_iso8859_15_u_sb,
785
+ ZUECI_ASIZE(zueci_iso8859_15_u_u) - 1, dest);
786
+ }
787
+ #endif
788
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
789
+ static int zueci_iso8859_15_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
790
+ zueci_u32 *p_u) {
791
+ (void)len;
792
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_15_s, zueci_iso8859_15_u_u, zueci_iso8859_15_sb_u,
793
+ ZUECI_ASIZE(zueci_iso8859_15_sb_u), p_u);
794
+ }
795
+ #endif
796
+
797
+ /* Tables for ECI 18 ISO/IEC 8859-16 */
798
+ static const zueci_u16 zueci_iso8859_16_s[6] = { /* Straight-thru bit-flags */
799
+ 0x2A81, 0x08C3, 0xFFD7, 0x9E5C, 0xFFD7, 0x9E5C,
800
+ };
801
+ static const zueci_u16 zueci_iso8859_16_u_u[40] = { /* Unicode codepoints sorted */
802
+ 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x010C, 0x010D,
803
+ 0x0110, 0x0111, 0x0118, 0x0119, 0x0141, 0x0142, 0x0143, 0x0144,
804
+ 0x0150, 0x0151, 0x0152, 0x0153, 0x015A, 0x015B, 0x0160, 0x0161,
805
+ 0x0170, 0x0171, 0x0178, 0x0179, 0x017A, 0x017B, 0x017C, 0x017D,
806
+ 0x017E, 0x0218, 0x0219, 0x021A, 0x021B, 0x201D, 0x201E, 0x20AC,
807
+ };
808
+ #ifndef ZUECI_EMBED_NO_TO_ECI
809
+ static const unsigned char zueci_iso8859_16_u_sb[40] = { /* Single-byte in Unicode order */
810
+ 0xC3, 0xE3, 0xA1, 0xA2, 0xC5, 0xE5, 0xB2, 0xB9,
811
+ 0xD0, 0xF0, 0xDD, 0xFD, 0xA3, 0xB3, 0xD1, 0xF1,
812
+ 0xD5, 0xF5, 0xBC, 0xBD, 0xD7, 0xF7, 0xA6, 0xA8,
813
+ 0xD8, 0xF8, 0xBE, 0xAC, 0xAE, 0xAF, 0xBF, 0xB4,
814
+ 0xB8, 0xAA, 0xBA, 0xDE, 0xFE, 0xB5, 0xA5, 0xA4,
815
+ };
816
+ #endif
817
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
818
+ static const char zueci_iso8859_16_sb_u[95] = { /* Single-byte sorted indexes into Unicode table */
819
+ -1, 2, 3, 12, 39, 38, 22, -1,
820
+ 23, -1, 33, -1, 27, -1, 28, 29,
821
+ -1, -1, 6, 13, 31, 37, -1, -1,
822
+ 32, 7, 34, -1, 18, 19, 26, 30,
823
+ -1, -1, -1, 0, -1, 4, -1, -1,
824
+ -1, -1, -1, -1, -1, -1, -1, -1,
825
+ 8, 14, -1, -1, -1, 16, -1, 20,
826
+ 24, -1, -1, -1, -1, 10, 35, -1,
827
+ -1, -1, -1, 1, -1, 5, -1, -1,
828
+ -1, -1, -1, -1, -1, -1, -1, -1,
829
+ 9, 15, -1, -1, -1, 17, -1, 21,
830
+ 25, -1, -1, -1, -1, 11, 36,
831
+ };
832
+ #endif
833
+
834
+ #ifndef ZUECI_EMBED_NO_TO_ECI
835
+ /* ECI 18 ISO/IEC 8859-16 Latin alphabet No. 10 (Latin-10) (South-Eastern European) */
836
+ static int zueci_u_iso8859_16(const zueci_u32 u, unsigned char *dest) {
837
+ return zueci_u_iso8859(u, zueci_iso8859_16_s, zueci_iso8859_16_u_u, zueci_iso8859_16_u_sb,
838
+ ZUECI_ASIZE(zueci_iso8859_16_u_u) - 1, dest);
839
+ }
840
+ #endif
841
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
842
+ static int zueci_iso8859_16_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags,
843
+ zueci_u32 *p_u) {
844
+ (void)len;
845
+ return zueci_iso8859_u(*src, flags, zueci_iso8859_16_s, zueci_iso8859_16_u_u, zueci_iso8859_16_sb_u,
846
+ ZUECI_ASIZE(zueci_iso8859_16_sb_u), p_u);
847
+ }
848
+ #endif
849
+
850
+ #ifndef ZUECI_EMBED_NO_TO_ECI
851
+ /* Forward reference to base Unicode to Windows-125x routine - see "zueci.c" */
852
+ static int zueci_u_cp125x(const zueci_u32 u, const zueci_u16 *tab_s, const zueci_u16 *tab_u_u,
853
+ const unsigned char *tab_u_sb, int e, unsigned char *dest);
854
+ #endif
855
+
856
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
857
+ /* Forward reference to base Windows-125x to Unicode routine - see "zueci.c" */
858
+ static int zueci_cp125x_u(const unsigned char c, const unsigned int flags, const zueci_u16 *tab_s,
859
+ const zueci_u16 *tab_u_u, const char *tab_sb_u, const int c_max, zueci_u32 *p_u);
860
+ #endif
861
+
862
+ /* Tables for ECI 21 Windows 1250 */
863
+ static const zueci_u16 zueci_cp1250_s[6] = { /* Straight-thru bit-flags */
864
+ 0x7BD1, 0x09F3, 0x6A96, 0xB4D8, 0x6A96, 0x34D8,
865
+ };
866
+ static const zueci_u16 zueci_cp1250_u_u[74] = { /* Unicode codepoints sorted */
867
+ 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x010C, 0x010D,
868
+ 0x010E, 0x010F, 0x0110, 0x0111, 0x0118, 0x0119, 0x011A, 0x011B,
869
+ 0x0139, 0x013A, 0x013D, 0x013E, 0x0141, 0x0142, 0x0143, 0x0144,
870
+ 0x0147, 0x0148, 0x0150, 0x0151, 0x0154, 0x0155, 0x0158, 0x0159,
871
+ 0x015A, 0x015B, 0x015E, 0x015F, 0x0160, 0x0161, 0x0162, 0x0163,
872
+ 0x0164, 0x0165, 0x016E, 0x016F, 0x0170, 0x0171, 0x0179, 0x017A,
873
+ 0x017B, 0x017C, 0x017D, 0x017E, 0x02C7, 0x02D8, 0x02D9, 0x02DB,
874
+ 0x02DD, 0x2013, 0x2014, 0x2018, 0x2019, 0x201A, 0x201C, 0x201D,
875
+ 0x201E, 0x2020, 0x2021, 0x2022, 0x2026, 0x2030, 0x2039, 0x203A,
876
+ 0x20AC, 0x2122,
877
+ };
878
+ #ifndef ZUECI_EMBED_NO_TO_ECI
879
+ static const unsigned char zueci_cp1250_u_sb[74] = { /* Single-byte in Unicode order */
880
+ 0xC3, 0xE3, 0xA5, 0xB9, 0xC6, 0xE6, 0xC8, 0xE8,
881
+ 0xCF, 0xEF, 0xD0, 0xF0, 0xCA, 0xEA, 0xCC, 0xEC,
882
+ 0xC5, 0xE5, 0xBC, 0xBE, 0xA3, 0xB3, 0xD1, 0xF1,
883
+ 0xD2, 0xF2, 0xD5, 0xF5, 0xC0, 0xE0, 0xD8, 0xF8,
884
+ 0x8C, 0x9C, 0xAA, 0xBA, 0x8A, 0x9A, 0xDE, 0xFE,
885
+ 0x8D, 0x9D, 0xD9, 0xF9, 0xDB, 0xFB, 0x8F, 0x9F,
886
+ 0xAF, 0xBF, 0x8E, 0x9E, 0xA1, 0xA2, 0xFF, 0xB2,
887
+ 0xBD, 0x96, 0x97, 0x91, 0x92, 0x82, 0x93, 0x94,
888
+ 0x84, 0x86, 0x87, 0x95, 0x85, 0x89, 0x8B, 0x9B,
889
+ 0x80, 0x99,
890
+ };
891
+ #endif /* ZUECI_EMBED_NO_TO_ECI */
892
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
893
+ static const char zueci_cp1250_sb_u[128] = { /* Single-byte sorted indexes into Unicode table */
894
+ 72, -1, 61, -1, 64, 68, 65, 66,
895
+ -1, 69, 36, 70, 32, 40, 50, 46,
896
+ -1, 59, 60, 62, 63, 67, 57, 58,
897
+ -1, 73, 37, 71, 33, 41, 51, 47,
898
+ -1, 52, 53, 20, -1, 2, -1, -1,
899
+ -1, -1, 34, -1, -1, -1, -1, 48,
900
+ -1, -1, 55, 21, -1, -1, -1, -1,
901
+ -1, 3, 35, -1, 18, 56, 19, 49,
902
+ 28, -1, -1, 0, -1, 16, 4, -1,
903
+ 6, -1, 12, -1, 14, -1, -1, 8,
904
+ 10, 22, 24, -1, -1, 26, -1, -1,
905
+ 30, 42, -1, 44, -1, -1, 38, -1,
906
+ 29, -1, -1, 1, -1, 17, 5, -1,
907
+ 7, -1, 13, -1, 15, -1, -1, 9,
908
+ 11, 23, 25, -1, -1, 27, -1, -1,
909
+ 31, 43, -1, 45, -1, -1, 39, 54,
910
+ };
911
+ #endif /* ZUECI_EMBED_NO_TO_UTF8 */
912
+
913
+ #ifndef ZUECI_EMBED_NO_TO_ECI
914
+ /* ECI 21 Windows-1250 Latin 2 (Central Europe) */
915
+ static int zueci_u_cp1250(const zueci_u32 u, unsigned char *dest) {
916
+ return zueci_u_cp125x(u, zueci_cp1250_s, zueci_cp1250_u_u, zueci_cp1250_u_sb,
917
+ ZUECI_ASIZE(zueci_cp1250_u_u) - 1, dest);
918
+ }
919
+ #endif
920
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
921
+ static int zueci_cp1250_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags, zueci_u32 *p_u) {
922
+ (void)len;
923
+ return zueci_cp125x_u(*src, flags, zueci_cp1250_s, zueci_cp1250_u_u, zueci_cp1250_sb_u,
924
+ ZUECI_ASIZE(zueci_cp1250_sb_u) + 0x80, p_u);
925
+ }
926
+ #endif
927
+
928
+ /* Tables for ECI 22 Windows 1251 */
929
+ static const zueci_u16 zueci_cp1251_s[6] = { /* Straight-thru bit-flags */
930
+ 0x7AD1, 0x08E3, 0x0000, 0x0000, 0x0000, 0x0000,
931
+ };
932
+ static const zueci_u16 zueci_cp1251_u_u[112] = { /* Unicode codepoints sorted */
933
+ 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408,
934
+ 0x0409, 0x040A, 0x040B, 0x040C, 0x040E, 0x040F, 0x0410, 0x0411,
935
+ 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419,
936
+ 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421,
937
+ 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429,
938
+ 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0430, 0x0431,
939
+ 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439,
940
+ 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441,
941
+ 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449,
942
+ 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x0451, 0x0452,
943
+ 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045A,
944
+ 0x045B, 0x045C, 0x045E, 0x045F, 0x0490, 0x0491, 0x2013, 0x2014,
945
+ 0x2018, 0x2019, 0x201A, 0x201C, 0x201D, 0x201E, 0x2020, 0x2021,
946
+ 0x2022, 0x2026, 0x2030, 0x2039, 0x203A, 0x20AC, 0x2116, 0x2122,
947
+ };
948
+ #ifndef ZUECI_EMBED_NO_TO_ECI
949
+ static const unsigned char zueci_cp1251_u_sb[112] = { /* Single-byte in Unicode order */
950
+ 0xA8, 0x80, 0x81, 0xAA, 0xBD, 0xB2, 0xAF, 0xA3,
951
+ 0x8A, 0x8C, 0x8E, 0x8D, 0xA1, 0x8F, 0xC0, 0xC1,
952
+ 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
953
+ 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1,
954
+ 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9,
955
+ 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1,
956
+ 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
957
+ 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1,
958
+ 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9,
959
+ 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0xB8, 0x90,
960
+ 0x83, 0xBA, 0xBE, 0xB3, 0xBF, 0xBC, 0x9A, 0x9C,
961
+ 0x9E, 0x9D, 0xA2, 0x9F, 0xA5, 0xB4, 0x96, 0x97,
962
+ 0x91, 0x92, 0x82, 0x93, 0x94, 0x84, 0x86, 0x87,
963
+ 0x95, 0x85, 0x89, 0x8B, 0x9B, 0x88, 0xB9, 0x99,
964
+ };
965
+ #endif /* ZUECI_EMBED_NO_TO_ECI */
966
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
967
+ static const char zueci_cp1251_sb_u[128] = { /* Single-byte sorted indexes into Unicode table */
968
+ 1, 2, 98, 80, 101, 105, 102, 103,
969
+ 109, 106, 8, 107, 9, 11, 10, 13,
970
+ 79, 96, 97, 99, 100, 104, 94, 95,
971
+ -1, 111, 86, 108, 87, 89, 88, 91,
972
+ -1, 12, 90, 7, -1, 92, -1, -1,
973
+ 0, -1, 3, -1, -1, -1, -1, 6,
974
+ -1, -1, 5, 83, 93, -1, -1, -1,
975
+ 78, 110, 81, -1, 85, 4, 82, 84,
976
+ 14, 15, 16, 17, 18, 19, 20, 21,
977
+ 22, 23, 24, 25, 26, 27, 28, 29,
978
+ 30, 31, 32, 33, 34, 35, 36, 37,
979
+ 38, 39, 40, 41, 42, 43, 44, 45,
980
+ 46, 47, 48, 49, 50, 51, 52, 53,
981
+ 54, 55, 56, 57, 58, 59, 60, 61,
982
+ 62, 63, 64, 65, 66, 67, 68, 69,
983
+ 70, 71, 72, 73, 74, 75, 76, 77,
984
+ };
985
+ #endif /* ZUECI_EMBED_NO_TO_UTF8 */
986
+
987
+ #ifndef ZUECI_EMBED_NO_TO_ECI
988
+ /* ECI 22 Windows-1251 Cyrillic */
989
+ static int zueci_u_cp1251(const zueci_u32 u, unsigned char *dest) {
990
+ return zueci_u_cp125x(u, zueci_cp1251_s, zueci_cp1251_u_u, zueci_cp1251_u_sb,
991
+ ZUECI_ASIZE(zueci_cp1251_u_u) - 1, dest);
992
+ }
993
+ #endif
994
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
995
+ static int zueci_cp1251_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags, zueci_u32 *p_u) {
996
+ (void)len;
997
+ return zueci_cp125x_u(*src, flags, zueci_cp1251_s, zueci_cp1251_u_u, zueci_cp1251_sb_u,
998
+ ZUECI_ASIZE(zueci_cp1251_sb_u) + 0x80, p_u);
999
+ }
1000
+ #endif
1001
+
1002
+ /* Tables for ECI 23 Windows 1252 */
1003
+ static const zueci_u16 zueci_cp1252_s[6] = { /* Straight-thru bit-flags */
1004
+ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
1005
+ };
1006
+ static const zueci_u16 zueci_cp1252_u_u[27] = { /* Unicode codepoints sorted */
1007
+ 0x0152, 0x0153, 0x0160, 0x0161, 0x0178, 0x017D, 0x017E, 0x0192,
1008
+ 0x02C6, 0x02DC, 0x2013, 0x2014, 0x2018, 0x2019, 0x201A, 0x201C,
1009
+ 0x201D, 0x201E, 0x2020, 0x2021, 0x2022, 0x2026, 0x2030, 0x2039,
1010
+ 0x203A, 0x20AC, 0x2122,
1011
+ };
1012
+ #ifndef ZUECI_EMBED_NO_TO_ECI
1013
+ static const unsigned char zueci_cp1252_u_sb[27] = { /* Single-byte in Unicode order */
1014
+ 0x8C, 0x9C, 0x8A, 0x9A, 0x9F, 0x8E, 0x9E, 0x83,
1015
+ 0x88, 0x98, 0x96, 0x97, 0x91, 0x92, 0x82, 0x93,
1016
+ 0x94, 0x84, 0x86, 0x87, 0x95, 0x85, 0x89, 0x8B,
1017
+ 0x9B, 0x80, 0x99,
1018
+ };
1019
+ #endif /* ZUECI_EMBED_NO_TO_ECI */
1020
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
1021
+ static const char zueci_cp1252_sb_u[32] = { /* Single-byte sorted indexes into Unicode table */
1022
+ 25, -1, 14, 7, 17, 21, 18, 19,
1023
+ 8, 22, 2, 23, 0, -1, 5, -1,
1024
+ -1, 12, 13, 15, 16, 20, 10, 11,
1025
+ 9, 26, 3, 24, 1, -1, 6, 4,
1026
+ };
1027
+ #endif /* ZUECI_EMBED_NO_TO_UTF8 */
1028
+
1029
+ #ifndef ZUECI_EMBED_NO_TO_ECI
1030
+ /* ECI 23 Windows-1252 Latin 1 */
1031
+ static int zueci_u_cp1252(const zueci_u32 u, unsigned char *dest) {
1032
+ return zueci_u_cp125x(u, zueci_cp1252_s, zueci_cp1252_u_u, zueci_cp1252_u_sb,
1033
+ ZUECI_ASIZE(zueci_cp1252_u_u) - 1, dest);
1034
+ }
1035
+ #endif
1036
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
1037
+ static int zueci_cp1252_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags, zueci_u32 *p_u) {
1038
+ (void)len;
1039
+ return zueci_cp125x_u(*src, flags, zueci_cp1252_s, zueci_cp1252_u_u, zueci_cp1252_sb_u,
1040
+ ZUECI_ASIZE(zueci_cp1252_sb_u) + 0x80, p_u);
1041
+ }
1042
+ #endif
1043
+
1044
+ /* Tables for ECI 24 Windows 1256 */
1045
+ static const zueci_u16 zueci_cp1256_s[6] = { /* Straight-thru bit-flags */
1046
+ 0xFBFD, 0x7BFF, 0x0000, 0x0080, 0xCF85, 0x1A90,
1047
+ };
1048
+ static const zueci_u16 zueci_cp1256_u_u[85] = { /* Unicode codepoints sorted */
1049
+ 0x0152, 0x0153, 0x0192, 0x02C6, 0x060C, 0x061B, 0x061F, 0x0621,
1050
+ 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629,
1051
+ 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631,
1052
+ 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639,
1053
+ 0x063A, 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646,
1054
+ 0x0647, 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E,
1055
+ 0x064F, 0x0650, 0x0651, 0x0652, 0x0679, 0x067E, 0x0686, 0x0688,
1056
+ 0x0691, 0x0698, 0x06A9, 0x06AF, 0x06BA, 0x06BE, 0x06C1, 0x06D2,
1057
+ 0x200C, 0x200D, 0x200E, 0x200F, 0x2013, 0x2014, 0x2018, 0x2019,
1058
+ 0x201A, 0x201C, 0x201D, 0x201E, 0x2020, 0x2021, 0x2022, 0x2026,
1059
+ 0x2030, 0x2039, 0x203A, 0x20AC, 0x2122,
1060
+ };
1061
+ #ifndef ZUECI_EMBED_NO_TO_ECI
1062
+ static const unsigned char zueci_cp1256_u_sb[85] = { /* Single-byte in Unicode order */
1063
+ 0x8C, 0x9C, 0x83, 0x88, 0xA1, 0xBA, 0xBF, 0xC1,
1064
+ 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
1065
+ 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1,
1066
+ 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD8, 0xD9, 0xDA,
1067
+ 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE1, 0xE3, 0xE4,
1068
+ 0xE5, 0xE6, 0xEC, 0xED, 0xF0, 0xF1, 0xF2, 0xF3,
1069
+ 0xF5, 0xF6, 0xF8, 0xFA, 0x8A, 0x81, 0x8D, 0x8F,
1070
+ 0x9A, 0x8E, 0x98, 0x90, 0x9F, 0xAA, 0xC0, 0xFF,
1071
+ 0x9D, 0x9E, 0xFD, 0xFE, 0x96, 0x97, 0x91, 0x92,
1072
+ 0x82, 0x93, 0x94, 0x84, 0x86, 0x87, 0x95, 0x85,
1073
+ 0x89, 0x8B, 0x9B, 0x80, 0x99,
1074
+ };
1075
+ #endif /* ZUECI_EMBED_NO_TO_ECI */
1076
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
1077
+ static const char zueci_cp1256_sb_u[128] = { /* Single-byte sorted indexes into Unicode table */
1078
+ 83, 53, 72, 2, 75, 79, 76, 77,
1079
+ 3, 80, 52, 81, 0, 54, 57, 55,
1080
+ 59, 70, 71, 73, 74, 78, 68, 69,
1081
+ 58, 84, 56, 82, 1, 64, 65, 60,
1082
+ -1, 4, -1, -1, -1, -1, -1, -1,
1083
+ -1, -1, 61, -1, -1, -1, -1, -1,
1084
+ -1, -1, -1, -1, -1, -1, -1, -1,
1085
+ -1, -1, 5, -1, -1, -1, -1, 6,
1086
+ 62, 7, 8, 9, 10, 11, 12, 13,
1087
+ 14, 15, 16, 17, 18, 19, 20, 21,
1088
+ 22, 23, 24, 25, 26, 27, 28, -1,
1089
+ 29, 30, 31, 32, 33, 34, 35, 36,
1090
+ -1, 37, -1, 38, 39, 40, 41, -1,
1091
+ -1, -1, -1, -1, 42, 43, -1, -1,
1092
+ 44, 45, 46, 47, -1, 48, 49, -1,
1093
+ 50, -1, 51, -1, -1, 66, 67, 63,
1094
+ };
1095
+ #endif /* ZUECI_EMBED_NO_TO_UTF8 */
1096
+
1097
+ #ifndef ZUECI_EMBED_NO_TO_ECI
1098
+ /* ECI 24 Windows-1256 Arabic */
1099
+ static int zueci_u_cp1256(const zueci_u32 u, unsigned char *dest) {
1100
+ return zueci_u_cp125x(u, zueci_cp1256_s, zueci_cp1256_u_u, zueci_cp1256_u_sb,
1101
+ ZUECI_ASIZE(zueci_cp1256_u_u) - 1, dest);
1102
+ }
1103
+ #endif
1104
+ #ifndef ZUECI_EMBED_NO_TO_UTF8
1105
+ static int zueci_cp1256_u(const unsigned char *src, const zueci_u32 len, const unsigned int flags, zueci_u32 *p_u) {
1106
+ (void)len;
1107
+ return zueci_cp125x_u(*src, flags, zueci_cp1256_s, zueci_cp1256_u_u, zueci_cp1256_sb_u,
1108
+ ZUECI_ASIZE(zueci_cp1256_sb_u) + 0x80, p_u);
1109
+ }
1110
+ #endif
1111
+
1112
+ #endif /* ZUECI_SB_H */