tesseract_bin 1.0.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 (612) hide show
  1. data/.document +5 -0
  2. data/Gemfile +14 -0
  3. data/Gemfile.lock +23 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +19 -0
  6. data/Rakefile +46 -0
  7. data/VERSION +1 -0
  8. data/ext/tesseract_bin/extconf.rb +17 -0
  9. data/lib/tesseract_bin.rb +12 -0
  10. data/tesseract_bin.gemspec +660 -0
  11. data/test/helper.rb +18 -0
  12. data/test/test_tesseract_bin.rb +7 -0
  13. data/vendor/tesseract-2.04/AUTHORS +8 -0
  14. data/vendor/tesseract-2.04/COPYING +23 -0
  15. data/vendor/tesseract-2.04/ChangeLog +71 -0
  16. data/vendor/tesseract-2.04/INSTALL +229 -0
  17. data/vendor/tesseract-2.04/Makefile.am +20 -0
  18. data/vendor/tesseract-2.04/Makefile.in +641 -0
  19. data/vendor/tesseract-2.04/NEWS +1 -0
  20. data/vendor/tesseract-2.04/README +138 -0
  21. data/vendor/tesseract-2.04/ReleaseNotes +213 -0
  22. data/vendor/tesseract-2.04/StdAfx.cpp +8 -0
  23. data/vendor/tesseract-2.04/StdAfx.h +24 -0
  24. data/vendor/tesseract-2.04/ccmain/Makefile.am +63 -0
  25. data/vendor/tesseract-2.04/ccmain/Makefile.in +735 -0
  26. data/vendor/tesseract-2.04/ccmain/adaptions.cpp +1082 -0
  27. data/vendor/tesseract-2.04/ccmain/adaptions.h +109 -0
  28. data/vendor/tesseract-2.04/ccmain/applybox.cpp +891 -0
  29. data/vendor/tesseract-2.04/ccmain/applybox.h +73 -0
  30. data/vendor/tesseract-2.04/ccmain/baseapi.cpp +1105 -0
  31. data/vendor/tesseract-2.04/ccmain/baseapi.h +256 -0
  32. data/vendor/tesseract-2.04/ccmain/blobcmp.cpp +76 -0
  33. data/vendor/tesseract-2.04/ccmain/blobcmp.h +29 -0
  34. data/vendor/tesseract-2.04/ccmain/callnet.cpp +93 -0
  35. data/vendor/tesseract-2.04/ccmain/callnet.h +32 -0
  36. data/vendor/tesseract-2.04/ccmain/charcut.cpp +704 -0
  37. data/vendor/tesseract-2.04/ccmain/charcut.h +120 -0
  38. data/vendor/tesseract-2.04/ccmain/charsample.cpp +699 -0
  39. data/vendor/tesseract-2.04/ccmain/control.cpp +1842 -0
  40. data/vendor/tesseract-2.04/ccmain/control.h +198 -0
  41. data/vendor/tesseract-2.04/ccmain/docqual.cpp +1481 -0
  42. data/vendor/tesseract-2.04/ccmain/docqual.h +155 -0
  43. data/vendor/tesseract-2.04/ccmain/expandblob.cpp +82 -0
  44. data/vendor/tesseract-2.04/ccmain/expandblob.h +13 -0
  45. data/vendor/tesseract-2.04/ccmain/fixspace.cpp +989 -0
  46. data/vendor/tesseract-2.04/ccmain/fixspace.h +72 -0
  47. data/vendor/tesseract-2.04/ccmain/fixxht.cpp +825 -0
  48. data/vendor/tesseract-2.04/ccmain/fixxht.h +93 -0
  49. data/vendor/tesseract-2.04/ccmain/imgscale.cpp +154 -0
  50. data/vendor/tesseract-2.04/ccmain/imgscale.h +32 -0
  51. data/vendor/tesseract-2.04/ccmain/matmatch.cpp +391 -0
  52. data/vendor/tesseract-2.04/ccmain/matmatch.h +48 -0
  53. data/vendor/tesseract-2.04/ccmain/output.cpp +1273 -0
  54. data/vendor/tesseract-2.04/ccmain/output.h +116 -0
  55. data/vendor/tesseract-2.04/ccmain/pagewalk.cpp +666 -0
  56. data/vendor/tesseract-2.04/ccmain/pagewalk.h +155 -0
  57. data/vendor/tesseract-2.04/ccmain/paircmp.cpp +107 -0
  58. data/vendor/tesseract-2.04/ccmain/paircmp.h +43 -0
  59. data/vendor/tesseract-2.04/ccmain/pgedit.cpp +1867 -0
  60. data/vendor/tesseract-2.04/ccmain/pgedit.h +181 -0
  61. data/vendor/tesseract-2.04/ccmain/reject.cpp +1775 -0
  62. data/vendor/tesseract-2.04/ccmain/reject.h +181 -0
  63. data/vendor/tesseract-2.04/ccmain/scaleimg.cpp +366 -0
  64. data/vendor/tesseract-2.04/ccmain/scaleimg.h +35 -0
  65. data/vendor/tesseract-2.04/ccmain/tessbox.cpp +375 -0
  66. data/vendor/tesseract-2.04/ccmain/tessbox.h +110 -0
  67. data/vendor/tesseract-2.04/ccmain/tessedit.cpp +278 -0
  68. data/vendor/tesseract-2.04/ccmain/tessedit.h +49 -0
  69. data/vendor/tesseract-2.04/ccmain/tessembedded.cpp +110 -0
  70. data/vendor/tesseract-2.04/ccmain/tessembedded.h +38 -0
  71. data/vendor/tesseract-2.04/ccmain/tesseractfull.cc +37 -0
  72. data/vendor/tesseract-2.04/ccmain/tesseractmain.cpp +387 -0
  73. data/vendor/tesseract-2.04/ccmain/tesseractmain.h +58 -0
  74. data/vendor/tesseract-2.04/ccmain/tessio.h +110 -0
  75. data/vendor/tesseract-2.04/ccmain/tessvars.cpp +38 -0
  76. data/vendor/tesseract-2.04/ccmain/tessvars.h +48 -0
  77. data/vendor/tesseract-2.04/ccmain/tfacep.h +62 -0
  78. data/vendor/tesseract-2.04/ccmain/tfacepp.cpp +443 -0
  79. data/vendor/tesseract-2.04/ccmain/tfacepp.h +85 -0
  80. data/vendor/tesseract-2.04/ccmain/tstruct.cpp +549 -0
  81. data/vendor/tesseract-2.04/ccmain/tstruct.h +108 -0
  82. data/vendor/tesseract-2.04/ccmain/varabled.cpp +346 -0
  83. data/vendor/tesseract-2.04/ccmain/varabled.h +125 -0
  84. data/vendor/tesseract-2.04/ccmain/werdit.cpp +193 -0
  85. data/vendor/tesseract-2.04/ccmain/werdit.h +67 -0
  86. data/vendor/tesseract-2.04/ccstruct/Makefile.am +25 -0
  87. data/vendor/tesseract-2.04/ccstruct/Makefile.in +650 -0
  88. data/vendor/tesseract-2.04/ccstruct/blckerr.h +29 -0
  89. data/vendor/tesseract-2.04/ccstruct/blobbox.cpp +778 -0
  90. data/vendor/tesseract-2.04/ccstruct/blobbox.h +381 -0
  91. data/vendor/tesseract-2.04/ccstruct/blobs.cpp +247 -0
  92. data/vendor/tesseract-2.04/ccstruct/blobs.h +119 -0
  93. data/vendor/tesseract-2.04/ccstruct/blread.cpp +537 -0
  94. data/vendor/tesseract-2.04/ccstruct/blread.h +63 -0
  95. data/vendor/tesseract-2.04/ccstruct/callcpp.cpp +252 -0
  96. data/vendor/tesseract-2.04/ccstruct/coutln.cpp +650 -0
  97. data/vendor/tesseract-2.04/ccstruct/coutln.h +186 -0
  98. data/vendor/tesseract-2.04/ccstruct/crakedge.h +39 -0
  99. data/vendor/tesseract-2.04/ccstruct/genblob.cpp +133 -0
  100. data/vendor/tesseract-2.04/ccstruct/genblob.h +52 -0
  101. data/vendor/tesseract-2.04/ccstruct/hpddef.h +39 -0
  102. data/vendor/tesseract-2.04/ccstruct/hpdsizes.h +8 -0
  103. data/vendor/tesseract-2.04/ccstruct/ipoints.h +479 -0
  104. data/vendor/tesseract-2.04/ccstruct/labls.cpp +188 -0
  105. data/vendor/tesseract-2.04/ccstruct/labls.h +38 -0
  106. data/vendor/tesseract-2.04/ccstruct/linlsq.cpp +249 -0
  107. data/vendor/tesseract-2.04/ccstruct/linlsq.h +102 -0
  108. data/vendor/tesseract-2.04/ccstruct/lmedsq.cpp +453 -0
  109. data/vendor/tesseract-2.04/ccstruct/lmedsq.h +84 -0
  110. data/vendor/tesseract-2.04/ccstruct/mod128.cpp +100 -0
  111. data/vendor/tesseract-2.04/ccstruct/mod128.h +85 -0
  112. data/vendor/tesseract-2.04/ccstruct/normalis.cpp +176 -0
  113. data/vendor/tesseract-2.04/ccstruct/normalis.h +108 -0
  114. data/vendor/tesseract-2.04/ccstruct/ocrblock.cpp +369 -0
  115. data/vendor/tesseract-2.04/ccstruct/ocrblock.h +235 -0
  116. data/vendor/tesseract-2.04/ccstruct/ocrrow.cpp +216 -0
  117. data/vendor/tesseract-2.04/ccstruct/ocrrow.h +133 -0
  118. data/vendor/tesseract-2.04/ccstruct/pageblk.cpp +879 -0
  119. data/vendor/tesseract-2.04/ccstruct/pageblk.h +318 -0
  120. data/vendor/tesseract-2.04/ccstruct/pageres.cpp +330 -0
  121. data/vendor/tesseract-2.04/ccstruct/pageres.h +313 -0
  122. data/vendor/tesseract-2.04/ccstruct/pdblock.cpp +361 -0
  123. data/vendor/tesseract-2.04/ccstruct/pdblock.h +181 -0
  124. data/vendor/tesseract-2.04/ccstruct/pdclass.h +54 -0
  125. data/vendor/tesseract-2.04/ccstruct/points.cpp +102 -0
  126. data/vendor/tesseract-2.04/ccstruct/points.h +299 -0
  127. data/vendor/tesseract-2.04/ccstruct/polyaprx.cpp +588 -0
  128. data/vendor/tesseract-2.04/ccstruct/polyaprx.h +51 -0
  129. data/vendor/tesseract-2.04/ccstruct/polyblk.cpp +398 -0
  130. data/vendor/tesseract-2.04/ccstruct/polyblk.h +122 -0
  131. data/vendor/tesseract-2.04/ccstruct/polyblob.cpp +357 -0
  132. data/vendor/tesseract-2.04/ccstruct/polyblob.h +102 -0
  133. data/vendor/tesseract-2.04/ccstruct/polyvert.cpp +23 -0
  134. data/vendor/tesseract-2.04/ccstruct/polyvert.h +58 -0
  135. data/vendor/tesseract-2.04/ccstruct/poutline.cpp +441 -0
  136. data/vendor/tesseract-2.04/ccstruct/poutline.h +125 -0
  137. data/vendor/tesseract-2.04/ccstruct/quadlsq.cpp +147 -0
  138. data/vendor/tesseract-2.04/ccstruct/quadlsq.h +67 -0
  139. data/vendor/tesseract-2.04/ccstruct/quadratc.cpp +21 -0
  140. data/vendor/tesseract-2.04/ccstruct/quadratc.h +63 -0
  141. data/vendor/tesseract-2.04/ccstruct/quspline.cpp +382 -0
  142. data/vendor/tesseract-2.04/ccstruct/quspline.h +113 -0
  143. data/vendor/tesseract-2.04/ccstruct/ratngs.cpp +372 -0
  144. data/vendor/tesseract-2.04/ccstruct/ratngs.h +198 -0
  145. data/vendor/tesseract-2.04/ccstruct/rect.cpp +229 -0
  146. data/vendor/tesseract-2.04/ccstruct/rect.h +320 -0
  147. data/vendor/tesseract-2.04/ccstruct/rejctmap.cpp +545 -0
  148. data/vendor/tesseract-2.04/ccstruct/rejctmap.h +284 -0
  149. data/vendor/tesseract-2.04/ccstruct/rwpoly.cpp +89 -0
  150. data/vendor/tesseract-2.04/ccstruct/rwpoly.h +45 -0
  151. data/vendor/tesseract-2.04/ccstruct/statistc.cpp +905 -0
  152. data/vendor/tesseract-2.04/ccstruct/statistc.h +135 -0
  153. data/vendor/tesseract-2.04/ccstruct/stepblob.cpp +296 -0
  154. data/vendor/tesseract-2.04/ccstruct/stepblob.h +88 -0
  155. data/vendor/tesseract-2.04/ccstruct/txtregn.cpp +230 -0
  156. data/vendor/tesseract-2.04/ccstruct/txtregn.h +155 -0
  157. data/vendor/tesseract-2.04/ccstruct/vecfuncs.cpp +63 -0
  158. data/vendor/tesseract-2.04/ccstruct/vecfuncs.h +91 -0
  159. data/vendor/tesseract-2.04/ccstruct/werd.cpp +967 -0
  160. data/vendor/tesseract-2.04/ccstruct/werd.h +277 -0
  161. data/vendor/tesseract-2.04/ccutil/Makefile.am +19 -0
  162. data/vendor/tesseract-2.04/ccutil/Makefile.in +626 -0
  163. data/vendor/tesseract-2.04/ccutil/basedir.cpp +118 -0
  164. data/vendor/tesseract-2.04/ccutil/basedir.h +32 -0
  165. data/vendor/tesseract-2.04/ccutil/bits16.cpp +30 -0
  166. data/vendor/tesseract-2.04/ccutil/bits16.h +61 -0
  167. data/vendor/tesseract-2.04/ccutil/boxread.cpp +105 -0
  168. data/vendor/tesseract-2.04/ccutil/boxread.h +44 -0
  169. data/vendor/tesseract-2.04/ccutil/clst.cpp +626 -0
  170. data/vendor/tesseract-2.04/ccutil/clst.h +1085 -0
  171. data/vendor/tesseract-2.04/ccutil/debugwin.cpp +500 -0
  172. data/vendor/tesseract-2.04/ccutil/debugwin.h +103 -0
  173. data/vendor/tesseract-2.04/ccutil/elst.cpp +593 -0
  174. data/vendor/tesseract-2.04/ccutil/elst.h +1125 -0
  175. data/vendor/tesseract-2.04/ccutil/elst2.cpp +606 -0
  176. data/vendor/tesseract-2.04/ccutil/elst2.h +1121 -0
  177. data/vendor/tesseract-2.04/ccutil/errcode.cpp +104 -0
  178. data/vendor/tesseract-2.04/ccutil/errcode.h +104 -0
  179. data/vendor/tesseract-2.04/ccutil/fileerr.h +34 -0
  180. data/vendor/tesseract-2.04/ccutil/globaloc.cpp +115 -0
  181. data/vendor/tesseract-2.04/ccutil/globaloc.h +40 -0
  182. data/vendor/tesseract-2.04/ccutil/hashfn.cpp +57 -0
  183. data/vendor/tesseract-2.04/ccutil/hashfn.h +30 -0
  184. data/vendor/tesseract-2.04/ccutil/host.h +180 -0
  185. data/vendor/tesseract-2.04/ccutil/hosthplb.h +1 -0
  186. data/vendor/tesseract-2.04/ccutil/lsterr.h +43 -0
  187. data/vendor/tesseract-2.04/ccutil/mainblk.cpp +126 -0
  188. data/vendor/tesseract-2.04/ccutil/mainblk.h +39 -0
  189. data/vendor/tesseract-2.04/ccutil/memblk.cpp +1106 -0
  190. data/vendor/tesseract-2.04/ccutil/memblk.h +189 -0
  191. data/vendor/tesseract-2.04/ccutil/memry.cpp +532 -0
  192. data/vendor/tesseract-2.04/ccutil/memry.h +192 -0
  193. data/vendor/tesseract-2.04/ccutil/memryerr.h +38 -0
  194. data/vendor/tesseract-2.04/ccutil/mfcpch.cpp +5 -0
  195. data/vendor/tesseract-2.04/ccutil/mfcpch.h +37 -0
  196. data/vendor/tesseract-2.04/ccutil/ndminx.h +31 -0
  197. data/vendor/tesseract-2.04/ccutil/notdll.h +28 -0
  198. data/vendor/tesseract-2.04/ccutil/nwmain.h +176 -0
  199. data/vendor/tesseract-2.04/ccutil/ocrclass.h +345 -0
  200. data/vendor/tesseract-2.04/ccutil/ocrshell.cpp +772 -0
  201. data/vendor/tesseract-2.04/ccutil/ocrshell.h +191 -0
  202. data/vendor/tesseract-2.04/ccutil/platform.h +18 -0
  203. data/vendor/tesseract-2.04/ccutil/scanutils.cpp +543 -0
  204. data/vendor/tesseract-2.04/ccutil/scanutils.h +55 -0
  205. data/vendor/tesseract-2.04/ccutil/secname.h +9 -0
  206. data/vendor/tesseract-2.04/ccutil/serialis.cpp +117 -0
  207. data/vendor/tesseract-2.04/ccutil/serialis.h +93 -0
  208. data/vendor/tesseract-2.04/ccutil/stderr.h +26 -0
  209. data/vendor/tesseract-2.04/ccutil/strngs.cpp +495 -0
  210. data/vendor/tesseract-2.04/ccutil/strngs.h +138 -0
  211. data/vendor/tesseract-2.04/ccutil/tessclas.h +135 -0
  212. data/vendor/tesseract-2.04/ccutil/tessopt.cpp +61 -0
  213. data/vendor/tesseract-2.04/ccutil/tessopt.h +30 -0
  214. data/vendor/tesseract-2.04/ccutil/tprintf.cpp +122 -0
  215. data/vendor/tesseract-2.04/ccutil/tprintf.h +35 -0
  216. data/vendor/tesseract-2.04/ccutil/unichar.cpp +144 -0
  217. data/vendor/tesseract-2.04/ccutil/unichar.h +84 -0
  218. data/vendor/tesseract-2.04/ccutil/unicharmap.cpp +172 -0
  219. data/vendor/tesseract-2.04/ccutil/unicharmap.h +82 -0
  220. data/vendor/tesseract-2.04/ccutil/unicharset.cpp +307 -0
  221. data/vendor/tesseract-2.04/ccutil/unicharset.h +267 -0
  222. data/vendor/tesseract-2.04/ccutil/varable.cpp +672 -0
  223. data/vendor/tesseract-2.04/ccutil/varable.h +419 -0
  224. data/vendor/tesseract-2.04/classify/Makefile.am +24 -0
  225. data/vendor/tesseract-2.04/classify/Makefile.in +647 -0
  226. data/vendor/tesseract-2.04/classify/adaptive.cpp +535 -0
  227. data/vendor/tesseract-2.04/classify/adaptive.h +199 -0
  228. data/vendor/tesseract-2.04/classify/adaptmatch.cpp +2958 -0
  229. data/vendor/tesseract-2.04/classify/adaptmatch.h +86 -0
  230. data/vendor/tesseract-2.04/classify/baseline.cpp +58 -0
  231. data/vendor/tesseract-2.04/classify/baseline.h +91 -0
  232. data/vendor/tesseract-2.04/classify/blobclass.cpp +123 -0
  233. data/vendor/tesseract-2.04/classify/blobclass.h +49 -0
  234. data/vendor/tesseract-2.04/classify/chartoname.cpp +74 -0
  235. data/vendor/tesseract-2.04/classify/chartoname.h +21 -0
  236. data/vendor/tesseract-2.04/classify/cluster.cpp +2834 -0
  237. data/vendor/tesseract-2.04/classify/cluster.h +158 -0
  238. data/vendor/tesseract-2.04/classify/clusttool.cpp +507 -0
  239. data/vendor/tesseract-2.04/classify/clusttool.h +70 -0
  240. data/vendor/tesseract-2.04/classify/cutoffs.cpp +73 -0
  241. data/vendor/tesseract-2.04/classify/cutoffs.h +49 -0
  242. data/vendor/tesseract-2.04/classify/extern.h +32 -0
  243. data/vendor/tesseract-2.04/classify/extract.cpp +100 -0
  244. data/vendor/tesseract-2.04/classify/extract.h +36 -0
  245. data/vendor/tesseract-2.04/classify/featdefs.cpp +244 -0
  246. data/vendor/tesseract-2.04/classify/featdefs.h +71 -0
  247. data/vendor/tesseract-2.04/classify/flexfx.cpp +87 -0
  248. data/vendor/tesseract-2.04/classify/flexfx.h +34 -0
  249. data/vendor/tesseract-2.04/classify/float2int.cpp +126 -0
  250. data/vendor/tesseract-2.04/classify/float2int.h +65 -0
  251. data/vendor/tesseract-2.04/classify/fpoint.cpp +73 -0
  252. data/vendor/tesseract-2.04/classify/fpoint.h +63 -0
  253. data/vendor/tesseract-2.04/classify/fxdefs.cpp +74 -0
  254. data/vendor/tesseract-2.04/classify/fxdefs.h +93 -0
  255. data/vendor/tesseract-2.04/classify/fxid.h +69 -0
  256. data/vendor/tesseract-2.04/classify/hideedge.cpp +35 -0
  257. data/vendor/tesseract-2.04/classify/hideedge.h +76 -0
  258. data/vendor/tesseract-2.04/classify/intfx.cpp +608 -0
  259. data/vendor/tesseract-2.04/classify/intfx.h +63 -0
  260. data/vendor/tesseract-2.04/classify/intmatcher.cpp +1524 -0
  261. data/vendor/tesseract-2.04/classify/intmatcher.h +199 -0
  262. data/vendor/tesseract-2.04/classify/intproto.cpp +1823 -0
  263. data/vendor/tesseract-2.04/classify/intproto.h +320 -0
  264. data/vendor/tesseract-2.04/classify/kdtree.cpp +884 -0
  265. data/vendor/tesseract-2.04/classify/kdtree.h +118 -0
  266. data/vendor/tesseract-2.04/classify/mf.cpp +106 -0
  267. data/vendor/tesseract-2.04/classify/mf.h +43 -0
  268. data/vendor/tesseract-2.04/classify/mfdefs.cpp +58 -0
  269. data/vendor/tesseract-2.04/classify/mfdefs.h +60 -0
  270. data/vendor/tesseract-2.04/classify/mfoutline.cpp +1087 -0
  271. data/vendor/tesseract-2.04/classify/mfoutline.h +277 -0
  272. data/vendor/tesseract-2.04/classify/mfx.cpp +436 -0
  273. data/vendor/tesseract-2.04/classify/mfx.h +52 -0
  274. data/vendor/tesseract-2.04/classify/normfeat.cpp +132 -0
  275. data/vendor/tesseract-2.04/classify/normfeat.h +63 -0
  276. data/vendor/tesseract-2.04/classify/normmatch.cpp +305 -0
  277. data/vendor/tesseract-2.04/classify/normmatch.h +38 -0
  278. data/vendor/tesseract-2.04/classify/ocrfeatures.cpp +310 -0
  279. data/vendor/tesseract-2.04/classify/ocrfeatures.h +148 -0
  280. data/vendor/tesseract-2.04/classify/outfeat.cpp +262 -0
  281. data/vendor/tesseract-2.04/classify/outfeat.h +76 -0
  282. data/vendor/tesseract-2.04/classify/picofeat.cpp +297 -0
  283. data/vendor/tesseract-2.04/classify/picofeat.h +65 -0
  284. data/vendor/tesseract-2.04/classify/protos.cpp +472 -0
  285. data/vendor/tesseract-2.04/classify/protos.h +258 -0
  286. data/vendor/tesseract-2.04/classify/sigmenu.cpp +225 -0
  287. data/vendor/tesseract-2.04/classify/sigmenu.h +39 -0
  288. data/vendor/tesseract-2.04/classify/speckle.cpp +127 -0
  289. data/vendor/tesseract-2.04/classify/speckle.h +69 -0
  290. data/vendor/tesseract-2.04/classify/xform2d.cpp +120 -0
  291. data/vendor/tesseract-2.04/classify/xform2d.h +60 -0
  292. data/vendor/tesseract-2.04/config/config.guess +1466 -0
  293. data/vendor/tesseract-2.04/config/config.h.in +188 -0
  294. data/vendor/tesseract-2.04/config/config.sub +1579 -0
  295. data/vendor/tesseract-2.04/config/depcomp +530 -0
  296. data/vendor/tesseract-2.04/config/install-sh +269 -0
  297. data/vendor/tesseract-2.04/config/missing +198 -0
  298. data/vendor/tesseract-2.04/config/mkinstalldirs +40 -0
  299. data/vendor/tesseract-2.04/config/stamp-h.in +0 -0
  300. data/vendor/tesseract-2.04/configure +10424 -0
  301. data/vendor/tesseract-2.04/cutil/Makefile.am +14 -0
  302. data/vendor/tesseract-2.04/cutil/Makefile.in +612 -0
  303. data/vendor/tesseract-2.04/cutil/bitvec.cpp +115 -0
  304. data/vendor/tesseract-2.04/cutil/bitvec.h +100 -0
  305. data/vendor/tesseract-2.04/cutil/callcpp.h +190 -0
  306. data/vendor/tesseract-2.04/cutil/const.h +108 -0
  307. data/vendor/tesseract-2.04/cutil/cutil.cpp +92 -0
  308. data/vendor/tesseract-2.04/cutil/cutil.h +159 -0
  309. data/vendor/tesseract-2.04/cutil/danerror.cpp +144 -0
  310. data/vendor/tesseract-2.04/cutil/danerror.h +41 -0
  311. data/vendor/tesseract-2.04/cutil/debug.cpp +97 -0
  312. data/vendor/tesseract-2.04/cutil/debug.h +348 -0
  313. data/vendor/tesseract-2.04/cutil/efio.cpp +62 -0
  314. data/vendor/tesseract-2.04/cutil/efio.h +32 -0
  315. data/vendor/tesseract-2.04/cutil/emalloc.cpp +91 -0
  316. data/vendor/tesseract-2.04/cutil/emalloc.h +44 -0
  317. data/vendor/tesseract-2.04/cutil/freelist.cpp +75 -0
  318. data/vendor/tesseract-2.04/cutil/freelist.h +45 -0
  319. data/vendor/tesseract-2.04/cutil/funcdefs.h +35 -0
  320. data/vendor/tesseract-2.04/cutil/general.h +33 -0
  321. data/vendor/tesseract-2.04/cutil/globals.cpp +69 -0
  322. data/vendor/tesseract-2.04/cutil/globals.h +70 -0
  323. data/vendor/tesseract-2.04/cutil/listio.cpp +68 -0
  324. data/vendor/tesseract-2.04/cutil/listio.h +43 -0
  325. data/vendor/tesseract-2.04/cutil/minmax.h +40 -0
  326. data/vendor/tesseract-2.04/cutil/oldheap.cpp +337 -0
  327. data/vendor/tesseract-2.04/cutil/oldheap.h +126 -0
  328. data/vendor/tesseract-2.04/cutil/oldlist.cpp +393 -0
  329. data/vendor/tesseract-2.04/cutil/oldlist.h +350 -0
  330. data/vendor/tesseract-2.04/cutil/structures.cpp +66 -0
  331. data/vendor/tesseract-2.04/cutil/structures.h +112 -0
  332. data/vendor/tesseract-2.04/cutil/tessarray.cpp +115 -0
  333. data/vendor/tesseract-2.04/cutil/tessarray.h +166 -0
  334. data/vendor/tesseract-2.04/cutil/tordvars.cpp +95 -0
  335. data/vendor/tesseract-2.04/cutil/tordvars.h +61 -0
  336. data/vendor/tesseract-2.04/cutil/variables.cpp +317 -0
  337. data/vendor/tesseract-2.04/cutil/variables.h +170 -0
  338. data/vendor/tesseract-2.04/dict/Makefile.am +13 -0
  339. data/vendor/tesseract-2.04/dict/Makefile.in +609 -0
  340. data/vendor/tesseract-2.04/dict/choicearr.h +96 -0
  341. data/vendor/tesseract-2.04/dict/choices.cpp +210 -0
  342. data/vendor/tesseract-2.04/dict/choices.h +241 -0
  343. data/vendor/tesseract-2.04/dict/context.cpp +270 -0
  344. data/vendor/tesseract-2.04/dict/context.h +82 -0
  345. data/vendor/tesseract-2.04/dict/dawg.cpp +363 -0
  346. data/vendor/tesseract-2.04/dict/dawg.h +394 -0
  347. data/vendor/tesseract-2.04/dict/hyphen.cpp +84 -0
  348. data/vendor/tesseract-2.04/dict/hyphen.h +125 -0
  349. data/vendor/tesseract-2.04/dict/lookdawg.cpp +228 -0
  350. data/vendor/tesseract-2.04/dict/lookdawg.h +76 -0
  351. data/vendor/tesseract-2.04/dict/makedawg.cpp +449 -0
  352. data/vendor/tesseract-2.04/dict/makedawg.h +83 -0
  353. data/vendor/tesseract-2.04/dict/matchdefs.h +145 -0
  354. data/vendor/tesseract-2.04/dict/permdawg.cpp +415 -0
  355. data/vendor/tesseract-2.04/dict/permdawg.h +98 -0
  356. data/vendor/tesseract-2.04/dict/permngram.cpp +358 -0
  357. data/vendor/tesseract-2.04/dict/permngram.h +33 -0
  358. data/vendor/tesseract-2.04/dict/permnum.cpp +522 -0
  359. data/vendor/tesseract-2.04/dict/permnum.h +83 -0
  360. data/vendor/tesseract-2.04/dict/permute.cpp +1704 -0
  361. data/vendor/tesseract-2.04/dict/permute.h +93 -0
  362. data/vendor/tesseract-2.04/dict/reduce.cpp +424 -0
  363. data/vendor/tesseract-2.04/dict/reduce.h +112 -0
  364. data/vendor/tesseract-2.04/dict/states.cpp +382 -0
  365. data/vendor/tesseract-2.04/dict/states.h +111 -0
  366. data/vendor/tesseract-2.04/dict/stopper.cpp +1458 -0
  367. data/vendor/tesseract-2.04/dict/stopper.h +103 -0
  368. data/vendor/tesseract-2.04/dict/trie.cpp +683 -0
  369. data/vendor/tesseract-2.04/dict/trie.h +190 -0
  370. data/vendor/tesseract-2.04/dlltest/Makefile.am +2 -0
  371. data/vendor/tesseract-2.04/dlltest/Makefile.in +388 -0
  372. data/vendor/tesseract-2.04/dlltest/dlltest.cpp +163 -0
  373. data/vendor/tesseract-2.04/dlltest/dlltest.dsp +186 -0
  374. data/vendor/tesseract-2.04/dlltest/dlltest.vcproj +637 -0
  375. data/vendor/tesseract-2.04/eurotext.tif +0 -0
  376. data/vendor/tesseract-2.04/image/Makefile.am +10 -0
  377. data/vendor/tesseract-2.04/image/Makefile.in +596 -0
  378. data/vendor/tesseract-2.04/image/bitstrm.cpp +157 -0
  379. data/vendor/tesseract-2.04/image/bitstrm.h +73 -0
  380. data/vendor/tesseract-2.04/image/img.h +336 -0
  381. data/vendor/tesseract-2.04/image/imgbmp.cpp +223 -0
  382. data/vendor/tesseract-2.04/image/imgbmp.h +50 -0
  383. data/vendor/tesseract-2.04/image/imgerrs.h +35 -0
  384. data/vendor/tesseract-2.04/image/imgio.cpp +321 -0
  385. data/vendor/tesseract-2.04/image/imgio.h +22 -0
  386. data/vendor/tesseract-2.04/image/imgs.cpp +1764 -0
  387. data/vendor/tesseract-2.04/image/imgs.h +102 -0
  388. data/vendor/tesseract-2.04/image/imgtiff.cpp +723 -0
  389. data/vendor/tesseract-2.04/image/imgtiff.h +89 -0
  390. data/vendor/tesseract-2.04/image/imgunpk.h +1377 -0
  391. data/vendor/tesseract-2.04/image/svshowim.cpp +40 -0
  392. data/vendor/tesseract-2.04/image/svshowim.h +25 -0
  393. data/vendor/tesseract-2.04/java/Makefile.am +4 -0
  394. data/vendor/tesseract-2.04/java/Makefile.in +473 -0
  395. data/vendor/tesseract-2.04/java/com/Makefile.am +1 -0
  396. data/vendor/tesseract-2.04/java/com/Makefile.in +470 -0
  397. data/vendor/tesseract-2.04/java/com/google/Makefile.am +1 -0
  398. data/vendor/tesseract-2.04/java/com/google/Makefile.in +470 -0
  399. data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.am +4 -0
  400. data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.in +473 -0
  401. data/vendor/tesseract-2.04/java/com/google/scrollview/ScrollView.java +421 -0
  402. data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.am +5 -0
  403. data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.in +474 -0
  404. data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEvent.java +87 -0
  405. data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventHandler.java +296 -0
  406. data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventType.java +31 -0
  407. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.am +7 -0
  408. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.in +476 -0
  409. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVAbstractMenuItem.java +58 -0
  410. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVCheckboxMenuItem.java +60 -0
  411. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVEmptyMenuItem.java +48 -0
  412. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVImageHandler.java +228 -0
  413. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuBar.java +130 -0
  414. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuItem.java +61 -0
  415. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVPopupMenu.java +142 -0
  416. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVSubMenuItem.java +41 -0
  417. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVWindow.java +643 -0
  418. data/vendor/tesseract-2.04/java/makefile +55 -0
  419. data/vendor/tesseract-2.04/pageseg/Makefile.am +13 -0
  420. data/vendor/tesseract-2.04/pageseg/Makefile.in +596 -0
  421. data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.cpp +363 -0
  422. data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.h +90 -0
  423. data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.cpp +82 -0
  424. data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.h +30 -0
  425. data/vendor/tesseract-2.04/pageseg/pageseg.cpp +170 -0
  426. data/vendor/tesseract-2.04/pageseg/pageseg.h +29 -0
  427. data/vendor/tesseract-2.04/phototest.tif +0 -0
  428. data/vendor/tesseract-2.04/tessdata/Makefile.am +31 -0
  429. data/vendor/tesseract-2.04/tessdata/Makefile.in +529 -0
  430. data/vendor/tesseract-2.04/tessdata/configs/Makefile.am +3 -0
  431. data/vendor/tesseract-2.04/tessdata/configs/Makefile.in +344 -0
  432. data/vendor/tesseract-2.04/tessdata/configs/api_config +1 -0
  433. data/vendor/tesseract-2.04/tessdata/configs/box.train +19 -0
  434. data/vendor/tesseract-2.04/tessdata/configs/box.train.stderr +18 -0
  435. data/vendor/tesseract-2.04/tessdata/configs/inter +4 -0
  436. data/vendor/tesseract-2.04/tessdata/configs/kannada +4 -0
  437. data/vendor/tesseract-2.04/tessdata/configs/makebox +1 -0
  438. data/vendor/tesseract-2.04/tessdata/configs/unlv +3 -0
  439. data/vendor/tesseract-2.04/tessdata/confsets +3 -0
  440. data/vendor/tesseract-2.04/tessdata/eng.DangAmbigs +39 -0
  441. data/vendor/tesseract-2.04/tessdata/eng.freq-dawg +0 -0
  442. data/vendor/tesseract-2.04/tessdata/eng.inttemp +0 -0
  443. data/vendor/tesseract-2.04/tessdata/eng.normproto +1247 -0
  444. data/vendor/tesseract-2.04/tessdata/eng.pffmtable +111 -0
  445. data/vendor/tesseract-2.04/tessdata/eng.unicharset +113 -0
  446. data/vendor/tesseract-2.04/tessdata/eng.user-words +921 -0
  447. data/vendor/tesseract-2.04/tessdata/eng.word-dawg +0 -0
  448. data/vendor/tesseract-2.04/tessdata/makedummies +8 -0
  449. data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.am +3 -0
  450. data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.in +344 -0
  451. data/vendor/tesseract-2.04/tessdata/tessconfigs/batch +2 -0
  452. data/vendor/tesseract-2.04/tessdata/tessconfigs/batch.nochop +2 -0
  453. data/vendor/tesseract-2.04/tessdata/tessconfigs/matdemo +7 -0
  454. data/vendor/tesseract-2.04/tessdata/tessconfigs/msdemo +13 -0
  455. data/vendor/tesseract-2.04/tessdata/tessconfigs/nobatch +2 -0
  456. data/vendor/tesseract-2.04/tessdata/tessconfigs/segdemo +9 -0
  457. data/vendor/tesseract-2.04/tessdll.cpp +351 -0
  458. data/vendor/tesseract-2.04/tessdll.dsp +2050 -0
  459. data/vendor/tesseract-2.04/tessdll.h +143 -0
  460. data/vendor/tesseract-2.04/tessdll.vcproj +5495 -0
  461. data/vendor/tesseract-2.04/tesseract.dsp +2124 -0
  462. data/vendor/tesseract-2.04/tesseract.dsw +116 -0
  463. data/vendor/tesseract-2.04/tesseract.sln +59 -0
  464. data/vendor/tesseract-2.04/tesseract.spec +188 -0
  465. data/vendor/tesseract-2.04/tesseract.vcproj +5859 -0
  466. data/vendor/tesseract-2.04/testing/Makefile.am +2 -0
  467. data/vendor/tesseract-2.04/testing/Makefile.in +312 -0
  468. data/vendor/tesseract-2.04/testing/README +43 -0
  469. data/vendor/tesseract-2.04/testing/counttestset.sh +61 -0
  470. data/vendor/tesseract-2.04/testing/reorgdata.sh +44 -0
  471. data/vendor/tesseract-2.04/testing/reports/1995.bus.3B.sum +1 -0
  472. data/vendor/tesseract-2.04/testing/reports/1995.doe3.3B.sum +1 -0
  473. data/vendor/tesseract-2.04/testing/reports/1995.mag.3B.sum +1 -0
  474. data/vendor/tesseract-2.04/testing/reports/1995.news.3B.sum +1 -0
  475. data/vendor/tesseract-2.04/testing/reports/2.03.summary +9 -0
  476. data/vendor/tesseract-2.04/testing/reports/2.04.summary +9 -0
  477. data/vendor/tesseract-2.04/testing/runalltests.sh +110 -0
  478. data/vendor/tesseract-2.04/testing/runtestset.sh +61 -0
  479. data/vendor/tesseract-2.04/textord/Makefile.am +20 -0
  480. data/vendor/tesseract-2.04/textord/Makefile.in +624 -0
  481. data/vendor/tesseract-2.04/textord/blkocc.cpp +809 -0
  482. data/vendor/tesseract-2.04/textord/blkocc.h +327 -0
  483. data/vendor/tesseract-2.04/textord/blobcmpl.h +31 -0
  484. data/vendor/tesseract-2.04/textord/drawedg.cpp +77 -0
  485. data/vendor/tesseract-2.04/textord/drawedg.h +34 -0
  486. data/vendor/tesseract-2.04/textord/drawtord.cpp +469 -0
  487. data/vendor/tesseract-2.04/textord/drawtord.h +107 -0
  488. data/vendor/tesseract-2.04/textord/edgblob.cpp +412 -0
  489. data/vendor/tesseract-2.04/textord/edgblob.h +100 -0
  490. data/vendor/tesseract-2.04/textord/edgloop.cpp +211 -0
  491. data/vendor/tesseract-2.04/textord/edgloop.h +66 -0
  492. data/vendor/tesseract-2.04/textord/fpchop.cpp +1641 -0
  493. data/vendor/tesseract-2.04/textord/fpchop.h +238 -0
  494. data/vendor/tesseract-2.04/textord/gap_map.cpp +166 -0
  495. data/vendor/tesseract-2.04/textord/gap_map.h +40 -0
  496. data/vendor/tesseract-2.04/textord/makerow.cpp +2628 -0
  497. data/vendor/tesseract-2.04/textord/makerow.h +295 -0
  498. data/vendor/tesseract-2.04/textord/oldbasel.cpp +1761 -0
  499. data/vendor/tesseract-2.04/textord/oldbasel.h +195 -0
  500. data/vendor/tesseract-2.04/textord/pithsync.cpp +696 -0
  501. data/vendor/tesseract-2.04/textord/pithsync.h +134 -0
  502. data/vendor/tesseract-2.04/textord/pitsync1.cpp +425 -0
  503. data/vendor/tesseract-2.04/textord/pitsync1.h +135 -0
  504. data/vendor/tesseract-2.04/textord/scanedg.cpp +452 -0
  505. data/vendor/tesseract-2.04/textord/scanedg.h +74 -0
  506. data/vendor/tesseract-2.04/textord/sortflts.cpp +80 -0
  507. data/vendor/tesseract-2.04/textord/sortflts.h +64 -0
  508. data/vendor/tesseract-2.04/textord/tessout.h +76 -0
  509. data/vendor/tesseract-2.04/textord/topitch.cpp +2019 -0
  510. data/vendor/tesseract-2.04/textord/topitch.h +195 -0
  511. data/vendor/tesseract-2.04/textord/tordmain.cpp +907 -0
  512. data/vendor/tesseract-2.04/textord/tordmain.h +132 -0
  513. data/vendor/tesseract-2.04/textord/tospace.cpp +1939 -0
  514. data/vendor/tesseract-2.04/textord/tospace.h +193 -0
  515. data/vendor/tesseract-2.04/textord/tovars.cpp +87 -0
  516. data/vendor/tesseract-2.04/textord/tovars.h +94 -0
  517. data/vendor/tesseract-2.04/textord/underlin.cpp +312 -0
  518. data/vendor/tesseract-2.04/textord/underlin.h +53 -0
  519. data/vendor/tesseract-2.04/textord/wordseg.cpp +620 -0
  520. data/vendor/tesseract-2.04/textord/wordseg.h +70 -0
  521. data/vendor/tesseract-2.04/training/Makefile.am +54 -0
  522. data/vendor/tesseract-2.04/training/Makefile.in +720 -0
  523. data/vendor/tesseract-2.04/training/cnTraining.cpp +855 -0
  524. data/vendor/tesseract-2.04/training/cntraining.dsp +243 -0
  525. data/vendor/tesseract-2.04/training/cntraining.vcproj +950 -0
  526. data/vendor/tesseract-2.04/training/mergenf.cpp +451 -0
  527. data/vendor/tesseract-2.04/training/mergenf.h +106 -0
  528. data/vendor/tesseract-2.04/training/mfTraining.cpp +1341 -0
  529. data/vendor/tesseract-2.04/training/mftraining.dsp +285 -0
  530. data/vendor/tesseract-2.04/training/mftraining.vcproj +1055 -0
  531. data/vendor/tesseract-2.04/training/name2char.cpp +166 -0
  532. data/vendor/tesseract-2.04/training/name2char.h +38 -0
  533. data/vendor/tesseract-2.04/training/training.cpp +190 -0
  534. data/vendor/tesseract-2.04/training/training.h +130 -0
  535. data/vendor/tesseract-2.04/training/unicharset_extractor.cpp +140 -0
  536. data/vendor/tesseract-2.04/training/unicharset_extractor.dsp +335 -0
  537. data/vendor/tesseract-2.04/training/unicharset_extractor.vcproj +769 -0
  538. data/vendor/tesseract-2.04/training/wordlist2dawg.cpp +69 -0
  539. data/vendor/tesseract-2.04/training/wordlist2dawg.dsp +319 -0
  540. data/vendor/tesseract-2.04/training/wordlist2dawg.vcproj +1113 -0
  541. data/vendor/tesseract-2.04/viewer/Makefile.am +9 -0
  542. data/vendor/tesseract-2.04/viewer/Makefile.in +591 -0
  543. data/vendor/tesseract-2.04/viewer/scrollview.cpp +825 -0
  544. data/vendor/tesseract-2.04/viewer/scrollview.h +414 -0
  545. data/vendor/tesseract-2.04/viewer/svmnode.cpp +140 -0
  546. data/vendor/tesseract-2.04/viewer/svmnode.h +94 -0
  547. data/vendor/tesseract-2.04/viewer/svpaint.cpp +220 -0
  548. data/vendor/tesseract-2.04/viewer/svutil.cpp +347 -0
  549. data/vendor/tesseract-2.04/viewer/svutil.h +138 -0
  550. data/vendor/tesseract-2.04/wordrec/Makefile.am +23 -0
  551. data/vendor/tesseract-2.04/wordrec/Makefile.in +641 -0
  552. data/vendor/tesseract-2.04/wordrec/associate.cpp +62 -0
  553. data/vendor/tesseract-2.04/wordrec/associate.h +93 -0
  554. data/vendor/tesseract-2.04/wordrec/badwords.cpp +106 -0
  555. data/vendor/tesseract-2.04/wordrec/badwords.h +51 -0
  556. data/vendor/tesseract-2.04/wordrec/bestfirst.cpp +526 -0
  557. data/vendor/tesseract-2.04/wordrec/bestfirst.h +203 -0
  558. data/vendor/tesseract-2.04/wordrec/charsample.h +208 -0
  559. data/vendor/tesseract-2.04/wordrec/chop.cpp +458 -0
  560. data/vendor/tesseract-2.04/wordrec/chop.h +153 -0
  561. data/vendor/tesseract-2.04/wordrec/chopper.cpp +750 -0
  562. data/vendor/tesseract-2.04/wordrec/chopper.h +104 -0
  563. data/vendor/tesseract-2.04/wordrec/closed.cpp +136 -0
  564. data/vendor/tesseract-2.04/wordrec/closed.h +65 -0
  565. data/vendor/tesseract-2.04/wordrec/djmenus.cpp +118 -0
  566. data/vendor/tesseract-2.04/wordrec/djmenus.h +33 -0
  567. data/vendor/tesseract-2.04/wordrec/drawfx.cpp +92 -0
  568. data/vendor/tesseract-2.04/wordrec/drawfx.h +33 -0
  569. data/vendor/tesseract-2.04/wordrec/findseam.cpp +566 -0
  570. data/vendor/tesseract-2.04/wordrec/findseam.h +69 -0
  571. data/vendor/tesseract-2.04/wordrec/gradechop.cpp +226 -0
  572. data/vendor/tesseract-2.04/wordrec/gradechop.h +91 -0
  573. data/vendor/tesseract-2.04/wordrec/heuristic.cpp +194 -0
  574. data/vendor/tesseract-2.04/wordrec/heuristic.h +120 -0
  575. data/vendor/tesseract-2.04/wordrec/makechop.cpp +281 -0
  576. data/vendor/tesseract-2.04/wordrec/makechop.h +69 -0
  577. data/vendor/tesseract-2.04/wordrec/matchtab.cpp +191 -0
  578. data/vendor/tesseract-2.04/wordrec/matchtab.h +45 -0
  579. data/vendor/tesseract-2.04/wordrec/matrix.cpp +118 -0
  580. data/vendor/tesseract-2.04/wordrec/matrix.h +104 -0
  581. data/vendor/tesseract-2.04/wordrec/measure.h +135 -0
  582. data/vendor/tesseract-2.04/wordrec/metrics.cpp +363 -0
  583. data/vendor/tesseract-2.04/wordrec/metrics.h +130 -0
  584. data/vendor/tesseract-2.04/wordrec/mfvars.cpp +51 -0
  585. data/vendor/tesseract-2.04/wordrec/mfvars.h +27 -0
  586. data/vendor/tesseract-2.04/wordrec/msmenus.cpp +110 -0
  587. data/vendor/tesseract-2.04/wordrec/msmenus.h +45 -0
  588. data/vendor/tesseract-2.04/wordrec/olutil.cpp +153 -0
  589. data/vendor/tesseract-2.04/wordrec/olutil.h +128 -0
  590. data/vendor/tesseract-2.04/wordrec/outlines.cpp +172 -0
  591. data/vendor/tesseract-2.04/wordrec/outlines.h +148 -0
  592. data/vendor/tesseract-2.04/wordrec/pieces.cpp +410 -0
  593. data/vendor/tesseract-2.04/wordrec/pieces.h +154 -0
  594. data/vendor/tesseract-2.04/wordrec/plotedges.cpp +134 -0
  595. data/vendor/tesseract-2.04/wordrec/plotedges.h +71 -0
  596. data/vendor/tesseract-2.04/wordrec/plotseg.cpp +116 -0
  597. data/vendor/tesseract-2.04/wordrec/plotseg.h +73 -0
  598. data/vendor/tesseract-2.04/wordrec/render.cpp +152 -0
  599. data/vendor/tesseract-2.04/wordrec/render.h +58 -0
  600. data/vendor/tesseract-2.04/wordrec/seam.cpp +482 -0
  601. data/vendor/tesseract-2.04/wordrec/seam.h +136 -0
  602. data/vendor/tesseract-2.04/wordrec/split.cpp +182 -0
  603. data/vendor/tesseract-2.04/wordrec/split.h +115 -0
  604. data/vendor/tesseract-2.04/wordrec/tally.cpp +68 -0
  605. data/vendor/tesseract-2.04/wordrec/tally.h +94 -0
  606. data/vendor/tesseract-2.04/wordrec/tessinit.cpp +108 -0
  607. data/vendor/tesseract-2.04/wordrec/tessinit.h +46 -0
  608. data/vendor/tesseract-2.04/wordrec/tface.cpp +272 -0
  609. data/vendor/tesseract-2.04/wordrec/tface.h +35 -0
  610. data/vendor/tesseract-2.04/wordrec/wordclass.cpp +284 -0
  611. data/vendor/tesseract-2.04/wordrec/wordclass.h +64 -0
  612. metadata +708 -0
@@ -0,0 +1,672 @@
1
+ /**********************************************************************
2
+ * File: varable.c (Formerly variable.c)
3
+ * Description: Initialization and setting of VARIABLEs.
4
+ * Author: Ray Smith
5
+ * Created: Fri Feb 22 16:22:34 GMT 1991
6
+ *
7
+ * (C) Copyright 1991, Hewlett-Packard Ltd.
8
+ ** Licensed under the Apache License, Version 2.0 (the "License");
9
+ ** you may not use this file except in compliance with the License.
10
+ ** You may obtain a copy of the License at
11
+ ** http://www.apache.org/licenses/LICENSE-2.0
12
+ ** Unless required by applicable law or agreed to in writing, software
13
+ ** distributed under the License is distributed on an "AS IS" BASIS,
14
+ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ ** See the License for the specific language governing permissions and
16
+ ** limitations under the License.
17
+ *
18
+ **********************************************************************/
19
+
20
+ #include "mfcpch.h" //precompiled headers
21
+ #include <stdio.h>
22
+ #include <string.h>
23
+ #include <stdlib.h>
24
+ #include "tprintf.h"
25
+ //#include "ipeerr.h"
26
+ #include "varable.h"
27
+ #include "scanutils.h"
28
+
29
+ #define PLUS '+' //flag states
30
+ #define MINUS '-'
31
+ #define EQUAL '='
32
+
33
+ CLISTIZE (INT_VARIABLE)
34
+ CLISTIZE (BOOL_VARIABLE) CLISTIZE (STRING_VARIABLE) CLISTIZE (double_VARIABLE)
35
+ INT_VAR_FROM
36
+ INT_VARIABLE::copy;
37
+ INT_VARIABLE_CLIST
38
+ INT_VARIABLE::head; //global definition
39
+ INT_VAR_TO
40
+ INT_VARIABLE::replace;
41
+ BOOL_VAR_FROM
42
+ BOOL_VARIABLE::copy;
43
+ BOOL_VARIABLE_CLIST
44
+ BOOL_VARIABLE::head; //global definition
45
+ BOOL_VAR_TO
46
+ BOOL_VARIABLE::replace;
47
+ STRING_VAR_FROM
48
+ STRING_VARIABLE::copy;
49
+ STRING_VARIABLE_CLIST
50
+ STRING_VARIABLE::head; //global definition
51
+ STRING_VAR_TO
52
+ STRING_VARIABLE::replace;
53
+ double_VAR_FROM
54
+ double_VARIABLE::copy;
55
+ double_VARIABLE_CLIST
56
+ double_VARIABLE::head; //global definition
57
+ double_VAR_TO
58
+ double_VARIABLE::replace;
59
+
60
+ /**********************************************************************
61
+ * INT_VAR_FROM::INT_VAR_FROM
62
+ *
63
+ * Constructor to copy the list to a temporary location while the
64
+ * list head gets constructed.
65
+ **********************************************************************/
66
+
67
+ INT_VAR_FROM::INT_VAR_FROM() { //constructor
68
+ INT_VARIABLE_C_IT start_it = &INT_VARIABLE::head;
69
+ INT_VARIABLE_C_IT end_it = &INT_VARIABLE::head;
70
+
71
+ if (!start_it.empty ()) {
72
+ while (!end_it.at_last ())
73
+ end_it.forward ();
74
+ //move to copy
75
+ list.assign_to_sublist (&start_it, &end_it);
76
+ }
77
+ }
78
+
79
+
80
+ /**********************************************************************
81
+ * INT_VAR_TO::INT_VAR_TO
82
+ *
83
+ * Constructor to copy the list back to its rightful place.
84
+ **********************************************************************/
85
+
86
+ INT_VAR_TO::INT_VAR_TO() { //constructor
87
+ INT_VARIABLE_C_IT start_it = &INT_VARIABLE::copy.list;
88
+ INT_VARIABLE_C_IT end_it = &INT_VARIABLE::copy.list;
89
+
90
+ if (!start_it.empty ()) {
91
+ while (!end_it.at_last ())
92
+ end_it.forward ();
93
+ INT_VARIABLE::head.assign_to_sublist (&start_it, &end_it);
94
+ }
95
+ }
96
+
97
+
98
+ /**********************************************************************
99
+ * INT_VARIABLE::INT_VARIABLE
100
+ *
101
+ * Constructor for INT_VARIABLE. Add the variable to the static list.
102
+ **********************************************************************/
103
+
104
+ INT_VARIABLE::INT_VARIABLE( //constructor
105
+ inT32 v, //the variable
106
+ const char *vname, //of variable
107
+ const char *comment //info on variable
108
+ ) {
109
+ INT_VARIABLE_C_IT it = &head; //list iterator
110
+
111
+ //tprintf("Constructing %s\n",vname);
112
+ set_value(v); //set the value
113
+ name = vname; //strings must be static
114
+ info = comment;
115
+ it.add_before_stay_put (this); //add it to stack
116
+ }
117
+
118
+
119
+ INT_VARIABLE::~INT_VARIABLE ( //constructor
120
+ ) {
121
+ INT_VARIABLE_C_IT it = &head; //list iterator
122
+
123
+ for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ())
124
+ if (it.data () == this)
125
+ it.extract ();
126
+ }
127
+
128
+
129
+ /**********************************************************************
130
+ * INT_VARIABLE::get_head
131
+ *
132
+ * Get the head of the list of the variables.
133
+ **********************************************************************/
134
+
135
+ INT_VARIABLE_CLIST *INT_VARIABLE::get_head() { //access to static
136
+ return &head;
137
+ }
138
+
139
+
140
+ /**********************************************************************
141
+ * INT_VARIABLE::print
142
+ *
143
+ * Print the entire list of INT_VARIABLEs.
144
+ **********************************************************************/
145
+
146
+ void INT_VARIABLE::print( //print full list
147
+ FILE *fp //file to print on
148
+ ) {
149
+ INT_VARIABLE_C_IT it = &head; //list iterator
150
+ INT_VARIABLE *elt; //current element
151
+
152
+ if (fp == stdout) {
153
+ tprintf ("#Variables of type INT_VARIABLE:\n");
154
+ for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) {
155
+ elt = it.data ();
156
+ tprintf ("%s %d #%s\n", elt->name, elt->value, elt->info);
157
+ }
158
+ }
159
+ else {
160
+ fprintf (fp, "#Variables of type INT_VARIABLE:\n");
161
+ for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) {
162
+ elt = it.data ();
163
+ fprintf (fp, "%s " INT32FORMAT " #%s\n", elt->name, elt->value,
164
+ elt->info);
165
+ }
166
+ }
167
+ }
168
+
169
+
170
+ /**********************************************************************
171
+ * BOOL_VAR_FROM::BOOL_VAR_FROM
172
+ *
173
+ * Constructor to copy the list to a temporary location while the
174
+ * list head gets constructed.
175
+ **********************************************************************/
176
+
177
+ BOOL_VAR_FROM::BOOL_VAR_FROM() { //constructor
178
+ BOOL_VARIABLE_C_IT start_it = &BOOL_VARIABLE::head;
179
+ BOOL_VARIABLE_C_IT end_it = &BOOL_VARIABLE::head;
180
+
181
+ if (!start_it.empty ()) {
182
+ while (!end_it.at_last ())
183
+ end_it.forward ();
184
+ //move to copy
185
+ list.assign_to_sublist (&start_it, &end_it);
186
+ }
187
+ }
188
+
189
+
190
+ /**********************************************************************
191
+ * BOOL_VAR_TO::BOOL_VAR_TO
192
+ *
193
+ * Constructor to copy the list back to its rightful place.
194
+ **********************************************************************/
195
+
196
+ BOOL_VAR_TO::BOOL_VAR_TO() { //constructor
197
+ BOOL_VARIABLE_C_IT start_it = &BOOL_VARIABLE::copy.list;
198
+ BOOL_VARIABLE_C_IT end_it = &BOOL_VARIABLE::copy.list;
199
+
200
+ if (!start_it.empty ()) {
201
+ while (!end_it.at_last ())
202
+ end_it.forward ();
203
+ BOOL_VARIABLE::head.assign_to_sublist (&start_it, &end_it);
204
+ }
205
+ }
206
+
207
+
208
+ /**********************************************************************
209
+ * BOOL_VARIABLE::BOOL_VARIABLE
210
+ *
211
+ * Constructor for BOOL_VARIABLE. Add the variable to the static list.
212
+ **********************************************************************/
213
+
214
+ BOOL_VARIABLE::BOOL_VARIABLE( //constructor
215
+ BOOL8 v, //the variable
216
+ const char *vname, //of variable
217
+ const char *comment //info on variable
218
+ ) {
219
+ BOOL_VARIABLE_C_IT it = &head; //list iterator
220
+
221
+ //tprintf("Constructing %s\n",vname);
222
+ set_value(v); //set the value
223
+ name = vname; //strings must be static
224
+ info = comment;
225
+ it.add_before_stay_put (this); //add it to stack
226
+
227
+ }
228
+
229
+
230
+ /**********************************************************************
231
+ * BOOL_VARIABLE::BOOL_VARIABLE
232
+ *
233
+ * Constructor for BOOL_VARIABLE. Add the variable to the static list.
234
+ **********************************************************************/
235
+
236
+ BOOL_VARIABLE::~BOOL_VARIABLE () {
237
+ BOOL_VARIABLE_C_IT it = &head; //list iterator
238
+
239
+ for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ())
240
+ if (it.data () == this)
241
+ it.extract ();
242
+ }
243
+
244
+
245
+ /**********************************************************************
246
+ * BOOL_VARIABLE::get_head
247
+ *
248
+ * Get the head of the list of the variables.
249
+ **********************************************************************/
250
+
251
+ BOOL_VARIABLE_CLIST *BOOL_VARIABLE::get_head() { //access to static
252
+ return &head;
253
+ }
254
+
255
+
256
+ /**********************************************************************
257
+ * BOOL_VARIABLE::print
258
+ *
259
+ * Print the entire list of BOOL_VARIABLEs.
260
+ **********************************************************************/
261
+
262
+ void BOOL_VARIABLE::print( //print full list
263
+ FILE *fp //file to print on
264
+ ) {
265
+ BOOL_VARIABLE_C_IT it = &head; //list iterator
266
+ BOOL_VARIABLE *elt; //current element
267
+
268
+ if (fp == stdout) {
269
+ tprintf ("#Variables of type BOOL_VARIABLE:\n");
270
+ for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) {
271
+ elt = it.data ();
272
+ tprintf ("%s %c #%s\n",
273
+ elt->name, elt->value ? 'T' : 'F', elt->info);
274
+ }
275
+ }
276
+ else {
277
+ fprintf (fp, "#Variables of type BOOL_VARIABLE:\n");
278
+ for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) {
279
+ elt = it.data ();
280
+ fprintf (fp, "%s %c #%s\n",
281
+ elt->name, elt->value ? 'T' : 'F', elt->info);
282
+ }
283
+ }
284
+ }
285
+
286
+
287
+ /**********************************************************************
288
+ * STRING_VAR_FROM::STRING_VAR_FROM
289
+ *
290
+ * Constructor to copy the list to a temporary location while the
291
+ * list head gets constructed.
292
+ **********************************************************************/
293
+
294
+ STRING_VAR_FROM::STRING_VAR_FROM() { //constructor
295
+ STRING_VARIABLE_C_IT start_it = &STRING_VARIABLE::head;
296
+ STRING_VARIABLE_C_IT end_it = &STRING_VARIABLE::head;
297
+
298
+ if (!start_it.empty ()) {
299
+ while (!end_it.at_last ())
300
+ end_it.forward ();
301
+ //move to copy
302
+ list.assign_to_sublist (&start_it, &end_it);
303
+ }
304
+ }
305
+
306
+
307
+ /**********************************************************************
308
+ * STRING_VAR_TO::STRING_VAR_TO
309
+ *
310
+ * Constructor to copy the list back to its rightful place.
311
+ **********************************************************************/
312
+
313
+ STRING_VAR_TO::STRING_VAR_TO() { //constructor
314
+ STRING_VARIABLE_C_IT start_it = &STRING_VARIABLE::copy.list;
315
+ STRING_VARIABLE_C_IT end_it = &STRING_VARIABLE::copy.list;
316
+
317
+ if (!start_it.empty ()) {
318
+ while (!end_it.at_last ())
319
+ end_it.forward ();
320
+ STRING_VARIABLE::head.assign_to_sublist (&start_it, &end_it);
321
+ }
322
+ }
323
+
324
+
325
+ /**********************************************************************
326
+ * STRING_VARIABLE::STRING_VARIABLE
327
+ *
328
+ * Constructor for STRING_VARIABLE. Add the variable to the static list.
329
+ **********************************************************************/
330
+
331
+ STRING_VARIABLE::STRING_VARIABLE (
332
+ //constructor
333
+ const char *v, //the variable
334
+ const char *vname, //of variable
335
+ const char *comment //info on variable
336
+ ):
337
+ value(v) {
338
+ // list iterator
339
+ STRING_VARIABLE_C_IT it = &head;
340
+
341
+ name = vname; // strings must be static
342
+ info = comment;
343
+ it.add_before_stay_put(this); // add it to stack
344
+ }
345
+
346
+
347
+ /**********************************************************************
348
+ * STRING_VARIABLE::~STRING_VARIABLE
349
+ *
350
+ * Destructor for STRING_VARIABLE. Add the variable to the static list.
351
+ **********************************************************************/
352
+
353
+ // constructor
354
+ STRING_VARIABLE::~STRING_VARIABLE(
355
+ ) {
356
+ // list iterator
357
+ STRING_VARIABLE_C_IT it = &head;
358
+
359
+ for (it.mark_cycle_pt(); !it.cycled_list(); it.forward())
360
+ if (it.data() == this)
361
+ it.extract();
362
+ }
363
+
364
+
365
+ /**********************************************************************
366
+ * STRING_VARIABLE::get_head
367
+ *
368
+ * Get the head of the list of the variables.
369
+ **********************************************************************/
370
+
371
+ STRING_VARIABLE_CLIST *STRING_VARIABLE::get_head() { // access to static
372
+ return &head;
373
+ }
374
+
375
+
376
+ /**********************************************************************
377
+ * STRING_VARIABLE::print
378
+ *
379
+ * Print the entire list of STRING_VARIABLEs.
380
+ **********************************************************************/
381
+
382
+ void STRING_VARIABLE::print(FILE *fp // file to print on
383
+ ) {
384
+ // list iterator
385
+ STRING_VARIABLE_C_IT it = &head;
386
+ STRING_VARIABLE *elt; // current element
387
+
388
+ if (fp == stdout) {
389
+ tprintf("#Variables of type STRING_VARIABLE:\n");
390
+ for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
391
+ elt = it.data();
392
+ tprintf("%s #%s %s\n", elt->name, elt->value.string(), elt->info);
393
+ }
394
+ } else {
395
+ fprintf(fp, "#Variables of type STRING_VARIABLE:\n");
396
+ for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
397
+ elt = it.data();
398
+ fprintf(fp, "%s #%s %s\n",
399
+ elt->name, elt->value.string(), elt->info);
400
+ }
401
+ }
402
+ }
403
+
404
+
405
+ /**********************************************************************
406
+ * double_VAR_FROM::double_VAR_FROM
407
+ *
408
+ * Constructor to copy the list to a temporary location while the
409
+ * list head gets constructed.
410
+ **********************************************************************/
411
+
412
+ double_VAR_FROM::double_VAR_FROM() { // constructor
413
+ double_VARIABLE_C_IT start_it = &double_VARIABLE::head;
414
+ double_VARIABLE_C_IT end_it = &double_VARIABLE::head;
415
+
416
+ if (!start_it.empty()) {
417
+ while (!end_it.at_last())
418
+ end_it.forward();
419
+ // move to copy
420
+ list.assign_to_sublist(&start_it, &end_it);
421
+ }
422
+ }
423
+
424
+
425
+ /**********************************************************************
426
+ * double_VAR_TO::double_VAR_TO
427
+ *
428
+ * Constructor to copy the list back to its rightful place.
429
+ **********************************************************************/
430
+
431
+ double_VAR_TO::double_VAR_TO() { // constructor
432
+ double_VARIABLE_C_IT start_it = &double_VARIABLE::copy.list;
433
+ double_VARIABLE_C_IT end_it = &double_VARIABLE::copy.list;
434
+
435
+ if (!start_it.empty()) {
436
+ while (!end_it.at_last())
437
+ end_it.forward();
438
+ double_VARIABLE::head.assign_to_sublist(&start_it, &end_it);
439
+ }
440
+ }
441
+
442
+
443
+ /**********************************************************************
444
+ * double_VARIABLE::double_VARIABLE
445
+ *
446
+ * Constructor for double_VARIABLE. Add the variable to the static list.
447
+ **********************************************************************/
448
+
449
+ double_VARIABLE::double_VARIABLE(double v, // the variable
450
+ const char *vname, // of variable
451
+ const char *comment // info on variable
452
+ ) {
453
+ // list iterator
454
+ double_VARIABLE_C_IT it = &head;
455
+
456
+ set_value(v); // set the value
457
+ name = vname; // strings must be static
458
+ info = comment;
459
+ it.add_before_stay_put(this); // add it to stack
460
+ }
461
+
462
+
463
+ double_VARIABLE::~double_VARIABLE() {
464
+ // list iterator
465
+ double_VARIABLE_C_IT it = &head;
466
+
467
+ for (it.mark_cycle_pt(); !it.cycled_list(); it.forward())
468
+ if (it.data() == this)
469
+ it.extract();
470
+ }
471
+
472
+
473
+ /**********************************************************************
474
+ * double_VARIABLE::get_head
475
+ *
476
+ * Get the head of the list of the variables.
477
+ **********************************************************************/
478
+
479
+ double_VARIABLE_CLIST *double_VARIABLE::get_head() { // access to static
480
+ return &head;
481
+ }
482
+
483
+
484
+ /**********************************************************************
485
+ * double_VARIABLE::print
486
+ *
487
+ * Print the entire list of double_VARIABLEs.
488
+ **********************************************************************/
489
+
490
+ void double_VARIABLE::print(FILE *fp // file to print on
491
+ ) {
492
+ // list iterator
493
+ double_VARIABLE_C_IT it = &head;
494
+ double_VARIABLE *elt; // current element
495
+
496
+ if (fp == stdout) {
497
+ tprintf("#Variables of type double_VARIABLE:\n");
498
+ for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
499
+ elt = it.data();
500
+ tprintf ("%s %lg #%s\n", elt->name, elt->value, elt->info);
501
+ }
502
+ } else {
503
+ fprintf(fp, "#Variables of type double_VARIABLE:\n");
504
+ for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
505
+ elt = it.data();
506
+ fprintf(fp, "%s %g #%s\n", elt->name, elt->value, elt->info);
507
+ }
508
+ }
509
+ }
510
+
511
+
512
+ /**********************************************************************
513
+ * read_variables_file
514
+ *
515
+ * Read a file of variables definitions and set/modify the values therein.
516
+ * If the filename begins with a + or -, the BOOL_VARIABLEs will be
517
+ * ORed or ANDed with any current values.
518
+ * Blank lines and lines beginning # are ignored.
519
+ * Values may have any whitespace after the name and are the rest of line.
520
+ **********************************************************************/
521
+
522
+ DLLSYM BOOL8 read_variables_file(const char *file // name to read
523
+ ) {
524
+ BOOL8 anyerr; // true if any error
525
+ char flag; // file flag
526
+ BOOL8 foundit; // found variable
527
+ inT16 length; // length of line
528
+ inT16 nameoffset; // offset for real name
529
+ char *valptr; // value field
530
+ char *stringend; // end of string value
531
+ FILE *fp; // file pointer
532
+ // iterators
533
+ char line[MAX_PATH]; // input line
534
+
535
+ anyerr = FALSE;
536
+ if (*file == PLUS) {
537
+ flag = PLUS; // file has flag
538
+ nameoffset = 1;
539
+ } else if (*file == MINUS) {
540
+ flag = MINUS;
541
+ nameoffset = 1;
542
+ } else {
543
+ flag = EQUAL;
544
+ nameoffset = 0;
545
+ }
546
+
547
+ fp = fopen(file + nameoffset, "r");
548
+ if (fp == NULL) {
549
+ tprintf("read_variables_file:Can't open %s", file + nameoffset);
550
+ return TRUE; // can't open it
551
+ }
552
+ while (fgets (line, MAX_PATH, fp)) {
553
+ if (line[0] != '\n' && line[0] != '#') {
554
+ length = strlen (line);
555
+ if (line[length - 1] == '\n')
556
+ line[length - 1] = '\0'; // cut newline
557
+ for (valptr = line; *valptr && *valptr != ' ' && *valptr != '\t';
558
+ valptr++);
559
+ if (*valptr) { //found blank
560
+ *valptr = '\0'; //make name a string
561
+ do
562
+
563
+ valptr++; //find end of blanks
564
+ while (*valptr == ' ' || *valptr == '\t');
565
+
566
+ if (*valptr && *valptr != '#') {
567
+ //last char in string
568
+ stringend = valptr + strlen (valptr) - 1;
569
+ while (stringend != valptr) {
570
+ while (stringend != valptr
571
+ && (*stringend == ' ' || *stringend == '\t'))
572
+ // cut trailing blanks
573
+ stringend--;
574
+ stringend[1] = '\0'; // terminate string
575
+
576
+ while (stringend != valptr
577
+ && ((*stringend != ' ' && *stringend != '\t')
578
+ || stringend[1] != '#'))
579
+ stringend--; // find word start
580
+ }
581
+ }
582
+ }
583
+ foundit = set_new_style_variable(line, valptr);
584
+
585
+ if (!foundit) {
586
+ anyerr = TRUE; // had an error
587
+ tprintf("read_variables_file:variable not found: %s\n",
588
+ line);
589
+ }
590
+ }
591
+ }
592
+ fclose(fp); // close file
593
+ return anyerr;
594
+ }
595
+
596
+ bool set_new_style_variable(const char *variable, const char* value) {
597
+ INT_VARIABLE_C_IT int_it = &INT_VARIABLE::head;
598
+ BOOL_VARIABLE_C_IT BOOL_it = &BOOL_VARIABLE::head;
599
+ STRING_VARIABLE_C_IT STRING_it = &STRING_VARIABLE::head;
600
+ double_VARIABLE_C_IT double_it = &double_VARIABLE::head;
601
+
602
+ bool foundit = false;
603
+ // find name
604
+ for (STRING_it.mark_cycle_pt();
605
+ !STRING_it.cycled_list() && strcmp(variable, STRING_it.data()->name);
606
+ STRING_it.forward());
607
+ if (!STRING_it.cycled_list()) {
608
+ foundit = true; // found the varaible
609
+ if (*value == '\0')
610
+ STRING_it.data()->set_value((char *) NULL); // No value.
611
+ else
612
+ STRING_it.data()->set_value(value); // set its value
613
+ }
614
+
615
+ if (*value) {
616
+ // find name
617
+ for (int_it.mark_cycle_pt();
618
+ !int_it.cycled_list() && strcmp(variable, int_it.data()->name);
619
+ int_it.forward());
620
+ int intval;
621
+ if (!int_it.cycled_list()
622
+ && sscanf(value, INT32FORMAT, &intval) == 1) {
623
+ foundit = true; // found the varaible
624
+ int_it.data()->set_value(intval); // set its value.
625
+ }
626
+ for (BOOL_it.mark_cycle_pt();
627
+ !BOOL_it.cycled_list () && strcmp(variable, BOOL_it.data()->name);
628
+ BOOL_it.forward());
629
+ if (!BOOL_it.cycled_list()) {
630
+ if (*value == 'T' || *value == 't' ||
631
+ *value == 'Y' || *value == 'y' || *value == '1') {
632
+ foundit = true;
633
+ BOOL_it.data()->set_value(TRUE);
634
+ }
635
+ else if (*value == 'F' || *value == 'f' ||
636
+ *value == 'N' || *value == 'n' || *value == '0') {
637
+ foundit = true;
638
+ BOOL_it.data()->set_value(FALSE);
639
+ }
640
+ }
641
+ for (double_it.mark_cycle_pt();
642
+ !double_it.cycled_list() && strcmp(variable, double_it.data ()->name);
643
+ double_it.forward());
644
+ double doubleval;
645
+ #ifdef EMBEDDED
646
+ if (!double_it.cycled_list ()) {
647
+ doubleval = strtofloat(value);
648
+ #else
649
+ if (!double_it.cycled_list()
650
+ && sscanf(value, "%lf", &doubleval) == 1) {
651
+ #endif
652
+ foundit = true; // found the varaible
653
+ double_it.data()->set_value(doubleval);
654
+ }
655
+ }
656
+ return foundit;
657
+ }
658
+
659
+ /**********************************************************************
660
+ * print_variables
661
+ *
662
+ * Print all variable types to the given file
663
+ **********************************************************************/
664
+
665
+ DLLSYM void print_variables( //print all vars
666
+ FILE *fp //file to print on
667
+ ) {
668
+ INT_VARIABLE::print(fp); //print INTs
669
+ BOOL_VARIABLE::print(fp); //print BOOLs
670
+ STRING_VARIABLE::print(fp); //print STRINGs
671
+ double_VARIABLE::print(fp); //print doubles
672
+ }