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,500 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: debugwin.cpp
|
|
3
|
+
* Description: Portable debug window class.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Wed Feb 21 15:36:59 MST 1996
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1996, Hewlett-Packard Co.
|
|
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 <stdarg.h>
|
|
22
|
+
#include "debugwin.h"
|
|
23
|
+
|
|
24
|
+
DLLSYM INT_VAR (debug_lines, 256, "Number of lines in debug window");
|
|
25
|
+
|
|
26
|
+
#ifndef GRAPHICS_DISABLED
|
|
27
|
+
|
|
28
|
+
#ifdef __MAC__
|
|
29
|
+
#include <ltextedit.h>
|
|
30
|
+
#include <lwindow.h>
|
|
31
|
+
//#include <console.h>
|
|
32
|
+
|
|
33
|
+
#define scrl_SCROLLER 101
|
|
34
|
+
#define text_FLOWED 100
|
|
35
|
+
|
|
36
|
+
static LCommander *pCommander = NULL;
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
//NT implementation
|
|
40
|
+
#if defined(__MSW32__) && !defined(_CONSOLE)
|
|
41
|
+
|
|
42
|
+
#include <io.h>
|
|
43
|
+
#define ID_DEBUG_MSG 32779
|
|
44
|
+
|
|
45
|
+
/**********************************************************************
|
|
46
|
+
* DEBUG_WIN::DEBUG_WIN
|
|
47
|
+
*
|
|
48
|
+
* Create a debug window with size according to the arguments.
|
|
49
|
+
**********************************************************************/
|
|
50
|
+
|
|
51
|
+
DEBUG_WIN::DEBUG_WIN( //constructor
|
|
52
|
+
const char *title, //of window
|
|
53
|
+
inT32 xpos, //initial position
|
|
54
|
+
inT32 ypos, //in pixels
|
|
55
|
+
inT32 xsize, //initial size
|
|
56
|
+
inT32 ysize, //in pixels
|
|
57
|
+
inT32 buflines //default scroll size
|
|
58
|
+
) {
|
|
59
|
+
char cmd[1024];
|
|
60
|
+
int parm; //output from scrolrwin
|
|
61
|
+
STARTUPINFO start_info; //process control
|
|
62
|
+
PROCESS_INFORMATION proc_info; //process ids
|
|
63
|
+
SECURITY_ATTRIBUTES security; //for handles
|
|
64
|
+
|
|
65
|
+
handle = NULL;
|
|
66
|
+
shm_hand = NULL;
|
|
67
|
+
shm_mem = NULL;
|
|
68
|
+
msg_end = NULL;
|
|
69
|
+
dbg_process = NULL; //save handles
|
|
70
|
+
dbg_thread = NULL;
|
|
71
|
+
security.nLength = sizeof (security);
|
|
72
|
+
security.lpSecurityDescriptor = NULL;
|
|
73
|
+
security.bInheritHandle = TRUE;//make it inheritable
|
|
74
|
+
//anonymous
|
|
75
|
+
shm_hand = CreateFileMapping ((HANDLE) 0xffffffff, &security, PAGE_READWRITE, 0, 4096, NULL);
|
|
76
|
+
if (shm_hand == NULL)
|
|
77
|
+
return; //failed
|
|
78
|
+
shm_mem = (char *) MapViewOfFile (shm_hand, FILE_MAP_WRITE, 0, 0, 0);
|
|
79
|
+
if (shm_mem == NULL)
|
|
80
|
+
return;
|
|
81
|
+
shm_mem[5] = 0;
|
|
82
|
+
sprintf (cmd, "scrolwin.exe %d %d", buflines, shm_hand);
|
|
83
|
+
GetStartupInfo(&start_info); //clone our stuff
|
|
84
|
+
if (!CreateProcess (NULL, cmd, NULL, NULL, TRUE,
|
|
85
|
+
CREATE_NO_WINDOW | DETACHED_PROCESS | CREATE_SUSPENDED,
|
|
86
|
+
NULL, NULL, &start_info, &proc_info))
|
|
87
|
+
return;
|
|
88
|
+
|
|
89
|
+
//save handles
|
|
90
|
+
dbg_process = proc_info.hProcess;
|
|
91
|
+
dbg_thread = proc_info.hThread;
|
|
92
|
+
if (ResumeThread (dbg_thread) != 1)
|
|
93
|
+
return;
|
|
94
|
+
do
|
|
95
|
+
Sleep (100);
|
|
96
|
+
while (shm_mem[5] == 0); //wait for handle
|
|
97
|
+
parm = ((((uinT8) shm_mem[4] << 8) + (uinT8) shm_mem[3] << 8)
|
|
98
|
+
+ (uinT8) shm_mem[2] << 8) + (uinT8) shm_mem[1];
|
|
99
|
+
handle = (HWND) parm;
|
|
100
|
+
if (handle != NULL) {
|
|
101
|
+
//setup window
|
|
102
|
+
::SetWindowText (handle, title);
|
|
103
|
+
::MoveWindow (handle, xpos, ypos, xsize, ysize, TRUE);
|
|
104
|
+
::ShowWindow (handle, SW_SHOW);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
/**********************************************************************
|
|
110
|
+
* DEBUG_WIN::DEBUG_WIN
|
|
111
|
+
*
|
|
112
|
+
* Destroy a debug window.
|
|
113
|
+
**********************************************************************/
|
|
114
|
+
|
|
115
|
+
DEBUG_WIN::~DEBUG_WIN (
|
|
116
|
+
//destructor
|
|
117
|
+
) {
|
|
118
|
+
if (IsWindow (handle))
|
|
119
|
+
::SendMessage (handle, WM_COMMAND, IDOK, 0);
|
|
120
|
+
if (shm_mem != NULL)
|
|
121
|
+
UnmapViewOfFile(shm_mem);
|
|
122
|
+
if (shm_hand != NULL)
|
|
123
|
+
CloseHandle(shm_hand);
|
|
124
|
+
if (dbg_thread != NULL)
|
|
125
|
+
CloseHandle(dbg_thread);
|
|
126
|
+
if (dbg_process == NULL)
|
|
127
|
+
CloseHandle(dbg_process);
|
|
128
|
+
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
/**********************************************************************
|
|
133
|
+
* dprintf
|
|
134
|
+
*
|
|
135
|
+
* Print a message to the debug window.
|
|
136
|
+
* Like printf, this function can cope with messages which do not end
|
|
137
|
+
* in newline, but nothing is printed until the newline is received.
|
|
138
|
+
**********************************************************************/
|
|
139
|
+
|
|
140
|
+
void
|
|
141
|
+
DEBUG_WIN::dprintf ( //debug printf
|
|
142
|
+
const char *format, ... //special message
|
|
143
|
+
) {
|
|
144
|
+
va_list args; //variable args
|
|
145
|
+
char *msg_start; //for printing
|
|
146
|
+
|
|
147
|
+
if (!IsWindow (handle))
|
|
148
|
+
return; //destroyed
|
|
149
|
+
if (msg_end == NULL)
|
|
150
|
+
msg_end = shm_mem + 1;
|
|
151
|
+
va_start(args, format); //variable list
|
|
152
|
+
//Format into msg
|
|
153
|
+
vsprintf(msg_end, format, args);
|
|
154
|
+
va_end(args);
|
|
155
|
+
if (*msg_end == '\0')
|
|
156
|
+
return;
|
|
157
|
+
msg_start = shm_mem + 1;
|
|
158
|
+
do {
|
|
159
|
+
//end of line
|
|
160
|
+
msg_end = strchr (msg_start, '\n');
|
|
161
|
+
if (msg_end == NULL) {
|
|
162
|
+
if (msg_start != shm_mem + 1)
|
|
163
|
+
//bring to front
|
|
164
|
+
strcpy (shm_mem + 1, msg_start);
|
|
165
|
+
//current end
|
|
166
|
+
msg_end = shm_mem + 1 + strlen (shm_mem + 1);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
*msg_end = '\0';
|
|
170
|
+
while (IsWindow (handle) && shm_mem[0])
|
|
171
|
+
Sleep (500);
|
|
172
|
+
if (IsWindow (handle)) {
|
|
173
|
+
//Visual C++2.0 macro
|
|
174
|
+
::SendMessage (handle, WM_COMMAND, ID_DEBUG_MSG, (DWORD) (msg_start - shm_mem));
|
|
175
|
+
}
|
|
176
|
+
msg_start = msg_end + 1;
|
|
177
|
+
}
|
|
178
|
+
while (*msg_start != '\0');
|
|
179
|
+
msg_end = shm_mem + 1; //buffer empty
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
/**********************************************************************
|
|
184
|
+
* await_destruction
|
|
185
|
+
*
|
|
186
|
+
* Wait for the user to close the debug window. Then return.
|
|
187
|
+
**********************************************************************/
|
|
188
|
+
|
|
189
|
+
void DEBUG_WIN::await_destruction() { //wait for user to close
|
|
190
|
+
WaitForSingleObject (dbg_process, (unsigned long) -1);
|
|
191
|
+
}
|
|
192
|
+
#endif //NT Implmentation
|
|
193
|
+
|
|
194
|
+
//UNIX implementation
|
|
195
|
+
#if defined(__UNIX__) || defined(_CONSOLE)
|
|
196
|
+
#ifdef __UNIX__
|
|
197
|
+
#include <unistd.h>
|
|
198
|
+
#include <signal.h>
|
|
199
|
+
#endif
|
|
200
|
+
//#include "basefile.h"
|
|
201
|
+
|
|
202
|
+
/**********************************************************************
|
|
203
|
+
* DEBUG_WIN::DEBUG_WIN
|
|
204
|
+
*
|
|
205
|
+
* Create a debug window with size according to the arguments.
|
|
206
|
+
* Create an hpterm window with a pipe connected to it.
|
|
207
|
+
**********************************************************************/
|
|
208
|
+
|
|
209
|
+
DEBUG_WIN::DEBUG_WIN( //constructor
|
|
210
|
+
const char *title, //of window
|
|
211
|
+
inT32 xpos, //initial position
|
|
212
|
+
inT32 ypos, //in pixels
|
|
213
|
+
inT32 xsize, //initial size
|
|
214
|
+
inT32 ysize, //in pixels
|
|
215
|
+
inT32 buflines //default scroll size
|
|
216
|
+
) {
|
|
217
|
+
#ifdef __UNIX__
|
|
218
|
+
inT32 length; /*length of name */
|
|
219
|
+
char command[MAX_PATH]; /*pipe command */
|
|
220
|
+
pid_t pid; /*process id */
|
|
221
|
+
char host[MAX_PATH]; //remote host
|
|
222
|
+
BOOL8 remote; //remote host
|
|
223
|
+
|
|
224
|
+
// remote=remote_display(host); //check remote host
|
|
225
|
+
remote = FALSE;
|
|
226
|
+
if (remote)
|
|
227
|
+
//do it remotely
|
|
228
|
+
length = sprintf (command, "remsh %s 'DISPLAY=%s;export DISPLAY;", host, getenv ("DISPLAY"));
|
|
229
|
+
else
|
|
230
|
+
length = 0;
|
|
231
|
+
length += sprintf (command + length, "trap \"\" 1 2 3 13 15\n");
|
|
232
|
+
length +=
|
|
233
|
+
sprintf (command + length,
|
|
234
|
+
"/usr/bin/xterm -sb -sl " INT32FORMAT " -geometry "
|
|
235
|
+
INT32FORMAT "x" INT32FORMAT "", buflines, xsize / 8, ysize / 16);
|
|
236
|
+
if (xpos >= 0)
|
|
237
|
+
command[length++] = '+';
|
|
238
|
+
length += sprintf (command + length, INT32FORMAT, xpos);
|
|
239
|
+
if (ypos >= 0)
|
|
240
|
+
command[length++] = '+';
|
|
241
|
+
length +=
|
|
242
|
+
sprintf (command + length,
|
|
243
|
+
INT32FORMAT " -title \"%s\" -n \"%s\" -e /bin/sh -c ", ypos,
|
|
244
|
+
title, title);
|
|
245
|
+
pid = getpid (); /*random number */
|
|
246
|
+
length +=
|
|
247
|
+
sprintf (command + length,
|
|
248
|
+
"\"stty opost; tty >/tmp/debug%d; while [ -s /tmp/debug%d ]\ndo\nsleep 1\ndone\" &\n",
|
|
249
|
+
pid, pid);
|
|
250
|
+
length +=
|
|
251
|
+
sprintf (command + length, "trap \"rm -f /tmp/debug%d; kill -9 $!\" 0\n",
|
|
252
|
+
pid);
|
|
253
|
+
length += sprintf (command + length, "trap \"exit\" 1 2 3 13 15\n");
|
|
254
|
+
length +=
|
|
255
|
+
sprintf (command + length,
|
|
256
|
+
"while [ ! -s /tmp/debug%d ]\ndo\nsleep 1\ndone\n", pid);
|
|
257
|
+
length += sprintf (command + length, "trap \"\" 1 2 3 13 15\n");
|
|
258
|
+
length += sprintf (command + length, "ofile=`cat /tmp/debug%d`\n", pid);
|
|
259
|
+
length +=
|
|
260
|
+
sprintf (command + length, "cat -u - >$ofile; rm /tmp/debug%d\n", pid);
|
|
261
|
+
if (remote) {
|
|
262
|
+
command[length++] = '\''; //terminate remsh
|
|
263
|
+
command[length] = '\0';
|
|
264
|
+
}
|
|
265
|
+
fp = popen (command, "w"); /*create window */
|
|
266
|
+
if (fp != NULL) {
|
|
267
|
+
/*set no buffering */
|
|
268
|
+
if (setvbuf (fp, NULL, _IONBF, BUFSIZ)) {
|
|
269
|
+
pclose(fp);
|
|
270
|
+
fp = NULL;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
#endif
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
/**********************************************************************
|
|
278
|
+
* DEBUG_WIN::DEBUG_WIN
|
|
279
|
+
*
|
|
280
|
+
* Close the file and destroy the window.
|
|
281
|
+
**********************************************************************/
|
|
282
|
+
|
|
283
|
+
DEBUG_WIN::~DEBUG_WIN (
|
|
284
|
+
//destructor
|
|
285
|
+
) {
|
|
286
|
+
#ifdef __UNIX__
|
|
287
|
+
pclose(fp);
|
|
288
|
+
#endif
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
/**********************************************************************
|
|
293
|
+
* dprintf
|
|
294
|
+
*
|
|
295
|
+
* Print a message to the debug window.
|
|
296
|
+
* Like printf, this function can cope with messages which do not end
|
|
297
|
+
* in newline, but nothing is printed until the newline is received.
|
|
298
|
+
**********************************************************************/
|
|
299
|
+
|
|
300
|
+
void
|
|
301
|
+
DEBUG_WIN::dprintf ( //debug printf
|
|
302
|
+
const char *format, ... //special message
|
|
303
|
+
) {
|
|
304
|
+
va_list args; //variable args
|
|
305
|
+
|
|
306
|
+
va_start(args, format); //variable list
|
|
307
|
+
#ifdef __UNIX__
|
|
308
|
+
vfprintf(fp, format, args); //Format into msg
|
|
309
|
+
#else
|
|
310
|
+
//Format into msg
|
|
311
|
+
vfprintf(stderr, format, args);
|
|
312
|
+
#endif
|
|
313
|
+
va_end(args);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
/**********************************************************************
|
|
318
|
+
* await_destruction
|
|
319
|
+
*
|
|
320
|
+
* Wait for the user to close the debug window. Then return.
|
|
321
|
+
**********************************************************************/
|
|
322
|
+
|
|
323
|
+
void DEBUG_WIN::await_destruction() { //wait for user to close
|
|
324
|
+
#ifdef __UNIX__
|
|
325
|
+
signal(SIGPIPE, SIG_IGN);
|
|
326
|
+
while (!ferror (fp)) {
|
|
327
|
+
sleep (1);
|
|
328
|
+
fputc (0, fp); //send nulls until error
|
|
329
|
+
}
|
|
330
|
+
#endif
|
|
331
|
+
}
|
|
332
|
+
#endif //UNIX Implmentation
|
|
333
|
+
|
|
334
|
+
#ifdef __MAC__ //NT implementation
|
|
335
|
+
#include <stdio.h>
|
|
336
|
+
//#include "textwindow.h"
|
|
337
|
+
#include <lwindow.h>
|
|
338
|
+
#include "ipcbase.h" //must be last include
|
|
339
|
+
|
|
340
|
+
// Until I can figure a way to do this without linking in PowerPlant,
|
|
341
|
+
// the debug window will just have empty functions so compilation can take place.
|
|
342
|
+
|
|
343
|
+
/**********************************************************************
|
|
344
|
+
* DEBUG_WIN::SetCommander
|
|
345
|
+
*
|
|
346
|
+
* Mac-specific function to set the commander for the next debug window
|
|
347
|
+
**********************************************************************/
|
|
348
|
+
void DEBUG_WIN::SetCommander(LCommander *pNew) {
|
|
349
|
+
pCommander = pNew;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
/**********************************************************************
|
|
354
|
+
* DEBUG_WIN::DEBUG_WIN
|
|
355
|
+
*
|
|
356
|
+
* Create a debug window with size according to the arguments.
|
|
357
|
+
* Create an hpterm window with a pipe connected to it.
|
|
358
|
+
**********************************************************************/
|
|
359
|
+
|
|
360
|
+
DEBUG_WIN::DEBUG_WIN( //constructor
|
|
361
|
+
const char *title, //of window
|
|
362
|
+
inT32 xpos, //initial position
|
|
363
|
+
inT32 ypos, //in pixels
|
|
364
|
+
inT32 xsize, //initial size
|
|
365
|
+
inT32 ysize, //in pixels
|
|
366
|
+
inT32 buflines //default scroll size
|
|
367
|
+
) {
|
|
368
|
+
inT32 length; /*length of name */
|
|
369
|
+
|
|
370
|
+
// don't replace this DebugStr() with a call to DEBUG_WIN!
|
|
371
|
+
|
|
372
|
+
//if (pCommander==NULL) DebugStr("\pDEBUG_WIN::DEBUG_WIN(), Commander not set");
|
|
373
|
+
|
|
374
|
+
// create the window
|
|
375
|
+
|
|
376
|
+
//pWindow=LWindow::CreateWindow(2700,pCommander);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
/**********************************************************************
|
|
381
|
+
* DEBUG_WIN::DEBUG_WIN
|
|
382
|
+
*
|
|
383
|
+
* Close the file and destroy the window.
|
|
384
|
+
**********************************************************************/
|
|
385
|
+
|
|
386
|
+
DEBUG_WIN::~DEBUG_WIN (
|
|
387
|
+
//destructor
|
|
388
|
+
) {
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
/**********************************************************************
|
|
393
|
+
* dprintf
|
|
394
|
+
*
|
|
395
|
+
* Print a message to the debug window.
|
|
396
|
+
* Like printf, this function can cope with messages which do not end
|
|
397
|
+
* in newline, but nothing is printed until the newline is received.
|
|
398
|
+
**********************************************************************/
|
|
399
|
+
|
|
400
|
+
void
|
|
401
|
+
DEBUG_WIN::dprintf ( //debug printf
|
|
402
|
+
const char *format, ... //special message
|
|
403
|
+
) {
|
|
404
|
+
#if 0
|
|
405
|
+
LTextEdit *pTextEdit;
|
|
406
|
+
va_list args; //variable args
|
|
407
|
+
static char msg[1024];
|
|
408
|
+
|
|
409
|
+
inT32 i;
|
|
410
|
+
inT32 OriginalLength;
|
|
411
|
+
inT32 NewLength;
|
|
412
|
+
TEHandle hTextEdit;
|
|
413
|
+
char *pTempBuffer;
|
|
414
|
+
CharsHandle hChar;
|
|
415
|
+
char *pOriginalText;
|
|
416
|
+
inT32 StringLength;
|
|
417
|
+
|
|
418
|
+
pTextEdit = (LTextEdit *) pWindow->FindPaneByID (text_FLOWED);
|
|
419
|
+
if (pTextEdit == NULL)
|
|
420
|
+
DebugStr ("\pwhoops");
|
|
421
|
+
|
|
422
|
+
// get a C String from the format and args passed in
|
|
423
|
+
|
|
424
|
+
va_start(args, format); //variable list
|
|
425
|
+
vsprintf(msg, format, args); //Format into msg
|
|
426
|
+
va_end(args);
|
|
427
|
+
|
|
428
|
+
StringLength = strlen (msg);
|
|
429
|
+
|
|
430
|
+
// get the handle for the text
|
|
431
|
+
|
|
432
|
+
hTextEdit = pTextEdit->GetMacTEH ();
|
|
433
|
+
if (hTextEdit == NULL)
|
|
434
|
+
DebugStr ("\pDEBUG_WIN,WriteCharsToConsole()");
|
|
435
|
+
|
|
436
|
+
// get a pointer to the characters and the length of the character stream
|
|
437
|
+
|
|
438
|
+
hChar = TEGetText (hTextEdit);
|
|
439
|
+
if (hChar == NULL)
|
|
440
|
+
DebugStr ("\pDEBUG_WIN,WriteCharsToConsole()");
|
|
441
|
+
|
|
442
|
+
pOriginalText = *hChar; // get pointer to existing text
|
|
443
|
+
|
|
444
|
+
// get the length of the original data
|
|
445
|
+
OriginalLength = (*hTextEdit)->teLength;
|
|
446
|
+
|
|
447
|
+
// setup a temporary buffer for the new text
|
|
448
|
+
|
|
449
|
+
NewLength = OriginalLength + StringLength;
|
|
450
|
+
|
|
451
|
+
pTempBuffer = NewPtr (NewLength);
|
|
452
|
+
if (pTempBuffer == NULL)
|
|
453
|
+
DebugStr ("\pDEBUG_WIN,WriteCharsToConsole()");
|
|
454
|
+
|
|
455
|
+
// copy the original data into the new buffer
|
|
456
|
+
|
|
457
|
+
for (i = 0; i < OriginalLength; i++)
|
|
458
|
+
pTempBuffer[i] = pOriginalText[i];
|
|
459
|
+
|
|
460
|
+
// append the new data onto the end of the original buffer
|
|
461
|
+
|
|
462
|
+
for (i = 0; i < StringLength; i++) {
|
|
463
|
+
if (msg[i] == '\n')
|
|
464
|
+
pTempBuffer[i + OriginalLength] = '\r';
|
|
465
|
+
else
|
|
466
|
+
pTempBuffer[i + OriginalLength] = msg[i];
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
// put the new text into the text edit item
|
|
470
|
+
|
|
471
|
+
TESetText(pTempBuffer, NewLength, hTextEdit);
|
|
472
|
+
|
|
473
|
+
// clean up
|
|
474
|
+
|
|
475
|
+
DisposePtr(pTempBuffer);
|
|
476
|
+
#endif
|
|
477
|
+
}
|
|
478
|
+
#endif //Mac Implmentation
|
|
479
|
+
|
|
480
|
+
#else // Non graphical debugger
|
|
481
|
+
|
|
482
|
+
DEBUG_WIN::DEBUG_WIN( const char*, inT32, inT32, inT32, inT32, inT32 ) {
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
DEBUG_WIN::~DEBUG_WIN () {
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
void DEBUG_WIN::dprintf (const char *format, ...) {
|
|
489
|
+
va_list ap;
|
|
490
|
+
va_start(ap, format);
|
|
491
|
+
vfprintf(stderr, format, ap);
|
|
492
|
+
va_end(ap);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
void await_destruction() {
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
#endif
|
|
500
|
+
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: debugwin.h
|
|
3
|
+
* Description: Portable debug window class.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Wed Feb 21 15:36:59 MST 1996
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1996, Hewlett-Packard Co.
|
|
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
|
+
#ifndef DEBUGWIN_H
|
|
21
|
+
#define DEBUGWIN_H
|
|
22
|
+
|
|
23
|
+
#include "host.h"
|
|
24
|
+
#include "varable.h"
|
|
25
|
+
|
|
26
|
+
#ifdef __MAC__
|
|
27
|
+
#include <lwindow.h>
|
|
28
|
+
#include <lcommander.h>
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
//the following define the default position of a debug window
|
|
32
|
+
//if not specified at construction
|
|
33
|
+
#define DEBUG_WIN_XPOS 50 //default position
|
|
34
|
+
#define DEBUG_WIN_YPOS 30 //default position
|
|
35
|
+
#define DEBUG_WIN_XSIZE 700 //default size
|
|
36
|
+
#define DEBUG_WIN_YSIZE 300 //default size
|
|
37
|
+
|
|
38
|
+
//number of lines in the scrollable area of the window
|
|
39
|
+
extern DLLSYM INT_VAR_H (debug_lines, 256, "Number of lines in debug window");
|
|
40
|
+
|
|
41
|
+
//the API for the debug window is simple, see below.
|
|
42
|
+
//Most of its behaviour is its UI.
|
|
43
|
+
//It has a scrollable text area (most of the window)
|
|
44
|
+
//It has a stop control.
|
|
45
|
+
//It has a clear button.
|
|
46
|
+
//A dprintf to the window causes the text to be sent to the
|
|
47
|
+
//text area. If the stop control is set, then the dprintf
|
|
48
|
+
//blocks (does not display anything or return) until the stop
|
|
49
|
+
//is released.
|
|
50
|
+
//In multi-threaded apps, other threads and the UI continue to
|
|
51
|
+
//function during the stop. Only the calling thread is blocked.
|
|
52
|
+
//Pressing the clear button erases all text from the window.
|
|
53
|
+
//As text is sent to the window, it scrolls up so that the most
|
|
54
|
+
//recent output is visible. If the user has scrolled back, this
|
|
55
|
+
//does not happen. If the user scrolls back to the bottom, then
|
|
56
|
+
//the scrolling turns back on.
|
|
57
|
+
//If the user destroys the window, it never comes back.
|
|
58
|
+
|
|
59
|
+
class DLLSYM DEBUG_WIN
|
|
60
|
+
{
|
|
61
|
+
public:
|
|
62
|
+
//the constructor creates the window, the destructor kills it
|
|
63
|
+
DEBUG_WIN ( //constructor
|
|
64
|
+
const char *title, //of window
|
|
65
|
+
inT32 xpos = DEBUG_WIN_XPOS,//initial position
|
|
66
|
+
inT32 ypos = DEBUG_WIN_YPOS,//in pixels
|
|
67
|
+
//initial size
|
|
68
|
+
inT32 xsize = DEBUG_WIN_XSIZE,
|
|
69
|
+
//in pixels
|
|
70
|
+
inT32 ysize = DEBUG_WIN_YSIZE,
|
|
71
|
+
//default scroll size (textlines)
|
|
72
|
+
inT32 buflines = debug_lines);
|
|
73
|
+
|
|
74
|
+
~DEBUG_WIN (); //destructor
|
|
75
|
+
|
|
76
|
+
void dprintf ( //printf to window
|
|
77
|
+
const char *format, ...); //message
|
|
78
|
+
|
|
79
|
+
void await_destruction(); //wait for user to close
|
|
80
|
+
|
|
81
|
+
#ifdef __MAC__
|
|
82
|
+
static void SetCommander(LCommander *pCommander);
|
|
83
|
+
#endif
|
|
84
|
+
|
|
85
|
+
private:
|
|
86
|
+
|
|
87
|
+
#ifdef __MSW32__
|
|
88
|
+
HWND handle; //handle to window
|
|
89
|
+
char *shm_mem; //shared memory
|
|
90
|
+
char *msg_end; //current string
|
|
91
|
+
HANDLE shm_hand; //handle to it
|
|
92
|
+
HANDLE dbg_process; //handle to it
|
|
93
|
+
HANDLE dbg_thread; //handle to it
|
|
94
|
+
#endif
|
|
95
|
+
#ifdef __UNIX__
|
|
96
|
+
FILE *fp; /*return file */
|
|
97
|
+
#endif
|
|
98
|
+
|
|
99
|
+
#ifdef __MAC__
|
|
100
|
+
LWindow *pWindow;
|
|
101
|
+
#endif
|
|
102
|
+
};
|
|
103
|
+
#endif
|