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.
- data/.document +5 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +23 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/ext/tesseract_bin/extconf.rb +17 -0
- data/lib/tesseract_bin.rb +12 -0
- data/tesseract_bin.gemspec +660 -0
- data/test/helper.rb +18 -0
- data/test/test_tesseract_bin.rb +7 -0
- data/vendor/tesseract-2.04/AUTHORS +8 -0
- data/vendor/tesseract-2.04/COPYING +23 -0
- data/vendor/tesseract-2.04/ChangeLog +71 -0
- data/vendor/tesseract-2.04/INSTALL +229 -0
- data/vendor/tesseract-2.04/Makefile.am +20 -0
- data/vendor/tesseract-2.04/Makefile.in +641 -0
- data/vendor/tesseract-2.04/NEWS +1 -0
- data/vendor/tesseract-2.04/README +138 -0
- data/vendor/tesseract-2.04/ReleaseNotes +213 -0
- data/vendor/tesseract-2.04/StdAfx.cpp +8 -0
- data/vendor/tesseract-2.04/StdAfx.h +24 -0
- data/vendor/tesseract-2.04/ccmain/Makefile.am +63 -0
- data/vendor/tesseract-2.04/ccmain/Makefile.in +735 -0
- data/vendor/tesseract-2.04/ccmain/adaptions.cpp +1082 -0
- data/vendor/tesseract-2.04/ccmain/adaptions.h +109 -0
- data/vendor/tesseract-2.04/ccmain/applybox.cpp +891 -0
- data/vendor/tesseract-2.04/ccmain/applybox.h +73 -0
- data/vendor/tesseract-2.04/ccmain/baseapi.cpp +1105 -0
- data/vendor/tesseract-2.04/ccmain/baseapi.h +256 -0
- data/vendor/tesseract-2.04/ccmain/blobcmp.cpp +76 -0
- data/vendor/tesseract-2.04/ccmain/blobcmp.h +29 -0
- data/vendor/tesseract-2.04/ccmain/callnet.cpp +93 -0
- data/vendor/tesseract-2.04/ccmain/callnet.h +32 -0
- data/vendor/tesseract-2.04/ccmain/charcut.cpp +704 -0
- data/vendor/tesseract-2.04/ccmain/charcut.h +120 -0
- data/vendor/tesseract-2.04/ccmain/charsample.cpp +699 -0
- data/vendor/tesseract-2.04/ccmain/control.cpp +1842 -0
- data/vendor/tesseract-2.04/ccmain/control.h +198 -0
- data/vendor/tesseract-2.04/ccmain/docqual.cpp +1481 -0
- data/vendor/tesseract-2.04/ccmain/docqual.h +155 -0
- data/vendor/tesseract-2.04/ccmain/expandblob.cpp +82 -0
- data/vendor/tesseract-2.04/ccmain/expandblob.h +13 -0
- data/vendor/tesseract-2.04/ccmain/fixspace.cpp +989 -0
- data/vendor/tesseract-2.04/ccmain/fixspace.h +72 -0
- data/vendor/tesseract-2.04/ccmain/fixxht.cpp +825 -0
- data/vendor/tesseract-2.04/ccmain/fixxht.h +93 -0
- data/vendor/tesseract-2.04/ccmain/imgscale.cpp +154 -0
- data/vendor/tesseract-2.04/ccmain/imgscale.h +32 -0
- data/vendor/tesseract-2.04/ccmain/matmatch.cpp +391 -0
- data/vendor/tesseract-2.04/ccmain/matmatch.h +48 -0
- data/vendor/tesseract-2.04/ccmain/output.cpp +1273 -0
- data/vendor/tesseract-2.04/ccmain/output.h +116 -0
- data/vendor/tesseract-2.04/ccmain/pagewalk.cpp +666 -0
- data/vendor/tesseract-2.04/ccmain/pagewalk.h +155 -0
- data/vendor/tesseract-2.04/ccmain/paircmp.cpp +107 -0
- data/vendor/tesseract-2.04/ccmain/paircmp.h +43 -0
- data/vendor/tesseract-2.04/ccmain/pgedit.cpp +1867 -0
- data/vendor/tesseract-2.04/ccmain/pgedit.h +181 -0
- data/vendor/tesseract-2.04/ccmain/reject.cpp +1775 -0
- data/vendor/tesseract-2.04/ccmain/reject.h +181 -0
- data/vendor/tesseract-2.04/ccmain/scaleimg.cpp +366 -0
- data/vendor/tesseract-2.04/ccmain/scaleimg.h +35 -0
- data/vendor/tesseract-2.04/ccmain/tessbox.cpp +375 -0
- data/vendor/tesseract-2.04/ccmain/tessbox.h +110 -0
- data/vendor/tesseract-2.04/ccmain/tessedit.cpp +278 -0
- data/vendor/tesseract-2.04/ccmain/tessedit.h +49 -0
- data/vendor/tesseract-2.04/ccmain/tessembedded.cpp +110 -0
- data/vendor/tesseract-2.04/ccmain/tessembedded.h +38 -0
- data/vendor/tesseract-2.04/ccmain/tesseractfull.cc +37 -0
- data/vendor/tesseract-2.04/ccmain/tesseractmain.cpp +387 -0
- data/vendor/tesseract-2.04/ccmain/tesseractmain.h +58 -0
- data/vendor/tesseract-2.04/ccmain/tessio.h +110 -0
- data/vendor/tesseract-2.04/ccmain/tessvars.cpp +38 -0
- data/vendor/tesseract-2.04/ccmain/tessvars.h +48 -0
- data/vendor/tesseract-2.04/ccmain/tfacep.h +62 -0
- data/vendor/tesseract-2.04/ccmain/tfacepp.cpp +443 -0
- data/vendor/tesseract-2.04/ccmain/tfacepp.h +85 -0
- data/vendor/tesseract-2.04/ccmain/tstruct.cpp +549 -0
- data/vendor/tesseract-2.04/ccmain/tstruct.h +108 -0
- data/vendor/tesseract-2.04/ccmain/varabled.cpp +346 -0
- data/vendor/tesseract-2.04/ccmain/varabled.h +125 -0
- data/vendor/tesseract-2.04/ccmain/werdit.cpp +193 -0
- data/vendor/tesseract-2.04/ccmain/werdit.h +67 -0
- data/vendor/tesseract-2.04/ccstruct/Makefile.am +25 -0
- data/vendor/tesseract-2.04/ccstruct/Makefile.in +650 -0
- data/vendor/tesseract-2.04/ccstruct/blckerr.h +29 -0
- data/vendor/tesseract-2.04/ccstruct/blobbox.cpp +778 -0
- data/vendor/tesseract-2.04/ccstruct/blobbox.h +381 -0
- data/vendor/tesseract-2.04/ccstruct/blobs.cpp +247 -0
- data/vendor/tesseract-2.04/ccstruct/blobs.h +119 -0
- data/vendor/tesseract-2.04/ccstruct/blread.cpp +537 -0
- data/vendor/tesseract-2.04/ccstruct/blread.h +63 -0
- data/vendor/tesseract-2.04/ccstruct/callcpp.cpp +252 -0
- data/vendor/tesseract-2.04/ccstruct/coutln.cpp +650 -0
- data/vendor/tesseract-2.04/ccstruct/coutln.h +186 -0
- data/vendor/tesseract-2.04/ccstruct/crakedge.h +39 -0
- data/vendor/tesseract-2.04/ccstruct/genblob.cpp +133 -0
- data/vendor/tesseract-2.04/ccstruct/genblob.h +52 -0
- data/vendor/tesseract-2.04/ccstruct/hpddef.h +39 -0
- data/vendor/tesseract-2.04/ccstruct/hpdsizes.h +8 -0
- data/vendor/tesseract-2.04/ccstruct/ipoints.h +479 -0
- data/vendor/tesseract-2.04/ccstruct/labls.cpp +188 -0
- data/vendor/tesseract-2.04/ccstruct/labls.h +38 -0
- data/vendor/tesseract-2.04/ccstruct/linlsq.cpp +249 -0
- data/vendor/tesseract-2.04/ccstruct/linlsq.h +102 -0
- data/vendor/tesseract-2.04/ccstruct/lmedsq.cpp +453 -0
- data/vendor/tesseract-2.04/ccstruct/lmedsq.h +84 -0
- data/vendor/tesseract-2.04/ccstruct/mod128.cpp +100 -0
- data/vendor/tesseract-2.04/ccstruct/mod128.h +85 -0
- data/vendor/tesseract-2.04/ccstruct/normalis.cpp +176 -0
- data/vendor/tesseract-2.04/ccstruct/normalis.h +108 -0
- data/vendor/tesseract-2.04/ccstruct/ocrblock.cpp +369 -0
- data/vendor/tesseract-2.04/ccstruct/ocrblock.h +235 -0
- data/vendor/tesseract-2.04/ccstruct/ocrrow.cpp +216 -0
- data/vendor/tesseract-2.04/ccstruct/ocrrow.h +133 -0
- data/vendor/tesseract-2.04/ccstruct/pageblk.cpp +879 -0
- data/vendor/tesseract-2.04/ccstruct/pageblk.h +318 -0
- data/vendor/tesseract-2.04/ccstruct/pageres.cpp +330 -0
- data/vendor/tesseract-2.04/ccstruct/pageres.h +313 -0
- data/vendor/tesseract-2.04/ccstruct/pdblock.cpp +361 -0
- data/vendor/tesseract-2.04/ccstruct/pdblock.h +181 -0
- data/vendor/tesseract-2.04/ccstruct/pdclass.h +54 -0
- data/vendor/tesseract-2.04/ccstruct/points.cpp +102 -0
- data/vendor/tesseract-2.04/ccstruct/points.h +299 -0
- data/vendor/tesseract-2.04/ccstruct/polyaprx.cpp +588 -0
- data/vendor/tesseract-2.04/ccstruct/polyaprx.h +51 -0
- data/vendor/tesseract-2.04/ccstruct/polyblk.cpp +398 -0
- data/vendor/tesseract-2.04/ccstruct/polyblk.h +122 -0
- data/vendor/tesseract-2.04/ccstruct/polyblob.cpp +357 -0
- data/vendor/tesseract-2.04/ccstruct/polyblob.h +102 -0
- data/vendor/tesseract-2.04/ccstruct/polyvert.cpp +23 -0
- data/vendor/tesseract-2.04/ccstruct/polyvert.h +58 -0
- data/vendor/tesseract-2.04/ccstruct/poutline.cpp +441 -0
- data/vendor/tesseract-2.04/ccstruct/poutline.h +125 -0
- data/vendor/tesseract-2.04/ccstruct/quadlsq.cpp +147 -0
- data/vendor/tesseract-2.04/ccstruct/quadlsq.h +67 -0
- data/vendor/tesseract-2.04/ccstruct/quadratc.cpp +21 -0
- data/vendor/tesseract-2.04/ccstruct/quadratc.h +63 -0
- data/vendor/tesseract-2.04/ccstruct/quspline.cpp +382 -0
- data/vendor/tesseract-2.04/ccstruct/quspline.h +113 -0
- data/vendor/tesseract-2.04/ccstruct/ratngs.cpp +372 -0
- data/vendor/tesseract-2.04/ccstruct/ratngs.h +198 -0
- data/vendor/tesseract-2.04/ccstruct/rect.cpp +229 -0
- data/vendor/tesseract-2.04/ccstruct/rect.h +320 -0
- data/vendor/tesseract-2.04/ccstruct/rejctmap.cpp +545 -0
- data/vendor/tesseract-2.04/ccstruct/rejctmap.h +284 -0
- data/vendor/tesseract-2.04/ccstruct/rwpoly.cpp +89 -0
- data/vendor/tesseract-2.04/ccstruct/rwpoly.h +45 -0
- data/vendor/tesseract-2.04/ccstruct/statistc.cpp +905 -0
- data/vendor/tesseract-2.04/ccstruct/statistc.h +135 -0
- data/vendor/tesseract-2.04/ccstruct/stepblob.cpp +296 -0
- data/vendor/tesseract-2.04/ccstruct/stepblob.h +88 -0
- data/vendor/tesseract-2.04/ccstruct/txtregn.cpp +230 -0
- data/vendor/tesseract-2.04/ccstruct/txtregn.h +155 -0
- data/vendor/tesseract-2.04/ccstruct/vecfuncs.cpp +63 -0
- data/vendor/tesseract-2.04/ccstruct/vecfuncs.h +91 -0
- data/vendor/tesseract-2.04/ccstruct/werd.cpp +967 -0
- data/vendor/tesseract-2.04/ccstruct/werd.h +277 -0
- data/vendor/tesseract-2.04/ccutil/Makefile.am +19 -0
- data/vendor/tesseract-2.04/ccutil/Makefile.in +626 -0
- data/vendor/tesseract-2.04/ccutil/basedir.cpp +118 -0
- data/vendor/tesseract-2.04/ccutil/basedir.h +32 -0
- data/vendor/tesseract-2.04/ccutil/bits16.cpp +30 -0
- data/vendor/tesseract-2.04/ccutil/bits16.h +61 -0
- data/vendor/tesseract-2.04/ccutil/boxread.cpp +105 -0
- data/vendor/tesseract-2.04/ccutil/boxread.h +44 -0
- data/vendor/tesseract-2.04/ccutil/clst.cpp +626 -0
- data/vendor/tesseract-2.04/ccutil/clst.h +1085 -0
- data/vendor/tesseract-2.04/ccutil/debugwin.cpp +500 -0
- data/vendor/tesseract-2.04/ccutil/debugwin.h +103 -0
- data/vendor/tesseract-2.04/ccutil/elst.cpp +593 -0
- data/vendor/tesseract-2.04/ccutil/elst.h +1125 -0
- data/vendor/tesseract-2.04/ccutil/elst2.cpp +606 -0
- data/vendor/tesseract-2.04/ccutil/elst2.h +1121 -0
- data/vendor/tesseract-2.04/ccutil/errcode.cpp +104 -0
- data/vendor/tesseract-2.04/ccutil/errcode.h +104 -0
- data/vendor/tesseract-2.04/ccutil/fileerr.h +34 -0
- data/vendor/tesseract-2.04/ccutil/globaloc.cpp +115 -0
- data/vendor/tesseract-2.04/ccutil/globaloc.h +40 -0
- data/vendor/tesseract-2.04/ccutil/hashfn.cpp +57 -0
- data/vendor/tesseract-2.04/ccutil/hashfn.h +30 -0
- data/vendor/tesseract-2.04/ccutil/host.h +180 -0
- data/vendor/tesseract-2.04/ccutil/hosthplb.h +1 -0
- data/vendor/tesseract-2.04/ccutil/lsterr.h +43 -0
- data/vendor/tesseract-2.04/ccutil/mainblk.cpp +126 -0
- data/vendor/tesseract-2.04/ccutil/mainblk.h +39 -0
- data/vendor/tesseract-2.04/ccutil/memblk.cpp +1106 -0
- data/vendor/tesseract-2.04/ccutil/memblk.h +189 -0
- data/vendor/tesseract-2.04/ccutil/memry.cpp +532 -0
- data/vendor/tesseract-2.04/ccutil/memry.h +192 -0
- data/vendor/tesseract-2.04/ccutil/memryerr.h +38 -0
- data/vendor/tesseract-2.04/ccutil/mfcpch.cpp +5 -0
- data/vendor/tesseract-2.04/ccutil/mfcpch.h +37 -0
- data/vendor/tesseract-2.04/ccutil/ndminx.h +31 -0
- data/vendor/tesseract-2.04/ccutil/notdll.h +28 -0
- data/vendor/tesseract-2.04/ccutil/nwmain.h +176 -0
- data/vendor/tesseract-2.04/ccutil/ocrclass.h +345 -0
- data/vendor/tesseract-2.04/ccutil/ocrshell.cpp +772 -0
- data/vendor/tesseract-2.04/ccutil/ocrshell.h +191 -0
- data/vendor/tesseract-2.04/ccutil/platform.h +18 -0
- data/vendor/tesseract-2.04/ccutil/scanutils.cpp +543 -0
- data/vendor/tesseract-2.04/ccutil/scanutils.h +55 -0
- data/vendor/tesseract-2.04/ccutil/secname.h +9 -0
- data/vendor/tesseract-2.04/ccutil/serialis.cpp +117 -0
- data/vendor/tesseract-2.04/ccutil/serialis.h +93 -0
- data/vendor/tesseract-2.04/ccutil/stderr.h +26 -0
- data/vendor/tesseract-2.04/ccutil/strngs.cpp +495 -0
- data/vendor/tesseract-2.04/ccutil/strngs.h +138 -0
- data/vendor/tesseract-2.04/ccutil/tessclas.h +135 -0
- data/vendor/tesseract-2.04/ccutil/tessopt.cpp +61 -0
- data/vendor/tesseract-2.04/ccutil/tessopt.h +30 -0
- data/vendor/tesseract-2.04/ccutil/tprintf.cpp +122 -0
- data/vendor/tesseract-2.04/ccutil/tprintf.h +35 -0
- data/vendor/tesseract-2.04/ccutil/unichar.cpp +144 -0
- data/vendor/tesseract-2.04/ccutil/unichar.h +84 -0
- data/vendor/tesseract-2.04/ccutil/unicharmap.cpp +172 -0
- data/vendor/tesseract-2.04/ccutil/unicharmap.h +82 -0
- data/vendor/tesseract-2.04/ccutil/unicharset.cpp +307 -0
- data/vendor/tesseract-2.04/ccutil/unicharset.h +267 -0
- data/vendor/tesseract-2.04/ccutil/varable.cpp +672 -0
- data/vendor/tesseract-2.04/ccutil/varable.h +419 -0
- data/vendor/tesseract-2.04/classify/Makefile.am +24 -0
- data/vendor/tesseract-2.04/classify/Makefile.in +647 -0
- data/vendor/tesseract-2.04/classify/adaptive.cpp +535 -0
- data/vendor/tesseract-2.04/classify/adaptive.h +199 -0
- data/vendor/tesseract-2.04/classify/adaptmatch.cpp +2958 -0
- data/vendor/tesseract-2.04/classify/adaptmatch.h +86 -0
- data/vendor/tesseract-2.04/classify/baseline.cpp +58 -0
- data/vendor/tesseract-2.04/classify/baseline.h +91 -0
- data/vendor/tesseract-2.04/classify/blobclass.cpp +123 -0
- data/vendor/tesseract-2.04/classify/blobclass.h +49 -0
- data/vendor/tesseract-2.04/classify/chartoname.cpp +74 -0
- data/vendor/tesseract-2.04/classify/chartoname.h +21 -0
- data/vendor/tesseract-2.04/classify/cluster.cpp +2834 -0
- data/vendor/tesseract-2.04/classify/cluster.h +158 -0
- data/vendor/tesseract-2.04/classify/clusttool.cpp +507 -0
- data/vendor/tesseract-2.04/classify/clusttool.h +70 -0
- data/vendor/tesseract-2.04/classify/cutoffs.cpp +73 -0
- data/vendor/tesseract-2.04/classify/cutoffs.h +49 -0
- data/vendor/tesseract-2.04/classify/extern.h +32 -0
- data/vendor/tesseract-2.04/classify/extract.cpp +100 -0
- data/vendor/tesseract-2.04/classify/extract.h +36 -0
- data/vendor/tesseract-2.04/classify/featdefs.cpp +244 -0
- data/vendor/tesseract-2.04/classify/featdefs.h +71 -0
- data/vendor/tesseract-2.04/classify/flexfx.cpp +87 -0
- data/vendor/tesseract-2.04/classify/flexfx.h +34 -0
- data/vendor/tesseract-2.04/classify/float2int.cpp +126 -0
- data/vendor/tesseract-2.04/classify/float2int.h +65 -0
- data/vendor/tesseract-2.04/classify/fpoint.cpp +73 -0
- data/vendor/tesseract-2.04/classify/fpoint.h +63 -0
- data/vendor/tesseract-2.04/classify/fxdefs.cpp +74 -0
- data/vendor/tesseract-2.04/classify/fxdefs.h +93 -0
- data/vendor/tesseract-2.04/classify/fxid.h +69 -0
- data/vendor/tesseract-2.04/classify/hideedge.cpp +35 -0
- data/vendor/tesseract-2.04/classify/hideedge.h +76 -0
- data/vendor/tesseract-2.04/classify/intfx.cpp +608 -0
- data/vendor/tesseract-2.04/classify/intfx.h +63 -0
- data/vendor/tesseract-2.04/classify/intmatcher.cpp +1524 -0
- data/vendor/tesseract-2.04/classify/intmatcher.h +199 -0
- data/vendor/tesseract-2.04/classify/intproto.cpp +1823 -0
- data/vendor/tesseract-2.04/classify/intproto.h +320 -0
- data/vendor/tesseract-2.04/classify/kdtree.cpp +884 -0
- data/vendor/tesseract-2.04/classify/kdtree.h +118 -0
- data/vendor/tesseract-2.04/classify/mf.cpp +106 -0
- data/vendor/tesseract-2.04/classify/mf.h +43 -0
- data/vendor/tesseract-2.04/classify/mfdefs.cpp +58 -0
- data/vendor/tesseract-2.04/classify/mfdefs.h +60 -0
- data/vendor/tesseract-2.04/classify/mfoutline.cpp +1087 -0
- data/vendor/tesseract-2.04/classify/mfoutline.h +277 -0
- data/vendor/tesseract-2.04/classify/mfx.cpp +436 -0
- data/vendor/tesseract-2.04/classify/mfx.h +52 -0
- data/vendor/tesseract-2.04/classify/normfeat.cpp +132 -0
- data/vendor/tesseract-2.04/classify/normfeat.h +63 -0
- data/vendor/tesseract-2.04/classify/normmatch.cpp +305 -0
- data/vendor/tesseract-2.04/classify/normmatch.h +38 -0
- data/vendor/tesseract-2.04/classify/ocrfeatures.cpp +310 -0
- data/vendor/tesseract-2.04/classify/ocrfeatures.h +148 -0
- data/vendor/tesseract-2.04/classify/outfeat.cpp +262 -0
- data/vendor/tesseract-2.04/classify/outfeat.h +76 -0
- data/vendor/tesseract-2.04/classify/picofeat.cpp +297 -0
- data/vendor/tesseract-2.04/classify/picofeat.h +65 -0
- data/vendor/tesseract-2.04/classify/protos.cpp +472 -0
- data/vendor/tesseract-2.04/classify/protos.h +258 -0
- data/vendor/tesseract-2.04/classify/sigmenu.cpp +225 -0
- data/vendor/tesseract-2.04/classify/sigmenu.h +39 -0
- data/vendor/tesseract-2.04/classify/speckle.cpp +127 -0
- data/vendor/tesseract-2.04/classify/speckle.h +69 -0
- data/vendor/tesseract-2.04/classify/xform2d.cpp +120 -0
- data/vendor/tesseract-2.04/classify/xform2d.h +60 -0
- data/vendor/tesseract-2.04/config/config.guess +1466 -0
- data/vendor/tesseract-2.04/config/config.h.in +188 -0
- data/vendor/tesseract-2.04/config/config.sub +1579 -0
- data/vendor/tesseract-2.04/config/depcomp +530 -0
- data/vendor/tesseract-2.04/config/install-sh +269 -0
- data/vendor/tesseract-2.04/config/missing +198 -0
- data/vendor/tesseract-2.04/config/mkinstalldirs +40 -0
- data/vendor/tesseract-2.04/config/stamp-h.in +0 -0
- data/vendor/tesseract-2.04/configure +10424 -0
- data/vendor/tesseract-2.04/cutil/Makefile.am +14 -0
- data/vendor/tesseract-2.04/cutil/Makefile.in +612 -0
- data/vendor/tesseract-2.04/cutil/bitvec.cpp +115 -0
- data/vendor/tesseract-2.04/cutil/bitvec.h +100 -0
- data/vendor/tesseract-2.04/cutil/callcpp.h +190 -0
- data/vendor/tesseract-2.04/cutil/const.h +108 -0
- data/vendor/tesseract-2.04/cutil/cutil.cpp +92 -0
- data/vendor/tesseract-2.04/cutil/cutil.h +159 -0
- data/vendor/tesseract-2.04/cutil/danerror.cpp +144 -0
- data/vendor/tesseract-2.04/cutil/danerror.h +41 -0
- data/vendor/tesseract-2.04/cutil/debug.cpp +97 -0
- data/vendor/tesseract-2.04/cutil/debug.h +348 -0
- data/vendor/tesseract-2.04/cutil/efio.cpp +62 -0
- data/vendor/tesseract-2.04/cutil/efio.h +32 -0
- data/vendor/tesseract-2.04/cutil/emalloc.cpp +91 -0
- data/vendor/tesseract-2.04/cutil/emalloc.h +44 -0
- data/vendor/tesseract-2.04/cutil/freelist.cpp +75 -0
- data/vendor/tesseract-2.04/cutil/freelist.h +45 -0
- data/vendor/tesseract-2.04/cutil/funcdefs.h +35 -0
- data/vendor/tesseract-2.04/cutil/general.h +33 -0
- data/vendor/tesseract-2.04/cutil/globals.cpp +69 -0
- data/vendor/tesseract-2.04/cutil/globals.h +70 -0
- data/vendor/tesseract-2.04/cutil/listio.cpp +68 -0
- data/vendor/tesseract-2.04/cutil/listio.h +43 -0
- data/vendor/tesseract-2.04/cutil/minmax.h +40 -0
- data/vendor/tesseract-2.04/cutil/oldheap.cpp +337 -0
- data/vendor/tesseract-2.04/cutil/oldheap.h +126 -0
- data/vendor/tesseract-2.04/cutil/oldlist.cpp +393 -0
- data/vendor/tesseract-2.04/cutil/oldlist.h +350 -0
- data/vendor/tesseract-2.04/cutil/structures.cpp +66 -0
- data/vendor/tesseract-2.04/cutil/structures.h +112 -0
- data/vendor/tesseract-2.04/cutil/tessarray.cpp +115 -0
- data/vendor/tesseract-2.04/cutil/tessarray.h +166 -0
- data/vendor/tesseract-2.04/cutil/tordvars.cpp +95 -0
- data/vendor/tesseract-2.04/cutil/tordvars.h +61 -0
- data/vendor/tesseract-2.04/cutil/variables.cpp +317 -0
- data/vendor/tesseract-2.04/cutil/variables.h +170 -0
- data/vendor/tesseract-2.04/dict/Makefile.am +13 -0
- data/vendor/tesseract-2.04/dict/Makefile.in +609 -0
- data/vendor/tesseract-2.04/dict/choicearr.h +96 -0
- data/vendor/tesseract-2.04/dict/choices.cpp +210 -0
- data/vendor/tesseract-2.04/dict/choices.h +241 -0
- data/vendor/tesseract-2.04/dict/context.cpp +270 -0
- data/vendor/tesseract-2.04/dict/context.h +82 -0
- data/vendor/tesseract-2.04/dict/dawg.cpp +363 -0
- data/vendor/tesseract-2.04/dict/dawg.h +394 -0
- data/vendor/tesseract-2.04/dict/hyphen.cpp +84 -0
- data/vendor/tesseract-2.04/dict/hyphen.h +125 -0
- data/vendor/tesseract-2.04/dict/lookdawg.cpp +228 -0
- data/vendor/tesseract-2.04/dict/lookdawg.h +76 -0
- data/vendor/tesseract-2.04/dict/makedawg.cpp +449 -0
- data/vendor/tesseract-2.04/dict/makedawg.h +83 -0
- data/vendor/tesseract-2.04/dict/matchdefs.h +145 -0
- data/vendor/tesseract-2.04/dict/permdawg.cpp +415 -0
- data/vendor/tesseract-2.04/dict/permdawg.h +98 -0
- data/vendor/tesseract-2.04/dict/permngram.cpp +358 -0
- data/vendor/tesseract-2.04/dict/permngram.h +33 -0
- data/vendor/tesseract-2.04/dict/permnum.cpp +522 -0
- data/vendor/tesseract-2.04/dict/permnum.h +83 -0
- data/vendor/tesseract-2.04/dict/permute.cpp +1704 -0
- data/vendor/tesseract-2.04/dict/permute.h +93 -0
- data/vendor/tesseract-2.04/dict/reduce.cpp +424 -0
- data/vendor/tesseract-2.04/dict/reduce.h +112 -0
- data/vendor/tesseract-2.04/dict/states.cpp +382 -0
- data/vendor/tesseract-2.04/dict/states.h +111 -0
- data/vendor/tesseract-2.04/dict/stopper.cpp +1458 -0
- data/vendor/tesseract-2.04/dict/stopper.h +103 -0
- data/vendor/tesseract-2.04/dict/trie.cpp +683 -0
- data/vendor/tesseract-2.04/dict/trie.h +190 -0
- data/vendor/tesseract-2.04/dlltest/Makefile.am +2 -0
- data/vendor/tesseract-2.04/dlltest/Makefile.in +388 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.cpp +163 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.dsp +186 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.vcproj +637 -0
- data/vendor/tesseract-2.04/eurotext.tif +0 -0
- data/vendor/tesseract-2.04/image/Makefile.am +10 -0
- data/vendor/tesseract-2.04/image/Makefile.in +596 -0
- data/vendor/tesseract-2.04/image/bitstrm.cpp +157 -0
- data/vendor/tesseract-2.04/image/bitstrm.h +73 -0
- data/vendor/tesseract-2.04/image/img.h +336 -0
- data/vendor/tesseract-2.04/image/imgbmp.cpp +223 -0
- data/vendor/tesseract-2.04/image/imgbmp.h +50 -0
- data/vendor/tesseract-2.04/image/imgerrs.h +35 -0
- data/vendor/tesseract-2.04/image/imgio.cpp +321 -0
- data/vendor/tesseract-2.04/image/imgio.h +22 -0
- data/vendor/tesseract-2.04/image/imgs.cpp +1764 -0
- data/vendor/tesseract-2.04/image/imgs.h +102 -0
- data/vendor/tesseract-2.04/image/imgtiff.cpp +723 -0
- data/vendor/tesseract-2.04/image/imgtiff.h +89 -0
- data/vendor/tesseract-2.04/image/imgunpk.h +1377 -0
- data/vendor/tesseract-2.04/image/svshowim.cpp +40 -0
- data/vendor/tesseract-2.04/image/svshowim.h +25 -0
- data/vendor/tesseract-2.04/java/Makefile.am +4 -0
- data/vendor/tesseract-2.04/java/Makefile.in +473 -0
- data/vendor/tesseract-2.04/java/com/Makefile.am +1 -0
- data/vendor/tesseract-2.04/java/com/Makefile.in +470 -0
- data/vendor/tesseract-2.04/java/com/google/Makefile.am +1 -0
- data/vendor/tesseract-2.04/java/com/google/Makefile.in +470 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.am +4 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.in +473 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ScrollView.java +421 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.am +5 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.in +474 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEvent.java +87 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventHandler.java +296 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventType.java +31 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.am +7 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.in +476 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVAbstractMenuItem.java +58 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVCheckboxMenuItem.java +60 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVEmptyMenuItem.java +48 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVImageHandler.java +228 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuBar.java +130 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuItem.java +61 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVPopupMenu.java +142 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVSubMenuItem.java +41 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVWindow.java +643 -0
- data/vendor/tesseract-2.04/java/makefile +55 -0
- data/vendor/tesseract-2.04/pageseg/Makefile.am +13 -0
- data/vendor/tesseract-2.04/pageseg/Makefile.in +596 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.cpp +363 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.h +90 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.cpp +82 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.h +30 -0
- data/vendor/tesseract-2.04/pageseg/pageseg.cpp +170 -0
- data/vendor/tesseract-2.04/pageseg/pageseg.h +29 -0
- data/vendor/tesseract-2.04/phototest.tif +0 -0
- data/vendor/tesseract-2.04/tessdata/Makefile.am +31 -0
- data/vendor/tesseract-2.04/tessdata/Makefile.in +529 -0
- data/vendor/tesseract-2.04/tessdata/configs/Makefile.am +3 -0
- data/vendor/tesseract-2.04/tessdata/configs/Makefile.in +344 -0
- data/vendor/tesseract-2.04/tessdata/configs/api_config +1 -0
- data/vendor/tesseract-2.04/tessdata/configs/box.train +19 -0
- data/vendor/tesseract-2.04/tessdata/configs/box.train.stderr +18 -0
- data/vendor/tesseract-2.04/tessdata/configs/inter +4 -0
- data/vendor/tesseract-2.04/tessdata/configs/kannada +4 -0
- data/vendor/tesseract-2.04/tessdata/configs/makebox +1 -0
- data/vendor/tesseract-2.04/tessdata/configs/unlv +3 -0
- data/vendor/tesseract-2.04/tessdata/confsets +3 -0
- data/vendor/tesseract-2.04/tessdata/eng.DangAmbigs +39 -0
- data/vendor/tesseract-2.04/tessdata/eng.freq-dawg +0 -0
- data/vendor/tesseract-2.04/tessdata/eng.inttemp +0 -0
- data/vendor/tesseract-2.04/tessdata/eng.normproto +1247 -0
- data/vendor/tesseract-2.04/tessdata/eng.pffmtable +111 -0
- data/vendor/tesseract-2.04/tessdata/eng.unicharset +113 -0
- data/vendor/tesseract-2.04/tessdata/eng.user-words +921 -0
- data/vendor/tesseract-2.04/tessdata/eng.word-dawg +0 -0
- data/vendor/tesseract-2.04/tessdata/makedummies +8 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.am +3 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.in +344 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/batch +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/batch.nochop +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/matdemo +7 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/msdemo +13 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/nobatch +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/segdemo +9 -0
- data/vendor/tesseract-2.04/tessdll.cpp +351 -0
- data/vendor/tesseract-2.04/tessdll.dsp +2050 -0
- data/vendor/tesseract-2.04/tessdll.h +143 -0
- data/vendor/tesseract-2.04/tessdll.vcproj +5495 -0
- data/vendor/tesseract-2.04/tesseract.dsp +2124 -0
- data/vendor/tesseract-2.04/tesseract.dsw +116 -0
- data/vendor/tesseract-2.04/tesseract.sln +59 -0
- data/vendor/tesseract-2.04/tesseract.spec +188 -0
- data/vendor/tesseract-2.04/tesseract.vcproj +5859 -0
- data/vendor/tesseract-2.04/testing/Makefile.am +2 -0
- data/vendor/tesseract-2.04/testing/Makefile.in +312 -0
- data/vendor/tesseract-2.04/testing/README +43 -0
- data/vendor/tesseract-2.04/testing/counttestset.sh +61 -0
- data/vendor/tesseract-2.04/testing/reorgdata.sh +44 -0
- data/vendor/tesseract-2.04/testing/reports/1995.bus.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.doe3.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.mag.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.news.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/2.03.summary +9 -0
- data/vendor/tesseract-2.04/testing/reports/2.04.summary +9 -0
- data/vendor/tesseract-2.04/testing/runalltests.sh +110 -0
- data/vendor/tesseract-2.04/testing/runtestset.sh +61 -0
- data/vendor/tesseract-2.04/textord/Makefile.am +20 -0
- data/vendor/tesseract-2.04/textord/Makefile.in +624 -0
- data/vendor/tesseract-2.04/textord/blkocc.cpp +809 -0
- data/vendor/tesseract-2.04/textord/blkocc.h +327 -0
- data/vendor/tesseract-2.04/textord/blobcmpl.h +31 -0
- data/vendor/tesseract-2.04/textord/drawedg.cpp +77 -0
- data/vendor/tesseract-2.04/textord/drawedg.h +34 -0
- data/vendor/tesseract-2.04/textord/drawtord.cpp +469 -0
- data/vendor/tesseract-2.04/textord/drawtord.h +107 -0
- data/vendor/tesseract-2.04/textord/edgblob.cpp +412 -0
- data/vendor/tesseract-2.04/textord/edgblob.h +100 -0
- data/vendor/tesseract-2.04/textord/edgloop.cpp +211 -0
- data/vendor/tesseract-2.04/textord/edgloop.h +66 -0
- data/vendor/tesseract-2.04/textord/fpchop.cpp +1641 -0
- data/vendor/tesseract-2.04/textord/fpchop.h +238 -0
- data/vendor/tesseract-2.04/textord/gap_map.cpp +166 -0
- data/vendor/tesseract-2.04/textord/gap_map.h +40 -0
- data/vendor/tesseract-2.04/textord/makerow.cpp +2628 -0
- data/vendor/tesseract-2.04/textord/makerow.h +295 -0
- data/vendor/tesseract-2.04/textord/oldbasel.cpp +1761 -0
- data/vendor/tesseract-2.04/textord/oldbasel.h +195 -0
- data/vendor/tesseract-2.04/textord/pithsync.cpp +696 -0
- data/vendor/tesseract-2.04/textord/pithsync.h +134 -0
- data/vendor/tesseract-2.04/textord/pitsync1.cpp +425 -0
- data/vendor/tesseract-2.04/textord/pitsync1.h +135 -0
- data/vendor/tesseract-2.04/textord/scanedg.cpp +452 -0
- data/vendor/tesseract-2.04/textord/scanedg.h +74 -0
- data/vendor/tesseract-2.04/textord/sortflts.cpp +80 -0
- data/vendor/tesseract-2.04/textord/sortflts.h +64 -0
- data/vendor/tesseract-2.04/textord/tessout.h +76 -0
- data/vendor/tesseract-2.04/textord/topitch.cpp +2019 -0
- data/vendor/tesseract-2.04/textord/topitch.h +195 -0
- data/vendor/tesseract-2.04/textord/tordmain.cpp +907 -0
- data/vendor/tesseract-2.04/textord/tordmain.h +132 -0
- data/vendor/tesseract-2.04/textord/tospace.cpp +1939 -0
- data/vendor/tesseract-2.04/textord/tospace.h +193 -0
- data/vendor/tesseract-2.04/textord/tovars.cpp +87 -0
- data/vendor/tesseract-2.04/textord/tovars.h +94 -0
- data/vendor/tesseract-2.04/textord/underlin.cpp +312 -0
- data/vendor/tesseract-2.04/textord/underlin.h +53 -0
- data/vendor/tesseract-2.04/textord/wordseg.cpp +620 -0
- data/vendor/tesseract-2.04/textord/wordseg.h +70 -0
- data/vendor/tesseract-2.04/training/Makefile.am +54 -0
- data/vendor/tesseract-2.04/training/Makefile.in +720 -0
- data/vendor/tesseract-2.04/training/cnTraining.cpp +855 -0
- data/vendor/tesseract-2.04/training/cntraining.dsp +243 -0
- data/vendor/tesseract-2.04/training/cntraining.vcproj +950 -0
- data/vendor/tesseract-2.04/training/mergenf.cpp +451 -0
- data/vendor/tesseract-2.04/training/mergenf.h +106 -0
- data/vendor/tesseract-2.04/training/mfTraining.cpp +1341 -0
- data/vendor/tesseract-2.04/training/mftraining.dsp +285 -0
- data/vendor/tesseract-2.04/training/mftraining.vcproj +1055 -0
- data/vendor/tesseract-2.04/training/name2char.cpp +166 -0
- data/vendor/tesseract-2.04/training/name2char.h +38 -0
- data/vendor/tesseract-2.04/training/training.cpp +190 -0
- data/vendor/tesseract-2.04/training/training.h +130 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.cpp +140 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.dsp +335 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.vcproj +769 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.cpp +69 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.dsp +319 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.vcproj +1113 -0
- data/vendor/tesseract-2.04/viewer/Makefile.am +9 -0
- data/vendor/tesseract-2.04/viewer/Makefile.in +591 -0
- data/vendor/tesseract-2.04/viewer/scrollview.cpp +825 -0
- data/vendor/tesseract-2.04/viewer/scrollview.h +414 -0
- data/vendor/tesseract-2.04/viewer/svmnode.cpp +140 -0
- data/vendor/tesseract-2.04/viewer/svmnode.h +94 -0
- data/vendor/tesseract-2.04/viewer/svpaint.cpp +220 -0
- data/vendor/tesseract-2.04/viewer/svutil.cpp +347 -0
- data/vendor/tesseract-2.04/viewer/svutil.h +138 -0
- data/vendor/tesseract-2.04/wordrec/Makefile.am +23 -0
- data/vendor/tesseract-2.04/wordrec/Makefile.in +641 -0
- data/vendor/tesseract-2.04/wordrec/associate.cpp +62 -0
- data/vendor/tesseract-2.04/wordrec/associate.h +93 -0
- data/vendor/tesseract-2.04/wordrec/badwords.cpp +106 -0
- data/vendor/tesseract-2.04/wordrec/badwords.h +51 -0
- data/vendor/tesseract-2.04/wordrec/bestfirst.cpp +526 -0
- data/vendor/tesseract-2.04/wordrec/bestfirst.h +203 -0
- data/vendor/tesseract-2.04/wordrec/charsample.h +208 -0
- data/vendor/tesseract-2.04/wordrec/chop.cpp +458 -0
- data/vendor/tesseract-2.04/wordrec/chop.h +153 -0
- data/vendor/tesseract-2.04/wordrec/chopper.cpp +750 -0
- data/vendor/tesseract-2.04/wordrec/chopper.h +104 -0
- data/vendor/tesseract-2.04/wordrec/closed.cpp +136 -0
- data/vendor/tesseract-2.04/wordrec/closed.h +65 -0
- data/vendor/tesseract-2.04/wordrec/djmenus.cpp +118 -0
- data/vendor/tesseract-2.04/wordrec/djmenus.h +33 -0
- data/vendor/tesseract-2.04/wordrec/drawfx.cpp +92 -0
- data/vendor/tesseract-2.04/wordrec/drawfx.h +33 -0
- data/vendor/tesseract-2.04/wordrec/findseam.cpp +566 -0
- data/vendor/tesseract-2.04/wordrec/findseam.h +69 -0
- data/vendor/tesseract-2.04/wordrec/gradechop.cpp +226 -0
- data/vendor/tesseract-2.04/wordrec/gradechop.h +91 -0
- data/vendor/tesseract-2.04/wordrec/heuristic.cpp +194 -0
- data/vendor/tesseract-2.04/wordrec/heuristic.h +120 -0
- data/vendor/tesseract-2.04/wordrec/makechop.cpp +281 -0
- data/vendor/tesseract-2.04/wordrec/makechop.h +69 -0
- data/vendor/tesseract-2.04/wordrec/matchtab.cpp +191 -0
- data/vendor/tesseract-2.04/wordrec/matchtab.h +45 -0
- data/vendor/tesseract-2.04/wordrec/matrix.cpp +118 -0
- data/vendor/tesseract-2.04/wordrec/matrix.h +104 -0
- data/vendor/tesseract-2.04/wordrec/measure.h +135 -0
- data/vendor/tesseract-2.04/wordrec/metrics.cpp +363 -0
- data/vendor/tesseract-2.04/wordrec/metrics.h +130 -0
- data/vendor/tesseract-2.04/wordrec/mfvars.cpp +51 -0
- data/vendor/tesseract-2.04/wordrec/mfvars.h +27 -0
- data/vendor/tesseract-2.04/wordrec/msmenus.cpp +110 -0
- data/vendor/tesseract-2.04/wordrec/msmenus.h +45 -0
- data/vendor/tesseract-2.04/wordrec/olutil.cpp +153 -0
- data/vendor/tesseract-2.04/wordrec/olutil.h +128 -0
- data/vendor/tesseract-2.04/wordrec/outlines.cpp +172 -0
- data/vendor/tesseract-2.04/wordrec/outlines.h +148 -0
- data/vendor/tesseract-2.04/wordrec/pieces.cpp +410 -0
- data/vendor/tesseract-2.04/wordrec/pieces.h +154 -0
- data/vendor/tesseract-2.04/wordrec/plotedges.cpp +134 -0
- data/vendor/tesseract-2.04/wordrec/plotedges.h +71 -0
- data/vendor/tesseract-2.04/wordrec/plotseg.cpp +116 -0
- data/vendor/tesseract-2.04/wordrec/plotseg.h +73 -0
- data/vendor/tesseract-2.04/wordrec/render.cpp +152 -0
- data/vendor/tesseract-2.04/wordrec/render.h +58 -0
- data/vendor/tesseract-2.04/wordrec/seam.cpp +482 -0
- data/vendor/tesseract-2.04/wordrec/seam.h +136 -0
- data/vendor/tesseract-2.04/wordrec/split.cpp +182 -0
- data/vendor/tesseract-2.04/wordrec/split.h +115 -0
- data/vendor/tesseract-2.04/wordrec/tally.cpp +68 -0
- data/vendor/tesseract-2.04/wordrec/tally.h +94 -0
- data/vendor/tesseract-2.04/wordrec/tessinit.cpp +108 -0
- data/vendor/tesseract-2.04/wordrec/tessinit.h +46 -0
- data/vendor/tesseract-2.04/wordrec/tface.cpp +272 -0
- data/vendor/tesseract-2.04/wordrec/tface.h +35 -0
- data/vendor/tesseract-2.04/wordrec/wordclass.cpp +284 -0
- data/vendor/tesseract-2.04/wordrec/wordclass.h +64 -0
- metadata +708 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: list.h (Formerly list.h)
|
|
5
|
+
* Description: List processing procedures declarations.
|
|
6
|
+
* Author: Mark Seaman, SW Productivity
|
|
7
|
+
* Created: Fri Oct 16 14:37:00 1987
|
|
8
|
+
* Modified: Wed Dec 5 15:43:17 1990 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Reusable Software Component
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1987, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
********************************************************************************
|
|
25
|
+
*
|
|
26
|
+
* This file contains the interface for a set of general purpose list
|
|
27
|
+
* manipulation routines. For the implementation of these routines see
|
|
28
|
+
* the file "list.c".
|
|
29
|
+
*
|
|
30
|
+
********************************************************************************
|
|
31
|
+
*
|
|
32
|
+
* INDEX
|
|
33
|
+
* =======
|
|
34
|
+
*
|
|
35
|
+
* BASICS:
|
|
36
|
+
* -------
|
|
37
|
+
* first_node - Macro to return the first list node (not the cell).
|
|
38
|
+
* rest - Macro the return the second list cell
|
|
39
|
+
* pop - Destroy one list cell
|
|
40
|
+
* push - Create one list cell and set the node and next fields
|
|
41
|
+
*
|
|
42
|
+
* ITERATION:
|
|
43
|
+
* -----------------
|
|
44
|
+
* iterate - Macro to create a for loop to visit each cell.
|
|
45
|
+
* iterate_list - Macro to visit each cell using a local variable.
|
|
46
|
+
* for_each - Applies a function to each node.
|
|
47
|
+
*
|
|
48
|
+
* LIST CELL COUNTS:
|
|
49
|
+
* -----------------
|
|
50
|
+
* count - Returns the number of list cells in the list.
|
|
51
|
+
* second_node - Returns the second node.
|
|
52
|
+
* third - Returns the third node.
|
|
53
|
+
* fourth - Returns the fourth node.
|
|
54
|
+
* fifth - Returns the fifth node.
|
|
55
|
+
* last - Returns the last list cell.
|
|
56
|
+
* pair - Creates a list of two elements.
|
|
57
|
+
*
|
|
58
|
+
* COPYING:
|
|
59
|
+
* -----------------
|
|
60
|
+
* copy_first - Pushes the first element from list 1 onto list 2.
|
|
61
|
+
* copy - Create a copy of a list.
|
|
62
|
+
* concat - Creates a new list that is a copy of both input lists.
|
|
63
|
+
* delete_n - Creates a new list without the chosen elements.
|
|
64
|
+
* reverse - Creates a backwards copy of the input list.
|
|
65
|
+
* sort - Use quick sort to construct a new list.
|
|
66
|
+
* transform - Creates a new list by transforming each of the nodes.
|
|
67
|
+
*
|
|
68
|
+
* TRANFORMS: (Note: These functions all modify the input list.)
|
|
69
|
+
* ----------
|
|
70
|
+
* join - Concatenates list 1 and list 2.
|
|
71
|
+
* delete_d - Removes the requested elements from the list.
|
|
72
|
+
* transform_d - Modifies the list by applying a function to each node.
|
|
73
|
+
* insert - Add a new element into this spot in a list. (not NIL)
|
|
74
|
+
* push_last - Add a new element onto the end of a list.
|
|
75
|
+
* reverse_d - Reverse a list and destroy the old one.
|
|
76
|
+
*
|
|
77
|
+
* ASSOCIATED LISTS:
|
|
78
|
+
* -----------------
|
|
79
|
+
* adelete - Remove a particular entry from an associated list.
|
|
80
|
+
* assoc - Find an entry in an associated list that matches a key.
|
|
81
|
+
* match - Return the data element of an a-list entry.
|
|
82
|
+
*
|
|
83
|
+
* DISPLAY:
|
|
84
|
+
* -----------------
|
|
85
|
+
* print_cell - Print a hex dump of a list cell.
|
|
86
|
+
* show - Displays a string and a list (using lprint).
|
|
87
|
+
*
|
|
88
|
+
* SETS:
|
|
89
|
+
* -----
|
|
90
|
+
* adjoin - Add a new element to list if it does not exist already.
|
|
91
|
+
* intersection - Create a new list that is the set intersection.
|
|
92
|
+
* set_union - Create a new list that is the set intersection.
|
|
93
|
+
* set_difference - Create a new list that is the set difference.
|
|
94
|
+
* s_adjoin - Add an element to a sort list if it is not there.
|
|
95
|
+
* s_intersection - Set intersection on a sorted list. Modifies old list.
|
|
96
|
+
* s_union - Set intersection on a sorted list. Modifies old list.
|
|
97
|
+
* search - Return the pointer to the list cell whose node matches.
|
|
98
|
+
*
|
|
99
|
+
* COMPARISONS:
|
|
100
|
+
* -----------------
|
|
101
|
+
* is_same - Compares each node to the key.
|
|
102
|
+
* is_not_same - Compares each node to the key.
|
|
103
|
+
* is_key - Compares first of each node to the key.
|
|
104
|
+
* is_not_key - Compares first of each node to the key.
|
|
105
|
+
*
|
|
106
|
+
* CELL OPERATIONS:
|
|
107
|
+
* -----------------
|
|
108
|
+
* new_cell - Obtain a new list cell from the free list. Allocate.
|
|
109
|
+
* free_cell - Return a list cell to the free list.
|
|
110
|
+
* destroy - Return all list cells in a list.
|
|
111
|
+
* destroy_nodes - Apply a function to each list cell and destroy the list.
|
|
112
|
+
* set_node - Assign the node field in a list cell.
|
|
113
|
+
* set_rest - Assign the next field in a list cell.
|
|
114
|
+
*
|
|
115
|
+
***********************************************************************/
|
|
116
|
+
|
|
117
|
+
#ifndef LIST_H
|
|
118
|
+
#define LIST_H
|
|
119
|
+
|
|
120
|
+
#include "cutil.h"
|
|
121
|
+
|
|
122
|
+
/*----------------------------------------------------------------------
|
|
123
|
+
T y p e s
|
|
124
|
+
----------------------------------------------------------------------*/
|
|
125
|
+
#define NIL (LIST) 0
|
|
126
|
+
typedef struct list_rec
|
|
127
|
+
{
|
|
128
|
+
struct list_rec *node;
|
|
129
|
+
struct list_rec *next;
|
|
130
|
+
} _LIST_;
|
|
131
|
+
typedef _LIST_ *LIST;
|
|
132
|
+
|
|
133
|
+
/*----------------------------------------------------------------------
|
|
134
|
+
M a c r o s
|
|
135
|
+
----------------------------------------------------------------------*/
|
|
136
|
+
/* Predefinitions */
|
|
137
|
+
#define rest(l) ((l) ? (l)->next : NIL)
|
|
138
|
+
#define first_node(l) ((l) ? (l)->node : NIL)
|
|
139
|
+
|
|
140
|
+
/**********************************************************************
|
|
141
|
+
* c o p y f i r s t
|
|
142
|
+
*
|
|
143
|
+
* Do the appropriate kind a push operation to copy the first node from
|
|
144
|
+
* one list to another.
|
|
145
|
+
*
|
|
146
|
+
**********************************************************************/
|
|
147
|
+
|
|
148
|
+
#define copy_first(l1,l2) \
|
|
149
|
+
(l2=push(l2, first_node(l1)))
|
|
150
|
+
|
|
151
|
+
/**********************************************************************
|
|
152
|
+
* i t e r a t e
|
|
153
|
+
*
|
|
154
|
+
* Visit each node in the list. Replace the old list with the list
|
|
155
|
+
* minus the head. Continue until the list is NIL.
|
|
156
|
+
**********************************************************************/
|
|
157
|
+
|
|
158
|
+
#define iterate(l) \
|
|
159
|
+
for (; (l) != NIL; (l) = rest (l))
|
|
160
|
+
|
|
161
|
+
/**********************************************************************
|
|
162
|
+
* i t e r a t e l i s t
|
|
163
|
+
*
|
|
164
|
+
* Visit each node in the list (l). Use a local variable (x) to iterate
|
|
165
|
+
* through all of the list cells. This macro is identical to iterate
|
|
166
|
+
* except that it does not lose the original list.
|
|
167
|
+
**********************************************************************/
|
|
168
|
+
|
|
169
|
+
#define iterate_list(x,l) \
|
|
170
|
+
for ((x)=(l); (x)!=0; (x)=rest(x))
|
|
171
|
+
|
|
172
|
+
/**********************************************************************
|
|
173
|
+
* j o i n o n
|
|
174
|
+
*
|
|
175
|
+
* Add another list onto the tail of this one. The list given as an input
|
|
176
|
+
* parameter is modified.
|
|
177
|
+
**********************************************************************/
|
|
178
|
+
|
|
179
|
+
#define JOIN_ON(list1,list2) \
|
|
180
|
+
((list1) = join ((list1), (list2)))
|
|
181
|
+
|
|
182
|
+
/**********************************************************************
|
|
183
|
+
* p o p o f f
|
|
184
|
+
*
|
|
185
|
+
* Add a cell onto the front of a list. The list given as an input
|
|
186
|
+
* parameter is modified.
|
|
187
|
+
**********************************************************************/
|
|
188
|
+
|
|
189
|
+
#define pop_off(list) \
|
|
190
|
+
((list) = pop (list))
|
|
191
|
+
|
|
192
|
+
/**********************************************************************
|
|
193
|
+
* p u s h o n
|
|
194
|
+
*
|
|
195
|
+
* Add a cell onto the front of a list. The list given as an input
|
|
196
|
+
* parameter is modified.
|
|
197
|
+
**********************************************************************/
|
|
198
|
+
|
|
199
|
+
#define push_on(list,thing) \
|
|
200
|
+
((list) = push (list, (LIST) (thing)))
|
|
201
|
+
|
|
202
|
+
/**********************************************************************
|
|
203
|
+
* s e c o n d
|
|
204
|
+
*
|
|
205
|
+
* Return the contents of the second list element.
|
|
206
|
+
*
|
|
207
|
+
* #define second_node(l) first_node (rest (l))
|
|
208
|
+
**********************************************************************/
|
|
209
|
+
|
|
210
|
+
#define second_node(l) \
|
|
211
|
+
first_node (rest (l))
|
|
212
|
+
|
|
213
|
+
/**********************************************************************
|
|
214
|
+
* s e t r e s t
|
|
215
|
+
*
|
|
216
|
+
* Change the "next" field of a list element to point to a desired place.
|
|
217
|
+
*
|
|
218
|
+
* #define set_rest(l,node) l->next = node;
|
|
219
|
+
**********************************************************************/
|
|
220
|
+
|
|
221
|
+
#define set_rest(l,cell)\
|
|
222
|
+
((l)->next = (cell))
|
|
223
|
+
|
|
224
|
+
/**********************************************************************
|
|
225
|
+
* t h i r d
|
|
226
|
+
*
|
|
227
|
+
* Return the contents of the third list element.
|
|
228
|
+
*
|
|
229
|
+
* #define third(l) first_node (rest (rest (l)))
|
|
230
|
+
**********************************************************************/
|
|
231
|
+
|
|
232
|
+
#define third(l) \
|
|
233
|
+
first_node (rest (rest (l)))
|
|
234
|
+
|
|
235
|
+
/*----------------------------------------------------------------------
|
|
236
|
+
Public Funtion Prototypes
|
|
237
|
+
----------------------------------------------------------------------*/
|
|
238
|
+
int count(LIST var_list);
|
|
239
|
+
|
|
240
|
+
LIST delete_d(LIST list, void *key, int_compare is_equal);
|
|
241
|
+
|
|
242
|
+
LIST destroy(LIST list);
|
|
243
|
+
|
|
244
|
+
void destroy_nodes(LIST list, void_dest destructor);
|
|
245
|
+
|
|
246
|
+
void insert(LIST list, void *node);
|
|
247
|
+
|
|
248
|
+
int is_same_node(void *item1, void *item2);
|
|
249
|
+
|
|
250
|
+
int is_same(void *item1, void *item2);
|
|
251
|
+
|
|
252
|
+
LIST join(LIST list1, LIST list2);
|
|
253
|
+
|
|
254
|
+
LIST last(LIST var_list);
|
|
255
|
+
|
|
256
|
+
void *nth_cell(LIST var_list, int item_num);
|
|
257
|
+
|
|
258
|
+
LIST pop(LIST list);
|
|
259
|
+
|
|
260
|
+
LIST push(LIST list, void *element);
|
|
261
|
+
|
|
262
|
+
LIST push_last(LIST list, void *item);
|
|
263
|
+
|
|
264
|
+
LIST reverse(LIST list);
|
|
265
|
+
|
|
266
|
+
LIST reverse_d(LIST list);
|
|
267
|
+
|
|
268
|
+
LIST s_adjoin(LIST var_list, void *variable, int_compare compare);
|
|
269
|
+
|
|
270
|
+
LIST search(LIST list, void *key, int_compare is_equal);
|
|
271
|
+
|
|
272
|
+
/*
|
|
273
|
+
#if defined(__STDC__) || defined(__cplusplus)
|
|
274
|
+
# define _ARGS(s) s
|
|
275
|
+
#else
|
|
276
|
+
# define _ARGS(s) ()
|
|
277
|
+
#endif
|
|
278
|
+
|
|
279
|
+
typedef void (*destructor) _ARGS((LIST l));
|
|
280
|
+
|
|
281
|
+
typedef LIST (*list_proc) _ARGS((LIST a));
|
|
282
|
+
|
|
283
|
+
int count
|
|
284
|
+
_ARGS((LIST var_list));
|
|
285
|
+
|
|
286
|
+
LIST delete_d
|
|
287
|
+
_ARGS((LIST list,
|
|
288
|
+
LIST key,
|
|
289
|
+
int_compare is_equal));
|
|
290
|
+
|
|
291
|
+
LIST destroy
|
|
292
|
+
_ARGS((LIST list));
|
|
293
|
+
|
|
294
|
+
LIST destroy_nodes
|
|
295
|
+
_ARGS((LIST list,
|
|
296
|
+
void_dest destructor));
|
|
297
|
+
|
|
298
|
+
void insert
|
|
299
|
+
_ARGS((LIST list,
|
|
300
|
+
LIST node));
|
|
301
|
+
|
|
302
|
+
int is_same_node
|
|
303
|
+
_ARGS((LIST s1,
|
|
304
|
+
LIST s2));
|
|
305
|
+
|
|
306
|
+
int is_same
|
|
307
|
+
_ARGS((LIST s1,
|
|
308
|
+
LIST s2));
|
|
309
|
+
|
|
310
|
+
LIST join
|
|
311
|
+
_ARGS((LIST list1,
|
|
312
|
+
LIST list2));
|
|
313
|
+
|
|
314
|
+
LIST last
|
|
315
|
+
_ARGS((LIST var_list));
|
|
316
|
+
|
|
317
|
+
LIST nth_cell
|
|
318
|
+
_ARGS((LIST var_list,
|
|
319
|
+
int item_num));
|
|
320
|
+
|
|
321
|
+
LIST pop
|
|
322
|
+
_ARGS((LIST list));
|
|
323
|
+
|
|
324
|
+
LIST push
|
|
325
|
+
_ARGS((LIST list,
|
|
326
|
+
LIST element));
|
|
327
|
+
|
|
328
|
+
LIST push_last
|
|
329
|
+
_ARGS((LIST list,
|
|
330
|
+
LIST item));
|
|
331
|
+
|
|
332
|
+
LIST reverse
|
|
333
|
+
_ARGS((LIST list));
|
|
334
|
+
|
|
335
|
+
LIST reverse_d
|
|
336
|
+
_ARGS((LIST list));
|
|
337
|
+
|
|
338
|
+
LIST s_adjoin
|
|
339
|
+
_ARGS((LIST var_list,
|
|
340
|
+
LIST variable,
|
|
341
|
+
int_compare compare));
|
|
342
|
+
|
|
343
|
+
LIST search
|
|
344
|
+
_ARGS((LIST list,
|
|
345
|
+
LIST key,
|
|
346
|
+
int_compare is_equal));
|
|
347
|
+
|
|
348
|
+
#undef _ARGS
|
|
349
|
+
*/
|
|
350
|
+
#endif
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: structures.c (Formerly structures.c)
|
|
5
|
+
* Description: Allocate all the different types of structures.
|
|
6
|
+
* Author: Mark Seaman, OCR Technology
|
|
7
|
+
* Created: Wed May 30 10:27:26 1990
|
|
8
|
+
* Modified: Mon Jul 15 10:39:18 1991 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Experimental (Do Not Distribute)
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1990, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
*********************************************************************************/
|
|
25
|
+
/*----------------------------------------------------------------------
|
|
26
|
+
I n c l u d e s
|
|
27
|
+
----------------------------------------------------------------------*/
|
|
28
|
+
#include "structures.h"
|
|
29
|
+
#include "callcpp.h"
|
|
30
|
+
|
|
31
|
+
#include <stdio.h>
|
|
32
|
+
|
|
33
|
+
/*----------------------------------------------------------------------
|
|
34
|
+
M a c r o s
|
|
35
|
+
----------------------------------------------------------------------*/
|
|
36
|
+
#define BLOBBLOCK 64 /*no allocated together */
|
|
37
|
+
#define OUTLINEBLOCK 300 /*of each type */
|
|
38
|
+
#define NODEBLOCK 36 /*blocks all about 1K bytes */
|
|
39
|
+
#define EDGEPTBLOCK 50
|
|
40
|
+
#define WERDBLOCK 42
|
|
41
|
+
#define LISTBLOCK 300
|
|
42
|
+
|
|
43
|
+
/*----------------------------------------------------------------------
|
|
44
|
+
V a r i a b l e s
|
|
45
|
+
----------------------------------------------------------------------*/
|
|
46
|
+
int structblockcount = 0;
|
|
47
|
+
void_void memory_print_functions[NUM_DATA_TYPES];
|
|
48
|
+
int max_data_types = 0;
|
|
49
|
+
|
|
50
|
+
/*----------------------------------------------------------------------
|
|
51
|
+
F u n c t i o n s
|
|
52
|
+
----------------------------------------------------------------------*/
|
|
53
|
+
makestructure (newword, oldword, printword, TWERD,
|
|
54
|
+
freeword, WERDBLOCK, "TWERD", wordcount)
|
|
55
|
+
makestructure (newoutline, oldoutline, printol, TESSLINE,
|
|
56
|
+
freeoutline, OUTLINEBLOCK, "TESSLINE", outlinecount);
|
|
57
|
+
|
|
58
|
+
makestructure (new_cell, free_cell, printcell, _LIST_,
|
|
59
|
+
freelist, LISTBLOCK, "LIST", listcount);
|
|
60
|
+
|
|
61
|
+
newstructure (newblob, TBLOB, freeblob, BLOBBLOCK, "newblob", blobcount);
|
|
62
|
+
oldstructure (oldblob, TBLOB, freeblob, "BLOB", blobcount);
|
|
63
|
+
|
|
64
|
+
newstructure (newedgept, EDGEPT, freeedgept, EDGEPTBLOCK, "newedgept",
|
|
65
|
+
edgeptcount);
|
|
66
|
+
oldstructure (oldedgept, EDGEPT, freeedgept, "EDGEPT", edgeptcount);
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: structures.h (Formerly structures.h)
|
|
5
|
+
* Description: Allocate all the different types of structures.
|
|
6
|
+
* Author: Mark Seaman, OCR Technology
|
|
7
|
+
* Created: Wed May 30 10:12:12 1990
|
|
8
|
+
* Modified: Tue May 21 11:07:47 1991 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Experimental (Do Not Distribute)
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1990, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
*********************************************************************************/
|
|
25
|
+
#ifndef STRUCTURES_H
|
|
26
|
+
#define STRUCTURES_H
|
|
27
|
+
|
|
28
|
+
/*----------------------------------------------------------------------
|
|
29
|
+
I n c l u d e s
|
|
30
|
+
----------------------------------------------------------------------*/
|
|
31
|
+
#include "tessclas.h"
|
|
32
|
+
#include "oldlist.h"
|
|
33
|
+
#include "freelist.h"
|
|
34
|
+
#include "danerror.h"
|
|
35
|
+
|
|
36
|
+
#define NUM_DATA_TYPES 20
|
|
37
|
+
|
|
38
|
+
extern int max_data_types;
|
|
39
|
+
extern void_void memory_print_functions[NUM_DATA_TYPES];
|
|
40
|
+
|
|
41
|
+
/*----------------------------------------------------------------------
|
|
42
|
+
M a c r o s
|
|
43
|
+
----------------------------------------------------------------------*/
|
|
44
|
+
/**********************************************************************
|
|
45
|
+
* makestructure
|
|
46
|
+
*
|
|
47
|
+
* Allocate a chunk of memory for a particular data type. This macro
|
|
48
|
+
* defines an allocation, deallocation, and status printing function
|
|
49
|
+
* for each new data type.
|
|
50
|
+
**********************************************************************/
|
|
51
|
+
|
|
52
|
+
#define makestructure(newfunc,old,print,type,nextfree,blocksize,typestring,usecount) \
|
|
53
|
+
type *newfunc() \
|
|
54
|
+
{ \
|
|
55
|
+
return new type; \
|
|
56
|
+
} \
|
|
57
|
+
\
|
|
58
|
+
\
|
|
59
|
+
\
|
|
60
|
+
void old(type* deadelement) \
|
|
61
|
+
{ \
|
|
62
|
+
delete deadelement; \
|
|
63
|
+
} \
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
/**********************************************************************
|
|
67
|
+
* newstructure
|
|
68
|
+
*
|
|
69
|
+
* Allocate a chunk of memory for a particular data type.
|
|
70
|
+
**********************************************************************/
|
|
71
|
+
|
|
72
|
+
#define newstructure(name,type,nextfree,blocksize,errorstring,usecount)\
|
|
73
|
+
type *name() /*returns a new type*/\
|
|
74
|
+
{\
|
|
75
|
+
return new type;\
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**********************************************************************
|
|
79
|
+
* oldstructure
|
|
80
|
+
*
|
|
81
|
+
* Returns a structure to the freelist
|
|
82
|
+
**********************************************************************/
|
|
83
|
+
|
|
84
|
+
#define oldstructure(name,type,nextfree,stringtype,usecount)\
|
|
85
|
+
\
|
|
86
|
+
type *name(type* deadelement)\
|
|
87
|
+
{\
|
|
88
|
+
type *returnelement; /*return next ptr*/\
|
|
89
|
+
\
|
|
90
|
+
returnelement=deadelement->next; /*return link*/\
|
|
91
|
+
delete deadelement; \
|
|
92
|
+
return returnelement;\
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/*----------------------------------------------------------------------
|
|
96
|
+
F u n c t i o n s
|
|
97
|
+
----------------------------------------------------------------------*/
|
|
98
|
+
extern TBLOB *newblob();
|
|
99
|
+
extern TBLOB *oldblob(TBLOB *);
|
|
100
|
+
|
|
101
|
+
extern TESSLINE *newoutline();
|
|
102
|
+
extern void oldoutline(TESSLINE *);
|
|
103
|
+
|
|
104
|
+
extern EDGEPT *newedgept();
|
|
105
|
+
extern EDGEPT *oldedgept(EDGEPT *);
|
|
106
|
+
|
|
107
|
+
extern TWERD *newword();
|
|
108
|
+
extern void oldword(TWERD *);
|
|
109
|
+
|
|
110
|
+
extern LIST new_cell();
|
|
111
|
+
extern void free_cell(LIST);
|
|
112
|
+
#endif
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
################################################################################
|
|
3
|
+
#
|
|
4
|
+
# File: array.c
|
|
5
|
+
# Description: Dynamic Array of Strings
|
|
6
|
+
# Author: Mark Seaman, Software Productivity
|
|
7
|
+
# Created: Thu Jul 23 13:24:09 1987
|
|
8
|
+
# Modified: Wed Mar 6 15:18:33 1991 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
# Language: C
|
|
10
|
+
# Package: N/A
|
|
11
|
+
# Status: Reusable Software Component
|
|
12
|
+
#
|
|
13
|
+
# (c) Copyright 1987, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
################################################################################
|
|
25
|
+
|
|
26
|
+
This file contains the implentations of a set of dynamic array of string
|
|
27
|
+
manipulation routines. For the interface definitions and documentation
|
|
28
|
+
of these routines see the file "das.h".
|
|
29
|
+
|
|
30
|
+
***************************************************************************/
|
|
31
|
+
|
|
32
|
+
#include "tessarray.h"
|
|
33
|
+
#include "callcpp.h"
|
|
34
|
+
#include "freelist.h"
|
|
35
|
+
|
|
36
|
+
#include <stdio.h>
|
|
37
|
+
#include <string.h>
|
|
38
|
+
#ifdef __MSW32__
|
|
39
|
+
#include <process.h>
|
|
40
|
+
#endif
|
|
41
|
+
#include <ctype.h>
|
|
42
|
+
#if MAC_OR_DOS
|
|
43
|
+
#include <stdlib.h>
|
|
44
|
+
#endif
|
|
45
|
+
|
|
46
|
+
/**********************************************************************
|
|
47
|
+
* array_insert
|
|
48
|
+
*
|
|
49
|
+
* Insert a data element into a particular spot in the array. Move all
|
|
50
|
+
* the elements in the array (past that spot) down one to make room for
|
|
51
|
+
* the new element.
|
|
52
|
+
**********************************************************************/
|
|
53
|
+
ARRAY array_insert(ARRAY array, int index, void *value) {
|
|
54
|
+
int x;
|
|
55
|
+
|
|
56
|
+
array = array_push (array, NULL);
|
|
57
|
+
for (x = array_count (array) - 1; x > index; x--)
|
|
58
|
+
array_value (array, x) = array_value (array, x - 1);
|
|
59
|
+
array_value (array, index) = value;
|
|
60
|
+
return (array);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
/**********************************************************************
|
|
65
|
+
* array_new
|
|
66
|
+
*
|
|
67
|
+
* Create a new array with a certain number of elements. If the number
|
|
68
|
+
* of elements requested is 0 then the default number will be used.
|
|
69
|
+
**********************************************************************/
|
|
70
|
+
ARRAY array_new(int num) {
|
|
71
|
+
ARRAY temp;
|
|
72
|
+
int x;
|
|
73
|
+
|
|
74
|
+
if (num == 0)
|
|
75
|
+
num = DEFAULT_SIZE;
|
|
76
|
+
temp = (ARRAY) memalloc ((num - 2) * sizeof (char *) +
|
|
77
|
+
sizeof (struct array_record));
|
|
78
|
+
if (!temp) {
|
|
79
|
+
cprintf ("error: Out of memory in array_new\n");
|
|
80
|
+
exit (1); //?err_exit ();
|
|
81
|
+
}
|
|
82
|
+
array_count (temp) = 0;
|
|
83
|
+
array_limit (temp) = num;
|
|
84
|
+
for (x = 0; x < num; x++)
|
|
85
|
+
array_value (temp, x) = (char *) 0;
|
|
86
|
+
return (temp);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
/**********************************************************************
|
|
91
|
+
* array_push
|
|
92
|
+
*
|
|
93
|
+
* Add a new element onto the top of the array. If there is not room
|
|
94
|
+
* more room is made by "realloc"ing the array. This means that the
|
|
95
|
+
* new array location may change. All previous references to its old
|
|
96
|
+
* location may no longer be valid.
|
|
97
|
+
**********************************************************************/
|
|
98
|
+
ARRAY array_push(ARRAY array, void *value) {
|
|
99
|
+
if (array_count (array) == array_limit (array)) {
|
|
100
|
+
array = (ARRAY) memrealloc (array, (array_limit (array) * 2 - 2) *
|
|
101
|
+
sizeof (char *) +
|
|
102
|
+
sizeof (struct array_record),
|
|
103
|
+
(array_limit (array) -
|
|
104
|
+
2) * sizeof (char *) +
|
|
105
|
+
sizeof (struct array_record));
|
|
106
|
+
if (!array) {
|
|
107
|
+
cprintf ("error: Out of memory in array_push\n");
|
|
108
|
+
exit (1); //?err_exit ();
|
|
109
|
+
}
|
|
110
|
+
array_limit (array) *= 2;
|
|
111
|
+
}
|
|
112
|
+
array_count (array)++;
|
|
113
|
+
array_top (array) = value;
|
|
114
|
+
return (array);
|
|
115
|
+
}
|