/demos/qtdemo/

es/modules/dns/tcllib_ip.html | 472 + .../tcllib/files/modules/docstrip/docstrip.html | 518 + .../files/modules/docstrip/docstrip_util.html | 674 + .../tcllib/files/modules/doctools/changelog.html | 204 + .../www/tcllib/files/modules/doctools/cvs.html | 202 + .../www/tcllib/files/modules/doctools/docidx.html | 407 + .../files/modules/doctools/docidx_intro.html | 190 + .../files/modules/doctools/docidx_lang_cmdref.html | 221 + .../files/modules/doctools/docidx_lang_faq.html | 178 + .../files/modules/doctools/docidx_lang_intro.html | 288 + .../files/modules/doctools/docidx_lang_syntax.html | 208 + .../modules/doctools/docidx_plugin_apiref.html | 437 + .../www/tcllib/files/modules/doctools/doctoc.html | 407 + .../files/modules/doctools/doctoc_intro.html | 189 + .../files/modules/doctools/doctoc_lang_cmdref.html | 226 + .../files/modules/doctools/doctoc_lang_faq.html | 178 + .../files/modules/doctools/doctoc_lang_intro.html | 353 + .../files/modules/doctools/doctoc_lang_syntax.html | 197 + .../modules/doctools/doctoc_plugin_apiref.html | 437 + .../tcllib/files/modules/doctools/doctools.html | 495 + .../files/modules/doctools/doctools_intro.html | 188 + .../modules/doctools/doctools_lang_cmdref.html | 528 + .../files/modules/doctools/doctools_lang_faq.html | 178 + .../modules/doctools/doctools_lang_intro.html | 637 + .../modules/doctools/doctools_lang_syntax.html | 225 + .../modules/doctools/doctools_plugin_apiref.html | 485 + .../tcllib/files/modules/doctools/mpexpand.html | 193 + .../modules/doctools2base/html_cssdefaults.html | 161 + .../modules/doctools2base/nroff_manmacros.html | 161 + .../files/modules/doctools2base/tcl_parse.html | 264 + .../files/modules/doctools2base/tcllib_msgcat.html | 177 + .../files/modules/doctools2idx/export_docidx.html | 295 + .../files/modules/doctools2idx/idx_container.html | 439 + .../files/modules/doctools2idx/idx_export.html | 453 + .../modules/doctools2idx/idx_export_html.html | 357 + .../modules/doctools2idx/idx_export_json.html | 310 + .../modules/doctools2idx/idx_export_nroff.html | 264 + .../modules/doctools2idx/idx_export_text.html | 251 + .../modules/doctools2idx/idx_export_wiki.html | 264 + .../files/modules/doctools2idx/idx_import.html | 512 + .../modules/doctools2idx/idx_import_json.html | 287 + .../modules/doctools2idx/idx_introduction.html | 251 + .../files/modules/doctools2idx/idx_msgcat_c.html | 165 + .../files/modules/doctools2idx/idx_msgcat_de.html | 165 + .../files/modules/doctools2idx/idx_msgcat_en.html | 165 + .../files/modules/doctools2idx/idx_msgcat_fr.html | 165 + .../files/modules/doctools2idx/idx_parse.html | 341 + .../files/modules/doctools2idx/idx_structure.html | 282 + .../files/modules/doctools2idx/import_docidx.html | 264 + .../files/modules/doctools2toc/export_doctoc.html | 318 + .../files/modules/doctools2toc/import_doctoc.html | 288 + .../files/modules/doctools2toc/toc_container.html | 504 + .../files/modules/doctools2toc/toc_export.html | 469 + .../modules/doctools2toc/toc_export_html.html | 351 + .../modules/doctools2toc/toc_export_json.html | 354 + .../modules/doctools2toc/toc_export_nroff.html | 288 + .../modules/doctools2toc/toc_export_text.html | 274 + .../modules/doctools2toc/toc_export_wiki.html | 281 + .../files/modules/doctools2toc/toc_import.html | 530 + .../modules/doctools2toc/toc_import_json.html | 331 + .../modules/doctools2toc/toc_introduction.html | 251 + .../files/modules/doctools2toc/toc_msgcat_c.html | 165 + .../files/modules/doctools2toc/toc_msgcat_de.html | 165 + .../files/modules/doctools2toc/toc_msgcat_en.html | 165 + .../files/modules/doctools2toc/toc_msgcat_fr.html | 165 + .../files/modules/doctools2toc/toc_parse.html | 365 + .../files/modules/doctools2toc/toc_structure.html | 318 + .../tcllib/files/modules/dtplite/pkg_dtplite.html | 430 + .../tcllib/files/modules/fileutil/fileutil.html | 531 + .../www/tcllib/files/modules/fileutil/multi.html | 169 + .../www/tcllib/files/modules/fileutil/multiop.html | 454 + .../tcllib/files/modules/fileutil/traverse.html | 279 + embedded/www/tcllib/files/modules/ftp/ftp.html | 440 + .../www/tcllib/files/modules/ftp/ftp_geturl.html | 170 + embedded/www/tcllib/files/modules/ftpd/ftpd.html | 338 + .../www/tcllib/files/modules/fumagic/cfront.html | 182 + .../www/tcllib/files/modules/fumagic/cgen.html | 178 + .../tcllib/files/modules/fumagic/filetypes.html | 170 + .../tcllib/files/modules/fumagic/mimetypes.html | 169 + .../www/tcllib/files/modules/fumagic/rtcore.html | 318 + .../tcllib/files/modules/generator/generator.html | 506 + embedded/www/tcllib/files/modules/gpx/gpx.html | 265 + .../files/modules/grammar_aycock/aycock.html | 240 + .../tcllib/files/modules/grammar_fa/dacceptor.html | 202 + .../www/tcllib/files/modules/grammar_fa/dexec.html | 259 + .../www/tcllib/files/modules/grammar_fa/fa.html | 622 + .../www/tcllib/files/modules/grammar_fa/faop.html | 458 + .../www/tcllib/files/modules/grammar_me/gasm.html | 439 + .../tcllib/files/modules/grammar_me/me_ast.html | 212 + .../tcllib/files/modules/grammar_me/me_cpu.html | 351 + .../files/modules/grammar_me/me_cpucore.html | 416 + .../tcllib/files/modules/grammar_me/me_intro.html | 173 + .../tcllib/files/modules/grammar_me/me_tcl.html | 396 + .../tcllib/files/modules/grammar_me/me_util.html | 193 + .../www/tcllib/files/modules/grammar_me/me_vm.html | 543 + .../www/tcllib/files/modules/grammar_peg/peg.html | 586 + .../files/modules/grammar_peg/peg_interp.html | 206 + embedded/www/tcllib/files/modules/hook/hook.html | 409 + embedded/www/tcllib/files/modules/html/html.html | 506 + .../tcllib/files/modules/htmlparse/htmlparse.html | 314 + .../www/tcllib/files/modules/http/autoproxy.html | 319 + embedded/www/tcllib/files/modules/ident/ident.html | 173 + embedded/www/tcllib/files/modules/imap4/imap4.html | 481 + embedded/www/tcllib/files/modules/inifile/ini.html | 204 + .../tcllib/files/modules/interp/deleg_method.html | 168 + .../tcllib/files/modules/interp/deleg_proc.html | 167 + .../tcllib/files/modules/interp/tcllib_interp.html | 182 + embedded/www/tcllib/files/modules/irc/irc.html | 318 + embedded/www/tcllib/files/modules/irc/picoirc.html | 243 + .../files/modules/javascript/javascript.html | 209 + embedded/www/tcllib/files/modules/jpeg/jpeg.html | 288 + embedded/www/tcllib/files/modules/json/json.html | 221 + .../www/tcllib/files/modules/json/json_write.html | 193 + .../www/tcllib/files/modules/lambda/lambda.html | 203 + embedded/www/tcllib/files/modules/ldap/ldap.html | 524 + embedded/www/tcllib/files/modules/ldap/ldapx.html | 745 + embedded/www/tcllib/files/modules/log/log.html | 343 + embedded/www/tcllib/files/modules/log/logger.html | 469 + .../tcllib/files/modules/log/loggerAppender.html | 171 + .../www/tcllib/files/modules/log/loggerUtils.html | 240 + .../files/modules/map/map_geocode_nominatim.html | 220 + .../www/tcllib/files/modules/map/map_slippy.html | 278 + .../tcllib/files/modules/map/map_slippy_cache.html | 195 + .../files/modules/map/map_slippy_fetcher.html | 184 + .../www/tcllib/files/modules/mapproj/mapproj.html | 447 + .../www/tcllib/files/modules/math/bigfloat.html | 569 + embedded/www/tcllib/files/modules/math/bignum.html | 343 + .../www/tcllib/files/modules/math/calculus.html | 498 + .../tcllib/files/modules/math/combinatorics.html | 197 + .../www/tcllib/files/modules/math/constants.html | 244 + .../www/tcllib/files/modules/math/decimal.html | 320 + embedded/www/tcllib/files/modules/math/exact.html | 296 + .../www/tcllib/files/modules/math/fourier.html | 242 + embedded/www/tcllib/files/modules/math/fuzzy.html | 243 + .../www/tcllib/files/modules/math/interpolate.html | 362 + embedded/www/tcllib/files/modules/math/linalg.html | 987 ++ .../files/modules/math/machineparameters.html | 287 + embedded/www/tcllib/files/modules/math/math.html | 218 + .../tcllib/files/modules/math/math_geometry.html | 495 + .../www/tcllib/files/modules/math/numtheory.html | 178 + .../www/tcllib/files/modules/math/optimize.html | 386 + .../www/tcllib/files/modules/math/polynomials.html | 294 + .../www/tcllib/files/modules/math/qcomplex.html | 331 + .../tcllib/files/modules/math/rational_funcs.html | 272 + embedded/www/tcllib/files/modules/math/roman.html | 178 + .../www/tcllib/files/modules/math/romberg.html | 394 + .../www/tcllib/files/modules/math/special.html | 507 + .../www/tcllib/files/modules/math/statistics.html | 1557 ++ .../www/tcllib/files/modules/math/symdiff.html | 206 + embedded/www/tcllib/files/modules/md4/md4.html | 259 + embedded/www/tcllib/files/modules/md5/md5.html | 264 + .../tcllib/files/modules/md5crypt/md5crypt.html | 202 + embedded/www/tcllib/files/modules/mime/mime.html | 364 + embedded/www/tcllib/files/modules/mime/smtp.html | 292 + .../files/modules/multiplexer/multiplexer.html | 228 + .../files/modules/namespacex/namespacex.html | 185 + embedded/www/tcllib/files/modules/ncgi/ncgi.html | 371 + .../www/tcllib/files/modules/nettool/nettool.html | 250 + embedded/www/tcllib/files/modules/nmea/nmea.html | 228 + .../www/tcllib/files/modules/nns/nns_auto.html | 218 + .../www/tcllib/files/modules/nns/nns_client.html | 393 + .../www/tcllib/files/modules/nns/nns_common.html | 169 + .../www/tcllib/files/modules/nns/nns_intro.html | 207 + .../www/tcllib/files/modules/nns/nns_protocol.html | 261 + .../www/tcllib/files/modules/nns/nns_server.html | 244 + embedded/www/tcllib/files/modules/nntp/nntp.html | 398 + .../www/tcllib/files/modules/ntp/ntp_time.html | 250 + embedded/www/tcllib/files/modules/oauth/oauth.html | 306 + .../www/tcllib/files/modules/ooutil/ooutil.html | 273 + embedded/www/tcllib/files/modules/otp/otp.html | 205 + .../www/tcllib/files/modules/page/page_intro.html | 148 + .../tcllib/files/modules/page/page_pluginmgr.html | 706 + .../tcllib/files/modules/page/page_util_flow.html | 200 + .../files/modules/page/page_util_norm_lemon.html | 162 + .../files/modules/page/page_util_norm_peg.html | 200 + .../tcllib/files/modules/page/page_util_peg.html | 213 + .../tcllib/files/modules/page/page_util_quote.html | 182 + embedded/www/tcllib/files/modules/pki/pki.html | 318 + .../tcllib/files/modules/pluginmgr/pluginmgr.html | 414 + embedded/www/tcllib/files/modules/png/png.html | 248 + embedded/www/tcllib/files/modules/pop3/pop3.html | 342 + embedded/www/tcllib/files/modules/pop3d/pop3d.html | 335 + .../www/tcllib/files/modules/pop3d/pop3d_dbox.html | 254 + .../www/tcllib/files/modules/pop3d/pop3d_udb.html | 213 + .../files/modules/processman/processman.html | 190 + .../tcllib/files/modules/profiler/profiler.html | 218 + .../www/tcllib/files/modules/pt/pt_astree.html | 344 + .../files/modules/pt/pt_cparam_config_critcl.html | 175 + .../files/modules/pt/pt_cparam_config_tea.html | 175 + .../www/tcllib/files/modules/pt/pt_from_api.html | 533 + .../tcllib/files/modules/pt/pt_introduction.html | 285 + .../tcllib/files/modules/pt/pt_json_language.html | 531 + embedded/www/tcllib/files/modules/pt/pt_param.html | 579 + .../www/tcllib/files/modules/pt/pt_parse_peg.html | 222 + .../www/tcllib/files/modules/pt/pt_parser_api.html | 475 + .../tcllib/files/modules/pt/pt_peg_container.html | 658 + .../files/modules/pt/pt_peg_container_peg.html | 157 + .../www/tcllib/files/modules/pt/pt_peg_export.html | 530 + .../files/modules/pt/pt_peg_export_container.html | 543 + .../files/modules/pt/pt_peg_export_json.html | 596 + .../tcllib/files/modules/pt/pt_peg_export_peg.html | 585 + .../files/modules/pt/pt_peg_from_container.html | 155 + .../tcllib/files/modules/pt/pt_peg_from_json.html | 564 + .../tcllib/files/modules/pt/pt_peg_from_peg.html | 543 + .../www/tcllib/files/modules/pt/pt_peg_import.html | 546 + .../files/modules/pt/pt_peg_import_container.html | 155 + .../files/modules/pt/pt_peg_import_json.html | 572 + .../tcllib/files/modules/pt/pt_peg_import_peg.html | 553 + .../www/tcllib/files/modules/pt/pt_peg_interp.html | 472 + .../files/modules/pt/pt_peg_introduction.html | 261 + .../tcllib/files/modules/pt/pt_peg_language.html | 520 + .../www/tcllib/files/modules/pt/pt_peg_op.html | 270 + .../files/modules/pt/pt_peg_to_container.html | 557 + .../tcllib/files/modules/pt/pt_peg_to_cparam.html | 590 + .../tcllib/files/modules/pt/pt_peg_to_json.html | 614 + .../tcllib/files/modules/pt/pt_peg_to_param.html | 1075 ++ .../www/tcllib/files/modules/pt/pt_peg_to_peg.html | 598 + .../files/modules/pt/pt_peg_to_tclparam.html | 561 + .../www/tcllib/files/modules/pt/pt_pegrammar.html | 475 + .../www/tcllib/files/modules/pt/pt_pexpr_op.html | 338 + .../tcllib/files/modules/pt/pt_pexpression.html | 464 + embedded/www/tcllib/files/modules/pt/pt_pgen.html | 291 + .../www/tcllib/files/modules/pt/pt_rdengine.html | 824 ++ .../files/modules/pt/pt_tclparam_config_snit.html | 175 + .../files/modules/pt/pt_tclparam_config_tcloo.html | 175 + .../www/tcllib/files/modules/pt/pt_to_api.html | 547 + embedded/www/tcllib/files/modules/pt/pt_util.html | 180 + embedded/www/tcllib/files/modules/rc4/rc4.html | 224 + embedded/www/tcllib/files/modules/rcs/rcs.html | 342 + .../www/tcllib/files/modules/report/report.html | 470 + embedded/www/tcllib/files/modules/rest/rest.html | 553 + .../www/tcllib/files/modules/ripemd/ripemd128.html | 272 + .../www/tcllib/files/modules/ripemd/ripemd160.html | 261 + embedded/www/tcllib/files/modules/sasl/gtoken.html | 175 + embedded/www/tcllib/files/modules/sasl/ntlm.html | 160 + embedded/www/tcllib/files/modules/sasl/sasl.html | 394 + embedded/www/tcllib/files/modules/sasl/scram.html | 160 + embedded/www/tcllib/files/modules/sha1/sha1.html | 271 + embedded/www/tcllib/files/modules/sha1/sha256.html | 280 + .../tcllib/files/modules/simulation/annealing.html | 318 + .../files/modules/simulation/montecarlo.html | 289 + .../modules/simulation/simulation_random.html | 297 + embedded/www/tcllib/files/modules/smtpd/smtpd.html | 359 + embedded/www/tcllib/files/modules/snit/snit.html | 2070 +++ .../www/tcllib/files/modules/snit/snitfaq.html | 3246 +++++ .../www/tcllib/files/modules/soundex/soundex.html | 166 + .../www/tcllib/files/modules/stooop/stooop.html | 294 + .../www/tcllib/files/modules/stooop/switched.html | 371 + .../www/tcllib/files/modules/string/token.html | 203 + .../tcllib/files/modules/string/token_shell.html | 227 + .../files/modules/stringprep/stringprep.html | 224 + .../files/modules/stringprep/stringprep_data.html | 145 + .../tcllib/files/modules/stringprep/unicode.html | 199 + .../files/modules/stringprep/unicode_data.html | 145 + .../tcllib/files/modules/struct/disjointset.html | 241 + .../www/tcllib/files/modules/struct/graph.html | 779 + .../www/tcllib/files/modules/struct/graph1.html | 406 + .../www/tcllib/files/modules/struct/graphops.html | 1036 ++ .../www/tcllib/files/modules/struct/matrix.html | 553 + .../www/tcllib/files/modules/struct/matrix1.html | 441 + embedded/www/tcllib/files/modules/struct/pool.html | 438 + .../www/tcllib/files/modules/struct/prioqueue.html | 215 + .../www/tcllib/files/modules/struct/queue.html | 194 + .../www/tcllib/files/modules/struct/record.html | 424 + .../www/tcllib/files/modules/struct/skiplist.html | 193 + .../www/tcllib/files/modules/struct/stack.html | 208 + .../tcllib/files/modules/struct/struct_list.html | 696 + .../tcllib/files/modules/struct/struct_set.html | 235 + .../tcllib/files/modules/struct/struct_tree.html | 690 + .../tcllib/files/modules/struct/struct_tree1.html | 345 + embedded/www/tcllib/files/modules/tar/tar.html | 262 + .../modules/tepam/tepam_argument_dialogbox.html | 602 + .../tcllib/files/modules/tepam/tepam_doc_gen.html | 405 + .../files/modules/tepam/tepam_introduction.html | 352 + .../files/modules/tepam/tepam_procedure.html | 798 + .../www/tcllib/files/modules/term/ansi_cattr.html | 282 + .../www/tcllib/files/modules/term/ansi_cctrl.html | 462 + .../tcllib/files/modules/term/ansi_cmacros.html | 191 + .../www/tcllib/files/modules/term/ansi_code.html | 167 + .../www/tcllib/files/modules/term/ansi_ctrlu.html | 199 + .../www/tcllib/files/modules/term/ansi_send.html | 446 + embedded/www/tcllib/files/modules/term/imenu.html | 252 + embedded/www/tcllib/files/modules/term/ipager.html | 252 + .../www/tcllib/files/modules/term/receive.html | 181 + embedded/www/tcllib/files/modules/term/term.html | 148 + .../www/tcllib/files/modules/term/term_bind.html | 225 + .../www/tcllib/files/modules/term/term_send.html | 162 + .../www/tcllib/files/modules/textutil/adjust.html | 269 + .../tcllib/files/modules/textutil/expander.html | 508 + .../www/tcllib/files/modules/textutil/repeat.html | 163 + .../www/tcllib/files/modules/textutil/tabify.html | 183 + .../tcllib/files/modules/textutil/textutil.html | 416 + .../files/modules/textutil/textutil_split.html | 171 + .../files/modules/textutil/textutil_string.html | 184 + .../www/tcllib/files/modules/textutil/trim.html | 188 + embedded/www/tcllib/files/modules/tie/tie.html | 499 + embedded/www/tcllib/files/modules/tie/tie_std.html | 155 + embedded/www/tcllib/files/modules/tiff/tiff.html | 285 + embedded/www/tcllib/files/modules/tool/meta.html | 273 + embedded/www/tcllib/files/modules/tool/tool.html | 342 + .../files/modules/tool/tool_dict_ensemble.html | 161 + .../www/tcllib/files/modules/transfer/connect.html | 332 + .../www/tcllib/files/modules/transfer/copyops.html | 248 + .../www/tcllib/files/modules/transfer/ddest.html | 248 + .../www/tcllib/files/modules/transfer/dsource.html | 280 + .../tcllib/files/modules/transfer/receiver.html | 371 + .../www/tcllib/files/modules/transfer/tqueue.html | 269 + .../tcllib/files/modules/transfer/transmitter.html | 376 + .../www/tcllib/files/modules/treeql/treeql.html | 648 + .../www/tcllib/files/modules/try/tcllib_throw.html | 166 + .../www/tcllib/files/modules/try/tcllib_try.html | 231 + embedded/www/tcllib/files/modules/uev/uevent.html | 277 + .../tcllib/files/modules/uev/uevent_onidle.html | 177 + embedded/www/tcllib/files/modules/units/units.html | 469 + embedded/www/tcllib/files/modules/uri/uri.html | 266 + .../www/tcllib/files/modules/uri/urn-scheme.html | 163 + embedded/www/tcllib/files/modules/uuid/uuid.html | 177 + .../www/tcllib/files/modules/valtype/cc_amex.html | 211 + .../tcllib/files/modules/valtype/cc_discover.html | 211 + .../files/modules/valtype/cc_mastercard.html | 211 + .../www/tcllib/files/modules/valtype/cc_visa.html | 211 + .../www/tcllib/files/modules/valtype/ean13.html | 207 + .../www/tcllib/files/modules/valtype/iban.html | 205 + .../www/tcllib/files/modules/valtype/imei.html | 208 + .../www/tcllib/files/modules/valtype/isbn.html | 214 + .../www/tcllib/files/modules/valtype/luhn.html | 205 + .../www/tcllib/files/modules/valtype/luhn5.html | 205 + .../www/tcllib/files/modules/valtype/usnpi.html | 208 + .../files/modules/valtype/valtype_common.html | 218 + .../www/tcllib/files/modules/valtype/verhoeff.html | 205 + .../tcllib/files/modules/virtchannel_base/cat.html | 169 + .../files/modules/virtchannel_base/facade.html | 187 + .../files/modules/virtchannel_base/halfpipe.html | 193 + .../files/modules/virtchannel_base/nullzero.html | 164 + .../files/modules/virtchannel_base/randseed.html | 164 + .../tcllib/files/modules/virtchannel_base/std.html | 164 + .../modules/virtchannel_base/tcllib_fifo.html | 165 + .../modules/virtchannel_base/tcllib_fifo2.html | 170 + .../modules/virtchannel_base/tcllib_memchan.html | 167 + .../modules/virtchannel_base/tcllib_null.html | 167 + .../modules/virtchannel_base/tcllib_random.html | 168 + .../modules/virtchannel_base/tcllib_string.html | 167 + .../modules/virtchannel_base/tcllib_variable.html | 168 + .../modules/virtchannel_base/tcllib_zero.html | 167 + .../files/modules/virtchannel_base/textwindow.html | 162 + .../files/modules/virtchannel_core/core.html | 191 + .../files/modules/virtchannel_core/events.html | 199 + .../modules/virtchannel_core/transformcore.html | 191 + .../modules/virtchannel_transform/adler32.html | 184 + .../files/modules/virtchannel_transform/hex.html | 164 + .../modules/virtchannel_transform/identity.html | 171 + .../modules/virtchannel_transform/limitsize.html | 166 + .../modules/virtchannel_transform/observe.html | 170 + .../files/modules/virtchannel_transform/rot.html | 171 + .../modules/virtchannel_transform/spacer.html | 166 + .../modules/virtchannel_transform/tcllib_zlib.html | 164 + .../modules/virtchannel_transform/vt_base64.html | 164 + .../modules/virtchannel_transform/vt_counter.html | 183 + .../modules/virtchannel_transform/vt_crc32.html | 184 + .../modules/virtchannel_transform/vt_otp.html | 168 + .../tcllib/files/modules/websocket/websocket.html | 496 + embedded/www/tcllib/files/modules/wip/wip.html | 407 + embedded/www/tcllib/files/modules/yaml/huddle.html | 619 + embedded/www/tcllib/files/modules/yaml/yaml.html | 277 + embedded/www/tcllib/files/modules/zip/decode.html | 229 + embedded/www/tcllib/files/modules/zip/encode.html | 201 + embedded/www/tcllib/files/modules/zip/mkzip.html | 213 + embedded/www/tcllib/toc.html | 1782 +++ embedded/www/toc.html | 3912 +++++ embedded/www/toc0.html | 1866 +++ embedded/www/toc1.html | 2114 +++ embedded/www/toc2.html | 131 + examples/README | 2 + examples/bibtex/bibtex.tcl | 70 + examples/csv/Bench.csv | 254 + examples/csv/Bench.html | 258 + examples/csv/Benchmark.75p2.csv | 215 + examples/csv/Benchmark.76p2.csv | 215 + examples/csv/Benchmark.805.csv | 252 + examples/csv/Benchmark.811.csv | 254 + examples/csv/Benchmark.823.csv | 254 + examples/csv/Benchmark.833.csv | 254 + examples/csv/Benchmark.84a3.csv | 254 + examples/csv/README | 85 + examples/csv/bench_join | 11 + examples/csv/csv2html | 104 + examples/csv/csvcut | 104 + examples/csv/csvdiff | 162 + examples/csv/csvjoin | 121 + examples/csv/csvsort | 94 + examples/csv/csvuniq | 80 + examples/dns/tk_sample.tcl | 88 + examples/doctools/doctools.idx | 81 + examples/doctools/doctools.toc | 36 + examples/ftp/ChangeLog | 10 + examples/ftp/README | 61 + examples/ftp/ftpdemo.tcl | 858 ++ examples/ftp/ftpvalid | 77 + examples/ftp/hpupdate.tcl | 1185 ++ examples/ftp/mirror.tcl | 40 + examples/ftp/newer.tcl | 13 + examples/ftpd/ftpd | 18 + examples/ftpd/ftpd.test | 42 + examples/ftpd/ftpd.unix | 19 + examples/htmlparse/webviewer.tcl | 166 + examples/httpd/htdocs/content.file.md | 55 + examples/httpd/htdocs/content.form.md | 0 examples/httpd/htdocs/content.md | 14 + examples/httpd/htdocs/content.proxy.md | 20 + examples/httpd/htdocs/content.scgi.md | 20 + examples/httpd/htdocs/content.server.md | 42 + examples/httpd/htdocs/example.md | 157 + examples/httpd/htdocs/index.md | 22 + examples/httpd/htdocs/operations.md | 30 + examples/httpd/htdocs/plume.png | Bin 0 -> 6265 bytes examples/httpd/htdocs/reply.md | 16 + examples/httpd/htdocs/server.md | 0 examples/httpd/httpd.tcl | 86 + examples/irc/ChangeLog | 29 + examples/irc/irc_example.tcl | 30 + examples/irc/mainloop.tcl | 51 + examples/ldap/ldapChangeTest | 152 + examples/ldap/ldapChangeTest.output | 50 + examples/ldap/ldapquery | 106 + examples/ldap/ldifdump | 52 + examples/logger/logtofile.tcl | 35 + examples/logger/logtotext.tcl | 158 + examples/logger/snit-logger.tcl | 66 + examples/logger/xotcl-logger.tcl | 140 + examples/mapproj/ChangeLog | 4 + examples/mapproj/ncar780.txt | 13925 ++++++++++++++++++ examples/mapproj/tkmap.tcl | 509 + examples/math/bigfloat.demo.tcl | 308 + examples/math/bigfloat.help | 45 + examples/mime/maildemo.tcl | 78 + examples/mime/mbot/ChangeLog | 10 + examples/mime/mbot/README.html | 817 ++ examples/mime/mbot/README.txt | 1008 ++ examples/mime/mbot/README.xml | 720 + examples/mime/mbot/impersonal.tcl | 531 + examples/mime/mbot/mbox.tcl | 465 + examples/mime/mbot/mutl.tcl | 123 + examples/mime/mbot/personal.tcl | 982 ++ examples/mime/mbot/pkgIndex.tcl | 3 + examples/nntp/README | 41 + examples/nntp/dirstore | 89 + examples/nntp/free-news-servers.txt | 7 + examples/nntp/nntp.examples | 76 + examples/nntp/postmsg | 192 + examples/nntp/postnews | 144 + examples/nntp/pullnews | 138 + examples/nntp/test-account | 2 + examples/nntp/test-message | 5 + examples/ntp/rdate.tcl | 98 + examples/oreilly-oscon2001/README | 37 + examples/oreilly-oscon2001/oscon | 493 + examples/oreilly-oscon2001/osconwrap | 6 + examples/oreilly-oscon2001/sessions_friday.html | 1217 ++ examples/oreilly-oscon2001/sessions_thursday.html | 1461 ++ examples/oreilly-oscon2001/sessions_wednesday.html | 1290 ++ examples/page/lemon.html | 892 ++ examples/page/lemon.peg | 141 + examples/page/parse.y | 995 ++ examples/page/sql.log | 18 + examples/page/sql.peg | 643 + examples/sasl/saslclient.tcl | 214 + examples/smtpd/server-private.key | 15 + examples/smtpd/server-public.pem | 22 + examples/smtpd/tcl_smtpd | 92 + examples/smtpd/tk_smtpd | 238 + examples/struct/README | 16 + examples/struct/diff.tcl | 55 + examples/struct/diff2.tcl | 58 + examples/tepam/1_procedure_introduction.demo | 160 + examples/tepam/1a_procedure_subcommand.demo | 117 + .../tepam/1b_procedure_interactive_widgets.demo | 261 + examples/tepam/1c_procedure_interactive_aux.demo | 109 + examples/tepam/1d_procedure_validation.demo | 99 + .../tepam/2_argument_dialogbox_introduction.demo | 153 + .../tepam/2a_argument_dialogbox_all_widgets.demo | 303 + examples/tepam/2b_argument_dialogbox_context.demo | 80 + examples/tepam/3_doc_gen_generate.demo | 156 + examples/tepam/run_tepam_demo.bat | 5 + examples/tepam/run_tepam_demo.sh | 8 + examples/tepam/tepam_demo.tcl | 302 + examples/tepam/tepam_doc_stylesheet.css | 39 + examples/term/attributes | 39 + examples/term/box | 46 + examples/term/box2 | 45 + examples/term/clear | 8 + examples/term/colors | 52 + examples/term/frame | 24 + examples/term/graphics | 81 + examples/term/imenu | 34 + examples/term/ipager | 28 + examples/term/menu | 19 + examples/term/menu2 | 77 + examples/term/para | 17 + examples/term/title | 8 + examples/tie/README.txt | 57 + examples/tie/metakit.tcl | 141 + examples/tie/receiving_client.tcl | 38 + examples/tie/sending_client.tcl | 28 + examples/tie/server.tcl | 28 + examples/tie/transceiver.tcl | 76 + examples/transfer/certs/README.txt | 3 + examples/transfer/certs/ca.crt | 17 + examples/transfer/certs/ca.key | 18 + examples/transfer/certs/ca.key.password | 1 + examples/transfer/certs/receiver.crt | 18 + examples/transfer/certs/receiver.key | 15 + examples/transfer/certs/transmitter.crt | 18 + examples/transfer/certs/transmitter.key | 15 + examples/transfer/receive.tcl | 25 + examples/transfer/sreceive.tcl | 36 + examples/transfer/stransmit.tcl | 39 + examples/transfer/tlssetup.tcl | 49 + examples/transfer/transmit.tcl | 26 + idoc/man/files/apps/dtplite.n | 627 + idoc/man/files/apps/nns.n | 389 + idoc/man/files/apps/nnsd.n | 347 + idoc/man/files/apps/nnslog.n | 350 + idoc/man/files/apps/page.n | 679 + idoc/man/files/apps/pt.n | 968 ++ idoc/man/files/apps/tcldocstrip.n | 437 + idoc/man/files/modules/aes/aes.n | 419 + idoc/man/files/modules/amazon-s3/S3.n | 1658 +++ idoc/man/files/modules/amazon-s3/xsxp.n | 422 + idoc/man/files/modules/asn/asn.n | 748 + idoc/man/files/modules/base32/base32.n | 356 + idoc/man/files/modules/base32/base32core.n | 344 + idoc/man/files/modules/base32/base32hex.n | 358 + idoc/man/files/modules/base64/ascii85.n | 357 + idoc/man/files/modules/base64/base64.n | 354 + idoc/man/files/modules/base64/uuencode.n | 382 + idoc/man/files/modules/base64/yencode.n | 365 + idoc/man/files/modules/bee/bee.n | 575 + idoc/man/files/modules/bench/bench.n | 517 + idoc/man/files/modules/bench/bench_intro.n | 329 + idoc/man/files/modules/bench/bench_lang_intro.n | 407 + idoc/man/files/modules/bench/bench_lang_spec.n | 395 + idoc/man/files/modules/bench/bench_read.n | 335 + idoc/man/files/modules/bench/bench_wcsv.n | 323 + idoc/man/files/modules/bench/bench_wtext.n | 323 + idoc/man/files/modules/bibtex/bibtex.n | 433 + idoc/man/files/modules/blowfish/blowfish.n | 417 + idoc/man/files/modules/cache/async.n | 406 + idoc/man/files/modules/clock/iso8601.n | 320 + idoc/man/files/modules/clock/rfc2822.n | 301 + idoc/man/files/modules/cmdline/cmdline.n | 456 + idoc/man/files/modules/comm/comm.n | 1371 ++ idoc/man/files/modules/comm/comm_wire.n | 440 + idoc/man/files/modules/control/control.n | 417 + idoc/man/files/modules/coroutine/coro_auto.n | 323 + .../man/files/modules/coroutine/tcllib_coroutine.n | 381 + idoc/man/files/modules/counter/counter.n | 491 + idoc/man/files/modules/crc/cksum.n | 398 + idoc/man/files/modules/crc/crc16.n | 416 + idoc/man/files/modules/crc/crc32.n | 414 + idoc/man/files/modules/crc/sum.n | 369 + idoc/man/files/modules/cron/cron.n | 364 + idoc/man/files/modules/csv/csv.n | 506 + idoc/man/files/modules/debug/debug.n | 519 + idoc/man/files/modules/debug/debug_caller.n | 320 + idoc/man/files/modules/debug/debug_heartbeat.n | 321 + idoc/man/files/modules/debug/debug_timestamp.n | 313 + idoc/man/files/modules/des/des.n | 450 + idoc/man/files/modules/des/tcldes.n | 304 + idoc/man/files/modules/des/tcldesjr.n | 304 + idoc/man/files/modules/dicttool/dicttool.n | 368 + idoc/man/files/modules/dns/tcllib_dns.n | 536 + idoc/man/files/modules/dns/tcllib_ip.n | 752 + idoc/man/files/modules/docstrip/docstrip.n | 723 + idoc/man/files/modules/docstrip/docstrip_util.n | 924 ++ idoc/man/files/modules/doctools/changelog.n | 367 + idoc/man/files/modules/doctools/cvs.n | 364 + idoc/man/files/modules/doctools/docidx.n | 598 + idoc/man/files/modules/doctools/docidx_intro.n | 352 + .../files/modules/doctools/docidx_lang_cmdref.n | 393 + idoc/man/files/modules/doctools/docidx_lang_faq.n | 322 + .../man/files/modules/doctools/docidx_lang_intro.n | 467 + .../files/modules/doctools/docidx_lang_syntax.n | 371 + .../files/modules/doctools/docidx_plugin_apiref.n | 649 + idoc/man/files/modules/doctools/doctoc.n | 598 + idoc/man/files/modules/doctools/doctoc_intro.n | 351 + .../files/modules/doctools/doctoc_lang_cmdref.n | 400 + idoc/man/files/modules/doctools/doctoc_lang_faq.n | 322 + .../man/files/modules/doctools/doctoc_lang_intro.n | 538 + .../files/modules/doctools/doctoc_lang_syntax.n | 359 + .../files/modules/doctools/doctoc_plugin_apiref.n | 649 + idoc/man/files/modules/doctools/doctools.n | 706 + idoc/man/files/modules/doctools/doctools_intro.n | 350 + .../files/modules/doctools/doctools_lang_cmdref.n | 813 ++ .../man/files/modules/doctools/doctools_lang_faq.n | 322 + .../files/modules/doctools/doctools_lang_intro.n | 955 ++ .../files/modules/doctools/doctools_lang_syntax.n | 396 + .../modules/doctools/doctools_plugin_apiref.n | 717 + idoc/man/files/modules/doctools/mpexpand.n | 357 + .../files/modules/doctools2base/html_cssdefaults.n | 313 + .../files/modules/doctools2base/nroff_manmacros.n | 313 + idoc/man/files/modules/doctools2base/tcl_parse.n | 441 + .../files/modules/doctools2base/tcllib_msgcat.n | 334 + .../man/files/modules/doctools2idx/export_docidx.n | 465 + .../man/files/modules/doctools2idx/idx_container.n | 657 + idoc/man/files/modules/doctools2idx/idx_export.n | 671 + .../files/modules/doctools2idx/idx_export_html.n | 550 + .../files/modules/doctools2idx/idx_export_json.n | 482 + .../files/modules/doctools2idx/idx_export_nroff.n | 433 + .../files/modules/doctools2idx/idx_export_text.n | 417 + .../files/modules/doctools2idx/idx_export_wiki.n | 430 + idoc/man/files/modules/doctools2idx/idx_import.n | 750 + .../files/modules/doctools2idx/idx_import_json.n | 459 + .../files/modules/doctools2idx/idx_introduction.n | 420 + idoc/man/files/modules/doctools2idx/idx_msgcat_c.n | 322 + .../man/files/modules/doctools2idx/idx_msgcat_de.n | 322 + .../man/files/modules/doctools2idx/idx_msgcat_en.n | 322 + .../man/files/modules/doctools2idx/idx_msgcat_fr.n | 322 + idoc/man/files/modules/doctools2idx/idx_parse.n | 538 + .../man/files/modules/doctools2idx/idx_structure.n | 466 + .../man/files/modules/doctools2idx/import_docidx.n | 441 + .../man/files/modules/doctools2toc/export_doctoc.n | 492 + .../man/files/modules/doctools2toc/import_doctoc.n | 469 + .../man/files/modules/doctools2toc/toc_container.n | 740 + idoc/man/files/modules/doctools2toc/toc_export.n | 688 + .../files/modules/doctools2toc/toc_export_html.n | 542 + .../files/modules/doctools2toc/toc_export_json.n | 530 + .../files/modules/doctools2toc/toc_export_nroff.n | 461 + .../files/modules/doctools2toc/toc_export_text.n | 444 + .../files/modules/doctools2toc/toc_export_wiki.n | 450 + idoc/man/files/modules/doctools2toc/toc_import.n | 769 + .../files/modules/doctools2toc/toc_import_json.n | 507 + .../files/modules/doctools2toc/toc_introduction.n | 420 + idoc/man/files/modules/doctools2toc/toc_msgcat_c.n | 322 + .../man/files/modules/doctools2toc/toc_msgcat_de.n | 322 + .../man/files/modules/doctools2toc/toc_msgcat_en.n | 322 + .../man/files/modules/doctools2toc/toc_msgcat_fr.n | 322 + idoc/man/files/modules/doctools2toc/toc_parse.n | 566 + .../man/files/modules/doctools2toc/toc_structure.n | 511 + idoc/man/files/modules/dtplite/pkg_dtplite.n | 629 + idoc/man/files/modules/fileutil/fileutil.n | 792 + idoc/man/files/modules/fileutil/multi.n | 323 + idoc/man/files/modules/fileutil/multiop.n | 724 + idoc/man/files/modules/fileutil/traverse.n | 453 + idoc/man/files/modules/ftp/ftp.n | 656 + idoc/man/files/modules/ftp/ftp_geturl.n | 321 + idoc/man/files/modules/ftpd/ftpd.n | 527 + idoc/man/files/modules/fumagic/cfront.n | 341 + idoc/man/files/modules/fumagic/cgen.n | 334 + idoc/man/files/modules/fumagic/filetypes.n | 322 + idoc/man/files/modules/fumagic/mimetypes.n | 320 + idoc/man/files/modules/fumagic/rtcore.n | 528 + idoc/man/files/modules/generator/generator.n | 786 + idoc/man/files/modules/gpx/gpx.n | 435 + idoc/man/files/modules/grammar_aycock/aycock.n | 402 + idoc/man/files/modules/grammar_fa/dacceptor.n | 362 + idoc/man/files/modules/grammar_fa/dexec.n | 433 + idoc/man/files/modules/grammar_fa/fa.n | 928 ++ idoc/man/files/modules/grammar_fa/faop.n | 691 + idoc/man/files/modules/grammar_me/gasm.n | 675 + idoc/man/files/modules/grammar_me/me_ast.n | 375 + idoc/man/files/modules/grammar_me/me_cpu.n | 561 + idoc/man/files/modules/grammar_me/me_cpucore.n | 674 + idoc/man/files/modules/grammar_me/me_intro.n | 340 + idoc/man/files/modules/grammar_me/me_tcl.n | 628 + idoc/man/files/modules/grammar_me/me_util.n | 357 + idoc/man/files/modules/grammar_me/me_vm.n | 757 + idoc/man/files/modules/grammar_peg/peg.n | 850 ++ idoc/man/files/modules/grammar_peg/peg_interp.n | 370 + idoc/man/files/modules/hook/hook.n | 624 + idoc/man/files/modules/html/html.n | 798 + idoc/man/files/modules/htmlparse/htmlparse.n | 501 + idoc/man/files/modules/http/autoproxy.n | 491 + idoc/man/files/modules/ident/ident.n | 329 + idoc/man/files/modules/imap4/imap4.n | 806 ++ idoc/man/files/modules/inifile/ini.n | 385 + idoc/man/files/modules/interp/deleg_method.n | 323 + idoc/man/files/modules/interp/deleg_proc.n | 321 + idoc/man/files/modules/interp/tcllib_interp.n | 342 + idoc/man/files/modules/irc/irc.n | 534 + idoc/man/files/modules/irc/picoirc.n | 416 + idoc/man/files/modules/javascript/javascript.n | 370 + idoc/man/files/modules/jpeg/jpeg.n | 487 + idoc/man/files/modules/json/json.n | 387 + idoc/man/files/modules/json/json_write.n | 362 + idoc/man/files/modules/lambda/lambda.n | 367 + idoc/man/files/modules/ldap/ldap.n | 803 ++ idoc/man/files/modules/ldap/ldapx.n | 983 ++ idoc/man/files/modules/log/log.n | 564 + idoc/man/files/modules/log/logger.n | 718 + idoc/man/files/modules/log/loggerAppender.n | 332 + idoc/man/files/modules/log/loggerUtils.n | 430 + idoc/man/files/modules/map/map_geocode_nominatim.n | 389 + idoc/man/files/modules/map/map_slippy.n | 452 + idoc/man/files/modules/map/map_slippy_cache.n | 356 + idoc/man/files/modules/map/map_slippy_fetcher.n | 345 + idoc/man/files/modules/mapproj/mapproj.n | 715 + idoc/man/files/modules/math/bigfloat.n | 820 ++ idoc/man/files/modules/math/bignum.n | 571 + idoc/man/files/modules/math/calculus.n | 794 + idoc/man/files/modules/math/combinatorics.n | 378 + idoc/man/files/modules/math/constants.n | 430 + idoc/man/files/modules/math/decimal.n | 558 + idoc/man/files/modules/math/exact.n | 489 + idoc/man/files/modules/math/fourier.n | 417 + idoc/man/files/modules/math/fuzzy.n | 419 + idoc/man/files/modules/math/interpolate.n | 589 + idoc/man/files/modules/math/linalg.n | 1485 ++ idoc/man/files/modules/math/machineparameters.n | 482 + idoc/man/files/modules/math/math.n | 407 + idoc/man/files/modules/math/math_geometry.n | 805 ++ idoc/man/files/modules/math/numtheory.n | 336 + idoc/man/files/modules/math/optimize.n | 620 + idoc/man/files/modules/math/polynomials.n | 509 + idoc/man/files/modules/math/qcomplex.n | 568 + idoc/man/files/modules/math/rational_funcs.n | 478 + idoc/man/files/modules/math/roman.n | 337 + idoc/man/files/modules/math/romberg.n | 583 + idoc/man/files/modules/math/special.n | 788 + idoc/man/files/modules/math/statistics.n | 2329 +++ idoc/man/files/modules/math/symdiff.n | 367 + idoc/man/files/modules/md4/md4.n | 430 + idoc/man/files/modules/md5/md5.n | 436 + idoc/man/files/modules/md5crypt/md5crypt.n | 364 + idoc/man/files/modules/mime/mime.n | 599 + idoc/man/files/modules/mime/smtp.n | 466 + idoc/man/files/modules/multiplexer/multiplexer.n | 405 + idoc/man/files/modules/namespacex/namespacex.n | 357 + idoc/man/files/modules/ncgi/ncgi.n | 590 + idoc/man/files/modules/nettool/nettool.n | 452 + idoc/man/files/modules/nmea/nmea.n | 410 + idoc/man/files/modules/nns/nns_auto.n | 372 + idoc/man/files/modules/nns/nns_client.n | 587 + idoc/man/files/modules/nns/nns_common.n | 321 + idoc/man/files/modules/nns/nns_intro.n | 368 + idoc/man/files/modules/nns/nns_protocol.n | 428 + idoc/man/files/modules/nns/nns_server.n | 413 + idoc/man/files/modules/nntp/nntp.n | 643 + idoc/man/files/modules/ntp/ntp_time.n | 432 + idoc/man/files/modules/oauth/oauth.n | 492 + idoc/man/files/modules/ooutil/ooutil.n | 452 + idoc/man/files/modules/otp/otp.n | 362 + idoc/man/files/modules/page/page_intro.n | 308 + idoc/man/files/modules/page/page_pluginmgr.n | 1048 ++ idoc/man/files/modules/page/page_util_flow.n | 360 + idoc/man/files/modules/page/page_util_norm_lemon.n | 316 + idoc/man/files/modules/page/page_util_norm_peg.n | 365 + idoc/man/files/modules/page/page_util_peg.n | 387 + idoc/man/files/modules/page/page_util_quote.n | 341 + idoc/man/files/modules/pki/pki.n | 497 + idoc/man/files/modules/pluginmgr/pluginmgr.n | 630 + idoc/man/files/modules/png/png.n | 432 + idoc/man/files/modules/pop3/pop3.n | 539 + idoc/man/files/modules/pop3d/pop3d.n | 526 + idoc/man/files/modules/pop3d/pop3d_dbox.n | 439 + idoc/man/files/modules/pop3d/pop3d_udb.n | 388 + idoc/man/files/modules/processman/processman.n | 363 + idoc/man/files/modules/profiler/profiler.n | 387 + idoc/man/files/modules/pt/pt_astree.n | 561 + .../man/files/modules/pt/pt_cparam_config_critcl.n | 333 + idoc/man/files/modules/pt/pt_cparam_config_tea.n | 333 + idoc/man/files/modules/pt/pt_from_api.n | 770 + idoc/man/files/modules/pt/pt_introduction.n | 442 + idoc/man/files/modules/pt/pt_json_language.n | 763 + idoc/man/files/modules/pt/pt_param.n | 788 + idoc/man/files/modules/pt/pt_parse_peg.n | 388 + idoc/man/files/modules/pt/pt_parser_api.n | 718 + idoc/man/files/modules/pt/pt_peg_container.n | 951 ++ idoc/man/files/modules/pt/pt_peg_container_peg.n | 316 + idoc/man/files/modules/pt/pt_peg_export.n | 772 + .../man/files/modules/pt/pt_peg_export_container.n | 772 + idoc/man/files/modules/pt/pt_peg_export_json.n | 831 ++ idoc/man/files/modules/pt/pt_peg_export_peg.n | 823 ++ idoc/man/files/modules/pt/pt_peg_from_container.n | 310 + idoc/man/files/modules/pt/pt_peg_from_json.n | 797 + idoc/man/files/modules/pt/pt_peg_from_peg.n | 773 + idoc/man/files/modules/pt/pt_peg_import.n | 792 + .../man/files/modules/pt/pt_peg_import_container.n | 310 + idoc/man/files/modules/pt/pt_peg_import_json.n | 806 ++ idoc/man/files/modules/pt/pt_peg_import_peg.n | 786 + idoc/man/files/modules/pt/pt_peg_interp.n | 710 + idoc/man/files/modules/pt/pt_peg_introduction.n | 440 + idoc/man/files/modules/pt/pt_peg_language.n | 754 + idoc/man/files/modules/pt/pt_peg_op.n | 473 + idoc/man/files/modules/pt/pt_peg_to_container.n | 795 + idoc/man/files/modules/pt/pt_peg_to_cparam.n | 827 ++ idoc/man/files/modules/pt/pt_peg_to_json.n | 859 ++ idoc/man/files/modules/pt/pt_peg_to_param.n | 1493 ++ idoc/man/files/modules/pt/pt_peg_to_peg.n | 845 ++ idoc/man/files/modules/pt/pt_peg_to_tclparam.n | 799 + idoc/man/files/modules/pt/pt_pegrammar.n | 709 + idoc/man/files/modules/pt/pt_pexpr_op.n | 540 + idoc/man/files/modules/pt/pt_pexpression.n | 735 + idoc/man/files/modules/pt/pt_pgen.n | 501 + idoc/man/files/modules/pt/pt_rdengine.n | 1300 ++ .../man/files/modules/pt/pt_tclparam_config_snit.n | 333 + .../files/modules/pt/pt_tclparam_config_tcloo.n | 333 + idoc/man/files/modules/pt/pt_to_api.n | 786 + idoc/man/files/modules/pt/pt_util.n | 341 + idoc/man/files/modules/rc4/rc4.n | 385 + idoc/man/files/modules/rcs/rcs.n | 551 + idoc/man/files/modules/report/report.n | 699 + idoc/man/files/modules/rest/rest.n | 809 ++ idoc/man/files/modules/ripemd/ripemd128.n | 446 + idoc/man/files/modules/ripemd/ripemd160.n | 433 + idoc/man/files/modules/sasl/gtoken.n | 333 + idoc/man/files/modules/sasl/ntlm.n | 312 + idoc/man/files/modules/sasl/sasl.n | 578 + idoc/man/files/modules/sasl/scram.n | 312 + idoc/man/files/modules/sha1/sha1.n | 446 + idoc/man/files/modules/sha1/sha256.n | 459 + idoc/man/files/modules/simulation/annealing.n | 511 + idoc/man/files/modules/simulation/montecarlo.n | 493 + .../files/modules/simulation/simulation_random.n | 515 + idoc/man/files/modules/smtpd/smtpd.n | 554 + idoc/man/files/modules/snit/snit.n | 2876 ++++ idoc/man/files/modules/snit/snitfaq.n | 3815 +++++ idoc/man/files/modules/soundex/soundex.n | 324 + idoc/man/files/modules/stooop/stooop.n | 478 + idoc/man/files/modules/stooop/switched.n | 575 + idoc/man/files/modules/string/token.n | 374 + idoc/man/files/modules/string/token_shell.n | 398 + idoc/man/files/modules/stringprep/stringprep.n | 389 + .../man/files/modules/stringprep/stringprep_data.n | 302 + idoc/man/files/modules/stringprep/unicode.n | 357 + idoc/man/files/modules/stringprep/unicode_data.n | 302 + idoc/man/files/modules/struct/disjointset.n | 422 + idoc/man/files/modules/struct/graph.n | 1161 ++ idoc/man/files/modules/struct/graph1.n | 651 + idoc/man/files/modules/struct/graphops.n | 1508 ++ idoc/man/files/modules/struct/matrix.n | 847 ++ idoc/man/files/modules/struct/matrix1.n | 683 + idoc/man/files/modules/struct/pool.n | 672 + idoc/man/files/modules/struct/prioqueue.n | 390 + idoc/man/files/modules/struct/queue.n | 362 + idoc/man/files/modules/struct/record.n | 650 + idoc/man/files/modules/struct/skiplist.n | 361 + idoc/man/files/modules/struct/stack.n | 385 + idoc/man/files/modules/struct/struct_list.n | 1004 ++ idoc/man/files/modules/struct/struct_set.n | 413 + idoc/man/files/modules/struct/struct_tree.n | 1009 ++ idoc/man/files/modules/struct/struct_tree1.n | 565 + idoc/man/files/modules/tar/tar.n | 458 + .../files/modules/tepam/tepam_argument_dialogbox.n | 932 ++ idoc/man/files/modules/tepam/tepam_doc_gen.n | 625 + idoc/man/files/modules/tepam/tepam_introduction.n | 567 + idoc/man/files/modules/tepam/tepam_procedure.n | 1253 ++ idoc/man/files/modules/term/ansi_cattr.n | 496 + idoc/man/files/modules/term/ansi_cctrl.n | 787 + idoc/man/files/modules/term/ansi_cmacros.n | 343 + idoc/man/files/modules/term/ansi_code.n | 327 + idoc/man/files/modules/term/ansi_ctrlu.n | 351 + idoc/man/files/modules/term/ansi_send.n | 779 + idoc/man/files/modules/term/imenu.n | 418 + idoc/man/files/modules/term/ipager.n | 419 + idoc/man/files/modules/term/receive.n | 347 + idoc/man/files/modules/term/term.n | 302 + idoc/man/files/modules/term/term_bind.n | 391 + idoc/man/files/modules/term/term_send.n | 317 + idoc/man/files/modules/textutil/adjust.n | 446 + idoc/man/files/modules/textutil/expander.n | 758 + idoc/man/files/modules/textutil/repeat.n | 317 + idoc/man/files/modules/textutil/tabify.n | 342 + idoc/man/files/modules/textutil/textutil.n | 633 + idoc/man/files/modules/textutil/textutil_split.n | 324 + idoc/man/files/modules/textutil/textutil_string.n | 346 + idoc/man/files/modules/textutil/trim.n | 347 + idoc/man/files/modules/tie/tie.n | 713 + idoc/man/files/modules/tie/tie_std.n | 316 + idoc/man/files/modules/tiff/tiff.n | 489 + idoc/man/files/modules/tool/meta.n | 452 + idoc/man/files/modules/tool/tool.n | 537 + idoc/man/files/modules/tool/tool_dict_ensemble.n | 312 + idoc/man/files/modules/transfer/connect.n | 499 + idoc/man/files/modules/transfer/copyops.n | 423 + idoc/man/files/modules/transfer/ddest.n | 406 + idoc/man/files/modules/transfer/dsource.n | 444 + idoc/man/files/modules/transfer/receiver.n | 548 + idoc/man/files/modules/transfer/tqueue.n | 429 + idoc/man/files/modules/transfer/transmitter.n | 558 + idoc/man/files/modules/treeql/treeql.n | 882 ++ idoc/man/files/modules/try/tcllib_throw.n | 320 + idoc/man/files/modules/try/tcllib_try.n | 397 + idoc/man/files/modules/uev/uevent.n | 467 + idoc/man/files/modules/uev/uevent_onidle.n | 332 + idoc/man/files/modules/units/units.n | 639 + idoc/man/files/modules/uri/uri.n | 435 + idoc/man/files/modules/uri/urn-scheme.n | 314 + idoc/man/files/modules/uuid/uuid.n | 330 + idoc/man/files/modules/valtype/cc_amex.n | 375 + idoc/man/files/modules/valtype/cc_discover.n | 375 + idoc/man/files/modules/valtype/cc_mastercard.n | 375 + idoc/man/files/modules/valtype/cc_visa.n | 375 + idoc/man/files/modules/valtype/ean13.n | 369 + idoc/man/files/modules/valtype/iban.n | 366 + idoc/man/files/modules/valtype/imei.n | 371 + idoc/man/files/modules/valtype/isbn.n | 378 + idoc/man/files/modules/valtype/luhn.n | 366 + idoc/man/files/modules/valtype/luhn5.n | 366 + idoc/man/files/modules/valtype/usnpi.n | 371 + idoc/man/files/modules/valtype/valtype_common.n | 379 + idoc/man/files/modules/valtype/verhoeff.n | 366 + idoc/man/files/modules/virtchannel_base/cat.n | 326 + idoc/man/files/modules/virtchannel_base/facade.n | 350 + idoc/man/files/modules/virtchannel_base/halfpipe.n | 352 + idoc/man/files/modules/virtchannel_base/nullzero.n | 320 + idoc/man/files/modules/virtchannel_base/randseed.n | 319 + idoc/man/files/modules/virtchannel_base/std.n | 320 + .../files/modules/virtchannel_base/tcllib_fifo.n | 320 + .../files/modules/virtchannel_base/tcllib_fifo2.n | 326 + .../modules/virtchannel_base/tcllib_memchan.n | 323 + .../files/modules/virtchannel_base/tcllib_null.n | 323 + .../files/modules/virtchannel_base/tcllib_random.n | 323 + .../files/modules/virtchannel_base/tcllib_string.n | 323 + .../modules/virtchannel_base/tcllib_variable.n | 324 + .../files/modules/virtchannel_base/tcllib_zero.n | 323 + .../files/modules/virtchannel_base/textwindow.n | 317 + idoc/man/files/modules/virtchannel_core/core.n | 349 + idoc/man/files/modules/virtchannel_core/events.n | 358 + .../files/modules/virtchannel_core/transformcore.n | 349 + .../files/modules/virtchannel_transform/adler32.n | 343 + idoc/man/files/modules/virtchannel_transform/hex.n | 319 + .../files/modules/virtchannel_transform/identity.n | 326 + .../modules/virtchannel_transform/limitsize.n | 321 + .../files/modules/virtchannel_transform/observe.n | 325 + idoc/man/files/modules/virtchannel_transform/rot.n | 328 + .../files/modules/virtchannel_transform/spacer.n | 321 + .../modules/virtchannel_transform/tcllib_zlib.n | 319 + .../modules/virtchannel_transform/vt_base64.n | 319 + .../modules/virtchannel_transform/vt_counter.n | 342 + .../files/modules/virtchannel_transform/vt_crc32.n | 343 + .../files/modules/virtchannel_transform/vt_otp.n | 324 + idoc/man/files/modules/websocket/websocket.n | 720 + idoc/man/files/modules/wip/wip.n | 639 + idoc/man/files/modules/yaml/huddle.n | 900 ++ idoc/man/files/modules/yaml/yaml.n | 471 + idoc/man/files/modules/zip/decode.n | 408 + idoc/man/files/modules/zip/encode.n | 363 + idoc/man/files/modules/zip/mkzip.n | 387 + idoc/man/index.n | 11539 +++++++++++++++ idoc/man/toc.n | 1534 ++ idoc/www/image/arch_core_container.png | Bin 0 -> 17960 bytes idoc/www/image/arch_core_eplugins.png | Bin 0 -> 18056 bytes idoc/www/image/arch_core_export.png | Bin 0 -> 17961 bytes idoc/www/image/arch_core_import.png | Bin 0 -> 17973 bytes idoc/www/image/arch_core_iplugins.png | Bin 0 -> 18038 bytes idoc/www/image/arch_core_support.png | Bin 0 -> 17906 bytes idoc/www/image/arch_core_transform.png | Bin 0 -> 17922 bytes idoc/www/image/arch_user_app.png | Bin 0 -> 17983 bytes idoc/www/image/arch_user_pkg.png | Bin 0 -> 18050 bytes idoc/www/image/architecture.png | Bin 0 -> 17826 bytes idoc/www/image/expr_ast.png | Bin 0 -> 16291 bytes idoc/www/image/flow.png | Bin 0 -> 7471 bytes idoc/www/image/gen_options.png | Bin 0 -> 9208 bytes idoc/www/index.html | 4305 ++++++ idoc/www/tcllib/files/apps/dtplite.html | 436 + idoc/www/tcllib/files/apps/nns.html | 238 + idoc/www/tcllib/files/apps/nnsd.html | 206 + idoc/www/tcllib/files/apps/nnslog.html | 209 + idoc/www/tcllib/files/apps/page.html | 476 + idoc/www/tcllib/files/apps/pt.html | 689 + idoc/www/tcllib/files/apps/tcldocstrip.html | 279 + idoc/www/tcllib/files/modules/aes/aes.html | 268 + idoc/www/tcllib/files/modules/amazon-s3/S3.html | 1289 ++ idoc/www/tcllib/files/modules/amazon-s3/xsxp.html | 247 + idoc/www/tcllib/files/modules/asn/asn.html | 507 + idoc/www/tcllib/files/modules/base32/base32.html | 203 + .../tcllib/files/modules/base32/base32core.html | 193 + .../www/tcllib/files/modules/base32/base32hex.html | 205 + idoc/www/tcllib/files/modules/base64/ascii85.html | 201 + idoc/www/tcllib/files/modules/base64/base64.html | 195 + idoc/www/tcllib/files/modules/base64/uuencode.html | 217 + idoc/www/tcllib/files/modules/base64/yencode.html | 210 + idoc/www/tcllib/files/modules/bee/bee.html | 381 + idoc/www/tcllib/files/modules/bench/bench.html | 338 + .../tcllib/files/modules/bench/bench_intro.html | 180 + .../files/modules/bench/bench_lang_intro.html | 256 + .../files/modules/bench/bench_lang_spec.html | 236 + .../www/tcllib/files/modules/bench/bench_read.html | 187 + .../www/tcllib/files/modules/bench/bench_wcsv.html | 179 + .../tcllib/files/modules/bench/bench_wtext.html | 179 + idoc/www/tcllib/files/modules/bibtex/bibtex.html | 262 + .../tcllib/files/modules/blowfish/blowfish.html | 267 + idoc/www/tcllib/files/modules/cache/async.html | 241 + idoc/www/tcllib/files/modules/clock/iso8601.html | 169 + idoc/www/tcllib/files/modules/clock/rfc2822.html | 154 + idoc/www/tcllib/files/modules/cmdline/cmdline.html | 292 + idoc/www/tcllib/files/modules/comm/comm.html | 1041 ++ idoc/www/tcllib/files/modules/comm/comm_wire.html | 283 + idoc/www/tcllib/files/modules/control/control.html | 259 + .../tcllib/files/modules/coroutine/coro_auto.html | 177 + .../files/modules/coroutine/tcllib_coroutine.html | 222 + idoc/www/tcllib/files/modules/counter/counter.html | 300 + idoc/www/tcllib/files/modules/crc/cksum.html | 242 + idoc/www/tcllib/files/modules/crc/crc16.html | 252 + idoc/www/tcllib/files/modules/crc/crc32.html | 257 + idoc/www/tcllib/files/modules/crc/sum.html | 217 + idoc/www/tcllib/files/modules/cron/cron.html | 208 + idoc/www/tcllib/files/modules/csv/csv.html | 322 + idoc/www/tcllib/files/modules/debug/debug.html | 309 + .../tcllib/files/modules/debug/debug_caller.html | 175 + .../files/modules/debug/debug_heartbeat.html | 173 + .../files/modules/debug/debug_timestamp.html | 168 + idoc/www/tcllib/files/modules/des/des.html | 295 + idoc/www/tcllib/files/modules/des/tcldes.html | 159 + idoc/www/tcllib/files/modules/des/tcldesjr.html | 159 + .../tcllib/files/modules/dicttool/dicttool.html | 207 + idoc/www/tcllib/files/modules/dns/tcllib_dns.html | 336 + idoc/www/tcllib/files/modules/dns/tcllib_ip.html | 481 + .../tcllib/files/modules/docstrip/docstrip.html | 527 + .../files/modules/docstrip/docstrip_util.html | 683 + .../tcllib/files/modules/doctools/changelog.html | 213 + idoc/www/tcllib/files/modules/doctools/cvs.html | 211 + idoc/www/tcllib/files/modules/doctools/docidx.html | 416 + .../files/modules/doctools/docidx_intro.html | 199 + .../files/modules/doctools/docidx_lang_cmdref.html | 230 + .../files/modules/doctools/docidx_lang_faq.html | 187 + .../files/modules/doctools/docidx_lang_intro.html | 297 + .../files/modules/doctools/docidx_lang_syntax.html | 217 + .../modules/doctools/docidx_plugin_apiref.html | 446 + idoc/www/tcllib/files/modules/doctools/doctoc.html | 416 + .../files/modules/doctools/doctoc_intro.html | 198 + .../files/modules/doctools/doctoc_lang_cmdref.html | 235 + .../files/modules/doctools/doctoc_lang_faq.html | 187 + .../files/modules/doctools/doctoc_lang_intro.html | 362 + .../files/modules/doctools/doctoc_lang_syntax.html | 206 + .../modules/doctools/doctoc_plugin_apiref.html | 446 + .../tcllib/files/modules/doctools/doctools.html | 504 + .../files/modules/doctools/doctools_intro.html | 197 + .../modules/doctools/doctools_lang_cmdref.html | 537 + .../files/modules/doctools/doctools_lang_faq.html | 187 + .../modules/doctools/doctools_lang_intro.html | 646 + .../modules/doctools/doctools_lang_syntax.html | 234 + .../modules/doctools/doctools_plugin_apiref.html | 494 + .../tcllib/files/modules/doctools/mpexpand.html | 202 + .../modules/doctools2base/html_cssdefaults.html | 170 + .../modules/doctools2base/nroff_manmacros.html | 170 + .../files/modules/doctools2base/tcl_parse.html | 273 + .../files/modules/doctools2base/tcllib_msgcat.html | 186 + .../files/modules/doctools2idx/export_docidx.html | 304 + .../files/modules/doctools2idx/idx_container.html | 448 + .../files/modules/doctools2idx/idx_export.html | 462 + .../modules/doctools2idx/idx_export_html.html | 366 + .../modules/doctools2idx/idx_export_json.html | 319 + .../modules/doctools2idx/idx_export_nroff.html | 273 + .../modules/doctools2idx/idx_export_text.html | 260 + .../modules/doctools2idx/idx_export_wiki.html | 273 + .../files/modules/doctools2idx/idx_import.html | 521 + .../modules/doctools2idx/idx_import_json.html | 296 + .../modules/doctools2idx/idx_introduction.html | 260 + .../files/modules/doctools2idx/idx_msgcat_c.html | 174 + .../files/modules/doctools2idx/idx_msgcat_de.html | 174 + .../files/modules/doctools2idx/idx_msgcat_en.html | 174 + .../files/modules/doctools2idx/idx_msgcat_fr.html | 174 + .../files/modules/doctools2idx/idx_parse.html | 350 + .../files/modules/doctools2idx/idx_structure.html | 291 + .../files/modules/doctools2idx/import_docidx.html | 273 + .../files/modules/doctools2toc/export_doctoc.html | 327 + .../files/modules/doctools2toc/import_doctoc.html | 297 + .../files/modules/doctools2toc/toc_container.html | 513 + .../files/modules/doctools2toc/toc_export.html | 478 + .../modules/doctools2toc/toc_export_html.html | 360 + .../modules/doctools2toc/toc_export_json.html | 363 + .../modules/doctools2toc/toc_export_nroff.html | 297 + .../modules/doctools2toc/toc_export_text.html | 283 + .../modules/doctools2toc/toc_export_wiki.html | 290 + .../files/modules/doctools2toc/toc_import.html | 539 + .../modules/doctools2toc/toc_import_json.html | 340 + .../modules/doctools2toc/toc_introduction.html | 260 + .../files/modules/doctools2toc/toc_msgcat_c.html | 174 + .../files/modules/doctools2toc/toc_msgcat_de.html | 174 + .../files/modules/doctools2toc/toc_msgcat_en.html | 174 + .../files/modules/doctools2toc/toc_msgcat_fr.html | 174 + .../files/modules/doctools2toc/toc_parse.html | 374 + .../files/modules/doctools2toc/toc_structure.html | 327 + .../tcllib/files/modules/dtplite/pkg_dtplite.html | 439 + .../tcllib/files/modules/fileutil/fileutil.html | 538 + idoc/www/tcllib/files/modules/fileutil/multi.html | 176 + .../www/tcllib/files/modules/fileutil/multiop.html | 461 + .../tcllib/files/modules/fileutil/traverse.html | 286 + idoc/www/tcllib/files/modules/ftp/ftp.html | 447 + idoc/www/tcllib/files/modules/ftp/ftp_geturl.html | 177 + idoc/www/tcllib/files/modules/ftpd/ftpd.html | 345 + idoc/www/tcllib/files/modules/fumagic/cfront.html | 189 + idoc/www/tcllib/files/modules/fumagic/cgen.html | 185 + .../tcllib/files/modules/fumagic/filetypes.html | 177 + .../tcllib/files/modules/fumagic/mimetypes.html | 176 + idoc/www/tcllib/files/modules/fumagic/rtcore.html | 325 + .../tcllib/files/modules/generator/generator.html | 513 + idoc/www/tcllib/files/modules/gpx/gpx.html | 274 + .../files/modules/grammar_aycock/aycock.html | 249 + .../tcllib/files/modules/grammar_fa/dacceptor.html | 211 + .../www/tcllib/files/modules/grammar_fa/dexec.html | 268 + idoc/www/tcllib/files/modules/grammar_fa/fa.html | 631 + idoc/www/tcllib/files/modules/grammar_fa/faop.html | 467 + idoc/www/tcllib/files/modules/grammar_me/gasm.html | 448 + .../tcllib/files/modules/grammar_me/me_ast.html | 221 + .../tcllib/files/modules/grammar_me/me_cpu.html | 360 + .../files/modules/grammar_me/me_cpucore.html | 425 + .../tcllib/files/modules/grammar_me/me_intro.html | 182 + .../tcllib/files/modules/grammar_me/me_tcl.html | 405 + .../tcllib/files/modules/grammar_me/me_util.html | 202 + .../www/tcllib/files/modules/grammar_me/me_vm.html | 552 + idoc/www/tcllib/files/modules/grammar_peg/peg.html | 595 + .../files/modules/grammar_peg/peg_interp.html | 215 + idoc/www/tcllib/files/modules/hook/hook.html | 418 + idoc/www/tcllib/files/modules/html/html.html | 513 + .../tcllib/files/modules/htmlparse/htmlparse.html | 321 + idoc/www/tcllib/files/modules/http/autoproxy.html | 326 + idoc/www/tcllib/files/modules/ident/ident.html | 182 + idoc/www/tcllib/files/modules/imap4/imap4.html | 488 + idoc/www/tcllib/files/modules/inifile/ini.html | 211 + .../tcllib/files/modules/interp/deleg_method.html | 177 + .../tcllib/files/modules/interp/deleg_proc.html | 176 + .../tcllib/files/modules/interp/tcllib_interp.html | 191 + idoc/www/tcllib/files/modules/irc/irc.html | 325 + idoc/www/tcllib/files/modules/irc/picoirc.html | 250 + .../files/modules/javascript/javascript.html | 216 + idoc/www/tcllib/files/modules/jpeg/jpeg.html | 297 + idoc/www/tcllib/files/modules/json/json.html | 230 + idoc/www/tcllib/files/modules/json/json_write.html | 202 + idoc/www/tcllib/files/modules/lambda/lambda.html | 212 + idoc/www/tcllib/files/modules/ldap/ldap.html | 533 + idoc/www/tcllib/files/modules/ldap/ldapx.html | 754 + idoc/www/tcllib/files/modules/log/log.html | 352 + idoc/www/tcllib/files/modules/log/logger.html | 476 + .../tcllib/files/modules/log/loggerAppender.html | 180 + idoc/www/tcllib/files/modules/log/loggerUtils.html | 249 + .../files/modules/map/map_geocode_nominatim.html | 227 + idoc/www/tcllib/files/modules/map/map_slippy.html | 285 + .../tcllib/files/modules/map/map_slippy_cache.html | 202 + .../files/modules/map/map_slippy_fetcher.html | 191 + idoc/www/tcllib/files/modules/mapproj/mapproj.html | 456 + idoc/www/tcllib/files/modules/math/bigfloat.html | 578 + idoc/www/tcllib/files/modules/math/bignum.html | 352 + idoc/www/tcllib/files/modules/math/calculus.html | 507 + .../tcllib/files/modules/math/combinatorics.html | 204 + idoc/www/tcllib/files/modules/math/constants.html | 253 + idoc/www/tcllib/files/modules/math/decimal.html | 329 + idoc/www/tcllib/files/modules/math/exact.html | 305 + idoc/www/tcllib/files/modules/math/fourier.html | 249 + idoc/www/tcllib/files/modules/math/fuzzy.html | 250 + .../www/tcllib/files/modules/math/interpolate.html | 371 + idoc/www/tcllib/files/modules/math/linalg.html | 996 ++ .../files/modules/math/machineparameters.html | 296 + idoc/www/tcllib/files/modules/math/math.html | 225 + .../tcllib/files/modules/math/math_geometry.html | 504 + idoc/www/tcllib/files/modules/math/numtheory.html | 187 + idoc/www/tcllib/files/modules/math/optimize.html | 395 + .../www/tcllib/files/modules/math/polynomials.html | 303 + idoc/www/tcllib/files/modules/math/qcomplex.html | 340 + .../tcllib/files/modules/math/rational_funcs.html | 281 + idoc/www/tcllib/files/modules/math/roman.html | 187 + idoc/www/tcllib/files/modules/math/romberg.html | 403 + idoc/www/tcllib/files/modules/math/special.html | 516 + idoc/www/tcllib/files/modules/math/statistics.html | 1564 ++ idoc/www/tcllib/files/modules/math/symdiff.html | 215 + idoc/www/tcllib/files/modules/md4/md4.html | 268 + idoc/www/tcllib/files/modules/md5/md5.html | 273 + .../tcllib/files/modules/md5crypt/md5crypt.html | 211 + idoc/www/tcllib/files/modules/mime/mime.html | 373 + idoc/www/tcllib/files/modules/mime/smtp.html | 301 + .../files/modules/multiplexer/multiplexer.html | 235 + .../files/modules/namespacex/namespacex.html | 194 + idoc/www/tcllib/files/modules/ncgi/ncgi.html | 378 + idoc/www/tcllib/files/modules/nettool/nettool.html | 259 + idoc/www/tcllib/files/modules/nmea/nmea.html | 237 + idoc/www/tcllib/files/modules/nns/nns_auto.html | 227 + idoc/www/tcllib/files/modules/nns/nns_client.html | 402 + idoc/www/tcllib/files/modules/nns/nns_common.html | 178 + idoc/www/tcllib/files/modules/nns/nns_intro.html | 216 + .../www/tcllib/files/modules/nns/nns_protocol.html | 270 + idoc/www/tcllib/files/modules/nns/nns_server.html | 253 + idoc/www/tcllib/files/modules/nntp/nntp.html | 405 + idoc/www/tcllib/files/modules/ntp/ntp_time.html | 259 + idoc/www/tcllib/files/modules/oauth/oauth.html | 315 + idoc/www/tcllib/files/modules/ooutil/ooutil.html | 282 + idoc/www/tcllib/files/modules/otp/otp.html | 214 + idoc/www/tcllib/files/modules/page/page_intro.html | 157 + .../tcllib/files/modules/page/page_pluginmgr.html | 715 + .../tcllib/files/modules/page/page_util_flow.html | 209 + .../files/modules/page/page_util_norm_lemon.html | 171 + .../files/modules/page/page_util_norm_peg.html | 209 + .../tcllib/files/modules/page/page_util_peg.html | 222 + .../tcllib/files/modules/page/page_util_quote.html | 191 + idoc/www/tcllib/files/modules/pki/pki.html | 327 + .../tcllib/files/modules/pluginmgr/pluginmgr.html | 423 + idoc/www/tcllib/files/modules/png/png.html | 257 + idoc/www/tcllib/files/modules/pop3/pop3.html | 349 + idoc/www/tcllib/files/modules/pop3d/pop3d.html | 344 + .../www/tcllib/files/modules/pop3d/pop3d_dbox.html | 263 + idoc/www/tcllib/files/modules/pop3d/pop3d_udb.html | 222 + .../files/modules/processman/processman.html | 199 + .../tcllib/files/modules/profiler/profiler.html | 225 + idoc/www/tcllib/files/modules/pt/pt_astree.html | 353 + .../files/modules/pt/pt_cparam_config_critcl.html | 184 + .../files/modules/pt/pt_cparam_config_tea.html | 184 + idoc/www/tcllib/files/modules/pt/pt_from_api.html | 542 + .../tcllib/files/modules/pt/pt_introduction.html | 294 + .../tcllib/files/modules/pt/pt_json_language.html | 540 + idoc/www/tcllib/files/modules/pt/pt_param.html | 588 + idoc/www/tcllib/files/modules/pt/pt_parse_peg.html | 231 + .../www/tcllib/files/modules/pt/pt_parser_api.html | 484 + .../tcllib/files/modules/pt/pt_peg_container.html | 667 + .../files/modules/pt/pt_peg_container_peg.html | 166 + .../www/tcllib/files/modules/pt/pt_peg_export.html | 539 + .../files/modules/pt/pt_peg_export_container.html | 552 + .../files/modules/pt/pt_peg_export_json.html | 605 + .../tcllib/files/modules/pt/pt_peg_export_peg.html | 594 + .../files/modules/pt/pt_peg_from_container.html | 164 + .../tcllib/files/modules/pt/pt_peg_from_json.html | 573 + .../tcllib/files/modules/pt/pt_peg_from_peg.html | 552 + .../www/tcllib/files/modules/pt/pt_peg_import.html | 555 + .../files/modules/pt/pt_peg_import_container.html | 164 + .../files/modules/pt/pt_peg_import_json.html | 581 + .../tcllib/files/modules/pt/pt_peg_import_peg.html | 562 + .../www/tcllib/files/modules/pt/pt_peg_interp.html | 481 + .../files/modules/pt/pt_peg_introduction.html | 270 + .../tcllib/files/modules/pt/pt_peg_language.html | 529 + idoc/www/tcllib/files/modules/pt/pt_peg_op.html | 279 + .../files/modules/pt/pt_peg_to_container.html | 566 + .../tcllib/files/modules/pt/pt_peg_to_cparam.html | 599 + .../tcllib/files/modules/pt/pt_peg_to_json.html | 623 + .../tcllib/files/modules/pt/pt_peg_to_param.html | 1084 ++ .../www/tcllib/files/modules/pt/pt_peg_to_peg.html | 607 + .../files/modules/pt/pt_peg_to_tclparam.html | 570 + idoc/www/tcllib/files/modules/pt/pt_pegrammar.html | 484 + idoc/www/tcllib/files/modules/pt/pt_pexpr_op.html | 347 + .../tcllib/files/modules/pt/pt_pexpression.html | 473 + idoc/www/tcllib/files/modules/pt/pt_pgen.html | 300 + idoc/www/tcllib/files/modules/pt/pt_rdengine.html | 833 ++ .../files/modules/pt/pt_tclparam_config_snit.html | 184 + .../files/modules/pt/pt_tclparam_config_tcloo.html | 184 + idoc/www/tcllib/files/modules/pt/pt_to_api.html | 556 + idoc/www/tcllib/files/modules/pt/pt_util.html | 189 + idoc/www/tcllib/files/modules/rc4/rc4.html | 233 + idoc/www/tcllib/files/modules/rcs/rcs.html | 351 + idoc/www/tcllib/files/modules/report/report.html | 479 + idoc/www/tcllib/files/modules/rest/rest.html | 560 + .../www/tcllib/files/modules/ripemd/ripemd128.html | 281 + .../www/tcllib/files/modules/ripemd/ripemd160.html | 270 + idoc/www/tcllib/files/modules/sasl/gtoken.html | 184 + idoc/www/tcllib/files/modules/sasl/ntlm.html | 169 + idoc/www/tcllib/files/modules/sasl/sasl.html | 403 + idoc/www/tcllib/files/modules/sasl/scram.html | 169 + idoc/www/tcllib/files/modules/sha1/sha1.html | 280 + idoc/www/tcllib/files/modules/sha1/sha256.html | 289 + .../tcllib/files/modules/simulation/annealing.html | 327 + .../files/modules/simulation/montecarlo.html | 298 + .../modules/simulation/simulation_random.html | 306 + idoc/www/tcllib/files/modules/smtpd/smtpd.html | 368 + idoc/www/tcllib/files/modules/snit/snit.html | 2079 +++ idoc/www/tcllib/files/modules/snit/snitfaq.html | 3255 +++++ idoc/www/tcllib/files/modules/soundex/soundex.html | 175 + idoc/www/tcllib/files/modules/stooop/stooop.html | 301 + idoc/www/tcllib/files/modules/stooop/switched.html | 378 + idoc/www/tcllib/files/modules/string/token.html | 210 + .../tcllib/files/modules/string/token_shell.html | 234 + .../files/modules/stringprep/stringprep.html | 233 + .../files/modules/stringprep/stringprep_data.html | 154 + .../tcllib/files/modules/stringprep/unicode.html | 208 + .../files/modules/stringprep/unicode_data.html | 154 + .../tcllib/files/modules/struct/disjointset.html | 248 + idoc/www/tcllib/files/modules/struct/graph.html | 788 + idoc/www/tcllib/files/modules/struct/graph1.html | 415 + idoc/www/tcllib/files/modules/struct/graphops.html | 1045 ++ idoc/www/tcllib/files/modules/struct/matrix.html | 562 + idoc/www/tcllib/files/modules/struct/matrix1.html | 450 + idoc/www/tcllib/files/modules/struct/pool.html | 447 + .../www/tcllib/files/modules/struct/prioqueue.html | 224 + idoc/www/tcllib/files/modules/struct/queue.html | 201 + idoc/www/tcllib/files/modules/struct/record.html | 433 + idoc/www/tcllib/files/modules/struct/skiplist.html | 202 + idoc/www/tcllib/files/modules/struct/stack.html | 215 + .../tcllib/files/modules/struct/struct_list.html | 705 + .../tcllib/files/modules/struct/struct_set.html | 244 + .../tcllib/files/modules/struct/struct_tree.html | 699 + .../tcllib/files/modules/struct/struct_tree1.html | 354 + idoc/www/tcllib/files/modules/tar/tar.html | 269 + .../modules/tepam/tepam_argument_dialogbox.html | 611 + .../tcllib/files/modules/tepam/tepam_doc_gen.html | 414 + .../files/modules/tepam/tepam_introduction.html | 361 + .../files/modules/tepam/tepam_procedure.html | 807 ++ idoc/www/tcllib/files/modules/term/ansi_cattr.html | 291 + idoc/www/tcllib/files/modules/term/ansi_cctrl.html | 471 + .../tcllib/files/modules/term/ansi_cmacros.html | 200 + idoc/www/tcllib/files/modules/term/ansi_code.html | 176 + idoc/www/tcllib/files/modules/term/ansi_ctrlu.html | 208 + idoc/www/tcllib/files/modules/term/ansi_send.html | 455 + idoc/www/tcllib/files/modules/term/imenu.html | 261 + idoc/www/tcllib/files/modules/term/ipager.html | 261 + idoc/www/tcllib/files/modules/term/receive.html | 190 + idoc/www/tcllib/files/modules/term/term.html | 157 + idoc/www/tcllib/files/modules/term/term_bind.html | 234 + idoc/www/tcllib/files/modules/term/term_send.html | 171 + idoc/www/tcllib/files/modules/textutil/adjust.html | 276 + .../tcllib/files/modules/textutil/expander.html | 517 + idoc/www/tcllib/files/modules/textutil/repeat.html | 170 + idoc/www/tcllib/files/modules/textutil/tabify.html | 190 + .../tcllib/files/modules/textutil/textutil.html | 423 + .../files/modules/textutil/textutil_split.html | 178 + .../files/modules/textutil/textutil_string.html | 191 + idoc/www/tcllib/files/modules/textutil/trim.html | 195 + idoc/www/tcllib/files/modules/tie/tie.html | 508 + idoc/www/tcllib/files/modules/tie/tie_std.html | 164 + idoc/www/tcllib/files/modules/tiff/tiff.html | 294 + idoc/www/tcllib/files/modules/tool/meta.html | 282 + idoc/www/tcllib/files/modules/tool/tool.html | 351 + .../files/modules/tool/tool_dict_ensemble.html | 170 + .../www/tcllib/files/modules/transfer/connect.html | 341 + .../www/tcllib/files/modules/transfer/copyops.html | 257 + idoc/www/tcllib/files/modules/transfer/ddest.html | 257 + .../www/tcllib/files/modules/transfer/dsource.html | 289 + .../tcllib/files/modules/transfer/receiver.html | 380 + idoc/www/tcllib/files/modules/transfer/tqueue.html | 278 + .../tcllib/files/modules/transfer/transmitter.html | 385 + idoc/www/tcllib/files/modules/treeql/treeql.html | 657 + .../www/tcllib/files/modules/try/tcllib_throw.html | 175 + idoc/www/tcllib/files/modules/try/tcllib_try.html | 240 + idoc/www/tcllib/files/modules/uev/uevent.html | 286 + .../tcllib/files/modules/uev/uevent_onidle.html | 186 + idoc/www/tcllib/files/modules/units/units.html | 478 + idoc/www/tcllib/files/modules/uri/uri.html | 273 + idoc/www/tcllib/files/modules/uri/urn-scheme.html | 170 + idoc/www/tcllib/files/modules/uuid/uuid.html | 186 + idoc/www/tcllib/files/modules/valtype/cc_amex.html | 220 + .../tcllib/files/modules/valtype/cc_discover.html | 220 + .../files/modules/valtype/cc_mastercard.html | 220 + idoc/www/tcllib/files/modules/valtype/cc_visa.html | 220 + idoc/www/tcllib/files/modules/valtype/ean13.html | 216 + idoc/www/tcllib/files/modules/valtype/iban.html | 214 + idoc/www/tcllib/files/modules/valtype/imei.html | 217 + idoc/www/tcllib/files/modules/valtype/isbn.html | 223 + idoc/www/tcllib/files/modules/valtype/luhn.html | 214 + idoc/www/tcllib/files/modules/valtype/luhn5.html | 214 + idoc/www/tcllib/files/modules/valtype/usnpi.html | 217 + .../files/modules/valtype/valtype_common.html | 227 + .../www/tcllib/files/modules/valtype/verhoeff.html | 214 + .../tcllib/files/modules/virtchannel_base/cat.html | 178 + .../files/modules/virtchannel_base/facade.html | 196 + .../files/modules/virtchannel_base/halfpipe.html | 202 + .../files/modules/virtchannel_base/nullzero.html | 173 + .../files/modules/virtchannel_base/randseed.html | 173 + .../tcllib/files/modules/virtchannel_base/std.html | 173 + .../modules/virtchannel_base/tcllib_fifo.html | 174 + .../modules/virtchannel_base/tcllib_fifo2.html | 179 + .../modules/virtchannel_base/tcllib_memchan.html | 176 + .../modules/virtchannel_base/tcllib_null.html | 176 + .../modules/virtchannel_base/tcllib_random.html | 177 + .../modules/virtchannel_base/tcllib_string.html | 176 + .../modules/virtchannel_base/tcllib_variable.html | 177 + .../modules/virtchannel_base/tcllib_zero.html | 176 + .../files/modules/virtchannel_base/textwindow.html | 171 + .../files/modules/virtchannel_core/core.html | 200 + .../files/modules/virtchannel_core/events.html | 208 + .../modules/virtchannel_core/transformcore.html | 200 + .../modules/virtchannel_transform/adler32.html | 193 + .../files/modules/virtchannel_transform/hex.html | 173 + .../modules/virtchannel_transform/identity.html | 180 + .../modules/virtchannel_transform/limitsize.html | 175 + .../modules/virtchannel_transform/observe.html | 179 + .../files/modules/virtchannel_transform/rot.html | 180 + .../modules/virtchannel_transform/spacer.html | 175 + .../modules/virtchannel_transform/tcllib_zlib.html | 173 + .../modules/virtchannel_transform/vt_base64.html | 173 + .../modules/virtchannel_transform/vt_counter.html | 192 + .../modules/virtchannel_transform/vt_crc32.html | 193 + .../modules/virtchannel_transform/vt_otp.html | 177 + .../tcllib/files/modules/websocket/websocket.html | 503 + idoc/www/tcllib/files/modules/wip/wip.html | 416 + idoc/www/tcllib/files/modules/yaml/huddle.html | 628 + idoc/www/tcllib/files/modules/yaml/yaml.html | 286 + idoc/www/tcllib/files/modules/zip/decode.html | 238 + idoc/www/tcllib/files/modules/zip/encode.html | 210 + idoc/www/tcllib/files/modules/zip/mkzip.html | 222 + idoc/www/tcllib/toc.html | 1700 +++ idoc/www/toc.html | 3830 +++++ idoc/www/toc0.html | 1784 +++ idoc/www/toc1.html | 2032 +++ idoc/www/toc2.html | 49 + installer.tcl | 595 + license.terms | 38 + modules/aes/ChangeLog | 146 + modules/aes/aes.bench | 75 + modules/aes/aes.man | 168 + modules/aes/aes.pcx | 99 + modules/aes/aes.tcl | 625 + modules/aes/aes.test | 358 + modules/aes/pkgIndex.tcl | 5 + modules/amazon-s3/ChangeLog | 64 + modules/amazon-s3/LICENSE.txt | 52 + modules/amazon-s3/README.txt | 56 + modules/amazon-s3/S3.man | 1450 ++ modules/amazon-s3/S3.tcl | 1960 +++ modules/amazon-s3/S3.test | 1766 +++ modules/amazon-s3/TODO.txt | 20 + modules/amazon-s3/pkgIndex.tcl | 9 + modules/amazon-s3/test-S3.config | 2 + modules/amazon-s3/xsxp.man | 137 + modules/amazon-s3/xsxp.tcl | 254 + modules/amazon-s3/xsxp.test | 166 + modules/asn/ChangeLog | 272 + modules/asn/asn.bench | 116 + modules/asn/asn.man | 464 + modules/asn/asn.pcx | 271 + modules/asn/asn.tcl | 1580 ++ modules/asn/asn.test | 956 ++ modules/asn/laymans_guide.txt | 1855 +++ modules/asn/pkgIndex.tcl | 4 + modules/base32/ChangeLog | 114 + modules/base32/base32.bench | 87 + modules/base32/base32.man | 75 + modules/base32/base32.pcx | 40 + modules/base32/base32.tcl | 182 + modules/base32/base32.test | 38 + modules/base32/base32.testsuite | 156 + modules/base32/base32_c.tcl | 253 + modules/base32/base32_core.pcx | 44 + modules/base32/base32_hex.pcx | 40 + modules/base32/base32_tcl.tcl | 73 + modules/base32/base32core.man | 66 + modules/base32/base32core.tcl | 134 + modules/base32/base32hex.bench | 87 + modules/base32/base32hex.man | 78 + modules/base32/base32hex.tcl | 182 + modules/base32/base32hex.test | 38 + modules/base32/base32hex.testsuite | 156 + modules/base32/base32hex_c.tcl | 253 + modules/base32/base32hex_tcl.tcl | 79 + modules/base32/pkgIndex.tcl | 4 + modules/base64/ChangeLog | 428 + modules/base64/ascii85.man | 75 + modules/base64/ascii85.pcx | 65 + modules/base64/ascii85.tcl | 271 + modules/base64/ascii85.test | 189 + modules/base64/base64.bench | 61 + modules/base64/base64.man | 70 + modules/base64/base64.pcx | 65 + modules/base64/base64.tcl | 387 + modules/base64/base64.test | 162 + modules/base64/base64c.tcl | 19 + modules/base64/pkgIndex.tcl | 5 + modules/base64/uuencode.bench | 46 + modules/base64/uuencode.man | 97 + modules/base64/uuencode.pcx | 74 + modules/base64/uuencode.tcl | 335 + modules/base64/uuencode.test | 193 + modules/base64/yencode.bench | 46 + modules/base64/yencode.man | 96 + modules/base64/yencode.pcx | 78 + modules/base64/yencode.tcl | 307 + modules/base64/yencode.test | 99 + modules/base64/yencode.test.data | Bin 0 -> 584 bytes modules/base64/yencode.test.out | 17 + modules/bee/ChangeLog | 116 + modules/bee/bee.bench | 79 + modules/bee/bee.man | 343 + modules/bee/bee.pcx | 81 + modules/bee/bee.tcl | 990 ++ modules/bee/bee.test | 384 + modules/bee/example.torrent | Bin 0 -> 22267 bytes modules/bee/pkgIndex.tcl | 4 + modules/bench/ChangeLog | 541 + modules/bench/bench.man | 296 + modules/bench/bench.tcl | 553 + modules/bench/bench_intro.man | 91 + modules/bench/bench_lang_intro.man | 153 + modules/bench/bench_lang_spec.man | 132 + modules/bench/bench_read.man | 65 + modules/bench/bench_read.tcl | 162 + modules/bench/bench_wcsv.man | 54 + modules/bench/bench_wcsv.tcl | 101 + modules/bench/bench_wtext.man | 55 + modules/bench/bench_wtext.tcl | 165 + modules/bench/libbench.tcl | 561 + modules/bench/pkgIndex.tcl | 7 + modules/bibtex/ChangeLog | 98 + modules/bibtex/bibtex.man | 180 + modules/bibtex/bibtex.pcx | 85 + modules/bibtex/bibtex.tcl | 502 + modules/bibtex/bibtex.test | 236 + modules/bibtex/bytecode.bib | 6 + modules/bibtex/penn_sub.bib | 11 + modules/bibtex/pkgIndex.tcl | 2 + modules/blowfish/ChangeLog | 136 + modules/blowfish/blowfish.bench | 66 + modules/blowfish/blowfish.man | 164 + modules/blowfish/blowfish.tcl | 724 + modules/blowfish/blowfish.test | 315 + modules/blowfish/pkgIndex.tcl | 5 + modules/cache/ChangeLog | 52 + modules/cache/async.man | 143 + modules/cache/async.tcl | 185 + modules/cache/async.test | 230 + modules/cache/pkgIndex.tcl | 3 + modules/calendar/ChangeLog | 109 + modules/calendar/calendar.tcl | 18 + modules/calendar/gregorian.tcl | 772 + modules/calendar/gregorian.test | 407 + modules/calendar/pkgIndex.tcl | 2 + modules/calendar/tclIndex | 19 + modules/clock/ChangeLog | 16 + modules/clock/iso8601.man | 47 + modules/clock/iso8601.pcx | 43 + modules/clock/iso8601.tcl | 280 + modules/clock/iso8601.test | 220 + modules/clock/pkgIndex.tcl | 3 + modules/clock/rfc2822.man | 27 + modules/clock/rfc2822.pcx | 27 + modules/clock/rfc2822.tcl | 214 + modules/clock/rfc2822.test | 44 + modules/cmdline/ChangeLog | 340 + modules/cmdline/cmdline.man | 204 + modules/cmdline/cmdline.pcx | 78 + modules/cmdline/cmdline.tcl | 912 ++ modules/cmdline/cmdline.test | 553 + modules/cmdline/pkgIndex.tcl | 2 + modules/cmdline/typedCmdline.test | 470 + modules/comm/ChangeLog | 368 + modules/comm/comm.LICENSE | 48 + modules/comm/comm.man | 1230 ++ modules/comm/comm.n.html | 1067 ++ modules/comm/comm.pcx | 99 + modules/comm/comm.slaveboot | 42 + modules/comm/comm.tcl | 1818 +++ modules/comm/comm.test | 318 + modules/comm/comm_wire.man | 284 + modules/comm/pkgIndex.tcl | 2 + modules/common-text/tls-security-notes.inc | 31 + modules/control/ChangeLog | 252 + modules/control/ascaller.tcl | 72 + modules/control/assert.tcl | 91 + modules/control/control.man | 165 + modules/control/control.tcl | 24 + modules/control/do.tcl | 81 + modules/control/do.test | 317 + modules/control/genIndex | 15 + modules/control/no-op.tcl | 14 + modules/control/no-op.test | 44 + modules/control/pkgIndex.tcl | 2 + modules/control/tclIndex | 18 + modules/coroutine/ChangeLog | 73 + modules/coroutine/coro_auto.man | 46 + modules/coroutine/coro_auto.tcl | 316 + modules/coroutine/coroutine.pcx | 54 + modules/coroutine/coroutine.tcl | 379 + modules/coroutine/coroutine_auto.pcx | 23 + modules/coroutine/pkgIndex.tcl | 3 + modules/coroutine/tcllib_coroutine.man | 110 + modules/counter/ChangeLog | 247 + modules/counter/counter.man | 250 + modules/counter/counter.tcl | 1265 ++ modules/counter/counter.test | 235 + modules/counter/pkgIndex.tcl | 12 + modules/crc/ChangeLog | 321 + modules/crc/cksum.bench | 38 + modules/crc/cksum.man | 131 + modules/crc/cksum.pcx | 37 + modules/crc/cksum.tcl | 200 + modules/crc/cksum.test | 111 + modules/crc/crc16.bench | 38 + modules/crc/crc16.man | 142 + modules/crc/crc16.pcx | 93 + modules/crc/crc16.tcl | 302 + modules/crc/crc16.test | 233 + modules/crc/crc32.bench | 38 + modules/crc/crc32.man | 152 + modules/crc/crc32.pcx | 37 + modules/crc/crc32.tcl | 377 + modules/crc/crc32.test | 222 + modules/crc/crc32bugs.test | 104 + modules/crc/crcc.tcl | 22 + modules/crc/pkgIndex.tcl | 5 + modules/crc/sum.bench | 38 + modules/crc/sum.man | 108 + modules/crc/sum.pcx | 38 + modules/crc/sum.tcl | 285 + modules/crc/sum.test | 196 + modules/cron/cron.man | 78 + modules/cron/cron.tcl | 281 + modules/cron/cron.test | 83 + modules/cron/pkgIndex.tcl | 11 + modules/csv/2926387.csv | 4 + modules/csv/ChangeLog | 339 + modules/csv/csv.bench | 45 + modules/csv/csv.man | 247 + modules/csv/csv.pcx | 144 + modules/csv/csv.tcl | 789 + modules/csv/csv.test | 998 ++ modules/csv/eval.csv | 6 + modules/csv/mem_debug_bench.csv | 251 + modules/csv/mem_debug_bench_a.csv | 256 + modules/csv/pkgIndex.tcl | 2 + modules/debug/ChangeLog | 31 + modules/debug/caller.tcl | 97 + modules/debug/debug.man | 247 + modules/debug/debug.tcl | 306 + modules/debug/debug_caller.man | 44 + modules/debug/debug_heartbeat.man | 43 + modules/debug/debug_timestamp.man | 34 + modules/debug/heartbeat.tcl | 68 + modules/debug/pkgIndex.tcl | 5 + modules/debug/timestamp.tcl | 47 + modules/des/ChangeLog | 145 + modules/des/des.bench | 105 + modules/des/des.man | 206 + modules/des/des.tcl | 272 + modules/des/des.test | 408 + modules/des/pkgIndex.tcl | 7 + modules/des/tcldes.man | 25 + modules/des/tcldes.tcl | 1089 ++ modules/des/tcldesjr.man | 25 + modules/des/tcldesjr.tcl | 1055 ++ modules/devtools/ChangeLog | 245 + modules/devtools/README | 22 + modules/devtools/ca.crt | 17 + modules/devtools/ca.key | 18 + modules/devtools/ca.key.password | 1 + modules/devtools/coserv.tcl | 128 + modules/devtools/dialog.tcl | 346 + modules/devtools/receiver.crt | 18 + modules/devtools/receiver.key | 15 + modules/devtools/testutilities.tcl | 722 + modules/devtools/transmitter.crt | 18 + modules/devtools/transmitter.key | 15 + modules/dicttool/dicttool.man | 76 + modules/dicttool/dicttool.md | 62 + modules/dicttool/dicttool.tcl | 146 + modules/dicttool/pkgIndex.tcl | 11 + modules/dns/ChangeLog | 385 + modules/dns/dns-url.txt | 728 + modules/dns/dns.tcl | 1416 ++ modules/dns/dns.test | 73 + modules/dns/ip.tcl | 553 + modules/dns/ip.test | 271 + modules/dns/ipMore.tcl | 1295 ++ modules/dns/ipMore.test | 803 ++ modules/dns/ipMoreC.tcl | 242 + modules/dns/msgs/en.msg | 8 + modules/dns/pkgIndex.tcl | 9 + modules/dns/resolv.tcl | 249 + modules/dns/spf.tcl | 528 + modules/dns/spf.test | 244 + modules/dns/tcllib_dns.man | 242 + modules/dns/tcllib_ip.man | 451 + modules/docstrip/ChangeLog | 127 + modules/docstrip/docstrip.man | 435 + modules/docstrip/docstrip.tcl | 163 + modules/docstrip/docstrip.test | 243 + modules/docstrip/docstrip_util.man | 586 + modules/docstrip/docstrip_util.tcl | 649 + modules/docstrip/docstrip_util.test | 84 + modules/docstrip/pkgIndex.tcl | 23 + modules/docstrip/tcldocstrip.dtx | 4012 ++++++ modules/docstrip/tcldocstrip.ins | 46 + modules/docstrip/tcldocstrip.stitch | 25 + modules/doctools/ChangeLog | 1908 +++ modules/doctools/NOTES | 34 + modules/doctools/api.tcl | 31 + modules/doctools/api_idx.tcl | 26 + modules/doctools/api_toc.tcl | 26 + modules/doctools/changelog.man | 87 + modules/doctools/changelog.tcl | 281 + modules/doctools/checker.tcl | 734 + modules/doctools/checker_idx.tcl | 207 + modules/doctools/checker_toc.tcl | 214 + modules/doctools/cvs.man | 101 + modules/doctools/cvs.tcl | 136 + modules/doctools/docidx.man | 405 + modules/doctools/docidx.tcl | 962 ++ modules/doctools/docidx.test | 316 + modules/doctools/docidx_intro.man | 106 + modules/doctools/docidx_lang_cmdref.man | 116 + modules/doctools/docidx_lang_faq.man | 28 + modules/doctools/docidx_lang_intro.man | 214 + modules/doctools/docidx_lang_syntax.man | 120 + modules/doctools/docidx_plugin_apiref.man | 421 + modules/doctools/doctoc.man | 405 + modules/doctools/doctoc.tcl | 968 ++ modules/doctools/doctoc.test | 319 + modules/doctools/doctoc_intro.man | 105 + modules/doctools/doctoc_lang_cmdref.man | 127 + modules/doctools/doctoc_lang_faq.man | 28 + modules/doctools/doctoc_lang_intro.man | 297 + modules/doctools/doctoc_lang_syntax.man | 105 + modules/doctools/doctoc_plugin_apiref.man | 421 + modules/doctools/doctools.man | 543 + modules/doctools/doctools.tcl | 1361 ++ modules/doctools/doctools.test | 443 + modules/doctools/doctools_intro.man | 103 + modules/doctools/doctools_lang_cmdref.man | 470 + modules/doctools/doctools_lang_faq.man | 28 + modules/doctools/doctools_lang_intro.man | 727 + modules/doctools/doctools_lang_syntax.man | 142 + modules/doctools/doctools_plugin_apiref.man | 478 + modules/doctools/include/examples.inc | 30 + modules/doctools/include/placeholder.inc | 12 + modules/doctools/mpexpand | 153 + modules/doctools/mpexpand.all | 38 + modules/doctools/mpexpand.man | 107 + modules/doctools/mpformats/_common.tcl | 303 + modules/doctools/mpformats/_html.tcl | 198 + modules/doctools/mpformats/_idx_common.tcl | 31 + modules/doctools/mpformats/_nroff.tcl | 183 + modules/doctools/mpformats/_text.tcl | 430 + modules/doctools/mpformats/_toc_common.tcl | 31 + modules/doctools/mpformats/_xml.tcl | 236 + modules/doctools/mpformats/c.msg | 58 + modules/doctools/mpformats/de.msg | 54 + modules/doctools/mpformats/en.msg | 54 + modules/doctools/mpformats/fmt.desc | 49 + modules/doctools/mpformats/fmt.html | 737 + modules/doctools/mpformats/fmt.latex | 404 + modules/doctools/mpformats/fmt.list | 52 + modules/doctools/mpformats/fmt.nroff | 290 + modules/doctools/mpformats/fmt.null | 30 + modules/doctools/mpformats/fmt.text | 473 + modules/doctools/mpformats/fmt.tmml | 288 + modules/doctools/mpformats/fmt.wiki | 297 + modules/doctools/mpformats/fr.msg | 34 + modules/doctools/mpformats/idx.html | 314 + modules/doctools/mpformats/idx.nroff | 81 + modules/doctools/mpformats/idx.null | 23 + modules/doctools/mpformats/idx.text | 79 + modules/doctools/mpformats/idx.wiki | 63 + modules/doctools/mpformats/man.macros | 267 + modules/doctools/mpformats/toc.html | 129 + modules/doctools/mpformats/toc.nroff | 73 + modules/doctools/mpformats/toc.null | 23 + modules/doctools/mpformats/toc.text | 88 + modules/doctools/mpformats/toc.tmml | 37 + modules/doctools/mpformats/toc.wiki | 63 + modules/doctools/pkgIndex.tcl | 6 + modules/doctools/tests/desc/00 | 0 modules/doctools/tests/desc/01 | 0 modules/doctools/tests/desc/02 | 2 + modules/doctools/tests/desc/03 | 0 modules/doctools/tests/desc/04 | 0 modules/doctools/tests/desc/05 | 0 modules/doctools/tests/desc/06 | 0 modules/doctools/tests/desc/07 | 0 modules/doctools/tests/desc/08 | 3 + modules/doctools/tests/html/00 | 117 + modules/doctools/tests/html/01 | 136 + modules/doctools/tests/html/02 | 134 + modules/doctools/tests/html/03 | 142 + modules/doctools/tests/html/04 | 126 + modules/doctools/tests/html/05 | 176 + modules/doctools/tests/html/06 | 145 + modules/doctools/tests/html/07 | 137 + modules/doctools/tests/html/08 | 221 + modules/doctools/tests/latex/00 | 14 + modules/doctools/tests/latex/01 | 33 + modules/doctools/tests/latex/02 | 23 + modules/doctools/tests/latex/03 | 26 + modules/doctools/tests/latex/04 | 23 + modules/doctools/tests/latex/05 | 99 + modules/doctools/tests/latex/06 | 54 + modules/doctools/tests/latex/07 | 58 + modules/doctools/tests/latex/08 | 152 + modules/doctools/tests/list/00 | 1 + modules/doctools/tests/list/01 | 1 + modules/doctools/tests/list/02 | 1 + modules/doctools/tests/list/03 | 1 + modules/doctools/tests/list/04 | 1 + modules/doctools/tests/list/05 | 1 + modules/doctools/tests/list/06 | 1 + modules/doctools/tests/list/07 | 1 + modules/doctools/tests/list/08 | 1 + modules/doctools/tests/man/00 | 3 + modules/doctools/tests/man/01 | 23 + modules/doctools/tests/man/02 | 9 + modules/doctools/tests/man/03 | 19 + modules/doctools/tests/man/04 | 16 + modules/doctools/tests/man/05 | 58 + modules/doctools/tests/man/06 | 27 + modules/doctools/tests/man/07 | 23 + modules/doctools/tests/man/08 | 56 + modules/doctools/tests/nroff/00 | 15 + modules/doctools/tests/nroff/01 | 34 + modules/doctools/tests/nroff/02 | 25 + modules/doctools/tests/nroff/03 | 29 + modules/doctools/tests/nroff/04 | 32 + modules/doctools/tests/nroff/05 | 96 + modules/doctools/tests/nroff/06 | 55 + modules/doctools/tests/nroff/07 | 45 + modules/doctools/tests/nroff/08 | 140 + modules/doctools/tests/null/00 | 0 modules/doctools/tests/null/01 | 0 modules/doctools/tests/null/02 | 0 modules/doctools/tests/null/03 | 0 modules/doctools/tests/null/04 | 0 modules/doctools/tests/null/05 | 0 modules/doctools/tests/null/06 | 0 modules/doctools/tests/null/07 | 0 modules/doctools/tests/null/08 | 0 modules/doctools/tests/syntax/e_arg_list | 6 + modules/doctools/tests/syntax/e_body | 4 + modules/doctools/tests/syntax/e_bodycmd_arg_def1 | 4 + modules/doctools/tests/syntax/e_bodycmd_arg_def2 | 4 + modules/doctools/tests/syntax/e_bodycmd_arg_def3 | 6 + modules/doctools/tests/syntax/e_bodycmd_call1 | 4 + modules/doctools/tests/syntax/e_bodycmd_call2 | 4 + modules/doctools/tests/syntax/e_bodycmd_call3 | 6 + modules/doctools/tests/syntax/e_bodycmd_cmd_def1 | 4 + modules/doctools/tests/syntax/e_bodycmd_cmd_def2 | 4 + modules/doctools/tests/syntax/e_bodycmd_cmd_def3 | 6 + modules/doctools/tests/syntax/e_bodycmd_def1 | 4 + modules/doctools/tests/syntax/e_bodycmd_def2 | 4 + modules/doctools/tests/syntax/e_bodycmd_def3 | 6 + modules/doctools/tests/syntax/e_bodycmd_enum1 | 4 + modules/doctools/tests/syntax/e_bodycmd_enum2 | 4 + modules/doctools/tests/syntax/e_bodycmd_enum3 | 6 + modules/doctools/tests/syntax/e_bodycmd_example1 | 4 + modules/doctools/tests/syntax/e_bodycmd_example2 | 4 + modules/doctools/tests/syntax/e_bodycmd_example3 | 6 + .../doctools/tests/syntax/e_bodycmd_example_begin1 | 4 + .../doctools/tests/syntax/e_bodycmd_example_begin2 | 4 + .../doctools/tests/syntax/e_bodycmd_example_begin3 | 6 + modules/doctools/tests/syntax/e_bodycmd_item1 | 4 + modules/doctools/tests/syntax/e_bodycmd_item2 | 4 + modules/doctools/tests/syntax/e_bodycmd_item3 | 6 + .../doctools/tests/syntax/e_bodycmd_list_begin1 | 4 + .../doctools/tests/syntax/e_bodycmd_list_begin2 | 4 + .../doctools/tests/syntax/e_bodycmd_list_begin3 | 6 + modules/doctools/tests/syntax/e_bodycmd_list_end1 | 4 + modules/doctools/tests/syntax/e_bodycmd_list_end2 | 4 + modules/doctools/tests/syntax/e_bodycmd_list_end3 | 6 + .../doctools/tests/syntax/e_bodycmd_manpage_end | 5 + modules/doctools/tests/syntax/e_bodycmd_opt_def1 | 4 + modules/doctools/tests/syntax/e_bodycmd_opt_def2 | 4 + modules/doctools/tests/syntax/e_bodycmd_opt_def3 | 6 + modules/doctools/tests/syntax/e_bodycmd_para1 | 4 + modules/doctools/tests/syntax/e_bodycmd_para2 | 4 + modules/doctools/tests/syntax/e_bodycmd_para3 | 6 + modules/doctools/tests/syntax/e_bodycmd_section1 | 4 + modules/doctools/tests/syntax/e_bodycmd_section2 | 4 + modules/doctools/tests/syntax/e_bodycmd_section3 | 6 + modules/doctools/tests/syntax/e_bodycmd_sectref1 | 4 + modules/doctools/tests/syntax/e_bodycmd_sectref2 | 4 + modules/doctools/tests/syntax/e_bodycmd_sectref3 | 6 + .../doctools/tests/syntax/e_bodycmd_subsection1 | 4 + .../doctools/tests/syntax/e_bodycmd_subsection2 | 4 + .../doctools/tests/syntax/e_bodycmd_subsection3 | 6 + .../doctools/tests/syntax/e_bodycmd_tkoption_def1 | 4 + .../doctools/tests/syntax/e_bodycmd_tkoption_def2 | 4 + .../doctools/tests/syntax/e_bodycmd_tkoption_def3 | 6 + modules/doctools/tests/syntax/e_bulletlist | 6 + modules/doctools/tests/syntax/e_cmd_list | 6 + modules/doctools/tests/syntax/e_deflist_call | 6 + modules/doctools/tests/syntax/e_deflist_def | 6 + modules/doctools/tests/syntax/e_end_open_example | 5 + modules/doctools/tests/syntax/e_end_open_list | 5 + modules/doctools/tests/syntax/e_end_open_mp | 2 + modules/doctools/tests/syntax/e_enumlist | 6 + modules/doctools/tests/syntax/e_examplecmd1 | 4 + modules/doctools/tests/syntax/e_examplecmd2 | 4 + modules/doctools/tests/syntax/e_examplecmd3 | 5 + modules/doctools/tests/syntax/e_hdrcmd_copyright1 | 4 + modules/doctools/tests/syntax/e_hdrcmd_copyright2 | 4 + .../doctools/tests/syntax/e_hdrcmd_description1 | 4 + .../doctools/tests/syntax/e_hdrcmd_description2 | 4 + modules/doctools/tests/syntax/e_hdrcmd_moddesc1 | 4 + modules/doctools/tests/syntax/e_hdrcmd_moddesc2 | 4 + modules/doctools/tests/syntax/e_hdrcmd_require1 | 4 + modules/doctools/tests/syntax/e_hdrcmd_require2 | 4 + modules/doctools/tests/syntax/e_hdrcmd_titledesc1 | 4 + modules/doctools/tests/syntax/e_hdrcmd_titledesc2 | 4 + .../doctools/tests/syntax/e_invalidlist_list_begin | 5 + modules/doctools/tests/syntax/e_listcmd_arg_def | 6 + modules/doctools/tests/syntax/e_listcmd_call | 6 + modules/doctools/tests/syntax/e_listcmd_cmd_def | 6 + modules/doctools/tests/syntax/e_listcmd_def | 6 + modules/doctools/tests/syntax/e_listcmd_enum | 6 + modules/doctools/tests/syntax/e_listcmd_item | 6 + modules/doctools/tests/syntax/e_listcmd_opt_def | 6 + .../doctools/tests/syntax/e_listcmd_tkoption_def | 6 + modules/doctools/tests/syntax/e_mpbegin | 4 + modules/doctools/tests/syntax/e_nodonecmd_arg | 4 + modules/doctools/tests/syntax/e_nodonecmd_class | 4 + modules/doctools/tests/syntax/e_nodonecmd_cmd | 4 + modules/doctools/tests/syntax/e_nodonecmd_comment | 4 + modules/doctools/tests/syntax/e_nodonecmd_const | 4 + modules/doctools/tests/syntax/e_nodonecmd_emph | 4 + modules/doctools/tests/syntax/e_nodonecmd_file | 4 + modules/doctools/tests/syntax/e_nodonecmd_fun | 4 + modules/doctools/tests/syntax/e_nodonecmd_keywords | 4 + modules/doctools/tests/syntax/e_nodonecmd_method | 4 + .../doctools/tests/syntax/e_nodonecmd_namespace | 4 + modules/doctools/tests/syntax/e_nodonecmd_opt | 4 + modules/doctools/tests/syntax/e_nodonecmd_option | 4 + modules/doctools/tests/syntax/e_nodonecmd_package | 4 + modules/doctools/tests/syntax/e_nodonecmd_see_also | 4 + modules/doctools/tests/syntax/e_nodonecmd_syscmd | 4 + modules/doctools/tests/syntax/e_nodonecmd_term | 4 + modules/doctools/tests/syntax/e_nodonecmd_type | 4 + modules/doctools/tests/syntax/e_nodonecmd_uri | 4 + modules/doctools/tests/syntax/e_nodonecmd_usage | 4 + modules/doctools/tests/syntax/e_nodonecmd_var | 4 + modules/doctools/tests/syntax/e_nodonecmd_widget | 4 + modules/doctools/tests/syntax/e_nolistcmd_section | 6 + .../doctools/tests/syntax/e_nolistcmd_subsection | 6 + modules/doctools/tests/syntax/e_nolisthdr_example | 6 + .../tests/syntax/e_nolisthdr_example_begin | 6 + .../doctools/tests/syntax/e_nolisthdr_list_begin | 6 + modules/doctools/tests/syntax/e_nolisthdr_para | 6 + modules/doctools/tests/syntax/e_nolisthdr_sectref | 6 + modules/doctools/tests/syntax/e_nolisttxt | 7 + modules/doctools/tests/syntax/e_opt_list | 6 + modules/doctools/tests/syntax/e_tkoption_list | 6 + modules/doctools/tests/syntax/r_arg_list | 3 + modules/doctools/tests/syntax/r_body | 4 + modules/doctools/tests/syntax/r_bodycmd_arg_def1 | 3 + modules/doctools/tests/syntax/r_bodycmd_arg_def2 | 3 + modules/doctools/tests/syntax/r_bodycmd_arg_def3 | 3 + modules/doctools/tests/syntax/r_bodycmd_call1 | 3 + modules/doctools/tests/syntax/r_bodycmd_call2 | 3 + modules/doctools/tests/syntax/r_bodycmd_call3 | 3 + modules/doctools/tests/syntax/r_bodycmd_cmd_def1 | 3 + modules/doctools/tests/syntax/r_bodycmd_cmd_def2 | 3 + modules/doctools/tests/syntax/r_bodycmd_cmd_def3 | 3 + modules/doctools/tests/syntax/r_bodycmd_def1 | 3 + modules/doctools/tests/syntax/r_bodycmd_def2 | 3 + modules/doctools/tests/syntax/r_bodycmd_def3 | 3 + modules/doctools/tests/syntax/r_bodycmd_enum1 | 3 + modules/doctools/tests/syntax/r_bodycmd_enum2 | 3 + modules/doctools/tests/syntax/r_bodycmd_enum3 | 3 + modules/doctools/tests/syntax/r_bodycmd_example1 | 3 + modules/doctools/tests/syntax/r_bodycmd_example2 | 3 + modules/doctools/tests/syntax/r_bodycmd_example3 | 3 + .../doctools/tests/syntax/r_bodycmd_example_begin1 | 3 + .../doctools/tests/syntax/r_bodycmd_example_begin2 | 3 + .../doctools/tests/syntax/r_bodycmd_example_begin3 | 3 + modules/doctools/tests/syntax/r_bodycmd_item1 | 3 + modules/doctools/tests/syntax/r_bodycmd_item2 | 3 + modules/doctools/tests/syntax/r_bodycmd_item3 | 3 + .../doctools/tests/syntax/r_bodycmd_list_begin1 | 3 + .../doctools/tests/syntax/r_bodycmd_list_begin2 | 3 + .../doctools/tests/syntax/r_bodycmd_list_begin3 | 3 + modules/doctools/tests/syntax/r_bodycmd_list_end1 | 3 + modules/doctools/tests/syntax/r_bodycmd_list_end2 | 3 + modules/doctools/tests/syntax/r_bodycmd_list_end3 | 3 + .../doctools/tests/syntax/r_bodycmd_manpage_end | 3 + modules/doctools/tests/syntax/r_bodycmd_opt_def1 | 3 + modules/doctools/tests/syntax/r_bodycmd_opt_def2 | 3 + modules/doctools/tests/syntax/r_bodycmd_opt_def3 | 3 + modules/doctools/tests/syntax/r_bodycmd_para1 | 3 + modules/doctools/tests/syntax/r_bodycmd_para2 | 3 + modules/doctools/tests/syntax/r_bodycmd_para3 | 3 + modules/doctools/tests/syntax/r_bodycmd_section1 | 3 + modules/doctools/tests/syntax/r_bodycmd_section2 | 3 + modules/doctools/tests/syntax/r_bodycmd_section3 | 3 + modules/doctools/tests/syntax/r_bodycmd_sectref1 | 3 + modules/doctools/tests/syntax/r_bodycmd_sectref2 | 3 + modules/doctools/tests/syntax/r_bodycmd_sectref3 | 3 + .../doctools/tests/syntax/r_bodycmd_subsection1 | 3 + .../doctools/tests/syntax/r_bodycmd_subsection2 | 3 + .../doctools/tests/syntax/r_bodycmd_subsection3 | 3 + .../doctools/tests/syntax/r_bodycmd_tkoption_def1 | 3 + .../doctools/tests/syntax/r_bodycmd_tkoption_def2 | 3 + .../doctools/tests/syntax/r_bodycmd_tkoption_def3 | 3 + modules/doctools/tests/syntax/r_bulletlist | 3 + modules/doctools/tests/syntax/r_cmd_list | 3 + modules/doctools/tests/syntax/r_deflist_call | 3 + modules/doctools/tests/syntax/r_deflist_def | 3 + modules/doctools/tests/syntax/r_end_open_example | 1 + modules/doctools/tests/syntax/r_end_open_list | 1 + modules/doctools/tests/syntax/r_end_open_mp | 1 + modules/doctools/tests/syntax/r_enumlist | 3 + modules/doctools/tests/syntax/r_examplecmd1 | 3 + modules/doctools/tests/syntax/r_examplecmd2 | 3 + modules/doctools/tests/syntax/r_examplecmd3 | 3 + modules/doctools/tests/syntax/r_hdrcmd_copyright1 | 3 + modules/doctools/tests/syntax/r_hdrcmd_copyright2 | 3 + .../doctools/tests/syntax/r_hdrcmd_description1 | 3 + .../doctools/tests/syntax/r_hdrcmd_description2 | 3 + modules/doctools/tests/syntax/r_hdrcmd_moddesc1 | 3 + modules/doctools/tests/syntax/r_hdrcmd_moddesc2 | 3 + modules/doctools/tests/syntax/r_hdrcmd_require1 | 3 + modules/doctools/tests/syntax/r_hdrcmd_require2 | 3 + modules/doctools/tests/syntax/r_hdrcmd_titledesc1 | 3 + modules/doctools/tests/syntax/r_hdrcmd_titledesc2 | 3 + .../doctools/tests/syntax/r_invalidlist_list_begin | 3 + modules/doctools/tests/syntax/r_listcmd_arg_def | 3 + modules/doctools/tests/syntax/r_listcmd_call | 3 + modules/doctools/tests/syntax/r_listcmd_cmd_def | 3 + modules/doctools/tests/syntax/r_listcmd_def | 3 + modules/doctools/tests/syntax/r_listcmd_enum | 3 + modules/doctools/tests/syntax/r_listcmd_item | 3 + modules/doctools/tests/syntax/r_listcmd_opt_def | 3 + .../doctools/tests/syntax/r_listcmd_tkoption_def | 3 + modules/doctools/tests/syntax/r_mpbegin | 3 + modules/doctools/tests/syntax/r_nodonecmd_arg | 3 + modules/doctools/tests/syntax/r_nodonecmd_class | 3 + modules/doctools/tests/syntax/r_nodonecmd_cmd | 3 + modules/doctools/tests/syntax/r_nodonecmd_comment | 3 + modules/doctools/tests/syntax/r_nodonecmd_const | 3 + modules/doctools/tests/syntax/r_nodonecmd_emph | 3 + modules/doctools/tests/syntax/r_nodonecmd_file | 3 + modules/doctools/tests/syntax/r_nodonecmd_fun | 3 + modules/doctools/tests/syntax/r_nodonecmd_keywords | 3 + modules/doctools/tests/syntax/r_nodonecmd_method | 3 + .../doctools/tests/syntax/r_nodonecmd_namespace | 3 + modules/doctools/tests/syntax/r_nodonecmd_opt | 3 + modules/doctools/tests/syntax/r_nodonecmd_option | 3 + modules/doctools/tests/syntax/r_nodonecmd_package | 3 + modules/doctools/tests/syntax/r_nodonecmd_see_also | 3 + modules/doctools/tests/syntax/r_nodonecmd_syscmd | 3 + modules/doctools/tests/syntax/r_nodonecmd_term | 3 + modules/doctools/tests/syntax/r_nodonecmd_type | 3 + modules/doctools/tests/syntax/r_nodonecmd_uri | 3 + modules/doctools/tests/syntax/r_nodonecmd_usage | 3 + modules/doctools/tests/syntax/r_nodonecmd_var | 3 + modules/doctools/tests/syntax/r_nodonecmd_widget | 3 + modules/doctools/tests/syntax/r_nolistcmd_section | 3 + .../doctools/tests/syntax/r_nolistcmd_subsection | 3 + modules/doctools/tests/syntax/r_nolisthdr_example | 3 + .../tests/syntax/r_nolisthdr_example_begin | 3 + .../doctools/tests/syntax/r_nolisthdr_list_begin | 3 + modules/doctools/tests/syntax/r_nolisthdr_para | 3 + modules/doctools/tests/syntax/r_nolisthdr_sectref | 3 + modules/doctools/tests/syntax/r_nolisttxt | 6 + modules/doctools/tests/syntax/r_opt_list | 3 + modules/doctools/tests/syntax/r_tkoption_list | 3 + modules/doctools/tests/text/00 | 17 + modules/doctools/tests/text/01 | 24 + modules/doctools/tests/text/02 | 33 + modules/doctools/tests/text/03 | 46 + modules/doctools/tests/text/04 | 28 + modules/doctools/tests/text/05 | 86 + modules/doctools/tests/text/06 | 53 + modules/doctools/tests/text/07 | 45 + modules/doctools/tests/text/08 | 138 + modules/doctools/tests/tmml/00 | 19 + modules/doctools/tests/tmml/01 | 39 + modules/doctools/tests/tmml/02 | 36 + modules/doctools/tests/tmml/03 | 49 + modules/doctools/tests/tmml/04 | 37 + modules/doctools/tests/tmml/05 | 162 + modules/doctools/tests/tmml/06 | 62 + modules/doctools/tests/tmml/07 | 64 + modules/doctools/tests/tmml/08 | 207 + modules/doctools/tests/wiki/00 | 13 + modules/doctools/tests/wiki/01 | 13 + modules/doctools/tests/wiki/02 | 35 + modules/doctools/tests/wiki/03 | 35 + modules/doctools/tests/wiki/04 | 28 + modules/doctools/tests/wiki/05 | 66 + modules/doctools/tests/wiki/06 | 31 + modules/doctools/tests/wiki/07 | 31 + modules/doctools/tests/wiki/08 | 117 + modules/doctools/tocexpand | 136 + modules/doctools2base/ChangeLog | 50 + modules/doctools2base/config.tcl | 81 + modules/doctools2base/html.tcl | 209 + modules/doctools2base/html_cssdefaults.man | 40 + modules/doctools2base/html_cssdefaults.tcl | 158 + modules/doctools2base/include/feedback.inc | 12 + modules/doctools2base/msgcat.tcl | 59 + modules/doctools2base/msgcat.test | 51 + modules/doctools2base/nroff_manmacros.man | 40 + modules/doctools2base/nroff_manmacros.tcl | 261 + modules/doctools2base/paths.tcl | 76 + modules/doctools2base/pkgIndex.tcl | 20 + modules/doctools2base/tcl_parse.man | 184 + modules/doctools2base/tcl_parse.tcl | 800 ++ modules/doctools2base/tcl_parse.test | 80 + modules/doctools2base/tcllib_msgcat.man | 67 + modules/doctools2base/tests/common | 239 + .../doctools2base/tests/tcl_data/fail/in/1_command | 2 + .../tests/tcl_data/fail/in/2_unexpected_eof | 1 + .../tests/tcl_data/fail/in/3_unexpected_char | 1 + .../tests/tcl_data/fail/out-ec/1_command | 1 + .../tests/tcl_data/fail/out-ec/2_unexpected_eof | 1 + .../tests/tcl_data/fail/out-ec/3_unexpected_char | 1 + .../tests/tcl_data/fail/out/1_command | 1 + .../tests/tcl_data/fail/out/2_unexpected_eof | 1 + .../tests/tcl_data/fail/out/3_unexpected_char | 1 + .../doctools2base/tests/tcl_data/ok/in/01_command1 | 1 + .../doctools2base/tests/tcl_data/ok/in/02_command2 | 1 + .../doctools2base/tests/tcl_data/ok/in/03_command3 | 1 + .../doctools2base/tests/tcl_data/ok/in/04_command4 | 1 + .../doctools2base/tests/tcl_data/ok/in/05_command5 | 1 + .../doctools2base/tests/tcl_data/ok/in/06_command6 | 1 + .../doctools2base/tests/tcl_data/ok/in/07_command7 | 1 + .../doctools2base/tests/tcl_data/ok/in/08_command8 | 1 + .../tests/tcl_data/ok/in/09_command_nested | 1 + .../doctools2base/tests/tcl_data/ok/in/10_combined | 11 + .../tests/tcl_data/ok/in/11_continuation1 | 2 + .../tests/tcl_data/ok/in/12_continuation2 | 2 + .../tests/tcl_data/ok/in/13_continuation3 | 2 + .../tests/tcl_data/ok/in/14_emptyword1 | 1 + .../tests/tcl_data/ok/in/15_emptyword2 | 1 + modules/doctools2base/tests/tcl_data/ok/in/16_text | 1 + .../tests/tcl_data/ok/in/17_text_multiline | 2 + .../doctools2base/tests/tcl_data/ok/in/18_command9 | 1 + .../tests/tcl_data/ok/out/01_command1 | 4 + .../tests/tcl_data/ok/out/02_command2 | 6 + .../tests/tcl_data/ok/out/03_command3 | 6 + .../tests/tcl_data/ok/out/04_command4 | 5 + .../tests/tcl_data/ok/out/05_command5 | 5 + .../tests/tcl_data/ok/out/06_command6 | 6 + .../tests/tcl_data/ok/out/07_command7 | 5 + .../tests/tcl_data/ok/out/08_command8 | 5 + .../tests/tcl_data/ok/out/09_command_nested | 5 + .../tests/tcl_data/ok/out/10_combined | 24 + .../tests/tcl_data/ok/out/11_continuation1 | 6 + .../tests/tcl_data/ok/out/12_continuation2 | 6 + .../tests/tcl_data/ok/out/13_continuation3 | 6 + .../tests/tcl_data/ok/out/14_emptyword1 | 5 + .../tests/tcl_data/ok/out/15_emptyword2 | 5 + .../doctools2base/tests/tcl_data/ok/out/16_text | 3 + .../tests/tcl_data/ok/out/17_text_multiline | 4 + .../tests/tcl_data/ok/out/18_command9 | 8 + modules/doctools2base/tests/tcl_parse | 57 + modules/doctools2base/text.tcl | 216 + modules/doctools2idx/ChangeLog | 107 + modules/doctools2idx/container.tcl | 405 + modules/doctools2idx/container.test | 680 + modules/doctools2idx/export.tcl | 125 + modules/doctools2idx/export.test | 212 + modules/doctools2idx/export_docidx.man | 7 + modules/doctools2idx/export_docidx.tcl | 210 + modules/doctools2idx/export_docidx.test | 77 + modules/doctools2idx/export_html.tcl | 421 + modules/doctools2idx/export_html.test | 76 + modules/doctools2idx/export_json.tcl | 214 + modules/doctools2idx/export_json.test | 74 + modules/doctools2idx/export_nroff.tcl | 213 + modules/doctools2idx/export_nroff.test | 73 + modules/doctools2idx/export_text.tcl | 136 + modules/doctools2idx/export_text.test | 63 + modules/doctools2idx/export_wiki.tcl | 163 + modules/doctools2idx/export_wiki.test | 72 + modules/doctools2idx/idx_container.man | 296 + modules/doctools2idx/idx_export.man | 308 + modules/doctools2idx/idx_export_html.man | 7 + modules/doctools2idx/idx_export_json.man | 7 + modules/doctools2idx/idx_export_nroff.man | 7 + modules/doctools2idx/idx_export_text.man | 7 + modules/doctools2idx/idx_export_wiki.man | 7 + modules/doctools2idx/idx_import.man | 394 + modules/doctools2idx/idx_import_json.man | 6 + modules/doctools2idx/idx_introduction.man | 146 + modules/doctools2idx/idx_msgcat_c.man | 5 + modules/doctools2idx/idx_msgcat_de.man | 5 + modules/doctools2idx/idx_msgcat_en.man | 5 + modules/doctools2idx/idx_msgcat_fr.man | 5 + modules/doctools2idx/idx_parse.man | 175 + modules/doctools2idx/idx_structure.man | 129 + modules/doctools2idx/import.tcl | 191 + modules/doctools2idx/import.test | 377 + modules/doctools2idx/import_docidx.man | 6 + modules/doctools2idx/import_docidx.tcl | 91 + modules/doctools2idx/import_docidx.test | 92 + modules/doctools2idx/import_json.tcl | 78 + modules/doctools2idx/import_json.test | 115 + modules/doctools2idx/include/concept.inc | 58 + modules/doctools2idx/include/dependencies.inc | 44 + .../doctools2idx/include/export/config/docidx.inc | 71 + .../doctools2idx/include/export/config/html.inc | 203 + .../doctools2idx/include/export/config/json.inc | 39 + .../doctools2idx/include/export/config/nroff.inc | 40 + .../doctools2idx/include/export/config/text.inc | 22 + .../doctools2idx/include/export/config/wiki.inc | 42 + .../doctools2idx/include/export/format/html.inc | 3 + .../doctools2idx/include/export/format/json.inc | 1 + .../doctools2idx/include/export/format/nroff.inc | 2 + .../doctools2idx/include/export/format/null.inc | 0 .../doctools2idx/include/export/format/text.inc | 1 + modules/doctools2idx/include/export/plugin.inc | 55 + modules/doctools2idx/include/format/docidx.inc | 22 + modules/doctools2idx/include/format/json.inc | 54 + .../doctools2idx/include/import/config/docidx.inc | 1 + .../doctools2idx/include/import/config/json.inc | 1 + .../doctools2idx/include/import/format/docidx.inc | 12 + .../doctools2idx/include/import/format/json.inc | 2 + modules/doctools2idx/include/import/plugin.inc | 55 + modules/doctools2idx/include/msgcat.inc | 46 + modules/doctools2idx/include/serialization.inc | 97 + modules/doctools2idx/msgcat_c.tcl | 26 + modules/doctools2idx/msgcat_de.tcl | 26 + modules/doctools2idx/msgcat_en.tcl | 26 + modules/doctools2idx/msgcat_fr.tcl | 29 + modules/doctools2idx/parse.tcl | 1043 ++ modules/doctools2idx/parse.test | 153 + modules/doctools2idx/pkgIndex.tcl | 33 + modules/doctools2idx/structure.tcl | 288 + modules/doctools2idx/structure.test | 163 + modules/doctools2idx/tests/container | 358 + modules/doctools2idx/tests/data/bad_command | 1 + modules/doctools2idx/tests/data/empty | 0 modules/doctools2idx/tests/data/fail/badtrees.tcl | 23 + .../tests/data/fail/docidx/01_nonwhitespace1 | 1 + .../tests/data/fail/docidx/02_nonwhitespace2 | 1 + .../tests/data/fail/docidx/03_illegalcmd1 | 1 + .../tests/data/fail/docidx/04_illegalcmd2 | 1 + .../tests/data/fail/docidx/05_nestingbad1 | 1 + .../tests/data/fail/docidx/06_nestingbad2 | 1 + .../tests/data/fail/docidx/07_wrongargs | 1 + .../tests/data/fail/docidx/08_toomanyargs | 1 + .../tests/data/fail/docidx/09_vsetvarunknown | 1 + .../tests/data/fail/docidx/10_vsetvarerr | 1 + .../tests/data/fail/docidx/11_vsetvalueerr | 1 + .../tests/data/fail/docidx/12_incerror | 1 + .../tests/data/fail/docidx/13_incnotfound | 1 + .../tests/data/fail/docidx/14_incempty | 1 + .../tests/data/fail/docidx/15_incbadeof | 1 + .../tests/data/fail/docidx/16_incbadchar | 1 + .../tests/data/fail/docidx/17_badempty | 0 .../doctools2idx/tests/data/fail/docidx/18_nobegin | 1 + .../tests/data/fail/docidx/19_manybegin | 5 + .../tests/data/fail/docidx/20_latebegin | 3 + .../doctools2idx/tests/data/fail/docidx/21_noend1 | 1 + .../doctools2idx/tests/data/fail/docidx/22_noend2 | 2 + .../doctools2idx/tests/data/fail/docidx/23_manyend | 5 + .../tests/data/fail/docidx/24_earlyend | 4 + .../tests/data/fail/docidx/25_nobeginend | 2 + .../doctools2idx/tests/data/fail/docidx/26_latekey | 6 + .../tests/data/fail/docidx/27_incbadcmd | 1 + .../tests/data/fail/docidx/28_badredef | 6 + .../tests/data/fail/docidx/29_badredef2 | 6 + .../tests/data/fail/ecode/01_nonwhitespace1 | 1 + .../tests/data/fail/ecode/02_nonwhitespace2 | 1 + .../tests/data/fail/ecode/03_illegalcmd1 | 1 + .../tests/data/fail/ecode/04_illegalcmd2 | 1 + .../tests/data/fail/ecode/05_nestingbad1 | 1 + .../tests/data/fail/ecode/06_nestingbad2 | 1 + .../tests/data/fail/ecode/07_wrongargs | 1 + .../tests/data/fail/ecode/08_toomanyargs | 1 + .../tests/data/fail/ecode/09_vsetvarunknown | 1 + .../tests/data/fail/ecode/10_vsetvarerr | 1 + .../tests/data/fail/ecode/11_vsetvalueerr | 1 + .../doctools2idx/tests/data/fail/ecode/12_incerror | 1 + .../tests/data/fail/ecode/13_incnotfound | 1 + .../doctools2idx/tests/data/fail/ecode/14_incempty | 1 + .../tests/data/fail/ecode/15_incbadeof | 1 + .../tests/data/fail/ecode/16_incbadchar | 1 + .../doctools2idx/tests/data/fail/ecode/17_badempty | 1 + .../doctools2idx/tests/data/fail/ecode/18_nobegin | 1 + .../tests/data/fail/ecode/19_manybegin | 1 + .../tests/data/fail/ecode/20_latebegin | 1 + .../doctools2idx/tests/data/fail/ecode/21_noend1 | 1 + .../doctools2idx/tests/data/fail/ecode/22_noend2 | 1 + .../doctools2idx/tests/data/fail/ecode/23_manyend | 1 + .../doctools2idx/tests/data/fail/ecode/24_earlyend | 1 + .../tests/data/fail/ecode/25_nobeginend | 1 + .../doctools2idx/tests/data/fail/ecode/26_latekey | 1 + .../tests/data/fail/ecode/27_incbadcmd | 1 + .../doctools2idx/tests/data/fail/ecode/28_badredef | 1 + .../tests/data/fail/ecode/29_badredef2 | 1 + .../tests/data/fail/emsg/01_nonwhitespace1 | 1 + .../tests/data/fail/emsg/02_nonwhitespace2 | 1 + .../tests/data/fail/emsg/03_illegalcmd1 | 1 + .../tests/data/fail/emsg/04_illegalcmd2 | 1 + .../tests/data/fail/emsg/05_nestingbad1 | 1 + .../tests/data/fail/emsg/06_nestingbad2 | 1 + .../doctools2idx/tests/data/fail/emsg/07_wrongargs | 1 + .../tests/data/fail/emsg/08_toomanyargs | 1 + .../tests/data/fail/emsg/09_vsetvarunknown | 1 + .../tests/data/fail/emsg/10_vsetvarerr | 1 + .../tests/data/fail/emsg/11_vsetvalueerr | 1 + .../doctools2idx/tests/data/fail/emsg/12_incerror | 1 + .../tests/data/fail/emsg/13_incnotfound | 1 + .../doctools2idx/tests/data/fail/emsg/14_incempty | 1 + .../doctools2idx/tests/data/fail/emsg/15_incbadeof | 2 + .../tests/data/fail/emsg/16_incbadchar | 2 + .../doctools2idx/tests/data/fail/emsg/17_badempty | 1 + .../doctools2idx/tests/data/fail/emsg/18_nobegin | 1 + .../doctools2idx/tests/data/fail/emsg/19_manybegin | 3 + .../doctools2idx/tests/data/fail/emsg/20_latebegin | 2 + .../doctools2idx/tests/data/fail/emsg/21_noend1 | 1 + .../doctools2idx/tests/data/fail/emsg/22_noend2 | 1 + .../doctools2idx/tests/data/fail/emsg/23_manyend | 3 + .../doctools2idx/tests/data/fail/emsg/24_earlyend | 1 + .../tests/data/fail/emsg/25_nobeginend | 2 + .../doctools2idx/tests/data/fail/emsg/26_latekey | 1 + .../doctools2idx/tests/data/fail/emsg/27_incbadcmd | 1 + .../doctools2idx/tests/data/fail/emsg/28_badredef | 1 + .../doctools2idx/tests/data/fail/emsg/29_badredef2 | 1 + .../tests/data/fail/json-emsg/00_short | 1 + .../doctools2idx/tests/data/fail/json-emsg/01_tag | 1 + .../tests/data/fail/json-emsg/02_cshort | 1 + .../tests/data/fail/json-emsg/03_misslabel | 1 + .../tests/data/fail/json-emsg/04_misstitle | 1 + .../tests/data/fail/json-emsg/05_misskeywords | 1 + .../tests/data/fail/json-emsg/06_missreferences | 1 + .../tests/data/fail/json-emsg/10_refmismatcha | 1 + .../tests/data/fail/json-emsg/11_refmismatchb | 1 + .../tests/data/fail/json-emsg/12_rargs | 1 + .../doctools2idx/tests/data/fail/json-emsg/13_rtag | 1 + modules/doctools2idx/tests/data/fail/json/00_short | 2 + modules/doctools2idx/tests/data/fail/json/01_tag | 4 + .../doctools2idx/tests/data/fail/json/02_cshort | 4 + .../doctools2idx/tests/data/fail/json/03_misslabel | 8 + .../doctools2idx/tests/data/fail/json/04_misstitle | 8 + .../tests/data/fail/json/05_misskeywords | 8 + .../tests/data/fail/json/06_missreferences | 8 + .../tests/data/fail/json/10_refmismatcha | 10 + .../tests/data/fail/json/11_refmismatchb | 10 + modules/doctools2idx/tests/data/fail/json/12_rargs | 12 + modules/doctools2idx/tests/data/fail/json/13_rtag | 12 + .../tests/data/ok/docidx-aligned/1_nokeys | 2 + .../tests/data/ok/docidx-aligned/2_justkeys | 46 + .../tests/data/ok/docidx-aligned/3_kwic | 206 + .../tests/data/ok/docidx-compact/1_nokeys | 2 + .../tests/data/ok/docidx-compact/2_justkeys | 46 + .../tests/data/ok/docidx-compact/3_kwic | 206 + .../tests/data/ok/docidx-indalign/1_nokeys | 2 + .../tests/data/ok/docidx-indalign/2_justkeys | 46 + .../tests/data/ok/docidx-indalign/3_kwic | 206 + .../tests/data/ok/docidx-indented/1_nokeys | 2 + .../tests/data/ok/docidx-indented/2_justkeys | 46 + .../tests/data/ok/docidx-indented/3_kwic | 206 + .../tests/data/ok/docidx-ultracompact/1_nokeys | 1 + .../tests/data/ok/docidx-ultracompact/2_justkeys | 1 + .../tests/data/ok/docidx-ultracompact/3_kwic | 1 + modules/doctools2idx/tests/data/ok/docidx/1_nokeys | 2 + .../doctools2idx/tests/data/ok/docidx/2_justkeys | 51 + modules/doctools2idx/tests/data/ok/docidx/3_kwic | 211 + .../tests/data/ok/html-compact/1_nokeys | 20 + .../tests/data/ok/html-compact/2_justkeys | 245 + .../doctools2idx/tests/data/ok/html-compact/3_kwic | 449 + .../tests/data/ok/html-indented/1_nokeys | 20 + .../tests/data/ok/html-indented/2_justkeys | 245 + .../tests/data/ok/html-indented/3_kwic | 449 + .../tests/data/ok/html-ultracompact/1_nokeys | 1 + .../tests/data/ok/html-ultracompact/2_justkeys | 1 + .../tests/data/ok/html-ultracompact/3_kwic | 1 + .../tests/data/ok/json-indalign/1_nokeys | 8 + .../tests/data/ok/json-indalign/2_justkeys | 53 + .../tests/data/ok/json-indalign/3_kwic | 80 + .../tests/data/ok/json-indented/1_nokeys | 8 + .../tests/data/ok/json-indented/2_justkeys | 53 + .../tests/data/ok/json-indented/3_kwic | 80 + .../tests/data/ok/json-ultracompact/1_nokeys | 1 + .../tests/data/ok/json-ultracompact/2_justkeys | 1 + .../tests/data/ok/json-ultracompact/3_kwic | 1 + modules/doctools2idx/tests/data/ok/json/1_nokeys | 8 + modules/doctools2idx/tests/data/ok/json/2_justkeys | 53 + modules/doctools2idx/tests/data/ok/json/3_kwic | 80 + modules/doctools2idx/tests/data/ok/json/README.txt | 3 + .../tests/data/ok/nroff-external/1_nokeys | 5 + .../tests/data/ok/nroff-external/2_justkeys | 136 + .../tests/data/ok/nroff-external/3_kwic | 660 + .../tests/data/ok/nroff-inlined/1_nokeys | 4 + .../tests/data/ok/nroff-inlined/2_justkeys | 135 + .../tests/data/ok/nroff-inlined/3_kwic | 659 + .../tests/data/ok/serial-print/1_nokeys | 1 + .../tests/data/ok/serial-print/2_justkeys | 45 + .../doctools2idx/tests/data/ok/serial-print/3_kwic | 205 + modules/doctools2idx/tests/data/ok/serial/1_nokeys | 1 + .../doctools2idx/tests/data/ok/serial/2_justkeys | 1 + modules/doctools2idx/tests/data/ok/serial/3_kwic | 1 + modules/doctools2idx/tests/data/ok/text/1_nokeys | 2 + modules/doctools2idx/tests/data/ok/text/2_justkeys | 136 + modules/doctools2idx/tests/data/ok/text/3_kwic | 294 + .../doctools2idx/tests/data/ok/wiki-list/1_nokeys | 3 + .../tests/data/ok/wiki-list/2_justkeys | 48 + .../doctools2idx/tests/data/ok/wiki-list/3_kwic | 251 + .../doctools2idx/tests/data/ok/wiki-table/1_nokeys | 1 + .../tests/data/ok/wiki-table/2_justkeys | 46 + .../doctools2idx/tests/data/ok/wiki-table/3_kwic | 206 + modules/doctools2idx/tests/data/unexpected_char | 2 + modules/doctools2idx/tests/data/unexpected_eof | 1 + modules/doctools2idx/tests/export | 153 + modules/doctools2idx/tests/export_docidx | 5 + modules/doctools2idx/tests/export_text | 5 + modules/doctools2idx/tests/import | 174 + modules/doctools2idx/tests/import_docidx | 73 + modules/doctools2idx/tests/parse | 130 + modules/doctools2toc/ChangeLog | 103 + modules/doctools2toc/container.tcl | 545 + modules/doctools2toc/container.test | 53 + modules/doctools2toc/export.tcl | 125 + modules/doctools2toc/export.test | 212 + modules/doctools2toc/export_doctoc.man | 7 + modules/doctools2toc/export_doctoc.tcl | 217 + modules/doctools2toc/export_doctoc.test | 77 + modules/doctools2toc/export_html.tcl | 323 + modules/doctools2toc/export_html.test | 76 + modules/doctools2toc/export_json.tcl | 223 + modules/doctools2toc/export_json.test | 74 + modules/doctools2toc/export_nroff.tcl | 218 + modules/doctools2toc/export_nroff.test | 73 + modules/doctools2toc/export_text.tcl | 142 + modules/doctools2toc/export_text.test | 63 + modules/doctools2toc/export_wiki.tcl | 144 + modules/doctools2toc/export_wiki.test | 63 + modules/doctools2toc/import.tcl | 191 + modules/doctools2toc/import.test | 377 + modules/doctools2toc/import_doctoc.man | 6 + modules/doctools2toc/import_doctoc.tcl | 91 + modules/doctools2toc/import_doctoc.test | 92 + modules/doctools2toc/import_json.tcl | 77 + modules/doctools2toc/import_json.test | 115 + modules/doctools2toc/include/concept.inc | 47 + modules/doctools2toc/include/dependencies.inc | 44 + .../doctools2toc/include/export/config/doctoc.inc | 70 + .../doctools2toc/include/export/config/html.inc | 155 + .../doctools2toc/include/export/config/json.inc | 39 + .../doctools2toc/include/export/config/nroff.inc | 40 + .../doctools2toc/include/export/config/text.inc | 21 + .../doctools2toc/include/export/config/wiki.inc | 32 + .../doctools2toc/include/export/format/html.inc | 3 + .../doctools2toc/include/export/format/json.inc | 1 + .../doctools2toc/include/export/format/nroff.inc | 2 + .../doctools2toc/include/export/format/null.inc | 0 .../doctools2toc/include/export/format/text.inc | 1 + modules/doctools2toc/include/export/plugin.inc | 55 + modules/doctools2toc/include/format/doctoc.inc | 22 + modules/doctools2toc/include/format/json.inc | 74 + .../doctools2toc/include/import/config/doctoc.inc | 1 + .../doctools2toc/include/import/config/json.inc | 1 + .../doctools2toc/include/import/format/doctoc.inc | 12 + .../doctools2toc/include/import/format/json.inc | 2 + modules/doctools2toc/include/import/plugin.inc | 55 + modules/doctools2toc/include/msgcat.inc | 46 + modules/doctools2toc/include/serialization.inc | 131 + modules/doctools2toc/msgcat_c.tcl | 28 + modules/doctools2toc/msgcat_de.tcl | 28 + modules/doctools2toc/msgcat_en.tcl | 28 + modules/doctools2toc/msgcat_fr.tcl | 31 + modules/doctools2toc/parse.tcl | 1058 ++ modules/doctools2toc/parse.test | 153 + modules/doctools2toc/pkgIndex.tcl | 33 + modules/doctools2toc/structure.tcl | 388 + modules/doctools2toc/structure.test | 212 + modules/doctools2toc/tests/container | 379 + modules/doctools2toc/tests/container_main | 1003 ++ modules/doctools2toc/tests/data/bad_command | 1 + modules/doctools2toc/tests/data/empty | 0 modules/doctools2toc/tests/data/fail/badtrees.tcl | 23 + .../tests/data/fail/doctoc/01_nonwhitespace1 | 1 + .../tests/data/fail/doctoc/02_nonwhitespace2 | 1 + .../tests/data/fail/doctoc/03_illegalcmd1 | 1 + .../tests/data/fail/doctoc/04_illegalcmd2 | 1 + .../tests/data/fail/doctoc/05_nestingbad1 | 1 + .../tests/data/fail/doctoc/06_nestingbad2 | 1 + .../tests/data/fail/doctoc/07_wrongargs | 1 + .../tests/data/fail/doctoc/08_toomanyargs | 1 + .../tests/data/fail/doctoc/09_vsetvarunknown | 1 + .../tests/data/fail/doctoc/10_vsetvarerr | 1 + .../tests/data/fail/doctoc/11_vsetvalueerr | 1 + .../tests/data/fail/doctoc/12_incerror | 1 + .../tests/data/fail/doctoc/13_incnotfound | 1 + .../tests/data/fail/doctoc/14_incempty | 1 + .../tests/data/fail/doctoc/15_incbadeof | 1 + .../tests/data/fail/doctoc/16_incbadchar | 1 + .../tests/data/fail/doctoc/17_badempty | 0 .../doctools2toc/tests/data/fail/doctoc/18_nobegin | 1 + .../tests/data/fail/doctoc/19_manybegin | 5 + .../tests/data/fail/doctoc/20_latebegin | 3 + .../doctools2toc/tests/data/fail/doctoc/21_noend1 | 1 + .../doctools2toc/tests/data/fail/doctoc/22_noend2 | 2 + .../doctools2toc/tests/data/fail/doctoc/23_manyend | 5 + .../tests/data/fail/doctoc/24_earlyend | 4 + .../tests/data/fail/doctoc/25_nobeginend | 2 + .../tests/data/fail/doctoc/26_nodivbegin | 3 + .../tests/data/fail/doctoc/27_incbadcmd | 1 + .../tests/data/fail/doctoc/28_badredef | 4 + .../tests/data/fail/doctoc/29_badredef2 | 5 + .../tests/data/fail/doctoc/30_manydivbegin | 5 + .../tests/data/fail/doctoc/31_nodivend | 3 + .../tests/data/fail/doctoc/32_manydivend | 5 + .../tests/data/fail/ecode/01_nonwhitespace1 | 1 + .../tests/data/fail/ecode/02_nonwhitespace2 | 1 + .../tests/data/fail/ecode/03_illegalcmd1 | 1 + .../tests/data/fail/ecode/04_illegalcmd2 | 1 + .../tests/data/fail/ecode/05_nestingbad1 | 1 + .../tests/data/fail/ecode/06_nestingbad2 | 1 + .../tests/data/fail/ecode/07_wrongargs | 1 + .../tests/data/fail/ecode/08_toomanyargs | 1 + .../tests/data/fail/ecode/09_vsetvarunknown | 1 + .../tests/data/fail/ecode/10_vsetvarerr | 1 + .../tests/data/fail/ecode/11_vsetvalueerr | 1 + .../doctools2toc/tests/data/fail/ecode/12_incerror | 1 + .../tests/data/fail/ecode/13_incnotfound | 1 + .../doctools2toc/tests/data/fail/ecode/14_incempty | 1 + .../tests/data/fail/ecode/15_incbadeof | 1 + .../tests/data/fail/ecode/16_incbadchar | 1 + .../doctools2toc/tests/data/fail/ecode/17_badempty | 1 + .../doctools2toc/tests/data/fail/ecode/18_nobegin | 1 + .../tests/data/fail/ecode/19_manybegin | 1 + .../tests/data/fail/ecode/20_latebegin | 1 + .../doctools2toc/tests/data/fail/ecode/21_noend1 | 1 + .../doctools2toc/tests/data/fail/ecode/22_noend2 | 1 + .../doctools2toc/tests/data/fail/ecode/23_manyend | 1 + .../doctools2toc/tests/data/fail/ecode/24_earlyend | 1 + .../tests/data/fail/ecode/25_nobeginend | 1 + .../tests/data/fail/ecode/26_nodivbegin | 1 + .../tests/data/fail/ecode/27_incbadcmd | 1 + .../doctools2toc/tests/data/fail/ecode/28_badredef | 1 + .../tests/data/fail/ecode/29_badredef2 | 1 + .../tests/data/fail/ecode/30_manydivbegin | 1 + .../doctools2toc/tests/data/fail/ecode/31_nodivend | 1 + .../tests/data/fail/ecode/32_manydivend | 1 + .../tests/data/fail/emsg/01_nonwhitespace1 | 1 + .../tests/data/fail/emsg/02_nonwhitespace2 | 1 + .../tests/data/fail/emsg/03_illegalcmd1 | 1 + .../tests/data/fail/emsg/04_illegalcmd2 | 1 + .../tests/data/fail/emsg/05_nestingbad1 | 1 + .../tests/data/fail/emsg/06_nestingbad2 | 1 + .../doctools2toc/tests/data/fail/emsg/07_wrongargs | 1 + .../tests/data/fail/emsg/08_toomanyargs | 1 + .../tests/data/fail/emsg/09_vsetvarunknown | 1 + .../tests/data/fail/emsg/10_vsetvarerr | 1 + .../tests/data/fail/emsg/11_vsetvalueerr | 1 + .../doctools2toc/tests/data/fail/emsg/12_incerror | 1 + .../tests/data/fail/emsg/13_incnotfound | 1 + .../doctools2toc/tests/data/fail/emsg/14_incempty | 1 + .../doctools2toc/tests/data/fail/emsg/15_incbadeof | 2 + .../tests/data/fail/emsg/16_incbadchar | 2 + .../doctools2toc/tests/data/fail/emsg/17_badempty | 1 + .../doctools2toc/tests/data/fail/emsg/18_nobegin | 1 + .../doctools2toc/tests/data/fail/emsg/19_manybegin | 3 + .../doctools2toc/tests/data/fail/emsg/20_latebegin | 2 + .../doctools2toc/tests/data/fail/emsg/21_noend1 | 1 + .../doctools2toc/tests/data/fail/emsg/22_noend2 | 1 + .../doctools2toc/tests/data/fail/emsg/23_manyend | 3 + .../doctools2toc/tests/data/fail/emsg/24_earlyend | 1 + .../tests/data/fail/emsg/25_nobeginend | 2 + .../tests/data/fail/emsg/26_nodivbegin | 1 + .../doctools2toc/tests/data/fail/emsg/27_incbadcmd | 1 + .../doctools2toc/tests/data/fail/emsg/28_badredef | 1 + .../doctools2toc/tests/data/fail/emsg/29_badredef2 | 1 + .../tests/data/fail/emsg/30_manydivbegin | 2 + .../doctools2toc/tests/data/fail/emsg/31_nodivend | 2 + .../tests/data/fail/emsg/32_manydivend | 3 + .../tests/data/fail/json-emsg/00_short | 1 + .../doctools2toc/tests/data/fail/json-emsg/01_tag | 1 + .../tests/data/fail/json-emsg/02_cshort | 1 + .../tests/data/fail/json-emsg/03_misslabel | 1 + .../tests/data/fail/json-emsg/04_misstitle | 1 + .../tests/data/fail/json-emsg/05_missitems | 1 + .../tests/data/fail/json-emsg/07_cshort2 | 1 + .../doctools2toc/tests/data/fail/json-emsg/08_etag | 1 + .../tests/data/fail/json-emsg/09_cshort3 | 2 + .../tests/data/fail/json-emsg/10_missid | 1 + .../tests/data/fail/json-emsg/11_misslabel2 | 2 + .../tests/data/fail/json-emsg/12_missdesc | 2 + .../tests/data/fail/json-emsg/14_dshort | 2 + .../tests/data/fail/json-emsg/15_misslabel3 | 3 + .../tests/data/fail/json-emsg/16_missitems2 | 1 + .../tests/data/fail/json-emsg/19_duplabel | 1 + .../tests/data/fail/json-emsg/20_duplabel2 | 1 + .../tests/data/fail/json-emsg/21_duplabel3 | 1 + modules/doctools2toc/tests/data/fail/json/00_short | 2 + modules/doctools2toc/tests/data/fail/json/01_tag | 4 + .../doctools2toc/tests/data/fail/json/02_cshort | 4 + .../doctools2toc/tests/data/fail/json/03_misslabel | 7 + .../doctools2toc/tests/data/fail/json/04_misstitle | 7 + .../doctools2toc/tests/data/fail/json/05_missitems | 7 + .../doctools2toc/tests/data/fail/json/07_cshort2 | 7 + modules/doctools2toc/tests/data/fail/json/08_etag | 7 + .../doctools2toc/tests/data/fail/json/09_cshort3 | 7 + .../doctools2toc/tests/data/fail/json/10_missid | 11 + .../tests/data/fail/json/11_misslabel2 | 11 + .../doctools2toc/tests/data/fail/json/12_missdesc | 11 + .../doctools2toc/tests/data/fail/json/14_dshort | 7 + .../tests/data/fail/json/15_misslabel3 | 10 + .../tests/data/fail/json/16_missitems2 | 10 + .../doctools2toc/tests/data/fail/json/19_duplabel | 15 + .../doctools2toc/tests/data/fail/json/20_duplabel2 | 15 + .../doctools2toc/tests/data/fail/json/21_duplabel3 | 15 + .../tests/data/ok/doctoc-aligned/1_empty | 2 + .../tests/data/ok/doctoc-aligned/2_references | 5 + .../tests/data/ok/doctoc-aligned/3_toc | 7 + .../tests/data/ok/doctoc-aligned/4_toc2 | 7 + .../tests/data/ok/doctoc-compact/1_empty | 2 + .../tests/data/ok/doctoc-compact/2_references | 5 + .../tests/data/ok/doctoc-compact/3_toc | 7 + .../tests/data/ok/doctoc-compact/4_toc2 | 7 + .../tests/data/ok/doctoc-indalign/1_empty | 2 + .../tests/data/ok/doctoc-indalign/2_references | 5 + .../tests/data/ok/doctoc-indalign/3_toc | 7 + .../tests/data/ok/doctoc-indalign/4_toc2 | 7 + .../tests/data/ok/doctoc-indented/1_empty | 2 + .../tests/data/ok/doctoc-indented/2_references | 5 + .../tests/data/ok/doctoc-indented/3_toc | 7 + .../tests/data/ok/doctoc-indented/4_toc2 | 7 + .../tests/data/ok/doctoc-ultracompact/1_empty | 1 + .../tests/data/ok/doctoc-ultracompact/2_references | 1 + .../tests/data/ok/doctoc-ultracompact/3_toc | 1 + .../tests/data/ok/doctoc-ultracompact/4_toc2 | 1 + modules/doctools2toc/tests/data/ok/doctoc/1_empty | 2 + .../doctools2toc/tests/data/ok/doctoc/2_references | 5 + modules/doctools2toc/tests/data/ok/doctoc/3_toc | 7 + modules/doctools2toc/tests/data/ok/doctoc/4_toc2 | 7 + .../tests/data/ok/html-compact/1_empty | 20 + .../tests/data/ok/html-compact/2_references | 30 + .../doctools2toc/tests/data/ok/html-compact/3_toc | 37 + .../doctools2toc/tests/data/ok/html-compact/4_toc2 | 37 + .../tests/data/ok/html-indented/1_empty | 20 + .../tests/data/ok/html-indented/2_references | 30 + .../doctools2toc/tests/data/ok/html-indented/3_toc | 37 + .../tests/data/ok/html-indented/4_toc2 | 37 + .../tests/data/ok/html-ultracompact/1_empty | 1 + .../tests/data/ok/html-ultracompact/2_references | 1 + .../tests/data/ok/html-ultracompact/3_toc | 1 + .../tests/data/ok/html-ultracompact/4_toc2 | 1 + .../tests/data/ok/json-indalign/1_empty | 7 + .../tests/data/ok/json-indalign/2_references | 25 + .../doctools2toc/tests/data/ok/json-indalign/3_toc | 31 + .../tests/data/ok/json-indalign/4_toc2 | 31 + .../tests/data/ok/json-indented/1_empty | 7 + .../tests/data/ok/json-indented/2_references | 25 + .../doctools2toc/tests/data/ok/json-indented/3_toc | 31 + .../tests/data/ok/json-indented/4_toc2 | 31 + .../tests/data/ok/json-ultracompact/1_empty | 1 + .../tests/data/ok/json-ultracompact/2_references | 1 + .../tests/data/ok/json-ultracompact/3_toc | 1 + .../tests/data/ok/json-ultracompact/4_toc2 | 1 + modules/doctools2toc/tests/data/ok/json/1_empty | 7 + .../doctools2toc/tests/data/ok/json/2_references | 25 + modules/doctools2toc/tests/data/ok/json/3_toc | 31 + modules/doctools2toc/tests/data/ok/json/4_toc2 | 31 + .../tests/data/ok/nroff-external/1_empty | 4 + .../tests/data/ok/nroff-external/2_references | 14 + .../tests/data/ok/nroff-external/3_toc | 19 + .../tests/data/ok/nroff-external/4_toc2 | 19 + .../tests/data/ok/nroff-inlined/1_empty | 3 + .../tests/data/ok/nroff-inlined/2_references | 13 + .../doctools2toc/tests/data/ok/nroff-inlined/3_toc | 18 + .../tests/data/ok/nroff-inlined/4_toc2 | 18 + .../tests/data/ok/serial-print/1_empty | 1 + .../tests/data/ok/serial-print/2_references | 4 + .../doctools2toc/tests/data/ok/serial-print/3_toc | 5 + .../doctools2toc/tests/data/ok/serial-print/4_toc2 | 5 + modules/doctools2toc/tests/data/ok/serial/1_empty | 1 + .../doctools2toc/tests/data/ok/serial/2_references | 1 + modules/doctools2toc/tests/data/ok/serial/3_toc | 2 + modules/doctools2toc/tests/data/ok/serial/4_toc2 | 1 + modules/doctools2toc/tests/data/ok/text/1_empty | 2 + .../doctools2toc/tests/data/ok/text/2_references | 11 + modules/doctools2toc/tests/data/ok/text/3_toc | 14 + modules/doctools2toc/tests/data/ok/text/4_toc2 | 15 + modules/doctools2toc/tests/data/ok/wiki/1_empty | 1 + .../doctools2toc/tests/data/ok/wiki/2_references | 5 + modules/doctools2toc/tests/data/ok/wiki/3_toc | 6 + modules/doctools2toc/tests/data/ok/wiki/4_toc2 | 6 + modules/doctools2toc/tests/data/unexpected_char | 2 + modules/doctools2toc/tests/data/unexpected_eof | 1 + modules/doctools2toc/tests/export | 147 + modules/doctools2toc/tests/export_doctoc | 5 + modules/doctools2toc/tests/export_text | 5 + modules/doctools2toc/tests/import | 174 + modules/doctools2toc/tests/import_doctoc | 73 + modules/doctools2toc/tests/parse | 130 + modules/doctools2toc/toc_container.man | 370 + modules/doctools2toc/toc_export.man | 306 + modules/doctools2toc/toc_export_html.man | 7 + modules/doctools2toc/toc_export_json.man | 7 + modules/doctools2toc/toc_export_nroff.man | 7 + modules/doctools2toc/toc_export_text.man | 7 + modules/doctools2toc/toc_export_wiki.man | 7 + modules/doctools2toc/toc_import.man | 394 + modules/doctools2toc/toc_import_json.man | 6 + modules/doctools2toc/toc_introduction.man | 143 + modules/doctools2toc/toc_msgcat_c.man | 5 + modules/doctools2toc/toc_msgcat_de.man | 5 + modules/doctools2toc/toc_msgcat_en.man | 5 + modules/doctools2toc/toc_msgcat_fr.man | 5 + modules/doctools2toc/toc_parse.man | 175 + modules/doctools2toc/toc_structure.man | 151 + modules/dtplite/ChangeLog | 11 + modules/dtplite/dtplite.tcl | 1764 +++ modules/dtplite/pkgIndex.tcl | 5 + modules/dtplite/pkg_dtplite.man | 449 + modules/exif/ChangeLog | 176 + modules/exif/exif.html | 147 + modules/exif/exif.man | 80 + modules/exif/exif.pcx | 34 + modules/exif/exif.tcl | 937 ++ modules/exif/exif.test | 42 + modules/exif/exif.txt | 280 + modules/exif/exif.xml | 100 + modules/exif/noafpoint.jpg | Bin 0 -> 1626 bytes modules/exif/pkgIndex.tcl | 2 + modules/fileutil/ChangeLog | 1006 ++ modules/fileutil/cross-index-trav.inc | 16 + modules/fileutil/cross-index.inc | 12 + modules/fileutil/decode.tcl | 191 + modules/fileutil/filetype.test | 193 + modules/fileutil/fileutil.man | 522 + modules/fileutil/fileutil.tcl | 2295 +++ modules/fileutil/fileutil.test | 499 + modules/fileutil/find.setup | 432 + modules/fileutil/find.test | 367 + modules/fileutil/include/cross-index-trav.inc | 16 + modules/fileutil/include/cross-index.inc | 12 + modules/fileutil/inplace.test | 1129 ++ modules/fileutil/multi.man | 56 + modules/fileutil/multi.tcl | 28 + modules/fileutil/multi.test | 310 + modules/fileutil/multiop.man | 402 + modules/fileutil/multiop.setup | 49 + modules/fileutil/multiop.tcl | 645 + modules/fileutil/multiop.test | 370 + modules/fileutil/pathops.test | 515 + modules/fileutil/pkgIndex.tcl | 10 + modules/fileutil/strip.test | 118 + modules/fileutil/test-data/pdf4tcl_01.pdf | 83 + modules/fileutil/test.test | 665 + modules/fileutil/traverse.man | 165 + modules/fileutil/traverse.tcl | 506 + modules/fileutil/traverse.test | 499 + modules/ftp/ChangeLog | 621 + modules/ftp/README | 80 + modules/ftp/docs/fhelp1.html | 126 + modules/ftp/docs/fhelp10.html | 54 + modules/ftp/docs/fhelp11.html | 52 + modules/ftp/docs/fhelp12.html | 58 + modules/ftp/docs/fhelp125.html | 58 + modules/ftp/docs/fhelp13.html | 62 + modules/ftp/docs/fhelp14.html | 51 + modules/ftp/docs/fhelp15.html | 57 + modules/ftp/docs/fhelp16.html | 53 + modules/ftp/docs/fhelp17.html | 51 + modules/ftp/docs/fhelp18.html | 52 + modules/ftp/docs/fhelp2.html | 57 + modules/ftp/docs/fhelp3.html | 54 + modules/ftp/docs/fhelp4.html | 47 + modules/ftp/docs/fhelp5.html | 57 + modules/ftp/docs/fhelp6.html | 74 + modules/ftp/docs/fhelp7.html | 48 + modules/ftp/docs/fhelp8.html | 50 + modules/ftp/docs/fhelp9.html | 49 + modules/ftp/docs/index.html | 107 + modules/ftp/ftp.man | 440 + modules/ftp/ftp.tcl | 3159 ++++ modules/ftp/ftp_geturl.man | 57 + modules/ftp/ftp_geturl.tcl | 135 + modules/ftp/pkgIndex.tcl | 3 + modules/ftpd/ChangeLog | 249 + modules/ftpd/ftpd.man | 279 + modules/ftpd/ftpd.tcl | 2064 +++ modules/ftpd/pkgIndex.tcl | 2 + modules/fumagic/ChangeLog | 235 + modules/fumagic/cfront.man | 71 + modules/fumagic/cfront.tcl | 396 + modules/fumagic/cgen.man | 63 + modules/fumagic/cgen.tcl | 671 + modules/fumagic/filetypes.man | 63 + modules/fumagic/filetypes.tcl | 5180 +++++++ modules/fumagic/filetypes.test | 186 + modules/fumagic/fileutil_magic_cfront.pcx | 35 + modules/fumagic/fileutil_magic_cgen.pcx | 35 + modules/fumagic/fileutil_magic_filetype.pcx | 26 + modules/fumagic/fileutil_magic_mimetype.pcx | 26 + modules/fumagic/fileutil_magic_rt.pcx | 116 + modules/fumagic/fumagic.testsupport | 70 + modules/fumagic/mimetypes.man | 60 + modules/fumagic/mimetypes.tcl | 583 + modules/fumagic/mimetypes.test | 185 + modules/fumagic/pkgIndex.tcl | 15 + modules/fumagic/regenerate.sh | 13 + modules/fumagic/rtcore.man | 238 + modules/fumagic/rtcore.tcl | 500 + modules/fumagic/tmc | 248 + modules/generator/ChangeLog | 11 + modules/generator/generator.man | 482 + modules/generator/generator.tcl | 378 + modules/generator/license.terms | 38 + modules/generator/pkgIndex.tcl | 3 + modules/gpx/ChangeLog | 44 + modules/gpx/gpx.man | 158 + modules/gpx/gpx.tcl | 294 + modules/gpx/gpx.test | 317 + modules/gpx/pkgIndex.tcl | 2 + modules/grammar_aycock/ChangeLog | 54 + modules/grammar_aycock/aycock-build.tcl | 735 + modules/grammar_aycock/aycock-debug.tcl | 189 + modules/grammar_aycock/aycock-runtime.tcl | 425 + modules/grammar_aycock/aycock.man | 139 + modules/grammar_aycock/aycock.test | 196 + modules/grammar_aycock/pkgIndex.tcl | 8 + modules/grammar_fa/ChangeLog | 368 + modules/grammar_fa/dacceptor.man | 102 + modules/grammar_fa/dacceptor.tcl | 166 + modules/grammar_fa/dacceptor.test | 45 + modules/grammar_fa/dexec.man | 183 + modules/grammar_fa/dexec.tcl | 188 + modules/grammar_fa/dexec.test | 45 + modules/grammar_fa/fa.man | 652 + modules/grammar_fa/fa.tcl | 1242 ++ modules/grammar_fa/fa.test | 44 + modules/grammar_fa/faop.man | 480 + modules/grammar_fa/faop.tcl | 1618 +++ modules/grammar_fa/faop.test | 45 + modules/grammar_fa/pkgIndex.tcl | 6 + modules/grammar_fa/tests/Xsupport | 371 + modules/grammar_fa/tests/da_accept.test | 84 + modules/grammar_fa/tests/da_cons.test | 140 + modules/grammar_fa/tests/de_cons.test | 157 + modules/grammar_fa/tests/de_exec.test | 104 + modules/grammar_fa/tests/fa_cons.test | 87 + modules/grammar_fa/tests/fa_ec.test | 84 + modules/grammar_fa/tests/fa_final.test | 391 + modules/grammar_fa/tests/fa_is.test | 59 + modules/grammar_fa/tests/fa_is_complete.test | 60 + modules/grammar_fa/tests/fa_is_deterministic.test | 75 + modules/grammar_fa/tests/fa_is_epsfree.test | 60 + modules/grammar_fa/tests/fa_is_useful.test | 715 + modules/grammar_fa/tests/fa_next.test | 421 + modules/grammar_fa/tests/fa_reach.test | 344 + modules/grammar_fa/tests/fa_serial.test | 221 + modules/grammar_fa/tests/fa_start.test | 386 + modules/grammar_fa/tests/fa_state.test | 304 + modules/grammar_fa/tests/fa_states.test | 76 + modules/grammar_fa/tests/fa_symbol.test | 254 + modules/grammar_fa/tests/fa_symbols.test | 81 + modules/grammar_fa/tests/fa_symbols_at.test | 138 + modules/grammar_fa/tests/fa_useful.test | 344 + modules/grammar_fa/tests/faop_complete.test | 107 + modules/grammar_fa/tests/faop_concat.test | 113 + modules/grammar_fa/tests/faop_determinize.test | 117 + modules/grammar_fa/tests/faop_difference.test | 110 + modules/grammar_fa/tests/faop_intersect.test | 111 + modules/grammar_fa/tests/faop_kleene.test | 102 + modules/grammar_fa/tests/faop_minimize.test | 117 + modules/grammar_fa/tests/faop_optional.test | 102 + modules/grammar_fa/tests/faop_regex.test | 256 + modules/grammar_fa/tests/faop_remeps.test | 158 + modules/grammar_fa/tests/faop_reverse.test | 95 + modules/grammar_fa/tests/faop_trim.test | 209 + modules/grammar_fa/tests/faop_union.test | 113 + modules/grammar_me/ChangeLog | 211 + modules/grammar_me/gasm.man | 439 + modules/grammar_me/gasm.tcl | 207 + modules/grammar_me/me_ast.man | 134 + modules/grammar_me/me_cpu.man | 289 + modules/grammar_me/me_cpu.tcl | 103 + modules/grammar_me/me_cpu.test | 162 + modules/grammar_me/me_cpu.testsuite | 445 + modules/grammar_me/me_cpucore.man | 374 + modules/grammar_me/me_cpucore.tcl | 1156 ++ modules/grammar_me/me_cpucore.test | 163 + modules/grammar_me/me_cpucore.tests.asm-map.txt | 38 + modules/grammar_me/me_cpucore.tests.badasm-map.txt | 58 + .../grammar_me/me_cpucore.tests.badmach-map.txt | 67 + modules/grammar_me/me_cpucore.tests.semantics.txt | 279 + modules/grammar_me/me_cpucore.testsuite | 419 + modules/grammar_me/me_intro.man | 94 + modules/grammar_me/me_tcl.man | 343 + modules/grammar_me/me_tcl.tcl | 521 + modules/grammar_me/me_tcl.test | 1615 +++ modules/grammar_me/me_util.man | 83 + modules/grammar_me/me_util.tcl | 188 + modules/grammar_me/me_util.test | 168 + modules/grammar_me/me_util.testsuite | 384 + modules/grammar_me/me_vm.man | 663 + modules/grammar_me/pkgIndex.tcl | 7 + modules/grammar_peg/ChangeLog | 101 + modules/grammar_peg/peg.man | 721 + modules/grammar_peg/peg.tcl | 541 + modules/grammar_peg/peg_interp.man | 122 + modules/grammar_peg/peg_interp.tcl | 350 + modules/grammar_peg/pkgIndex.tcl | 2 + modules/hook/ChangeLog | 27 + modules/hook/hook.man | 375 + modules/hook/hook.tcl | 354 + modules/hook/hook.test | 492 + modules/hook/license.terms | 38 + modules/hook/pkgIndex.tcl | 5 + modules/html/ChangeLog | 300 + modules/html/html.man | 476 + modules/html/html.tcl | 1506 ++ modules/html/html.test | 958 ++ modules/html/pkgIndex.tcl | 2 + modules/htmlparse/ChangeLog | 321 + modules/htmlparse/htmlparse.man | 266 + modules/htmlparse/htmlparse.pcx | 57 + modules/htmlparse/htmlparse.tcl | 1444 ++ modules/htmlparse/htmlparse.test | 577 + modules/htmlparse/htmlparse.tree_testsuite | 53 + modules/htmlparse/pkgIndex.tcl | 2 + modules/http/ChangeLog | 159 + modules/http/autoproxy.man | 199 + modules/http/autoproxy.pcx | 62 + modules/http/autoproxy.tcl | 539 + modules/http/pkgIndex.tcl | 2 + modules/httpd/content.tcl | 395 + modules/httpd/demos/content.file.md | 55 + modules/httpd/demos/content.form.md | 17 + modules/httpd/demos/content.md | 14 + modules/httpd/demos/content.proxy.md | 20 + modules/httpd/demos/content.scgi.md | 20 + modules/httpd/demos/content.server.md | 42 + modules/httpd/demos/docserver.tcl | 134 + modules/httpd/demos/index.md | 18 + modules/httpd/demos/operations.md | 30 + modules/httpd/demos/reply.md | 0 modules/httpd/demos/server.md | 0 modules/httpd/dispatch.tcl | 11 + modules/httpd/httpd.tcl | 665 + modules/httpd/httpd.test | 285 + modules/httpd/pkgIndex.tcl | 15 + modules/httpd/scgi-app.tcl | 135 + modules/httpd/scgi.test | 330 + modules/httpwget/pkgIndex.tcl | 11 + modules/httpwget/wget.tcl | 54 + modules/ident/ChangeLog | 101 + modules/ident/ident.man | 54 + modules/ident/ident.pcx | 27 + modules/ident/ident.tcl | 90 + modules/ident/ident.test | 54 + modules/ident/pkgIndex.tcl | 13 + modules/imap4/ChangeLog | 73 + modules/imap4/imap4.man | 367 + modules/imap4/imap4.tcl | 1382 ++ modules/imap4/pkgIndex.tcl | 2 + modules/inifile/ChangeLog | 182 + modules/inifile/ini.man | 100 + modules/inifile/ini.tcl | 403 + modules/inifile/inifile.pcx | 89 + modules/inifile/inifile.test | 218 + modules/inifile/pkgIndex.tcl | 2 + modules/inifile/sample.ini | 5 + modules/inifile/test.ini | 15 + modules/interp/ChangeLog | 108 + modules/interp/deleg_method.man | 49 + modules/interp/deleg_method.tcl | 64 + modules/interp/deleg_method.test | 192 + modules/interp/deleg_proc.man | 47 + modules/interp/deleg_proc.tcl | 68 + modules/interp/deleg_proc.test | 153 + modules/interp/interp.tcl | 87 + modules/interp/interp.test | 127 + modules/interp/pkgIndex.tcl | 4 + modules/interp/tcllib_interp.man | 74 + modules/irc/ChangeLog | 259 + modules/irc/irc.man | 239 + modules/irc/irc.tcl | 523 + modules/irc/picoirc.man | 162 + modules/irc/picoirc.tcl | 271 + modules/irc/pkgIndex.tcl | 8 + modules/javascript/ChangeLog | 114 + modules/javascript/javascript.man | 96 + modules/javascript/javascript.tcl | 453 + modules/javascript/pkgIndex.tcl | 4 + modules/jpeg/ChangeLog | 197 + modules/jpeg/jpeg.man | 196 + modules/jpeg/jpeg.pcx | 83 + modules/jpeg/jpeg.tcl | 1125 ++ modules/jpeg/jpeg.test | 503 + modules/jpeg/pkgIndex.tcl | 2 + modules/jpeg/testimages/1000.JPG | Bin 0 -> 89547 bytes modules/jpeg/testimages/1000.WxH.txt | 1 + modules/jpeg/testimages/1000.exif.txt | 1 + modules/jpeg/testimages/1000.info.txt | 1 + modules/jpeg/testimages/1000.thumbexif.txt | 0 modules/jpeg/testimages/IMG_7898.JPG | Bin 0 -> 70940 bytes modules/jpeg/testimages/IMG_7898.JPG.thumb | Bin 0 -> 6496 bytes modules/jpeg/testimages/IMG_7898.WxH.txt | 1 + modules/jpeg/testimages/IMG_7898.exif.txt | 1 + modules/jpeg/testimages/IMG_7898.info.txt | 1 + modules/jpeg/testimages/IMG_7898.thumbexif.txt | 1 + modules/jpeg/testimages/IMG_7917.JPG | Bin 0 -> 48388 bytes modules/jpeg/testimages/IMG_7917.JPG.thumb | Bin 0 -> 5219 bytes modules/jpeg/testimages/IMG_7917.WxH.txt | 1 + modules/jpeg/testimages/IMG_7917.exif.txt | 1 + modules/jpeg/testimages/IMG_7917.info.txt | 1 + modules/jpeg/testimages/IMG_7917.thumbexif.txt | 1 + modules/jpeg/testimages/IMG_7950.JPG | Bin 0 -> 46910 bytes modules/jpeg/testimages/IMG_7950.JPG.thumb | Bin 0 -> 4181 bytes modules/jpeg/testimages/IMG_7950.WxH.txt | 1 + modules/jpeg/testimages/IMG_7950.exif.txt | 1 + modules/jpeg/testimages/IMG_7950.info.txt | 1 + modules/jpeg/testimages/IMG_7950.thumbexif.txt | 1 + modules/jpeg/testimages/IMG_7950_none.JPG | Bin 0 -> 37182 bytes modules/jpeg/testimages/IMG_7950_none.WxH.txt | 1 + modules/jpeg/testimages/IMG_7950_none.exif.txt | 0 modules/jpeg/testimages/IMG_7950_none.info.txt | 1 + .../jpeg/testimages/IMG_7950_none.thumbexif.txt | 0 modules/json/ChangeLog | 206 + modules/json/c/json.tab.c | 1785 +++ modules/json/c/json.y | 551 + modules/json/c/json_y.h | 63 + modules/json/json.bench | 167 + modules/json/json.man | 110 + modules/json/json.pcx | 32 + modules/json/json.tcl | 282 + modules/json/json.test | 94 + modules/json/json.testsuite | 102 + modules/json/json_tcl.tcl | 290 + modules/json/json_write.man | 88 + modules/json/json_write.pcx | 42 + modules/json/json_write.tcl | 200 + modules/json/json_write.test | 218 + modules/json/jsonc.tcl | 171 + modules/json/pkgIndex.tcl | 7 + modules/json/tests/array.json | 22 + modules/json/tests/array.result | 1 + modules/json/tests/array.sort | 1 + modules/json/tests/glossary.json | 15 + modules/json/tests/glossary.result | 1 + modules/json/tests/glossary.sort | 1 + modules/json/tests/menu.json | 12 + modules/json/tests/menu.result | 1 + modules/json/tests/menu.sort | 1 + modules/json/tests/menu2.json | 14 + modules/json/tests/menu2.result | 1 + modules/json/tests/menu2.sort | 1 + modules/json/tests/support.tcl | 148 + modules/json/tests/widget.json | 19 + modules/json/tests/widget.result | 1 + modules/json/tests/widget.sort | 1 + modules/lambda/ChangeLog | 16 + modules/lambda/lambda.man | 89 + modules/lambda/lambda.tcl | 43 + modules/lambda/pkgIndex.tcl | 8 + modules/ldap/ChangeLog | 358 + modules/ldap/SASL.txt | 48 + modules/ldap/ldap.man | 525 + modules/ldap/ldap.tcl | 2144 +++ modules/ldap/ldap.test | 928 ++ modules/ldap/ldapx.man | 772 + modules/ldap/ldapx.tcl | 1794 +++ modules/ldap/ldapx.test | 375 + modules/ldap/pkgIndex.tcl | 7 + modules/log/ChangeLog | 526 + modules/log/log.man | 277 + modules/log/log.pcx | 122 + modules/log/log.tcl | 855 ++ modules/log/log.test | 393 + modules/log/logger.man | 397 + modules/log/logger.tcl | 1297 ++ modules/log/logger.test | 1307 ++ modules/log/loggerAppender.man | 65 + modules/log/loggerAppender.tcl | 449 + modules/log/loggerUtils.man | 149 + modules/log/loggerUtils.tcl | 541 + modules/log/loggerUtils.test | 224 + modules/log/logger_trace.test | 280 + modules/log/loggerperformance | 79 + modules/log/msgs/en.msg | 7 + modules/log/pkgIndex.tcl | 9 + modules/map/ChangeLog | 83 + modules/map/map_geocode_nominatim.man | 113 + modules/map/map_geocode_nominatim.tcl | 91 + modules/map/map_slippy.man | 189 + modules/map/map_slippy.tcl | 221 + modules/map/map_slippy.test | 144 + modules/map/map_slippy_cache.man | 99 + modules/map/map_slippy_cache.tcl | 141 + modules/map/map_slippy_fetcher.man | 85 + modules/map/map_slippy_fetcher.tcl | 183 + modules/map/pkgIndex.tcl | 6 + modules/mapproj/ChangeLog | 47 + modules/mapproj/mapproj.man | 308 + modules/mapproj/mapproj.tcl | 1817 +++ modules/mapproj/pkgIndex.tcl | 2 + modules/markdown/markdown.tcl | 755 + modules/markdown/pkgIndex.tcl | 11 + modules/math/ChangeLog | 1440 ++ modules/math/TODO | 35 + modules/math/bessel.tcl | 194 + modules/math/bessel.test | 81 + modules/math/bigfloat.man | 432 + modules/math/bigfloat.tcl | 2316 +++ modules/math/bigfloat.test | 683 + modules/math/bigfloat2.tcl | 2218 +++ modules/math/bigfloat2.test | 641 + modules/math/bignum.man | 228 + modules/math/bignum.tcl | 900 ++ modules/math/bignum.test | 587 + modules/math/calculus.CHANGES | 21 + modules/math/calculus.README | 21 + modules/math/calculus.doc | 311 + modules/math/calculus.man | 451 + modules/math/calculus.tcl | 1645 +++ modules/math/calculus.test | 680 + modules/math/calculus.testscript | 86 + modules/math/classic_polyns.tcl | 200 + modules/math/combinatorics.man | 108 + modules/math/combinatorics.tcl | 441 + modules/math/combinatorics.test | 323 + modules/math/constants.man | 136 + modules/math/constants.tcl | 205 + modules/math/constants.test | 56 + modules/math/decimal.man | 199 + modules/math/decimal.tcl | 1741 +++ modules/math/decimal.test | 45 + modules/math/elliptic.tcl | 242 + modules/math/elliptic.test | 78 + modules/math/exact.man | 218 + modules/math/exact.tcl | 4059 ++++++ modules/math/exact.test | 2255 +++ modules/math/exponential.tcl | 434 + modules/math/fourier.man | 134 + modules/math/fourier.tcl | 376 + modules/math/fourier.test | 135 + modules/math/fuzzy.eps.f90 | 170 + modules/math/fuzzy.man | 133 + modules/math/fuzzy.tcl | 173 + modules/math/fuzzy.test | 387 + modules/math/fuzzy.testscript | 21 + modules/math/geometry.tcl | 1265 ++ modules/math/geometry.test | 520 + modules/math/interpolate.man | 299 + modules/math/interpolate.tcl | 667 + modules/math/interpolate.test | 346 + modules/math/kruskal.tcl | 154 + modules/math/linalg.man | 968 ++ modules/math/linalg.tcl | 2288 +++ modules/math/linalg.test | 855 ++ modules/math/liststat.tcl | 95 + modules/math/machineparameters.man | 190 + modules/math/machineparameters.tcl | 377 + modules/math/machineparameters.test | 40 + modules/math/math.man | 126 + modules/math/math.tcl | 44 + modules/math/math.test | 279 + modules/math/math_geometry.man | 456 + modules/math/misc.tcl | 385 + modules/math/mvlinreg.tcl | 261 + modules/math/numtheory.dtx | 952 ++ modules/math/numtheory.man | 56 + modules/math/numtheory.stitch | 17 + modules/math/numtheory.tcl | 78 + modules/math/numtheory.test | 208 + modules/math/optimize.man | 325 + modules/math/optimize.tcl | 1319 ++ modules/math/optimize.test | 634 + modules/math/pdf_stat.tcl | 2010 +++ modules/math/pkgIndex.tcl | 33 + modules/math/plotstat.tcl | 312 + modules/math/polynomials.man | 219 + modules/math/polynomials.tcl | 560 + modules/math/polynomials.test | 260 + modules/math/qcomplex.man | 302 + modules/math/qcomplex.tcl | 178 + modules/math/qcomplex.test | 250 + modules/math/rational_funcs.man | 186 + modules/math/rational_funcs.tcl | 364 + modules/math/roman.man | 51 + modules/math/roman.test | 223 + modules/math/romannumerals.tcl | 164 + modules/math/romberg.man | 340 + modules/math/special.man | 472 + modules/math/special.tcl | 301 + modules/math/special.test | 132 + modules/math/stat_kernel.tcl | 217 + modules/math/statistics.man | 1504 ++ modules/math/statistics.tcl | 1634 +++ modules/math/statistics.test | 1043 ++ modules/math/symdiff.man | 72 + modules/math/symdiff.tcl | 1229 ++ modules/math/symdiff.test | 458 + modules/math/tclIndex | 26 + modules/math/wilcoxon.tcl | 228 + modules/md4/ChangeLog | 209 + modules/md4/md4.bench | 46 + modules/md4/md4.c | 301 + modules/md4/md4.h | 79 + modules/md4/md4.man | 168 + modules/md4/md4.tcl | 571 + modules/md4/md4.test | 290 + modules/md4/md4_check.c | 62 + modules/md4/md4c.tcl | 120 + modules/md4/pkgIndex.tcl | 3 + modules/md5/ChangeLog | 308 + modules/md5/md5.c | 293 + modules/md5/md5.h | 66 + modules/md5/md5.man | 174 + modules/md5/md5.tcl | 454 + modules/md5/md5.test | 90 + modules/md5/md5c.tcl | 148 + modules/md5/md5v1.bench | 47 + modules/md5/md5v2.bench | 47 + modules/md5/md5x.tcl | 713 + modules/md5/md5x.test | 216 + modules/md5/pkgIndex.tcl | 3 + modules/md5crypt/ChangeLog | 130 + modules/md5crypt/md5crypt.bench | 46 + modules/md5crypt/md5crypt.man | 85 + modules/md5crypt/md5crypt.tcl | 152 + modules/md5crypt/md5crypt.test | 152 + modules/md5crypt/md5cryptc.tcl | 174 + modules/md5crypt/pkgIndex.tcl | 3 + modules/mime/ChangeLog | 796 + modules/mime/README.html | 880 ++ modules/mime/README.txt | 804 ++ modules/mime/README.xml | 660 + modules/mime/badmail1.txt | 10 + modules/mime/badmail2.txt | 31 + modules/mime/mime.bench | 59 + modules/mime/mime.man | 405 + modules/mime/mime.tcl | 4010 ++++++ modules/mime/mime.test | 609 + modules/mime/pkgIndex.tcl | 4 + modules/mime/rfc2629.dtd | 209 + modules/mime/smtp.man | 190 + modules/mime/smtp.tcl | 1508 ++ modules/multiplexer/ChangeLog | 136 + modules/multiplexer/multiplexer.man | 130 + modules/multiplexer/multiplexer.tcl | 291 + modules/multiplexer/multiplexer.test | 218 + modules/multiplexer/pkgIndex.tcl | 12 + modules/namespacex/ChangeLog | 34 + modules/namespacex/namespacex.man | 73 + modules/namespacex/namespacex.tcl | 254 + modules/namespacex/namespacex.test | 351 + modules/namespacex/pkgIndex.tcl | 5 + modules/ncgi/ChangeLog | 373 + modules/ncgi/formdata.txt | 24 + modules/ncgi/ncgi.man | 313 + modules/ncgi/ncgi.tcl | 1120 ++ modules/ncgi/ncgi.test | 854 ++ modules/ncgi/pkgIndex.tcl | 2 + modules/nettool/available_ports.tcl | 759 + modules/nettool/generic.tcl | 98 + modules/nettool/locateport.tcl | 75 + modules/nettool/nettool.man | 143 + modules/nettool/nettool.tcl | 72 + modules/nettool/nettool.test | 101 + modules/nettool/pkgIndex.tcl | 11 + modules/nettool/platform_unix.tcl | 23 + modules/nettool/platform_unix_linux.tcl | 224 + modules/nettool/platform_unix_macosx.tcl | 232 + modules/nettool/platform_windows.tcl | 135 + modules/nettool/scripts/build_services.tcl | 83 + modules/nettool/service-names-port-numbers.csv | 14396 +++++++++++++++++++ modules/nmea/ChangeLog | 101 + modules/nmea/nmea.man | 102 + modules/nmea/nmea.tcl | 197 + modules/nmea/pkgIndex.tcl | 2 + modules/nns/ChangeLog | 192 + modules/nns/common.tcl | 38 + modules/nns/common.test | 34 + modules/nns/nns.tcl | 432 + modules/nns/nns_auto.man | 119 + modules/nns/nns_auto.tcl | 443 + modules/nns/nns_client.man | 338 + modules/nns/nns_cluster.tcl | 499 + modules/nns/nns_cluster.test | 195 + modules/nns/nns_common.man | 47 + modules/nns/nns_intro.man | 128 + modules/nns/nns_protocol.man | 182 + modules/nns/nns_server.man | 145 + modules/nns/pkgIndex.tcl | 10 + modules/nns/server.tcl | 385 + modules/nntp/ChangeLog | 154 + modules/nntp/nntp.man | 338 + modules/nntp/nntp.tcl | 979 ++ modules/nntp/pkgIndex.tcl | 12 + modules/ntp/ChangeLog | 201 + modules/ntp/ntp_time.man | 131 + modules/ntp/pkgIndex.tcl | 2 + modules/ntp/time.tcl | 382 + modules/ntp/time.test | 162 + modules/oauth/oauth.man | 191 + modules/oauth/oauth.tcl | 291 + modules/oauth/pkgIndex.tcl | 2 + modules/oodialect/oodialect.demo | 62 + modules/oodialect/oodialect.md | 63 + modules/oodialect/oodialect.tcl | 245 + modules/oodialect/oodialect.test | 162 + modules/oodialect/pkgIndex.tcl | 11 + modules/oometa/oometa.demo | 27 + modules/oometa/oometa.md | 132 + modules/oometa/oometa.tcl | 377 + modules/oometa/oometa.test | 176 + modules/oometa/oooption.tcl | 168 + modules/oometa/pkgIndex.tcl | 8 + modules/ooutil/ChangeLog | 28 + modules/ooutil/ooutil.man | 165 + modules/ooutil/ooutil.tcl | 189 + modules/ooutil/ooutil.test | 84 + modules/ooutil/pkgIndex.tcl | 7 + modules/otp/ChangeLog | 59 + modules/otp/otp.man | 95 + modules/otp/otp.tcl | 430 + modules/otp/otp.test | 146 + modules/otp/pkgIndex.tcl | 3 + modules/page/ChangeLog | 419 + modules/page/NOTES.txt | 64 + modules/page/analysis_peg_emodes.tcl | 458 + modules/page/analysis_peg_minimize.tcl | 51 + modules/page/analysis_peg_reachable.tcl | 150 + modules/page/analysis_peg_realizable.tcl | 257 + modules/page/compiler_peg_mecpu.tcl | 1642 +++ modules/page/gen_peg_canon.tcl | 481 + modules/page/gen_peg_cpkg.tcl | 171 + modules/page/gen_peg_hb.tcl | 79 + modules/page/gen_peg_me.tcl | 888 ++ modules/page/gen_peg_me.template | 61 + modules/page/gen_peg_mecpu.tcl | 289 + modules/page/gen_peg_mecpu.template | 48 + modules/page/gen_peg_ser.tcl | 63 + modules/page/gen_tree_text.tcl | 94 + modules/page/notes/doc_emodes.txt | 180 + modules/page/notes/doc_emodes_alg.txt | 171 + modules/page/notes/doc_grammar.txt | 68 + modules/page/notes/doc_normalize.txt | 138 + modules/page/notes/doc_reachable.txt | 71 + modules/page/notes/doc_realizable.txt | 101 + modules/page/page_intro.man | 35 + modules/page/page_pluginmgr.man | 800 ++ modules/page/page_util_flow.man | 96 + modules/page/page_util_norm_lemon.man | 51 + modules/page/page_util_norm_peg.man | 105 + modules/page/page_util_peg.man | 108 + modules/page/page_util_quote.man | 62 + modules/page/parse_lemon.tcl | 7420 ++++++++++ modules/page/parse_peg.tcl | 4415 ++++++ modules/page/parse_peghb.tcl | 118 + modules/page/parse_pegser.tcl | 99 + modules/page/peg_grammar.peg | 86 + modules/page/peg_grammar.tcl | 117 + modules/page/pkgIndex.tcl | 80 + modules/page/pluginmgr.tcl | 581 + modules/page/plugins/config_peg.tcl | 14 + modules/page/plugins/pkgIndex.tcl | 34 + modules/page/plugins/reader_hb.tcl | 114 + modules/page/plugins/reader_lemon.tcl | 170 + modules/page/plugins/reader_peg.tcl | 169 + modules/page/plugins/reader_ser.tcl | 114 + modules/page/plugins/reader_treeser.tcl | 116 + modules/page/plugins/transform_mecpu.tcl | 107 + modules/page/plugins/transform_reachable.tcl | 107 + modules/page/plugins/transform_realizable.tcl | 106 + modules/page/plugins/writer_hb.tcl | 106 + modules/page/plugins/writer_identity.tcl | 98 + modules/page/plugins/writer_me.tcl | 115 + modules/page/plugins/writer_mecpu.tcl | 116 + modules/page/plugins/writer_null.tcl | 97 + modules/page/plugins/writer_peg.tcl | 106 + modules/page/plugins/writer_ser.tcl | 104 + modules/page/plugins/writer_tpc.tcl | 105 + modules/page/plugins/writer_tree.tcl | 105 + modules/page/util_flow.tcl | 90 + modules/page/util_norm_lemon.tcl | 427 + modules/page/util_norm_peg.tcl | 415 + modules/page/util_peg.tcl | 209 + modules/page/util_quote.tcl | 173 + modules/pki/CA.crt | 24 + modules/pki/CA.key | 30 + modules/pki/ChangeLog | 30 + modules/pki/pkgIndex.tcl | 1 + modules/pki/pki.man | 302 + modules/pki/pki.tcl | 1884 +++ modules/pki/pki.test | 403 + modules/pki/test-v1.crt | 20 + modules/pki/test-v3.crt | 20 + modules/pki/test.csr | 17 + modules/pki/test.key.aes | 30 + modules/pki/test.key.des | 30 + modules/pluginmgr/ChangeLog | 117 + modules/pluginmgr/pkgIndex.tcl | 2 + modules/pluginmgr/pluginmgr.man | 427 + modules/pluginmgr/pluginmgr.tcl | 421 + modules/png/ChangeLog | 145 + modules/png/pkgIndex.tcl | 2 + modules/png/png.man | 141 + modules/png/png.pcx | 61 + modules/png/png.tcl | 289 + modules/png/png.test | 306 + modules/png/testimages/basi0g01.png | Bin 0 -> 217 bytes modules/png/testimages/basi0g02.png | Bin 0 -> 154 bytes modules/png/testimages/basi0g04.png | Bin 0 -> 247 bytes modules/png/testimages/basi0g08.png | Bin 0 -> 254 bytes modules/png/testimages/basi0g16.png | Bin 0 -> 299 bytes modules/png/testimages/basi2c08.png | Bin 0 -> 315 bytes modules/png/testimages/basi2c16.png | Bin 0 -> 595 bytes modules/png/testimages/basi3p01.png | Bin 0 -> 132 bytes modules/png/testimages/basi3p02.png | Bin 0 -> 193 bytes modules/png/testimages/basi3p04.png | Bin 0 -> 327 bytes modules/png/testimages/basi3p08.png | Bin 0 -> 1527 bytes modules/png/testimages/basi4a08.png | Bin 0 -> 214 bytes modules/png/testimages/basi4a16.png | Bin 0 -> 2855 bytes modules/png/testimages/basi6a08.png | Bin 0 -> 361 bytes modules/png/testimages/basi6a16.png | Bin 0 -> 4180 bytes modules/png/testimages/basn0g01.png | Bin 0 -> 164 bytes modules/png/testimages/basn0g02.png | Bin 0 -> 104 bytes modules/png/testimages/basn0g04.png | Bin 0 -> 145 bytes modules/png/testimages/basn0g08.png | Bin 0 -> 138 bytes modules/png/testimages/basn0g16.png | Bin 0 -> 167 bytes modules/png/testimages/basn2c08.png | Bin 0 -> 145 bytes modules/png/testimages/basn2c16.png | Bin 0 -> 302 bytes modules/png/testimages/basn3p01.png | Bin 0 -> 112 bytes modules/png/testimages/basn3p02.png | Bin 0 -> 146 bytes modules/png/testimages/basn3p04.png | Bin 0 -> 216 bytes modules/png/testimages/basn3p08.png | Bin 0 -> 1286 bytes modules/png/testimages/basn4a08.png | Bin 0 -> 126 bytes modules/png/testimages/basn4a16.png | Bin 0 -> 2206 bytes modules/png/testimages/basn6a08.png | Bin 0 -> 184 bytes modules/png/testimages/basn6a16.png | Bin 0 -> 3435 bytes modules/png/testimages/bgai4a08.png | Bin 0 -> 214 bytes modules/png/testimages/bgai4a16.png | Bin 0 -> 2855 bytes modules/png/testimages/bgan6a08.png | Bin 0 -> 184 bytes modules/png/testimages/bgan6a16.png | Bin 0 -> 3435 bytes modules/png/testimages/bgbn4a08.png | Bin 0 -> 140 bytes modules/png/testimages/bggn4a16.png | Bin 0 -> 2220 bytes modules/png/testimages/bgwn6a08.png | Bin 0 -> 202 bytes modules/png/testimages/bgyn6a16.png | Bin 0 -> 3453 bytes modules/png/testimages/ccwn2c08.png | Bin 0 -> 1514 bytes modules/png/testimages/ccwn3p08.png | Bin 0 -> 1554 bytes modules/png/testimages/cdfn2c08.png | Bin 0 -> 404 bytes modules/png/testimages/cdhn2c08.png | Bin 0 -> 344 bytes modules/png/testimages/cdsn2c08.png | Bin 0 -> 232 bytes modules/png/testimages/cdun2c08.png | Bin 0 -> 724 bytes modules/png/testimages/ch1n3p04.png | Bin 0 -> 258 bytes modules/png/testimages/ch2n3p08.png | Bin 0 -> 1810 bytes modules/png/testimages/cm0n0g04.png | Bin 0 -> 292 bytes modules/png/testimages/cm7n0g04.png | Bin 0 -> 292 bytes modules/png/testimages/cm9n0g04.png | Bin 0 -> 292 bytes modules/png/testimages/cs3n2c16.png | Bin 0 -> 214 bytes modules/png/testimages/cs3n3p08.png | Bin 0 -> 259 bytes modules/png/testimages/cs5n2c08.png | Bin 0 -> 186 bytes modules/png/testimages/cs5n3p08.png | Bin 0 -> 271 bytes modules/png/testimages/cs8n2c08.png | Bin 0 -> 149 bytes modules/png/testimages/cs8n3p08.png | Bin 0 -> 256 bytes modules/png/testimages/ct0n0g04.png | Bin 0 -> 273 bytes modules/png/testimages/ct1n0g04.png | Bin 0 -> 792 bytes modules/png/testimages/ctzn0g04.png | Bin 0 -> 753 bytes modules/png/testimages/f00n0g08.png | Bin 0 -> 319 bytes modules/png/testimages/f00n2c08.png | Bin 0 -> 2475 bytes modules/png/testimages/f01n0g08.png | Bin 0 -> 321 bytes modules/png/testimages/f01n2c08.png | Bin 0 -> 1180 bytes modules/png/testimages/f02n0g08.png | Bin 0 -> 355 bytes modules/png/testimages/f02n2c08.png | Bin 0 -> 1729 bytes modules/png/testimages/f03n0g08.png | Bin 0 -> 389 bytes modules/png/testimages/f03n2c08.png | Bin 0 -> 1291 bytes modules/png/testimages/f04n0g08.png | Bin 0 -> 269 bytes modules/png/testimages/f04n2c08.png | Bin 0 -> 985 bytes modules/png/testimages/g03n0g16.png | Bin 0 -> 345 bytes modules/png/testimages/g03n2c08.png | Bin 0 -> 370 bytes modules/png/testimages/g03n3p04.png | Bin 0 -> 214 bytes modules/png/testimages/g04n0g16.png | Bin 0 -> 363 bytes modules/png/testimages/g04n2c08.png | Bin 0 -> 377 bytes modules/png/testimages/g04n3p04.png | Bin 0 -> 219 bytes modules/png/testimages/g05n0g16.png | Bin 0 -> 339 bytes modules/png/testimages/g05n2c08.png | Bin 0 -> 350 bytes modules/png/testimages/g05n3p04.png | Bin 0 -> 206 bytes modules/png/testimages/g07n0g16.png | Bin 0 -> 321 bytes modules/png/testimages/g07n2c08.png | Bin 0 -> 340 bytes modules/png/testimages/g07n3p04.png | Bin 0 -> 207 bytes modules/png/testimages/g10n0g16.png | Bin 0 -> 262 bytes modules/png/testimages/g10n2c08.png | Bin 0 -> 285 bytes modules/png/testimages/g10n3p04.png | Bin 0 -> 214 bytes modules/png/testimages/g25n0g16.png | Bin 0 -> 383 bytes modules/png/testimages/g25n2c08.png | Bin 0 -> 405 bytes modules/png/testimages/g25n3p04.png | Bin 0 -> 215 bytes modules/png/testimages/oi1n0g16.png | Bin 0 -> 167 bytes modules/png/testimages/oi1n2c16.png | Bin 0 -> 302 bytes modules/png/testimages/oi2n0g16.png | Bin 0 -> 179 bytes modules/png/testimages/oi2n2c16.png | Bin 0 -> 314 bytes modules/png/testimages/oi4n0g16.png | Bin 0 -> 203 bytes modules/png/testimages/oi4n2c16.png | Bin 0 -> 338 bytes modules/png/testimages/oi9n0g16.png | Bin 0 -> 1283 bytes modules/png/testimages/oi9n2c16.png | Bin 0 -> 3038 bytes modules/png/testimages/pngsuite.doc | 520 + modules/png/testimages/pngsuite_logo.png | Bin 0 -> 2262 bytes modules/png/testimages/pp0n2c16.png | Bin 0 -> 962 bytes modules/png/testimages/pp0n6a08.png | Bin 0 -> 818 bytes modules/png/testimages/ps1n0g08.png | Bin 0 -> 1477 bytes modules/png/testimages/ps1n2c16.png | Bin 0 -> 1641 bytes modules/png/testimages/ps2n0g08.png | Bin 0 -> 2341 bytes modules/png/testimages/ps2n2c16.png | Bin 0 -> 2505 bytes modules/png/testimages/s01i3p01.png | Bin 0 -> 113 bytes modules/png/testimages/s01n3p01.png | Bin 0 -> 113 bytes modules/png/testimages/s02i3p01.png | Bin 0 -> 114 bytes modules/png/testimages/s02n3p01.png | Bin 0 -> 115 bytes modules/png/testimages/s03i3p01.png | Bin 0 -> 118 bytes modules/png/testimages/s03n3p01.png | Bin 0 -> 120 bytes modules/png/testimages/s04i3p01.png | Bin 0 -> 126 bytes modules/png/testimages/s04n3p01.png | Bin 0 -> 121 bytes modules/png/testimages/s05i3p02.png | Bin 0 -> 134 bytes modules/png/testimages/s05n3p02.png | Bin 0 -> 129 bytes modules/png/testimages/s06i3p02.png | Bin 0 -> 143 bytes modules/png/testimages/s06n3p02.png | Bin 0 -> 131 bytes modules/png/testimages/s07i3p02.png | Bin 0 -> 149 bytes modules/png/testimages/s07n3p02.png | Bin 0 -> 138 bytes modules/png/testimages/s08i3p02.png | Bin 0 -> 149 bytes modules/png/testimages/s08n3p02.png | Bin 0 -> 139 bytes modules/png/testimages/s09i3p02.png | Bin 0 -> 147 bytes modules/png/testimages/s09n3p02.png | Bin 0 -> 143 bytes modules/png/testimages/s32i3p04.png | Bin 0 -> 355 bytes modules/png/testimages/s32n3p04.png | Bin 0 -> 263 bytes modules/png/testimages/s33i3p04.png | Bin 0 -> 385 bytes modules/png/testimages/s33n3p04.png | Bin 0 -> 329 bytes modules/png/testimages/s34i3p04.png | Bin 0 -> 349 bytes modules/png/testimages/s34n3p04.png | Bin 0 -> 248 bytes modules/png/testimages/s35i3p04.png | Bin 0 -> 399 bytes modules/png/testimages/s35n3p04.png | Bin 0 -> 338 bytes modules/png/testimages/s36i3p04.png | Bin 0 -> 356 bytes modules/png/testimages/s36n3p04.png | Bin 0 -> 258 bytes modules/png/testimages/s37i3p04.png | Bin 0 -> 393 bytes modules/png/testimages/s37n3p04.png | Bin 0 -> 336 bytes modules/png/testimages/s38i3p04.png | Bin 0 -> 357 bytes modules/png/testimages/s38n3p04.png | Bin 0 -> 245 bytes modules/png/testimages/s39i3p04.png | Bin 0 -> 420 bytes modules/png/testimages/s39n3p04.png | Bin 0 -> 352 bytes modules/png/testimages/s40i3p04.png | Bin 0 -> 357 bytes modules/png/testimages/s40n3p04.png | Bin 0 -> 256 bytes modules/png/testimages/tbbn1g04.png | Bin 0 -> 419 bytes modules/png/testimages/tbbn2c16.png | Bin 0 -> 1994 bytes modules/png/testimages/tbbn3p08.png | Bin 0 -> 1128 bytes modules/png/testimages/tbgn2c16.png | Bin 0 -> 1994 bytes modules/png/testimages/tbgn3p08.png | Bin 0 -> 1128 bytes modules/png/testimages/tbrn2c08.png | Bin 0 -> 1347 bytes modules/png/testimages/tbwn1g16.png | Bin 0 -> 1146 bytes modules/png/testimages/tbwn3p08.png | Bin 0 -> 1131 bytes modules/png/testimages/tbyn3p08.png | Bin 0 -> 1131 bytes modules/png/testimages/tp0n1g08.png | Bin 0 -> 689 bytes modules/png/testimages/tp0n2c08.png | Bin 0 -> 1311 bytes modules/png/testimages/tp0n3p08.png | Bin 0 -> 1120 bytes modules/png/testimages/tp1n3p08.png | Bin 0 -> 1115 bytes modules/png/testimages/x00n0g01.png | Bin 0 -> 49 bytes modules/png/testimages/xcrn0g04.png | Bin 0 -> 261 bytes modules/png/testimages/xlfn0g04.png | 13 + modules/png/testimages/z00n2c08.png | Bin 0 -> 3172 bytes modules/png/testimages/z03n2c08.png | Bin 0 -> 232 bytes modules/png/testimages/z06n2c08.png | Bin 0 -> 224 bytes modules/png/testimages/z09n2c08.png | Bin 0 -> 224 bytes modules/pop3/ChangeLog | 419 + modules/pop3/pkgIndex.tcl | 2 + modules/pop3/pop3.man | 274 + modules/pop3/pop3.tcl | 830 ++ modules/pop3/pop3.test | 611 + modules/pop3d/ChangeLog | 335 + modules/pop3d/pkgIndex.tcl | 16 + modules/pop3d/pop3d.man | 273 + modules/pop3d/pop3d.tcl | 1147 ++ modules/pop3d/pop3d.test | 772 + modules/pop3d/pop3d_dbox.man | 164 + modules/pop3d/pop3d_dbox.tcl | 485 + modules/pop3d/pop3d_dbox.test | 592 + modules/pop3d/pop3d_udb.man | 112 + modules/pop3d/pop3d_udb.tcl | 300 + modules/pop3d/pop3d_udb.test | 244 + modules/processman/pkgIndex.tcl | 12 + modules/processman/processman.man | 74 + modules/processman/processman.tcl | 270 + modules/profiler/ChangeLog | 258 + modules/profiler/pkgIndex.tcl | 2 + modules/profiler/profiler.man | 121 + modules/profiler/profiler.tcl | 638 + modules/profiler/profiler.test | 474 + modules/pt/ChangeLog | 2582 ++++ modules/pt/char.tcl | 289 + modules/pt/char.test | 36 + modules/pt/configuration.tcl | 81 + modules/pt/include/arch_core.dia | 4 + modules/pt/include/arch_core.png | Bin 0 -> 18056 bytes modules/pt/include/arch_core_container.dia | 4 + modules/pt/include/arch_core_container.png | Bin 0 -> 17960 bytes modules/pt/include/arch_core_eplugins.dia | 4 + modules/pt/include/arch_core_eplugins.png | Bin 0 -> 18056 bytes modules/pt/include/arch_core_export.dia | 4 + modules/pt/include/arch_core_export.png | Bin 0 -> 17961 bytes modules/pt/include/arch_core_import.dia | 4 + modules/pt/include/arch_core_import.png | Bin 0 -> 17973 bytes modules/pt/include/arch_core_iplugins.dia | 4 + modules/pt/include/arch_core_iplugins.png | Bin 0 -> 18038 bytes modules/pt/include/arch_core_support.dia | 4 + modules/pt/include/arch_core_support.png | Bin 0 -> 17906 bytes modules/pt/include/arch_core_transform.dia | 4 + modules/pt/include/arch_core_transform.png | Bin 0 -> 17922 bytes modules/pt/include/arch_support.dia | 4 + modules/pt/include/arch_support.png | Bin 0 -> 17975 bytes modules/pt/include/arch_user_app.dia | 4 + modules/pt/include/arch_user_app.png | Bin 0 -> 17983 bytes modules/pt/include/arch_user_pkg.dia | 4 + modules/pt/include/arch_user_pkg.png | Bin 0 -> 18050 bytes modules/pt/include/architecture.dia | 53 + modules/pt/include/architecture.png | Bin 0 -> 17826 bytes modules/pt/include/channel_notes.inc | 14 + modules/pt/include/concept.inc | 22 + modules/pt/include/example/expr_ast.dia | 44 + modules/pt/include/example/expr_ast.inc | 19 + modules/pt/include/example/expr_ast.pic | 11 + modules/pt/include/example/expr_ast.png | Bin 0 -> 16291 bytes modules/pt/include/example/expr_ast.txt | 9 + modules/pt/include/example/expr_container.inc | 33 + modules/pt/include/example/expr_json.inc | 41 + modules/pt/include/example/expr_param.inc | 758 + modules/pt/include/example/expr_pe.inc | 3 + modules/pt/include/example/expr_pe_serial.inc | 3 + modules/pt/include/example/expr_peg.inc | 12 + modules/pt/include/example/expr_peg_compact.inc | 11 + modules/pt/include/example/expr_ptgen.inc | 49 + modules/pt/include/example/expr_ptgenb.inc | 11 + modules/pt/include/example/expr_serial.inc | 15 + modules/pt/include/example/flow.dia | 5 + modules/pt/include/example/flow.png | Bin 0 -> 7471 bytes modules/pt/include/example/full.inc | 54 + modules/pt/include/example/full_app.inc | 5 + modules/pt/include/example/full_pkg.inc | 7 + modules/pt/include/example/parser_use.inc | 13 + modules/pt/include/export/config/container.inc | 78 + modules/pt/include/export/config/cparam.inc | 80 + modules/pt/include/export/config/json.inc | 36 + modules/pt/include/export/config/param.inc | 49 + modules/pt/include/export/config/peg.inc | 49 + modules/pt/include/export/config/tclparam.inc | 74 + modules/pt/include/export/config/to_container.inc | 7 + modules/pt/include/export/config/to_cparam.inc | 25 + modules/pt/include/export/config/to_json.inc | 8 + modules/pt/include/export/config/to_param.inc | 51 + modules/pt/include/export/config/to_peg.inc | 7 + modules/pt/include/export/config/to_tclparam.inc | 156 + modules/pt/include/export/format/container.inc | 3 + modules/pt/include/export/format/cparam.inc | 0 modules/pt/include/export/format/json.inc | 2 + modules/pt/include/export/format/null.inc | 0 modules/pt/include/export/format/param.inc | 2 + modules/pt/include/export/format/peg.inc | 3 + modules/pt/include/export/format/tclparam.inc | 0 modules/pt/include/export/plugin.inc | 71 + modules/pt/include/export/to.inc | 75 + modules/pt/include/feedback.inc | 3 + modules/pt/include/format/container.inc | 21 + modules/pt/include/format/cparam.inc | 38 + modules/pt/include/format/json.inc | 3 + modules/pt/include/format/json_core.inc | 103 + modules/pt/include/format/options_container.inc | 60 + .../pt/include/format/options_cparam_critcl.inc | 34 + modules/pt/include/format/options_cparam_rawc.inc | 142 + modules/pt/include/format/options_json.inc | 31 + modules/pt/include/format/options_peg.inc | 30 + modules/pt/include/format/options_std.inc | 16 + modules/pt/include/format/options_tclparam_oo.inc | 32 + .../pt/include/format/options_tclparam_snit.inc | 32 + modules/pt/include/format/param.inc | 21 + modules/pt/include/format/peg.inc | 119 + modules/pt/include/format/tclparam.inc | 30 + modules/pt/include/format/whatis_container.inc | 13 + modules/pt/include/format/whatis_cparam_critcl.inc | 4 + modules/pt/include/format/whatis_cparam_rawc.inc | 9 + modules/pt/include/format/whatis_json.inc | 5 + modules/pt/include/format/whatis_param.inc | 12 + modules/pt/include/format/whatis_peg.inc | 7 + modules/pt/include/format/whatis_tclparam_oo.inc | 4 + modules/pt/include/format/whatis_tclparam_snit.inc | 4 + modules/pt/include/gen.inc | 6 + modules/pt/include/gen_options.dia | 7 + modules/pt/include/gen_options.inc | 1 + modules/pt/include/gen_options.pic | 9 + modules/pt/include/gen_options.png | Bin 0 -> 9208 bytes modules/pt/include/gen_options.txt | 7 + modules/pt/include/gen_verticals.inc | 22 + modules/pt/include/import/format/json.inc | 2 + modules/pt/include/import/format/peg.inc | 0 modules/pt/include/import/from.inc | 49 + modules/pt/include/import/plugin.inc | 69 + modules/pt/include/keywords.inc | 17 + modules/pt/include/keywords_convert.inc | 5 + modules/pt/include/keywords_export.inc | 5 + modules/pt/include/keywords_import.inc | 5 + modules/pt/include/modes.inc | 21 + modules/pt/include/module.inc | 6 + modules/pt/include/param_1is.inc | 3 + modules/pt/include/param_2is.inc | 4 + modules/pt/include/param_3is.inc | 4 + modules/pt/include/param_okfail.inc | 7 + modules/pt/include/param_special.inc | 4 + modules/pt/include/rde_0cins.inc | 5 + modules/pt/include/rde_0gins.inc | 4 + modules/pt/include/rde_0ginsb.inc | 4 + modules/pt/include/rde_0ins.inc | 3 + modules/pt/include/rde_1ins.inc | 3 + modules/pt/include/rde_2ins.inc | 3 + modules/pt/include/ref_intro.inc | 12 + modules/pt/include/serial/ast.inc | 104 + modules/pt/include/serial/pegrammar.inc | 114 + modules/pt/include/serial/pexpression.inc | 245 + modules/pt/include/std_parser_object_api.inc | 71 + modules/pt/paths.tcl | 75 + modules/pt/pkgIndex.tcl | 67 + modules/pt/pt.bench | 186 + modules/pt/pt_astree.man | 171 + modules/pt/pt_astree.tcl | 234 + modules/pt/pt_astree.test | 40 + modules/pt/pt_cparam_config_critcl.man | 48 + modules/pt/pt_cparam_config_critcl.tcl | 492 + modules/pt/pt_cparam_config_critcl.test | 50 + modules/pt/pt_cparam_config_tea.man | 48 + modules/pt/pt_cparam_config_tea.tcl | 465 + modules/pt/pt_cparam_config_tea.test | 50 + modules/pt/pt_from_api.man | 203 + modules/pt/pt_introduction.man | 155 + modules/pt/pt_json_language.man | 13 + modules/pt/pt_param.man | 490 + modules/pt/pt_parse_peg.man | 38 + modules/pt/pt_parse_peg.tcl | 180 + modules/pt/pt_parse_peg.test | 83 + modules/pt/pt_parse_peg_c.tcl | 4995 +++++++ modules/pt/pt_parse_peg_tcl.tcl | 2431 ++++ modules/pt/pt_parser_api.man | 82 + modules/pt/pt_peg_container.man | 385 + modules/pt/pt_peg_container.tcl | 530 + modules/pt/pt_peg_container.test | 52 + modules/pt/pt_peg_container_peg.man | 22 + modules/pt/pt_peg_container_peg.tcl | 146 + modules/pt/pt_peg_export.man | 195 + modules/pt/pt_peg_export.tcl | 119 + modules/pt/pt_peg_export.test | 49 + modules/pt/pt_peg_export_container.man | 6 + modules/pt/pt_peg_export_container.tcl | 51 + modules/pt/pt_peg_export_container.test | 50 + modules/pt/pt_peg_export_json.man | 6 + modules/pt/pt_peg_export_json.tcl | 50 + modules/pt/pt_peg_export_json.test | 48 + modules/pt/pt_peg_export_peg.man | 6 + modules/pt/pt_peg_export_peg.tcl | 51 + modules/pt/pt_peg_export_peg.test | 49 + modules/pt/pt_peg_from_container.man | 21 + modules/pt/pt_peg_from_json.man | 7 + modules/pt/pt_peg_from_json.tcl | 48 + modules/pt/pt_peg_from_json.test | 40 + modules/pt/pt_peg_from_peg.man | 7 + modules/pt/pt_peg_from_peg.tcl | 394 + modules/pt/pt_peg_from_peg.test | 86 + modules/pt/pt_peg_import.man | 218 + modules/pt/pt_peg_import.tcl | 190 + modules/pt/pt_peg_import.test | 43 + modules/pt/pt_peg_import_container.man | 21 + modules/pt/pt_peg_import_json.man | 6 + modules/pt/pt_peg_import_json.tcl | 40 + modules/pt/pt_peg_import_json.test | 45 + modules/pt/pt_peg_import_peg.man | 6 + modules/pt/pt_peg_import_peg.tcl | 41 + modules/pt/pt_peg_import_peg.test | 91 + modules/pt/pt_peg_interp.man | 80 + modules/pt/pt_peg_interp.tcl | 385 + modules/pt/pt_peg_interp.test | 66 + modules/pt/pt_peg_introduction.man | 208 + modules/pt/pt_peg_language.man | 316 + modules/pt/pt_peg_op.man | 179 + modules/pt/pt_peg_op.tcl | 377 + modules/pt/pt_peg_to_container.man | 7 + modules/pt/pt_peg_to_container.tcl | 345 + modules/pt/pt_peg_to_container.test | 48 + modules/pt/pt_peg_to_cparam.man | 7 + modules/pt/pt_peg_to_cparam.tcl | 1661 +++ modules/pt/pt_peg_to_cparam.test | 47 + modules/pt/pt_peg_to_json.man | 7 + modules/pt/pt_peg_to_json.tcl | 149 + modules/pt/pt_peg_to_json.test | 40 + modules/pt/pt_peg_to_param.man | 7 + modules/pt/pt_peg_to_param.tcl | 1029 ++ modules/pt/pt_peg_to_param.test | 41 + modules/pt/pt_peg_to_peg.man | 7 + modules/pt/pt_peg_to_peg.tcl | 413 + modules/pt/pt_peg_to_peg.test | 48 + modules/pt/pt_peg_to_tclparam.man | 7 + modules/pt/pt_peg_to_tclparam.tcl | 1273 ++ modules/pt/pt_peg_to_tclparam.test | 47 + modules/pt/pt_pegrammar.man | 144 + modules/pt/pt_pegrammar.tcl | 380 + modules/pt/pt_pegrammar.test | 42 + modules/pt/pt_pexpr_op.man | 89 + modules/pt/pt_pexpr_op.tcl | 335 + modules/pt/pt_pexpr_op.test | 46 + modules/pt/pt_pexpression.man | 275 + modules/pt/pt_pexpression.tcl | 321 + modules/pt/pt_pexpression.test | 40 + modules/pt/pt_pgen.man | 86 + modules/pt/pt_pgen.tcl | 221 + modules/pt/pt_pgen.test | 132 + modules/pt/pt_rdengine.man | 669 + modules/pt/pt_rdengine.tcl | 206 + modules/pt/pt_rdengine.test | 99 + modules/pt/pt_rdengine_c.tcl | 168 + modules/pt/pt_rdengine_oo.tcl | 2169 +++ modules/pt/pt_rdengine_tcl.tcl | 2282 +++ modules/pt/pt_runtime.test | 106 + modules/pt/pt_tclparam_config_snit.man | 48 + modules/pt/pt_tclparam_config_snit.tcl | 141 + modules/pt/pt_tclparam_config_snit.test | 50 + modules/pt/pt_tclparam_config_tcloo.man | 48 + modules/pt/pt_tclparam_config_tcloo.tcl | 121 + modules/pt/pt_tclparam_config_tcloo.test | 50 + modules/pt/pt_to_api.man | 217 + modules/pt/pt_util.man | 54 + modules/pt/pt_util.tcl | 160 + modules/pt/rde_critcl/m.c | 2746 ++++ modules/pt/rde_critcl/m.h | 150 + modules/pt/rde_critcl/ms.c | 317 + modules/pt/rde_critcl/ms.h | 20 + modules/pt/rde_critcl/ot.c | 236 + modules/pt/rde_critcl/ot.h | 32 + modules/pt/rde_critcl/p.c | 183 + modules/pt/rde_critcl/p.h | 24 + modules/pt/rde_critcl/pInt.h | 50 + modules/pt/rde_critcl/param.c | 1789 +++ modules/pt/rde_critcl/param.h | 183 + modules/pt/rde_critcl/stack.c | 160 + modules/pt/rde_critcl/stack.h | 62 + modules/pt/rde_critcl/tc.c | 186 + modules/pt/rde_critcl/tc.h | 31 + modules/pt/rde_critcl/util.c | 145 + modules/pt/rde_critcl/util.h | 79 + modules/pt/tests/char.tests | 236 + modules/pt/tests/common | 412 + modules/pt/tests/data/gr/README.txt | 50 + modules/pt/tests/data/gr/TODO | 36 + modules/pt/tests/data/gr/def/0_sequence | 2 + modules/pt/tests/data/gr/def/10_kleene | 2 + modules/pt/tests/data/gr/def/11_sym-kleene | 3 + modules/pt/tests/data/gr/def/12_alnum | 2 + modules/pt/tests/data/gr/def/13_sym-alnum | 3 + modules/pt/tests/data/gr/def/14_alpha | 2 + modules/pt/tests/data/gr/def/15_sym-alpha | 3 + modules/pt/tests/data/gr/def/16_ascii | 2 + modules/pt/tests/data/gr/def/17_sym-ascii | 3 + modules/pt/tests/data/gr/def/18_control | 2 + modules/pt/tests/data/gr/def/19_sym-control | 3 + modules/pt/tests/data/gr/def/1_sym-sequence | 3 + modules/pt/tests/data/gr/def/20_ddigit | 2 + modules/pt/tests/data/gr/def/21_sym-ddigit | 3 + modules/pt/tests/data/gr/def/22_digit | 2 + modules/pt/tests/data/gr/def/23_sym-digit | 3 + modules/pt/tests/data/gr/def/24_graph | 2 + modules/pt/tests/data/gr/def/25_sym-graph | 3 + modules/pt/tests/data/gr/def/26_lower | 2 + modules/pt/tests/data/gr/def/27_sym-lower | 3 + modules/pt/tests/data/gr/def/28_print | 2 + modules/pt/tests/data/gr/def/29_sym-print | 3 + modules/pt/tests/data/gr/def/2_choice | 2 + modules/pt/tests/data/gr/def/30_punct | 2 + modules/pt/tests/data/gr/def/31_sym-punct | 3 + modules/pt/tests/data/gr/def/32_space | 2 + modules/pt/tests/data/gr/def/33_sym-space | 3 + modules/pt/tests/data/gr/def/34_upper | 2 + modules/pt/tests/data/gr/def/35_sym-upper | 3 + modules/pt/tests/data/gr/def/36_wordchar | 2 + modules/pt/tests/data/gr/def/37_sym-wordchar | 3 + modules/pt/tests/data/gr/def/38_xdigit | 2 + modules/pt/tests/data/gr/def/39_sym-xdigit | 3 + modules/pt/tests/data/gr/def/3_sym-choice | 3 + modules/pt/tests/data/gr/def/40_dot | 2 + modules/pt/tests/data/gr/def/41_sym-dot | 3 + modules/pt/tests/data/gr/def/42_optional | 2 + modules/pt/tests/data/gr/def/43_sym-optional | 3 + modules/pt/tests/data/gr/def/44_notahead | 3 + modules/pt/tests/data/gr/def/45_sym-notahead | 4 + modules/pt/tests/data/gr/def/46_ahead | 2 + modules/pt/tests/data/gr/def/47_sym-ahead | 3 + modules/pt/tests/data/gr/def/48_ticket-4a4e443ce9 | 5 + modules/pt/tests/data/gr/def/4_class | 2 + modules/pt/tests/data/gr/def/5_sym-class | 3 + modules/pt/tests/data/gr/def/6_range | 2 + modules/pt/tests/data/gr/def/7_sym-range | 3 + modules/pt/tests/data/gr/def/8_pkleene | 2 + modules/pt/tests/data/gr/def/9_sym-pkleene | 3 + .../data/gr/fail-ahead-container-res/0_notmatch | 1 + .../tests/data/gr/fail-ahead-critcl-res/0_notmatch | 1 + .../pt/tests/data/gr/fail-ahead-oo-res/0_notmatch | 1 + .../tests/data/gr/fail-ahead-snit-res/0_notmatch | 1 + modules/pt/tests/data/gr/fail-ahead/0_notmatch | 1 + .../data/gr/fail-alnum-container-res/0_outside | 1 + .../tests/data/gr/fail-alnum-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-alnum-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-alnum-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-alnum/0_outside | 1 + .../data/gr/fail-alpha-container-res/0_outside | 1 + .../tests/data/gr/fail-alpha-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-alpha-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-alpha-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-alpha/0_outside | 1 + .../data/gr/fail-ascii-container-res/0_outside | 1 + .../tests/data/gr/fail-ascii-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-ascii-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-ascii-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-ascii/0_outside | 1 + .../data/gr/fail-choice-container-res/0_aleph | 1 + .../data/gr/fail-choice-container-res/1_anumber | 1 + .../data/gr/fail-choice-container-res/2_digup | 1 + .../data/gr/fail-choice-container-res/3_other | 1 + .../tests/data/gr/fail-choice-critcl-res/0_aleph | 1 + .../tests/data/gr/fail-choice-critcl-res/1_anumber | 1 + .../tests/data/gr/fail-choice-critcl-res/2_digup | 1 + .../tests/data/gr/fail-choice-critcl-res/3_other | 1 + .../pt/tests/data/gr/fail-choice-oo-res/0_aleph | 1 + .../pt/tests/data/gr/fail-choice-oo-res/1_anumber | 1 + .../pt/tests/data/gr/fail-choice-oo-res/2_digup | 1 + .../pt/tests/data/gr/fail-choice-oo-res/3_other | 1 + .../pt/tests/data/gr/fail-choice-snit-res/0_aleph | 1 + .../tests/data/gr/fail-choice-snit-res/1_anumber | 1 + .../pt/tests/data/gr/fail-choice-snit-res/2_digup | 1 + .../pt/tests/data/gr/fail-choice-snit-res/3_other | 1 + modules/pt/tests/data/gr/fail-choice/0_aleph | 1 + modules/pt/tests/data/gr/fail-choice/1_anumber | 1 + modules/pt/tests/data/gr/fail-choice/2_digup | 1 + modules/pt/tests/data/gr/fail-choice/3_other | 1 + .../tests/data/gr/fail-class-container-res/0_beta | 1 + .../pt/tests/data/gr/fail-class-critcl-res/0_beta | 1 + modules/pt/tests/data/gr/fail-class-oo-res/0_beta | 1 + .../pt/tests/data/gr/fail-class-snit-res/0_beta | 1 + modules/pt/tests/data/gr/fail-class/0_beta | 1 + .../data/gr/fail-control-container-res/0_outside | 1 + .../data/gr/fail-control-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-control-oo-res/0_outside | 1 + .../tests/data/gr/fail-control-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-control/0_outside | 1 + .../data/gr/fail-ddigit-container-res/0_outside | 1 + .../tests/data/gr/fail-ddigit-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-ddigit-oo-res/0_outside | 1 + .../tests/data/gr/fail-ddigit-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-ddigit/0_outside | 1 + .../data/gr/fail-digit-container-res/0_outside | 1 + .../tests/data/gr/fail-digit-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-digit-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-digit-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-digit/0_outside | 1 + .../pt/tests/data/gr/fail-dot-container-res/0_none | 1 + .../pt/tests/data/gr/fail-dot-critcl-res/0_none | 1 + modules/pt/tests/data/gr/fail-dot-oo-res/0_none | 1 + modules/pt/tests/data/gr/fail-dot-snit-res/0_none | 1 + modules/pt/tests/data/gr/fail-dot/0_none | 0 .../data/gr/fail-graph-container-res/0_outside | 1 + .../tests/data/gr/fail-graph-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-graph-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-graph-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-graph/0_outside | 1 + .../data/gr/fail-lower-container-res/0_outside | 1 + .../tests/data/gr/fail-lower-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-lower-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-lower-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-lower/0_outside | 1 + .../data/gr/fail-notahead-container-res/0_keyword | 1 + .../data/gr/fail-notahead-critcl-res/0_keyword | 1 + .../tests/data/gr/fail-notahead-oo-res/0_keyword | 1 + .../tests/data/gr/fail-notahead-snit-res/0_keyword | 1 + modules/pt/tests/data/gr/fail-notahead/0_keyword | 1 + .../tests/data/gr/fail-pkleene-container-res/0_b | 1 + .../pt/tests/data/gr/fail-pkleene-critcl-res/0_b | 1 + modules/pt/tests/data/gr/fail-pkleene-oo-res/0_b | 1 + modules/pt/tests/data/gr/fail-pkleene-snit-res/0_b | 1 + modules/pt/tests/data/gr/fail-pkleene/0_b | 1 + .../data/gr/fail-print-container-res/0_outside | 1 + .../tests/data/gr/fail-print-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-print-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-print-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-print/0_outside | 1 + .../data/gr/fail-punct-container-res/0_outside | 1 + .../tests/data/gr/fail-punct-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-punct-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-punct-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-punct/0_outside | 1 + .../tests/data/gr/fail-range-container-res/0_beta | 1 + .../pt/tests/data/gr/fail-range-critcl-res/0_beta | 1 + modules/pt/tests/data/gr/fail-range-oo-res/0_beta | 1 + .../pt/tests/data/gr/fail-range-snit-res/0_beta | 1 + modules/pt/tests/data/gr/fail-range/0_beta | 1 + .../data/gr/fail-sequence-container-res/0_abe | 1 + .../tests/data/gr/fail-sequence-container-res/1_b | 1 + .../tests/data/gr/fail-sequence-critcl-res/0_abe | 1 + .../pt/tests/data/gr/fail-sequence-critcl-res/1_b | 1 + .../pt/tests/data/gr/fail-sequence-oo-res/0_abe | 1 + modules/pt/tests/data/gr/fail-sequence-oo-res/1_b | 1 + .../pt/tests/data/gr/fail-sequence-snit-res/0_abe | 1 + .../pt/tests/data/gr/fail-sequence-snit-res/1_b | 1 + modules/pt/tests/data/gr/fail-sequence/0_abe | 1 + modules/pt/tests/data/gr/fail-sequence/1_b | 1 + .../data/gr/fail-space-container-res/0_outside | 1 + .../tests/data/gr/fail-space-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-space-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-space-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-space/0_outside | 1 + .../gr/fail-sym-ahead-container-res/0_notmatch | 1 + .../data/gr/fail-sym-ahead-critcl-res/0_notmatch | 1 + .../tests/data/gr/fail-sym-ahead-oo-res/0_notmatch | 1 + .../data/gr/fail-sym-ahead-snit-res/0_notmatch | 1 + modules/pt/tests/data/gr/fail-sym-ahead/0_notmatch | 1 + .../data/gr/fail-sym-alnum-container-res/0_outside | 1 + .../data/gr/fail-sym-alnum-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-alnum-oo-res/0_outside | 1 + .../data/gr/fail-sym-alnum-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-alnum/0_outside | 1 + .../data/gr/fail-sym-alpha-container-res/0_outside | 1 + .../data/gr/fail-sym-alpha-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-alpha-oo-res/0_outside | 1 + .../data/gr/fail-sym-alpha-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-alpha/0_outside | 1 + .../data/gr/fail-sym-ascii-container-res/0_outside | 1 + .../data/gr/fail-sym-ascii-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-ascii-oo-res/0_outside | 1 + .../data/gr/fail-sym-ascii-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-ascii/0_outside | 1 + .../data/gr/fail-sym-choice-container-res/0_aleph | 1 + .../gr/fail-sym-choice-container-res/1_anumber | 1 + .../data/gr/fail-sym-choice-container-res/2_digup | 1 + .../data/gr/fail-sym-choice-container-res/3_other | 1 + .../data/gr/fail-sym-choice-critcl-res/0_aleph | 1 + .../data/gr/fail-sym-choice-critcl-res/1_anumber | 1 + .../data/gr/fail-sym-choice-critcl-res/2_digup | 1 + .../data/gr/fail-sym-choice-critcl-res/3_other | 1 + .../tests/data/gr/fail-sym-choice-oo-res/0_aleph | 1 + .../tests/data/gr/fail-sym-choice-oo-res/1_anumber | 1 + .../tests/data/gr/fail-sym-choice-oo-res/2_digup | 1 + .../tests/data/gr/fail-sym-choice-oo-res/3_other | 1 + .../tests/data/gr/fail-sym-choice-snit-res/0_aleph | 1 + .../data/gr/fail-sym-choice-snit-res/1_anumber | 1 + .../tests/data/gr/fail-sym-choice-snit-res/2_digup | 1 + .../tests/data/gr/fail-sym-choice-snit-res/3_other | 1 + modules/pt/tests/data/gr/fail-sym-choice/0_aleph | 1 + modules/pt/tests/data/gr/fail-sym-choice/1_anumber | 1 + modules/pt/tests/data/gr/fail-sym-choice/2_digup | 1 + modules/pt/tests/data/gr/fail-sym-choice/3_other | 1 + .../data/gr/fail-sym-class-container-res/0_beta | 1 + .../tests/data/gr/fail-sym-class-critcl-res/0_beta | 1 + .../pt/tests/data/gr/fail-sym-class-oo-res/0_beta | 1 + .../tests/data/gr/fail-sym-class-snit-res/0_beta | 1 + modules/pt/tests/data/gr/fail-sym-class/0_beta | 1 + .../gr/fail-sym-control-container-res/0_outside | 1 + .../data/gr/fail-sym-control-critcl-res/0_outside | 1 + .../data/gr/fail-sym-control-oo-res/0_outside | 1 + .../data/gr/fail-sym-control-snit-res/0_outside | 1 + .../pt/tests/data/gr/fail-sym-control/0_outside | 1 + .../gr/fail-sym-ddigit-container-res/0_outside | 1 + .../data/gr/fail-sym-ddigit-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-ddigit-oo-res/0_outside | 1 + .../data/gr/fail-sym-ddigit-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-ddigit/0_outside | 1 + .../data/gr/fail-sym-digit-container-res/0_outside | 1 + .../data/gr/fail-sym-digit-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-digit-oo-res/0_outside | 1 + .../data/gr/fail-sym-digit-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-digit/0_outside | 1 + .../data/gr/fail-sym-dot-container-res/0_none | 1 + .../tests/data/gr/fail-sym-dot-critcl-res/0_none | 1 + .../pt/tests/data/gr/fail-sym-dot-oo-res/0_none | 1 + .../pt/tests/data/gr/fail-sym-dot-snit-res/0_none | 1 + modules/pt/tests/data/gr/fail-sym-dot/0_none | 0 .../data/gr/fail-sym-graph-container-res/0_outside | 1 + .../data/gr/fail-sym-graph-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-graph-oo-res/0_outside | 1 + .../data/gr/fail-sym-graph-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-graph/0_outside | 1 + .../data/gr/fail-sym-lower-container-res/0_outside | 1 + .../data/gr/fail-sym-lower-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-lower-oo-res/0_outside | 1 + .../data/gr/fail-sym-lower-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-lower/0_outside | 1 + .../gr/fail-sym-notahead-container-res/0_keyword | 1 + .../data/gr/fail-sym-notahead-critcl-res/0_keyword | 1 + .../data/gr/fail-sym-notahead-oo-res/0_keyword | 1 + .../data/gr/fail-sym-notahead-snit-res/0_keyword | 1 + .../pt/tests/data/gr/fail-sym-notahead/0_keyword | 1 + .../data/gr/fail-sym-pkleene-container-res/0_b | 1 + .../tests/data/gr/fail-sym-pkleene-critcl-res/0_b | 1 + .../pt/tests/data/gr/fail-sym-pkleene-oo-res/0_b | 1 + .../pt/tests/data/gr/fail-sym-pkleene-snit-res/0_b | 1 + modules/pt/tests/data/gr/fail-sym-pkleene/0_b | 1 + .../data/gr/fail-sym-print-container-res/0_outside | 1 + .../data/gr/fail-sym-print-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-print-oo-res/0_outside | 1 + .../data/gr/fail-sym-print-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-print/0_outside | 1 + .../data/gr/fail-sym-punct-container-res/0_outside | 1 + .../data/gr/fail-sym-punct-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-punct-oo-res/0_outside | 1 + .../data/gr/fail-sym-punct-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-punct/0_outside | 1 + .../data/gr/fail-sym-range-container-res/0_beta | 1 + .../tests/data/gr/fail-sym-range-critcl-res/0_beta | 1 + .../pt/tests/data/gr/fail-sym-range-oo-res/0_beta | 1 + .../tests/data/gr/fail-sym-range-snit-res/0_beta | 1 + modules/pt/tests/data/gr/fail-sym-range/0_beta | 1 + .../data/gr/fail-sym-sequence-container-res/0_abe | 1 + .../data/gr/fail-sym-sequence-container-res/1_b | 1 + .../data/gr/fail-sym-sequence-critcl-res/0_abe | 1 + .../tests/data/gr/fail-sym-sequence-critcl-res/1_b | 1 + .../tests/data/gr/fail-sym-sequence-oo-res/0_abe | 1 + .../pt/tests/data/gr/fail-sym-sequence-oo-res/1_b | 1 + .../tests/data/gr/fail-sym-sequence-snit-res/0_abe | 1 + .../tests/data/gr/fail-sym-sequence-snit-res/1_b | 1 + modules/pt/tests/data/gr/fail-sym-sequence/0_abe | 1 + modules/pt/tests/data/gr/fail-sym-sequence/1_b | 1 + .../data/gr/fail-sym-space-container-res/0_outside | 1 + .../data/gr/fail-sym-space-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-space-oo-res/0_outside | 1 + .../data/gr/fail-sym-space-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-space/0_outside | 1 + .../data/gr/fail-sym-upper-container-res/0_outside | 1 + .../data/gr/fail-sym-upper-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-upper-oo-res/0_outside | 1 + .../data/gr/fail-sym-upper-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-upper/0_outside | 1 + .../gr/fail-sym-wordchar-container-res/0_outside | 1 + .../data/gr/fail-sym-wordchar-critcl-res/0_outside | 1 + .../data/gr/fail-sym-wordchar-oo-res/0_outside | 1 + .../data/gr/fail-sym-wordchar-snit-res/0_outside | 1 + .../pt/tests/data/gr/fail-sym-wordchar/0_outside | 1 + .../gr/fail-sym-xdigit-container-res/0_outside | 1 + .../data/gr/fail-sym-xdigit-critcl-res/0_outside | 1 + .../tests/data/gr/fail-sym-xdigit-oo-res/0_outside | 1 + .../data/gr/fail-sym-xdigit-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-sym-xdigit/0_outside | 1 + .../data/gr/fail-upper-container-res/0_outside | 1 + .../tests/data/gr/fail-upper-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-upper-oo-res/0_outside | 1 + .../pt/tests/data/gr/fail-upper-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-upper/0_outside | 1 + .../data/gr/fail-wordchar-container-res/0_outside | 1 + .../data/gr/fail-wordchar-critcl-res/0_outside | 1 + .../tests/data/gr/fail-wordchar-oo-res/0_outside | 1 + .../tests/data/gr/fail-wordchar-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-wordchar/0_outside | 1 + .../data/gr/fail-xdigit-container-res/0_outside | 1 + .../tests/data/gr/fail-xdigit-critcl-res/0_outside | 1 + .../pt/tests/data/gr/fail-xdigit-oo-res/0_outside | 1 + .../tests/data/gr/fail-xdigit-snit-res/0_outside | 1 + modules/pt/tests/data/gr/fail-xdigit/0_outside | 1 + modules/pt/tests/data/gr/ok-ahead-res/0_match | 0 modules/pt/tests/data/gr/ok-ahead/0_match | 1 + modules/pt/tests/data/gr/ok-alnum-res/0_inside | 0 modules/pt/tests/data/gr/ok-alnum/0_inside | 1 + modules/pt/tests/data/gr/ok-alpha-res/0_inside | 0 modules/pt/tests/data/gr/ok-alpha/0_inside | 1 + modules/pt/tests/data/gr/ok-ascii-res/0_inside | 0 modules/pt/tests/data/gr/ok-ascii/0_inside | 1 + modules/pt/tests/data/gr/ok-choice-res/0_alpha | 0 modules/pt/tests/data/gr/ok-choice-res/1_digit | 0 modules/pt/tests/data/gr/ok-choice-res/2_anumeric | 0 modules/pt/tests/data/gr/ok-choice/0_alpha | 1 + modules/pt/tests/data/gr/ok-choice/1_digit | 1 + modules/pt/tests/data/gr/ok-choice/2_anumeric | 1 + modules/pt/tests/data/gr/ok-class-res/0_a | 0 modules/pt/tests/data/gr/ok-class-res/1_x | 0 modules/pt/tests/data/gr/ok-class-res/2_e | 0 modules/pt/tests/data/gr/ok-class/0_a | 1 + modules/pt/tests/data/gr/ok-class/1_x | 1 + modules/pt/tests/data/gr/ok-class/2_e | 1 + modules/pt/tests/data/gr/ok-control-res/0_inside | 0 modules/pt/tests/data/gr/ok-control/0_inside | 1 + modules/pt/tests/data/gr/ok-ddigit-res/0_inside | 0 modules/pt/tests/data/gr/ok-ddigit/0_inside | 1 + modules/pt/tests/data/gr/ok-digit-res/0_inside | 0 modules/pt/tests/data/gr/ok-digit/0_inside | 1 + modules/pt/tests/data/gr/ok-dot-res/0_any | 0 modules/pt/tests/data/gr/ok-dot/0_any | 1 + modules/pt/tests/data/gr/ok-graph-res/0_inside | 0 modules/pt/tests/data/gr/ok-graph/0_inside | 1 + modules/pt/tests/data/gr/ok-kleene-res/0_aaab | 0 modules/pt/tests/data/gr/ok-kleene-res/1_aab | 0 modules/pt/tests/data/gr/ok-kleene-res/2_ab | 0 modules/pt/tests/data/gr/ok-kleene-res/3_b | 0 modules/pt/tests/data/gr/ok-kleene/0_aaab | 1 + modules/pt/tests/data/gr/ok-kleene/1_aab | 1 + modules/pt/tests/data/gr/ok-kleene/2_ab | 1 + modules/pt/tests/data/gr/ok-kleene/3_b | 1 + modules/pt/tests/data/gr/ok-lower-res/0_inside | 0 modules/pt/tests/data/gr/ok-lower/0_inside | 1 + modules/pt/tests/data/gr/ok-notahead-res/0_ident | 0 .../pt/tests/data/gr/ok-notahead-res/1_identifierb | 0 modules/pt/tests/data/gr/ok-notahead/0_ident | 1 + modules/pt/tests/data/gr/ok-notahead/1_identifierb | 1 + modules/pt/tests/data/gr/ok-optional-res/0_have | 0 modules/pt/tests/data/gr/ok-optional-res/1_havenot | 0 modules/pt/tests/data/gr/ok-optional/0_have | 1 + modules/pt/tests/data/gr/ok-optional/1_havenot | 1 + modules/pt/tests/data/gr/ok-pkleene-res/0_aaab | 0 modules/pt/tests/data/gr/ok-pkleene-res/1_aab | 0 modules/pt/tests/data/gr/ok-pkleene-res/2_ab | 0 modules/pt/tests/data/gr/ok-pkleene/0_aaab | 1 + modules/pt/tests/data/gr/ok-pkleene/1_aab | 1 + modules/pt/tests/data/gr/ok-pkleene/2_ab | 1 + modules/pt/tests/data/gr/ok-print-res/0_inside | 0 modules/pt/tests/data/gr/ok-print/0_inside | 1 + modules/pt/tests/data/gr/ok-punct-res/0_inside | 0 modules/pt/tests/data/gr/ok-punct/0_inside | 1 + modules/pt/tests/data/gr/ok-range-res/0_a | 0 modules/pt/tests/data/gr/ok-range/0_a | 1 + modules/pt/tests/data/gr/ok-sequence-res/0_abc | 0 modules/pt/tests/data/gr/ok-sequence/0_abc | 1 + modules/pt/tests/data/gr/ok-space-res/0_inside | 0 modules/pt/tests/data/gr/ok-space/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-ahead-res/0_match | 1 + modules/pt/tests/data/gr/ok-sym-ahead/0_match | 1 + modules/pt/tests/data/gr/ok-sym-alnum-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-alnum/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-alpha-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-alpha/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-ascii-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-ascii/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-choice-res/0_alpha | 1 + modules/pt/tests/data/gr/ok-sym-choice-res/1_digit | 1 + .../pt/tests/data/gr/ok-sym-choice-res/2_anumeric | 1 + modules/pt/tests/data/gr/ok-sym-choice/0_alpha | 1 + modules/pt/tests/data/gr/ok-sym-choice/1_digit | 1 + modules/pt/tests/data/gr/ok-sym-choice/2_anumeric | 1 + modules/pt/tests/data/gr/ok-sym-class-res/0_a | 1 + modules/pt/tests/data/gr/ok-sym-class-res/1_x | 1 + modules/pt/tests/data/gr/ok-sym-class-res/2_e | 1 + modules/pt/tests/data/gr/ok-sym-class/0_a | 1 + modules/pt/tests/data/gr/ok-sym-class/1_x | 1 + modules/pt/tests/data/gr/ok-sym-class/2_e | 1 + .../pt/tests/data/gr/ok-sym-control-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-control/0_inside | 1 + .../pt/tests/data/gr/ok-sym-ddigit-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-ddigit/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-digit-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-digit/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-dot-res/0_any | 1 + modules/pt/tests/data/gr/ok-sym-dot/0_any | 1 + modules/pt/tests/data/gr/ok-sym-graph-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-graph/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-kleene-res/0_aaab | 1 + modules/pt/tests/data/gr/ok-sym-kleene-res/1_aab | 1 + modules/pt/tests/data/gr/ok-sym-kleene-res/2_ab | 1 + modules/pt/tests/data/gr/ok-sym-kleene-res/3_b | 1 + modules/pt/tests/data/gr/ok-sym-kleene/0_aaab | 1 + modules/pt/tests/data/gr/ok-sym-kleene/1_aab | 1 + modules/pt/tests/data/gr/ok-sym-kleene/2_ab | 1 + modules/pt/tests/data/gr/ok-sym-kleene/3_b | 1 + modules/pt/tests/data/gr/ok-sym-lower-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-lower/0_inside | 1 + .../pt/tests/data/gr/ok-sym-notahead-res/0_ident | 1 + .../data/gr/ok-sym-notahead-res/1_identifierb | 1 + modules/pt/tests/data/gr/ok-sym-notahead/0_ident | 1 + .../pt/tests/data/gr/ok-sym-notahead/1_identifierb | 1 + .../pt/tests/data/gr/ok-sym-optional-res/0_have | 1 + .../pt/tests/data/gr/ok-sym-optional-res/1_havenot | 1 + modules/pt/tests/data/gr/ok-sym-optional/0_have | 1 + modules/pt/tests/data/gr/ok-sym-optional/1_havenot | 1 + modules/pt/tests/data/gr/ok-sym-pkleene-res/0_aaab | 1 + modules/pt/tests/data/gr/ok-sym-pkleene-res/1_aab | 1 + modules/pt/tests/data/gr/ok-sym-pkleene-res/2_ab | 1 + modules/pt/tests/data/gr/ok-sym-pkleene/0_aaab | 1 + modules/pt/tests/data/gr/ok-sym-pkleene/1_aab | 1 + modules/pt/tests/data/gr/ok-sym-pkleene/2_ab | 1 + modules/pt/tests/data/gr/ok-sym-print-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-print/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-punct-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-punct/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-range-res/0_a | 1 + modules/pt/tests/data/gr/ok-sym-range/0_a | 1 + modules/pt/tests/data/gr/ok-sym-sequence-res/0_abc | 1 + modules/pt/tests/data/gr/ok-sym-sequence/0_abc | 1 + modules/pt/tests/data/gr/ok-sym-space-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-space/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-upper-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-upper/0_inside | 1 + .../pt/tests/data/gr/ok-sym-wordchar-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-wordchar/0_inside | 1 + .../pt/tests/data/gr/ok-sym-xdigit-res/0_inside | 1 + modules/pt/tests/data/gr/ok-sym-xdigit/0_inside | 1 + .../tests/data/gr/ok-ticket-4a4e443ce9-res/0_test | 1 + .../pt/tests/data/gr/ok-ticket-4a4e443ce9/0_test | 1 + modules/pt/tests/data/gr/ok-upper-res/0_inside | 0 modules/pt/tests/data/gr/ok-upper/0_inside | 1 + modules/pt/tests/data/gr/ok-wordchar-res/0_inside | 0 modules/pt/tests/data/gr/ok-wordchar/0_inside | 1 + modules/pt/tests/data/gr/ok-xdigit-res/0_inside | 0 modules/pt/tests/data/gr/ok-xdigit/0_inside | 1 + .../pt/tests/data/ok/ast_serial-budump/0_terminal | 1 + .../tests/data/ok/ast_serial-budump/1_nonterminal | 1 + modules/pt/tests/data/ok/ast_serial-budump/2_tree | 4 + .../pt/tests/data/ok/ast_serial-print/0_terminal | 1 + .../tests/data/ok/ast_serial-print/1_nonterminal | 1 + modules/pt/tests/data/ok/ast_serial-print/2_tree | 4 + .../pt/tests/data/ok/ast_serial-tddump/0_terminal | 1 + .../tests/data/ok/ast_serial-tddump/1_nonterminal | 1 + modules/pt/tests/data/ok/ast_serial-tddump/2_tree | 4 + modules/pt/tests/data/ok/ast_serial/0_terminal | 1 + modules/pt/tests/data/ok/ast_serial/1_nonterminal | 1 + modules/pt/tests/data/ok/ast_serial/2_tree | 1 + modules/pt/tests/data/ok/pe_serial-budump/10_space | 1 + modules/pt/tests/data/ok/pe_serial-budump/11_upper | 1 + .../pt/tests/data/ok/pe_serial-budump/12_wordchar | 1 + .../pt/tests/data/ok/pe_serial-budump/13_xdigit | 1 + .../pt/tests/data/ok/pe_serial-budump/14_ddigit | 1 + modules/pt/tests/data/ok/pe_serial-budump/15_dot | 1 + .../tests/data/ok/pe_serial-budump/16_nonterminal | 1 + .../pt/tests/data/ok/pe_serial-budump/17_terminal | 1 + modules/pt/tests/data/ok/pe_serial-budump/18_range | 1 + modules/pt/tests/data/ok/pe_serial-budump/19_ahead | 2 + .../pt/tests/data/ok/pe_serial-budump/1_epsilon | 1 + .../pt/tests/data/ok/pe_serial-budump/20_notahead | 2 + .../pt/tests/data/ok/pe_serial-budump/21_kleene | 2 + .../pt/tests/data/ok/pe_serial-budump/22_pkleen | 2 + .../pt/tests/data/ok/pe_serial-budump/23_optional | 2 + .../pt/tests/data/ok/pe_serial-budump/24_sequence | 2 + .../pt/tests/data/ok/pe_serial-budump/25_choice | 2 + .../pt/tests/data/ok/pe_serial-budump/26_complex | 11 + modules/pt/tests/data/ok/pe_serial-budump/2_alpha | 1 + modules/pt/tests/data/ok/pe_serial-budump/3_alnum | 1 + modules/pt/tests/data/ok/pe_serial-budump/4_ascii | 1 + modules/pt/tests/data/ok/pe_serial-budump/5_digit | 1 + modules/pt/tests/data/ok/pe_serial-budump/6_graph | 1 + modules/pt/tests/data/ok/pe_serial-budump/7_lower | 1 + modules/pt/tests/data/ok/pe_serial-budump/8_print | 1 + modules/pt/tests/data/ok/pe_serial-budump/9_punct | 1 + modules/pt/tests/data/ok/pe_serial-print/10_space | 1 + modules/pt/tests/data/ok/pe_serial-print/11_upper | 1 + .../pt/tests/data/ok/pe_serial-print/12_wordchar | 1 + modules/pt/tests/data/ok/pe_serial-print/13_xdigit | 1 + modules/pt/tests/data/ok/pe_serial-print/14_ddigit | 1 + modules/pt/tests/data/ok/pe_serial-print/15_dot | 1 + .../tests/data/ok/pe_serial-print/16_nonterminal | 1 + .../pt/tests/data/ok/pe_serial-print/17_terminal | 1 + modules/pt/tests/data/ok/pe_serial-print/18_range | 1 + modules/pt/tests/data/ok/pe_serial-print/19_ahead | 2 + modules/pt/tests/data/ok/pe_serial-print/1_epsilon | 1 + .../pt/tests/data/ok/pe_serial-print/20_notahead | 2 + modules/pt/tests/data/ok/pe_serial-print/21_kleene | 2 + modules/pt/tests/data/ok/pe_serial-print/22_pkleen | 2 + .../pt/tests/data/ok/pe_serial-print/23_optional | 2 + .../pt/tests/data/ok/pe_serial-print/24_sequence | 2 + modules/pt/tests/data/ok/pe_serial-print/25_choice | 2 + .../pt/tests/data/ok/pe_serial-print/26_complex | 11 + modules/pt/tests/data/ok/pe_serial-print/2_alpha | 1 + modules/pt/tests/data/ok/pe_serial-print/3_alnum | 1 + modules/pt/tests/data/ok/pe_serial-print/4_ascii | 1 + modules/pt/tests/data/ok/pe_serial-print/5_digit | 1 + modules/pt/tests/data/ok/pe_serial-print/6_graph | 1 + modules/pt/tests/data/ok/pe_serial-print/7_lower | 1 + modules/pt/tests/data/ok/pe_serial-print/8_print | 1 + modules/pt/tests/data/ok/pe_serial-print/9_punct | 1 + modules/pt/tests/data/ok/pe_serial-tddump/10_space | 1 + modules/pt/tests/data/ok/pe_serial-tddump/11_upper | 1 + .../pt/tests/data/ok/pe_serial-tddump/12_wordchar | 1 + .../pt/tests/data/ok/pe_serial-tddump/13_xdigit | 1 + .../pt/tests/data/ok/pe_serial-tddump/14_ddigit | 1 + modules/pt/tests/data/ok/pe_serial-tddump/15_dot | 1 + .../tests/data/ok/pe_serial-tddump/16_nonterminal | 1 + .../pt/tests/data/ok/pe_serial-tddump/17_terminal | 1 + modules/pt/tests/data/ok/pe_serial-tddump/18_range | 1 + modules/pt/tests/data/ok/pe_serial-tddump/19_ahead | 2 + .../pt/tests/data/ok/pe_serial-tddump/1_epsilon | 1 + .../pt/tests/data/ok/pe_serial-tddump/20_notahead | 2 + .../pt/tests/data/ok/pe_serial-tddump/21_kleene | 2 + .../pt/tests/data/ok/pe_serial-tddump/22_pkleen | 2 + .../pt/tests/data/ok/pe_serial-tddump/23_optional | 2 + .../pt/tests/data/ok/pe_serial-tddump/24_sequence | 2 + .../pt/tests/data/ok/pe_serial-tddump/25_choice | 2 + .../pt/tests/data/ok/pe_serial-tddump/26_complex | 11 + modules/pt/tests/data/ok/pe_serial-tddump/2_alpha | 1 + modules/pt/tests/data/ok/pe_serial-tddump/3_alnum | 1 + modules/pt/tests/data/ok/pe_serial-tddump/4_ascii | 1 + modules/pt/tests/data/ok/pe_serial-tddump/5_digit | 1 + modules/pt/tests/data/ok/pe_serial-tddump/6_graph | 1 + modules/pt/tests/data/ok/pe_serial-tddump/7_lower | 1 + modules/pt/tests/data/ok/pe_serial-tddump/8_print | 1 + modules/pt/tests/data/ok/pe_serial-tddump/9_punct | 1 + modules/pt/tests/data/ok/pe_serial/10_space | 1 + modules/pt/tests/data/ok/pe_serial/11_upper | 1 + modules/pt/tests/data/ok/pe_serial/12_wordchar | 1 + modules/pt/tests/data/ok/pe_serial/13_xdigit | 1 + modules/pt/tests/data/ok/pe_serial/14_ddigit | 1 + modules/pt/tests/data/ok/pe_serial/15_dot | 1 + modules/pt/tests/data/ok/pe_serial/16_nonterminal | 1 + modules/pt/tests/data/ok/pe_serial/17_terminal | 1 + modules/pt/tests/data/ok/pe_serial/18_range | 1 + modules/pt/tests/data/ok/pe_serial/19_ahead | 1 + modules/pt/tests/data/ok/pe_serial/1_epsilon | 1 + modules/pt/tests/data/ok/pe_serial/20_notahead | 1 + modules/pt/tests/data/ok/pe_serial/21_kleene | 1 + modules/pt/tests/data/ok/pe_serial/22_pkleen | 1 + modules/pt/tests/data/ok/pe_serial/23_optional | 1 + modules/pt/tests/data/ok/pe_serial/24_sequence | 1 + modules/pt/tests/data/ok/pe_serial/25_choice | 1 + modules/pt/tests/data/ok/pe_serial/26_complex | 1 + modules/pt/tests/data/ok/pe_serial/2_alpha | 1 + modules/pt/tests/data/ok/pe_serial/3_alnum | 1 + modules/pt/tests/data/ok/pe_serial/4_ascii | 1 + modules/pt/tests/data/ok/pe_serial/5_digit | 1 + modules/pt/tests/data/ok/pe_serial/6_graph | 1 + modules/pt/tests/data/ok/pe_serial/7_lower | 1 + modules/pt/tests/data/ok/pe_serial/8_print | 1 + modules/pt/tests/data/ok/pe_serial/9_punct | 1 + .../data/ok/peg_container-bulk/0_basic_arithmetic | 31 + .../tests/data/ok/peg_container-bulk/10_notahead | 17 + .../pt/tests/data/ok/peg_container-bulk/11_epsilon | 9 + .../tests/data/ok/peg_container-bulk/1_functions | 21 + .../ok/peg_container-bulk/27_ticket_4a4e443ce9 | 21 + .../data/ok/peg_container-bulk/2_fun_arithmetic | 35 + .../tests/data/ok/peg_container-bulk/3_peg_itself | 135 + .../pt/tests/data/ok/peg_container-bulk/4_choice | 9 + .../pt/tests/data/ok/peg_container-bulk/5_sequence | 9 + .../pt/tests/data/ok/peg_container-bulk/6_optional | 9 + .../pt/tests/data/ok/peg_container-bulk/7_kleene | 9 + .../pt/tests/data/ok/peg_container-bulk/8_pkleene | 9 + .../pt/tests/data/ok/peg_container-bulk/9_ahead | 17 + .../peg_container-incremental/0_basic_arithmetic | 43 + .../data/ok/peg_container-incremental/10_notahead | 15 + .../data/ok/peg_container-incremental/11_epsilon | 9 + .../data/ok/peg_container-incremental/1_functions | 23 + .../peg_container-incremental/27_ticket_4a4e443ce9 | 23 + .../ok/peg_container-incremental/2_fun_arithmetic | 51 + .../data/ok/peg_container-incremental/3_peg_itself | 251 + .../data/ok/peg_container-incremental/4_choice | 9 + .../data/ok/peg_container-incremental/5_sequence | 9 + .../data/ok/peg_container-incremental/6_optional | 9 + .../data/ok/peg_container-incremental/7_kleene | 9 + .../data/ok/peg_container-incremental/8_pkleene | 9 + .../data/ok/peg_container-incremental/9_ahead | 15 + .../0_basic_arithmetic | 42 + .../ok/peg_container-templated-bulk/10_notahead | 28 + .../ok/peg_container-templated-bulk/11_epsilon | 20 + .../ok/peg_container-templated-bulk/1_functions | 32 + .../27_ticket_4a4e443ce9 | 32 + .../peg_container-templated-bulk/2_fun_arithmetic | 46 + .../ok/peg_container-templated-bulk/3_peg_itself | 146 + .../data/ok/peg_container-templated-bulk/4_choice | 20 + .../ok/peg_container-templated-bulk/5_sequence | 20 + .../ok/peg_container-templated-bulk/6_optional | 20 + .../data/ok/peg_container-templated-bulk/7_kleene | 20 + .../data/ok/peg_container-templated-bulk/8_pkleene | 20 + .../data/ok/peg_container-templated-bulk/9_ahead | 28 + .../0_basic_arithmetic | 54 + .../10_notahead | 26 + .../peg_container-templated-incremental/11_epsilon | 20 + .../1_functions | 34 + .../27_ticket_4a4e443ce9 | 34 + .../2_fun_arithmetic | 62 + .../3_peg_itself | 262 + .../peg_container-templated-incremental/4_choice | 20 + .../peg_container-templated-incremental/5_sequence | 20 + .../peg_container-templated-incremental/6_optional | 20 + .../peg_container-templated-incremental/7_kleene | 20 + .../peg_container-templated-incremental/8_pkleene | 20 + .../ok/peg_container-templated-incremental/9_ahead | 26 + .../data/ok/peg_cparam-critcl/0_basic_arithmetic | 2393 +++ .../pt/tests/data/ok/peg_cparam-critcl/10_notahead | 2082 +++ .../pt/tests/data/ok/peg_cparam-critcl/11_epsilon | 2046 +++ .../pt/tests/data/ok/peg_cparam-critcl/1_functions | 2107 +++ .../data/ok/peg_cparam-critcl/27_ticket_4a4e443ce9 | 2256 +++ .../data/ok/peg_cparam-critcl/2_fun_arithmetic | 2456 ++++ .../tests/data/ok/peg_cparam-critcl/3_peg_itself | 4995 +++++++ .../pt/tests/data/ok/peg_cparam-critcl/4_choice | 2030 +++ .../pt/tests/data/ok/peg_cparam-critcl/5_sequence | 2030 +++ .../pt/tests/data/ok/peg_cparam-critcl/6_optional | 2043 +++ .../pt/tests/data/ok/peg_cparam-critcl/7_kleene | 2045 +++ .../pt/tests/data/ok/peg_cparam-critcl/8_pkleene | 2048 +++ modules/pt/tests/data/ok/peg_cparam-critcl/9_ahead | 2082 +++ .../data/ok/peg_cparam-tea/0_basic_arithmetic | 2351 +++ .../pt/tests/data/ok/peg_cparam-tea/10_notahead | 2040 +++ modules/pt/tests/data/ok/peg_cparam-tea/11_epsilon | 2004 +++ .../pt/tests/data/ok/peg_cparam-tea/1_functions | 2065 +++ .../data/ok/peg_cparam-tea/27_ticket_4a4e443ce9 | 2214 +++ .../tests/data/ok/peg_cparam-tea/2_fun_arithmetic | 2414 ++++ .../pt/tests/data/ok/peg_cparam-tea/3_peg_itself | 4953 +++++++ modules/pt/tests/data/ok/peg_cparam-tea/4_choice | 1988 +++ modules/pt/tests/data/ok/peg_cparam-tea/5_sequence | 1988 +++ modules/pt/tests/data/ok/peg_cparam-tea/6_optional | 2001 +++ modules/pt/tests/data/ok/peg_cparam-tea/7_kleene | 2003 +++ modules/pt/tests/data/ok/peg_cparam-tea/8_pkleene | 2006 +++ modules/pt/tests/data/ok/peg_cparam-tea/9_ahead | 2040 +++ .../pt/tests/data/ok/peg_cparam/0_basic_arithmetic | 407 + modules/pt/tests/data/ok/peg_cparam/10_notahead | 96 + modules/pt/tests/data/ok/peg_cparam/11_epsilon | 60 + modules/pt/tests/data/ok/peg_cparam/1_functions | 121 + .../tests/data/ok/peg_cparam/27_ticket_4a4e443ce9 | 270 + .../pt/tests/data/ok/peg_cparam/2_fun_arithmetic | 470 + modules/pt/tests/data/ok/peg_cparam/3_peg_itself | 3009 ++++ modules/pt/tests/data/ok/peg_cparam/4_choice | 44 + modules/pt/tests/data/ok/peg_cparam/5_sequence | 44 + modules/pt/tests/data/ok/peg_cparam/6_optional | 57 + modules/pt/tests/data/ok/peg_cparam/7_kleene | 59 + modules/pt/tests/data/ok/peg_cparam/8_pkleene | 62 + modules/pt/tests/data/ok/peg_cparam/9_ahead | 96 + .../data/ok/peg_json-indalign/0_basic_arithmetic | 39 + .../pt/tests/data/ok/peg_json-indalign/10_notahead | 11 + .../pt/tests/data/ok/peg_json-indalign/11_epsilon | 6 + .../pt/tests/data/ok/peg_json-indalign/1_functions | 19 + .../data/ok/peg_json-indalign/27_ticket_4a4e443ce9 | 19 + .../data/ok/peg_json-indalign/2_fun_arithmetic | 47 + .../tests/data/ok/peg_json-indalign/3_peg_itself | 247 + .../pt/tests/data/ok/peg_json-indalign/4_choice | 6 + .../pt/tests/data/ok/peg_json-indalign/5_sequence | 6 + .../pt/tests/data/ok/peg_json-indalign/6_optional | 6 + .../pt/tests/data/ok/peg_json-indalign/7_kleene | 6 + .../pt/tests/data/ok/peg_json-indalign/8_pkleene | 6 + modules/pt/tests/data/ok/peg_json-indalign/9_ahead | 11 + .../data/ok/peg_json-indented/0_basic_arithmetic | 39 + .../pt/tests/data/ok/peg_json-indented/10_notahead | 11 + .../pt/tests/data/ok/peg_json-indented/11_epsilon | 6 + .../pt/tests/data/ok/peg_json-indented/1_functions | 19 + .../data/ok/peg_json-indented/27_ticket_4a4e443ce9 | 19 + .../data/ok/peg_json-indented/2_fun_arithmetic | 47 + .../tests/data/ok/peg_json-indented/3_peg_itself | 247 + .../pt/tests/data/ok/peg_json-indented/4_choice | 6 + .../pt/tests/data/ok/peg_json-indented/5_sequence | 6 + .../pt/tests/data/ok/peg_json-indented/6_optional | 6 + .../pt/tests/data/ok/peg_json-indented/7_kleene | 6 + .../pt/tests/data/ok/peg_json-indented/8_pkleene | 6 + modules/pt/tests/data/ok/peg_json-indented/9_ahead | 11 + .../ok/peg_json-ultracompact/0_basic_arithmetic | 1 + .../data/ok/peg_json-ultracompact/10_notahead | 1 + .../tests/data/ok/peg_json-ultracompact/11_epsilon | 1 + .../data/ok/peg_json-ultracompact/1_functions | 1 + .../ok/peg_json-ultracompact/27_ticket_4a4e443ce9 | 1 + .../data/ok/peg_json-ultracompact/2_fun_arithmetic | 1 + .../data/ok/peg_json-ultracompact/3_peg_itself | 1 + .../tests/data/ok/peg_json-ultracompact/4_choice | 1 + .../tests/data/ok/peg_json-ultracompact/5_sequence | 1 + .../tests/data/ok/peg_json-ultracompact/6_optional | 1 + .../tests/data/ok/peg_json-ultracompact/7_kleene | 1 + .../tests/data/ok/peg_json-ultracompact/8_pkleene | 1 + .../pt/tests/data/ok/peg_json-ultracompact/9_ahead | 1 + .../data/ok/peg_param-compact/0_basic_arithmetic | 852 ++ .../pt/tests/data/ok/peg_param-compact/10_notahead | 88 + .../pt/tests/data/ok/peg_param-compact/11_epsilon | 54 + .../pt/tests/data/ok/peg_param-compact/1_functions | 189 + .../data/ok/peg_param-compact/27_ticket_4a4e443ce9 | 400 + .../data/ok/peg_param-compact/2_fun_arithmetic | 1037 ++ .../tests/data/ok/peg_param-compact/3_peg_itself | 5788 ++++++++ .../pt/tests/data/ok/peg_param-compact/4_choice | 78 + .../pt/tests/data/ok/peg_param-compact/5_sequence | 71 + .../pt/tests/data/ok/peg_param-compact/6_optional | 37 + .../pt/tests/data/ok/peg_param-compact/7_kleene | 41 + .../pt/tests/data/ok/peg_param-compact/8_pkleene | 47 + modules/pt/tests/data/ok/peg_param-compact/9_ahead | 87 + .../data/ok/peg_param-inlined/0_basic_arithmetic | 790 + .../pt/tests/data/ok/peg_param-inlined/10_notahead | 82 + .../pt/tests/data/ok/peg_param-inlined/11_epsilon | 48 + .../pt/tests/data/ok/peg_param-inlined/1_functions | 159 + .../data/ok/peg_param-inlined/27_ticket_4a4e443ce9 | 384 + .../data/ok/peg_param-inlined/2_fun_arithmetic | 959 ++ .../tests/data/ok/peg_param-inlined/3_peg_itself | 5665 ++++++++ .../pt/tests/data/ok/peg_param-inlined/4_choice | 60 + .../pt/tests/data/ok/peg_param-inlined/5_sequence | 53 + .../pt/tests/data/ok/peg_param-inlined/6_optional | 31 + .../pt/tests/data/ok/peg_param-inlined/7_kleene | 35 + .../pt/tests/data/ok/peg_param-inlined/8_pkleene | 42 + modules/pt/tests/data/ok/peg_param-inlined/9_ahead | 81 + .../data/ok/peg_param-unopt/0_basic_arithmetic | 898 ++ .../pt/tests/data/ok/peg_param-unopt/10_notahead | 88 + .../pt/tests/data/ok/peg_param-unopt/11_epsilon | 54 + .../pt/tests/data/ok/peg_param-unopt/1_functions | 189 + .../data/ok/peg_param-unopt/27_ticket_4a4e443ce9 | 407 + .../tests/data/ok/peg_param-unopt/2_fun_arithmetic | 1097 ++ .../pt/tests/data/ok/peg_param-unopt/3_peg_itself | 6703 +++++++++ modules/pt/tests/data/ok/peg_param-unopt/4_choice | 78 + .../pt/tests/data/ok/peg_param-unopt/5_sequence | 71 + .../pt/tests/data/ok/peg_param-unopt/6_optional | 37 + modules/pt/tests/data/ok/peg_param-unopt/7_kleene | 41 + modules/pt/tests/data/ok/peg_param-unopt/8_pkleene | 47 + modules/pt/tests/data/ok/peg_param-unopt/9_ahead | 87 + .../pt/tests/data/ok/peg_param/0_basic_arithmetic | 756 + modules/pt/tests/data/ok/peg_param/10_notahead | 82 + modules/pt/tests/data/ok/peg_param/11_epsilon | 48 + modules/pt/tests/data/ok/peg_param/1_functions | 159 + .../tests/data/ok/peg_param/27_ticket_4a4e443ce9 | 384 + .../pt/tests/data/ok/peg_param/2_fun_arithmetic | 925 ++ modules/pt/tests/data/ok/peg_param/3_peg_itself | 5580 +++++++ modules/pt/tests/data/ok/peg_param/4_choice | 60 + modules/pt/tests/data/ok/peg_param/5_sequence | 53 + modules/pt/tests/data/ok/peg_param/6_optional | 31 + modules/pt/tests/data/ok/peg_param/7_kleene | 35 + modules/pt/tests/data/ok/peg_param/8_pkleene | 42 + modules/pt/tests/data/ok/peg_param/9_ahead | 81 + .../data/ok/peg_peg-ast-fused/0_basic_arithmetic | 193 + .../pt/tests/data/ok/peg_peg-ast-fused/10_notahead | 29 + .../pt/tests/data/ok/peg_peg-ast-fused/11_epsilon | 18 + .../pt/tests/data/ok/peg_peg-ast-fused/1_functions | 60 + .../data/ok/peg_peg-ast-fused/27_ticket_4a4e443ce9 | 82 + .../data/ok/peg_peg-ast-fused/2_fun_arithmetic | 237 + .../tests/data/ok/peg_peg-ast-fused/3_peg_itself | 1696 +++ .../pt/tests/data/ok/peg_peg-ast-fused/4_choice | 20 + .../pt/tests/data/ok/peg_peg-ast-fused/5_sequence | 17 + .../pt/tests/data/ok/peg_peg-ast-fused/6_optional | 14 + .../pt/tests/data/ok/peg_peg-ast-fused/7_kleene | 14 + .../pt/tests/data/ok/peg_peg-ast-fused/8_pkleene | 14 + modules/pt/tests/data/ok/peg_peg-ast-fused/9_ahead | 29 + .../peg_peg-ast-templated-fused/0_basic_arithmetic | 193 + .../ok/peg_peg-ast-templated-fused/10_notahead | 29 + .../data/ok/peg_peg-ast-templated-fused/11_epsilon | 18 + .../ok/peg_peg-ast-templated-fused/1_functions | 60 + .../27_ticket_4a4e443ce9 | 82 + .../peg_peg-ast-templated-fused/2_fun_arithmetic | 237 + .../ok/peg_peg-ast-templated-fused/3_peg_itself | 1696 +++ .../data/ok/peg_peg-ast-templated-fused/4_choice | 20 + .../data/ok/peg_peg-ast-templated-fused/5_sequence | 17 + .../data/ok/peg_peg-ast-templated-fused/6_optional | 14 + .../data/ok/peg_peg-ast-templated-fused/7_kleene | 14 + .../data/ok/peg_peg-ast-templated-fused/8_pkleene | 14 + .../data/ok/peg_peg-ast-templated-fused/9_ahead | 29 + .../ok/peg_peg-ast-templated/0_basic_arithmetic | 237 + .../data/ok/peg_peg-ast-templated/10_notahead | 29 + .../tests/data/ok/peg_peg-ast-templated/11_epsilon | 18 + .../data/ok/peg_peg-ast-templated/1_functions | 72 + .../ok/peg_peg-ast-templated/27_ticket_4a4e443ce9 | 90 + .../data/ok/peg_peg-ast-templated/2_fun_arithmetic | 293 + .../data/ok/peg_peg-ast-templated/3_peg_itself | 2152 +++ .../tests/data/ok/peg_peg-ast-templated/4_choice | 27 + .../tests/data/ok/peg_peg-ast-templated/5_sequence | 25 + .../tests/data/ok/peg_peg-ast-templated/6_optional | 14 + .../tests/data/ok/peg_peg-ast-templated/7_kleene | 14 + .../tests/data/ok/peg_peg-ast-templated/8_pkleene | 14 + .../pt/tests/data/ok/peg_peg-ast-templated/9_ahead | 29 + .../tests/data/ok/peg_peg-ast/0_basic_arithmetic | 237 + modules/pt/tests/data/ok/peg_peg-ast/10_notahead | 29 + modules/pt/tests/data/ok/peg_peg-ast/11_epsilon | 18 + modules/pt/tests/data/ok/peg_peg-ast/1_functions | 72 + .../tests/data/ok/peg_peg-ast/27_ticket_4a4e443ce9 | 90 + .../pt/tests/data/ok/peg_peg-ast/2_fun_arithmetic | 293 + modules/pt/tests/data/ok/peg_peg-ast/3_peg_itself | 2152 +++ modules/pt/tests/data/ok/peg_peg-ast/4_choice | 27 + modules/pt/tests/data/ok/peg_peg-ast/5_sequence | 25 + modules/pt/tests/data/ok/peg_peg-ast/6_optional | 14 + modules/pt/tests/data/ok/peg_peg-ast/7_kleene | 14 + modules/pt/tests/data/ok/peg_peg-ast/8_pkleene | 14 + modules/pt/tests/data/ok/peg_peg-ast/9_ahead | 29 + .../tests/data/ok/peg_peg-fused/0_basic_arithmetic | 12 + modules/pt/tests/data/ok/peg_peg-fused/10_notahead | 5 + modules/pt/tests/data/ok/peg_peg-fused/11_epsilon | 2 + modules/pt/tests/data/ok/peg_peg-fused/1_functions | 7 + .../data/ok/peg_peg-fused/27_ticket_4a4e443ce9 | 7 + .../tests/data/ok/peg_peg-fused/2_fun_arithmetic | 14 + .../pt/tests/data/ok/peg_peg-fused/3_peg_itself | 64 + modules/pt/tests/data/ok/peg_peg-fused/4_choice | 2 + modules/pt/tests/data/ok/peg_peg-fused/5_sequence | 2 + modules/pt/tests/data/ok/peg_peg-fused/6_optional | 2 + modules/pt/tests/data/ok/peg_peg-fused/7_kleene | 2 + modules/pt/tests/data/ok/peg_peg-fused/8_pkleene | 2 + modules/pt/tests/data/ok/peg_peg-fused/9_ahead | 5 + .../ok/peg_peg-templated-fused/0_basic_arithmetic | 19 + .../data/ok/peg_peg-templated-fused/10_notahead | 12 + .../data/ok/peg_peg-templated-fused/11_epsilon | 9 + .../data/ok/peg_peg-templated-fused/1_functions | 14 + .../peg_peg-templated-fused/27_ticket_4a4e443ce9 | 14 + .../ok/peg_peg-templated-fused/2_fun_arithmetic | 21 + .../data/ok/peg_peg-templated-fused/3_peg_itself | 71 + .../tests/data/ok/peg_peg-templated-fused/4_choice | 9 + .../data/ok/peg_peg-templated-fused/5_sequence | 9 + .../data/ok/peg_peg-templated-fused/6_optional | 9 + .../tests/data/ok/peg_peg-templated-fused/7_kleene | 9 + .../data/ok/peg_peg-templated-fused/8_pkleene | 9 + .../tests/data/ok/peg_peg-templated-fused/9_ahead | 12 + .../data/ok/peg_peg-templated/0_basic_arithmetic | 19 + .../pt/tests/data/ok/peg_peg-templated/10_notahead | 12 + .../pt/tests/data/ok/peg_peg-templated/11_epsilon | 9 + .../pt/tests/data/ok/peg_peg-templated/1_functions | 14 + .../data/ok/peg_peg-templated/27_ticket_4a4e443ce9 | 14 + .../data/ok/peg_peg-templated/2_fun_arithmetic | 21 + .../tests/data/ok/peg_peg-templated/3_peg_itself | 71 + .../pt/tests/data/ok/peg_peg-templated/4_choice | 9 + .../pt/tests/data/ok/peg_peg-templated/5_sequence | 9 + .../pt/tests/data/ok/peg_peg-templated/6_optional | 9 + .../pt/tests/data/ok/peg_peg-templated/7_kleene | 9 + .../pt/tests/data/ok/peg_peg-templated/8_pkleene | 9 + modules/pt/tests/data/ok/peg_peg-templated/9_ahead | 12 + .../pt/tests/data/ok/peg_peg/0_basic_arithmetic | 12 + modules/pt/tests/data/ok/peg_peg/10_notahead | 5 + modules/pt/tests/data/ok/peg_peg/11_epsilon | 2 + modules/pt/tests/data/ok/peg_peg/1_functions | 7 + .../pt/tests/data/ok/peg_peg/27_ticket_4a4e443ce9 | 7 + modules/pt/tests/data/ok/peg_peg/2_fun_arithmetic | 14 + modules/pt/tests/data/ok/peg_peg/3_peg_itself | 64 + modules/pt/tests/data/ok/peg_peg/4_choice | 2 + modules/pt/tests/data/ok/peg_peg/5_sequence | 2 + modules/pt/tests/data/ok/peg_peg/6_optional | 2 + modules/pt/tests/data/ok/peg_peg/7_kleene | 2 + modules/pt/tests/data/ok/peg_peg/8_pkleene | 2 + modules/pt/tests/data/ok/peg_peg/9_ahead | 5 + .../ok/peg_serial-canonical/0_basic_arithmetic | 1 + .../tests/data/ok/peg_serial-canonical/10_notahead | 1 + .../tests/data/ok/peg_serial-canonical/11_epsilon | 1 + .../tests/data/ok/peg_serial-canonical/1_functions | 1 + .../ok/peg_serial-canonical/27_ticket_4a4e443ce9 | 1 + .../data/ok/peg_serial-canonical/2_fun_arithmetic | 1 + .../data/ok/peg_serial-canonical/3_peg_itself | 2 + .../pt/tests/data/ok/peg_serial-canonical/4_choice | 1 + .../tests/data/ok/peg_serial-canonical/5_sequence | 1 + .../tests/data/ok/peg_serial-canonical/6_optional | 1 + .../pt/tests/data/ok/peg_serial-canonical/7_kleene | 1 + .../tests/data/ok/peg_serial-canonical/8_pkleene | 1 + .../pt/tests/data/ok/peg_serial-canonical/9_ahead | 1 + .../data/ok/peg_serial-print/0_basic_arithmetic | 54 + .../pt/tests/data/ok/peg_serial-print/10_notahead | 8 + .../pt/tests/data/ok/peg_serial-print/11_epsilon | 5 + .../pt/tests/data/ok/peg_serial-print/1_functions | 15 + .../data/ok/peg_serial-print/27_ticket_4a4e443ce9 | 24 + .../data/ok/peg_serial-print/2_fun_arithmetic | 66 + .../pt/tests/data/ok/peg_serial-print/3_peg_itself | 445 + modules/pt/tests/data/ok/peg_serial-print/4_choice | 6 + .../pt/tests/data/ok/peg_serial-print/5_sequence | 6 + .../pt/tests/data/ok/peg_serial-print/6_optional | 4 + modules/pt/tests/data/ok/peg_serial-print/7_kleene | 4 + .../pt/tests/data/ok/peg_serial-print/8_pkleene | 4 + modules/pt/tests/data/ok/peg_serial-print/9_ahead | 8 + .../pt/tests/data/ok/peg_serial/0_basic_arithmetic | 13 + modules/pt/tests/data/ok/peg_serial/10_notahead | 6 + modules/pt/tests/data/ok/peg_serial/11_epsilon | 4 + modules/pt/tests/data/ok/peg_serial/1_functions | 8 + .../tests/data/ok/peg_serial/27_ticket_4a4e443ce9 | 8 + .../pt/tests/data/ok/peg_serial/2_fun_arithmetic | 15 + modules/pt/tests/data/ok/peg_serial/3_peg_itself | 65 + modules/pt/tests/data/ok/peg_serial/4_choice | 4 + modules/pt/tests/data/ok/peg_serial/5_sequence | 4 + modules/pt/tests/data/ok/peg_serial/6_optional | 4 + modules/pt/tests/data/ok/peg_serial/7_kleene | 4 + modules/pt/tests/data/ok/peg_serial/8_pkleene | 4 + modules/pt/tests/data/ok/peg_serial/9_ahead | 6 + .../data/ok/peg_tclparam-snit/0_basic_arithmetic | 365 + .../pt/tests/data/ok/peg_tclparam-snit/10_notahead | 119 + .../pt/tests/data/ok/peg_tclparam-snit/11_epsilon | 92 + .../pt/tests/data/ok/peg_tclparam-snit/1_functions | 137 + .../data/ok/peg_tclparam-snit/27_ticket_4a4e443ce9 | 262 + .../data/ok/peg_tclparam-snit/2_fun_arithmetic | 414 + .../tests/data/ok/peg_tclparam-snit/3_peg_itself | 2431 ++++ .../pt/tests/data/ok/peg_tclparam-snit/4_choice | 79 + .../pt/tests/data/ok/peg_tclparam-snit/5_sequence | 79 + .../pt/tests/data/ok/peg_tclparam-snit/6_optional | 89 + .../pt/tests/data/ok/peg_tclparam-snit/7_kleene | 91 + .../pt/tests/data/ok/peg_tclparam-snit/8_pkleene | 94 + modules/pt/tests/data/ok/peg_tclparam-snit/9_ahead | 119 + .../data/ok/peg_tclparam-tcloo/0_basic_arithmetic | 351 + .../tests/data/ok/peg_tclparam-tcloo/10_notahead | 105 + .../pt/tests/data/ok/peg_tclparam-tcloo/11_epsilon | 78 + .../tests/data/ok/peg_tclparam-tcloo/1_functions | 123 + .../ok/peg_tclparam-tcloo/27_ticket_4a4e443ce9 | 248 + .../data/ok/peg_tclparam-tcloo/2_fun_arithmetic | 400 + .../tests/data/ok/peg_tclparam-tcloo/3_peg_itself | 2417 ++++ .../pt/tests/data/ok/peg_tclparam-tcloo/4_choice | 65 + .../pt/tests/data/ok/peg_tclparam-tcloo/5_sequence | 65 + .../pt/tests/data/ok/peg_tclparam-tcloo/6_optional | 75 + .../pt/tests/data/ok/peg_tclparam-tcloo/7_kleene | 77 + .../pt/tests/data/ok/peg_tclparam-tcloo/8_pkleene | 80 + .../pt/tests/data/ok/peg_tclparam-tcloo/9_ahead | 105 + .../tests/data/ok/peg_tclparam/0_basic_arithmetic | 301 + modules/pt/tests/data/ok/peg_tclparam/10_notahead | 55 + modules/pt/tests/data/ok/peg_tclparam/11_epsilon | 28 + modules/pt/tests/data/ok/peg_tclparam/1_functions | 73 + .../data/ok/peg_tclparam/27_ticket_4a4e443ce9 | 198 + .../pt/tests/data/ok/peg_tclparam/2_fun_arithmetic | 350 + modules/pt/tests/data/ok/peg_tclparam/3_peg_itself | 2367 +++ modules/pt/tests/data/ok/peg_tclparam/4_choice | 15 + modules/pt/tests/data/ok/peg_tclparam/5_sequence | 15 + modules/pt/tests/data/ok/peg_tclparam/6_optional | 25 + modules/pt/tests/data/ok/peg_tclparam/7_kleene | 27 + modules/pt/tests/data/ok/peg_tclparam/8_pkleene | 30 + modules/pt/tests/data/ok/peg_tclparam/9_ahead | 55 + modules/pt/tests/pt_astree.tests | 302 + modules/pt/tests/pt_cparam_config_critcl.tests | 52 + modules/pt/tests/pt_cparam_config_tea.tests | 52 + modules/pt/tests/pt_parse_peg.tests | 36 + modules/pt/tests/pt_peg_container.tests | 126 + modules/pt/tests/pt_peg_export.tests | 173 + modules/pt/tests/pt_peg_export_container.tests | 66 + modules/pt/tests/pt_peg_export_json.tests | 39 + modules/pt/tests/pt_peg_export_peg.tests | 62 + modules/pt/tests/pt_peg_export_plugins.tests | 145 + modules/pt/tests/pt_peg_from_json.tests | 29 + modules/pt/tests/pt_peg_from_peg.tests | 47 + modules/pt/tests/pt_peg_import.tests | 210 + modules/pt/tests/pt_peg_import_json.tests | 32 + modules/pt/tests/pt_peg_import_peg.tests | 46 + modules/pt/tests/pt_peg_import_plugins.tests | 168 + modules/pt/tests/pt_peg_interp.tests | 43 + modules/pt/tests/pt_peg_to_container.tests | 72 + modules/pt/tests/pt_peg_to_cparam.tests | 64 + modules/pt/tests/pt_peg_to_json.tests | 45 + modules/pt/tests/pt_peg_to_param.tests | 62 + modules/pt/tests/pt_peg_to_peg.tests | 69 + modules/pt/tests/pt_peg_to_tclparam.tests | 58 + modules/pt/tests/pt_pegrammar.tests | 195 + modules/pt/tests/pt_pexpr_op.tests | 110 + modules/pt/tests/pt_pexpression.tests | 371 + modules/pt/tests/pt_pgen.tests | 137 + modules/pt/tests/pt_rdengine.tests | 1978 +++ modules/pt/tests/pt_runtime.tests | 150 + modules/pt/tests/pt_tclparam_config_snit.tests | 52 + modules/pt/tests/pt_tclparam_config_tcloo.tests | 52 + modules/pt/text_write.tcl | 249 + modules/pt/tools/bench-compare.tcl | 126 + modules/pt/tools/regenerate_parsers.tcl | 86 + modules/rc4/ChangeLog | 134 + modules/rc4/pkgIndex.tcl | 13 + modules/rc4/rc4.bench | 64 + modules/rc4/rc4.man | 120 + modules/rc4/rc4.tcl | 422 + modules/rc4/rc4.test | 273 + modules/rc4/rc4c.tcl | 168 + modules/rcs/ChangeLog | 99 + modules/rcs/pkgIndex.tcl | 2 + modules/rcs/rcs.man | 330 + modules/rcs/rcs.pcx | 65 + modules/rcs/rcs.tcl | 281 + modules/rcs/rcs.test | 317 + modules/report/ChangeLog | 164 + modules/report/pkgIndex.tcl | 2 + modules/report/report.man | 476 + modules/report/report.tcl | 1386 ++ modules/report/report.test | 1367 ++ modules/rest/ChangeLog | 75 + modules/rest/bitly | 34 + modules/rest/couchdb | 56 + modules/rest/delicious | 131 + modules/rest/facebook | 93 + modules/rest/flickr | 292 + modules/rest/gcal | 102 + modules/rest/gdocs | 87 + modules/rest/pkgIndex.tcl | 2 + modules/rest/rest.man | 538 + modules/rest/rest.tcl | 829 ++ modules/rest/twitter | 69 + modules/rest/yboss | 36 + modules/rest/yweather | 19 + modules/ripemd/ChangeLog | 150 + modules/ripemd/pkgIndex.tcl | 11 + modules/ripemd/ripemd128.bench | 46 + modules/ripemd/ripemd128.man | 191 + modules/ripemd/ripemd128.tcl | 731 + modules/ripemd/ripemd128.test | 225 + modules/ripemd/ripemd160.bench | 46 + modules/ripemd/ripemd160.man | 175 + modules/ripemd/ripemd160.tcl | 866 ++ modules/ripemd/ripemd160.test | 229 + modules/ripemd/ripemd160_test.c | 159 + modules/sasl/ChangeLog | 194 + modules/sasl/gtoken.man | 27 + modules/sasl/gtoken.tcl | 92 + modules/sasl/ntlm.man | 36 + modules/sasl/ntlm.tcl | 375 + modules/sasl/ntlm.test | 92 + modules/sasl/pkgIndex.tcl | 11 + modules/sasl/sasl.man | 340 + modules/sasl/sasl.tcl | 682 + modules/sasl/sasl.test | 291 + modules/sasl/scram.man | 36 + modules/sasl/scram.tcl | 503 + modules/sasl/scram.test | 99 + modules/sha1/ChangeLog | 318 + modules/sha1/pkgIndex.tcl | 14 + modules/sha1/sha1.bench | 46 + modules/sha1/sha1.c | 267 + modules/sha1/sha1.h | 26 + modules/sha1/sha1.man | 182 + modules/sha1/sha1.tcl | 813 ++ modules/sha1/sha1.test | 201 + modules/sha1/sha1c.tcl | 125 + modules/sha1/sha1v1.tcl | 710 + modules/sha1/sha1v1.test | 227 + modules/sha1/sha256.bench | 52 + modules/sha1/sha256.c | 524 + modules/sha1/sha256.h | 83 + modules/sha1/sha256.man | 194 + modules/sha1/sha256.tcl | 832 ++ modules/sha1/sha256.test | 97 + modules/sha1/sha256c.tcl | 174 + modules/simulation/ChangeLog | 84 + modules/simulation/annealing.man | 257 + modules/simulation/annealing.tcl | 564 + modules/simulation/montecarlo.man | 219 + modules/simulation/montecarlo.tcl | 486 + modules/simulation/pkgIndex.tcl | 3 + modules/simulation/random.tcl | 577 + modules/simulation/random.test | 239 + modules/simulation/simulation_random.man | 216 + modules/smtpd/ChangeLog | 191 + modules/smtpd/clients/README | 13 + modules/smtpd/clients/mail-test.php | 21 + modules/smtpd/clients/mail-test.pl | 121 + modules/smtpd/clients/mail-test.py | 53 + modules/smtpd/clients/mail-test.rb | 16 + modules/smtpd/clients/mail-test.tcl | 15 + modules/smtpd/clients/php.ini | 56 + modules/smtpd/pkgIndex.tcl | 12 + modules/smtpd/smtpd.man | 294 + modules/smtpd/smtpd.tcl | 924 ++ modules/snit/ChangeLog | 1189 ++ modules/snit/README.tcl83.txt | 57 + modules/snit/README.txt | 829 ++ modules/snit/dictionary.txt | 125 + modules/snit/license.txt | 38 + modules/snit/main1.tcl | 3987 +++++ modules/snit/main1_83.tcl | 4011 ++++++ modules/snit/main2.tcl | 3888 +++++ modules/snit/modules.txt | 11 + modules/snit/pkgIndex.tcl | 6 + modules/snit/roadmap.txt | 180 + modules/snit/roadmap2.txt | 177 + modules/snit/snit.man | 2839 ++++ modules/snit/snit.tcl | 41 + modules/snit/snit.test | 9144 ++++++++++++ modules/snit/snit2.tcl | 32 + modules/snit/snit_tcl83_utils.tcl | 231 + modules/snit/snitfaq.man | 4114 ++++++ modules/snit/validate.tcl | 720 + modules/soundex/ChangeLog | 102 + modules/soundex/pkgIndex.tcl | 12 + modules/soundex/soundex.man | 45 + modules/soundex/soundex.pcx | 26 + modules/soundex/soundex.tcl | 96 + modules/soundex/soundex.test | 45 + modules/stooop/ChangeLog | 150 + modules/stooop/README | 79 + modules/stooop/mkpkgidx.tcl | 112 + modules/stooop/pkgIndex.tcl | 22 + modules/stooop/stooop.man | 223 + modules/stooop/stooop.tcl | 938 ++ modules/stooop/stooop.test | 9398 ++++++++++++ modules/stooop/stooop_man.html | 1194 ++ modules/stooop/switched.html | 242 + modules/stooop/switched.man | 328 + modules/stooop/switched.tcl | 133 + modules/stooop/xifo.tcl | 142 + modules/string/ChangeLog | 16 + modules/string/pkgIndex.tcl | 6 + modules/string/token.man | 97 + modules/string/token.tcl | 94 + modules/string/token_shell.man | 141 + modules/string/token_shell.tcl | 172 + modules/string/token_shell.test | 181 + modules/stringprep/ChangeLog | 78 + modules/stringprep/pkgIndex.tcl | 5 + modules/stringprep/stringprep.man | 151 + modules/stringprep/stringprep.tcl | 278 + modules/stringprep/stringprep.test | 164 + modules/stringprep/stringprep_data.man | 21 + modules/stringprep/stringprep_data.tcl | 1034 ++ modules/stringprep/tools/gen_stringprep_data.tcl | 524 + modules/stringprep/tools/gen_unicode_data.tcl | 867 ++ modules/stringprep/tools/gen_unicode_test.tcl | 247 + modules/stringprep/unicode.man | 83 + modules/stringprep/unicode.tcl | 292 + modules/stringprep/unicode.test | 1732 +++ modules/stringprep/unicode_data.man | 21 + modules/stringprep/unicode_data.tcl | 1547 ++ modules/struct/ChangeLog | 2433 ++++ modules/struct/disjointset.man | 160 + modules/struct/disjointset.tcl | 344 + modules/struct/disjointset.test | 116 + modules/struct/disjointset.testsuite | 223 + modules/struct/graph.man | 942 ++ modules/struct/graph.tcl | 180 + modules/struct/graph.test | 49 + modules/struct/graph/arc.c | 197 + modules/struct/graph/arc.h | 40 + modules/struct/graph/arcshimmer.c | 137 + modules/struct/graph/attr.c | 443 + modules/struct/graph/attr.h | 49 + modules/struct/graph/ds.h | 178 + modules/struct/graph/filter.c | 1209 ++ modules/struct/graph/global.c | 49 + modules/struct/graph/global.h | 20 + modules/struct/graph/graph.c | 706 + modules/struct/graph/graph.h | 40 + modules/struct/graph/methods.c | 2914 ++++ modules/struct/graph/methods.h | 76 + modules/struct/graph/nacommon.c | 289 + modules/struct/graph/nacommon.h | 39 + modules/struct/graph/node.c | 136 + modules/struct/graph/node.h | 34 + modules/struct/graph/nodeshimmer.c | 137 + modules/struct/graph/objcmd.c | 178 + modules/struct/graph/objcmd.h | 20 + modules/struct/graph/tests/XOpsControl | 60 + modules/struct/graph/tests/XOpsSetup | 2750 ++++ modules/struct/graph/tests/XOpsSupport | 128 + modules/struct/graph/tests/Xcontrol | 72 + modules/struct/graph/tests/Xsetup | 100 + modules/struct/graph/tests/Xsupport | 320 + modules/struct/graph/tests/arc/attr.test | 97 + modules/struct/graph/tests/arc/delete.test | 94 + modules/struct/graph/tests/arc/exists.test | 47 + modules/struct/graph/tests/arc/flip.test | 59 + modules/struct/graph/tests/arc/getunweighted.test | 74 + modules/struct/graph/tests/arc/getweight.test | 58 + modules/struct/graph/tests/arc/hasweight.test | 58 + modules/struct/graph/tests/arc/insert.test | 113 + modules/struct/graph/tests/arc/move-source.test | 76 + modules/struct/graph/tests/arc/move-target.test | 76 + modules/struct/graph/tests/arc/move.test | 111 + modules/struct/graph/tests/arc/nodes.test | 48 + modules/struct/graph/tests/arc/rename.test | 104 + modules/struct/graph/tests/arc/setunweighted.test | 64 + modules/struct/graph/tests/arc/setweight.test | 71 + modules/struct/graph/tests/arc/source.test | 48 + modules/struct/graph/tests/arc/target.test | 48 + modules/struct/graph/tests/arc/unsetweight.test | 62 + modules/struct/graph/tests/arc/weights.test | 76 + modules/struct/graph/tests/arcs.test | 326 + modules/struct/graph/tests/assign.test | 75 + modules/struct/graph/tests/attr/Xsetup | 78 + modules/struct/graph/tests/attr/append.test | 88 + modules/struct/graph/tests/attr/get.test | 84 + modules/struct/graph/tests/attr/getall.test | 79 + modules/struct/graph/tests/attr/keyexists.test | 84 + modules/struct/graph/tests/attr/keys.test | 79 + modules/struct/graph/tests/attr/lappend.test | 88 + modules/struct/graph/tests/attr/set.test | 97 + modules/struct/graph/tests/attr/unset.test | 115 + modules/struct/graph/tests/command.test | 161 + modules/struct/graph/tests/deserialize.test | 209 + modules/struct/graph/tests/node/attr.test | 97 + modules/struct/graph/tests/node/degree.test | 87 + modules/struct/graph/tests/node/delete.test | 88 + modules/struct/graph/tests/node/exists.test | 46 + modules/struct/graph/tests/node/insert.test | 67 + modules/struct/graph/tests/node/opposite.test | 88 + modules/struct/graph/tests/node/rename.test | 106 + modules/struct/graph/tests/nodes.test | 313 + modules/struct/graph/tests/ops/adjlist.test | 158 + modules/struct/graph/tests/ops/adjmatrix.test | 69 + modules/struct/graph/tests/ops/bellmanford.test | 137 + modules/struct/graph/tests/ops/bfs.test | 204 + modules/struct/graph/tests/ops/bipartite.test | 147 + modules/struct/graph/tests/ops/bridge.test | 75 + modules/struct/graph/tests/ops/busackergowen.test | 157 + modules/struct/graph/tests/ops/christofides.test | 58 + modules/struct/graph/tests/ops/componentof.test | 167 + modules/struct/graph/tests/ops/components.test | 131 + modules/struct/graph/tests/ops/connected.test | 120 + modules/struct/graph/tests/ops/cutvertex.test | 97 + modules/struct/graph/tests/ops/diameter.test | 45 + modules/struct/graph/tests/ops/dijkstra.test | 107 + .../struct/graph/tests/ops/dinicblockingflow.test | 70 + .../struct/graph/tests/ops/dinicmaximumflow.test | 137 + modules/struct/graph/tests/ops/distance.test | 70 + modules/struct/graph/tests/ops/eccentricity.test | 57 + modules/struct/graph/tests/ops/edmondskarp.test | 195 + modules/struct/graph/tests/ops/eulerpath.test | 215 + modules/struct/graph/tests/ops/eulertour.test | 189 + modules/struct/graph/tests/ops/floydwarshall.test | 124 + modules/struct/graph/tests/ops/johnsons.test | 130 + modules/struct/graph/tests/ops/kcenter.test | 179 + modules/struct/graph/tests/ops/kruskal.test | 59 + modules/struct/graph/tests/ops/maxcut.test | 138 + modules/struct/graph/tests/ops/maxmatching.test | 137 + modules/struct/graph/tests/ops/mdst.test | 131 + modules/struct/graph/tests/ops/metrictsp.test | 208 + .../struct/graph/tests/ops/mkmblockingflow.test | 67 + modules/struct/graph/tests/ops/prim.test | 67 + modules/struct/graph/tests/ops/radius.test | 45 + modules/struct/graph/tests/ops/tarjan.test | 99 + modules/struct/graph/tests/ops/tspheuristics.test | 44 + modules/struct/graph/tests/ops/verticescover.test | 81 + .../struct/graph/tests/ops/weightedkcenter.test | 137 + modules/struct/graph/tests/rassign.test | 75 + modules/struct/graph/tests/serialize.test | 199 + modules/struct/graph/tests/swap.test | 121 + modules/struct/graph/tests/walk.test | 207 + modules/struct/graph/util.c | 115 + modules/struct/graph/util.h | 66 + modules/struct/graph/walk.c | 553 + modules/struct/graph/walk.h | 46 + modules/struct/graph1.man | 375 + modules/struct/graph1.tcl | 2154 +++ modules/struct/graph1.test | 1905 +++ modules/struct/graph_c.tcl | 160 + modules/struct/graph_tcl.tcl | 3244 +++++ modules/struct/graphops.man | 1318 ++ modules/struct/graphops.tcl | 3787 +++++ modules/struct/graphops.test | 67 + modules/struct/list.tcl | 1828 +++ modules/struct/list.test | 1311 ++ modules/struct/matrix.man | 539 + modules/struct/matrix.tcl | 2792 ++++ modules/struct/matrix.test | 2314 +++ modules/struct/matrix.testsupport | 116 + modules/struct/matrix1.man | 381 + modules/struct/matrix1.tcl | 2287 +++ modules/struct/matrix1.test | 1895 +++ modules/struct/pkgIndex.tcl | 23 + modules/struct/pool.html | 1151 ++ modules/struct/pool.man | 443 + modules/struct/pool.tcl | 715 + modules/struct/pool.test | 202 + modules/struct/prioqueue.man | 111 + modules/struct/prioqueue.tcl | 535 + modules/struct/prioqueue.test | 511 + modules/struct/queue.bench | 232 + modules/struct/queue.man | 96 + modules/struct/queue.tcl | 187 + modules/struct/queue.test | 107 + modules/struct/queue.testsuite | 372 + modules/struct/queue/ds.h | 35 + modules/struct/queue/m.c | 502 + modules/struct/queue/m.h | 26 + modules/struct/queue/ms.c | 76 + modules/struct/queue/ms.h | 20 + modules/struct/queue/q.c | 47 + modules/struct/queue/q.h | 22 + modules/struct/queue/util.h | 41 + modules/struct/queue_c.tcl | 151 + modules/struct/queue_oo.tcl | 228 + modules/struct/queue_tcl.tcl | 383 + modules/struct/record.html | 436 + modules/struct/record.man | 393 + modules/struct/record.tcl | 778 + modules/struct/record.test | 467 + modules/struct/sets.bench | 428 + modules/struct/sets.tcl | 189 + modules/struct/sets.test | 121 + modules/struct/sets.testsuite | 529 + modules/struct/sets/ds.h | 24 + modules/struct/sets/m.c | 772 + modules/struct/sets/m.h | 33 + modules/struct/sets/s.c | 458 + modules/struct/sets/s.h | 40 + modules/struct/sets_c.tcl | 93 + modules/struct/sets_tcl.tcl | 452 + modules/struct/skiplist.man | 86 + modules/struct/skiplist.tcl | 437 + modules/struct/skiplist.test | 335 + modules/struct/stack.bench | 244 + modules/struct/stack.man | 108 + modules/struct/stack.tcl | 187 + modules/struct/stack.test | 106 + modules/struct/stack.testsuite | 641 + modules/struct/stack/ds.h | 36 + modules/struct/stack/m.c | 382 + modules/struct/stack/m.h | 28 + modules/struct/stack/ms.c | 79 + modules/struct/stack/ms.h | 20 + modules/struct/stack/s.c | 133 + modules/struct/stack/s.h | 24 + modules/struct/stack/util.h | 41 + modules/struct/stack_c.tcl | 156 + modules/struct/stack_oo.tcl | 296 + modules/struct/stack_tcl.tcl | 505 + modules/struct/struct.tcl | 18 + modules/struct/struct1.tcl | 17 + modules/struct/struct_list.man | 830 ++ modules/struct/struct_set.man | 136 + modules/struct/struct_tree.man | 792 + modules/struct/struct_tree1.man | 292 + modules/struct/tree.bench | 548 + modules/struct/tree.tcl | 183 + modules/struct/tree.test | 73 + modules/struct/tree.testsuite | 3811 +++++ modules/struct/tree.testsuite.4417=84tcl.txt | 32 + modules/struct/tree.testsuite.4417a83critcl.txt | 14 + modules/struct/tree.testsuite.4417a84tcl.txt | 27 + modules/struct/tree.testsuite.4417b84.txt | 27 + modules/struct/tree/ds.h | 111 + modules/struct/tree/m.c | 2908 ++++ modules/struct/tree/m.h | 59 + modules/struct/tree/ms.c | 379 + modules/struct/tree/ms.h | 29 + modules/struct/tree/shimmer.c | 147 + modules/struct/tree/t.c | 440 + modules/struct/tree/t.h | 59 + modules/struct/tree/tests/Xsupport | 157 + modules/struct/tree/tn.c | 1147 ++ modules/struct/tree/tn.h | 63 + modules/struct/tree/util.c | 115 + modules/struct/tree/util.h | 65 + modules/struct/tree/walk.c | 709 + modules/struct/tree1.tcl | 1485 ++ modules/struct/tree1.test | 1352 ++ modules/struct/tree_c.tcl | 208 + modules/struct/tree_tcl.tcl | 2442 ++++ modules/tar/ChangeLog | 186 + modules/tar/pkgIndex.tcl | 5 + modules/tar/tar.man | 167 + modules/tar/tar.pcx | 83 + modules/tar/tar.tcl | 540 + modules/tar/tar.test | 119 + modules/tar/tests/support.tcl | 126 + modules/tcllibc.tcl | 12 + modules/tepam/ChangeLog | 104 + modules/tepam/adbox_all.test | 156 + modules/tepam/adbox_widgets.test | 456 + modules/tepam/bug_fixes.test | 110 + modules/tepam/doc_gen.test | 150 + modules/tepam/pkgIndex.tcl | 3 + modules/tepam/proc_call_arg_nun.test | 451 + modules/tepam/proc_call_arg_type.test | 312 + modules/tepam/proc_call_arg_unn.test | 547 + modules/tepam/proc_call_arg_valid.test | 273 + modules/tepam/proc_interactive.test | 402 + modules/tepam/proc_namespaces.test | 229 + modules/tepam/proc_subproc.test | 197 + modules/tepam/tepam.tcl | 2762 ++++ modules/tepam/tepam_argument_dialogbox.man | 570 + modules/tepam/tepam_doc_gen.man | 301 + modules/tepam/tepam_doc_gen.tcl | 747 + modules/tepam/tepam_introduction.man | 313 + modules/tepam/tepam_procedure.man | 883 ++ modules/term/ChangeLog | 164 + modules/term/ansi/code.tcl | 56 + modules/term/ansi/code/attr.tcl | 108 + modules/term/ansi/code/ctrl.tcl | 270 + modules/term/ansi/code/macros.tcl | 93 + modules/term/ansi/ctrlunix.tcl | 91 + modules/term/ansi/send.tcl | 92 + modules/term/ansi_cattr.man | 83 + modules/term/ansi_cctrl.man | 199 + modules/term/ansi_cmacros.man | 66 + modules/term/ansi_code.man | 46 + modules/term/ansi_ctrlu.man | 79 + modules/term/ansi_send.man | 266 + modules/term/bind.tcl | 132 + modules/term/imenu.man | 155 + modules/term/imenu.tcl | 202 + modules/term/ipager.man | 154 + modules/term/ipager.tcl | 206 + modules/term/pkgIndex.tcl | 13 + modules/term/receive.man | 77 + modules/term/receive.tcl | 60 + modules/term/send.tcl | 34 + modules/term/term.man | 20 + modules/term/term.tcl | 19 + modules/term/term_bind.man | 124 + modules/term/term_send.man | 36 + modules/textutil/ChangeLog | 569 + modules/textutil/adjust.man | 208 + modules/textutil/adjust.tcl | 761 + modules/textutil/adjust.test | 398 + modules/textutil/adjust_hyph.test | 132 + modules/textutil/dehypht.tex | 902 ++ modules/textutil/eshyph_vo.tex | 1104 ++ modules/textutil/expander.ehtml | 362 + modules/textutil/expander.html | 367 + modules/textutil/expander.man | 511 + modules/textutil/expander.tcl | 1122 ++ modules/textutil/expander.test | 368 + modules/textutil/expander_license.txt | 38 + modules/textutil/expander_notes.txt | 47 + modules/textutil/ithyph.tex | 223 + modules/textutil/pkgIndex.tcl | 12 + modules/textutil/repeat.man | 46 + modules/textutil/repeat.tcl | 91 + modules/textutil/repeat.test | 62 + modules/textutil/split.tcl | 167 + modules/textutil/split.test | 158 + modules/textutil/string.bench | 116 + modules/textutil/string.tcl | 144 + modules/textutil/tabify.man | 72 + modules/textutil/tabify.tcl | 289 + modules/textutil/tabify.test | 156 + modules/textutil/textutil.man | 388 + modules/textutil/textutil.tcl | 79 + modules/textutil/textutil.test | 166 + modules/textutil/textutil_adjust.pcx | 54 + modules/textutil/textutil_repeat.pcx | 31 + modules/textutil/textutil_split.man | 53 + modules/textutil/textutil_split.pcx | 32 + modules/textutil/textutil_string.man | 73 + modules/textutil/textutil_string.pcx | 46 + modules/textutil/textutil_tabify.pcx | 42 + modules/textutil/textutil_trim.pcx | 46 + modules/textutil/trim.man | 75 + modules/textutil/trim.tcl | 112 + modules/textutil/trim.test | 177 + modules/tie/ChangeLog | 253 + modules/tie/pkgIndex.tcl | 9 + modules/tie/tie.man | 535 + modules/tie/tie.tcl | 511 + modules/tie/tie.test | 557 + modules/tie/tie_array.tcl | 124 + modules/tie/tie_array.test | 301 + modules/tie/tie_dsource.tcl | 54 + modules/tie/tie_file.tcl | 273 + modules/tie/tie_file.test | 392 + modules/tie/tie_growfile.tcl | 147 + modules/tie/tie_growfile.test | 345 + modules/tie/tie_log.tcl | 95 + modules/tie/tie_log.test | 240 + modules/tie/tie_rarray.tcl | 118 + modules/tie/tie_rarray.test | 331 + modules/tie/tie_rarray_comm.test | 218 + modules/tie/tie_std.man | 35 + modules/tie/tie_template.txt | 100 + modules/tiff/ChangeLog | 103 + modules/tiff/pkgIndex.tcl | 2 + modules/tiff/testimages/IMG_7898.tiff | Bin 0 -> 62561 bytes modules/tiff/testimages/IMG_7917.tiff | Bin 0 -> 41545 bytes modules/tiff/testimages/IMG_7950.tiff | Bin 0 -> 35359 bytes modules/tiff/tiff.man | 174 + modules/tiff/tiff.tcl | 787 + modules/tiff/tiff.test | 556 + modules/tool/ensemble.tcl | 343 + modules/tool/event.tcl | 163 + modules/tool/index.tcl | 59 + modules/tool/meta.man | 165 + modules/tool/metaclass.tcl | 525 + modules/tool/module.shed | 8 + modules/tool/option.tcl | 168 + modules/tool/organ.tcl | 32 + modules/tool/pipeline.tcl | 174 + modules/tool/pkgIndex.tcl | 12 + modules/tool/script.tcl | 36 + modules/tool/tool.demo | 65 + modules/tool/tool.man | 233 + modules/tool/tool.md | 149 + modules/tool/tool.test | 339 + modules/tool/tool_dict_ensemble.man | 34 + modules/tool/uuid.tcl | 58 + modules/tool_datatype/datatype.tcl | 434 + modules/tool_datatype/pkgIndex.tcl | 2 + modules/transfer/ChangeLog | 193 + modules/transfer/connect.man | 168 + modules/transfer/connect.tcl | 97 + modules/transfer/copyops.man | 163 + modules/transfer/copyops.tcl | 389 + modules/transfer/ddest.man | 122 + modules/transfer/ddest.tcl | 169 + modules/transfer/dsource.man | 154 + modules/transfer/dsource.tcl | 183 + modules/transfer/include/complete.inc | 9 + modules/transfer/include/connect_options.inc | 63 + modules/transfer/include/connect_result.inc | 4 + modules/transfer/include/connect_result_ref.inc | 4 + modules/transfer/include/ddest_options.inc | 27 + modules/transfer/include/dsource_options.inc | 35 + modules/transfer/include/secure.inc | 18 + modules/transfer/pkgIndex.tcl | 8 + modules/transfer/receiver.man | 191 + modules/transfer/receiver.tcl | 188 + modules/transfer/tqueue.man | 174 + modules/transfer/tqueue.tcl | 223 + modules/transfer/transmitter.man | 184 + modules/transfer/transmitter.tcl | 176 + modules/treeql/ChangeLog | 192 + modules/treeql/IDEAS.txt | 183 + modules/treeql/docs/api+xhtml.dtd | 21 + modules/treeql/docs/api.css | 78 + modules/treeql/docs/api.dtd | 19 + modules/treeql/docs/index.html | 45 + modules/treeql/docs/treeapi.xml | 98 + modules/treeql/docs/treeql-int.xml | 74 + modules/treeql/docs/treeql-low.xml | 103 + modules/treeql/docs/treeql.xml | 376 + modules/treeql/pkgIndex.tcl | 5 + modules/treeql/treeql.man | 819 ++ modules/treeql/treeql.tcl | 24 + modules/treeql/treeql.test | 43 + modules/treeql/treeql.testsuite | 448 + modules/treeql/treeql84.tcl | 734 + modules/treeql/treeql85.tcl | 737 + modules/try/ChangeLog | 22 + modules/try/pkgIndex.tcl | 13 + modules/try/tcllib_throw.man | 39 + modules/try/tcllib_try.man | 122 + modules/try/throw.tcl | 18 + modules/try/try.tcl | 205 + modules/uev/ChangeLog | 103 + modules/uev/pkgIndex.tcl | 3 + modules/uev/uevent.man | 196 + modules/uev/uevent.pcx | 58 + modules/uev/uevent.tcl | 470 + modules/uev/uevent.test | 478 + modules/uev/uevent_onidle.man | 64 + modules/uev/uevent_onidle.pcx | 27 + modules/uev/uevent_onidle.tcl | 51 + modules/units/ChangeLog | 163 + modules/units/pkgIndex.tcl | 4 + modules/units/units.man | 392 + modules/units/units.pcx | 38 + modules/units/units.tcl | 690 + modules/units/units.test | 522 + modules/uri/ChangeLog | 413 + modules/uri/pkgIndex.tcl | 6 + modules/uri/uri-rfc2396.test | 208 + modules/uri/uri.man | 197 + modules/uri/uri.tcl | 1050 ++ modules/uri/uri.test | 526 + modules/uri/uri_urn.pcx | 27 + modules/uri/urn-scheme.man | 41 + modules/uri/urn-scheme.tcl | 143 + modules/uri/urn.test | 175 + modules/uuid/ChangeLog | 110 + modules/uuid/pkgIndex.tcl | 8 + modules/uuid/uuid.man | 54 + modules/uuid/uuid.tcl | 238 + modules/uuid/uuid.test | 96 + modules/valtype/ChangeLog | 79 + modules/valtype/cc_amex.man | 14 + modules/valtype/cc_amex.tcl | 68 + modules/valtype/cc_amex.test | 126 + modules/valtype/cc_discover.man | 14 + modules/valtype/cc_discover.tcl | 70 + modules/valtype/cc_discover.test | 126 + modules/valtype/cc_mastercard.man | 14 + modules/valtype/cc_mastercard.tcl | 68 + modules/valtype/cc_mastercard.test | 126 + modules/valtype/cc_visa.man | 14 + modules/valtype/cc_visa.tcl | 69 + modules/valtype/cc_visa.test | 130 + modules/valtype/ean13.man | 14 + modules/valtype/ean13.tcl | 99 + modules/valtype/ean13.test | 122 + modules/valtype/iban.man | 14 + modules/valtype/iban.tcl | 91 + modules/valtype/iban.test | 171 + modules/valtype/imei.man | 14 + modules/valtype/imei.tcl | 66 + modules/valtype/imei.test | 85 + modules/valtype/include/c_length.inc | 3 + modules/valtype/include/c_lenpfx.inc | 6 + modules/valtype/include/errorcodes.inc | 31 + modules/valtype/include/k_amex.inc | 4 + modules/valtype/include/k_discover.inc | 4 + modules/valtype/include/k_ean13.inc | 2 + modules/valtype/include/k_iban.inc | 2 + modules/valtype/include/k_imei.inc | 3 + modules/valtype/include/k_isbn.inc | 3 + modules/valtype/include/k_luhn.inc | 1 + modules/valtype/include/k_luhn5.inc | 1 + modules/valtype/include/k_mastercard.inc | 4 + modules/valtype/include/k_usnpi.inc | 2 + modules/valtype/include/k_verhoeff.inc | 1 + modules/valtype/include/k_visa.inc | 4 + modules/valtype/include/m_isbn.inc | 8 + modules/valtype/include/null.inc | 0 modules/valtype/include/r_luhn.inc | 1 + modules/valtype/include/vtype.inc | 102 + modules/valtype/isbn.man | 14 + modules/valtype/isbn.tcl | 176 + modules/valtype/isbn.test | 127 + modules/valtype/luhn.man | 14 + modules/valtype/luhn.tcl | 128 + modules/valtype/luhn.test | 92 + modules/valtype/luhn5.man | 14 + modules/valtype/luhn5.tcl | 140 + modules/valtype/luhn5.test | 115 + modules/valtype/pkgIndex.tcl | 13 + modules/valtype/usnpi.man | 14 + modules/valtype/usnpi.tcl | 65 + modules/valtype/usnpi.test | 102 + modules/valtype/valtype.tcl | 77 + modules/valtype/valtype_common.man | 110 + modules/valtype/valtype_common.pcx | 44 + modules/valtype/valtype_creditcard_amex.pcx | 27 + modules/valtype/valtype_creditcard_discover.pcx | 27 + modules/valtype/valtype_creditcard_mastercard.pcx | 27 + modules/valtype/valtype_creditcard_visa.pcx | 27 + modules/valtype/valtype_gs1_ean13.pcx | 27 + modules/valtype/valtype_imei.pcx | 27 + modules/valtype/valtype_isbn.pcx | 30 + modules/valtype/valtype_luhn.pcx | 29 + modules/valtype/valtype_luhn5.pcx | 29 + modules/valtype/valtype_usnpi.pcx | 27 + modules/valtype/valtype_verhoeff.pcx | 29 + modules/valtype/verhoeff.man | 14 + modules/valtype/verhoeff.tcl | 128 + modules/valtype/verhoeff.test | 92 + modules/virtchannel_base/ChangeLog | 120 + modules/virtchannel_base/README.txt | 44 + modules/virtchannel_base/cat.man | 47 + modules/virtchannel_base/cat.tcl | 139 + modules/virtchannel_base/facade.man | 73 + modules/virtchannel_base/facade.tcl | 234 + modules/virtchannel_base/fifo.tcl | 138 + modules/virtchannel_base/fifo2.tcl | 111 + modules/virtchannel_base/halfpipe.man | 81 + modules/virtchannel_base/halfpipe.tcl | 168 + modules/virtchannel_base/memchan.tcl | 168 + modules/virtchannel_base/null.tcl | 54 + modules/virtchannel_base/nullzero.man | 44 + modules/virtchannel_base/nullzero.tcl | 62 + modules/virtchannel_base/pkgIndex.tcl | 17 + modules/virtchannel_base/random.tcl | 80 + modules/virtchannel_base/randseed.man | 43 + modules/virtchannel_base/randseed.tcl | 58 + modules/virtchannel_base/std.man | 43 + modules/virtchannel_base/std.tcl | 97 + modules/virtchannel_base/string.tcl | 124 + modules/virtchannel_base/tcllib_fifo.man | 43 + modules/virtchannel_base/tcllib_fifo2.man | 50 + modules/virtchannel_base/tcllib_memchan.man | 44 + modules/virtchannel_base/tcllib_null.man | 45 + modules/virtchannel_base/tcllib_random.man | 46 + modules/virtchannel_base/tcllib_string.man | 45 + modules/virtchannel_base/tcllib_variable.man | 46 + modules/virtchannel_base/tcllib_zero.man | 45 + modules/virtchannel_base/textwindow.man | 39 + modules/virtchannel_base/textwindow.tcl | 74 + modules/virtchannel_base/variable.tcl | 181 + modules/virtchannel_base/zero.tcl | 54 + modules/virtchannel_core/ChangeLog | 39 + modules/virtchannel_core/README.txt | 5 + modules/virtchannel_core/core.man | 72 + modules/virtchannel_core/core.tcl | 73 + modules/virtchannel_core/events.man | 79 + modules/virtchannel_core/events.tcl | 154 + modules/virtchannel_core/pkgIndex.tcl | 8 + modules/virtchannel_core/transformcore.man | 72 + modules/virtchannel_core/transformcore.tcl | 71 + modules/virtchannel_transform/ChangeLog | 53 + modules/virtchannel_transform/README.txt | 38 + modules/virtchannel_transform/adler32.man | 70 + modules/virtchannel_transform/adler32.tcl | 103 + modules/virtchannel_transform/base64.tcl | 111 + modules/virtchannel_transform/counter.tcl | 94 + modules/virtchannel_transform/crc32.tcl | 103 + modules/virtchannel_transform/hex.man | 43 + modules/virtchannel_transform/hex.tcl | 58 + modules/virtchannel_transform/identity.man | 50 + modules/virtchannel_transform/identity.tcl | 59 + modules/virtchannel_transform/limitsize.man | 46 + modules/virtchannel_transform/limitsize.tcl | 88 + modules/virtchannel_transform/observe.man | 50 + modules/virtchannel_transform/observe.tcl | 80 + modules/virtchannel_transform/otp.tcl | 98 + modules/virtchannel_transform/pkgIndex.tcl | 14 + modules/virtchannel_transform/rot.man | 57 + modules/virtchannel_transform/rot.tcl | 95 + modules/virtchannel_transform/spacer.man | 45 + modules/virtchannel_transform/spacer.tcl | 151 + modules/virtchannel_transform/tcllib_zlib.man | 46 + modules/virtchannel_transform/vt_base64.man | 44 + modules/virtchannel_transform/vt_counter.man | 68 + modules/virtchannel_transform/vt_crc32.man | 70 + modules/virtchannel_transform/vt_otp.man | 53 + modules/virtchannel_transform/zlib.tcl | 100 + modules/websocket/ChangeLog | 31 + modules/websocket/pkgIndex.tcl | 11 + modules/websocket/websocket.man | 385 + modules/websocket/websocket.tcl | 1754 +++ modules/wip/ChangeLog | 100 + modules/wip/pkgIndex.tcl | 5 + modules/wip/wip.man | 384 + modules/wip/wip.tcl | 463 + modules/wip/wip2.tcl | 464 + modules/yaml/06eef112da.data | 7 + modules/yaml/CHANGES | 62 + modules/yaml/ChangeLog | 52 + modules/yaml/huddle.man | 558 + modules/yaml/huddle.tcl | 646 + modules/yaml/huddle.test | 363 + modules/yaml/huddle_types.tcl | 296 + modules/yaml/json2huddle.tcl | 389 + modules/yaml/json2huddle.test | 181 + modules/yaml/layers.txt | 224 + modules/yaml/pkgIndex.tcl | 6 + modules/yaml/rb.test | 654 + modules/yaml/yaml.bench | 87 + modules/yaml/yaml.man | 189 + modules/yaml/yaml.tcl | 1283 ++ modules/yaml/yaml.test | 775 + modules/zip/ChangeLog | 30 + modules/zip/decode.man | 135 + modules/zip/decode.tcl | 690 + modules/zip/encode.man | 92 + modules/zip/encode.tcl | 372 + modules/zip/mkzip.man | 104 + modules/zip/mkzip.tcl | 282 + modules/zip/pkgIndex.tcl | 8 + project.shed | 9501 ++++++++++++ sak.tcl | 2434 ++++ support/devel/all.tcl | 234 + support/devel/sak/doc/cmd.tcl | 44 + support/devel/sak/doc/doc.tcl | 262 + support/devel/sak/doc/doc_auto.tcl | 311 + support/devel/sak/doc/help.txt | 42 + support/devel/sak/doc/kwic.txt | 3762 +++++ support/devel/sak/doc/manpages.txt | 421 + support/devel/sak/doc/pkgIndex.tcl | 4 + support/devel/sak/doc/toc.txt | 1144 ++ support/devel/sak/doc/toc_apps.txt | 11 + support/devel/sak/doc/toc_cats.txt | 479 + support/devel/sak/doc/toc_mods.txt | 656 + support/devel/sak/doc/topic.txt | 1 + support/devel/sak/help/cmd.tcl | 25 + support/devel/sak/help/help.tcl | 75 + support/devel/sak/help/help.txt | 8 + support/devel/sak/help/pkgIndex.tcl | 4 + support/devel/sak/help/topic.txt | 1 + support/devel/sak/localdoc/cmd.tcl | 21 + support/devel/sak/localdoc/help.txt | 8 + support/devel/sak/localdoc/localdoc.tcl | 129 + support/devel/sak/localdoc/pkgIndex.tcl | 2 + support/devel/sak/localdoc/topic.txt | 2 + support/devel/sak/old/help.txt | 102 + support/devel/sak/old/topic.txt | 1 + support/devel/sak/readme/cmd.tcl | 25 + support/devel/sak/readme/help.txt | 14 + support/devel/sak/readme/pkgIndex.tcl | 2 + support/devel/sak/readme/readme.tcl | 448 + support/devel/sak/readme/topic.txt | 2 + support/devel/sak/registry/pkgIndex.tcl | 2 + support/devel/sak/registry/registry.man | 171 + support/devel/sak/registry/registry.tcl | 287 + support/devel/sak/registry/registry.test | 450 + support/devel/sak/review/cmd.tcl | 25 + support/devel/sak/review/help.txt | 10 + support/devel/sak/review/pkgIndex.tcl | 2 + support/devel/sak/review/review.tcl | 964 ++ support/devel/sak/review/topic.txt | 1 + support/devel/sak/test/cmd.tcl | 28 + support/devel/sak/test/help.txt | 46 + support/devel/sak/test/pkgIndex.tcl | 5 + support/devel/sak/test/run.tcl | 880 ++ support/devel/sak/test/shell.tcl | 94 + support/devel/sak/test/shells.tcl | 24 + support/devel/sak/test/test.tcl | 19 + support/devel/sak/test/topic.txt | 1 + support/devel/sak/util/anim.tcl | 64 + support/devel/sak/util/color.tcl | 54 + support/devel/sak/util/feedback.tcl | 182 + support/devel/sak/util/pkgIndex.tcl | 6 + support/devel/sak/util/registry.tcl | 59 + support/devel/sak/util/util.tcl | 72 + support/devel/sak/validate/cmd.tcl | 70 + support/devel/sak/validate/help.txt | 53 + support/devel/sak/validate/manpages.tcl | 464 + support/devel/sak/validate/pkgIndex.tcl | 6 + support/devel/sak/validate/syntax.tcl | 668 + support/devel/sak/validate/testsuites.tcl | 512 + support/devel/sak/validate/topic.txt | 1 + support/devel/sak/validate/validate.tcl | 37 + support/devel/sak/validate/versions.tcl | 258 + support/fossil-nav-integration.html | 91 + support/installation/actions.tcl | 112 + support/installation/main.tcl | 5 + support/installation/man.macros | 267 + support/installation/modules.tcl | 173 + support/installation/version.tcl | 30 + support/releases/PACKAGES | 424 + support/releases/history/README-1.10.txt | 278 + support/releases/history/README-1.11.1.txt | 59 + support/releases/history/README-1.11.txt | 274 + support/releases/history/README-1.12.txt | 271 + support/releases/history/README-1.13.txt | 272 + support/releases/history/README-1.14.txt | 219 + support/releases/history/README-1.15.txt | 220 + support/releases/history/README-1.16.txt | 516 + support/releases/history/README-1.17.txt | 315 + support/releases/history/README-1.18.txt | 263 + support/releases/history/README-1.4.txt | 99 + support/releases/history/README-1.6.1.txt | 47 + support/releases/history/README-1.6.txt | 88 + support/releases/history/README-1.7.txt | 141 + support/releases/history/README-1.8.txt | 203 + support/releases/history/README-1.9.txt | 164 + support/releases/package_rpm.txt | 57 + support/releases/package_tip55.txt | 9 + support/releases/package_yml.txt | 20 + support/shed.tcl | 40 + tcllib.spec | 57 + tcllib.tap | 4812 +++++++ tcllib.yml | 20 + 5731 files changed, 1381170 insertions(+) create mode 100644 ChangeLog create mode 100644 DESCRIPTION.txt create mode 100644 INSTALL.txt create mode 100644 Makefile.in create mode 100644 README create mode 100644 README.developer create mode 100644 README.releasemgr create mode 100644 STATUS create mode 100644 aclocal.m4 create mode 100755 apps/dtplite create mode 100644 apps/dtplite.man create mode 100755 apps/nns create mode 100644 apps/nns.man create mode 100755 apps/nnsd create mode 100644 apps/nnsd.man create mode 100755 apps/nnslog create mode 100644 apps/nnslog.man create mode 100755 apps/page create mode 100644 apps/page.man create mode 100755 apps/pt create mode 100644 apps/pt.man create mode 100755 apps/tcldocstrip create mode 100644 apps/tcldocstrip.man create mode 100644 config/ChangeLog create mode 100644 config/config.guess create mode 100644 config/config.sub create mode 100755 config/install-sh create mode 100755 config/installFile.tcl create mode 100755 config/mkinstalldirs create mode 100644 config/tcl.m4 create mode 100755 configure create mode 100644 configure.in create mode 100644 devdoc/critcl-tcllib.txt create mode 100644 devdoc/cvs.branches.fig create mode 100644 devdoc/devguide.html create mode 100644 devdoc/dirlayout_install.txt create mode 100644 devdoc/indexing.txt create mode 100644 devdoc/installation.txt create mode 100644 devdoc/releaseguide.html create mode 100644 embedded/index.html create mode 100644 embedded/www/image/arch_core_container.png create mode 100644 embedded/www/image/arch_core_eplugins.png create mode 100644 embedded/www/image/arch_core_export.png create mode 100644 embedded/www/image/arch_core_import.png create mode 100644 embedded/www/image/arch_core_iplugins.png create mode 100644 embedded/www/image/arch_core_support.png create mode 100644 embedded/www/image/arch_core_transform.png create mode 100644 embedded/www/image/arch_user_app.png create mode 100644 embedded/www/image/arch_user_pkg.png create mode 100644 embedded/www/image/architecture.png create mode 100644 embedded/www/image/expr_ast.png create mode 100644 embedded/www/image/flow.png create mode 100644 embedded/www/image/gen_options.png create mode 100644 embedded/www/index.html create mode 100644 embedded/www/tcllib/files/apps/dtplite.html create mode 100644 embedded/www/tcllib/files/apps/nns.html create mode 100644 embedded/www/tcllib/files/apps/nnsd.html create mode 100644 embedded/www/tcllib/files/apps/nnslog.html create mode 100644 embedded/www/tcllib/files/apps/page.html create mode 100644 embedded/www/tcllib/files/apps/pt.html create mode 100644 embedded/www/tcllib/files/apps/tcldocstrip.html create mode 100644 embedded/www/tcllib/files/modules/aes/aes.html create mode 100644 embedded/www/tcllib/files/modules/amazon-s3/S3.html create mode 100644 embedded/www/tcllib/files/modules/amazon-s3/xsxp.html create mode 100644 embedded/www/tcllib/files/modules/asn/asn.html create mode 100644 embedded/www/tcllib/files/modules/base32/base32.html create mode 100644 embedded/www/tcllib/files/modules/base32/base32core.html create mode 100644 embedded/www/tcllib/files/modules/base32/base32hex.html create mode 100644 embedded/www/tcllib/files/modules/base64/ascii85.html create mode 100644 embedded/www/tcllib/files/modules/base64/base64.html create mode 100644 embedded/www/tcllib/files/modules/base64/uuencode.html create mode 100644 embedded/www/tcllib/files/modules/base64/yencode.html create mode 100644 embedded/www/tcllib/files/modules/bee/bee.html create mode 100644 embedded/www/tcllib/files/modules/bench/bench.html create mode 100644 embedded/www/tcllib/files/modules/bench/bench_intro.html create mode 100644 embedded/www/tcllib/files/modules/bench/bench_lang_intro.html create mode 100644 embedded/www/tcllib/files/modules/bench/bench_lang_spec.html create mode 100644 embedded/www/tcllib/files/modules/bench/bench_read.html create mode 100644 embedded/www/tcllib/files/modules/bench/bench_wcsv.html create mode 100644 embedded/www/tcllib/files/modules/bench/bench_wtext.html create mode 100644 embedded/www/tcllib/files/modules/bibtex/bibtex.html create mode 100644 embedded/www/tcllib/files/modules/blowfish/blowfish.html create mode 100644 embedded/www/tcllib/files/modules/cache/async.html create mode 100644 embedded/www/tcllib/files/modules/clock/iso8601.html create mode 100644 embedded/www/tcllib/files/modules/clock/rfc2822.html create mode 100644 embedded/www/tcllib/files/modules/cmdline/cmdline.html create mode 100644 embedded/www/tcllib/files/modules/comm/comm.html create mode 100644 embedded/www/tcllib/files/modules/comm/comm_wire.html create mode 100644 embedded/www/tcllib/files/modules/control/control.html create mode 100644 embedded/www/tcllib/files/modules/coroutine/coro_auto.html create mode 100644 embedded/www/tcllib/files/modules/coroutine/tcllib_coroutine.html create mode 100644 embedded/www/tcllib/files/modules/counter/counter.html create mode 100644 embedded/www/tcllib/files/modules/crc/cksum.html create mode 100644 embedded/www/tcllib/files/modules/crc/crc16.html create mode 100644 embedded/www/tcllib/files/modules/crc/crc32.html create mode 100644 embedded/www/tcllib/files/modules/crc/sum.html create mode 100644 embedded/www/tcllib/files/modules/cron/cron.html create mode 100644 embedded/www/tcllib/files/modules/csv/csv.html create mode 100644 embedded/www/tcllib/files/modules/debug/debug.html create mode 100644 embedded/www/tcllib/files/modules/debug/debug_caller.html create mode 100644 embedded/www/tcllib/files/modules/debug/debug_heartbeat.html create mode 100644 embedded/www/tcllib/files/modules/debug/debug_timestamp.html create mode 100644 embedded/www/tcllib/files/modules/des/des.html create mode 100644 embedded/www/tcllib/files/modules/des/tcldes.html create mode 100644 embedded/www/tcllib/files/modules/des/tcldesjr.html create mode 100644 embedded/www/tcllib/files/modules/dicttool/dicttool.html create mode 100644 embedded/www/tcllib/files/modules/dns/tcllib_dns.html create mode 100644 embedded/www/tcllib/files/modules/dns/tcllib_ip.html create mode 100644 embedded/www/tcllib/files/modules/docstrip/docstrip.html create mode 100644 embedded/www/tcllib/files/modules/docstrip/docstrip_util.html create mode 100644 embedded/www/tcllib/files/modules/doctools/changelog.html create mode 100644 embedded/www/tcllib/files/modules/doctools/cvs.html create mode 100644 embedded/www/tcllib/files/modules/doctools/docidx.html create mode 100644 embedded/www/tcllib/files/modules/doctools/docidx_intro.html create mode 100644 embedded/www/tcllib/files/modules/doctools/docidx_lang_cmdref.html create mode 100644 embedded/www/tcllib/files/modules/doctools/docidx_lang_faq.html create mode 100644 embedded/www/tcllib/files/modules/doctools/docidx_lang_intro.html create mode 100644 embedded/www/tcllib/files/modules/doctools/docidx_lang_syntax.html create mode 100644 embedded/www/tcllib/files/modules/doctools/docidx_plugin_apiref.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctoc.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctoc_intro.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctoc_lang_cmdref.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctoc_lang_faq.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctoc_lang_intro.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctoc_lang_syntax.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctoc_plugin_apiref.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctools.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctools_intro.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctools_lang_cmdref.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctools_lang_faq.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctools_lang_intro.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctools_lang_syntax.html create mode 100644 embedded/www/tcllib/files/modules/doctools/doctools_plugin_apiref.html create mode 100644 embedded/www/tcllib/files/modules/doctools/mpexpand.html create mode 100644 embedded/www/tcllib/files/modules/doctools2base/html_cssdefaults.html create mode 100644 embedded/www/tcllib/files/modules/doctools2base/nroff_manmacros.html create mode 100644 embedded/www/tcllib/files/modules/doctools2base/tcl_parse.html create mode 100644 embedded/www/tcllib/files/modules/doctools2base/tcllib_msgcat.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/export_docidx.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_container.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_export.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_export_html.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_export_json.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_export_nroff.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_export_text.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_export_wiki.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_import.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_import_json.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_introduction.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_msgcat_c.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_msgcat_de.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_msgcat_en.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_msgcat_fr.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_parse.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/idx_structure.html create mode 100644 embedded/www/tcllib/files/modules/doctools2idx/import_docidx.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/export_doctoc.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/import_doctoc.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_container.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_export.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_export_html.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_export_json.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_export_nroff.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_export_text.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_export_wiki.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_import.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_import_json.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_introduction.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_msgcat_c.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_msgcat_de.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_msgcat_en.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_msgcat_fr.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_parse.html create mode 100644 embedded/www/tcllib/files/modules/doctools2toc/toc_structure.html create mode 100644 embedded/www/tcllib/files/modules/dtplite/pkg_dtplite.html create mode 100644 embedded/www/tcllib/files/modules/fileutil/fileutil.html create mode 100644 embedded/www/tcllib/files/modules/fileutil/multi.html create mode 100644 embedded/www/tcllib/files/modules/fileutil/multiop.html create mode 100644 embedded/www/tcllib/files/modules/fileutil/traverse.html create mode 100644 embedded/www/tcllib/files/modules/ftp/ftp.html create mode 100644 embedded/www/tcllib/files/modules/ftp/ftp_geturl.html create mode 100644 embedded/www/tcllib/files/modules/ftpd/ftpd.html create mode 100644 embedded/www/tcllib/files/modules/fumagic/cfront.html create mode 100644 embedded/www/tcllib/files/modules/fumagic/cgen.html create mode 100644 embedded/www/tcllib/files/modules/fumagic/filetypes.html create mode 100644 embedded/www/tcllib/files/modules/fumagic/mimetypes.html create mode 100644 embedded/www/tcllib/files/modules/fumagic/rtcore.html create mode 100644 embedded/www/tcllib/files/modules/generator/generator.html create mode 100644 embedded/www/tcllib/files/modules/gpx/gpx.html create mode 100644 embedded/www/tcllib/files/modules/grammar_aycock/aycock.html create mode 100644 embedded/www/tcllib/files/modules/grammar_fa/dacceptor.html create mode 100644 embedded/www/tcllib/files/modules/grammar_fa/dexec.html create mode 100644 embedded/www/tcllib/files/modules/grammar_fa/fa.html create mode 100644 embedded/www/tcllib/files/modules/grammar_fa/faop.html create mode 100644 embedded/www/tcllib/files/modules/grammar_me/gasm.html create mode 100644 embedded/www/tcllib/files/modules/grammar_me/me_ast.html create mode 100644 embedded/www/tcllib/files/modules/grammar_me/me_cpu.html create mode 100644 embedded/www/tcllib/files/modules/grammar_me/me_cpucore.html create mode 100644 embedded/www/tcllib/files/modules/grammar_me/me_intro.html create mode 100644 embedded/www/tcllib/files/modules/grammar_me/me_tcl.html create mode 100644 embedded/www/tcllib/files/modules/grammar_me/me_util.html create mode 100644 embedded/www/tcllib/files/modules/grammar_me/me_vm.html create mode 100644 embedded/www/tcllib/files/modules/grammar_peg/peg.html create mode 100644 embedded/www/tcllib/files/modules/grammar_peg/peg_interp.html create mode 100644 embedded/www/tcllib/files/modules/hook/hook.html create mode 100644 embedded/www/tcllib/files/modules/html/html.html create mode 100644 embedded/www/tcllib/files/modules/htmlparse/htmlparse.html create mode 100644 embedded/www/tcllib/files/modules/http/autoproxy.html create mode 100644 embedded/www/tcllib/files/modules/ident/ident.html create mode 100644 embedded/www/tcllib/files/modules/imap4/imap4.html create mode 100644 embedded/www/tcllib/files/modules/inifile/ini.html create mode 100644 embedded/www/tcllib/files/modules/interp/deleg_method.html create mode 100644 embedded/www/tcllib/files/modules/interp/deleg_proc.html create mode 100644 embedded/www/tcllib/files/modules/interp/tcllib_interp.html create mode 100644 embedded/www/tcllib/files/modules/irc/irc.html create mode 100644 embedded/www/tcllib/files/modules/irc/picoirc.html create mode 100644 embedded/www/tcllib/files/modules/javascript/javascript.html create mode 100644 embedded/www/tcllib/files/modules/jpeg/jpeg.html create mode 100644 embedded/www/tcllib/files/modules/json/json.html create mode 100644 embedded/www/tcllib/files/modules/json/json_write.html create mode 100644 embedded/www/tcllib/files/modules/lambda/lambda.html create mode 100644 embedded/www/tcllib/files/modules/ldap/ldap.html create mode 100644 embedded/www/tcllib/files/modules/ldap/ldapx.html create mode 100644 embedded/www/tcllib/files/modules/log/log.html create mode 100644 embedded/www/tcllib/files/modules/log/logger.html create mode 100644 embedded/www/tcllib/files/modules/log/loggerAppender.html create mode 100644 embedded/www/tcllib/files/modules/log/loggerUtils.html create mode 100644 embedded/www/tcllib/files/modules/map/map_geocode_nominatim.html create mode 100644 embedded/www/tcllib/files/modules/map/map_slippy.html create mode 100644 embedded/www/tcllib/files/modules/map/map_slippy_cache.html create mode 100644 embedded/www/tcllib/files/modules/map/map_slippy_fetcher.html create mode 100644 embedded/www/tcllib/files/modules/mapproj/mapproj.html create mode 100644 embedded/www/tcllib/files/modules/math/bigfloat.html create mode 100644 embedded/www/tcllib/files/modules/math/bignum.html create mode 100644 embedded/www/tcllib/files/modules/math/calculus.html create mode 100644 embedded/www/tcllib/files/modules/math/combinatorics.html create mode 100644 embedded/www/tcllib/files/modules/math/constants.html create mode 100644 embedded/www/tcllib/files/modules/math/decimal.html create mode 100644 embedded/www/tcllib/files/modules/math/exact.html create mode 100644 embedded/www/tcllib/files/modules/math/fourier.html create mode 100644 embedded/www/tcllib/files/modules/math/fuzzy.html create mode 100644 embedded/www/tcllib/files/modules/math/interpolate.html create mode 100644 embedded/www/tcllib/files/modules/math/linalg.html create mode 100644 embedded/www/tcllib/files/modules/math/machineparameters.html create mode 100644 embedded/www/tcllib/files/modules/math/math.html create mode 100644 embedded/www/tcllib/files/modules/math/math_geometry.html create mode 100644 embedded/www/tcllib/files/modules/math/numtheory.html create mode 100644 embedded/www/tcllib/files/modules/math/optimize.html create mode 100644 embedded/www/tcllib/files/modules/math/polynomials.html create mode 100644 embedded/www/tcllib/files/modules/math/qcomplex.html create mode 100644 embedded/www/tcllib/files/modules/math/rational_funcs.html create mode 100644 embedded/www/tcllib/files/modules/math/roman.html create mode 100644 embedded/www/tcllib/files/modules/math/romberg.html create mode 100644 embedded/www/tcllib/files/modules/math/special.html create mode 100644 embedded/www/tcllib/files/modules/math/statistics.html create mode 100644 embedded/www/tcllib/files/modules/math/symdiff.html create mode 100644 embedded/www/tcllib/files/modules/md4/md4.html create mode 100644 embedded/www/tcllib/files/modules/md5/md5.html create mode 100644 embedded/www/tcllib/files/modules/md5crypt/md5crypt.html create mode 100644 embedded/www/tcllib/files/modules/mime/mime.html create mode 100644 embedded/www/tcllib/files/modules/mime/smtp.html create mode 100644 embedded/www/tcllib/files/modules/multiplexer/multiplexer.html create mode 100644 embedded/www/tcllib/files/modules/namespacex/namespacex.html create mode 100644 embedded/www/tcllib/files/modules/ncgi/ncgi.html create mode 100644 embedded/www/tcllib/files/modules/nettool/nettool.html create mode 100644 embedded/www/tcllib/files/modules/nmea/nmea.html create mode 100644 embedded/www/tcllib/files/modules/nns/nns_auto.html create mode 100644 embedded/www/tcllib/files/modules/nns/nns_client.html create mode 100644 embedded/www/tcllib/files/modules/nns/nns_common.html create mode 100644 embedded/www/tcllib/files/modules/nns/nns_intro.html create mode 100644 embedded/www/tcllib/files/modules/nns/nns_protocol.html create mode 100644 embedded/www/tcllib/files/modules/nns/nns_server.html create mode 100644 embedded/www/tcllib/files/modules/nntp/nntp.html create mode 100644 embedded/www/tcllib/files/modules/ntp/ntp_time.html create mode 100644 embedded/www/tcllib/files/modules/oauth/oauth.html create mode 100644 embedded/www/tcllib/files/modules/ooutil/ooutil.html create mode 100644 embedded/www/tcllib/files/modules/otp/otp.html create mode 100644 embedded/www/tcllib/files/modules/page/page_intro.html create mode 100644 embedded/www/tcllib/files/modules/page/page_pluginmgr.html create mode 100644 embedded/www/tcllib/files/modules/page/page_util_flow.html create mode 100644 embedded/www/tcllib/files/modules/page/page_util_norm_lemon.html create mode 100644 embedded/www/tcllib/files/modules/page/page_util_norm_peg.html create mode 100644 embedded/www/tcllib/files/modules/page/page_util_peg.html create mode 100644 embedded/www/tcllib/files/modules/page/page_util_quote.html create mode 100644 embedded/www/tcllib/files/modules/pki/pki.html create mode 100644 embedded/www/tcllib/files/modules/pluginmgr/pluginmgr.html create mode 100644 embedded/www/tcllib/files/modules/png/png.html create mode 100644 embedded/www/tcllib/files/modules/pop3/pop3.html create mode 100644 embedded/www/tcllib/files/modules/pop3d/pop3d.html create mode 100644 embedded/www/tcllib/files/modules/pop3d/pop3d_dbox.html create mode 100644 embedded/www/tcllib/files/modules/pop3d/pop3d_udb.html create mode 100644 embedded/www/tcllib/files/modules/processman/processman.html create mode 100644 embedded/www/tcllib/files/modules/profiler/profiler.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_astree.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_cparam_config_critcl.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_cparam_config_tea.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_from_api.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_introduction.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_json_language.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_param.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_parse_peg.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_parser_api.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_container.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_container_peg.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_export.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_export_container.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_export_json.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_export_peg.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_from_container.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_from_json.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_from_peg.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_import.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_import_container.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_import_json.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_import_peg.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_interp.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_introduction.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_language.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_op.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_to_container.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_to_cparam.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_to_json.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_to_param.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_to_peg.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_peg_to_tclparam.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_pegrammar.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_pexpr_op.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_pexpression.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_pgen.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_rdengine.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_tclparam_config_snit.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_tclparam_config_tcloo.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_to_api.html create mode 100644 embedded/www/tcllib/files/modules/pt/pt_util.html create mode 100644 embedded/www/tcllib/files/modules/rc4/rc4.html create mode 100644 embedded/www/tcllib/files/modules/rcs/rcs.html create mode 100644 embedded/www/tcllib/files/modules/report/report.html create mode 100644 embedded/www/tcllib/files/modules/rest/rest.html create mode 100644 embedded/www/tcllib/files/modules/ripemd/ripemd128.html create mode 100644 embedded/www/tcllib/files/modules/ripemd/ripemd160.html create mode 100644 embedded/www/tcllib/files/modules/sasl/gtoken.html create mode 100644 embedded/www/tcllib/files/modules/sasl/ntlm.html create mode 100644 embedded/www/tcllib/files/modules/sasl/sasl.html create mode 100644 embedded/www/tcllib/files/modules/sasl/scram.html create mode 100644 embedded/www/tcllib/files/modules/sha1/sha1.html create mode 100644 embedded/www/tcllib/files/modules/sha1/sha256.html create mode 100644 embedded/www/tcllib/files/modules/simulation/annealing.html create mode 100644 embedded/www/tcllib/files/modules/simulation/montecarlo.html create mode 100644 embedded/www/tcllib/files/modules/simulation/simulation_random.html create mode 100644 embedded/www/tcllib/files/modules/smtpd/smtpd.html create mode 100644 embedded/www/tcllib/files/modules/snit/snit.html create mode 100644 embedded/www/tcllib/files/modules/snit/snitfaq.html create mode 100644 embedded/www/tcllib/files/modules/soundex/soundex.html create mode 100644 embedded/www/tcllib/files/modules/stooop/stooop.html create mode 100644 embedded/www/tcllib/files/modules/stooop/switched.html create mode 100644 embedded/www/tcllib/files/modules/string/token.html create mode 100644 embedded/www/tcllib/files/modules/string/token_shell.html create mode 100644 embedded/www/tcllib/files/modules/stringprep/stringprep.html create mode 100644 embedded/www/tcllib/files/modules/stringprep/stringprep_data.html create mode 100644 embedded/www/tcllib/files/modules/stringprep/unicode.html create mode 100644 embedded/www/tcllib/files/modules/stringprep/unicode_data.html create mode 100644 embedded/www/tcllib/files/modules/struct/disjointset.html create mode 100644 embedded/www/tcllib/files/modules/struct/graph.html create mode 100644 embedded/www/tcllib/files/modules/struct/graph1.html create mode 100644 embedded/www/tcllib/files/modules/struct/graphops.html create mode 100644 embedded/www/tcllib/files/modules/struct/matrix.html create mode 100644 embedded/www/tcllib/files/modules/struct/matrix1.html create mode 100644 embedded/www/tcllib/files/modules/struct/pool.html create mode 100644 embedded/www/tcllib/files/modules/struct/prioqueue.html create mode 100644 embedded/www/tcllib/files/modules/struct/queue.html create mode 100644 embedded/www/tcllib/files/modules/struct/record.html create mode 100644 embedded/www/tcllib/files/modules/struct/skiplist.html create mode 100644 embedded/www/tcllib/files/modules/struct/stack.html create mode 100644 embedded/www/tcllib/files/modules/struct/struct_list.html create mode 100644 embedded/www/tcllib/files/modules/struct/struct_set.html create mode 100644 embedded/www/tcllib/files/modules/struct/struct_tree.html create mode 100644 embedded/www/tcllib/files/modules/struct/struct_tree1.html create mode 100644 embedded/www/tcllib/files/modules/tar/tar.html create mode 100644 embedded/www/tcllib/files/modules/tepam/tepam_argument_dialogbox.html create mode 100644 embedded/www/tcllib/files/modules/tepam/tepam_doc_gen.html create mode 100644 embedded/www/tcllib/files/modules/tepam/tepam_introduction.html create mode 100644 embedded/www/tcllib/files/modules/tepam/tepam_procedure.html create mode 100644 embedded/www/tcllib/files/modules/term/ansi_cattr.html create mode 100644 embedded/www/tcllib/files/modules/term/ansi_cctrl.html create mode 100644 embedded/www/tcllib/files/modules/term/ansi_cmacros.html create mode 100644 embedded/www/tcllib/files/modules/term/ansi_code.html create mode 100644 embedded/www/tcllib/files/modules/term/ansi_ctrlu.html create mode 100644 embedded/www/tcllib/files/modules/term/ansi_send.html create mode 100644 embedded/www/tcllib/files/modules/term/imenu.html create mode 100644 embedded/www/tcllib/files/modules/term/ipager.html create mode 100644 embedded/www/tcllib/files/modules/term/receive.html create mode 100644 embedded/www/tcllib/files/modules/term/term.html create mode 100644 embedded/www/tcllib/files/modules/term/term_bind.html create mode 100644 embedded/www/tcllib/files/modules/term/term_send.html create mode 100644 embedded/www/tcllib/files/modules/textutil/adjust.html create mode 100644 embedded/www/tcllib/files/modules/textutil/expander.html create mode 100644 embedded/www/tcllib/files/modules/textutil/repeat.html create mode 100644 embedded/www/tcllib/files/modules/textutil/tabify.html create mode 100644 embedded/www/tcllib/files/modules/textutil/textutil.html create mode 100644 embedded/www/tcllib/files/modules/textutil/textutil_split.html create mode 100644 embedded/www/tcllib/files/modules/textutil/textutil_string.html create mode 100644 embedded/www/tcllib/files/modules/textutil/trim.html create mode 100644 embedded/www/tcllib/files/modules/tie/tie.html create mode 100644 embedded/www/tcllib/files/modules/tie/tie_std.html create mode 100644 embedded/www/tcllib/files/modules/tiff/tiff.html create mode 100644 embedded/www/tcllib/files/modules/tool/meta.html create mode 100644 embedded/www/tcllib/files/modules/tool/tool.html create mode 100644 embedded/www/tcllib/files/modules/tool/tool_dict_ensemble.html create mode 100644 embedded/www/tcllib/files/modules/transfer/connect.html create mode 100644 embedded/www/tcllib/files/modules/transfer/copyops.html create mode 100644 embedded/www/tcllib/files/modules/transfer/ddest.html create mode 100644 embedded/www/tcllib/files/modules/transfer/dsource.html create mode 100644 embedded/www/tcllib/files/modules/transfer/receiver.html create mode 100644 embedded/www/tcllib/files/modules/transfer/tqueue.html create mode 100644 embedded/www/tcllib/files/modules/transfer/transmitter.html create mode 100644 embedded/www/tcllib/files/modules/treeql/treeql.html create mode 100644 embedded/www/tcllib/files/modules/try/tcllib_throw.html create mode 100644 embedded/www/tcllib/files/modules/try/tcllib_try.html create mode 100644 embedded/www/tcllib/files/modules/uev/uevent.html create mode 100644 embedded/www/tcllib/files/modules/uev/uevent_onidle.html create mode 100644 embedded/www/tcllib/files/modules/units/units.html create mode 100644 embedded/www/tcllib/files/modules/uri/uri.html create mode 100644 embedded/www/tcllib/files/modules/uri/urn-scheme.html create mode 100644 embedded/www/tcllib/files/modules/uuid/uuid.html create mode 100644 embedded/www/tcllib/files/modules/valtype/cc_amex.html create mode 100644 embedded/www/tcllib/files/modules/valtype/cc_discover.html create mode 100644 embedded/www/tcllib/files/modules/valtype/cc_mastercard.html create mode 100644 embedded/www/tcllib/files/modules/valtype/cc_visa.html create mode 100644 embedded/www/tcllib/files/modules/valtype/ean13.html create mode 100644 embedded/www/tcllib/files/modules/valtype/iban.html create mode 100644 embedded/www/tcllib/files/modules/valtype/imei.html create mode 100644 embedded/www/tcllib/files/modules/valtype/isbn.html create mode 100644 embedded/www/tcllib/files/modules/valtype/luhn.html create mode 100644 embedded/www/tcllib/files/modules/valtype/luhn5.html create mode 100644 embedded/www/tcllib/files/modules/valtype/usnpi.html create mode 100644 embedded/www/tcllib/files/modules/valtype/valtype_common.html create mode 100644 embedded/www/tcllib/files/modules/valtype/verhoeff.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/cat.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/facade.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/halfpipe.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/nullzero.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/randseed.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/std.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/tcllib_fifo.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/tcllib_fifo2.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/tcllib_memchan.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/tcllib_null.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/tcllib_random.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/tcllib_string.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/tcllib_variable.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/tcllib_zero.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_base/textwindow.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_core/core.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_core/events.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_core/transformcore.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/adler32.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/hex.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/identity.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/limitsize.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/observe.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/rot.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/spacer.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/tcllib_zlib.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/vt_base64.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/vt_counter.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/vt_crc32.html create mode 100644 embedded/www/tcllib/files/modules/virtchannel_transform/vt_otp.html create mode 100644 embedded/www/tcllib/files/modules/websocket/websocket.html create mode 100644 embedded/www/tcllib/files/modules/wip/wip.html create mode 100644 embedded/www/tcllib/files/modules/yaml/huddle.html create mode 100644 embedded/www/tcllib/files/modules/yaml/yaml.html create mode 100644 embedded/www/tcllib/files/modules/zip/decode.html create mode 100644 embedded/www/tcllib/files/modules/zip/encode.html create mode 100644 embedded/www/tcllib/files/modules/zip/mkzip.html create mode 100644 embedded/www/tcllib/toc.html create mode 100644 embedded/www/toc.html create mode 100644 embedded/www/toc0.html create mode 100644 embedded/www/toc1.html create mode 100644 embedded/www/toc2.html create mode 100644 examples/README create mode 100644 examples/bibtex/bibtex.tcl create mode 100644 examples/csv/Bench.csv create mode 100644 examples/csv/Bench.html create mode 100644 examples/csv/Benchmark.75p2.csv create mode 100644 examples/csv/Benchmark.76p2.csv create mode 100644 examples/csv/Benchmark.805.csv create mode 100644 examples/csv/Benchmark.811.csv create mode 100644 examples/csv/Benchmark.823.csv create mode 100644 examples/csv/Benchmark.833.csv create mode 100644 examples/csv/Benchmark.84a3.csv create mode 100644 examples/csv/README create mode 100755 examples/csv/bench_join create mode 100755 examples/csv/csv2html create mode 100755 examples/csv/csvcut create mode 100755 examples/csv/csvdiff create mode 100755 examples/csv/csvjoin create mode 100755 examples/csv/csvsort create mode 100755 examples/csv/csvuniq create mode 100644 examples/dns/tk_sample.tcl create mode 100644 examples/doctools/doctools.idx create mode 100644 examples/doctools/doctools.toc create mode 100644 examples/ftp/ChangeLog create mode 100644 examples/ftp/README create mode 100755 examples/ftp/ftpdemo.tcl create mode 100755 examples/ftp/ftpvalid create mode 100755 examples/ftp/hpupdate.tcl create mode 100755 examples/ftp/mirror.tcl create mode 100755 examples/ftp/newer.tcl create mode 100755 examples/ftpd/ftpd create mode 100755 examples/ftpd/ftpd.test create mode 100755 examples/ftpd/ftpd.unix create mode 100644 examples/htmlparse/webviewer.tcl create mode 100644 examples/httpd/htdocs/content.file.md create mode 100644 examples/httpd/htdocs/content.form.md create mode 100644 examples/httpd/htdocs/content.md create mode 100644 examples/httpd/htdocs/content.proxy.md create mode 100644 examples/httpd/htdocs/content.scgi.md create mode 100644 examples/httpd/htdocs/content.server.md create mode 100644 examples/httpd/htdocs/example.md create mode 100644 examples/httpd/htdocs/index.md create mode 100644 examples/httpd/htdocs/operations.md create mode 100644 examples/httpd/htdocs/plume.png create mode 100644 examples/httpd/htdocs/reply.md create mode 100644 examples/httpd/htdocs/server.md create mode 100644 examples/httpd/httpd.tcl create mode 100644 examples/irc/ChangeLog create mode 100755 examples/irc/irc_example.tcl create mode 100644 examples/irc/mainloop.tcl create mode 100755 examples/ldap/ldapChangeTest create mode 100644 examples/ldap/ldapChangeTest.output create mode 100755 examples/ldap/ldapquery create mode 100755 examples/ldap/ldifdump create mode 100755 examples/logger/logtofile.tcl create mode 100755 examples/logger/logtotext.tcl create mode 100755 examples/logger/snit-logger.tcl create mode 100755 examples/logger/xotcl-logger.tcl create mode 100755 examples/mapproj/ChangeLog create mode 100755 examples/mapproj/ncar780.txt create mode 100755 examples/mapproj/tkmap.tcl create mode 100755 examples/math/bigfloat.demo.tcl create mode 100644 examples/math/bigfloat.help create mode 100644 examples/mime/maildemo.tcl create mode 100644 examples/mime/mbot/ChangeLog create mode 100644 examples/mime/mbot/README.html create mode 100644 examples/mime/mbot/README.txt create mode 100644 examples/mime/mbot/README.xml create mode 100755 examples/mime/mbot/impersonal.tcl create mode 100644 examples/mime/mbot/mbox.tcl create mode 100644 examples/mime/mbot/mutl.tcl create mode 100755 examples/mime/mbot/personal.tcl create mode 100644 examples/mime/mbot/pkgIndex.tcl create mode 100644 examples/nntp/README create mode 100755 examples/nntp/dirstore create mode 100644 examples/nntp/free-news-servers.txt create mode 100644 examples/nntp/nntp.examples create mode 100755 examples/nntp/postmsg create mode 100755 examples/nntp/postnews create mode 100755 examples/nntp/pullnews create mode 100644 examples/nntp/test-account create mode 100644 examples/nntp/test-message create mode 100644 examples/ntp/rdate.tcl create mode 100644 examples/oreilly-oscon2001/README create mode 100755 examples/oreilly-oscon2001/oscon create mode 100755 examples/oreilly-oscon2001/osconwrap create mode 100644 examples/oreilly-oscon2001/sessions_friday.html create mode 100644 examples/oreilly-oscon2001/sessions_thursday.html create mode 100644 examples/oreilly-oscon2001/sessions_wednesday.html create mode 100644 examples/page/lemon.html create mode 100644 examples/page/lemon.peg create mode 100644 examples/page/parse.y create mode 100644 examples/page/sql.log create mode 100644 examples/page/sql.peg create mode 100644 examples/sasl/saslclient.tcl create mode 100644 examples/smtpd/server-private.key create mode 100644 examples/smtpd/server-public.pem create mode 100644 examples/smtpd/tcl_smtpd create mode 100644 examples/smtpd/tk_smtpd create mode 100644 examples/struct/README create mode 100644 examples/struct/diff.tcl create mode 100644 examples/struct/diff2.tcl create mode 100644 examples/tepam/1_procedure_introduction.demo create mode 100644 examples/tepam/1a_procedure_subcommand.demo create mode 100644 examples/tepam/1b_procedure_interactive_widgets.demo create mode 100644 examples/tepam/1c_procedure_interactive_aux.demo create mode 100644 examples/tepam/1d_procedure_validation.demo create mode 100644 examples/tepam/2_argument_dialogbox_introduction.demo create mode 100644 examples/tepam/2a_argument_dialogbox_all_widgets.demo create mode 100644 examples/tepam/2b_argument_dialogbox_context.demo create mode 100644 examples/tepam/3_doc_gen_generate.demo create mode 100755 examples/tepam/run_tepam_demo.bat create mode 100644 examples/tepam/run_tepam_demo.sh create mode 100644 examples/tepam/tepam_demo.tcl create mode 100644 examples/tepam/tepam_doc_stylesheet.css create mode 100755 examples/term/attributes create mode 100755 examples/term/box create mode 100755 examples/term/box2 create mode 100755 examples/term/clear create mode 100755 examples/term/colors create mode 100755 examples/term/frame create mode 100755 examples/term/graphics create mode 100755 examples/term/imenu create mode 100755 examples/term/ipager create mode 100755 examples/term/menu create mode 100755 examples/term/menu2 create mode 100755 examples/term/para create mode 100755 examples/term/title create mode 100644 examples/tie/README.txt create mode 100644 examples/tie/metakit.tcl create mode 100644 examples/tie/receiving_client.tcl create mode 100644 examples/tie/sending_client.tcl create mode 100644 examples/tie/server.tcl create mode 100644 examples/tie/transceiver.tcl create mode 100644 examples/transfer/certs/README.txt create mode 100644 examples/transfer/certs/ca.crt create mode 100644 examples/transfer/certs/ca.key create mode 100644 examples/transfer/certs/ca.key.password create mode 100644 examples/transfer/certs/receiver.crt create mode 100644 examples/transfer/certs/receiver.key create mode 100644 examples/transfer/certs/transmitter.crt create mode 100644 examples/transfer/certs/transmitter.key create mode 100644 examples/transfer/receive.tcl create mode 100644 examples/transfer/sreceive.tcl create mode 100644 examples/transfer/stransmit.tcl create mode 100644 examples/transfer/tlssetup.tcl create mode 100644 examples/transfer/transmit.tcl create mode 100644 idoc/man/files/apps/dtplite.n create mode 100644 idoc/man/files/apps/nns.n create mode 100644 idoc/man/files/apps/nnsd.n create mode 100644 idoc/man/files/apps/nnslog.n create mode 100644 idoc/man/files/apps/page.n create mode 100644 idoc/man/files/apps/pt.n create mode 100644 idoc/man/files/apps/tcldocstrip.n create mode 100644 idoc/man/files/modules/aes/aes.n create mode 100644 idoc/man/files/modules/amazon-s3/S3.n create mode 100644 idoc/man/files/modules/amazon-s3/xsxp.n create mode 100644 idoc/man/files/modules/asn/asn.n create mode 100644 idoc/man/files/modules/base32/base32.n create mode 100644 idoc/man/files/modules/base32/base32core.n create mode 100644 idoc/man/files/modules/base32/base32hex.n create mode 100644 idoc/man/files/modules/base64/ascii85.n create mode 100644 idoc/man/files/modules/base64/base64.n create mode 100644 idoc/man/files/modules/base64/uuencode.n create mode 100644 idoc/man/files/modules/base64/yencode.n create mode 100644 idoc/man/files/modules/bee/bee.n create mode 100644 idoc/man/files/modules/bench/bench.n create mode 100644 idoc/man/files/modules/bench/bench_intro.n create mode 100644 idoc/man/files/modules/bench/bench_lang_intro.n create mode 100644 idoc/man/files/modules/bench/bench_lang_spec.n create mode 100644 idoc/man/files/modules/bench/bench_read.n create mode 100644 idoc/man/files/modules/bench/bench_wcsv.n create mode 100644 idoc/man/files/modules/bench/bench_wtext.n create mode 100644 idoc/man/files/modules/bibtex/bibtex.n create mode 100644 idoc/man/files/modules/blowfish/blowfish.n create mode 100644 idoc/man/files/modules/cache/async.n create mode 100644 idoc/man/files/modules/clock/iso8601.n create mode 100644 idoc/man/files/modules/clock/rfc2822.n create mode 100644 idoc/man/files/modules/cmdline/cmdline.n create mode 100644 idoc/man/files/modules/comm/comm.n create mode 100644 idoc/man/files/modules/comm/comm_wire.n create mode 100644 idoc/man/files/modules/control/control.n create mode 100644 idoc/man/files/modules/coroutine/coro_auto.n create mode 100644 idoc/man/files/modules/coroutine/tcllib_coroutine.n create mode 100644 idoc/man/files/modules/counter/counter.n create mode 100644 idoc/man/files/modules/crc/cksum.n create mode 100644 idoc/man/files/modules/crc/crc16.n create mode 100644 idoc/man/files/modules/crc/crc32.n create mode 100644 idoc/man/files/modules/crc/sum.n create mode 100644 idoc/man/files/modules/cron/cron.n create mode 100644 idoc/man/files/modules/csv/csv.n create mode 100644 idoc/man/files/modules/debug/debug.n create mode 100644 idoc/man/files/modules/debug/debug_caller.n create mode 100644 idoc/man/files/modules/debug/debug_heartbeat.n create mode 100644 idoc/man/files/modules/debug/debug_timestamp.n create mode 100644 idoc/man/files/modules/des/des.n create mode 100644 idoc/man/files/modules/des/tcldes.n create mode 100644 idoc/man/files/modules/des/tcldesjr.n create mode 100644 idoc/man/files/modules/dicttool/dicttool.n create mode 100644 idoc/man/files/modules/dns/tcllib_dns.n create mode 100644 idoc/man/files/modules/dns/tcllib_ip.n create mode 100644 idoc/man/files/modules/docstrip/docstrip.n create mode 100644 idoc/man/files/modules/docstrip/docstrip_util.n create mode 100644 idoc/man/files/modules/doctools/changelog.n create mode 100644 idoc/man/files/modules/doctools/cvs.n create mode 100644 idoc/man/files/modules/doctools/docidx.n create mode 100644 idoc/man/files/modules/doctools/docidx_intro.n create mode 100644 idoc/man/files/modules/doctools/docidx_lang_cmdref.n create mode 100644 idoc/man/files/modules/doctools/docidx_lang_faq.n create mode 100644 idoc/man/files/modules/doctools/docidx_lang_intro.n create mode 100644 idoc/man/files/modules/doctools/docidx_lang_syntax.n create mode 100644 idoc/man/files/modules/doctools/docidx_plugin_apiref.n create mode 100644 idoc/man/files/modules/doctools/doctoc.n create mode 100644 idoc/man/files/modules/doctools/doctoc_intro.n create mode 100644 idoc/man/files/modules/doctools/doctoc_lang_cmdref.n create mode 100644 idoc/man/files/modules/doctools/doctoc_lang_faq.n create mode 100644 idoc/man/files/modules/doctools/doctoc_lang_intro.n create mode 100644 idoc/man/files/modules/doctools/doctoc_lang_syntax.n create mode 100644 idoc/man/files/modules/doctools/doctoc_plugin_apiref.n create mode 100644 idoc/man/files/modules/doctools/doctools.n create mode 100644 idoc/man/files/modules/doctools/doctools_intro.n create mode 100644 idoc/man/files/modules/doctools/doctools_lang_cmdref.n create mode 100644 idoc/man/files/modules/doctools/doctools_lang_faq.n create mode 100644 idoc/man/files/modules/doctools/doctools_lang_intro.n create mode 100644 idoc/man/files/modules/doctools/doctools_lang_syntax.n create mode 100644 idoc/man/files/modules/doctools/doctools_plugin_apiref.n create mode 100644 idoc/man/files/modules/doctools/mpexpand.n create mode 100644 idoc/man/files/modules/doctools2base/html_cssdefaults.n create mode 100644 idoc/man/files/modules/doctools2base/nroff_manmacros.n create mode 100644 idoc/man/files/modules/doctools2base/tcl_parse.n create mode 100644 idoc/man/files/modules/doctools2base/tcllib_msgcat.n create mode 100644 idoc/man/files/modules/doctools2idx/export_docidx.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_container.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_export.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_export_html.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_export_json.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_export_nroff.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_export_text.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_export_wiki.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_import.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_import_json.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_introduction.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_msgcat_c.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_msgcat_de.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_msgcat_en.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_msgcat_fr.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_parse.n create mode 100644 idoc/man/files/modules/doctools2idx/idx_structure.n create mode 100644 idoc/man/files/modules/doctools2idx/import_docidx.n create mode 100644 idoc/man/files/modules/doctools2toc/export_doctoc.n create mode 100644 idoc/man/files/modules/doctools2toc/import_doctoc.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_container.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_export.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_export_html.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_export_json.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_export_nroff.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_export_text.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_export_wiki.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_import.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_import_json.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_introduction.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_msgcat_c.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_msgcat_de.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_msgcat_en.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_msgcat_fr.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_parse.n create mode 100644 idoc/man/files/modules/doctools2toc/toc_structure.n create mode 100644 idoc/man/files/modules/dtplite/pkg_dtplite.n create mode 100644 idoc/man/files/modules/fileutil/fileutil.n create mode 100644 idoc/man/files/modules/fileutil/multi.n create mode 100644 idoc/man/files/modules/fileutil/multiop.n create mode 100644 idoc/man/files/modules/fileutil/traverse.n create mode 100644 idoc/man/files/modules/ftp/ftp.n create mode 100644 idoc/man/files/modules/ftp/ftp_geturl.n create mode 100644 idoc/man/files/modules/ftpd/ftpd.n create mode 100644 idoc/man/files/modules/fumagic/cfront.n create mode 100644 idoc/man/files/modules/fumagic/cgen.n create mode 100644 idoc/man/files/modules/fumagic/filetypes.n create mode 100644 idoc/man/files/modules/fumagic/mimetypes.n create mode 100644 idoc/man/files/modules/fumagic/rtcore.n create mode 100644 idoc/man/files/modules/generator/generator.n create mode 100644 idoc/man/files/modules/gpx/gpx.n create mode 100644 idoc/man/files/modules/grammar_aycock/aycock.n create mode 100644 idoc/man/files/modules/grammar_fa/dacceptor.n create mode 100644 idoc/man/files/modules/grammar_fa/dexec.n create mode 100644 idoc/man/files/modules/grammar_fa/fa.n create mode 100644 idoc/man/files/modules/grammar_fa/faop.n create mode 100644 idoc/man/files/modules/grammar_me/gasm.n create mode 100644 idoc/man/files/modules/grammar_me/me_ast.n create mode 100644 idoc/man/files/modules/grammar_me/me_cpu.n create mode 100644 idoc/man/files/modules/grammar_me/me_cpucore.n create mode 100644 idoc/man/files/modules/grammar_me/me_intro.n create mode 100644 idoc/man/files/modules/grammar_me/me_tcl.n create mode 100644 idoc/man/files/modules/grammar_me/me_util.n create mode 100644 idoc/man/files/modules/grammar_me/me_vm.n create mode 100644 idoc/man/files/modules/grammar_peg/peg.n create mode 100644 idoc/man/files/modules/grammar_peg/peg_interp.n create mode 100644 idoc/man/files/modules/hook/hook.n create mode 100644 idoc/man/files/modules/html/html.n create mode 100644 idoc/man/files/modules/htmlparse/htmlparse.n create mode 100644 idoc/man/files/modules/http/autoproxy.n create mode 100644 idoc/man/files/modules/ident/ident.n create mode 100644 idoc/man/files/modules/imap4/imap4.n create mode 100644 idoc/man/files/modules/inifile/ini.n create mode 100644 idoc/man/files/modules/interp/deleg_method.n create mode 100644 idoc/man/files/modules/interp/deleg_proc.n create mode 100644 idoc/man/files/modules/interp/tcllib_interp.n create mode 100644 idoc/man/files/modules/irc/irc.n create mode 100644 idoc/man/files/modules/irc/picoirc.n create mode 100644 idoc/man/files/modules/javascript/javascript.n create mode 100644 idoc/man/files/modules/jpeg/jpeg.n create mode 100644 idoc/man/files/modules/json/json.n create mode 100644 idoc/man/files/modules/json/json_write.n create mode 100644 idoc/man/files/modules/lambda/lambda.n create mode 100644 idoc/man/files/modules/ldap/ldap.n create mode 100644 idoc/man/files/modules/ldap/ldapx.n create mode 100644 idoc/man/files/modules/log/log.n create mode 100644 idoc/man/files/modules/log/logger.n create mode 100644 idoc/man/files/modules/log/loggerAppender.n create mode 100644 idoc/man/files/modules/log/loggerUtils.n create mode 100644 idoc/man/files/modules/map/map_geocode_nominatim.n create mode 100644 idoc/man/files/modules/map/map_slippy.n create mode 100644 idoc/man/files/modules/map/map_slippy_cache.n create mode 100644 idoc/man/files/modules/map/map_slippy_fetcher.n create mode 100644 idoc/man/files/modules/mapproj/mapproj.n create mode 100644 idoc/man/files/modules/math/bigfloat.n create mode 100644 idoc/man/files/modules/math/bignum.n create mode 100644 idoc/man/files/modules/math/calculus.n create mode 100644 idoc/man/files/modules/math/combinatorics.n create mode 100644 idoc/man/files/modules/math/constants.n create mode 100644 idoc/man/files/modules/math/decimal.n create mode 100644 idoc/man/files/modules/math/exact.n create mode 100644 idoc/man/files/modules/math/fourier.n create mode 100644 idoc/man/files/modules/math/fuzzy.n create mode 100644 idoc/man/files/modules/math/interpolate.n create mode 100644 idoc/man/files/modules/math/linalg.n create mode 100644 idoc/man/files/modules/math/machineparameters.n create mode 100644 idoc/man/files/modules/math/math.n create mode 100644 idoc/man/files/modules/math/math_geometry.n create mode 100644 idoc/man/files/modules/math/numtheory.n create mode 100644 idoc/man/files/modules/math/optimize.n create mode 100644 idoc/man/files/modules/math/polynomials.n create mode 100644 idoc/man/files/modules/math/qcomplex.n create mode 100644 idoc/man/files/modules/math/rational_funcs.n create mode 100644 idoc/man/files/modules/math/roman.n create mode 100644 idoc/man/files/modules/math/romberg.n create mode 100644 idoc/man/files/modules/math/special.n create mode 100644 idoc/man/files/modules/math/statistics.n create mode 100644 idoc/man/files/modules/math/symdiff.n create mode 100644 idoc/man/files/modules/md4/md4.n create mode 100644 idoc/man/files/modules/md5/md5.n create mode 100644 idoc/man/files/modules/md5crypt/md5crypt.n create mode 100644 idoc/man/files/modules/mime/mime.n create mode 100644 idoc/man/files/modules/mime/smtp.n create mode 100644 idoc/man/files/modules/multiplexer/multiplexer.n create mode 100644 idoc/man/files/modules/namespacex/namespacex.n create mode 100644 idoc/man/files/modules/ncgi/ncgi.n create mode 100644 idoc/man/files/modules/nettool/nettool.n create mode 100644 idoc/man/files/modules/nmea/nmea.n create mode 100644 idoc/man/files/modules/nns/nns_auto.n create mode 100644 idoc/man/files/modules/nns/nns_client.n create mode 100644 idoc/man/files/modules/nns/nns_common.n create mode 100644 idoc/man/files/modules/nns/nns_intro.n create mode 100644 idoc/man/files/modules/nns/nns_protocol.n create mode 100644 idoc/man/files/modules/nns/nns_server.n create mode 100644 idoc/man/files/modules/nntp/nntp.n create mode 100644 idoc/man/files/modules/ntp/ntp_time.n create mode 100644 idoc/man/files/modules/oauth/oauth.n create mode 100644 idoc/man/files/modules/ooutil/ooutil.n create mode 100644 idoc/man/files/modules/otp/otp.n create mode 100644 idoc/man/files/modules/page/page_intro.n create mode 100644 idoc/man/files/modules/page/page_pluginmgr.n create mode 100644 idoc/man/files/modules/page/page_util_flow.n create mode 100644 idoc/man/files/modules/page/page_util_norm_lemon.n create mode 100644 idoc/man/files/modules/page/page_util_norm_peg.n create mode 100644 idoc/man/files/modules/page/page_util_peg.n create mode 100644 idoc/man/files/modules/page/page_util_quote.n create mode 100644 idoc/man/files/modules/pki/pki.n create mode 100644 idoc/man/files/modules/pluginmgr/pluginmgr.n create mode 100644 idoc/man/files/modules/png/png.n create mode 100644 idoc/man/files/modules/pop3/pop3.n create mode 100644 idoc/man/files/modules/pop3d/pop3d.n create mode 100644 idoc/man/files/modules/pop3d/pop3d_dbox.n create mode 100644 idoc/man/files/modules/pop3d/pop3d_udb.n create mode 100644 idoc/man/files/modules/processman/processman.n create mode 100644 idoc/man/files/modules/profiler/profiler.n create mode 100644 idoc/man/files/modules/pt/pt_astree.n create mode 100644 idoc/man/files/modules/pt/pt_cparam_config_critcl.n create mode 100644 idoc/man/files/modules/pt/pt_cparam_config_tea.n create mode 100644 idoc/man/files/modules/pt/pt_from_api.n create mode 100644 idoc/man/files/modules/pt/pt_introduction.n create mode 100644 idoc/man/files/modules/pt/pt_json_language.n create mode 100644 idoc/man/files/modules/pt/pt_param.n create mode 100644 idoc/man/files/modules/pt/pt_parse_peg.n create mode 100644 idoc/man/files/modules/pt/pt_parser_api.n create mode 100644 idoc/man/files/modules/pt/pt_peg_container.n create mode 100644 idoc/man/files/modules/pt/pt_peg_container_peg.n create mode 100644 idoc/man/files/modules/pt/pt_peg_export.n create mode 100644 idoc/man/files/modules/pt/pt_peg_export_container.n create mode 100644 idoc/man/files/modules/pt/pt_peg_export_json.n create mode 100644 idoc/man/files/modules/pt/pt_peg_export_peg.n create mode 100644 idoc/man/files/modules/pt/pt_peg_from_container.n create mode 100644 idoc/man/files/modules/pt/pt_peg_from_json.n create mode 100644 idoc/man/files/modules/pt/pt_peg_from_peg.n create mode 100644 idoc/man/files/modules/pt/pt_peg_import.n create mode 100644 idoc/man/files/modules/pt/pt_peg_import_container.n create mode 100644 idoc/man/files/modules/pt/pt_peg_import_json.n create mode 100644 idoc/man/files/modules/pt/pt_peg_import_peg.n create mode 100644 idoc/man/files/modules/pt/pt_peg_interp.n create mode 100644 idoc/man/files/modules/pt/pt_peg_introduction.n create mode 100644 idoc/man/files/modules/pt/pt_peg_language.n create mode 100644 idoc/man/files/modules/pt/pt_peg_op.n create mode 100644 idoc/man/files/modules/pt/pt_peg_to_container.n create mode 100644 idoc/man/files/modules/pt/pt_peg_to_cparam.n create mode 100644 idoc/man/files/modules/pt/pt_peg_to_json.n create mode 100644 idoc/man/files/modules/pt/pt_peg_to_param.n create mode 100644 idoc/man/files/modules/pt/pt_peg_to_peg.n create mode 100644 idoc/man/files/modules/pt/pt_peg_to_tclparam.n create mode 100644 idoc/man/files/modules/pt/pt_pegrammar.n create mode 100644 idoc/man/files/modules/pt/pt_pexpr_op.n create mode 100644 idoc/man/files/modules/pt/pt_pexpression.n create mode 100644 idoc/man/files/modules/pt/pt_pgen.n create mode 100644 idoc/man/files/modules/pt/pt_rdengine.n create mode 100644 idoc/man/files/modules/pt/pt_tclparam_config_snit.n create mode 100644 idoc/man/files/modules/pt/pt_tclparam_config_tcloo.n create mode 100644 idoc/man/files/modules/pt/pt_to_api.n create mode 100644 idoc/man/files/modules/pt/pt_util.n create mode 100644 idoc/man/files/modules/rc4/rc4.n create mode 100644 idoc/man/files/modules/rcs/rcs.n create mode 100644 idoc/man/files/modules/report/report.n create mode 100644 idoc/man/files/modules/rest/rest.n create mode 100644 idoc/man/files/modules/ripemd/ripemd128.n create mode 100644 idoc/man/files/modules/ripemd/ripemd160.n create mode 100644 idoc/man/files/modules/sasl/gtoken.n create mode 100644 idoc/man/files/modules/sasl/ntlm.n create mode 100644 idoc/man/files/modules/sasl/sasl.n create mode 100644 idoc/man/files/modules/sasl/scram.n create mode 100644 idoc/man/files/modules/sha1/sha1.n create mode 100644 idoc/man/files/modules/sha1/sha256.n create mode 100644 idoc/man/files/modules/simulation/annealing.n create mode 100644 idoc/man/files/modules/simulation/montecarlo.n create mode 100644 idoc/man/files/modules/simulation/simulation_random.n create mode 100644 idoc/man/files/modules/smtpd/smtpd.n create mode 100644 idoc/man/files/modules/snit/snit.n create mode 100644 idoc/man/files/modules/snit/snitfaq.n create mode 100644 idoc/man/files/modules/soundex/soundex.n create mode 100644 idoc/man/files/modules/stooop/stooop.n create mode 100644 idoc/man/files/modules/stooop/switched.n create mode 100644 idoc/man/files/modules/string/token.n create mode 100644 idoc/man/files/modules/string/token_shell.n create mode 100644 idoc/man/files/modules/stringprep/stringprep.n create mode 100644 idoc/man/files/modules/stringprep/stringprep_data.n create mode 100644 idoc/man/files/modules/stringprep/unicode.n create mode 100644 idoc/man/files/modules/stringprep/unicode_data.n create mode 100644 idoc/man/files/modules/struct/disjointset.n create mode 100644 idoc/man/files/modules/struct/graph.n create mode 100644 idoc/man/files/modules/struct/graph1.n create mode 100644 idoc/man/files/modules/struct/graphops.n create mode 100644 idoc/man/files/modules/struct/matrix.n create mode 100644 idoc/man/files/modules/struct/matrix1.n create mode 100644 idoc/man/files/modules/struct/pool.n create mode 100644 idoc/man/files/modules/struct/prioqueue.n create mode 100644 idoc/man/files/modules/struct/queue.n create mode 100644 idoc/man/files/modules/struct/record.n create mode 100644 idoc/man/files/modules/struct/skiplist.n create mode 100644 idoc/man/files/modules/struct/stack.n create mode 100644 idoc/man/files/modules/struct/struct_list.n create mode 100644 idoc/man/files/modules/struct/struct_set.n create mode 100644 idoc/man/files/modules/struct/struct_tree.n create mode 100644 idoc/man/files/modules/struct/struct_tree1.n create mode 100644 idoc/man/files/modules/tar/tar.n create mode 100644 idoc/man/files/modules/tepam/tepam_argument_dialogbox.n create mode 100644 idoc/man/files/modules/tepam/tepam_doc_gen.n create mode 100644 idoc/man/files/modules/tepam/tepam_introduction.n create mode 100644 idoc/man/files/modules/tepam/tepam_procedure.n create mode 100644 idoc/man/files/modules/term/ansi_cattr.n create mode 100644 idoc/man/files/modules/term/ansi_cctrl.n create mode 100644 idoc/man/files/modules/term/ansi_cmacros.n create mode 100644 idoc/man/files/modules/term/ansi_code.n create mode 100644 idoc/man/files/modules/term/ansi_ctrlu.n create mode 100644 idoc/man/files/modules/term/ansi_send.n create mode 100644 idoc/man/files/modules/term/imenu.n create mode 100644 idoc/man/files/modules/term/ipager.n create mode 100644 idoc/man/files/modules/term/receive.n create mode 100644 idoc/man/files/modules/term/term.n create mode 100644 idoc/man/files/modules/term/term_bind.n create mode 100644 idoc/man/files/modules/term/term_send.n create mode 100644 idoc/man/files/modules/textutil/adjust.n create mode 100644 idoc/man/files/modules/textutil/expander.n create mode 100644 idoc/man/files/modules/textutil/repeat.n create mode 100644 idoc/man/files/modules/textutil/tabify.n create mode 100644 idoc/man/files/modules/textutil/textutil.n create mode 100644 idoc/man/files/modules/textutil/textutil_split.n create mode 100644 idoc/man/files/modules/textutil/textutil_string.n create mode 100644 idoc/man/files/modules/textutil/trim.n create mode 100644 idoc/man/files/modules/tie/tie.n create mode 100644 idoc/man/files/modules/tie/tie_std.n create mode 100644 idoc/man/files/modules/tiff/tiff.n create mode 100644 idoc/man/files/modules/tool/meta.n create mode 100644 idoc/man/files/modules/tool/tool.n create mode 100644 idoc/man/files/modules/tool/tool_dict_ensemble.n create mode 100644 idoc/man/files/modules/transfer/connect.n create mode 100644 idoc/man/files/modules/transfer/copyops.n create mode 100644 idoc/man/files/modules/transfer/ddest.n create mode 100644 idoc/man/files/modules/transfer/dsource.n create mode 100644 idoc/man/files/modules/transfer/receiver.n create mode 100644 idoc/man/files/modules/transfer/tqueue.n create mode 100644 idoc/man/files/modules/transfer/transmitter.n create mode 100644 idoc/man/files/modules/treeql/treeql.n create mode 100644 idoc/man/files/modules/try/tcllib_throw.n create mode 100644 idoc/man/files/modules/try/tcllib_try.n create mode 100644 idoc/man/files/modules/uev/uevent.n create mode 100644 idoc/man/files/modules/uev/uevent_onidle.n create mode 100644 idoc/man/files/modules/units/units.n create mode 100644 idoc/man/files/modules/uri/uri.n create mode 100644 idoc/man/files/modules/uri/urn-scheme.n create mode 100644 idoc/man/files/modules/uuid/uuid.n create mode 100644 idoc/man/files/modules/valtype/cc_amex.n create mode 100644 idoc/man/files/modules/valtype/cc_discover.n create mode 100644 idoc/man/files/modules/valtype/cc_mastercard.n create mode 100644 idoc/man/files/modules/valtype/cc_visa.n create mode 100644 idoc/man/files/modules/valtype/ean13.n create mode 100644 idoc/man/files/modules/valtype/iban.n create mode 100644 idoc/man/files/modules/valtype/imei.n create mode 100644 idoc/man/files/modules/valtype/isbn.n create mode 100644 idoc/man/files/modules/valtype/luhn.n create mode 100644 idoc/man/files/modules/valtype/luhn5.n create mode 100644 idoc/man/files/modules/valtype/usnpi.n create mode 100644 idoc/man/files/modules/valtype/valtype_common.n create mode 100644 idoc/man/files/modules/valtype/verhoeff.n create mode 100644 idoc/man/files/modules/virtchannel_base/cat.n create mode 100644 idoc/man/files/modules/virtchannel_base/facade.n create mode 100644 idoc/man/files/modules/virtchannel_base/halfpipe.n create mode 100644 idoc/man/files/modules/virtchannel_base/nullzero.n create mode 100644 idoc/man/files/modules/virtchannel_base/randseed.n create mode 100644 idoc/man/files/modules/virtchannel_base/std.n create mode 100644 idoc/man/files/modules/virtchannel_base/tcllib_fifo.n create mode 100644 idoc/man/files/modules/virtchannel_base/tcllib_fifo2.n create mode 100644 idoc/man/files/modules/virtchannel_base/tcllib_memchan.n create mode 100644 idoc/man/files/modules/virtchannel_base/tcllib_null.n create mode 100644 idoc/man/files/modules/virtchannel_base/tcllib_random.n create mode 100644 idoc/man/files/modules/virtchannel_base/tcllib_string.n create mode 100644 idoc/man/files/modules/virtchannel_base/tcllib_variable.n create mode 100644 idoc/man/files/modules/virtchannel_base/tcllib_zero.n create mode 100644 idoc/man/files/modules/virtchannel_base/textwindow.n create mode 100644 idoc/man/files/modules/virtchannel_core/core.n create mode 100644 idoc/man/files/modules/virtchannel_core/events.n create mode 100644 idoc/man/files/modules/virtchannel_core/transformcore.n create mode 100644 idoc/man/files/modules/virtchannel_transform/adler32.n create mode 100644 idoc/man/files/modules/virtchannel_transform/hex.n create mode 100644 idoc/man/files/modules/virtchannel_transform/identity.n create mode 100644 idoc/man/files/modules/virtchannel_transform/limitsize.n create mode 100644 idoc/man/files/modules/virtchannel_transform/observe.n create mode 100644 idoc/man/files/modules/virtchannel_transform/rot.n create mode 100644 idoc/man/files/modules/virtchannel_transform/spacer.n create mode 100644 idoc/man/files/modules/virtchannel_transform/tcllib_zlib.n create mode 100644 idoc/man/files/modules/virtchannel_transform/vt_base64.n create mode 100644 idoc/man/files/modules/virtchannel_transform/vt_counter.n create mode 100644 idoc/man/files/modules/virtchannel_transform/vt_crc32.n create mode 100644 idoc/man/files/modules/virtchannel_transform/vt_otp.n create mode 100644 idoc/man/files/modules/websocket/websocket.n create mode 100644 idoc/man/files/modules/wip/wip.n create mode 100644 idoc/man/files/modules/yaml/huddle.n create mode 100644 idoc/man/files/modules/yaml/yaml.n create mode 100644 idoc/man/files/modules/zip/decode.n create mode 100644 idoc/man/files/modules/zip/encode.n create mode 100644 idoc/man/files/modules/zip/mkzip.n create mode 100644 idoc/man/index.n create mode 100644 idoc/man/toc.n create mode 100644 idoc/www/image/arch_core_container.png create mode 100644 idoc/www/image/arch_core_eplugins.png create mode 100644 idoc/www/image/arch_core_export.png create mode 100644 idoc/www/image/arch_core_import.png create mode 100644 idoc/www/image/arch_core_iplugins.png create mode 100644 idoc/www/image/arch_core_support.png create mode 100644 idoc/www/image/arch_core_transform.png create mode 100644 idoc/www/image/arch_user_app.png create mode 100644 idoc/www/image/arch_user_pkg.png create mode 100644 idoc/www/image/architecture.png create mode 100644 idoc/www/image/expr_ast.png create mode 100644 idoc/www/image/flow.png create mode 100644 idoc/www/image/gen_options.png create mode 100644 idoc/www/index.html create mode 100644 idoc/www/tcllib/files/apps/dtplite.html create mode 100644 idoc/www/tcllib/files/apps/nns.html create mode 100644 idoc/www/tcllib/files/apps/nnsd.html create mode 100644 idoc/www/tcllib/files/apps/nnslog.html create mode 100644 idoc/www/tcllib/files/apps/page.html create mode 100644 idoc/www/tcllib/files/apps/pt.html create mode 100644 idoc/www/tcllib/files/apps/tcldocstrip.html create mode 100644 idoc/www/tcllib/files/modules/aes/aes.html create mode 100644 idoc/www/tcllib/files/modules/amazon-s3/S3.html create mode 100644 idoc/www/tcllib/files/modules/amazon-s3/xsxp.html create mode 100644 idoc/www/tcllib/files/modules/asn/asn.html create mode 100644 idoc/www/tcllib/files/modules/base32/base32.html create mode 100644 idoc/www/tcllib/files/modules/base32/base32core.html create mode 100644 idoc/www/tcllib/files/modules/base32/base32hex.html create mode 100644 idoc/www/tcllib/files/modules/base64/ascii85.html create mode 100644 idoc/www/tcllib/files/modules/base64/base64.html create mode 100644 idoc/www/tcllib/files/modules/base64/uuencode.html create mode 100644 idoc/www/tcllib/files/modules/base64/yencode.html create mode 100644 idoc/www/tcllib/files/modules/bee/bee.html create mode 100644 idoc/www/tcllib/files/modules/bench/bench.html create mode 100644 idoc/www/tcllib/files/modules/bench/bench_intro.html create mode 100644 idoc/www/tcllib/files/modules/bench/bench_lang_intro.html create mode 100644 idoc/www/tcllib/files/modules/bench/bench_lang_spec.html create mode 100644 idoc/www/tcllib/files/modules/bench/bench_read.html create mode 100644 idoc/www/tcllib/files/modules/bench/bench_wcsv.html create mode 100644 idoc/www/tcllib/files/modules/bench/bench_wtext.html create mode 100644 idoc/www/tcllib/files/modules/bibtex/bibtex.html create mode 100644 idoc/www/tcllib/files/modules/blowfish/blowfish.html create mode 100644 idoc/www/tcllib/files/modules/cache/async.html create mode 100644 idoc/www/tcllib/files/modules/clock/iso8601.html create mode 100644 idoc/www/tcllib/files/modules/clock/rfc2822.html create mode 100644 idoc/www/tcllib/files/modules/cmdline/cmdline.html create mode 100644 idoc/www/tcllib/files/modules/comm/comm.html create mode 100644 idoc/www/tcllib/files/modules/comm/comm_wire.html create mode 100644 idoc/www/tcllib/files/modules/control/control.html create mode 100644 idoc/www/tcllib/files/modules/coroutine/coro_auto.html create mode 100644 idoc/www/tcllib/files/modules/coroutine/tcllib_coroutine.html create mode 100644 idoc/www/tcllib/files/modules/counter/counter.html create mode 100644 idoc/www/tcllib/files/modules/crc/cksum.html create mode 100644 idoc/www/tcllib/files/modules/crc/crc16.html create mode 100644 idoc/www/tcllib/files/modules/crc/crc32.html create mode 100644 idoc/www/tcllib/files/modules/crc/sum.html create mode 100644 idoc/www/tcllib/files/modules/cron/cron.html create mode 100644 idoc/www/tcllib/files/modules/csv/csv.html create mode 100644 idoc/www/tcllib/files/modules/debug/debug.html create mode 100644 idoc/www/tcllib/files/modules/debug/debug_caller.html create mode 100644 idoc/www/tcllib/files/modules/debug/debug_heartbeat.html create mode 100644 idoc/www/tcllib/files/modules/debug/debug_timestamp.html create mode 100644 idoc/www/tcllib/files/modules/des/des.html create mode 100644 idoc/www/tcllib/files/modules/des/tcldes.html create mode 100644 idoc/www/tcllib/files/modules/des/tcldesjr.html create mode 100644 idoc/www/tcllib/files/modules/dicttool/dicttool.html create mode 100644 idoc/www/tcllib/files/modules/dns/tcllib_dns.html create mode 100644 idoc/www/tcllib/files/modules/dns/tcllib_ip.html create mode 100644 idoc/www/tcllib/files/modules/docstrip/docstrip.html create mode 100644 idoc/www/tcllib/files/modules/docstrip/docstrip_util.html create mode 100644 idoc/www/tcllib/files/modules/doctools/changelog.html create mode 100644 idoc/www/tcllib/files/modules/doctools/cvs.html create mode 100644 idoc/www/tcllib/files/modules/doctools/docidx.html create mode 100644 idoc/www/tcllib/files/modules/doctools/docidx_intro.html create mode 100644 idoc/www/tcllib/files/modules/doctools/docidx_lang_cmdref.html create mode 100644 idoc/www/tcllib/files/modules/doctools/docidx_lang_faq.html create mode 100644 idoc/www/tcllib/files/modules/doctools/docidx_lang_intro.html create mode 100644 idoc/www/tcllib/files/modules/doctools/docidx_lang_syntax.html create mode 100644 idoc/www/tcllib/files/modules/doctools/docidx_plugin_apiref.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctoc.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctoc_intro.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctoc_lang_cmdref.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctoc_lang_faq.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctoc_lang_intro.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctoc_lang_syntax.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctoc_plugin_apiref.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctools.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctools_intro.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctools_lang_cmdref.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctools_lang_faq.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctools_lang_intro.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctools_lang_syntax.html create mode 100644 idoc/www/tcllib/files/modules/doctools/doctools_plugin_apiref.html create mode 100644 idoc/www/tcllib/files/modules/doctools/mpexpand.html create mode 100644 idoc/www/tcllib/files/modules/doctools2base/html_cssdefaults.html create mode 100644 idoc/www/tcllib/files/modules/doctools2base/nroff_manmacros.html create mode 100644 idoc/www/tcllib/files/modules/doctools2base/tcl_parse.html create mode 100644 idoc/www/tcllib/files/modules/doctools2base/tcllib_msgcat.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/export_docidx.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_container.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_export.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_export_html.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_export_json.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_export_nroff.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_export_text.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_export_wiki.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_import.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_import_json.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_introduction.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_msgcat_c.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_msgcat_de.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_msgcat_en.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_msgcat_fr.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_parse.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/idx_structure.html create mode 100644 idoc/www/tcllib/files/modules/doctools2idx/import_docidx.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/export_doctoc.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/import_doctoc.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_container.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_export.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_export_html.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_export_json.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_export_nroff.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_export_text.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_export_wiki.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_import.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_import_json.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_introduction.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_msgcat_c.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_msgcat_de.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_msgcat_en.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_msgcat_fr.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_parse.html create mode 100644 idoc/www/tcllib/files/modules/doctools2toc/toc_structure.html create mode 100644 idoc/www/tcllib/files/modules/dtplite/pkg_dtplite.html create mode 100644 idoc/www/tcllib/files/modules/fileutil/fileutil.html create mode 100644 idoc/www/tcllib/files/modules/fileutil/multi.html create mode 100644 idoc/www/tcllib/files/modules/fileutil/multiop.html create mode 100644 idoc/www/tcllib/files/modules/fileutil/traverse.html create mode 100644 idoc/www/tcllib/files/modules/ftp/ftp.html create mode 100644 idoc/www/tcllib/files/modules/ftp/ftp_geturl.html create mode 100644 idoc/www/tcllib/files/modules/ftpd/ftpd.html create mode 100644 idoc/www/tcllib/files/modules/fumagic/cfront.html create mode 100644 idoc/www/tcllib/files/modules/fumagic/cgen.html create mode 100644 idoc/www/tcllib/files/modules/fumagic/filetypes.html create mode 100644 idoc/www/tcllib/files/modules/fumagic/mimetypes.html create mode 100644 idoc/www/tcllib/files/modules/fumagic/rtcore.html create mode 100644 idoc/www/tcllib/files/modules/generator/generator.html create mode 100644 idoc/www/tcllib/files/modules/gpx/gpx.html create mode 100644 idoc/www/tcllib/files/modules/grammar_aycock/aycock.html create mode 100644 idoc/www/tcllib/files/modules/grammar_fa/dacceptor.html create mode 100644 idoc/www/tcllib/files/modules/grammar_fa/dexec.html create mode 100644 idoc/www/tcllib/files/modules/grammar_fa/fa.html create mode 100644 idoc/www/tcllib/files/modules/grammar_fa/faop.html create mode 100644 idoc/www/tcllib/files/modules/grammar_me/gasm.html create mode 100644 idoc/www/tcllib/files/modules/grammar_me/me_ast.html create mode 100644 idoc/www/tcllib/files/modules/grammar_me/me_cpu.html create mode 100644 idoc/www/tcllib/files/modules/grammar_me/me_cpucore.html create mode 100644 idoc/www/tcllib/files/modules/grammar_me/me_intro.html create mode 100644 idoc/www/tcllib/files/modules/grammar_me/me_tcl.html create mode 100644 idoc/www/tcllib/files/modules/grammar_me/me_util.html create mode 100644 idoc/www/tcllib/files/modules/grammar_me/me_vm.html create mode 100644 idoc/www/tcllib/files/modules/grammar_peg/peg.html create mode 100644 idoc/www/tcllib/files/modules/grammar_peg/peg_interp.html create mode 100644 idoc/www/tcllib/files/modules/hook/hook.html create mode 100644 idoc/www/tcllib/files/modules/html/html.html create mode 100644 idoc/www/tcllib/files/modules/htmlparse/htmlparse.html create mode 100644 idoc/www/tcllib/files/modules/http/autoproxy.html create mode 100644 idoc/www/tcllib/files/modules/ident/ident.html create mode 100644 idoc/www/tcllib/files/modules/imap4/imap4.html create mode 100644 idoc/www/tcllib/files/modules/inifile/ini.html create mode 100644 idoc/www/tcllib/files/modules/interp/deleg_method.html create mode 100644 idoc/www/tcllib/files/modules/interp/deleg_proc.html create mode 100644 idoc/www/tcllib/files/modules/interp/tcllib_interp.html create mode 100644 idoc/www/tcllib/files/modules/irc/irc.html create mode 100644 idoc/www/tcllib/files/modules/irc/picoirc.html create mode 100644 idoc/www/tcllib/files/modules/javascript/javascript.html create mode 100644 idoc/www/tcllib/files/modules/jpeg/jpeg.html create mode 100644 idoc/www/tcllib/files/modules/json/json.html create mode 100644 idoc/www/tcllib/files/modules/json/json_write.html create mode 100644 idoc/www/tcllib/files/modules/lambda/lambda.html create mode 100644 idoc/www/tcllib/files/modules/ldap/ldap.html create mode 100644 idoc/www/tcllib/files/modules/ldap/ldapx.html create mode 100644 idoc/www/tcllib/files/modules/log/log.html create mode 100644 idoc/www/tcllib/files/modules/log/logger.html create mode 100644 idoc/www/tcllib/files/modules/log/loggerAppender.html create mode 100644 idoc/www/tcllib/files/modules/log/loggerUtils.html create mode 100644 idoc/www/tcllib/files/modules/map/map_geocode_nominatim.html create mode 100644 idoc/www/tcllib/files/modules/map/map_slippy.html create mode 100644 idoc/www/tcllib/files/modules/map/map_slippy_cache.html create mode 100644 idoc/www/tcllib/files/modules/map/map_slippy_fetcher.html create mode 100644 idoc/www/tcllib/files/modules/mapproj/mapproj.html create mode 100644 idoc/www/tcllib/files/modules/math/bigfloat.html create mode 100644 idoc/www/tcllib/files/modules/math/bignum.html create mode 100644 idoc/www/tcllib/files/modules/math/calculus.html create mode 100644 idoc/www/tcllib/files/modules/math/combinatorics.html create mode 100644 idoc/www/tcllib/files/modules/math/constants.html create mode 100644 idoc/www/tcllib/files/modules/math/decimal.html create mode 100644 idoc/www/tcllib/files/modules/math/exact.html create mode 100644 idoc/www/tcllib/files/modules/math/fourier.html create mode 100644 idoc/www/tcllib/files/modules/math/fuzzy.html create mode 100644 idoc/www/tcllib/files/modules/math/interpolate.html create mode 100644 idoc/www/tcllib/files/modules/math/linalg.html create mode 100644 idoc/www/tcllib/files/modules/math/machineparameters.html create mode 100644 idoc/www/tcllib/files/modules/math/math.html create mode 100644 idoc/www/tcllib/files/modules/math/math_geometry.html create mode 100644 idoc/www/tcllib/files/modules/math/numtheory.html create mode 100644 idoc/www/tcllib/files/modules/math/optimize.html create mode 100644 idoc/www/tcllib/files/modules/math/polynomials.html create mode 100644 idoc/www/tcllib/files/modules/math/qcomplex.html create mode 100644 idoc/www/tcllib/files/modules/math/rational_funcs.html create mode 100644 idoc/www/tcllib/files/modules/math/roman.html create mode 100644 idoc/www/tcllib/files/modules/math/romberg.html create mode 100644 idoc/www/tcllib/files/modules/math/special.html create mode 100644 idoc/www/tcllib/files/modules/math/statistics.html create mode 100644 idoc/www/tcllib/files/modules/math/symdiff.html create mode 100644 idoc/www/tcllib/files/modules/md4/md4.html create mode 100644 idoc/www/tcllib/files/modules/md5/md5.html create mode 100644 idoc/www/tcllib/files/modules/md5crypt/md5crypt.html create mode 100644 idoc/www/tcllib/files/modules/mime/mime.html create mode 100644 idoc/www/tcllib/files/modules/mime/smtp.html create mode 100644 idoc/www/tcllib/files/modules/multiplexer/multiplexer.html create mode 100644 idoc/www/tcllib/files/modules/namespacex/namespacex.html create mode 100644 idoc/www/tcllib/files/modules/ncgi/ncgi.html create mode 100644 idoc/www/tcllib/files/modules/nettool/nettool.html create mode 100644 idoc/www/tcllib/files/modules/nmea/nmea.html create mode 100644 idoc/www/tcllib/files/modules/nns/nns_auto.html create mode 100644 idoc/www/tcllib/files/modules/nns/nns_client.html create mode 100644 idoc/www/tcllib/files/modules/nns/nns_common.html create mode 100644 idoc/www/tcllib/files/modules/nns/nns_intro.html create mode 100644 idoc/www/tcllib/files/modules/nns/nns_protocol.html create mode 100644 idoc/www/tcllib/files/modules/nns/nns_server.html create mode 100644 idoc/www/tcllib/files/modules/nntp/nntp.html create mode 100644 idoc/www/tcllib/files/modules/ntp/ntp_time.html create mode 100644 idoc/www/tcllib/files/modules/oauth/oauth.html create mode 100644 idoc/www/tcllib/files/modules/ooutil/ooutil.html create mode 100644 idoc/www/tcllib/files/modules/otp/otp.html create mode 100644 idoc/www/tcllib/files/modules/page/page_intro.html create mode 100644 idoc/www/tcllib/files/modules/page/page_pluginmgr.html create mode 100644 idoc/www/tcllib/files/modules/page/page_util_flow.html create mode 100644 idoc/www/tcllib/files/modules/page/page_util_norm_lemon.html create mode 100644 idoc/www/tcllib/files/modules/page/page_util_norm_peg.html create mode 100644 idoc/www/tcllib/files/modules/page/page_util_peg.html create mode 100644 idoc/www/tcllib/files/modules/page/page_util_quote.html create mode 100644 idoc/www/tcllib/files/modules/pki/pki.html create mode 100644 idoc/www/tcllib/files/modules/pluginmgr/pluginmgr.html create mode 100644 idoc/www/tcllib/files/modules/png/png.html create mode 100644 idoc/www/tcllib/files/modules/pop3/pop3.html create mode 100644 idoc/www/tcllib/files/modules/pop3d/pop3d.html create mode 100644 idoc/www/tcllib/files/modules/pop3d/pop3d_dbox.html create mode 100644 idoc/www/tcllib/files/modules/pop3d/pop3d_udb.html create mode 100644 idoc/www/tcllib/files/modules/processman/processman.html create mode 100644 idoc/www/tcllib/files/modules/profiler/profiler.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_astree.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_cparam_config_critcl.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_cparam_config_tea.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_from_api.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_introduction.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_json_language.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_param.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_parse_peg.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_parser_api.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_container.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_container_peg.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_export.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_export_container.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_export_json.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_export_peg.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_from_container.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_from_json.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_from_peg.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_import.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_import_container.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_import_json.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_import_peg.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_interp.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_introduction.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_language.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_op.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_to_container.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_to_cparam.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_to_json.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_to_param.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_to_peg.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_peg_to_tclparam.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_pegrammar.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_pexpr_op.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_pexpression.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_pgen.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_rdengine.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_tclparam_config_snit.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_tclparam_config_tcloo.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_to_api.html create mode 100644 idoc/www/tcllib/files/modules/pt/pt_util.html create mode 100644 idoc/www/tcllib/files/modules/rc4/rc4.html create mode 100644 idoc/www/tcllib/files/modules/rcs/rcs.html create mode 100644 idoc/www/tcllib/files/modules/report/report.html create mode 100644 idoc/www/tcllib/files/modules/rest/rest.html create mode 100644 idoc/www/tcllib/files/modules/ripemd/ripemd128.html create mode 100644 idoc/www/tcllib/files/modules/ripemd/ripemd160.html create mode 100644 idoc/www/tcllib/files/modules/sasl/gtoken.html create mode 100644 idoc/www/tcllib/files/modules/sasl/ntlm.html create mode 100644 idoc/www/tcllib/files/modules/sasl/sasl.html create mode 100644 idoc/www/tcllib/files/modules/sasl/scram.html create mode 100644 idoc/www/tcllib/files/modules/sha1/sha1.html create mode 100644 idoc/www/tcllib/files/modules/sha1/sha256.html create mode 100644 idoc/www/tcllib/files/modules/simulation/annealing.html create mode 100644 idoc/www/tcllib/files/modules/simulation/montecarlo.html create mode 100644 idoc/www/tcllib/files/modules/simulation/simulation_random.html create mode 100644 idoc/www/tcllib/files/modules/smtpd/smtpd.html create mode 100644 idoc/www/tcllib/files/modules/snit/snit.html create mode 100644 idoc/www/tcllib/files/modules/snit/snitfaq.html create mode 100644 idoc/www/tcllib/files/modules/soundex/soundex.html create mode 100644 idoc/www/tcllib/files/modules/stooop/stooop.html create mode 100644 idoc/www/tcllib/files/modules/stooop/switched.html create mode 100644 idoc/www/tcllib/files/modules/string/token.html create mode 100644 idoc/www/tcllib/files/modules/string/token_shell.html create mode 100644 idoc/www/tcllib/files/modules/stringprep/stringprep.html create mode 100644 idoc/www/tcllib/files/modules/stringprep/stringprep_data.html create mode 100644 idoc/www/tcllib/files/modules/stringprep/unicode.html create mode 100644 idoc/www/tcllib/files/modules/stringprep/unicode_data.html create mode 100644 idoc/www/tcllib/files/modules/struct/disjointset.html create mode 100644 idoc/www/tcllib/files/modules/struct/graph.html create mode 100644 idoc/www/tcllib/files/modules/struct/graph1.html create mode 100644 idoc/www/tcllib/files/modules/struct/graphops.html create mode 100644 idoc/www/tcllib/files/modules/struct/matrix.html create mode 100644 idoc/www/tcllib/files/modules/struct/matrix1.html create mode 100644 idoc/www/tcllib/files/modules/struct/pool.html create mode 100644 idoc/www/tcllib/files/modules/struct/prioqueue.html create mode 100644 idoc/www/tcllib/files/modules/struct/queue.html create mode 100644 idoc/www/tcllib/files/modules/struct/record.html create mode 100644 idoc/www/tcllib/files/modules/struct/skiplist.html create mode 100644 idoc/www/tcllib/files/modules/struct/stack.html create mode 100644 idoc/www/tcllib/files/modules/struct/struct_list.html create mode 100644 idoc/www/tcllib/files/modules/struct/struct_set.html create mode 100644 idoc/www/tcllib/files/modules/struct/struct_tree.html create mode 100644 idoc/www/tcllib/files/modules/struct/struct_tree1.html create mode 100644 idoc/www/tcllib/files/modules/tar/tar.html create mode 100644 idoc/www/tcllib/files/modules/tepam/tepam_argument_dialogbox.html create mode 100644 idoc/www/tcllib/files/modules/tepam/tepam_doc_gen.html create mode 100644 idoc/www/tcllib/files/modules/tepam/tepam_introduction.html create mode 100644 idoc/www/tcllib/files/modules/tepam/tepam_procedure.html create mode 100644 idoc/www/tcllib/files/modules/term/ansi_cattr.html create mode 100644 idoc/www/tcllib/files/modules/term/ansi_cctrl.html create mode 100644 idoc/www/tcllib/files/modules/term/ansi_cmacros.html create mode 100644 idoc/www/tcllib/files/modules/term/ansi_code.html create mode 100644 idoc/www/tcllib/files/modules/term/ansi_ctrlu.html create mode 100644 idoc/www/tcllib/files/modules/term/ansi_send.html create mode 100644 idoc/www/tcllib/files/modules/term/imenu.html create mode 100644 idoc/www/tcllib/files/modules/term/ipager.html create mode 100644 idoc/www/tcllib/files/modules/term/receive.html create mode 100644 idoc/www/tcllib/files/modules/term/term.html create mode 100644 idoc/www/tcllib/files/modules/term/term_bind.html create mode 100644 idoc/www/tcllib/files/modules/term/term_send.html create mode 100644 idoc/www/tcllib/files/modules/textutil/adjust.html create mode 100644 idoc/www/tcllib/files/modules/textutil/expander.html create mode 100644 idoc/www/tcllib/files/modules/textutil/repeat.html create mode 100644 idoc/www/tcllib/files/modules/textutil/tabify.html create mode 100644 idoc/www/tcllib/files/modules/textutil/textutil.html create mode 100644 idoc/www/tcllib/files/modules/textutil/textutil_split.html create mode 100644 idoc/www/tcllib/files/modules/textutil/textutil_string.html create mode 100644 idoc/www/tcllib/files/modules/textutil/trim.html create mode 100644 idoc/www/tcllib/files/modules/tie/tie.html create mode 100644 idoc/www/tcllib/files/modules/tie/tie_std.html create mode 100644 idoc/www/tcllib/files/modules/tiff/tiff.html create mode 100644 idoc/www/tcllib/files/modules/tool/meta.html create mode 100644 idoc/www/tcllib/files/modules/tool/tool.html create mode 100644 idoc/www/tcllib/files/modules/tool/tool_dict_ensemble.html create mode 100644 idoc/www/tcllib/files/modules/transfer/connect.html create mode 100644 idoc/www/tcllib/files/modules/transfer/copyops.html create mode 100644 idoc/www/tcllib/files/modules/transfer/ddest.html create mode 100644 idoc/www/tcllib/files/modules/transfer/dsource.html create mode 100644 idoc/www/tcllib/files/modules/transfer/receiver.html create mode 100644 idoc/www/tcllib/files/modules/transfer/tqueue.html create mode 100644 idoc/www/tcllib/files/modules/transfer/transmitter.html create mode 100644 idoc/www/tcllib/files/modules/treeql/treeql.html create mode 100644 idoc/www/tcllib/files/modules/try/tcllib_throw.html create mode 100644 idoc/www/tcllib/files/modules/try/tcllib_try.html create mode 100644 idoc/www/tcllib/files/modules/uev/uevent.html create mode 100644 idoc/www/tcllib/files/modules/uev/uevent_onidle.html create mode 100644 idoc/www/tcllib/files/modules/units/units.html create mode 100644 idoc/www/tcllib/files/modules/uri/uri.html create mode 100644 idoc/www/tcllib/files/modules/uri/urn-scheme.html create mode 100644 idoc/www/tcllib/files/modules/uuid/uuid.html create mode 100644 idoc/www/tcllib/files/modules/valtype/cc_amex.html create mode 100644 idoc/www/tcllib/files/modules/valtype/cc_discover.html create mode 100644 idoc/www/tcllib/files/modules/valtype/cc_mastercard.html create mode 100644 idoc/www/tcllib/files/modules/valtype/cc_visa.html create mode 100644 idoc/www/tcllib/files/modules/valtype/ean13.html create mode 100644 idoc/www/tcllib/files/modules/valtype/iban.html create mode 100644 idoc/www/tcllib/files/modules/valtype/imei.html create mode 100644 idoc/www/tcllib/files/modules/valtype/isbn.html create mode 100644 idoc/www/tcllib/files/modules/valtype/luhn.html create mode 100644 idoc/www/tcllib/files/modules/valtype/luhn5.html create mode 100644 idoc/www/tcllib/files/modules/valtype/usnpi.html create mode 100644 idoc/www/tcllib/files/modules/valtype/valtype_common.html create mode 100644 idoc/www/tcllib/files/modules/valtype/verhoeff.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/cat.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/facade.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/halfpipe.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/nullzero.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/randseed.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/std.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/tcllib_fifo.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/tcllib_fifo2.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/tcllib_memchan.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/tcllib_null.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/tcllib_random.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/tcllib_string.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/tcllib_variable.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/tcllib_zero.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_base/textwindow.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_core/core.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_core/events.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_core/transformcore.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/adler32.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/hex.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/identity.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/limitsize.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/observe.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/rot.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/spacer.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/tcllib_zlib.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/vt_base64.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/vt_counter.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/vt_crc32.html create mode 100644 idoc/www/tcllib/files/modules/virtchannel_transform/vt_otp.html create mode 100644 idoc/www/tcllib/files/modules/websocket/websocket.html create mode 100644 idoc/www/tcllib/files/modules/wip/wip.html create mode 100644 idoc/www/tcllib/files/modules/yaml/huddle.html create mode 100644 idoc/www/tcllib/files/modules/yaml/yaml.html create mode 100644 idoc/www/tcllib/files/modules/zip/decode.html create mode 100644 idoc/www/tcllib/files/modules/zip/encode.html create mode 100644 idoc/www/tcllib/files/modules/zip/mkzip.html create mode 100644 idoc/www/tcllib/toc.html create mode 100644 idoc/www/toc.html create mode 100644 idoc/www/toc0.html create mode 100644 idoc/www/toc1.html create mode 100644 idoc/www/toc2.html create mode 100755 installer.tcl create mode 100644 license.terms create mode 100644 modules/aes/ChangeLog create mode 100644 modules/aes/aes.bench create mode 100644 modules/aes/aes.man create mode 100644 modules/aes/aes.pcx create mode 100644 modules/aes/aes.tcl create mode 100644 modules/aes/aes.test create mode 100644 modules/aes/pkgIndex.tcl create mode 100644 modules/amazon-s3/ChangeLog create mode 100644 modules/amazon-s3/LICENSE.txt create mode 100644 modules/amazon-s3/README.txt create mode 100644 modules/amazon-s3/S3.man create mode 100644 modules/amazon-s3/S3.tcl create mode 100644 modules/amazon-s3/S3.test create mode 100644 modules/amazon-s3/TODO.txt create mode 100644 modules/amazon-s3/pkgIndex.tcl create mode 100644 modules/amazon-s3/test-S3.config create mode 100644 modules/amazon-s3/xsxp.man create mode 100644 modules/amazon-s3/xsxp.tcl create mode 100644 modules/amazon-s3/xsxp.test create mode 100644 modules/asn/ChangeLog create mode 100644 modules/asn/asn.bench create mode 100644 modules/asn/asn.man create mode 100644 modules/asn/asn.pcx create mode 100644 modules/asn/asn.tcl create mode 100644 modules/asn/asn.test create mode 100644 modules/asn/laymans_guide.txt create mode 100644 modules/asn/pkgIndex.tcl create mode 100644 modules/base32/ChangeLog create mode 100644 modules/base32/base32.bench create mode 100644 modules/base32/base32.man create mode 100644 modules/base32/base32.pcx create mode 100644 modules/base32/base32.tcl create mode 100644 modules/base32/base32.test create mode 100644 modules/base32/base32.testsuite create mode 100644 modules/base32/base32_c.tcl create mode 100644 modules/base32/base32_core.pcx create mode 100644 modules/base32/base32_hex.pcx create mode 100644 modules/base32/base32_tcl.tcl create mode 100644 modules/base32/base32core.man create mode 100644 modules/base32/base32core.tcl create mode 100644 modules/base32/base32hex.bench create mode 100644 modules/base32/base32hex.man create mode 100644 modules/base32/base32hex.tcl create mode 100644 modules/base32/base32hex.test create mode 100644 modules/base32/base32hex.testsuite create mode 100644 modules/base32/base32hex_c.tcl create mode 100644 modules/base32/base32hex_tcl.tcl create mode 100644 modules/base32/pkgIndex.tcl create mode 100644 modules/base64/ChangeLog create mode 100644 modules/base64/ascii85.man create mode 100644 modules/base64/ascii85.pcx create mode 100644 modules/base64/ascii85.tcl create mode 100644 modules/base64/ascii85.test create mode 100644 modules/base64/base64.bench create mode 100644 modules/base64/base64.man create mode 100644 modules/base64/base64.pcx create mode 100644 modules/base64/base64.tcl create mode 100644 modules/base64/base64.test create mode 100644 modules/base64/base64c.tcl create mode 100644 modules/base64/pkgIndex.tcl create mode 100644 modules/base64/uuencode.bench create mode 100644 modules/base64/uuencode.man create mode 100644 modules/base64/uuencode.pcx create mode 100644 modules/base64/uuencode.tcl create mode 100644 modules/base64/uuencode.test create mode 100644 modules/base64/yencode.bench create mode 100644 modules/base64/yencode.man create mode 100644 modules/base64/yencode.pcx create mode 100644 modules/base64/yencode.tcl create mode 100644 modules/base64/yencode.test create mode 100644 modules/base64/yencode.test.data create mode 100644 modules/base64/yencode.test.out create mode 100644 modules/bee/ChangeLog create mode 100644 modules/bee/bee.bench create mode 100644 modules/bee/bee.man create mode 100644 modules/bee/bee.pcx create mode 100644 modules/bee/bee.tcl create mode 100644 modules/bee/bee.test create mode 100644 modules/bee/example.torrent create mode 100644 modules/bee/pkgIndex.tcl create mode 100644 modules/bench/ChangeLog create mode 100644 modules/bench/bench.man create mode 100644 modules/bench/bench.tcl create mode 100644 modules/bench/bench_intro.man create mode 100644 modules/bench/bench_lang_intro.man create mode 100644 modules/bench/bench_lang_spec.man create mode 100644 modules/bench/bench_read.man create mode 100644 modules/bench/bench_read.tcl create mode 100644 modules/bench/bench_wcsv.man create mode 100644 modules/bench/bench_wcsv.tcl create mode 100644 modules/bench/bench_wtext.man create mode 100644 modules/bench/bench_wtext.tcl create mode 100644 modules/bench/libbench.tcl create mode 100644 modules/bench/pkgIndex.tcl create mode 100644 modules/bibtex/ChangeLog create mode 100644 modules/bibtex/bibtex.man create mode 100644 modules/bibtex/bibtex.pcx create mode 100644 modules/bibtex/bibtex.tcl create mode 100644 modules/bibtex/bibtex.test create mode 100644 modules/bibtex/bytecode.bib create mode 100644 modules/bibtex/penn_sub.bib create mode 100644 modules/bibtex/pkgIndex.tcl create mode 100644 modules/blowfish/ChangeLog create mode 100644 modules/blowfish/blowfish.bench create mode 100644 modules/blowfish/blowfish.man create mode 100644 modules/blowfish/blowfish.tcl create mode 100644 modules/blowfish/blowfish.test create mode 100644 modules/blowfish/pkgIndex.tcl create mode 100644 modules/cache/ChangeLog create mode 100644 modules/cache/async.man create mode 100644 modules/cache/async.tcl create mode 100644 modules/cache/async.test create mode 100644 modules/cache/pkgIndex.tcl create mode 100644 modules/calendar/ChangeLog create mode 100644 modules/calendar/calendar.tcl create mode 100644 modules/calendar/gregorian.tcl create mode 100644 modules/calendar/gregorian.test create mode 100644 modules/calendar/pkgIndex.tcl create mode 100644 modules/calendar/tclIndex create mode 100644 modules/clock/ChangeLog create mode 100644 modules/clock/iso8601.man create mode 100644 modules/clock/iso8601.pcx create mode 100644 modules/clock/iso8601.tcl create mode 100644 modules/clock/iso8601.test create mode 100644 modules/clock/pkgIndex.tcl create mode 100644 modules/clock/rfc2822.man create mode 100644 modules/clock/rfc2822.pcx create mode 100644 modules/clock/rfc2822.tcl create mode 100644 modules/clock/rfc2822.test create mode 100644 modules/cmdline/ChangeLog create mode 100644 modules/cmdline/cmdline.man create mode 100644 modules/cmdline/cmdline.pcx create mode 100644 modules/cmdline/cmdline.tcl create mode 100644 modules/cmdline/cmdline.test create mode 100644 modules/cmdline/pkgIndex.tcl create mode 100644 modules/cmdline/typedCmdline.test create mode 100644 modules/comm/ChangeLog create mode 100644 modules/comm/comm.LICENSE create mode 100644 modules/comm/comm.man create mode 100644 modules/comm/comm.n.html create mode 100644 modules/comm/comm.pcx create mode 100644 modules/comm/comm.slaveboot create mode 100644 modules/comm/comm.tcl create mode 100644 modules/comm/comm.test create mode 100644 modules/comm/comm_wire.man create mode 100644 modules/comm/pkgIndex.tcl create mode 100644 modules/common-text/tls-security-notes.inc create mode 100644 modules/control/ChangeLog create mode 100644 modules/control/ascaller.tcl create mode 100644 modules/control/assert.tcl create mode 100644 modules/control/control.man create mode 100644 modules/control/control.tcl create mode 100644 modules/control/do.tcl create mode 100644 modules/control/do.test create mode 100644 modules/control/genIndex create mode 100644 modules/control/no-op.tcl create mode 100644 modules/control/no-op.test create mode 100644 modules/control/pkgIndex.tcl create mode 100644 modules/control/tclIndex create mode 100644 modules/coroutine/ChangeLog create mode 100644 modules/coroutine/coro_auto.man create mode 100644 modules/coroutine/coro_auto.tcl create mode 100644 modules/coroutine/coroutine.pcx create mode 100644 modules/coroutine/coroutine.tcl create mode 100644 modules/coroutine/coroutine_auto.pcx create mode 100644 modules/coroutine/pkgIndex.tcl create mode 100644 modules/coroutine/tcllib_coroutine.man create mode 100644 modules/counter/ChangeLog create mode 100644 modules/counter/counter.man create mode 100644 modules/counter/counter.tcl create mode 100644 modules/counter/counter.test create mode 100644 modules/counter/pkgIndex.tcl create mode 100644 modules/crc/ChangeLog create mode 100644 modules/crc/cksum.bench create mode 100644 modules/crc/cksum.man create mode 100644 modules/crc/cksum.pcx create mode 100644 modules/crc/cksum.tcl create mode 100644 modules/crc/cksum.test create mode 100644 modules/crc/crc16.bench create mode 100644 modules/crc/crc16.man create mode 100644 modules/crc/crc16.pcx create mode 100644 modules/crc/crc16.tcl create mode 100644 modules/crc/crc16.test create mode 100644 modules/crc/crc32.bench create mode 100644 modules/crc/crc32.man create mode 100644 modules/crc/crc32.pcx create mode 100644 modules/crc/crc32.tcl create mode 100644 modules/crc/crc32.test create mode 100644 modules/crc/crc32bugs.test create mode 100644 modules/crc/crcc.tcl create mode 100644 modules/crc/pkgIndex.tcl create mode 100644 modules/crc/sum.bench create mode 100644 modules/crc/sum.man create mode 100644 modules/crc/sum.pcx create mode 100644 modules/crc/sum.tcl create mode 100644 modules/crc/sum.test create mode 100644 modules/cron/cron.man create mode 100644 modules/cron/cron.tcl create mode 100644 modules/cron/cron.test create mode 100644 modules/cron/pkgIndex.tcl create mode 100644 modules/csv/2926387.csv create mode 100644 modules/csv/ChangeLog create mode 100644 modules/csv/csv.bench create mode 100644 modules/csv/csv.man create mode 100644 modules/csv/csv.pcx create mode 100644 modules/csv/csv.tcl create mode 100644 modules/csv/csv.test create mode 100644 modules/csv/eval.csv create mode 100644 modules/csv/mem_debug_bench.csv create mode 100644 modules/csv/mem_debug_bench_a.csv create mode 100644 modules/csv/pkgIndex.tcl create mode 100644 modules/debug/ChangeLog create mode 100644 modules/debug/caller.tcl create mode 100644 modules/debug/debug.man create mode 100644 modules/debug/debug.tcl create mode 100644 modules/debug/debug_caller.man create mode 100644 modules/debug/debug_heartbeat.man create mode 100644 modules/debug/debug_timestamp.man create mode 100644 modules/debug/heartbeat.tcl create mode 100644 modules/debug/pkgIndex.tcl create mode 100644 modules/debug/timestamp.tcl create mode 100644 modules/des/ChangeLog create mode 100644 modules/des/des.bench create mode 100644 modules/des/des.man create mode 100644 modules/des/des.tcl create mode 100644 modules/des/des.test create mode 100644 modules/des/pkgIndex.tcl create mode 100644 modules/des/tcldes.man create mode 100644 modules/des/tcldes.tcl create mode 100644 modules/des/tcldesjr.man create mode 100644 modules/des/tcldesjr.tcl create mode 100644 modules/devtools/ChangeLog create mode 100644 modules/devtools/README create mode 100644 modules/devtools/ca.crt create mode 100644 modules/devtools/ca.key create mode 100644 modules/devtools/ca.key.password create mode 100644 modules/devtools/coserv.tcl create mode 100644 modules/devtools/dialog.tcl create mode 100644 modules/devtools/receiver.crt create mode 100644 modules/devtools/receiver.key create mode 100644 modules/devtools/testutilities.tcl create mode 100644 modules/devtools/transmitter.crt create mode 100644 modules/devtools/transmitter.key create mode 100644 modules/dicttool/dicttool.man create mode 100644 modules/dicttool/dicttool.md create mode 100644 modules/dicttool/dicttool.tcl create mode 100644 modules/dicttool/pkgIndex.tcl create mode 100644 modules/dns/ChangeLog create mode 100644 modules/dns/dns-url.txt create mode 100644 modules/dns/dns.tcl create mode 100644 modules/dns/dns.test create mode 100644 modules/dns/ip.tcl create mode 100644 modules/dns/ip.test create mode 100644 modules/dns/ipMore.tcl create mode 100644 modules/dns/ipMore.test create mode 100644 modules/dns/ipMoreC.tcl create mode 100644 modules/dns/msgs/en.msg create mode 100644 modules/dns/pkgIndex.tcl create mode 100644 modules/dns/resolv.tcl create mode 100644 modules/dns/spf.tcl create mode 100644 modules/dns/spf.test create mode 100644 modules/dns/tcllib_dns.man create mode 100644 modules/dns/tcllib_ip.man create mode 100644 modules/docstrip/ChangeLog create mode 100644 modules/docstrip/docstrip.man create mode 100644 modules/docstrip/docstrip.tcl create mode 100644 modules/docstrip/docstrip.test create mode 100644 modules/docstrip/docstrip_util.man create mode 100644 modules/docstrip/docstrip_util.tcl create mode 100644 modules/docstrip/docstrip_util.test create mode 100644 modules/docstrip/pkgIndex.tcl create mode 100644 modules/docstrip/tcldocstrip.dtx create mode 100644 modules/docstrip/tcldocstrip.ins create mode 100644 modules/docstrip/tcldocstrip.stitch create mode 100644 modules/doctools/ChangeLog create mode 100644 modules/doctools/NOTES create mode 100644 modules/doctools/api.tcl create mode 100644 modules/doctools/api_idx.tcl create mode 100644 modules/doctools/api_toc.tcl create mode 100644 modules/doctools/changelog.man create mode 100644 modules/doctools/changelog.tcl create mode 100644 modules/doctools/checker.tcl create mode 100644 modules/doctools/checker_idx.tcl create mode 100644 modules/doctools/checker_toc.tcl create mode 100644 modules/doctools/cvs.man create mode 100644 modules/doctools/cvs.tcl create mode 100644 modules/doctools/docidx.man create mode 100644 modules/doctools/docidx.tcl create mode 100644 modules/doctools/docidx.test create mode 100644 modules/doctools/docidx_intro.man create mode 100644 modules/doctools/docidx_lang_cmdref.man create mode 100644 modules/doctools/docidx_lang_faq.man create mode 100644 modules/doctools/docidx_lang_intro.man create mode 100644 modules/doctools/docidx_lang_syntax.man create mode 100644 modules/doctools/docidx_plugin_apiref.man create mode 100644 modules/doctools/doctoc.man create mode 100644 modules/doctools/doctoc.tcl create mode 100644 modules/doctools/doctoc.test create mode 100644 modules/doctools/doctoc_intro.man create mode 100644 modules/doctools/doctoc_lang_cmdref.man create mode 100644 modules/doctools/doctoc_lang_faq.man create mode 100644 modules/doctools/doctoc_lang_intro.man create mode 100644 modules/doctools/doctoc_lang_syntax.man create mode 100644 modules/doctools/doctoc_plugin_apiref.man create mode 100644 modules/doctools/doctools.man create mode 100644 modules/doctools/doctools.tcl create mode 100644 modules/doctools/doctools.test create mode 100644 modules/doctools/doctools_intro.man create mode 100644 modules/doctools/doctools_lang_cmdref.man create mode 100644 modules/doctools/doctools_lang_faq.man create mode 100644 modules/doctools/doctools_lang_intro.man create mode 100644 modules/doctools/doctools_lang_syntax.man create mode 100644 modules/doctools/doctools_plugin_apiref.man create mode 100644 modules/doctools/include/examples.inc create mode 100644 modules/doctools/include/placeholder.inc create mode 100755 modules/doctools/mpexpand create mode 100755 modules/doctools/mpexpand.all create mode 100644 modules/doctools/mpexpand.man create mode 100644 modules/doctools/mpformats/_common.tcl create mode 100644 modules/doctools/mpformats/_html.tcl create mode 100644 modules/doctools/mpformats/_idx_common.tcl create mode 100644 modules/doctools/mpformats/_nroff.tcl create mode 100644 modules/doctools/mpformats/_text.tcl create mode 100644 modules/doctools/mpformats/_toc_common.tcl create mode 100644 modules/doctools/mpformats/_xml.tcl create mode 100644 modules/doctools/mpformats/c.msg create mode 100644 modules/doctools/mpformats/de.msg create mode 100644 modules/doctools/mpformats/en.msg create mode 100644 modules/doctools/mpformats/fmt.desc create mode 100644 modules/doctools/mpformats/fmt.html create mode 100644 modules/doctools/mpformats/fmt.latex create mode 100644 modules/doctools/mpformats/fmt.list create mode 100644 modules/doctools/mpformats/fmt.nroff create mode 100644 modules/doctools/mpformats/fmt.null create mode 100644 modules/doctools/mpformats/fmt.text create mode 100644 modules/doctools/mpformats/fmt.tmml create mode 100644 modules/doctools/mpformats/fmt.wiki create mode 100755 modules/doctools/mpformats/fr.msg create mode 100644 modules/doctools/mpformats/idx.html create mode 100644 modules/doctools/mpformats/idx.nroff create mode 100644 modules/doctools/mpformats/idx.null create mode 100644 modules/doctools/mpformats/idx.text create mode 100644 modules/doctools/mpformats/idx.wiki create mode 100644 modules/doctools/mpformats/man.macros create mode 100644 modules/doctools/mpformats/toc.html create mode 100644 modules/doctools/mpformats/toc.nroff create mode 100644 modules/doctools/mpformats/toc.null create mode 100644 modules/doctools/mpformats/toc.text create mode 100644 modules/doctools/mpformats/toc.tmml create mode 100644 modules/doctools/mpformats/toc.wiki create mode 100644 modules/doctools/pkgIndex.tcl create mode 100644 modules/doctools/tests/desc/00 create mode 100644 modules/doctools/tests/desc/01 create mode 100644 modules/doctools/tests/desc/02 create mode 100644 modules/doctools/tests/desc/03 create mode 100644 modules/doctools/tests/desc/04 create mode 100644 modules/doctools/tests/desc/05 create mode 100644 modules/doctools/tests/desc/06 create mode 100644 modules/doctools/tests/desc/07 create mode 100644 modules/doctools/tests/desc/08 create mode 100644 modules/doctools/tests/html/00 create mode 100644 modules/doctools/tests/html/01 create mode 100644 modules/doctools/tests/html/02 create mode 100644 modules/doctools/tests/html/03 create mode 100644 modules/doctools/tests/html/04 create mode 100644 modules/doctools/tests/html/05 create mode 100644 modules/doctools/tests/html/06 create mode 100644 modules/doctools/tests/html/07 create mode 100644 modules/doctools/tests/html/08 create mode 100644 modules/doctools/tests/latex/00 create mode 100644 modules/doctools/tests/latex/01 create mode 100644 modules/doctools/tests/latex/02 create mode 100644 modules/doctools/tests/latex/03 create mode 100644 modules/doctools/tests/latex/04 create mode 100644 modules/doctools/tests/latex/05 create mode 100644 modules/doctools/tests/latex/06 create mode 100644 modules/doctools/tests/latex/07 create mode 100644 modules/doctools/tests/latex/08 create mode 100644 modules/doctools/tests/list/00 create mode 100644 modules/doctools/tests/list/01 create mode 100644 modules/doctools/tests/list/02 create mode 100644 modules/doctools/tests/list/03 create mode 100644 modules/doctools/tests/list/04 create mode 100644 modules/doctools/tests/list/05 create mode 100644 modules/doctools/tests/list/06 create mode 100644 modules/doctools/tests/list/07 create mode 100644 modules/doctools/tests/list/08 create mode 100644 modules/doctools/tests/man/00 create mode 100644 modules/doctools/tests/man/01 create mode 100644 modules/doctools/tests/man/02 create mode 100644 modules/doctools/tests/man/03 create mode 100644 modules/doctools/tests/man/04 create mode 100644 modules/doctools/tests/man/05 create mode 100644 modules/doctools/tests/man/06 create mode 100644 modules/doctools/tests/man/07 create mode 100644 modules/doctools/tests/man/08 create mode 100644 modules/doctools/tests/nroff/00 create mode 100644 modules/doctools/tests/nroff/01 create mode 100644 modules/doctools/tests/nroff/02 create mode 100644 modules/doctools/tests/nroff/03 create mode 100644 modules/doctools/tests/nroff/04 create mode 100644 modules/doctools/tests/nroff/05 create mode 100644 modules/doctools/tests/nroff/06 create mode 100644 modules/doctools/tests/nroff/07 create mode 100644 modules/doctools/tests/nroff/08 create mode 100644 modules/doctools/tests/null/00 create mode 100644 modules/doctools/tests/null/01 create mode 100644 modules/doctools/tests/null/02 create mode 100644 modules/doctools/tests/null/03 create mode 100644 modules/doctools/tests/null/04 create mode 100644 modules/doctools/tests/null/05 create mode 100644 modules/doctools/tests/null/06 create mode 100644 modules/doctools/tests/null/07 create mode 100644 modules/doctools/tests/null/08 create mode 100644 modules/doctools/tests/syntax/e_arg_list create mode 100644 modules/doctools/tests/syntax/e_body create mode 100644 modules/doctools/tests/syntax/e_bodycmd_arg_def1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_arg_def2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_arg_def3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_call1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_call2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_call3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_cmd_def1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_cmd_def2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_cmd_def3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_def1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_def2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_def3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_enum1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_enum2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_enum3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_example1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_example2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_example3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_example_begin1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_example_begin2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_example_begin3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_item1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_item2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_item3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_list_begin1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_list_begin2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_list_begin3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_list_end1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_list_end2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_list_end3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_manpage_end create mode 100644 modules/doctools/tests/syntax/e_bodycmd_opt_def1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_opt_def2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_opt_def3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_para1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_para2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_para3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_section1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_section2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_section3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_sectref1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_sectref2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_sectref3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_subsection1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_subsection2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_subsection3 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_tkoption_def1 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_tkoption_def2 create mode 100644 modules/doctools/tests/syntax/e_bodycmd_tkoption_def3 create mode 100644 modules/doctools/tests/syntax/e_bulletlist create mode 100644 modules/doctools/tests/syntax/e_cmd_list create mode 100644 modules/doctools/tests/syntax/e_deflist_call create mode 100644 modules/doctools/tests/syntax/e_deflist_def create mode 100644 modules/doctools/tests/syntax/e_end_open_example create mode 100644 modules/doctools/tests/syntax/e_end_open_list create mode 100644 modules/doctools/tests/syntax/e_end_open_mp create mode 100644 modules/doctools/tests/syntax/e_enumlist create mode 100644 modules/doctools/tests/syntax/e_examplecmd1 create mode 100644 modules/doctools/tests/syntax/e_examplecmd2 create mode 100644 modules/doctools/tests/syntax/e_examplecmd3 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_copyright1 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_copyright2 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_description1 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_description2 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_moddesc1 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_moddesc2 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_require1 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_require2 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_titledesc1 create mode 100644 modules/doctools/tests/syntax/e_hdrcmd_titledesc2 create mode 100644 modules/doctools/tests/syntax/e_invalidlist_list_begin create mode 100644 modules/doctools/tests/syntax/e_listcmd_arg_def create mode 100644 modules/doctools/tests/syntax/e_listcmd_call create mode 100644 modules/doctools/tests/syntax/e_listcmd_cmd_def create mode 100644 modules/doctools/tests/syntax/e_listcmd_def create mode 100644 modules/doctools/tests/syntax/e_listcmd_enum create mode 100644 modules/doctools/tests/syntax/e_listcmd_item create mode 100644 modules/doctools/tests/syntax/e_listcmd_opt_def create mode 100644 modules/doctools/tests/syntax/e_listcmd_tkoption_def create mode 100644 modules/doctools/tests/syntax/e_mpbegin create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_arg create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_class create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_cmd create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_comment create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_const create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_emph create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_file create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_fun create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_keywords create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_method create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_namespace create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_opt create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_option create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_package create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_see_also create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_syscmd create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_term create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_type create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_uri create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_usage create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_var create mode 100644 modules/doctools/tests/syntax/e_nodonecmd_widget create mode 100644 modules/doctools/tests/syntax/e_nolistcmd_section create mode 100644 modules/doctools/tests/syntax/e_nolistcmd_subsection create mode 100644 modules/doctools/tests/syntax/e_nolisthdr_example create mode 100644 modules/doctools/tests/syntax/e_nolisthdr_example_begin create mode 100644 modules/doctools/tests/syntax/e_nolisthdr_list_begin create mode 100644 modules/doctools/tests/syntax/e_nolisthdr_para create mode 100644 modules/doctools/tests/syntax/e_nolisthdr_sectref create mode 100644 modules/doctools/tests/syntax/e_nolisttxt create mode 100644 modules/doctools/tests/syntax/e_opt_list create mode 100644 modules/doctools/tests/syntax/e_tkoption_list create mode 100644 modules/doctools/tests/syntax/r_arg_list create mode 100644 modules/doctools/tests/syntax/r_body create mode 100644 modules/doctools/tests/syntax/r_bodycmd_arg_def1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_arg_def2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_arg_def3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_call1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_call2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_call3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_cmd_def1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_cmd_def2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_cmd_def3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_def1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_def2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_def3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_enum1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_enum2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_enum3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_example1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_example2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_example3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_example_begin1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_example_begin2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_example_begin3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_item1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_item2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_item3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_list_begin1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_list_begin2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_list_begin3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_list_end1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_list_end2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_list_end3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_manpage_end create mode 100644 modules/doctools/tests/syntax/r_bodycmd_opt_def1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_opt_def2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_opt_def3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_para1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_para2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_para3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_section1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_section2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_section3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_sectref1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_sectref2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_sectref3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_subsection1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_subsection2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_subsection3 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_tkoption_def1 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_tkoption_def2 create mode 100644 modules/doctools/tests/syntax/r_bodycmd_tkoption_def3 create mode 100644 modules/doctools/tests/syntax/r_bulletlist create mode 100644 modules/doctools/tests/syntax/r_cmd_list create mode 100644 modules/doctools/tests/syntax/r_deflist_call create mode 100644 modules/doctools/tests/syntax/r_deflist_def create mode 100644 modules/doctools/tests/syntax/r_end_open_example create mode 100644 modules/doctools/tests/syntax/r_end_open_list create mode 100644 modules/doctools/tests/syntax/r_end_open_mp create mode 100644 modules/doctools/tests/syntax/r_enumlist create mode 100644 modules/doctools/tests/syntax/r_examplecmd1 create mode 100644 modules/doctools/tests/syntax/r_examplecmd2 create mode 100644 modules/doctools/tests/syntax/r_examplecmd3 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_copyright1 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_copyright2 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_description1 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_description2 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_moddesc1 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_moddesc2 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_require1 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_require2 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_titledesc1 create mode 100644 modules/doctools/tests/syntax/r_hdrcmd_titledesc2 create mode 100644 modules/doctools/tests/syntax/r_invalidlist_list_begin create mode 100644 modules/doctools/tests/syntax/r_listcmd_arg_def create mode 100644 modules/doctools/tests/syntax/r_listcmd_call create mode 100644 modules/doctools/tests/syntax/r_listcmd_cmd_def create mode 100644 modules/doctools/tests/syntax/r_listcmd_def create mode 100644 modules/doctools/tests/syntax/r_listcmd_enum create mode 100644 modules/doctools/tests/syntax/r_listcmd_item create mode 100644 modules/doctools/tests/syntax/r_listcmd_opt_def create mode 100644 modules/doctools/tests/syntax/r_listcmd_tkoption_def create mode 100644 modules/doctools/tests/syntax/r_mpbegin create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_arg create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_class create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_cmd create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_comment create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_const create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_emph create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_file create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_fun create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_keywords create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_method create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_namespace create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_opt create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_option create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_package create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_see_also create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_syscmd create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_term create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_type create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_uri create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_usage create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_var create mode 100644 modules/doctools/tests/syntax/r_nodonecmd_widget create mode 100644 modules/doctools/tests/syntax/r_nolistcmd_section create mode 100644 modules/doctools/tests/syntax/r_nolistcmd_subsection create mode 100644 modules/doctools/tests/syntax/r_nolisthdr_example create mode 100644 modules/doctools/tests/syntax/r_nolisthdr_example_begin create mode 100644 modules/doctools/tests/syntax/r_nolisthdr_list_begin create mode 100644 modules/doctools/tests/syntax/r_nolisthdr_para create mode 100644 modules/doctools/tests/syntax/r_nolisthdr_sectref create mode 100644 modules/doctools/tests/syntax/r_nolisttxt create mode 100644 modules/doctools/tests/syntax/r_opt_list create mode 100644 modules/doctools/tests/syntax/r_tkoption_list create mode 100644 modules/doctools/tests/text/00 create mode 100644 modules/doctools/tests/text/01 create mode 100644 modules/doctools/tests/text/02 create mode 100644 modules/doctools/tests/text/03 create mode 100644 modules/doctools/tests/text/04 create mode 100644 modules/doctools/tests/text/05 create mode 100644 modules/doctools/tests/text/06 create mode 100644 modules/doctools/tests/text/07 create mode 100644 modules/doctools/tests/text/08 create mode 100644 modules/doctools/tests/tmml/00 create mode 100644 modules/doctools/tests/tmml/01 create mode 100644 modules/doctools/tests/tmml/02 create mode 100644 modules/doctools/tests/tmml/03 create mode 100644 modules/doctools/tests/tmml/04 create mode 100644 modules/doctools/tests/tmml/05 create mode 100644 modules/doctools/tests/tmml/06 create mode 100644 modules/doctools/tests/tmml/07 create mode 100644 modules/doctools/tests/tmml/08 create mode 100644 modules/doctools/tests/wiki/00 create mode 100644 modules/doctools/tests/wiki/01 create mode 100644 modules/doctools/tests/wiki/02 create mode 100644 modules/doctools/tests/wiki/03 create mode 100644 modules/doctools/tests/wiki/04 create mode 100644 modules/doctools/tests/wiki/05 create mode 100644 modules/doctools/tests/wiki/06 create mode 100644 modules/doctools/tests/wiki/07 create mode 100644 modules/doctools/tests/wiki/08 create mode 100755 modules/doctools/tocexpand create mode 100644 modules/doctools2base/ChangeLog create mode 100644 modules/doctools2base/config.tcl create mode 100644 modules/doctools2base/html.tcl create mode 100644 modules/doctools2base/html_cssdefaults.man create mode 100644 modules/doctools2base/html_cssdefaults.tcl create mode 100644 modules/doctools2base/include/feedback.inc create mode 100644 modules/doctools2base/msgcat.tcl create mode 100644 modules/doctools2base/msgcat.test create mode 100644 modules/doctools2base/nroff_manmacros.man create mode 100644 modules/doctools2base/nroff_manmacros.tcl create mode 100644 modules/doctools2base/paths.tcl create mode 100644 modules/doctools2base/pkgIndex.tcl create mode 100644 modules/doctools2base/tcl_parse.man create mode 100644 modules/doctools2base/tcl_parse.tcl create mode 100644 modules/doctools2base/tcl_parse.test create mode 100644 modules/doctools2base/tcllib_msgcat.man create mode 100644 modules/doctools2base/tests/common create mode 100644 modules/doctools2base/tests/tcl_data/fail/in/1_command create mode 100644 modules/doctools2base/tests/tcl_data/fail/in/2_unexpected_eof create mode 100644 modules/doctools2base/tests/tcl_data/fail/in/3_unexpected_char create mode 100644 modules/doctools2base/tests/tcl_data/fail/out-ec/1_command create mode 100644 modules/doctools2base/tests/tcl_data/fail/out-ec/2_unexpected_eof create mode 100644 modules/doctools2base/tests/tcl_data/fail/out-ec/3_unexpected_char create mode 100644 modules/doctools2base/tests/tcl_data/fail/out/1_command create mode 100644 modules/doctools2base/tests/tcl_data/fail/out/2_unexpected_eof create mode 100644 modules/doctools2base/tests/tcl_data/fail/out/3_unexpected_char create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/01_command1 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/02_command2 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/03_command3 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/04_command4 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/05_command5 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/06_command6 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/07_command7 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/08_command8 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/09_command_nested create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/10_combined create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/11_continuation1 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/12_continuation2 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/13_continuation3 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/14_emptyword1 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/15_emptyword2 create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/16_text create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/17_text_multiline create mode 100644 modules/doctools2base/tests/tcl_data/ok/in/18_command9 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/01_command1 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/02_command2 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/03_command3 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/04_command4 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/05_command5 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/06_command6 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/07_command7 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/08_command8 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/09_command_nested create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/10_combined create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/11_continuation1 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/12_continuation2 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/13_continuation3 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/14_emptyword1 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/15_emptyword2 create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/16_text create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/17_text_multiline create mode 100644 modules/doctools2base/tests/tcl_data/ok/out/18_command9 create mode 100644 modules/doctools2base/tests/tcl_parse create mode 100644 modules/doctools2base/text.tcl create mode 100644 modules/doctools2idx/ChangeLog create mode 100644 modules/doctools2idx/container.tcl create mode 100644 modules/doctools2idx/container.test create mode 100644 modules/doctools2idx/export.tcl create mode 100644 modules/doctools2idx/export.test create mode 100644 modules/doctools2idx/export_docidx.man create mode 100644 modules/doctools2idx/export_docidx.tcl create mode 100644 modules/doctools2idx/export_docidx.test create mode 100644 modules/doctools2idx/export_html.tcl create mode 100644 modules/doctools2idx/export_html.test create mode 100644 modules/doctools2idx/export_json.tcl create mode 100644 modules/doctools2idx/export_json.test create mode 100644 modules/doctools2idx/export_nroff.tcl create mode 100644 modules/doctools2idx/export_nroff.test create mode 100644 modules/doctools2idx/export_text.tcl create mode 100644 modules/doctools2idx/export_text.test create mode 100644 modules/doctools2idx/export_wiki.tcl create mode 100644 modules/doctools2idx/export_wiki.test create mode 100644 modules/doctools2idx/idx_container.man create mode 100644 modules/doctools2idx/idx_export.man create mode 100644 modules/doctools2idx/idx_export_html.man create mode 100644 modules/doctools2idx/idx_export_json.man create mode 100644 modules/doctools2idx/idx_export_nroff.man create mode 100644 modules/doctools2idx/idx_export_text.man create mode 100644 modules/doctools2idx/idx_export_wiki.man create mode 100644 modules/doctools2idx/idx_import.man create mode 100644 modules/doctools2idx/idx_import_json.man create mode 100644 modules/doctools2idx/idx_introduction.man create mode 100644 modules/doctools2idx/idx_msgcat_c.man create mode 100644 modules/doctools2idx/idx_msgcat_de.man create mode 100644 modules/doctools2idx/idx_msgcat_en.man create mode 100644 modules/doctools2idx/idx_msgcat_fr.man create mode 100644 modules/doctools2idx/idx_parse.man create mode 100644 modules/doctools2idx/idx_structure.man create mode 100644 modules/doctools2idx/import.tcl create mode 100644 modules/doctools2idx/import.test create mode 100644 modules/doctools2idx/import_docidx.man create mode 100644 modules/doctools2idx/import_docidx.tcl create mode 100644 modules/doctools2idx/import_docidx.test create mode 100644 modules/doctools2idx/import_json.tcl create mode 100644 modules/doctools2idx/import_json.test create mode 100644 modules/doctools2idx/include/concept.inc create mode 100644 modules/doctools2idx/include/dependencies.inc create mode 100644 modules/doctools2idx/include/export/config/docidx.inc create mode 100644 modules/doctools2idx/include/export/config/html.inc create mode 100644 modules/doctools2idx/include/export/config/json.inc create mode 100644 modules/doctools2idx/include/export/config/nroff.inc create mode 100644 modules/doctools2idx/include/export/config/text.inc create mode 100644 modules/doctools2idx/include/export/config/wiki.inc create mode 100644 modules/doctools2idx/include/export/format/html.inc create mode 100644 modules/doctools2idx/include/export/format/json.inc create mode 100644 modules/doctools2idx/include/export/format/nroff.inc create mode 100644 modules/doctools2idx/include/export/format/null.inc create mode 100644 modules/doctools2idx/include/export/format/text.inc create mode 100644 modules/doctools2idx/include/export/plugin.inc create mode 100644 modules/doctools2idx/include/format/docidx.inc create mode 100644 modules/doctools2idx/include/format/json.inc create mode 100644 modules/doctools2idx/include/import/config/docidx.inc create mode 100644 modules/doctools2idx/include/import/config/json.inc create mode 100644 modules/doctools2idx/include/import/format/docidx.inc create mode 100644 modules/doctools2idx/include/import/format/json.inc create mode 100644 modules/doctools2idx/include/import/plugin.inc create mode 100644 modules/doctools2idx/include/msgcat.inc create mode 100644 modules/doctools2idx/include/serialization.inc create mode 100644 modules/doctools2idx/msgcat_c.tcl create mode 100644 modules/doctools2idx/msgcat_de.tcl create mode 100644 modules/doctools2idx/msgcat_en.tcl create mode 100644 modules/doctools2idx/msgcat_fr.tcl create mode 100644 modules/doctools2idx/parse.tcl create mode 100644 modules/doctools2idx/parse.test create mode 100644 modules/doctools2idx/pkgIndex.tcl create mode 100644 modules/doctools2idx/structure.tcl create mode 100644 modules/doctools2idx/structure.test create mode 100644 modules/doctools2idx/tests/container create mode 100644 modules/doctools2idx/tests/data/bad_command create mode 100644 modules/doctools2idx/tests/data/empty create mode 100644 modules/doctools2idx/tests/data/fail/badtrees.tcl create mode 100644 modules/doctools2idx/tests/data/fail/docidx/01_nonwhitespace1 create mode 100644 modules/doctools2idx/tests/data/fail/docidx/02_nonwhitespace2 create mode 100644 modules/doctools2idx/tests/data/fail/docidx/03_illegalcmd1 create mode 100644 modules/doctools2idx/tests/data/fail/docidx/04_illegalcmd2 create mode 100644 modules/doctools2idx/tests/data/fail/docidx/05_nestingbad1 create mode 100644 modules/doctools2idx/tests/data/fail/docidx/06_nestingbad2 create mode 100644 modules/doctools2idx/tests/data/fail/docidx/07_wrongargs create mode 100644 modules/doctools2idx/tests/data/fail/docidx/08_toomanyargs create mode 100644 modules/doctools2idx/tests/data/fail/docidx/09_vsetvarunknown create mode 100644 modules/doctools2idx/tests/data/fail/docidx/10_vsetvarerr create mode 100644 modules/doctools2idx/tests/data/fail/docidx/11_vsetvalueerr create mode 100644 modules/doctools2idx/tests/data/fail/docidx/12_incerror create mode 100644 modules/doctools2idx/tests/data/fail/docidx/13_incnotfound create mode 100644 modules/doctools2idx/tests/data/fail/docidx/14_incempty create mode 100644 modules/doctools2idx/tests/data/fail/docidx/15_incbadeof create mode 100644 modules/doctools2idx/tests/data/fail/docidx/16_incbadchar create mode 100644 modules/doctools2idx/tests/data/fail/docidx/17_badempty create mode 100644 modules/doctools2idx/tests/data/fail/docidx/18_nobegin create mode 100644 modules/doctools2idx/tests/data/fail/docidx/19_manybegin create mode 100644 modules/doctools2idx/tests/data/fail/docidx/20_latebegin create mode 100644 modules/doctools2idx/tests/data/fail/docidx/21_noend1 create mode 100644 modules/doctools2idx/tests/data/fail/docidx/22_noend2 create mode 100644 modules/doctools2idx/tests/data/fail/docidx/23_manyend create mode 100644 modules/doctools2idx/tests/data/fail/docidx/24_earlyend create mode 100644 modules/doctools2idx/tests/data/fail/docidx/25_nobeginend create mode 100644 modules/doctools2idx/tests/data/fail/docidx/26_latekey create mode 100644 modules/doctools2idx/tests/data/fail/docidx/27_incbadcmd create mode 100644 modules/doctools2idx/tests/data/fail/docidx/28_badredef create mode 100644 modules/doctools2idx/tests/data/fail/docidx/29_badredef2 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/01_nonwhitespace1 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/02_nonwhitespace2 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/03_illegalcmd1 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/04_illegalcmd2 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/05_nestingbad1 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/06_nestingbad2 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/07_wrongargs create mode 100644 modules/doctools2idx/tests/data/fail/ecode/08_toomanyargs create mode 100644 modules/doctools2idx/tests/data/fail/ecode/09_vsetvarunknown create mode 100644 modules/doctools2idx/tests/data/fail/ecode/10_vsetvarerr create mode 100644 modules/doctools2idx/tests/data/fail/ecode/11_vsetvalueerr create mode 100644 modules/doctools2idx/tests/data/fail/ecode/12_incerror create mode 100644 modules/doctools2idx/tests/data/fail/ecode/13_incnotfound create mode 100644 modules/doctools2idx/tests/data/fail/ecode/14_incempty create mode 100644 modules/doctools2idx/tests/data/fail/ecode/15_incbadeof create mode 100644 modules/doctools2idx/tests/data/fail/ecode/16_incbadchar create mode 100644 modules/doctools2idx/tests/data/fail/ecode/17_badempty create mode 100644 modules/doctools2idx/tests/data/fail/ecode/18_nobegin create mode 100644 modules/doctools2idx/tests/data/fail/ecode/19_manybegin create mode 100644 modules/doctools2idx/tests/data/fail/ecode/20_latebegin create mode 100644 modules/doctools2idx/tests/data/fail/ecode/21_noend1 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/22_noend2 create mode 100644 modules/doctools2idx/tests/data/fail/ecode/23_manyend create mode 100644 modules/doctools2idx/tests/data/fail/ecode/24_earlyend create mode 100644 modules/doctools2idx/tests/data/fail/ecode/25_nobeginend create mode 100644 modules/doctools2idx/tests/data/fail/ecode/26_latekey create mode 100644 modules/doctools2idx/tests/data/fail/ecode/27_incbadcmd create mode 100644 modules/doctools2idx/tests/data/fail/ecode/28_badredef create mode 100644 modules/doctools2idx/tests/data/fail/ecode/29_badredef2 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/01_nonwhitespace1 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/02_nonwhitespace2 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/03_illegalcmd1 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/04_illegalcmd2 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/05_nestingbad1 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/06_nestingbad2 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/07_wrongargs create mode 100644 modules/doctools2idx/tests/data/fail/emsg/08_toomanyargs create mode 100644 modules/doctools2idx/tests/data/fail/emsg/09_vsetvarunknown create mode 100644 modules/doctools2idx/tests/data/fail/emsg/10_vsetvarerr create mode 100644 modules/doctools2idx/tests/data/fail/emsg/11_vsetvalueerr create mode 100644 modules/doctools2idx/tests/data/fail/emsg/12_incerror create mode 100644 modules/doctools2idx/tests/data/fail/emsg/13_incnotfound create mode 100644 modules/doctools2idx/tests/data/fail/emsg/14_incempty create mode 100644 modules/doctools2idx/tests/data/fail/emsg/15_incbadeof create mode 100644 modules/doctools2idx/tests/data/fail/emsg/16_incbadchar create mode 100644 modules/doctools2idx/tests/data/fail/emsg/17_badempty create mode 100644 modules/doctools2idx/tests/data/fail/emsg/18_nobegin create mode 100644 modules/doctools2idx/tests/data/fail/emsg/19_manybegin create mode 100644 modules/doctools2idx/tests/data/fail/emsg/20_latebegin create mode 100644 modules/doctools2idx/tests/data/fail/emsg/21_noend1 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/22_noend2 create mode 100644 modules/doctools2idx/tests/data/fail/emsg/23_manyend create mode 100644 modules/doctools2idx/tests/data/fail/emsg/24_earlyend create mode 100644 modules/doctools2idx/tests/data/fail/emsg/25_nobeginend create mode 100644 modules/doctools2idx/tests/data/fail/emsg/26_latekey create mode 100644 modules/doctools2idx/tests/data/fail/emsg/27_incbadcmd create mode 100644 modules/doctools2idx/tests/data/fail/emsg/28_badredef create mode 100644 modules/doctools2idx/tests/data/fail/emsg/29_badredef2 create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/00_short create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/01_tag create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/02_cshort create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/03_misslabel create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/04_misstitle create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/05_misskeywords create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/06_missreferences create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/10_refmismatcha create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/11_refmismatchb create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/12_rargs create mode 100644 modules/doctools2idx/tests/data/fail/json-emsg/13_rtag create mode 100644 modules/doctools2idx/tests/data/fail/json/00_short create mode 100644 modules/doctools2idx/tests/data/fail/json/01_tag create mode 100644 modules/doctools2idx/tests/data/fail/json/02_cshort create mode 100644 modules/doctools2idx/tests/data/fail/json/03_misslabel create mode 100644 modules/doctools2idx/tests/data/fail/json/04_misstitle create mode 100644 modules/doctools2idx/tests/data/fail/json/05_misskeywords create mode 100644 modules/doctools2idx/tests/data/fail/json/06_missreferences create mode 100644 modules/doctools2idx/tests/data/fail/json/10_refmismatcha create mode 100644 modules/doctools2idx/tests/data/fail/json/11_refmismatchb create mode 100644 modules/doctools2idx/tests/data/fail/json/12_rargs create mode 100644 modules/doctools2idx/tests/data/fail/json/13_rtag create mode 100644 modules/doctools2idx/tests/data/ok/docidx-aligned/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-aligned/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-aligned/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/docidx-compact/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-compact/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-compact/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/docidx-indalign/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-indalign/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-indalign/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/docidx-indented/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-indented/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-indented/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/docidx-ultracompact/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-ultracompact/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx-ultracompact/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/docidx/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/docidx/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/html-compact/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/html-compact/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/html-compact/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/html-indented/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/html-indented/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/html-indented/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/html-ultracompact/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/html-ultracompact/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/html-ultracompact/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/json-indalign/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/json-indalign/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/json-indalign/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/json-indented/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/json-indented/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/json-indented/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/json-ultracompact/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/json-ultracompact/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/json-ultracompact/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/json/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/json/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/json/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/json/README.txt create mode 100644 modules/doctools2idx/tests/data/ok/nroff-external/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/nroff-external/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/nroff-external/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/nroff-inlined/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/nroff-inlined/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/nroff-inlined/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/serial-print/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/serial-print/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/serial-print/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/serial/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/serial/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/serial/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/text/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/text/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/text/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/wiki-list/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/wiki-list/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/wiki-list/3_kwic create mode 100644 modules/doctools2idx/tests/data/ok/wiki-table/1_nokeys create mode 100644 modules/doctools2idx/tests/data/ok/wiki-table/2_justkeys create mode 100644 modules/doctools2idx/tests/data/ok/wiki-table/3_kwic create mode 100644 modules/doctools2idx/tests/data/unexpected_char create mode 100644 modules/doctools2idx/tests/data/unexpected_eof create mode 100644 modules/doctools2idx/tests/export create mode 100644 modules/doctools2idx/tests/export_docidx create mode 100644 modules/doctools2idx/tests/export_text create mode 100644 modules/doctools2idx/tests/import create mode 100644 modules/doctools2idx/tests/import_docidx create mode 100644 modules/doctools2idx/tests/parse create mode 100644 modules/doctools2toc/ChangeLog create mode 100644 modules/doctools2toc/container.tcl create mode 100644 modules/doctools2toc/container.test create mode 100644 modules/doctools2toc/export.tcl create mode 100644 modules/doctools2toc/export.test create mode 100644 modules/doctools2toc/export_doctoc.man create mode 100644 modules/doctools2toc/export_doctoc.tcl create mode 100644 modules/doctools2toc/export_doctoc.test create mode 100644 modules/doctools2toc/export_html.tcl create mode 100644 modules/doctools2toc/export_html.test create mode 100644 modules/doctools2toc/export_json.tcl create mode 100644 modules/doctools2toc/export_json.test create mode 100644 modules/doctools2toc/export_nroff.tcl create mode 100644 modules/doctools2toc/export_nroff.test create mode 100644 modules/doctools2toc/export_text.tcl create mode 100644 modules/doctools2toc/export_text.test create mode 100644 modules/doctools2toc/export_wiki.tcl create mode 100644 modules/doctools2toc/export_wiki.test create mode 100644 modules/doctools2toc/import.tcl create mode 100644 modules/doctools2toc/import.test create mode 100644 modules/doctools2toc/import_doctoc.man create mode 100644 modules/doctools2toc/import_doctoc.tcl create mode 100644 modules/doctools2toc/import_doctoc.test create mode 100644 modules/doctools2toc/import_json.tcl create mode 100644 modules/doctools2toc/import_json.test create mode 100644 modules/doctools2toc/include/concept.inc create mode 100644 modules/doctools2toc/include/dependencies.inc create mode 100644 modules/doctools2toc/include/export/config/doctoc.inc create mode 100644 modules/doctools2toc/include/export/config/html.inc create mode 100644 modules/doctools2toc/include/export/config/json.inc create mode 100644 modules/doctools2toc/include/export/config/nroff.inc create mode 100644 modules/doctools2toc/include/export/config/text.inc create mode 100644 modules/doctools2toc/include/export/config/wiki.inc create mode 100644 modules/doctools2toc/include/export/format/html.inc create mode 100644 modules/doctools2toc/include/export/format/json.inc create mode 100644 modules/doctools2toc/include/export/format/nroff.inc create mode 100644 modules/doctools2toc/include/export/format/null.inc create mode 100644 modules/doctools2toc/include/export/format/text.inc create mode 100644 modules/doctools2toc/include/export/plugin.inc create mode 100644 modules/doctools2toc/include/format/doctoc.inc create mode 100644 modules/doctools2toc/include/format/json.inc create mode 100644 modules/doctools2toc/include/import/config/doctoc.inc create mode 100644 modules/doctools2toc/include/import/config/json.inc create mode 100644 modules/doctools2toc/include/import/format/doctoc.inc create mode 100644 modules/doctools2toc/include/import/format/json.inc create mode 100644 modules/doctools2toc/include/import/plugin.inc create mode 100644 modules/doctools2toc/include/msgcat.inc create mode 100644 modules/doctools2toc/include/serialization.inc create mode 100644 modules/doctools2toc/msgcat_c.tcl create mode 100644 modules/doctools2toc/msgcat_de.tcl create mode 100644 modules/doctools2toc/msgcat_en.tcl create mode 100644 modules/doctools2toc/msgcat_fr.tcl create mode 100644 modules/doctools2toc/parse.tcl create mode 100644 modules/doctools2toc/parse.test create mode 100644 modules/doctools2toc/pkgIndex.tcl create mode 100644 modules/doctools2toc/structure.tcl create mode 100644 modules/doctools2toc/structure.test create mode 100644 modules/doctools2toc/tests/container create mode 100644 modules/doctools2toc/tests/container_main create mode 100644 modules/doctools2toc/tests/data/bad_command create mode 100644 modules/doctools2toc/tests/data/empty create mode 100644 modules/doctools2toc/tests/data/fail/badtrees.tcl create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/01_nonwhitespace1 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/02_nonwhitespace2 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/03_illegalcmd1 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/04_illegalcmd2 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/05_nestingbad1 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/06_nestingbad2 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/07_wrongargs create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/08_toomanyargs create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/09_vsetvarunknown create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/10_vsetvarerr create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/11_vsetvalueerr create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/12_incerror create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/13_incnotfound create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/14_incempty create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/15_incbadeof create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/16_incbadchar create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/17_badempty create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/18_nobegin create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/19_manybegin create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/20_latebegin create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/21_noend1 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/22_noend2 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/23_manyend create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/24_earlyend create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/25_nobeginend create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/26_nodivbegin create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/27_incbadcmd create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/28_badredef create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/29_badredef2 create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/30_manydivbegin create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/31_nodivend create mode 100644 modules/doctools2toc/tests/data/fail/doctoc/32_manydivend create mode 100644 modules/doctools2toc/tests/data/fail/ecode/01_nonwhitespace1 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/02_nonwhitespace2 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/03_illegalcmd1 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/04_illegalcmd2 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/05_nestingbad1 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/06_nestingbad2 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/07_wrongargs create mode 100644 modules/doctools2toc/tests/data/fail/ecode/08_toomanyargs create mode 100644 modules/doctools2toc/tests/data/fail/ecode/09_vsetvarunknown create mode 100644 modules/doctools2toc/tests/data/fail/ecode/10_vsetvarerr create mode 100644 modules/doctools2toc/tests/data/fail/ecode/11_vsetvalueerr create mode 100644 modules/doctools2toc/tests/data/fail/ecode/12_incerror create mode 100644 modules/doctools2toc/tests/data/fail/ecode/13_incnotfound create mode 100644 modules/doctools2toc/tests/data/fail/ecode/14_incempty create mode 100644 modules/doctools2toc/tests/data/fail/ecode/15_incbadeof create mode 100644 modules/doctools2toc/tests/data/fail/ecode/16_incbadchar create mode 100644 modules/doctools2toc/tests/data/fail/ecode/17_badempty create mode 100644 modules/doctools2toc/tests/data/fail/ecode/18_nobegin create mode 100644 modules/doctools2toc/tests/data/fail/ecode/19_manybegin create mode 100644 modules/doctools2toc/tests/data/fail/ecode/20_latebegin create mode 100644 modules/doctools2toc/tests/data/fail/ecode/21_noend1 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/22_noend2 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/23_manyend create mode 100644 modules/doctools2toc/tests/data/fail/ecode/24_earlyend create mode 100644 modules/doctools2toc/tests/data/fail/ecode/25_nobeginend create mode 100644 modules/doctools2toc/tests/data/fail/ecode/26_nodivbegin create mode 100644 modules/doctools2toc/tests/data/fail/ecode/27_incbadcmd create mode 100644 modules/doctools2toc/tests/data/fail/ecode/28_badredef create mode 100644 modules/doctools2toc/tests/data/fail/ecode/29_badredef2 create mode 100644 modules/doctools2toc/tests/data/fail/ecode/30_manydivbegin create mode 100644 modules/doctools2toc/tests/data/fail/ecode/31_nodivend create mode 100644 modules/doctools2toc/tests/data/fail/ecode/32_manydivend create mode 100644 modules/doctools2toc/tests/data/fail/emsg/01_nonwhitespace1 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/02_nonwhitespace2 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/03_illegalcmd1 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/04_illegalcmd2 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/05_nestingbad1 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/06_nestingbad2 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/07_wrongargs create mode 100644 modules/doctools2toc/tests/data/fail/emsg/08_toomanyargs create mode 100644 modules/doctools2toc/tests/data/fail/emsg/09_vsetvarunknown create mode 100644 modules/doctools2toc/tests/data/fail/emsg/10_vsetvarerr create mode 100644 modules/doctools2toc/tests/data/fail/emsg/11_vsetvalueerr create mode 100644 modules/doctools2toc/tests/data/fail/emsg/12_incerror create mode 100644 modules/doctools2toc/tests/data/fail/emsg/13_incnotfound create mode 100644 modules/doctools2toc/tests/data/fail/emsg/14_incempty create mode 100644 modules/doctools2toc/tests/data/fail/emsg/15_incbadeof create mode 100644 modules/doctools2toc/tests/data/fail/emsg/16_incbadchar create mode 100644 modules/doctools2toc/tests/data/fail/emsg/17_badempty create mode 100644 modules/doctools2toc/tests/data/fail/emsg/18_nobegin create mode 100644 modules/doctools2toc/tests/data/fail/emsg/19_manybegin create mode 100644 modules/doctools2toc/tests/data/fail/emsg/20_latebegin create mode 100644 modules/doctools2toc/tests/data/fail/emsg/21_noend1 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/22_noend2 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/23_manyend create mode 100644 modules/doctools2toc/tests/data/fail/emsg/24_earlyend create mode 100644 modules/doctools2toc/tests/data/fail/emsg/25_nobeginend create mode 100644 modules/doctools2toc/tests/data/fail/emsg/26_nodivbegin create mode 100644 modules/doctools2toc/tests/data/fail/emsg/27_incbadcmd create mode 100644 modules/doctools2toc/tests/data/fail/emsg/28_badredef create mode 100644 modules/doctools2toc/tests/data/fail/emsg/29_badredef2 create mode 100644 modules/doctools2toc/tests/data/fail/emsg/30_manydivbegin create mode 100644 modules/doctools2toc/tests/data/fail/emsg/31_nodivend create mode 100644 modules/doctools2toc/tests/data/fail/emsg/32_manydivend create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/00_short create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/01_tag create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/02_cshort create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/03_misslabel create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/04_misstitle create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/05_missitems create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/07_cshort2 create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/08_etag create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/09_cshort3 create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/10_missid create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/11_misslabel2 create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/12_missdesc create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/14_dshort create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/15_misslabel3 create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/16_missitems2 create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/19_duplabel create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/20_duplabel2 create mode 100644 modules/doctools2toc/tests/data/fail/json-emsg/21_duplabel3 create mode 100644 modules/doctools2toc/tests/data/fail/json/00_short create mode 100644 modules/doctools2toc/tests/data/fail/json/01_tag create mode 100644 modules/doctools2toc/tests/data/fail/json/02_cshort create mode 100644 modules/doctools2toc/tests/data/fail/json/03_misslabel create mode 100644 modules/doctools2toc/tests/data/fail/json/04_misstitle create mode 100644 modules/doctools2toc/tests/data/fail/json/05_missitems create mode 100644 modules/doctools2toc/tests/data/fail/json/07_cshort2 create mode 100644 modules/doctools2toc/tests/data/fail/json/08_etag create mode 100644 modules/doctools2toc/tests/data/fail/json/09_cshort3 create mode 100644 modules/doctools2toc/tests/data/fail/json/10_missid create mode 100644 modules/doctools2toc/tests/data/fail/json/11_misslabel2 create mode 100644 modules/doctools2toc/tests/data/fail/json/12_missdesc create mode 100644 modules/doctools2toc/tests/data/fail/json/14_dshort create mode 100644 modules/doctools2toc/tests/data/fail/json/15_misslabel3 create mode 100644 modules/doctools2toc/tests/data/fail/json/16_missitems2 create mode 100644 modules/doctools2toc/tests/data/fail/json/19_duplabel create mode 100644 modules/doctools2toc/tests/data/fail/json/20_duplabel2 create mode 100644 modules/doctools2toc/tests/data/fail/json/21_duplabel3 create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-aligned/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-aligned/2_references create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-aligned/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-aligned/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-compact/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-compact/2_references create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-compact/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-compact/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-indalign/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-indalign/2_references create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-indalign/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-indalign/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-indented/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-indented/2_references create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-indented/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-indented/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-ultracompact/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-ultracompact/2_references create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-ultracompact/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/doctoc-ultracompact/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/doctoc/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/doctoc/2_references create mode 100644 modules/doctools2toc/tests/data/ok/doctoc/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/doctoc/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/html-compact/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/html-compact/2_references create mode 100644 modules/doctools2toc/tests/data/ok/html-compact/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/html-compact/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/html-indented/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/html-indented/2_references create mode 100644 modules/doctools2toc/tests/data/ok/html-indented/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/html-indented/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/html-ultracompact/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/html-ultracompact/2_references create mode 100644 modules/doctools2toc/tests/data/ok/html-ultracompact/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/html-ultracompact/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/json-indalign/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/json-indalign/2_references create mode 100644 modules/doctools2toc/tests/data/ok/json-indalign/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/json-indalign/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/json-indented/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/json-indented/2_references create mode 100644 modules/doctools2toc/tests/data/ok/json-indented/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/json-indented/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/json-ultracompact/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/json-ultracompact/2_references create mode 100644 modules/doctools2toc/tests/data/ok/json-ultracompact/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/json-ultracompact/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/json/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/json/2_references create mode 100644 modules/doctools2toc/tests/data/ok/json/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/json/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/nroff-external/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/nroff-external/2_references create mode 100644 modules/doctools2toc/tests/data/ok/nroff-external/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/nroff-external/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/nroff-inlined/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/nroff-inlined/2_references create mode 100644 modules/doctools2toc/tests/data/ok/nroff-inlined/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/nroff-inlined/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/serial-print/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/serial-print/2_references create mode 100644 modules/doctools2toc/tests/data/ok/serial-print/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/serial-print/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/serial/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/serial/2_references create mode 100644 modules/doctools2toc/tests/data/ok/serial/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/serial/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/text/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/text/2_references create mode 100644 modules/doctools2toc/tests/data/ok/text/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/text/4_toc2 create mode 100644 modules/doctools2toc/tests/data/ok/wiki/1_empty create mode 100644 modules/doctools2toc/tests/data/ok/wiki/2_references create mode 100644 modules/doctools2toc/tests/data/ok/wiki/3_toc create mode 100644 modules/doctools2toc/tests/data/ok/wiki/4_toc2 create mode 100644 modules/doctools2toc/tests/data/unexpected_char create mode 100644 modules/doctools2toc/tests/data/unexpected_eof create mode 100644 modules/doctools2toc/tests/export create mode 100644 modules/doctools2toc/tests/export_doctoc create mode 100644 modules/doctools2toc/tests/export_text create mode 100644 modules/doctools2toc/tests/import create mode 100644 modules/doctools2toc/tests/import_doctoc create mode 100644 modules/doctools2toc/tests/parse create mode 100644 modules/doctools2toc/toc_container.man create mode 100644 modules/doctools2toc/toc_export.man create mode 100644 modules/doctools2toc/toc_export_html.man create mode 100644 modules/doctools2toc/toc_export_json.man create mode 100644 modules/doctools2toc/toc_export_nroff.man create mode 100644 modules/doctools2toc/toc_export_text.man create mode 100644 modules/doctools2toc/toc_export_wiki.man create mode 100644 modules/doctools2toc/toc_import.man create mode 100644 modules/doctools2toc/toc_import_json.man create mode 100644 modules/doctools2toc/toc_introduction.man create mode 100644 modules/doctools2toc/toc_msgcat_c.man create mode 100644 modules/doctools2toc/toc_msgcat_de.man create mode 100644 modules/doctools2toc/toc_msgcat_en.man create mode 100644 modules/doctools2toc/toc_msgcat_fr.man create mode 100644 modules/doctools2toc/toc_parse.man create mode 100644 modules/doctools2toc/toc_structure.man create mode 100644 modules/dtplite/ChangeLog create mode 100755 modules/dtplite/dtplite.tcl create mode 100644 modules/dtplite/pkgIndex.tcl create mode 100644 modules/dtplite/pkg_dtplite.man create mode 100644 modules/exif/ChangeLog create mode 100644 modules/exif/exif.html create mode 100644 modules/exif/exif.man create mode 100644 modules/exif/exif.pcx create mode 100644 modules/exif/exif.tcl create mode 100644 modules/exif/exif.test create mode 100644 modules/exif/exif.txt create mode 100644 modules/exif/exif.xml create mode 100644 modules/exif/noafpoint.jpg create mode 100644 modules/exif/pkgIndex.tcl create mode 100644 modules/fileutil/ChangeLog create mode 100644 modules/fileutil/cross-index-trav.inc create mode 100644 modules/fileutil/cross-index.inc create mode 100644 modules/fileutil/decode.tcl create mode 100644 modules/fileutil/filetype.test create mode 100644 modules/fileutil/fileutil.man create mode 100644 modules/fileutil/fileutil.tcl create mode 100644 modules/fileutil/fileutil.test create mode 100644 modules/fileutil/find.setup create mode 100644 modules/fileutil/find.test create mode 100644 modules/fileutil/include/cross-index-trav.inc create mode 100644 modules/fileutil/include/cross-index.inc create mode 100644 modules/fileutil/inplace.test create mode 100644 modules/fileutil/multi.man create mode 100644 modules/fileutil/multi.tcl create mode 100644 modules/fileutil/multi.test create mode 100644 modules/fileutil/multiop.man create mode 100644 modules/fileutil/multiop.setup create mode 100644 modules/fileutil/multiop.tcl create mode 100644 modules/fileutil/multiop.test create mode 100644 modules/fileutil/pathops.test create mode 100644 modules/fileutil/pkgIndex.tcl create mode 100644 modules/fileutil/strip.test create mode 100644 modules/fileutil/test-data/pdf4tcl_01.pdf create mode 100644 modules/fileutil/test.test create mode 100644 modules/fileutil/traverse.man create mode 100644 modules/fileutil/traverse.tcl create mode 100644 modules/fileutil/traverse.test create mode 100644 modules/ftp/ChangeLog create mode 100644 modules/ftp/README create mode 100644 modules/ftp/docs/fhelp1.html create mode 100644 modules/ftp/docs/fhelp10.html create mode 100644 modules/ftp/docs/fhelp11.html create mode 100644 modules/ftp/docs/fhelp12.html create mode 100644 modules/ftp/docs/fhelp125.html create mode 100644 modules/ftp/docs/fhelp13.html create mode 100644 modules/ftp/docs/fhelp14.html create mode 100644 modules/ftp/docs/fhelp15.html create mode 100644 modules/ftp/docs/fhelp16.html create mode 100644 modules/ftp/docs/fhelp17.html create mode 100644 modules/ftp/docs/fhelp18.html create mode 100644 modules/ftp/docs/fhelp2.html create mode 100644 modules/ftp/docs/fhelp3.html create mode 100644 modules/ftp/docs/fhelp4.html create mode 100644 modules/ftp/docs/fhelp5.html create mode 100644 modules/ftp/docs/fhelp6.html create mode 100644 modules/ftp/docs/fhelp7.html create mode 100644 modules/ftp/docs/fhelp8.html create mode 100644 modules/ftp/docs/fhelp9.html create mode 100644 modules/ftp/docs/index.html create mode 100644 modules/ftp/ftp.man create mode 100644 modules/ftp/ftp.tcl create mode 100644 modules/ftp/ftp_geturl.man create mode 100644 modules/ftp/ftp_geturl.tcl create mode 100644 modules/ftp/pkgIndex.tcl create mode 100644 modules/ftpd/ChangeLog create mode 100644 modules/ftpd/ftpd.man create mode 100644 modules/ftpd/ftpd.tcl create mode 100644 modules/ftpd/pkgIndex.tcl create mode 100644 modules/fumagic/ChangeLog create mode 100644 modules/fumagic/cfront.man create mode 100644 modules/fumagic/cfront.tcl create mode 100644 modules/fumagic/cgen.man create mode 100644 modules/fumagic/cgen.tcl create mode 100644 modules/fumagic/filetypes.man create mode 100644 modules/fumagic/filetypes.tcl create mode 100644 modules/fumagic/filetypes.test create mode 100644 modules/fumagic/fileutil_magic_cfront.pcx create mode 100644 modules/fumagic/fileutil_magic_cgen.pcx create mode 100644 modules/fumagic/fileutil_magic_filetype.pcx create mode 100644 modules/fumagic/fileutil_magic_mimetype.pcx create mode 100644 modules/fumagic/fileutil_magic_rt.pcx create mode 100644 modules/fumagic/fumagic.testsupport create mode 100644 modules/fumagic/mimetypes.man create mode 100644 modules/fumagic/mimetypes.tcl create mode 100644 modules/fumagic/mimetypes.test create mode 100644 modules/fumagic/pkgIndex.tcl create mode 100644 modules/fumagic/regenerate.sh create mode 100644 modules/fumagic/rtcore.man create mode 100644 modules/fumagic/rtcore.tcl create mode 100755 modules/fumagic/tmc create mode 100644 modules/generator/ChangeLog create mode 100644 modules/generator/generator.man create mode 100644 modules/generator/generator.tcl create mode 100644 modules/generator/license.terms create mode 100644 modules/generator/pkgIndex.tcl create mode 100644 modules/gpx/ChangeLog create mode 100644 modules/gpx/gpx.man create mode 100644 modules/gpx/gpx.tcl create mode 100644 modules/gpx/gpx.test create mode 100644 modules/gpx/pkgIndex.tcl create mode 100644 modules/grammar_aycock/ChangeLog create mode 100644 modules/grammar_aycock/aycock-build.tcl create mode 100644 modules/grammar_aycock/aycock-debug.tcl create mode 100644 modules/grammar_aycock/aycock-runtime.tcl create mode 100644 modules/grammar_aycock/aycock.man create mode 100644 modules/grammar_aycock/aycock.test create mode 100644 modules/grammar_aycock/pkgIndex.tcl create mode 100644 modules/grammar_fa/ChangeLog create mode 100644 modules/grammar_fa/dacceptor.man create mode 100644 modules/grammar_fa/dacceptor.tcl create mode 100644 modules/grammar_fa/dacceptor.test create mode 100644 modules/grammar_fa/dexec.man create mode 100644 modules/grammar_fa/dexec.tcl create mode 100644 modules/grammar_fa/dexec.test create mode 100644 modules/grammar_fa/fa.man create mode 100644 modules/grammar_fa/fa.tcl create mode 100644 modules/grammar_fa/fa.test create mode 100644 modules/grammar_fa/faop.man create mode 100644 modules/grammar_fa/faop.tcl create mode 100644 modules/grammar_fa/faop.test create mode 100644 modules/grammar_fa/pkgIndex.tcl create mode 100644 modules/grammar_fa/tests/Xsupport create mode 100644 modules/grammar_fa/tests/da_accept.test create mode 100644 modules/grammar_fa/tests/da_cons.test create mode 100644 modules/grammar_fa/tests/de_cons.test create mode 100644 modules/grammar_fa/tests/de_exec.test create mode 100644 modules/grammar_fa/tests/fa_cons.test create mode 100644 modules/grammar_fa/tests/fa_ec.test create mode 100644 modules/grammar_fa/tests/fa_final.test create mode 100644 modules/grammar_fa/tests/fa_is.test create mode 100644 modules/grammar_fa/tests/fa_is_complete.test create mode 100644 modules/grammar_fa/tests/fa_is_deterministic.test create mode 100644 modules/grammar_fa/tests/fa_is_epsfree.test create mode 100644 modules/grammar_fa/tests/fa_is_useful.test create mode 100644 modules/grammar_fa/tests/fa_next.test create mode 100644 modules/grammar_fa/tests/fa_reach.test create mode 100644 modules/grammar_fa/tests/fa_serial.test create mode 100644 modules/grammar_fa/tests/fa_start.test create mode 100644 modules/grammar_fa/tests/fa_state.test create mode 100644 modules/grammar_fa/tests/fa_states.test create mode 100644 modules/grammar_fa/tests/fa_symbol.test create mode 100644 modules/grammar_fa/tests/fa_symbols.test create mode 100644 modules/grammar_fa/tests/fa_symbols_at.test create mode 100644 modules/grammar_fa/tests/fa_useful.test create mode 100644 modules/grammar_fa/tests/faop_complete.test create mode 100644 modules/grammar_fa/tests/faop_concat.test create mode 100644 modules/grammar_fa/tests/faop_determinize.test create mode 100644 modules/grammar_fa/tests/faop_difference.test create mode 100644 modules/grammar_fa/tests/faop_intersect.test create mode 100644 modules/grammar_fa/tests/faop_kleene.test create mode 100644 modules/grammar_fa/tests/faop_minimize.test create mode 100644 modules/grammar_fa/tests/faop_optional.test create mode 100644 modules/grammar_fa/tests/faop_regex.test create mode 100644 modules/grammar_fa/tests/faop_remeps.test create mode 100644 modules/grammar_fa/tests/faop_reverse.test create mode 100644 modules/grammar_fa/tests/faop_trim.test create mode 100644 modules/grammar_fa/tests/faop_union.test create mode 100644 modules/grammar_me/ChangeLog create mode 100644 modules/grammar_me/gasm.man create mode 100644 modules/grammar_me/gasm.tcl create mode 100644 modules/grammar_me/me_ast.man create mode 100644 modules/grammar_me/me_cpu.man create mode 100644 modules/grammar_me/me_cpu.tcl create mode 100644 modules/grammar_me/me_cpu.test create mode 100644 modules/grammar_me/me_cpu.testsuite create mode 100644 modules/grammar_me/me_cpucore.man create mode 100644 modules/grammar_me/me_cpucore.tcl create mode 100644 modules/grammar_me/me_cpucore.test create mode 100644 modules/grammar_me/me_cpucore.tests.asm-map.txt create mode 100644 modules/grammar_me/me_cpucore.tests.badasm-map.txt create mode 100644 modules/grammar_me/me_cpucore.tests.badmach-map.txt create mode 100644 modules/grammar_me/me_cpucore.tests.semantics.txt create mode 100644 modules/grammar_me/me_cpucore.testsuite create mode 100644 modules/grammar_me/me_intro.man create mode 100644 modules/grammar_me/me_tcl.man create mode 100644 modules/grammar_me/me_tcl.tcl create mode 100644 modules/grammar_me/me_tcl.test create mode 100644 modules/grammar_me/me_util.man create mode 100644 modules/grammar_me/me_util.tcl create mode 100644 modules/grammar_me/me_util.test create mode 100644 modules/grammar_me/me_util.testsuite create mode 100644 modules/grammar_me/me_vm.man create mode 100644 modules/grammar_me/pkgIndex.tcl create mode 100644 modules/grammar_peg/ChangeLog create mode 100644 modules/grammar_peg/peg.man create mode 100644 modules/grammar_peg/peg.tcl create mode 100644 modules/grammar_peg/peg_interp.man create mode 100644 modules/grammar_peg/peg_interp.tcl create mode 100644 modules/grammar_peg/pkgIndex.tcl create mode 100644 modules/hook/ChangeLog create mode 100644 modules/hook/hook.man create mode 100644 modules/hook/hook.tcl create mode 100644 modules/hook/hook.test create mode 100644 modules/hook/license.terms create mode 100644 modules/hook/pkgIndex.tcl create mode 100644 modules/html/ChangeLog create mode 100644 modules/html/html.man create mode 100644 modules/html/html.tcl create mode 100644 modules/html/html.test create mode 100644 modules/html/pkgIndex.tcl create mode 100644 modules/htmlparse/ChangeLog create mode 100644 modules/htmlparse/htmlparse.man create mode 100644 modules/htmlparse/htmlparse.pcx create mode 100644 modules/htmlparse/htmlparse.tcl create mode 100644 modules/htmlparse/htmlparse.test create mode 100644 modules/htmlparse/htmlparse.tree_testsuite create mode 100644 modules/htmlparse/pkgIndex.tcl create mode 100644 modules/http/ChangeLog create mode 100644 modules/http/autoproxy.man create mode 100644 modules/http/autoproxy.pcx create mode 100644 modules/http/autoproxy.tcl create mode 100644 modules/http/pkgIndex.tcl create mode 100644 modules/httpd/content.tcl create mode 100644 modules/httpd/demos/content.file.md create mode 100644 modules/httpd/demos/content.form.md create mode 100644 modules/httpd/demos/content.md create mode 100644 modules/httpd/demos/content.proxy.md create mode 100644 modules/httpd/demos/content.scgi.md create mode 100644 modules/httpd/demos/content.server.md create mode 100644 modules/httpd/demos/docserver.tcl create mode 100644 modules/httpd/demos/index.md create mode 100644 modules/httpd/demos/operations.md create mode 100644 modules/httpd/demos/reply.md create mode 100644 modules/httpd/demos/server.md create mode 100644 modules/httpd/dispatch.tcl create mode 100644 modules/httpd/httpd.tcl create mode 100644 modules/httpd/httpd.test create mode 100644 modules/httpd/pkgIndex.tcl create mode 100644 modules/httpd/scgi-app.tcl create mode 100644 modules/httpd/scgi.test create mode 100644 modules/httpwget/pkgIndex.tcl create mode 100644 modules/httpwget/wget.tcl create mode 100644 modules/ident/ChangeLog create mode 100644 modules/ident/ident.man create mode 100644 modules/ident/ident.pcx create mode 100644 modules/ident/ident.tcl create mode 100644 modules/ident/ident.test create mode 100644 modules/ident/pkgIndex.tcl create mode 100644 modules/imap4/ChangeLog create mode 100644 modules/imap4/imap4.man create mode 100644 modules/imap4/imap4.tcl create mode 100644 modules/imap4/pkgIndex.tcl create mode 100644 modules/inifile/ChangeLog create mode 100644 modules/inifile/ini.man create mode 100644 modules/inifile/ini.tcl create mode 100644 modules/inifile/inifile.pcx create mode 100644 modules/inifile/inifile.test create mode 100644 modules/inifile/pkgIndex.tcl create mode 100644 modules/inifile/sample.ini create mode 100644 modules/inifile/test.ini create mode 100644 modules/interp/ChangeLog create mode 100644 modules/interp/deleg_method.man create mode 100644 modules/interp/deleg_method.tcl create mode 100644 modules/interp/deleg_method.test create mode 100644 modules/interp/deleg_proc.man create mode 100644 modules/interp/deleg_proc.tcl create mode 100644 modules/interp/deleg_proc.test create mode 100644 modules/interp/interp.tcl create mode 100644 modules/interp/interp.test create mode 100644 modules/interp/pkgIndex.tcl create mode 100644 modules/interp/tcllib_interp.man create mode 100644 modules/irc/ChangeLog create mode 100644 modules/irc/irc.man create mode 100644 modules/irc/irc.tcl create mode 100644 modules/irc/picoirc.man create mode 100644 modules/irc/picoirc.tcl create mode 100644 modules/irc/pkgIndex.tcl create mode 100644 modules/javascript/ChangeLog create mode 100644 modules/javascript/javascript.man create mode 100644 modules/javascript/javascript.tcl create mode 100644 modules/javascript/pkgIndex.tcl create mode 100644 modules/jpeg/ChangeLog create mode 100644 modules/jpeg/jpeg.man create mode 100644 modules/jpeg/jpeg.pcx create mode 100644 modules/jpeg/jpeg.tcl create mode 100644 modules/jpeg/jpeg.test create mode 100644 modules/jpeg/pkgIndex.tcl create mode 100644 modules/jpeg/testimages/1000.JPG create mode 100644 modules/jpeg/testimages/1000.WxH.txt create mode 100644 modules/jpeg/testimages/1000.exif.txt create mode 100644 modules/jpeg/testimages/1000.info.txt create mode 100644 modules/jpeg/testimages/1000.thumbexif.txt create mode 100644 modules/jpeg/testimages/IMG_7898.JPG create mode 100644 modules/jpeg/testimages/IMG_7898.JPG.thumb create mode 100644 modules/jpeg/testimages/IMG_7898.WxH.txt create mode 100644 modules/jpeg/testimages/IMG_7898.exif.txt create mode 100644 modules/jpeg/testimages/IMG_7898.info.txt create mode 100644 modules/jpeg/testimages/IMG_7898.thumbexif.txt create mode 100644 modules/jpeg/testimages/IMG_7917.JPG create mode 100644 modules/jpeg/testimages/IMG_7917.JPG.thumb create mode 100644 modules/jpeg/testimages/IMG_7917.WxH.txt create mode 100644 modules/jpeg/testimages/IMG_7917.exif.txt create mode 100644 modules/jpeg/testimages/IMG_7917.info.txt create mode 100644 modules/jpeg/testimages/IMG_7917.thumbexif.txt create mode 100644 modules/jpeg/testimages/IMG_7950.JPG create mode 100644 modules/jpeg/testimages/IMG_7950.JPG.thumb create mode 100644 modules/jpeg/testimages/IMG_7950.WxH.txt create mode 100644 modules/jpeg/testimages/IMG_7950.exif.txt create mode 100644 modules/jpeg/testimages/IMG_7950.info.txt create mode 100644 modules/jpeg/testimages/IMG_7950.thumbexif.txt create mode 100644 modules/jpeg/testimages/IMG_7950_none.JPG create mode 100644 modules/jpeg/testimages/IMG_7950_none.WxH.txt create mode 100644 modules/jpeg/testimages/IMG_7950_none.exif.txt create mode 100644 modules/jpeg/testimages/IMG_7950_none.info.txt create mode 100644 modules/jpeg/testimages/IMG_7950_none.thumbexif.txt create mode 100644 modules/json/ChangeLog create mode 100644 modules/json/c/json.tab.c create mode 100644 modules/json/c/json.y create mode 100644 modules/json/c/json_y.h create mode 100644 modules/json/json.bench create mode 100644 modules/json/json.man create mode 100644 modules/json/json.pcx create mode 100644 modules/json/json.tcl create mode 100644 modules/json/json.test create mode 100644 modules/json/json.testsuite create mode 100644 modules/json/json_tcl.tcl create mode 100644 modules/json/json_write.man create mode 100644 modules/json/json_write.pcx create mode 100644 modules/json/json_write.tcl create mode 100644 modules/json/json_write.test create mode 100644 modules/json/jsonc.tcl create mode 100644 modules/json/pkgIndex.tcl create mode 100644 modules/json/tests/array.json create mode 100644 modules/json/tests/array.result create mode 100644 modules/json/tests/array.sort create mode 100644 modules/json/tests/glossary.json create mode 100644 modules/json/tests/glossary.result create mode 100644 modules/json/tests/glossary.sort create mode 100644 modules/json/tests/menu.json create mode 100644 modules/json/tests/menu.result create mode 100644 modules/json/tests/menu.sort create mode 100644 modules/json/tests/menu2.json create mode 100644 modules/json/tests/menu2.result create mode 100644 modules/json/tests/menu2.sort create mode 100644 modules/json/tests/support.tcl create mode 100644 modules/json/tests/widget.json create mode 100644 modules/json/tests/widget.result create mode 100644 modules/json/tests/widget.sort create mode 100644 modules/lambda/ChangeLog create mode 100644 modules/lambda/lambda.man create mode 100644 modules/lambda/lambda.tcl create mode 100644 modules/lambda/pkgIndex.tcl create mode 100644 modules/ldap/ChangeLog create mode 100644 modules/ldap/SASL.txt create mode 100644 modules/ldap/ldap.man create mode 100644 modules/ldap/ldap.tcl create mode 100644 modules/ldap/ldap.test create mode 100644 modules/ldap/ldapx.man create mode 100644 modules/ldap/ldapx.tcl create mode 100644 modules/ldap/ldapx.test create mode 100644 modules/ldap/pkgIndex.tcl create mode 100644 modules/log/ChangeLog create mode 100644 modules/log/log.man create mode 100644 modules/log/log.pcx create mode 100644 modules/log/log.tcl create mode 100644 modules/log/log.test create mode 100644 modules/log/logger.man create mode 100644 modules/log/logger.tcl create mode 100644 modules/log/logger.test create mode 100644 modules/log/loggerAppender.man create mode 100644 modules/log/loggerAppender.tcl create mode 100644 modules/log/loggerUtils.man create mode 100644 modules/log/loggerUtils.tcl create mode 100644 modules/log/loggerUtils.test create mode 100644 modules/log/logger_trace.test create mode 100644 modules/log/loggerperformance create mode 100644 modules/log/msgs/en.msg create mode 100644 modules/log/pkgIndex.tcl create mode 100644 modules/map/ChangeLog create mode 100644 modules/map/map_geocode_nominatim.man create mode 100644 modules/map/map_geocode_nominatim.tcl create mode 100644 modules/map/map_slippy.man create mode 100644 modules/map/map_slippy.tcl create mode 100644 modules/map/map_slippy.test create mode 100644 modules/map/map_slippy_cache.man create mode 100644 modules/map/map_slippy_cache.tcl create mode 100644 modules/map/map_slippy_fetcher.man create mode 100644 modules/map/map_slippy_fetcher.tcl create mode 100644 modules/map/pkgIndex.tcl create mode 100755 modules/mapproj/ChangeLog create mode 100755 modules/mapproj/mapproj.man create mode 100755 modules/mapproj/mapproj.tcl create mode 100755 modules/mapproj/pkgIndex.tcl create mode 100644 modules/markdown/markdown.tcl create mode 100644 modules/markdown/pkgIndex.tcl create mode 100644 modules/math/ChangeLog create mode 100755 modules/math/TODO create mode 100755 modules/math/bessel.tcl create mode 100755 modules/math/bessel.test create mode 100755 modules/math/bigfloat.man create mode 100755 modules/math/bigfloat.tcl create mode 100755 modules/math/bigfloat.test create mode 100644 modules/math/bigfloat2.tcl create mode 100644 modules/math/bigfloat2.test create mode 100755 modules/math/bignum.man create mode 100755 modules/math/bignum.tcl create mode 100755 modules/math/bignum.test create mode 100755 modules/math/calculus.CHANGES create mode 100755 modules/math/calculus.README create mode 100755 modules/math/calculus.doc create mode 100755 modules/math/calculus.man create mode 100755 modules/math/calculus.tcl create mode 100755 modules/math/calculus.test create mode 100755 modules/math/calculus.testscript create mode 100755 modules/math/classic_polyns.tcl create mode 100644 modules/math/combinatorics.man create mode 100644 modules/math/combinatorics.tcl create mode 100644 modules/math/combinatorics.test create mode 100755 modules/math/constants.man create mode 100755 modules/math/constants.tcl create mode 100755 modules/math/constants.test create mode 100755 modules/math/decimal.man create mode 100755 modules/math/decimal.tcl create mode 100755 modules/math/decimal.test create mode 100755 modules/math/elliptic.tcl create mode 100755 modules/math/elliptic.test create mode 100644 modules/math/exact.man create mode 100644 modules/math/exact.tcl create mode 100644 modules/math/exact.test create mode 100755 modules/math/exponential.tcl create mode 100755 modules/math/fourier.man create mode 100755 modules/math/fourier.tcl create mode 100755 modules/math/fourier.test create mode 100755 modules/math/fuzzy.eps.f90 create mode 100755 modules/math/fuzzy.man create mode 100755 modules/math/fuzzy.tcl create mode 100755 modules/math/fuzzy.test create mode 100755 modules/math/fuzzy.testscript create mode 100644 modules/math/geometry.tcl create mode 100644 modules/math/geometry.test create mode 100755 modules/math/interpolate.man create mode 100755 modules/math/interpolate.tcl create mode 100755 modules/math/interpolate.test create mode 100755 modules/math/kruskal.tcl create mode 100755 modules/math/linalg.man create mode 100755 modules/math/linalg.tcl create mode 100755 modules/math/linalg.test create mode 100755 modules/math/liststat.tcl create mode 100755 modules/math/machineparameters.man create mode 100755 modules/math/machineparameters.tcl create mode 100755 modules/math/machineparameters.test create mode 100644 modules/math/math.man create mode 100644 modules/math/math.tcl create mode 100644 modules/math/math.test create mode 100644 modules/math/math_geometry.man create mode 100644 modules/math/misc.tcl create mode 100755 modules/math/mvlinreg.tcl create mode 100755 modules/math/numtheory.dtx create mode 100644 modules/math/numtheory.man create mode 100644 modules/math/numtheory.stitch create mode 100644 modules/math/numtheory.tcl create mode 100644 modules/math/numtheory.test create mode 100755 modules/math/optimize.man create mode 100755 modules/math/optimize.tcl create mode 100755 modules/math/optimize.test create mode 100755 modules/math/pdf_stat.tcl create mode 100644 modules/math/pkgIndex.tcl create mode 100755 modules/math/plotstat.tcl create mode 100755 modules/math/polynomials.man create mode 100755 modules/math/polynomials.tcl create mode 100755 modules/math/polynomials.test create mode 100755 modules/math/qcomplex.man create mode 100755 modules/math/qcomplex.tcl create mode 100755 modules/math/qcomplex.test create mode 100755 modules/math/rational_funcs.man create mode 100755 modules/math/rational_funcs.tcl create mode 100755 modules/math/roman.man create mode 100755 modules/math/roman.test create mode 100755 modules/math/romannumerals.tcl create mode 100755 modules/math/romberg.man create mode 100755 modules/math/special.man create mode 100755 modules/math/special.tcl create mode 100755 modules/math/special.test create mode 100644 modules/math/stat_kernel.tcl create mode 100755 modules/math/statistics.man create mode 100755 modules/math/statistics.tcl create mode 100755 modules/math/statistics.test create mode 100644 modules/math/symdiff.man create mode 100644 modules/math/symdiff.tcl create mode 100644 modules/math/symdiff.test create mode 100644 modules/math/tclIndex create mode 100755 modules/math/wilcoxon.tcl create mode 100644 modules/md4/ChangeLog create mode 100644 modules/md4/md4.bench create mode 100644 modules/md4/md4.c create mode 100644 modules/md4/md4.h create mode 100644 modules/md4/md4.man create mode 100644 modules/md4/md4.tcl create mode 100644 modules/md4/md4.test create mode 100644 modules/md4/md4_check.c create mode 100644 modules/md4/md4c.tcl create mode 100644 modules/md4/pkgIndex.tcl create mode 100644 modules/md5/ChangeLog create mode 100644 modules/md5/md5.c create mode 100644 modules/md5/md5.h create mode 100644 modules/md5/md5.man create mode 100644 modules/md5/md5.tcl create mode 100644 modules/md5/md5.test create mode 100644 modules/md5/md5c.tcl create mode 100644 modules/md5/md5v1.bench create mode 100644 modules/md5/md5v2.bench create mode 100644 modules/md5/md5x.tcl create mode 100644 modules/md5/md5x.test create mode 100644 modules/md5/pkgIndex.tcl create mode 100644 modules/md5crypt/ChangeLog create mode 100644 modules/md5crypt/md5crypt.bench create mode 100644 modules/md5crypt/md5crypt.man create mode 100644 modules/md5crypt/md5crypt.tcl create mode 100644 modules/md5crypt/md5crypt.test create mode 100644 modules/md5crypt/md5cryptc.tcl create mode 100644 modules/md5crypt/pkgIndex.tcl create mode 100644 modules/mime/ChangeLog create mode 100644 modules/mime/README.html create mode 100644 modules/mime/README.txt create mode 100644 modules/mime/README.xml create mode 100644 modules/mime/badmail1.txt create mode 100644 modules/mime/badmail2.txt create mode 100644 modules/mime/mime.bench create mode 100644 modules/mime/mime.man create mode 100644 modules/mime/mime.tcl create mode 100755 modules/mime/mime.test create mode 100644 modules/mime/pkgIndex.tcl create mode 100644 modules/mime/rfc2629.dtd create mode 100644 modules/mime/smtp.man create mode 100644 modules/mime/smtp.tcl create mode 100644 modules/multiplexer/ChangeLog create mode 100644 modules/multiplexer/multiplexer.man create mode 100644 modules/multiplexer/multiplexer.tcl create mode 100644 modules/multiplexer/multiplexer.test create mode 100644 modules/multiplexer/pkgIndex.tcl create mode 100644 modules/namespacex/ChangeLog create mode 100644 modules/namespacex/namespacex.man create mode 100644 modules/namespacex/namespacex.tcl create mode 100644 modules/namespacex/namespacex.test create mode 100644 modules/namespacex/pkgIndex.tcl create mode 100644 modules/ncgi/ChangeLog create mode 100644 modules/ncgi/formdata.txt create mode 100644 modules/ncgi/ncgi.man create mode 100644 modules/ncgi/ncgi.tcl create mode 100644 modules/ncgi/ncgi.test create mode 100644 modules/ncgi/pkgIndex.tcl create mode 100644 modules/nettool/available_ports.tcl create mode 100644 modules/nettool/generic.tcl create mode 100644 modules/nettool/locateport.tcl create mode 100644 modules/nettool/nettool.man create mode 100644 modules/nettool/nettool.tcl create mode 100644 modules/nettool/nettool.test create mode 100644 modules/nettool/pkgIndex.tcl create mode 100644 modules/nettool/platform_unix.tcl create mode 100644 modules/nettool/platform_unix_linux.tcl create mode 100644 modules/nettool/platform_unix_macosx.tcl create mode 100644 modules/nettool/platform_windows.tcl create mode 100644 modules/nettool/scripts/build_services.tcl create mode 100644 modules/nettool/service-names-port-numbers.csv create mode 100644 modules/nmea/ChangeLog create mode 100644 modules/nmea/nmea.man create mode 100755 modules/nmea/nmea.tcl create mode 100644 modules/nmea/pkgIndex.tcl create mode 100644 modules/nns/ChangeLog create mode 100644 modules/nns/common.tcl create mode 100644 modules/nns/common.test create mode 100644 modules/nns/nns.tcl create mode 100644 modules/nns/nns_auto.man create mode 100644 modules/nns/nns_auto.tcl create mode 100644 modules/nns/nns_client.man create mode 100644 modules/nns/nns_cluster.tcl create mode 100644 modules/nns/nns_cluster.test create mode 100644 modules/nns/nns_common.man create mode 100644 modules/nns/nns_intro.man create mode 100644 modules/nns/nns_protocol.man create mode 100644 modules/nns/nns_server.man create mode 100644 modules/nns/pkgIndex.tcl create mode 100644 modules/nns/server.tcl create mode 100644 modules/nntp/ChangeLog create mode 100644 modules/nntp/nntp.man create mode 100644 modules/nntp/nntp.tcl create mode 100644 modules/nntp/pkgIndex.tcl create mode 100644 modules/ntp/ChangeLog create mode 100644 modules/ntp/ntp_time.man create mode 100644 modules/ntp/pkgIndex.tcl create mode 100644 modules/ntp/time.tcl create mode 100644 modules/ntp/time.test create mode 100644 modules/oauth/oauth.man create mode 100644 modules/oauth/oauth.tcl create mode 100644 modules/oauth/pkgIndex.tcl create mode 100644 modules/oodialect/oodialect.demo create mode 100644 modules/oodialect/oodialect.md create mode 100644 modules/oodialect/oodialect.tcl create mode 100644 modules/oodialect/oodialect.test create mode 100644 modules/oodialect/pkgIndex.tcl create mode 100644 modules/oometa/oometa.demo create mode 100644 modules/oometa/oometa.md create mode 100644 modules/oometa/oometa.tcl create mode 100644 modules/oometa/oometa.test create mode 100644 modules/oometa/oooption.tcl create mode 100644 modules/oometa/pkgIndex.tcl create mode 100644 modules/ooutil/ChangeLog create mode 100644 modules/ooutil/ooutil.man create mode 100644 modules/ooutil/ooutil.tcl create mode 100644 modules/ooutil/ooutil.test create mode 100644 modules/ooutil/pkgIndex.tcl create mode 100644 modules/otp/ChangeLog create mode 100644 modules/otp/otp.man create mode 100644 modules/otp/otp.tcl create mode 100644 modules/otp/otp.test create mode 100644 modules/otp/pkgIndex.tcl create mode 100644 modules/page/ChangeLog create mode 100644 modules/page/NOTES.txt create mode 100644 modules/page/analysis_peg_emodes.tcl create mode 100644 modules/page/analysis_peg_minimize.tcl create mode 100644 modules/page/analysis_peg_reachable.tcl create mode 100644 modules/page/analysis_peg_realizable.tcl create mode 100644 modules/page/compiler_peg_mecpu.tcl create mode 100644 modules/page/gen_peg_canon.tcl create mode 100644 modules/page/gen_peg_cpkg.tcl create mode 100644 modules/page/gen_peg_hb.tcl create mode 100644 modules/page/gen_peg_me.tcl create mode 100644 modules/page/gen_peg_me.template create mode 100644 modules/page/gen_peg_mecpu.tcl create mode 100644 modules/page/gen_peg_mecpu.template create mode 100644 modules/page/gen_peg_ser.tcl create mode 100644 modules/page/gen_tree_text.tcl create mode 100644 modules/page/notes/doc_emodes.txt create mode 100644 modules/page/notes/doc_emodes_alg.txt create mode 100644 modules/page/notes/doc_grammar.txt create mode 100644 modules/page/notes/doc_normalize.txt create mode 100644 modules/page/notes/doc_reachable.txt create mode 100644 modules/page/notes/doc_realizable.txt create mode 100644 modules/page/page_intro.man create mode 100644 modules/page/page_pluginmgr.man create mode 100644 modules/page/page_util_flow.man create mode 100644 modules/page/page_util_norm_lemon.man create mode 100644 modules/page/page_util_norm_peg.man create mode 100644 modules/page/page_util_peg.man create mode 100644 modules/page/page_util_quote.man create mode 100644 modules/page/parse_lemon.tcl create mode 100644 modules/page/parse_peg.tcl create mode 100644 modules/page/parse_peghb.tcl create mode 100644 modules/page/parse_pegser.tcl create mode 100644 modules/page/peg_grammar.peg create mode 100644 modules/page/peg_grammar.tcl create mode 100644 modules/page/pkgIndex.tcl create mode 100644 modules/page/pluginmgr.tcl create mode 100644 modules/page/plugins/config_peg.tcl create mode 100644 modules/page/plugins/pkgIndex.tcl create mode 100644 modules/page/plugins/reader_hb.tcl create mode 100644 modules/page/plugins/reader_lemon.tcl create mode 100644 modules/page/plugins/reader_peg.tcl create mode 100644 modules/page/plugins/reader_ser.tcl create mode 100644 modules/page/plugins/reader_treeser.tcl create mode 100644 modules/page/plugins/transform_mecpu.tcl create mode 100644 modules/page/plugins/transform_reachable.tcl create mode 100644 modules/page/plugins/transform_realizable.tcl create mode 100644 modules/page/plugins/writer_hb.tcl create mode 100644 modules/page/plugins/writer_identity.tcl create mode 100644 modules/page/plugins/writer_me.tcl create mode 100644 modules/page/plugins/writer_mecpu.tcl create mode 100644 modules/page/plugins/writer_null.tcl create mode 100644 modules/page/plugins/writer_peg.tcl create mode 100644 modules/page/plugins/writer_ser.tcl create mode 100644 modules/page/plugins/writer_tpc.tcl create mode 100644 modules/page/plugins/writer_tree.tcl create mode 100644 modules/page/util_flow.tcl create mode 100644 modules/page/util_norm_lemon.tcl create mode 100644 modules/page/util_norm_peg.tcl create mode 100644 modules/page/util_peg.tcl create mode 100644 modules/page/util_quote.tcl create mode 100644 modules/pki/CA.crt create mode 100644 modules/pki/CA.key create mode 100644 modules/pki/ChangeLog create mode 100644 modules/pki/pkgIndex.tcl create mode 100644 modules/pki/pki.man create mode 100644 modules/pki/pki.tcl create mode 100644 modules/pki/pki.test create mode 100644 modules/pki/test-v1.crt create mode 100644 modules/pki/test-v3.crt create mode 100644 modules/pki/test.csr create mode 100644 modules/pki/test.key.aes create mode 100644 modules/pki/test.key.des create mode 100644 modules/pluginmgr/ChangeLog create mode 100644 modules/pluginmgr/pkgIndex.tcl create mode 100644 modules/pluginmgr/pluginmgr.man create mode 100644 modules/pluginmgr/pluginmgr.tcl create mode 100644 modules/png/ChangeLog create mode 100644 modules/png/pkgIndex.tcl create mode 100644 modules/png/png.man create mode 100644 modules/png/png.pcx create mode 100644 modules/png/png.tcl create mode 100644 modules/png/png.test create mode 100644 modules/png/testimages/basi0g01.png create mode 100644 modules/png/testimages/basi0g02.png create mode 100644 modules/png/testimages/basi0g04.png create mode 100644 modules/png/testimages/basi0g08.png create mode 100644 modules/png/testimages/basi0g16.png create mode 100644 modules/png/testimages/basi2c08.png create mode 100644 modules/png/testimages/basi2c16.png create mode 100644 modules/png/testimages/basi3p01.png create mode 100644 modules/png/testimages/basi3p02.png create mode 100644 modules/png/testimages/basi3p04.png create mode 100644 modules/png/testimages/basi3p08.png create mode 100644 modules/png/testimages/basi4a08.png create mode 100644 modules/png/testimages/basi4a16.png create mode 100644 modules/png/testimages/basi6a08.png create mode 100644 modules/png/testimages/basi6a16.png create mode 100644 modules/png/testimages/basn0g01.png create mode 100644 modules/png/testimages/basn0g02.png create mode 100644 modules/png/testimages/basn0g04.png create mode 100644 modules/png/testimages/basn0g08.png create mode 100644 modules/png/testimages/basn0g16.png create mode 100644 modules/png/testimages/basn2c08.png create mode 100644 modules/png/testimages/basn2c16.png create mode 100644 modules/png/testimages/basn3p01.png create mode 100644 modules/png/testimages/basn3p02.png create mode 100644 modules/png/testimages/basn3p04.png create mode 100644 modules/png/testimages/basn3p08.png create mode 100644 modules/png/testimages/basn4a08.png create mode 100644 modules/png/testimages/basn4a16.png create mode 100644 modules/png/testimages/basn6a08.png create mode 100644 modules/png/testimages/basn6a16.png create mode 100644 modules/png/testimages/bgai4a08.png create mode 100644 modules/png/testimages/bgai4a16.png create mode 100644 modules/png/testimages/bgan6a08.png create mode 100644 modules/png/testimages/bgan6a16.png create mode 100644 modules/png/testimages/bgbn4a08.png create mode 100644 modules/png/testimages/bggn4a16.png create mode 100644 modules/png/testimages/bgwn6a08.png create mode 100644 modules/png/testimages/bgyn6a16.png create mode 100644 modules/png/testimages/ccwn2c08.png create mode 100644 modules/png/testimages/ccwn3p08.png create mode 100644 modules/png/testimages/cdfn2c08.png create mode 100644 modules/png/testimages/cdhn2c08.png create mode 100644 modules/png/testimages/cdsn2c08.png create mode 100644 modules/png/testimages/cdun2c08.png create mode 100644 modules/png/testimages/ch1n3p04.png create mode 100644 modules/png/testimages/ch2n3p08.png create mode 100644 modules/png/testimages/cm0n0g04.png create mode 100644 modules/png/testimages/cm7n0g04.png create mode 100644 modules/png/testimages/cm9n0g04.png create mode 100644 modules/png/testimages/cs3n2c16.png create mode 100644 modules/png/testimages/cs3n3p08.png create mode 100644 modules/png/testimages/cs5n2c08.png create mode 100644 modules/png/testimages/cs5n3p08.png create mode 100644 modules/png/testimages/cs8n2c08.png create mode 100644 modules/png/testimages/cs8n3p08.png create mode 100644 modules/png/testimages/ct0n0g04.png create mode 100644 modules/png/testimages/ct1n0g04.png create mode 100644 modules/png/testimages/ctzn0g04.png create mode 100644 modules/png/testimages/f00n0g08.png create mode 100644 modules/png/testimages/f00n2c08.png create mode 100644 modules/png/testimages/f01n0g08.png create mode 100644 modules/png/testimages/f01n2c08.png create mode 100644 modules/png/testimages/f02n0g08.png create mode 100644 modules/png/testimages/f02n2c08.png create mode 100644 modules/png/testimages/f03n0g08.png create mode 100644 modules/png/testimages/f03n2c08.png create mode 100644 modules/png/testimages/f04n0g08.png create mode 100644 modules/png/testimages/f04n2c08.png create mode 100644 modules/png/testimages/g03n0g16.png create mode 100644 modules/png/testimages/g03n2c08.png create mode 100644 modules/png/testimages/g03n3p04.png create mode 100644 modules/png/testimages/g04n0g16.png create mode 100644 modules/png/testimages/g04n2c08.png create mode 100644 modules/png/testimages/g04n3p04.png create mode 100644 modules/png/testimages/g05n0g16.png create mode 100644 modules/png/testimages/g05n2c08.png create mode 100644 modules/png/testimages/g05n3p04.png create mode 100644 modules/png/testimages/g07n0g16.png create mode 100644 modules/png/testimages/g07n2c08.png create mode 100644 modules/png/testimages/g07n3p04.png create mode 100644 modules/png/testimages/g10n0g16.png create mode 100644 modules/png/testimages/g10n2c08.png create mode 100644 modules/png/testimages/g10n3p04.png create mode 100644 modules/png/testimages/g25n0g16.png create mode 100644 modules/png/testimages/g25n2c08.png create mode 100644 modules/png/testimages/g25n3p04.png create mode 100644 modules/png/testimages/oi1n0g16.png create mode 100644 modules/png/testimages/oi1n2c16.png create mode 100644 modules/png/testimages/oi2n0g16.png create mode 100644 modules/png/testimages/oi2n2c16.png create mode 100644 modules/png/testimages/oi4n0g16.png create mode 100644 modules/png/testimages/oi4n2c16.png create mode 100644 modules/png/testimages/oi9n0g16.png create mode 100644 modules/png/testimages/oi9n2c16.png create mode 100644 modules/png/testimages/pngsuite.doc create mode 100644 modules/png/testimages/pngsuite_logo.png create mode 100644 modules/png/testimages/pp0n2c16.png create mode 100644 modules/png/testimages/pp0n6a08.png create mode 100644 modules/png/testimages/ps1n0g08.png create mode 100644 modules/png/testimages/ps1n2c16.png create mode 100644 modules/png/testimages/ps2n0g08.png create mode 100644 modules/png/testimages/ps2n2c16.png create mode 100644 modules/png/testimages/s01i3p01.png create mode 100644 modules/png/testimages/s01n3p01.png create mode 100644 modules/png/testimages/s02i3p01.png create mode 100644 modules/png/testimages/s02n3p01.png create mode 100644 modules/png/testimages/s03i3p01.png create mode 100644 modules/png/testimages/s03n3p01.png create mode 100644 modules/png/testimages/s04i3p01.png create mode 100644 modules/png/testimages/s04n3p01.png create mode 100644 modules/png/testimages/s05i3p02.png create mode 100644 modules/png/testimages/s05n3p02.png create mode 100644 modules/png/testimages/s06i3p02.png create mode 100644 modules/png/testimages/s06n3p02.png create mode 100644 modules/png/testimages/s07i3p02.png create mode 100644 modules/png/testimages/s07n3p02.png create mode 100644 modules/png/testimages/s08i3p02.png create mode 100644 modules/png/testimages/s08n3p02.png create mode 100644 modules/png/testimages/s09i3p02.png create mode 100644 modules/png/testimages/s09n3p02.png create mode 100644 modules/png/testimages/s32i3p04.png create mode 100644 modules/png/testimages/s32n3p04.png create mode 100644 modules/png/testimages/s33i3p04.png create mode 100644 modules/png/testimages/s33n3p04.png create mode 100644 modules/png/testimages/s34i3p04.png create mode 100644 modules/png/testimages/s34n3p04.png create mode 100644 modules/png/testimages/s35i3p04.png create mode 100644 modules/png/testimages/s35n3p04.png create mode 100644 modules/png/testimages/s36i3p04.png create mode 100644 modules/png/testimages/s36n3p04.png create mode 100644 modules/png/testimages/s37i3p04.png create mode 100644 modules/png/testimages/s37n3p04.png create mode 100644 modules/png/testimages/s38i3p04.png create mode 100644 modules/png/testimages/s38n3p04.png create mode 100644 modules/png/testimages/s39i3p04.png create mode 100644 modules/png/testimages/s39n3p04.png create mode 100644 modules/png/testimages/s40i3p04.png create mode 100644 modules/png/testimages/s40n3p04.png create mode 100644 modules/png/testimages/tbbn1g04.png create mode 100644 modules/png/testimages/tbbn2c16.png create mode 100644 modules/png/testimages/tbbn3p08.png create mode 100644 modules/png/testimages/tbgn2c16.png create mode 100644 modules/png/testimages/tbgn3p08.png create mode 100644 modules/png/testimages/tbrn2c08.png create mode 100644 modules/png/testimages/tbwn1g16.png create mode 100644 modules/png/testimages/tbwn3p08.png create mode 100644 modules/png/testimages/tbyn3p08.png create mode 100644 modules/png/testimages/tp0n1g08.png create mode 100644 modules/png/testimages/tp0n2c08.png create mode 100644 modules/png/testimages/tp0n3p08.png create mode 100644 modules/png/testimages/tp1n3p08.png create mode 100644 modules/png/testimages/x00n0g01.png create mode 100644 modules/png/testimages/xcrn0g04.png create mode 100644 modules/png/testimages/xlfn0g04.png create mode 100644 modules/png/testimages/z00n2c08.png create mode 100644 modules/png/testimages/z03n2c08.png create mode 100644 modules/png/testimages/z06n2c08.png create mode 100644 modules/png/testimages/z09n2c08.png create mode 100644 modules/pop3/ChangeLog create mode 100644 modules/pop3/pkgIndex.tcl create mode 100644 modules/pop3/pop3.man create mode 100644 modules/pop3/pop3.tcl create mode 100644 modules/pop3/pop3.test create mode 100644 modules/pop3d/ChangeLog create mode 100644 modules/pop3d/pkgIndex.tcl create mode 100644 modules/pop3d/pop3d.man create mode 100644 modules/pop3d/pop3d.tcl create mode 100644 modules/pop3d/pop3d.test create mode 100644 modules/pop3d/pop3d_dbox.man create mode 100644 modules/pop3d/pop3d_dbox.tcl create mode 100644 modules/pop3d/pop3d_dbox.test create mode 100644 modules/pop3d/pop3d_udb.man create mode 100644 modules/pop3d/pop3d_udb.tcl create mode 100644 modules/pop3d/pop3d_udb.test create mode 100644 modules/processman/pkgIndex.tcl create mode 100644 modules/processman/processman.man create mode 100644 modules/processman/processman.tcl create mode 100644 modules/profiler/ChangeLog create mode 100644 modules/profiler/pkgIndex.tcl create mode 100644 modules/profiler/profiler.man create mode 100644 modules/profiler/profiler.tcl create mode 100644 modules/profiler/profiler.test create mode 100644 modules/pt/ChangeLog create mode 100644 modules/pt/char.tcl create mode 100644 modules/pt/char.test create mode 100644 modules/pt/configuration.tcl create mode 100644 modules/pt/include/arch_core.dia create mode 100644 modules/pt/include/arch_core.png create mode 100644 modules/pt/include/arch_core_container.dia create mode 100644 modules/pt/include/arch_core_container.png create mode 100644 modules/pt/include/arch_core_eplugins.dia create mode 100644 modules/pt/include/arch_core_eplugins.png create mode 100644 modules/pt/include/arch_core_export.dia create mode 100644 modules/pt/include/arch_core_export.png create mode 100644 modules/pt/include/arch_core_import.dia create mode 100644 modules/pt/include/arch_core_import.png create mode 100644 modules/pt/include/arch_core_iplugins.dia create mode 100644 modules/pt/include/arch_core_iplugins.png create mode 100644 modules/pt/include/arch_core_support.dia create mode 100644 modules/pt/include/arch_core_support.png create mode 100644 modules/pt/include/arch_core_transform.dia create mode 100644 modules/pt/include/arch_core_transform.png create mode 100644 modules/pt/include/arch_support.dia create mode 100644 modules/pt/include/arch_support.png create mode 100644 modules/pt/include/arch_user_app.dia create mode 100644 modules/pt/include/arch_user_app.png create mode 100644 modules/pt/include/arch_user_pkg.dia create mode 100644 modules/pt/include/arch_user_pkg.png create mode 100644 modules/pt/include/architecture.dia create mode 100644 modules/pt/include/architecture.png create mode 100644 modules/pt/include/channel_notes.inc create mode 100644 modules/pt/include/concept.inc create mode 100644 modules/pt/include/example/expr_ast.dia create mode 100644 modules/pt/include/example/expr_ast.inc create mode 100644 modules/pt/include/example/expr_ast.pic create mode 100644 modules/pt/include/example/expr_ast.png create mode 100644 modules/pt/include/example/expr_ast.txt create mode 100644 modules/pt/include/example/expr_container.inc create mode 100644 modules/pt/include/example/expr_json.inc create mode 100644 modules/pt/include/example/expr_param.inc create mode 100644 modules/pt/include/example/expr_pe.inc create mode 100644 modules/pt/include/example/expr_pe_serial.inc create mode 100644 modules/pt/include/example/expr_peg.inc create mode 100644 modules/pt/include/example/expr_peg_compact.inc create mode 100644 modules/pt/include/example/expr_ptgen.inc create mode 100644 modules/pt/include/example/expr_ptgenb.inc create mode 100644 modules/pt/include/example/expr_serial.inc create mode 100644 modules/pt/include/example/flow.dia create mode 100644 modules/pt/include/example/flow.png create mode 100644 modules/pt/include/example/full.inc create mode 100644 modules/pt/include/example/full_app.inc create mode 100644 modules/pt/include/example/full_pkg.inc create mode 100644 modules/pt/include/example/parser_use.inc create mode 100644 modules/pt/include/export/config/container.inc create mode 100644 modules/pt/include/export/config/cparam.inc create mode 100644 modules/pt/include/export/config/json.inc create mode 100644 modules/pt/include/export/config/param.inc create mode 100644 modules/pt/include/export/config/peg.inc create mode 100644 modules/pt/include/export/config/tclparam.inc create mode 100644 modules/pt/include/export/config/to_container.inc create mode 100644 modules/pt/include/export/config/to_cparam.inc create mode 100644 modules/pt/include/export/config/to_json.inc create mode 100644 modules/pt/include/export/config/to_param.inc create mode 100644 modules/pt/include/export/config/to_peg.inc create mode 100644 modules/pt/include/export/config/to_tclparam.inc create mode 100644 modules/pt/include/export/format/container.inc create mode 100644 modules/pt/include/export/format/cparam.inc create mode 100644 modules/pt/include/export/format/json.inc create mode 100644 modules/pt/include/export/format/null.inc create mode 100644 modules/pt/include/export/format/param.inc create mode 100644 modules/pt/include/export/format/peg.inc create mode 100644 modules/pt/include/export/format/tclparam.inc create mode 100644 modules/pt/include/export/plugin.inc create mode 100644 modules/pt/include/export/to.inc create mode 100644 modules/pt/include/feedback.inc create mode 100644 modules/pt/include/format/container.inc create mode 100644 modules/pt/include/format/cparam.inc create mode 100644 modules/pt/include/format/json.inc create mode 100644 modules/pt/include/format/json_core.inc create mode 100644 modules/pt/include/format/options_container.inc create mode 100644 modules/pt/include/format/options_cparam_critcl.inc create mode 100644 modules/pt/include/format/options_cparam_rawc.inc create mode 100644 modules/pt/include/format/options_json.inc create mode 100644 modules/pt/include/format/options_peg.inc create mode 100644 modules/pt/include/format/options_std.inc create mode 100644 modules/pt/include/format/options_tclparam_oo.inc create mode 100644 modules/pt/include/format/options_tclparam_snit.inc create mode 100644 modules/pt/include/format/param.inc create mode 100644 modules/pt/include/format/peg.inc create mode 100644 modules/pt/include/format/tclparam.inc create mode 100644 modules/pt/include/format/whatis_container.inc create mode 100644 modules/pt/include/format/whatis_cparam_critcl.inc create mode 100644 modules/pt/include/format/whatis_cparam_rawc.inc create mode 100644 modules/pt/include/format/whatis_json.inc create mode 100644 modules/pt/include/format/whatis_param.inc create mode 100644 modules/pt/include/format/whatis_peg.inc create mode 100644 modules/pt/include/format/whatis_tclparam_oo.inc create mode 100644 modules/pt/include/format/whatis_tclparam_snit.inc create mode 100644 modules/pt/include/gen.inc create mode 100644 modules/pt/include/gen_options.dia create mode 100644 modules/pt/include/gen_options.inc create mode 100644 modules/pt/include/gen_options.pic create mode 100644 modules/pt/include/gen_options.png create mode 100644 modules/pt/include/gen_options.txt create mode 100644 modules/pt/include/gen_verticals.inc create mode 100644 modules/pt/include/import/format/json.inc create mode 100644 modules/pt/include/import/format/peg.inc create mode 100644 modules/pt/include/import/from.inc create mode 100644 modules/pt/include/import/plugin.inc create mode 100644 modules/pt/include/keywords.inc create mode 100644 modules/pt/include/keywords_convert.inc create mode 100644 modules/pt/include/keywords_export.inc create mode 100644 modules/pt/include/keywords_import.inc create mode 100644 modules/pt/include/modes.inc create mode 100644 modules/pt/include/module.inc create mode 100644 modules/pt/include/param_1is.inc create mode 100644 modules/pt/include/param_2is.inc create mode 100644 modules/pt/include/param_3is.inc create mode 100644 modules/pt/include/param_okfail.inc create mode 100644 modules/pt/include/param_special.inc create mode 100644 modules/pt/include/rde_0cins.inc create mode 100644 modules/pt/include/rde_0gins.inc create mode 100644 modules/pt/include/rde_0ginsb.inc create mode 100644 modules/pt/include/rde_0ins.inc create mode 100644 modules/pt/include/rde_1ins.inc create mode 100644 modules/pt/include/rde_2ins.inc create mode 100644 modules/pt/include/ref_intro.inc create mode 100644 modules/pt/include/serial/ast.inc create mode 100644 modules/pt/include/serial/pegrammar.inc create mode 100644 modules/pt/include/serial/pexpression.inc create mode 100644 modules/pt/include/std_parser_object_api.inc create mode 100644 modules/pt/paths.tcl create mode 100644 modules/pt/pkgIndex.tcl create mode 100644 modules/pt/pt.bench create mode 100644 modules/pt/pt_astree.man create mode 100644 modules/pt/pt_astree.tcl create mode 100644 modules/pt/pt_astree.test create mode 100644 modules/pt/pt_cparam_config_critcl.man create mode 100644 modules/pt/pt_cparam_config_critcl.tcl create mode 100644 modules/pt/pt_cparam_config_critcl.test create mode 100644 modules/pt/pt_cparam_config_tea.man create mode 100644 modules/pt/pt_cparam_config_tea.tcl create mode 100644 modules/pt/pt_cparam_config_tea.test create mode 100644 modules/pt/pt_from_api.man create mode 100644 modules/pt/pt_introduction.man create mode 100644 modules/pt/pt_json_language.man create mode 100644 modules/pt/pt_param.man create mode 100644 modules/pt/pt_parse_peg.man create mode 100644 modules/pt/pt_parse_peg.tcl create mode 100644 modules/pt/pt_parse_peg.test create mode 100644 modules/pt/pt_parse_peg_c.tcl create mode 100644 modules/pt/pt_parse_peg_tcl.tcl create mode 100644 modules/pt/pt_parser_api.man create mode 100644 modules/pt/pt_peg_container.man create mode 100644 modules/pt/pt_peg_container.tcl create mode 100644 modules/pt/pt_peg_container.test create mode 100644 modules/pt/pt_peg_container_peg.man create mode 100644 modules/pt/pt_peg_container_peg.tcl create mode 100644 modules/pt/pt_peg_export.man create mode 100644 modules/pt/pt_peg_export.tcl create mode 100644 modules/pt/pt_peg_export.test create mode 100644 modules/pt/pt_peg_export_container.man create mode 100644 modules/pt/pt_peg_export_container.tcl create mode 100644 modules/pt/pt_peg_export_container.test create mode 100644 modules/pt/pt_peg_export_json.man create mode 100644 modules/pt/pt_peg_export_json.tcl create mode 100644 modules/pt/pt_peg_export_json.test create mode 100644 modules/pt/pt_peg_export_peg.man create mode 100644 modules/pt/pt_peg_export_peg.tcl create mode 100644 modules/pt/pt_peg_export_peg.test create mode 100644 modules/pt/pt_peg_from_container.man create mode 100644 modules/pt/pt_peg_from_json.man create mode 100644 modules/pt/pt_peg_from_json.tcl create mode 100644 modules/pt/pt_peg_from_json.test create mode 100644 modules/pt/pt_peg_from_peg.man create mode 100644 modules/pt/pt_peg_from_peg.tcl create mode 100644 modules/pt/pt_peg_from_peg.test create mode 100644 modules/pt/pt_peg_import.man create mode 100644 modules/pt/pt_peg_import.tcl create mode 100644 modules/pt/pt_peg_import.test create mode 100644 modules/pt/pt_peg_import_container.man create mode 100644 modules/pt/pt_peg_import_json.man create mode 100644 modules/pt/pt_peg_import_json.tcl create mode 100644 modules/pt/pt_peg_import_json.test create mode 100644 modules/pt/pt_peg_import_peg.man create mode 100644 modules/pt/pt_peg_import_peg.tcl create mode 100644 modules/pt/pt_peg_import_peg.test create mode 100644 modules/pt/pt_peg_interp.man create mode 100644 modules/pt/pt_peg_interp.tcl create mode 100644 modules/pt/pt_peg_interp.test create mode 100644 modules/pt/pt_peg_introduction.man create mode 100644 modules/pt/pt_peg_language.man create mode 100644 modules/pt/pt_peg_op.man create mode 100644 modules/pt/pt_peg_op.tcl create mode 100644 modules/pt/pt_peg_to_container.man create mode 100644 modules/pt/pt_peg_to_container.tcl create mode 100644 modules/pt/pt_peg_to_container.test create mode 100644 modules/pt/pt_peg_to_cparam.man create mode 100644 modules/pt/pt_peg_to_cparam.tcl create mode 100644 modules/pt/pt_peg_to_cparam.test create mode 100644 modules/pt/pt_peg_to_json.man create mode 100644 modules/pt/pt_peg_to_json.tcl create mode 100644 modules/pt/pt_peg_to_json.test create mode 100644 modules/pt/pt_peg_to_param.man create mode 100644 modules/pt/pt_peg_to_param.tcl create mode 100644 modules/pt/pt_peg_to_param.test create mode 100644 modules/pt/pt_peg_to_peg.man create mode 100644 modules/pt/pt_peg_to_peg.tcl create mode 100644 modules/pt/pt_peg_to_peg.test create mode 100644 modules/pt/pt_peg_to_tclparam.man create mode 100644 modules/pt/pt_peg_to_tclparam.tcl create mode 100644 modules/pt/pt_peg_to_tclparam.test create mode 100644 modules/pt/pt_pegrammar.man create mode 100644 modules/pt/pt_pegrammar.tcl create mode 100644 modules/pt/pt_pegrammar.test create mode 100644 modules/pt/pt_pexpr_op.man create mode 100644 modules/pt/pt_pexpr_op.tcl create mode 100644 modules/pt/pt_pexpr_op.test create mode 100644 modules/pt/pt_pexpression.man create mode 100644 modules/pt/pt_pexpression.tcl create mode 100644 modules/pt/pt_pexpression.test create mode 100644 modules/pt/pt_pgen.man create mode 100644 modules/pt/pt_pgen.tcl create mode 100644 modules/pt/pt_pgen.test create mode 100644 modules/pt/pt_rdengine.man create mode 100644 modules/pt/pt_rdengine.tcl create mode 100644 modules/pt/pt_rdengine.test create mode 100644 modules/pt/pt_rdengine_c.tcl create mode 100644 modules/pt/pt_rdengine_oo.tcl create mode 100644 modules/pt/pt_rdengine_tcl.tcl create mode 100644 modules/pt/pt_runtime.test create mode 100644 modules/pt/pt_tclparam_config_snit.man create mode 100644 modules/pt/pt_tclparam_config_snit.tcl create mode 100644 modules/pt/pt_tclparam_config_snit.test create mode 100644 modules/pt/pt_tclparam_config_tcloo.man create mode 100644 modules/pt/pt_tclparam_config_tcloo.tcl create mode 100644 modules/pt/pt_tclparam_config_tcloo.test create mode 100644 modules/pt/pt_to_api.man create mode 100644 modules/pt/pt_util.man create mode 100644 modules/pt/pt_util.tcl create mode 100644 modules/pt/rde_critcl/m.c create mode 100644 modules/pt/rde_critcl/m.h create mode 100644 modules/pt/rde_critcl/ms.c create mode 100644 modules/pt/rde_critcl/ms.h create mode 100644 modules/pt/rde_critcl/ot.c create mode 100644 modules/pt/rde_critcl/ot.h create mode 100644 modules/pt/rde_critcl/p.c create mode 100644 modules/pt/rde_critcl/p.h create mode 100644 modules/pt/rde_critcl/pInt.h create mode 100644 modules/pt/rde_critcl/param.c create mode 100644 modules/pt/rde_critcl/param.h create mode 100644 modules/pt/rde_critcl/stack.c create mode 100644 modules/pt/rde_critcl/stack.h create mode 100644 modules/pt/rde_critcl/tc.c create mode 100644 modules/pt/rde_critcl/tc.h create mode 100644 modules/pt/rde_critcl/util.c create mode 100644 modules/pt/rde_critcl/util.h create mode 100644 modules/pt/tests/char.tests create mode 100644 modules/pt/tests/common create mode 100644 modules/pt/tests/data/gr/README.txt create mode 100644 modules/pt/tests/data/gr/TODO create mode 100644 modules/pt/tests/data/gr/def/0_sequence create mode 100644 modules/pt/tests/data/gr/def/10_kleene create mode 100644 modules/pt/tests/data/gr/def/11_sym-kleene create mode 100644 modules/pt/tests/data/gr/def/12_alnum create mode 100644 modules/pt/tests/data/gr/def/13_sym-alnum create mode 100644 modules/pt/tests/data/gr/def/14_alpha create mode 100644 modules/pt/tests/data/gr/def/15_sym-alpha create mode 100644 modules/pt/tests/data/gr/def/16_ascii create mode 100644 modules/pt/tests/data/gr/def/17_sym-ascii create mode 100644 modules/pt/tests/data/gr/def/18_control create mode 100644 modules/pt/tests/data/gr/def/19_sym-control create mode 100644 modules/pt/tests/data/gr/def/1_sym-sequence create mode 100644 modules/pt/tests/data/gr/def/20_ddigit create mode 100644 modules/pt/tests/data/gr/def/21_sym-ddigit create mode 100644 modules/pt/tests/data/gr/def/22_digit create mode 100644 modules/pt/tests/data/gr/def/23_sym-digit create mode 100644 modules/pt/tests/data/gr/def/24_graph create mode 100644 modules/pt/tests/data/gr/def/25_sym-graph create mode 100644 modules/pt/tests/data/gr/def/26_lower create mode 100644 modules/pt/tests/data/gr/def/27_sym-lower create mode 100644 modules/pt/tests/data/gr/def/28_print create mode 100644 modules/pt/tests/data/gr/def/29_sym-print create mode 100644 modules/pt/tests/data/gr/def/2_choice create mode 100644 modules/pt/tests/data/gr/def/30_punct create mode 100644 modules/pt/tests/data/gr/def/31_sym-punct create mode 100644 modules/pt/tests/data/gr/def/32_space create mode 100644 modules/pt/tests/data/gr/def/33_sym-space create mode 100644 modules/pt/tests/data/gr/def/34_upper create mode 100644 modules/pt/tests/data/gr/def/35_sym-upper create mode 100644 modules/pt/tests/data/gr/def/36_wordchar create mode 100644 modules/pt/tests/data/gr/def/37_sym-wordchar create mode 100644 modules/pt/tests/data/gr/def/38_xdigit create mode 100644 modules/pt/tests/data/gr/def/39_sym-xdigit create mode 100644 modules/pt/tests/data/gr/def/3_sym-choice create mode 100644 modules/pt/tests/data/gr/def/40_dot create mode 100644 modules/pt/tests/data/gr/def/41_sym-dot create mode 100644 modules/pt/tests/data/gr/def/42_optional create mode 100644 modules/pt/tests/data/gr/def/43_sym-optional create mode 100644 modules/pt/tests/data/gr/def/44_notahead create mode 100644 modules/pt/tests/data/gr/def/45_sym-notahead create mode 100644 modules/pt/tests/data/gr/def/46_ahead create mode 100644 modules/pt/tests/data/gr/def/47_sym-ahead create mode 100644 modules/pt/tests/data/gr/def/48_ticket-4a4e443ce9 create mode 100644 modules/pt/tests/data/gr/def/4_class create mode 100644 modules/pt/tests/data/gr/def/5_sym-class create mode 100644 modules/pt/tests/data/gr/def/6_range create mode 100644 modules/pt/tests/data/gr/def/7_sym-range create mode 100644 modules/pt/tests/data/gr/def/8_pkleene create mode 100644 modules/pt/tests/data/gr/def/9_sym-pkleene create mode 100644 modules/pt/tests/data/gr/fail-ahead-container-res/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-ahead-critcl-res/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-ahead-oo-res/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-ahead-snit-res/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-ahead/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-alnum-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alnum-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alnum-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alnum-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alnum/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alpha-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alpha-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alpha-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alpha-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-alpha/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ascii-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ascii-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ascii-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ascii-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ascii/0_outside create mode 100644 modules/pt/tests/data/gr/fail-choice-container-res/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-choice-container-res/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-choice-container-res/2_digup create mode 100644 modules/pt/tests/data/gr/fail-choice-container-res/3_other create mode 100644 modules/pt/tests/data/gr/fail-choice-critcl-res/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-choice-critcl-res/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-choice-critcl-res/2_digup create mode 100644 modules/pt/tests/data/gr/fail-choice-critcl-res/3_other create mode 100644 modules/pt/tests/data/gr/fail-choice-oo-res/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-choice-oo-res/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-choice-oo-res/2_digup create mode 100644 modules/pt/tests/data/gr/fail-choice-oo-res/3_other create mode 100644 modules/pt/tests/data/gr/fail-choice-snit-res/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-choice-snit-res/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-choice-snit-res/2_digup create mode 100644 modules/pt/tests/data/gr/fail-choice-snit-res/3_other create mode 100644 modules/pt/tests/data/gr/fail-choice/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-choice/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-choice/2_digup create mode 100644 modules/pt/tests/data/gr/fail-choice/3_other create mode 100644 modules/pt/tests/data/gr/fail-class-container-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-class-critcl-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-class-oo-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-class-snit-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-class/0_beta create mode 100644 modules/pt/tests/data/gr/fail-control-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-control-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-control-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-control-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-control/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ddigit-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ddigit-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ddigit-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ddigit-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-ddigit/0_outside create mode 100644 modules/pt/tests/data/gr/fail-digit-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-digit-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-digit-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-digit-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-digit/0_outside create mode 100644 modules/pt/tests/data/gr/fail-dot-container-res/0_none create mode 100644 modules/pt/tests/data/gr/fail-dot-critcl-res/0_none create mode 100644 modules/pt/tests/data/gr/fail-dot-oo-res/0_none create mode 100644 modules/pt/tests/data/gr/fail-dot-snit-res/0_none create mode 100644 modules/pt/tests/data/gr/fail-dot/0_none create mode 100644 modules/pt/tests/data/gr/fail-graph-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-graph-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-graph-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-graph-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-graph/0_outside create mode 100644 modules/pt/tests/data/gr/fail-lower-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-lower-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-lower-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-lower-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-lower/0_outside create mode 100644 modules/pt/tests/data/gr/fail-notahead-container-res/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-notahead-critcl-res/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-notahead-oo-res/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-notahead-snit-res/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-notahead/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-pkleene-container-res/0_b create mode 100644 modules/pt/tests/data/gr/fail-pkleene-critcl-res/0_b create mode 100644 modules/pt/tests/data/gr/fail-pkleene-oo-res/0_b create mode 100644 modules/pt/tests/data/gr/fail-pkleene-snit-res/0_b create mode 100644 modules/pt/tests/data/gr/fail-pkleene/0_b create mode 100644 modules/pt/tests/data/gr/fail-print-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-print-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-print-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-print-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-print/0_outside create mode 100644 modules/pt/tests/data/gr/fail-punct-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-punct-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-punct-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-punct-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-punct/0_outside create mode 100644 modules/pt/tests/data/gr/fail-range-container-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-range-critcl-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-range-oo-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-range-snit-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-range/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sequence-container-res/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sequence-container-res/1_b create mode 100644 modules/pt/tests/data/gr/fail-sequence-critcl-res/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sequence-critcl-res/1_b create mode 100644 modules/pt/tests/data/gr/fail-sequence-oo-res/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sequence-oo-res/1_b create mode 100644 modules/pt/tests/data/gr/fail-sequence-snit-res/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sequence-snit-res/1_b create mode 100644 modules/pt/tests/data/gr/fail-sequence/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sequence/1_b create mode 100644 modules/pt/tests/data/gr/fail-space-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-space-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-space-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-space-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-space/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ahead-container-res/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-sym-ahead-critcl-res/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-sym-ahead-oo-res/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-sym-ahead-snit-res/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-sym-ahead/0_notmatch create mode 100644 modules/pt/tests/data/gr/fail-sym-alnum-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alnum-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alnum-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alnum-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alnum/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alpha-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alpha-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alpha-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alpha-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-alpha/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ascii-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ascii-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ascii-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ascii-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ascii/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-container-res/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-container-res/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-container-res/2_digup create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-container-res/3_other create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-critcl-res/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-critcl-res/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-critcl-res/2_digup create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-critcl-res/3_other create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-oo-res/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-oo-res/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-oo-res/2_digup create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-oo-res/3_other create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-snit-res/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-snit-res/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-snit-res/2_digup create mode 100644 modules/pt/tests/data/gr/fail-sym-choice-snit-res/3_other create mode 100644 modules/pt/tests/data/gr/fail-sym-choice/0_aleph create mode 100644 modules/pt/tests/data/gr/fail-sym-choice/1_anumber create mode 100644 modules/pt/tests/data/gr/fail-sym-choice/2_digup create mode 100644 modules/pt/tests/data/gr/fail-sym-choice/3_other create mode 100644 modules/pt/tests/data/gr/fail-sym-class-container-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-class-critcl-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-class-oo-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-class-snit-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-class/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-control-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-control-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-control-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-control-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-control/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ddigit-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ddigit-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ddigit-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ddigit-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-ddigit/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-digit-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-digit-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-digit-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-digit-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-digit/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-dot-container-res/0_none create mode 100644 modules/pt/tests/data/gr/fail-sym-dot-critcl-res/0_none create mode 100644 modules/pt/tests/data/gr/fail-sym-dot-oo-res/0_none create mode 100644 modules/pt/tests/data/gr/fail-sym-dot-snit-res/0_none create mode 100644 modules/pt/tests/data/gr/fail-sym-dot/0_none create mode 100644 modules/pt/tests/data/gr/fail-sym-graph-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-graph-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-graph-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-graph-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-graph/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-lower-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-lower-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-lower-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-lower-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-lower/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-notahead-container-res/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-sym-notahead-critcl-res/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-sym-notahead-oo-res/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-sym-notahead-snit-res/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-sym-notahead/0_keyword create mode 100644 modules/pt/tests/data/gr/fail-sym-pkleene-container-res/0_b create mode 100644 modules/pt/tests/data/gr/fail-sym-pkleene-critcl-res/0_b create mode 100644 modules/pt/tests/data/gr/fail-sym-pkleene-oo-res/0_b create mode 100644 modules/pt/tests/data/gr/fail-sym-pkleene-snit-res/0_b create mode 100644 modules/pt/tests/data/gr/fail-sym-pkleene/0_b create mode 100644 modules/pt/tests/data/gr/fail-sym-print-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-print-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-print-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-print-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-print/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-punct-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-punct-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-punct-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-punct-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-punct/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-range-container-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-range-critcl-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-range-oo-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-range-snit-res/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-range/0_beta create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence-container-res/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence-container-res/1_b create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence-critcl-res/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence-critcl-res/1_b create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence-oo-res/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence-oo-res/1_b create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence-snit-res/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence-snit-res/1_b create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence/0_abe create mode 100644 modules/pt/tests/data/gr/fail-sym-sequence/1_b create mode 100644 modules/pt/tests/data/gr/fail-sym-space-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-space-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-space-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-space-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-space/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-upper-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-upper-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-upper-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-upper-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-upper/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-wordchar-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-wordchar-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-wordchar-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-wordchar-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-wordchar/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-xdigit-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-xdigit-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-xdigit-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-xdigit-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-sym-xdigit/0_outside create mode 100644 modules/pt/tests/data/gr/fail-upper-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-upper-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-upper-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-upper-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-upper/0_outside create mode 100644 modules/pt/tests/data/gr/fail-wordchar-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-wordchar-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-wordchar-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-wordchar-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-wordchar/0_outside create mode 100644 modules/pt/tests/data/gr/fail-xdigit-container-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-xdigit-critcl-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-xdigit-oo-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-xdigit-snit-res/0_outside create mode 100644 modules/pt/tests/data/gr/fail-xdigit/0_outside create mode 100644 modules/pt/tests/data/gr/ok-ahead-res/0_match create mode 100644 modules/pt/tests/data/gr/ok-ahead/0_match create mode 100644 modules/pt/tests/data/gr/ok-alnum-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-alnum/0_inside create mode 100644 modules/pt/tests/data/gr/ok-alpha-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-alpha/0_inside create mode 100644 modules/pt/tests/data/gr/ok-ascii-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-ascii/0_inside create mode 100644 modules/pt/tests/data/gr/ok-choice-res/0_alpha create mode 100644 modules/pt/tests/data/gr/ok-choice-res/1_digit create mode 100644 modules/pt/tests/data/gr/ok-choice-res/2_anumeric create mode 100644 modules/pt/tests/data/gr/ok-choice/0_alpha create mode 100644 modules/pt/tests/data/gr/ok-choice/1_digit create mode 100644 modules/pt/tests/data/gr/ok-choice/2_anumeric create mode 100644 modules/pt/tests/data/gr/ok-class-res/0_a create mode 100644 modules/pt/tests/data/gr/ok-class-res/1_x create mode 100644 modules/pt/tests/data/gr/ok-class-res/2_e create mode 100644 modules/pt/tests/data/gr/ok-class/0_a create mode 100644 modules/pt/tests/data/gr/ok-class/1_x create mode 100644 modules/pt/tests/data/gr/ok-class/2_e create mode 100644 modules/pt/tests/data/gr/ok-control-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-control/0_inside create mode 100644 modules/pt/tests/data/gr/ok-ddigit-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-ddigit/0_inside create mode 100644 modules/pt/tests/data/gr/ok-digit-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-digit/0_inside create mode 100644 modules/pt/tests/data/gr/ok-dot-res/0_any create mode 100644 modules/pt/tests/data/gr/ok-dot/0_any create mode 100644 modules/pt/tests/data/gr/ok-graph-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-graph/0_inside create mode 100644 modules/pt/tests/data/gr/ok-kleene-res/0_aaab create mode 100644 modules/pt/tests/data/gr/ok-kleene-res/1_aab create mode 100644 modules/pt/tests/data/gr/ok-kleene-res/2_ab create mode 100644 modules/pt/tests/data/gr/ok-kleene-res/3_b create mode 100644 modules/pt/tests/data/gr/ok-kleene/0_aaab create mode 100644 modules/pt/tests/data/gr/ok-kleene/1_aab create mode 100644 modules/pt/tests/data/gr/ok-kleene/2_ab create mode 100644 modules/pt/tests/data/gr/ok-kleene/3_b create mode 100644 modules/pt/tests/data/gr/ok-lower-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-lower/0_inside create mode 100644 modules/pt/tests/data/gr/ok-notahead-res/0_ident create mode 100644 modules/pt/tests/data/gr/ok-notahead-res/1_identifierb create mode 100644 modules/pt/tests/data/gr/ok-notahead/0_ident create mode 100644 modules/pt/tests/data/gr/ok-notahead/1_identifierb create mode 100644 modules/pt/tests/data/gr/ok-optional-res/0_have create mode 100644 modules/pt/tests/data/gr/ok-optional-res/1_havenot create mode 100644 modules/pt/tests/data/gr/ok-optional/0_have create mode 100644 modules/pt/tests/data/gr/ok-optional/1_havenot create mode 100644 modules/pt/tests/data/gr/ok-pkleene-res/0_aaab create mode 100644 modules/pt/tests/data/gr/ok-pkleene-res/1_aab create mode 100644 modules/pt/tests/data/gr/ok-pkleene-res/2_ab create mode 100644 modules/pt/tests/data/gr/ok-pkleene/0_aaab create mode 100644 modules/pt/tests/data/gr/ok-pkleene/1_aab create mode 100644 modules/pt/tests/data/gr/ok-pkleene/2_ab create mode 100644 modules/pt/tests/data/gr/ok-print-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-print/0_inside create mode 100644 modules/pt/tests/data/gr/ok-punct-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-punct/0_inside create mode 100644 modules/pt/tests/data/gr/ok-range-res/0_a create mode 100644 modules/pt/tests/data/gr/ok-range/0_a create mode 100644 modules/pt/tests/data/gr/ok-sequence-res/0_abc create mode 100644 modules/pt/tests/data/gr/ok-sequence/0_abc create mode 100644 modules/pt/tests/data/gr/ok-space-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-space/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-ahead-res/0_match create mode 100644 modules/pt/tests/data/gr/ok-sym-ahead/0_match create mode 100644 modules/pt/tests/data/gr/ok-sym-alnum-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-alnum/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-alpha-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-alpha/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-ascii-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-ascii/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-choice-res/0_alpha create mode 100644 modules/pt/tests/data/gr/ok-sym-choice-res/1_digit create mode 100644 modules/pt/tests/data/gr/ok-sym-choice-res/2_anumeric create mode 100644 modules/pt/tests/data/gr/ok-sym-choice/0_alpha create mode 100644 modules/pt/tests/data/gr/ok-sym-choice/1_digit create mode 100644 modules/pt/tests/data/gr/ok-sym-choice/2_anumeric create mode 100644 modules/pt/tests/data/gr/ok-sym-class-res/0_a create mode 100644 modules/pt/tests/data/gr/ok-sym-class-res/1_x create mode 100644 modules/pt/tests/data/gr/ok-sym-class-res/2_e create mode 100644 modules/pt/tests/data/gr/ok-sym-class/0_a create mode 100644 modules/pt/tests/data/gr/ok-sym-class/1_x create mode 100644 modules/pt/tests/data/gr/ok-sym-class/2_e create mode 100644 modules/pt/tests/data/gr/ok-sym-control-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-control/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-ddigit-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-ddigit/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-digit-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-digit/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-dot-res/0_any create mode 100644 modules/pt/tests/data/gr/ok-sym-dot/0_any create mode 100644 modules/pt/tests/data/gr/ok-sym-graph-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-graph/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-kleene-res/0_aaab create mode 100644 modules/pt/tests/data/gr/ok-sym-kleene-res/1_aab create mode 100644 modules/pt/tests/data/gr/ok-sym-kleene-res/2_ab create mode 100644 modules/pt/tests/data/gr/ok-sym-kleene-res/3_b create mode 100644 modules/pt/tests/data/gr/ok-sym-kleene/0_aaab create mode 100644 modules/pt/tests/data/gr/ok-sym-kleene/1_aab create mode 100644 modules/pt/tests/data/gr/ok-sym-kleene/2_ab create mode 100644 modules/pt/tests/data/gr/ok-sym-kleene/3_b create mode 100644 modules/pt/tests/data/gr/ok-sym-lower-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-lower/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-notahead-res/0_ident create mode 100644 modules/pt/tests/data/gr/ok-sym-notahead-res/1_identifierb create mode 100644 modules/pt/tests/data/gr/ok-sym-notahead/0_ident create mode 100644 modules/pt/tests/data/gr/ok-sym-notahead/1_identifierb create mode 100644 modules/pt/tests/data/gr/ok-sym-optional-res/0_have create mode 100644 modules/pt/tests/data/gr/ok-sym-optional-res/1_havenot create mode 100644 modules/pt/tests/data/gr/ok-sym-optional/0_have create mode 100644 modules/pt/tests/data/gr/ok-sym-optional/1_havenot create mode 100644 modules/pt/tests/data/gr/ok-sym-pkleene-res/0_aaab create mode 100644 modules/pt/tests/data/gr/ok-sym-pkleene-res/1_aab create mode 100644 modules/pt/tests/data/gr/ok-sym-pkleene-res/2_ab create mode 100644 modules/pt/tests/data/gr/ok-sym-pkleene/0_aaab create mode 100644 modules/pt/tests/data/gr/ok-sym-pkleene/1_aab create mode 100644 modules/pt/tests/data/gr/ok-sym-pkleene/2_ab create mode 100644 modules/pt/tests/data/gr/ok-sym-print-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-print/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-punct-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-punct/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-range-res/0_a create mode 100644 modules/pt/tests/data/gr/ok-sym-range/0_a create mode 100644 modules/pt/tests/data/gr/ok-sym-sequence-res/0_abc create mode 100644 modules/pt/tests/data/gr/ok-sym-sequence/0_abc create mode 100644 modules/pt/tests/data/gr/ok-sym-space-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-space/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-upper-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-upper/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-wordchar-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-wordchar/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-xdigit-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-sym-xdigit/0_inside create mode 100644 modules/pt/tests/data/gr/ok-ticket-4a4e443ce9-res/0_test create mode 100644 modules/pt/tests/data/gr/ok-ticket-4a4e443ce9/0_test create mode 100644 modules/pt/tests/data/gr/ok-upper-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-upper/0_inside create mode 100644 modules/pt/tests/data/gr/ok-wordchar-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-wordchar/0_inside create mode 100644 modules/pt/tests/data/gr/ok-xdigit-res/0_inside create mode 100644 modules/pt/tests/data/gr/ok-xdigit/0_inside create mode 100644 modules/pt/tests/data/ok/ast_serial-budump/0_terminal create mode 100644 modules/pt/tests/data/ok/ast_serial-budump/1_nonterminal create mode 100644 modules/pt/tests/data/ok/ast_serial-budump/2_tree create mode 100644 modules/pt/tests/data/ok/ast_serial-print/0_terminal create mode 100644 modules/pt/tests/data/ok/ast_serial-print/1_nonterminal create mode 100644 modules/pt/tests/data/ok/ast_serial-print/2_tree create mode 100644 modules/pt/tests/data/ok/ast_serial-tddump/0_terminal create mode 100644 modules/pt/tests/data/ok/ast_serial-tddump/1_nonterminal create mode 100644 modules/pt/tests/data/ok/ast_serial-tddump/2_tree create mode 100644 modules/pt/tests/data/ok/ast_serial/0_terminal create mode 100644 modules/pt/tests/data/ok/ast_serial/1_nonterminal create mode 100644 modules/pt/tests/data/ok/ast_serial/2_tree create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/10_space create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/11_upper create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/12_wordchar create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/13_xdigit create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/14_ddigit create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/15_dot create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/16_nonterminal create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/17_terminal create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/18_range create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/19_ahead create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/1_epsilon create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/20_notahead create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/21_kleene create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/22_pkleen create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/23_optional create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/24_sequence create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/25_choice create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/26_complex create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/2_alpha create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/3_alnum create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/4_ascii create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/5_digit create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/6_graph create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/7_lower create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/8_print create mode 100644 modules/pt/tests/data/ok/pe_serial-budump/9_punct create mode 100644 modules/pt/tests/data/ok/pe_serial-print/10_space create mode 100644 modules/pt/tests/data/ok/pe_serial-print/11_upper create mode 100644 modules/pt/tests/data/ok/pe_serial-print/12_wordchar create mode 100644 modules/pt/tests/data/ok/pe_serial-print/13_xdigit create mode 100644 modules/pt/tests/data/ok/pe_serial-print/14_ddigit create mode 100644 modules/pt/tests/data/ok/pe_serial-print/15_dot create mode 100644 modules/pt/tests/data/ok/pe_serial-print/16_nonterminal create mode 100644 modules/pt/tests/data/ok/pe_serial-print/17_terminal create mode 100644 modules/pt/tests/data/ok/pe_serial-print/18_range create mode 100644 modules/pt/tests/data/ok/pe_serial-print/19_ahead create mode 100644 modules/pt/tests/data/ok/pe_serial-print/1_epsilon create mode 100644 modules/pt/tests/data/ok/pe_serial-print/20_notahead create mode 100644 modules/pt/tests/data/ok/pe_serial-print/21_kleene create mode 100644 modules/pt/tests/data/ok/pe_serial-print/22_pkleen create mode 100644 modules/pt/tests/data/ok/pe_serial-print/23_optional create mode 100644 modules/pt/tests/data/ok/pe_serial-print/24_sequence create mode 100644 modules/pt/tests/data/ok/pe_serial-print/25_choice create mode 100644 modules/pt/tests/data/ok/pe_serial-print/26_complex create mode 100644 modules/pt/tests/data/ok/pe_serial-print/2_alpha create mode 100644 modules/pt/tests/data/ok/pe_serial-print/3_alnum create mode 100644 modules/pt/tests/data/ok/pe_serial-print/4_ascii create mode 100644 modules/pt/tests/data/ok/pe_serial-print/5_digit create mode 100644 modules/pt/tests/data/ok/pe_serial-print/6_graph create mode 100644 modules/pt/tests/data/ok/pe_serial-print/7_lower create mode 100644 modules/pt/tests/data/ok/pe_serial-print/8_print create mode 100644 modules/pt/tests/data/ok/pe_serial-print/9_punct create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/10_space create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/11_upper create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/12_wordchar create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/13_xdigit create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/14_ddigit create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/15_dot create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/16_nonterminal create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/17_terminal create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/18_range create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/19_ahead create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/1_epsilon create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/20_notahead create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/21_kleene create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/22_pkleen create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/23_optional create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/24_sequence create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/25_choice create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/26_complex create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/2_alpha create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/3_alnum create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/4_ascii create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/5_digit create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/6_graph create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/7_lower create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/8_print create mode 100644 modules/pt/tests/data/ok/pe_serial-tddump/9_punct create mode 100644 modules/pt/tests/data/ok/pe_serial/10_space create mode 100644 modules/pt/tests/data/ok/pe_serial/11_upper create mode 100644 modules/pt/tests/data/ok/pe_serial/12_wordchar create mode 100644 modules/pt/tests/data/ok/pe_serial/13_xdigit create mode 100644 modules/pt/tests/data/ok/pe_serial/14_ddigit create mode 100644 modules/pt/tests/data/ok/pe_serial/15_dot create mode 100644 modules/pt/tests/data/ok/pe_serial/16_nonterminal create mode 100644 modules/pt/tests/data/ok/pe_serial/17_terminal create mode 100644 modules/pt/tests/data/ok/pe_serial/18_range create mode 100644 modules/pt/tests/data/ok/pe_serial/19_ahead create mode 100644 modules/pt/tests/data/ok/pe_serial/1_epsilon create mode 100644 modules/pt/tests/data/ok/pe_serial/20_notahead create mode 100644 modules/pt/tests/data/ok/pe_serial/21_kleene create mode 100644 modules/pt/tests/data/ok/pe_serial/22_pkleen create mode 100644 modules/pt/tests/data/ok/pe_serial/23_optional create mode 100644 modules/pt/tests/data/ok/pe_serial/24_sequence create mode 100644 modules/pt/tests/data/ok/pe_serial/25_choice create mode 100644 modules/pt/tests/data/ok/pe_serial/26_complex create mode 100644 modules/pt/tests/data/ok/pe_serial/2_alpha create mode 100644 modules/pt/tests/data/ok/pe_serial/3_alnum create mode 100644 modules/pt/tests/data/ok/pe_serial/4_ascii create mode 100644 modules/pt/tests/data/ok/pe_serial/5_digit create mode 100644 modules/pt/tests/data/ok/pe_serial/6_graph create mode 100644 modules/pt/tests/data/ok/pe_serial/7_lower create mode 100644 modules/pt/tests/data/ok/pe_serial/8_print create mode 100644 modules/pt/tests/data/ok/pe_serial/9_punct create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/1_functions create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/4_choice create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/6_optional create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_container-bulk/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/1_functions create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/4_choice create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/6_optional create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_container-incremental/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/1_functions create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/4_choice create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/6_optional create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_container-templated-bulk/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/1_functions create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/4_choice create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/6_optional create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_container-templated-incremental/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/1_functions create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/4_choice create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/6_optional create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_cparam-critcl/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/1_functions create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/4_choice create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/6_optional create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_cparam-tea/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_cparam/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_cparam/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_cparam/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_cparam/1_functions create mode 100644 modules/pt/tests/data/ok/peg_cparam/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_cparam/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_cparam/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_cparam/4_choice create mode 100644 modules/pt/tests/data/ok/peg_cparam/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_cparam/6_optional create mode 100644 modules/pt/tests/data/ok/peg_cparam/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_cparam/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_cparam/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/1_functions create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/4_choice create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/6_optional create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_json-indalign/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_json-indented/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_json-indented/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_json-indented/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_json-indented/1_functions create mode 100644 modules/pt/tests/data/ok/peg_json-indented/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_json-indented/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_json-indented/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_json-indented/4_choice create mode 100644 modules/pt/tests/data/ok/peg_json-indented/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_json-indented/6_optional create mode 100644 modules/pt/tests/data/ok/peg_json-indented/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_json-indented/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_json-indented/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/1_functions create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/4_choice create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/6_optional create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_json-ultracompact/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_param-compact/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_param-compact/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_param-compact/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_param-compact/1_functions create mode 100644 modules/pt/tests/data/ok/peg_param-compact/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_param-compact/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_param-compact/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_param-compact/4_choice create mode 100644 modules/pt/tests/data/ok/peg_param-compact/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_param-compact/6_optional create mode 100644 modules/pt/tests/data/ok/peg_param-compact/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_param-compact/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_param-compact/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/1_functions create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/4_choice create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/6_optional create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_param-inlined/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/1_functions create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/4_choice create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/6_optional create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_param-unopt/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_param/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_param/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_param/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_param/1_functions create mode 100644 modules/pt/tests/data/ok/peg_param/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_param/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_param/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_param/4_choice create mode 100644 modules/pt/tests/data/ok/peg_param/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_param/6_optional create mode 100644 modules/pt/tests/data/ok/peg_param/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_param/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_param/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/1_functions create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/4_choice create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/6_optional create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-fused/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/1_functions create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/4_choice create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/6_optional create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated-fused/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/1_functions create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/4_choice create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/6_optional create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_peg-ast-templated/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/1_functions create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/4_choice create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/6_optional create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_peg-ast/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/1_functions create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/4_choice create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/6_optional create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_peg-fused/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/1_functions create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/4_choice create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/6_optional create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_peg-templated-fused/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/1_functions create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/4_choice create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/6_optional create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_peg-templated/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_peg/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_peg/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_peg/1_functions create mode 100644 modules/pt/tests/data/ok/peg_peg/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_peg/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_peg/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_peg/4_choice create mode 100644 modules/pt/tests/data/ok/peg_peg/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_peg/6_optional create mode 100644 modules/pt/tests/data/ok/peg_peg/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_peg/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_peg/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/1_functions create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/4_choice create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/6_optional create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_serial-canonical/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_serial-print/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_serial-print/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_serial-print/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_serial-print/1_functions create mode 100644 modules/pt/tests/data/ok/peg_serial-print/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_serial-print/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_serial-print/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_serial-print/4_choice create mode 100644 modules/pt/tests/data/ok/peg_serial-print/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_serial-print/6_optional create mode 100644 modules/pt/tests/data/ok/peg_serial-print/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_serial-print/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_serial-print/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_serial/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_serial/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_serial/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_serial/1_functions create mode 100644 modules/pt/tests/data/ok/peg_serial/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_serial/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_serial/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_serial/4_choice create mode 100644 modules/pt/tests/data/ok/peg_serial/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_serial/6_optional create mode 100644 modules/pt/tests/data/ok/peg_serial/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_serial/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_serial/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/1_functions create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/4_choice create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/6_optional create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_tclparam-snit/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/1_functions create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/4_choice create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/6_optional create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_tclparam-tcloo/9_ahead create mode 100644 modules/pt/tests/data/ok/peg_tclparam/0_basic_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_tclparam/10_notahead create mode 100644 modules/pt/tests/data/ok/peg_tclparam/11_epsilon create mode 100644 modules/pt/tests/data/ok/peg_tclparam/1_functions create mode 100644 modules/pt/tests/data/ok/peg_tclparam/27_ticket_4a4e443ce9 create mode 100644 modules/pt/tests/data/ok/peg_tclparam/2_fun_arithmetic create mode 100644 modules/pt/tests/data/ok/peg_tclparam/3_peg_itself create mode 100644 modules/pt/tests/data/ok/peg_tclparam/4_choice create mode 100644 modules/pt/tests/data/ok/peg_tclparam/5_sequence create mode 100644 modules/pt/tests/data/ok/peg_tclparam/6_optional create mode 100644 modules/pt/tests/data/ok/peg_tclparam/7_kleene create mode 100644 modules/pt/tests/data/ok/peg_tclparam/8_pkleene create mode 100644 modules/pt/tests/data/ok/peg_tclparam/9_ahead create mode 100644 modules/pt/tests/pt_astree.tests create mode 100644 modules/pt/tests/pt_cparam_config_critcl.tests create mode 100644 modules/pt/tests/pt_cparam_config_tea.tests create mode 100644 modules/pt/tests/pt_parse_peg.tests create mode 100644 modules/pt/tests/pt_peg_container.tests create mode 100644 modules/pt/tests/pt_peg_export.tests create mode 100644 modules/pt/tests/pt_peg_export_container.tests create mode 100644 modules/pt/tests/pt_peg_export_json.tests create mode 100644 modules/pt/tests/pt_peg_export_peg.tests create mode 100644 modules/pt/tests/pt_peg_export_plugins.tests create mode 100644 modules/pt/tests/pt_peg_from_json.tests create mode 100644 modules/pt/tests/pt_peg_from_peg.tests create mode 100644 modules/pt/tests/pt_peg_import.tests create mode 100644 modules/pt/tests/pt_peg_import_json.tests create mode 100644 modules/pt/tests/pt_peg_import_peg.tests create mode 100644 modules/pt/tests/pt_peg_import_plugins.tests create mode 100644 modules/pt/tests/pt_peg_interp.tests create mode 100644 modules/pt/tests/pt_peg_to_container.tests create mode 100644 modules/pt/tests/pt_peg_to_cparam.tests create mode 100644 modules/pt/tests/pt_peg_to_json.tests create mode 100644 modules/pt/tests/pt_peg_to_param.tests create mode 100644 modules/pt/tests/pt_peg_to_peg.tests create mode 100644 modules/pt/tests/pt_peg_to_tclparam.tests create mode 100644 modules/pt/tests/pt_pegrammar.tests create mode 100644 modules/pt/tests/pt_pexpr_op.tests create mode 100644 modules/pt/tests/pt_pexpression.tests create mode 100644 modules/pt/tests/pt_pgen.tests create mode 100644 modules/pt/tests/pt_rdengine.tests create mode 100644 modules/pt/tests/pt_runtime.tests create mode 100644 modules/pt/tests/pt_tclparam_config_snit.tests create mode 100644 modules/pt/tests/pt_tclparam_config_tcloo.tests create mode 100644 modules/pt/text_write.tcl create mode 100644 modules/pt/tools/bench-compare.tcl create mode 100644 modules/pt/tools/regenerate_parsers.tcl create mode 100644 modules/rc4/ChangeLog create mode 100644 modules/rc4/pkgIndex.tcl create mode 100644 modules/rc4/rc4.bench create mode 100644 modules/rc4/rc4.man create mode 100644 modules/rc4/rc4.tcl create mode 100644 modules/rc4/rc4.test create mode 100644 modules/rc4/rc4c.tcl create mode 100644 modules/rcs/ChangeLog create mode 100644 modules/rcs/pkgIndex.tcl create mode 100644 modules/rcs/rcs.man create mode 100644 modules/rcs/rcs.pcx create mode 100644 modules/rcs/rcs.tcl create mode 100644 modules/rcs/rcs.test create mode 100644 modules/report/ChangeLog create mode 100644 modules/report/pkgIndex.tcl create mode 100644 modules/report/report.man create mode 100644 modules/report/report.tcl create mode 100644 modules/report/report.test create mode 100644 modules/rest/ChangeLog create mode 100644 modules/rest/bitly create mode 100644 modules/rest/couchdb create mode 100644 modules/rest/delicious create mode 100644 modules/rest/facebook create mode 100644 modules/rest/flickr create mode 100644 modules/rest/gcal create mode 100644 modules/rest/gdocs create mode 100644 modules/rest/pkgIndex.tcl create mode 100644 modules/rest/rest.man create mode 100644 modules/rest/rest.tcl create mode 100644 modules/rest/twitter create mode 100644 modules/rest/yboss create mode 100644 modules/rest/yweather create mode 100644 modules/ripemd/ChangeLog create mode 100644 modules/ripemd/pkgIndex.tcl create mode 100644 modules/ripemd/ripemd128.bench create mode 100644 modules/ripemd/ripemd128.man create mode 100644 modules/ripemd/ripemd128.tcl create mode 100644 modules/ripemd/ripemd128.test create mode 100644 modules/ripemd/ripemd160.bench create mode 100644 modules/ripemd/ripemd160.man create mode 100644 modules/ripemd/ripemd160.tcl create mode 100644 modules/ripemd/ripemd160.test create mode 100644 modules/ripemd/ripemd160_test.c create mode 100644 modules/sasl/ChangeLog create mode 100644 modules/sasl/gtoken.man create mode 100644 modules/sasl/gtoken.tcl create mode 100644 modules/sasl/ntlm.man create mode 100644 modules/sasl/ntlm.tcl create mode 100644 modules/sasl/ntlm.test create mode 100644 modules/sasl/pkgIndex.tcl create mode 100644 modules/sasl/sasl.man create mode 100644 modules/sasl/sasl.tcl create mode 100644 modules/sasl/sasl.test create mode 100644 modules/sasl/scram.man create mode 100644 modules/sasl/scram.tcl create mode 100644 modules/sasl/scram.test create mode 100644 modules/sha1/ChangeLog create mode 100644 modules/sha1/pkgIndex.tcl create mode 100644 modules/sha1/sha1.bench create mode 100644 modules/sha1/sha1.c create mode 100644 modules/sha1/sha1.h create mode 100644 modules/sha1/sha1.man create mode 100644 modules/sha1/sha1.tcl create mode 100644 modules/sha1/sha1.test create mode 100644 modules/sha1/sha1c.tcl create mode 100644 modules/sha1/sha1v1.tcl create mode 100644 modules/sha1/sha1v1.test create mode 100644 modules/sha1/sha256.bench create mode 100644 modules/sha1/sha256.c create mode 100644 modules/sha1/sha256.h create mode 100644 modules/sha1/sha256.man create mode 100644 modules/sha1/sha256.tcl create mode 100644 modules/sha1/sha256.test create mode 100644 modules/sha1/sha256c.tcl create mode 100755 modules/simulation/ChangeLog create mode 100755 modules/simulation/annealing.man create mode 100755 modules/simulation/annealing.tcl create mode 100755 modules/simulation/montecarlo.man create mode 100755 modules/simulation/montecarlo.tcl create mode 100755 modules/simulation/pkgIndex.tcl create mode 100755 modules/simulation/random.tcl create mode 100755 modules/simulation/random.test create mode 100644 modules/simulation/simulation_random.man create mode 100644 modules/smtpd/ChangeLog create mode 100644 modules/smtpd/clients/README create mode 100644 modules/smtpd/clients/mail-test.php create mode 100644 modules/smtpd/clients/mail-test.pl create mode 100644 modules/smtpd/clients/mail-test.py create mode 100644 modules/smtpd/clients/mail-test.rb create mode 100644 modules/smtpd/clients/mail-test.tcl create mode 100644 modules/smtpd/clients/php.ini create mode 100644 modules/smtpd/pkgIndex.tcl create mode 100644 modules/smtpd/smtpd.man create mode 100644 modules/smtpd/smtpd.tcl create mode 100644 modules/snit/ChangeLog create mode 100644 modules/snit/README.tcl83.txt create mode 100644 modules/snit/README.txt create mode 100644 modules/snit/dictionary.txt create mode 100644 modules/snit/license.txt create mode 100644 modules/snit/main1.tcl create mode 100644 modules/snit/main1_83.tcl create mode 100644 modules/snit/main2.tcl create mode 100644 modules/snit/modules.txt create mode 100644 modules/snit/pkgIndex.tcl create mode 100644 modules/snit/roadmap.txt create mode 100644 modules/snit/roadmap2.txt create mode 100644 modules/snit/snit.man create mode 100644 modules/snit/snit.tcl create mode 100644 modules/snit/snit.test create mode 100644 modules/snit/snit2.tcl create mode 100644 modules/snit/snit_tcl83_utils.tcl create mode 100644 modules/snit/snitfaq.man create mode 100644 modules/snit/validate.tcl create mode 100644 modules/soundex/ChangeLog create mode 100644 modules/soundex/pkgIndex.tcl create mode 100644 modules/soundex/soundex.man create mode 100644 modules/soundex/soundex.pcx create mode 100644 modules/soundex/soundex.tcl create mode 100644 modules/soundex/soundex.test create mode 100644 modules/stooop/ChangeLog create mode 100644 modules/stooop/README create mode 100755 modules/stooop/mkpkgidx.tcl create mode 100644 modules/stooop/pkgIndex.tcl create mode 100644 modules/stooop/stooop.man create mode 100644 modules/stooop/stooop.tcl create mode 100644 modules/stooop/stooop.test create mode 100644 modules/stooop/stooop_man.html create mode 100644 modules/stooop/switched.html create mode 100644 modules/stooop/switched.man create mode 100644 modules/stooop/switched.tcl create mode 100644 modules/stooop/xifo.tcl create mode 100644 modules/string/ChangeLog create mode 100644 modules/string/pkgIndex.tcl create mode 100644 modules/string/token.man create mode 100644 modules/string/token.tcl create mode 100644 modules/string/token_shell.man create mode 100644 modules/string/token_shell.tcl create mode 100644 modules/string/token_shell.test create mode 100644 modules/stringprep/ChangeLog create mode 100644 modules/stringprep/pkgIndex.tcl create mode 100644 modules/stringprep/stringprep.man create mode 100644 modules/stringprep/stringprep.tcl create mode 100644 modules/stringprep/stringprep.test create mode 100644 modules/stringprep/stringprep_data.man create mode 100644 modules/stringprep/stringprep_data.tcl create mode 100644 modules/stringprep/tools/gen_stringprep_data.tcl create mode 100644 modules/stringprep/tools/gen_unicode_data.tcl create mode 100644 modules/stringprep/tools/gen_unicode_test.tcl create mode 100644 modules/stringprep/unicode.man create mode 100644 modules/stringprep/unicode.tcl create mode 100644 modules/stringprep/unicode.test create mode 100644 modules/stringprep/unicode_data.man create mode 100644 modules/stringprep/unicode_data.tcl create mode 100644 modules/struct/ChangeLog create mode 100644 modules/struct/disjointset.man create mode 100644 modules/struct/disjointset.tcl create mode 100644 modules/struct/disjointset.test create mode 100644 modules/struct/disjointset.testsuite create mode 100644 modules/struct/graph.man create mode 100644 modules/struct/graph.tcl create mode 100644 modules/struct/graph.test create mode 100644 modules/struct/graph/arc.c create mode 100644 modules/struct/graph/arc.h create mode 100644 modules/struct/graph/arcshimmer.c create mode 100644 modules/struct/graph/attr.c create mode 100644 modules/struct/graph/attr.h create mode 100644 modules/struct/graph/ds.h create mode 100644 modules/struct/graph/filter.c create mode 100644 modules/struct/graph/global.c create mode 100644 modules/struct/graph/global.h create mode 100644 modules/struct/graph/graph.c create mode 100644 modules/struct/graph/graph.h create mode 100644 modules/struct/graph/methods.c create mode 100644 modules/struct/graph/methods.h create mode 100644 modules/struct/graph/nacommon.c create mode 100644 modules/struct/graph/nacommon.h create mode 100644 modules/struct/graph/node.c create mode 100644 modules/struct/graph/node.h create mode 100644 modules/struct/graph/nodeshimmer.c create mode 100644 modules/struct/graph/objcmd.c create mode 100644 modules/struct/graph/objcmd.h create mode 100644 modules/struct/graph/tests/XOpsControl create mode 100644 modules/struct/graph/tests/XOpsSetup create mode 100644 modules/struct/graph/tests/XOpsSupport create mode 100644 modules/struct/graph/tests/Xcontrol create mode 100644 modules/struct/graph/tests/Xsetup create mode 100644 modules/struct/graph/tests/Xsupport create mode 100644 modules/struct/graph/tests/arc/attr.test create mode 100644 modules/struct/graph/tests/arc/delete.test create mode 100644 modules/struct/graph/tests/arc/exists.test create mode 100644 modules/struct/graph/tests/arc/flip.test create mode 100644 modules/struct/graph/tests/arc/getunweighted.test create mode 100644 modules/struct/graph/tests/arc/getweight.test create mode 100644 modules/struct/graph/tests/arc/hasweight.test create mode 100644 modules/struct/graph/tests/arc/insert.test create mode 100644 modules/struct/graph/tests/arc/move-source.test create mode 100644 modules/struct/graph/tests/arc/move-target.test create mode 100644 modules/struct/graph/tests/arc/move.test create mode 100644 modules/struct/graph/tests/arc/nodes.test create mode 100644 modules/struct/graph/tests/arc/rename.test create mode 100644 modules/struct/graph/tests/arc/setunweighted.test create mode 100644 modules/struct/graph/tests/arc/setweight.test create mode 100644 modules/struct/graph/tests/arc/source.test create mode 100644 modules/struct/graph/tests/arc/target.test create mode 100644 modules/struct/graph/tests/arc/unsetweight.test create mode 100644 modules/struct/graph/tests/arc/weights.test create mode 100644 modules/struct/graph/tests/arcs.test create mode 100644 modules/struct/graph/tests/assign.test create mode 100644 modules/struct/graph/tests/attr/Xsetup create mode 100644 modules/struct/graph/tests/attr/append.test create mode 100644 modules/struct/graph/tests/attr/get.test create mode 100644 modules/struct/graph/tests/attr/getall.test create mode 100644 modules/struct/graph/tests/attr/keyexists.test create mode 100644 modules/struct/graph/tests/attr/keys.test create mode 100644 modules/struct/graph/tests/attr/lappend.test create mode 100644 modules/struct/graph/tests/attr/set.test create mode 100644 modules/struct/graph/tests/attr/unset.test create mode 100644 modules/struct/graph/tests/command.test create mode 100644 modules/struct/graph/tests/deserialize.test create mode 100644 modules/struct/graph/tests/node/attr.test create mode 100644 modules/struct/graph/tests/node/degree.test create mode 100644 modules/struct/graph/tests/node/delete.test create mode 100644 modules/struct/graph/tests/node/exists.test create mode 100644 modules/struct/graph/tests/node/insert.test create mode 100644 modules/struct/graph/tests/node/opposite.test create mode 100644 modules/struct/graph/tests/node/rename.test create mode 100644 modules/struct/graph/tests/nodes.test create mode 100644 modules/struct/graph/tests/ops/adjlist.test create mode 100644 modules/struct/graph/tests/ops/adjmatrix.test create mode 100644 modules/struct/graph/tests/ops/bellmanford.test create mode 100644 modules/struct/graph/tests/ops/bfs.test create mode 100644 modules/struct/graph/tests/ops/bipartite.test create mode 100644 modules/struct/graph/tests/ops/bridge.test create mode 100644 modules/struct/graph/tests/ops/busackergowen.test create mode 100644 modules/struct/graph/tests/ops/christofides.test create mode 100644 modules/struct/graph/tests/ops/componentof.test create mode 100644 modules/struct/graph/tests/ops/components.test create mode 100644 modules/struct/graph/tests/ops/connected.test create mode 100644 modules/struct/graph/tests/ops/cutvertex.test create mode 100644 modules/struct/graph/tests/ops/diameter.test create mode 100644 modules/struct/graph/tests/ops/dijkstra.test create mode 100644 modules/struct/graph/tests/ops/dinicblockingflow.test create mode 100644 modules/struct/graph/tests/ops/dinicmaximumflow.test create mode 100644 modules/struct/graph/tests/ops/distance.test create mode 100644 modules/struct/graph/tests/ops/eccentricity.test create mode 100644 modules/struct/graph/tests/ops/edmondskarp.test create mode 100644 modules/struct/graph/tests/ops/eulerpath.test create mode 100644 modules/struct/graph/tests/ops/eulertour.test create mode 100644 modules/struct/graph/tests/ops/floydwarshall.test create mode 100644 modules/struct/graph/tests/ops/johnsons.test create mode 100644 modules/struct/graph/tests/ops/kcenter.test create mode 100644 modules/struct/graph/tests/ops/kruskal.test create mode 100644 modules/struct/graph/tests/ops/maxcut.test create mode 100644 modules/struct/graph/tests/ops/maxmatching.test create mode 100644 modules/struct/graph/tests/ops/mdst.test create mode 100644 modules/struct/graph/tests/ops/metrictsp.test create mode 100644 modules/struct/graph/tests/ops/mkmblockingflow.test create mode 100644 modules/struct/graph/tests/ops/prim.test create mode 100644 modules/struct/graph/tests/ops/radius.test create mode 100644 modules/struct/graph/tests/ops/tarjan.test create mode 100644 modules/struct/graph/tests/ops/tspheuristics.test create mode 100644 modules/struct/graph/tests/ops/verticescover.test create mode 100644 modules/struct/graph/tests/ops/weightedkcenter.test create mode 100644 modules/struct/graph/tests/rassign.test create mode 100644 modules/struct/graph/tests/serialize.test create mode 100644 modules/struct/graph/tests/swap.test create mode 100644 modules/struct/graph/tests/walk.test create mode 100644 modules/struct/graph/util.c create mode 100644 modules/struct/graph/util.h create mode 100644 modules/struct/graph/walk.c create mode 100644 modules/struct/graph/walk.h create mode 100644 modules/struct/graph1.man create mode 100644 modules/struct/graph1.tcl create mode 100644 modules/struct/graph1.test create mode 100644 modules/struct/graph_c.tcl create mode 100644 modules/struct/graph_tcl.tcl create mode 100644 modules/struct/graphops.man create mode 100644 modules/struct/graphops.tcl create mode 100644 modules/struct/graphops.test create mode 100644 modules/struct/list.tcl create mode 100644 modules/struct/list.test create mode 100644 modules/struct/matrix.man create mode 100644 modules/struct/matrix.tcl create mode 100644 modules/struct/matrix.test create mode 100644 modules/struct/matrix.testsupport create mode 100644 modules/struct/matrix1.man create mode 100644 modules/struct/matrix1.tcl create mode 100644 modules/struct/matrix1.test create mode 100644 modules/struct/pkgIndex.tcl create mode 100644 modules/struct/pool.html create mode 100644 modules/struct/pool.man create mode 100644 modules/struct/pool.tcl create mode 100644 modules/struct/pool.test create mode 100644 modules/struct/prioqueue.man create mode 100644 modules/struct/prioqueue.tcl create mode 100644 modules/struct/prioqueue.test create mode 100644 modules/struct/queue.bench create mode 100644 modules/struct/queue.man create mode 100644 modules/struct/queue.tcl create mode 100644 modules/struct/queue.test create mode 100644 modules/struct/queue.testsuite create mode 100644 modules/struct/queue/ds.h create mode 100644 modules/struct/queue/m.c create mode 100644 modules/struct/queue/m.h create mode 100644 modules/struct/queue/ms.c create mode 100644 modules/struct/queue/ms.h create mode 100644 modules/struct/queue/q.c create mode 100644 modules/struct/queue/q.h create mode 100644 modules/struct/queue/util.h create mode 100644 modules/struct/queue_c.tcl create mode 100644 modules/struct/queue_oo.tcl create mode 100644 modules/struct/queue_tcl.tcl create mode 100644 modules/struct/record.html create mode 100644 modules/struct/record.man create mode 100644 modules/struct/record.tcl create mode 100644 modules/struct/record.test create mode 100644 modules/struct/sets.bench create mode 100644 modules/struct/sets.tcl create mode 100644 modules/struct/sets.test create mode 100644 modules/struct/sets.testsuite create mode 100644 modules/struct/sets/ds.h create mode 100644 modules/struct/sets/m.c create mode 100644 modules/struct/sets/m.h create mode 100644 modules/struct/sets/s.c create mode 100644 modules/struct/sets/s.h create mode 100644 modules/struct/sets_c.tcl create mode 100644 modules/struct/sets_tcl.tcl create mode 100644 modules/struct/skiplist.man create mode 100644 modules/struct/skiplist.tcl create mode 100644 modules/struct/skiplist.test create mode 100644 modules/struct/stack.bench create mode 100644 modules/struct/stack.man create mode 100644 modules/struct/stack.tcl create mode 100644 modules/struct/stack.test create mode 100644 modules/struct/stack.testsuite create mode 100644 modules/struct/stack/ds.h create mode 100644 modules/struct/stack/m.c create mode 100644 modules/struct/stack/m.h create mode 100644 modules/struct/stack/ms.c create mode 100644 modules/struct/stack/ms.h create mode 100644 modules/struct/stack/s.c create mode 100644 modules/struct/stack/s.h create mode 100644 modules/struct/stack/util.h create mode 100644 modules/struct/stack_c.tcl create mode 100644 modules/struct/stack_oo.tcl create mode 100644 modules/struct/stack_tcl.tcl create mode 100644 modules/struct/struct.tcl create mode 100644 modules/struct/struct1.tcl create mode 100644 modules/struct/struct_list.man create mode 100644 modules/struct/struct_set.man create mode 100644 modules/struct/struct_tree.man create mode 100644 modules/struct/struct_tree1.man create mode 100644 modules/struct/tree.bench create mode 100644 modules/struct/tree.tcl create mode 100644 modules/struct/tree.test create mode 100644 modules/struct/tree.testsuite create mode 100644 modules/struct/tree.testsuite.4417=84tcl.txt create mode 100644 modules/struct/tree.testsuite.4417a83critcl.txt create mode 100644 modules/struct/tree.testsuite.4417a84tcl.txt create mode 100644 modules/struct/tree.testsuite.4417b84.txt create mode 100644 modules/struct/tree/ds.h create mode 100644 modules/struct/tree/m.c create mode 100644 modules/struct/tree/m.h create mode 100644 modules/struct/tree/ms.c create mode 100644 modules/struct/tree/ms.h create mode 100644 modules/struct/tree/shimmer.c create mode 100644 modules/struct/tree/t.c create mode 100644 modules/struct/tree/t.h create mode 100644 modules/struct/tree/tests/Xsupport create mode 100644 modules/struct/tree/tn.c create mode 100644 modules/struct/tree/tn.h create mode 100644 modules/struct/tree/util.c create mode 100644 modules/struct/tree/util.h create mode 100644 modules/struct/tree/walk.c create mode 100644 modules/struct/tree1.tcl create mode 100644 modules/struct/tree1.test create mode 100644 modules/struct/tree_c.tcl create mode 100644 modules/struct/tree_tcl.tcl create mode 100644 modules/tar/ChangeLog create mode 100644 modules/tar/pkgIndex.tcl create mode 100644 modules/tar/tar.man create mode 100644 modules/tar/tar.pcx create mode 100644 modules/tar/tar.tcl create mode 100644 modules/tar/tar.test create mode 100644 modules/tar/tests/support.tcl create mode 100644 modules/tcllibc.tcl create mode 100644 modules/tepam/ChangeLog create mode 100644 modules/tepam/adbox_all.test create mode 100644 modules/tepam/adbox_widgets.test create mode 100644 modules/tepam/bug_fixes.test create mode 100644 modules/tepam/doc_gen.test create mode 100644 modules/tepam/pkgIndex.tcl create mode 100644 modules/tepam/proc_call_arg_nun.test create mode 100644 modules/tepam/proc_call_arg_type.test create mode 100644 modules/tepam/proc_call_arg_unn.test create mode 100644 modules/tepam/proc_call_arg_valid.test create mode 100644 modules/tepam/proc_interactive.test create mode 100644 modules/tepam/proc_namespaces.test create mode 100644 modules/tepam/proc_subproc.test create mode 100644 modules/tepam/tepam.tcl create mode 100644 modules/tepam/tepam_argument_dialogbox.man create mode 100644 modules/tepam/tepam_doc_gen.man create mode 100644 modules/tepam/tepam_doc_gen.tcl create mode 100644 modules/tepam/tepam_introduction.man create mode 100644 modules/tepam/tepam_procedure.man create mode 100644 modules/term/ChangeLog create mode 100644 modules/term/ansi/code.tcl create mode 100644 modules/term/ansi/code/attr.tcl create mode 100644 modules/term/ansi/code/ctrl.tcl create mode 100644 modules/term/ansi/code/macros.tcl create mode 100644 modules/term/ansi/ctrlunix.tcl create mode 100644 modules/term/ansi/send.tcl create mode 100644 modules/term/ansi_cattr.man create mode 100644 modules/term/ansi_cctrl.man create mode 100644 modules/term/ansi_cmacros.man create mode 100644 modules/term/ansi_code.man create mode 100644 modules/term/ansi_ctrlu.man create mode 100644 modules/term/ansi_send.man create mode 100644 modules/term/bind.tcl create mode 100644 modules/term/imenu.man create mode 100644 modules/term/imenu.tcl create mode 100644 modules/term/ipager.man create mode 100644 modules/term/ipager.tcl create mode 100644 modules/term/pkgIndex.tcl create mode 100644 modules/term/receive.man create mode 100644 modules/term/receive.tcl create mode 100644 modules/term/send.tcl create mode 100644 modules/term/term.man create mode 100644 modules/term/term.tcl create mode 100644 modules/term/term_bind.man create mode 100644 modules/term/term_send.man create mode 100644 modules/textutil/ChangeLog create mode 100644 modules/textutil/adjust.man create mode 100644 modules/textutil/adjust.tcl create mode 100644 modules/textutil/adjust.test create mode 100644 modules/textutil/adjust_hyph.test create mode 100644 modules/textutil/dehypht.tex create mode 100644 modules/textutil/eshyph_vo.tex create mode 100644 modules/textutil/expander.ehtml create mode 100644 modules/textutil/expander.html create mode 100644 modules/textutil/expander.man create mode 100644 modules/textutil/expander.tcl create mode 100644 modules/textutil/expander.test create mode 100644 modules/textutil/expander_license.txt create mode 100644 modules/textutil/expander_notes.txt create mode 100644 modules/textutil/ithyph.tex create mode 100644 modules/textutil/pkgIndex.tcl create mode 100644 modules/textutil/repeat.man create mode 100644 modules/textutil/repeat.tcl create mode 100644 modules/textutil/repeat.test create mode 100644 modules/textutil/split.tcl create mode 100644 modules/textutil/split.test create mode 100644 modules/textutil/string.bench create mode 100644 modules/textutil/string.tcl create mode 100644 modules/textutil/tabify.man create mode 100644 modules/textutil/tabify.tcl create mode 100644 modules/textutil/tabify.test create mode 100644 modules/textutil/textutil.man create mode 100644 modules/textutil/textutil.tcl create mode 100644 modules/textutil/textutil.test create mode 100644 modules/textutil/textutil_adjust.pcx create mode 100644 modules/textutil/textutil_repeat.pcx create mode 100644 modules/textutil/textutil_split.man create mode 100644 modules/textutil/textutil_split.pcx create mode 100644 modules/textutil/textutil_string.man create mode 100644 modules/textutil/textutil_string.pcx create mode 100644 modules/textutil/textutil_tabify.pcx create mode 100644 modules/textutil/textutil_trim.pcx create mode 100644 modules/textutil/trim.man create mode 100644 modules/textutil/trim.tcl create mode 100644 modules/textutil/trim.test create mode 100644 modules/tie/ChangeLog create mode 100644 modules/tie/pkgIndex.tcl create mode 100644 modules/tie/tie.man create mode 100644 modules/tie/tie.tcl create mode 100644 modules/tie/tie.test create mode 100644 modules/tie/tie_array.tcl create mode 100644 modules/tie/tie_array.test create mode 100644 modules/tie/tie_dsource.tcl create mode 100644 modules/tie/tie_file.tcl create mode 100644 modules/tie/tie_file.test create mode 100644 modules/tie/tie_growfile.tcl create mode 100644 modules/tie/tie_growfile.test create mode 100644 modules/tie/tie_log.tcl create mode 100644 modules/tie/tie_log.test create mode 100644 modules/tie/tie_rarray.tcl create mode 100644 modules/tie/tie_rarray.test create mode 100644 modules/tie/tie_rarray_comm.test create mode 100644 modules/tie/tie_std.man create mode 100644 modules/tie/tie_template.txt create mode 100644 modules/tiff/ChangeLog create mode 100644 modules/tiff/pkgIndex.tcl create mode 100644 modules/tiff/testimages/IMG_7898.tiff create mode 100644 modules/tiff/testimages/IMG_7917.tiff create mode 100644 modules/tiff/testimages/IMG_7950.tiff create mode 100644 modules/tiff/tiff.man create mode 100644 modules/tiff/tiff.tcl create mode 100644 modules/tiff/tiff.test create mode 100644 modules/tool/ensemble.tcl create mode 100644 modules/tool/event.tcl create mode 100644 modules/tool/index.tcl create mode 100644 modules/tool/meta.man create mode 100644 modules/tool/metaclass.tcl create mode 100644 modules/tool/module.shed create mode 100644 modules/tool/option.tcl create mode 100644 modules/tool/organ.tcl create mode 100644 modules/tool/pipeline.tcl create mode 100644 modules/tool/pkgIndex.tcl create mode 100644 modules/tool/script.tcl create mode 100644 modules/tool/tool.demo create mode 100644 modules/tool/tool.man create mode 100644 modules/tool/tool.md create mode 100644 modules/tool/tool.test create mode 100644 modules/tool/tool_dict_ensemble.man create mode 100644 modules/tool/uuid.tcl create mode 100644 modules/tool_datatype/datatype.tcl create mode 100644 modules/tool_datatype/pkgIndex.tcl create mode 100644 modules/transfer/ChangeLog create mode 100644 modules/transfer/connect.man create mode 100644 modules/transfer/connect.tcl create mode 100644 modules/transfer/copyops.man create mode 100644 modules/transfer/copyops.tcl create mode 100644 modules/transfer/ddest.man create mode 100644 modules/transfer/ddest.tcl create mode 100644 modules/transfer/dsource.man create mode 100644 modules/transfer/dsource.tcl create mode 100644 modules/transfer/include/complete.inc create mode 100644 modules/transfer/include/connect_options.inc create mode 100644 modules/transfer/include/connect_result.inc create mode 100644 modules/transfer/include/connect_result_ref.inc create mode 100644 modules/transfer/include/ddest_options.inc create mode 100644 modules/transfer/include/dsource_options.inc create mode 100644 modules/transfer/include/secure.inc create mode 100644 modules/transfer/pkgIndex.tcl create mode 100644 modules/transfer/receiver.man create mode 100644 modules/transfer/receiver.tcl create mode 100644 modules/transfer/tqueue.man create mode 100644 modules/transfer/tqueue.tcl create mode 100644 modules/transfer/transmitter.man create mode 100644 modules/transfer/transmitter.tcl create mode 100644 modules/treeql/ChangeLog create mode 100644 modules/treeql/IDEAS.txt create mode 100644 modules/treeql/docs/api+xhtml.dtd create mode 100644 modules/treeql/docs/api.css create mode 100644 modules/treeql/docs/api.dtd create mode 100644 modules/treeql/docs/index.html create mode 100644 modules/treeql/docs/treeapi.xml create mode 100644 modules/treeql/docs/treeql-int.xml create mode 100644 modules/treeql/docs/treeql-low.xml create mode 100644 modules/treeql/docs/treeql.xml create mode 100644 modules/treeql/pkgIndex.tcl create mode 100644 modules/treeql/treeql.man create mode 100644 modules/treeql/treeql.tcl create mode 100644 modules/treeql/treeql.test create mode 100644 modules/treeql/treeql.testsuite create mode 100644 modules/treeql/treeql84.tcl create mode 100644 modules/treeql/treeql85.tcl create mode 100644 modules/try/ChangeLog create mode 100644 modules/try/pkgIndex.tcl create mode 100644 modules/try/tcllib_throw.man create mode 100644 modules/try/tcllib_try.man create mode 100644 modules/try/throw.tcl create mode 100644 modules/try/try.tcl create mode 100644 modules/uev/ChangeLog create mode 100644 modules/uev/pkgIndex.tcl create mode 100644 modules/uev/uevent.man create mode 100644 modules/uev/uevent.pcx create mode 100644 modules/uev/uevent.tcl create mode 100644 modules/uev/uevent.test create mode 100644 modules/uev/uevent_onidle.man create mode 100644 modules/uev/uevent_onidle.pcx create mode 100644 modules/uev/uevent_onidle.tcl create mode 100755 modules/units/ChangeLog create mode 100644 modules/units/pkgIndex.tcl create mode 100755 modules/units/units.man create mode 100644 modules/units/units.pcx create mode 100755 modules/units/units.tcl create mode 100755 modules/units/units.test create mode 100644 modules/uri/ChangeLog create mode 100644 modules/uri/pkgIndex.tcl create mode 100644 modules/uri/uri-rfc2396.test create mode 100644 modules/uri/uri.man create mode 100644 modules/uri/uri.tcl create mode 100644 modules/uri/uri.test create mode 100644 modules/uri/uri_urn.pcx create mode 100644 modules/uri/urn-scheme.man create mode 100644 modules/uri/urn-scheme.tcl create mode 100644 modules/uri/urn.test create mode 100644 modules/uuid/ChangeLog create mode 100644 modules/uuid/pkgIndex.tcl create mode 100644 modules/uuid/uuid.man create mode 100644 modules/uuid/uuid.tcl create mode 100644 modules/uuid/uuid.test create mode 100644 modules/valtype/ChangeLog create mode 100644 modules/valtype/cc_amex.man create mode 100644 modules/valtype/cc_amex.tcl create mode 100644 modules/valtype/cc_amex.test create mode 100644 modules/valtype/cc_discover.man create mode 100644 modules/valtype/cc_discover.tcl create mode 100644 modules/valtype/cc_discover.test create mode 100644 modules/valtype/cc_mastercard.man create mode 100644 modules/valtype/cc_mastercard.tcl create mode 100644 modules/valtype/cc_mastercard.test create mode 100644 modules/valtype/cc_visa.man create mode 100644 modules/valtype/cc_visa.tcl create mode 100644 modules/valtype/cc_visa.test create mode 100644 modules/valtype/ean13.man create mode 100644 modules/valtype/ean13.tcl create mode 100644 modules/valtype/ean13.test create mode 100644 modules/valtype/iban.man create mode 100755 modules/valtype/iban.tcl create mode 100755 modules/valtype/iban.test create mode 100644 modules/valtype/imei.man create mode 100644 modules/valtype/imei.tcl create mode 100644 modules/valtype/imei.test create mode 100644 modules/valtype/include/c_length.inc create mode 100644 modules/valtype/include/c_lenpfx.inc create mode 100644 modules/valtype/include/errorcodes.inc create mode 100644 modules/valtype/include/k_amex.inc create mode 100644 modules/valtype/include/k_discover.inc create mode 100644 modules/valtype/include/k_ean13.inc create mode 100644 modules/valtype/include/k_iban.inc create mode 100644 modules/valtype/include/k_imei.inc create mode 100644 modules/valtype/include/k_isbn.inc create mode 100644 modules/valtype/include/k_luhn.inc create mode 100644 modules/valtype/include/k_luhn5.inc create mode 100644 modules/valtype/include/k_mastercard.inc create mode 100644 modules/valtype/include/k_usnpi.inc create mode 100644 modules/valtype/include/k_verhoeff.inc create mode 100644 modules/valtype/include/k_visa.inc create mode 100644 modules/valtype/include/m_isbn.inc create mode 100644 modules/valtype/include/null.inc create mode 100644 modules/valtype/include/r_luhn.inc create mode 100644 modules/valtype/include/vtype.inc create mode 100644 modules/valtype/isbn.man create mode 100644 modules/valtype/isbn.tcl create mode 100644 modules/valtype/isbn.test create mode 100644 modules/valtype/luhn.man create mode 100644 modules/valtype/luhn.tcl create mode 100644 modules/valtype/luhn.test create mode 100644 modules/valtype/luhn5.man create mode 100644 modules/valtype/luhn5.tcl create mode 100644 modules/valtype/luhn5.test create mode 100644 modules/valtype/pkgIndex.tcl create mode 100644 modules/valtype/usnpi.man create mode 100644 modules/valtype/usnpi.tcl create mode 100644 modules/valtype/usnpi.test create mode 100644 modules/valtype/valtype.tcl create mode 100644 modules/valtype/valtype_common.man create mode 100644 modules/valtype/valtype_common.pcx create mode 100644 modules/valtype/valtype_creditcard_amex.pcx create mode 100644 modules/valtype/valtype_creditcard_discover.pcx create mode 100644 modules/valtype/valtype_creditcard_mastercard.pcx create mode 100644 modules/valtype/valtype_creditcard_visa.pcx create mode 100644 modules/valtype/valtype_gs1_ean13.pcx create mode 100644 modules/valtype/valtype_imei.pcx create mode 100644 modules/valtype/valtype_isbn.pcx create mode 100644 modules/valtype/valtype_luhn.pcx create mode 100644 modules/valtype/valtype_luhn5.pcx create mode 100644 modules/valtype/valtype_usnpi.pcx create mode 100644 modules/valtype/valtype_verhoeff.pcx create mode 100644 modules/valtype/verhoeff.man create mode 100644 modules/valtype/verhoeff.tcl create mode 100644 modules/valtype/verhoeff.test create mode 100644 modules/virtchannel_base/ChangeLog create mode 100644 modules/virtchannel_base/README.txt create mode 100644 modules/virtchannel_base/cat.man create mode 100644 modules/virtchannel_base/cat.tcl create mode 100644 modules/virtchannel_base/facade.man create mode 100644 modules/virtchannel_base/facade.tcl create mode 100644 modules/virtchannel_base/fifo.tcl create mode 100644 modules/virtchannel_base/fifo2.tcl create mode 100644 modules/virtchannel_base/halfpipe.man create mode 100644 modules/virtchannel_base/halfpipe.tcl create mode 100644 modules/virtchannel_base/memchan.tcl create mode 100644 modules/virtchannel_base/null.tcl create mode 100644 modules/virtchannel_base/nullzero.man create mode 100644 modules/virtchannel_base/nullzero.tcl create mode 100644 modules/virtchannel_base/pkgIndex.tcl create mode 100644 modules/virtchannel_base/random.tcl create mode 100644 modules/virtchannel_base/randseed.man create mode 100644 modules/virtchannel_base/randseed.tcl create mode 100644 modules/virtchannel_base/std.man create mode 100644 modules/virtchannel_base/std.tcl create mode 100644 modules/virtchannel_base/string.tcl create mode 100644 modules/virtchannel_base/tcllib_fifo.man create mode 100644 modules/virtchannel_base/tcllib_fifo2.man create mode 100644 modules/virtchannel_base/tcllib_memchan.man create mode 100644 modules/virtchannel_base/tcllib_null.man create mode 100644 modules/virtchannel_base/tcllib_random.man create mode 100644 modules/virtchannel_base/tcllib_string.man create mode 100644 modules/virtchannel_base/tcllib_variable.man create mode 100644 modules/virtchannel_base/tcllib_zero.man create mode 100644 modules/virtchannel_base/textwindow.man create mode 100644 modules/virtchannel_base/textwindow.tcl create mode 100644 modules/virtchannel_base/variable.tcl create mode 100644 modules/virtchannel_base/zero.tcl create mode 100644 modules/virtchannel_core/ChangeLog create mode 100644 modules/virtchannel_core/README.txt create mode 100644 modules/virtchannel_core/core.man create mode 100644 modules/virtchannel_core/core.tcl create mode 100644 modules/virtchannel_core/events.man create mode 100644 modules/virtchannel_core/events.tcl create mode 100644 modules/virtchannel_core/pkgIndex.tcl create mode 100644 modules/virtchannel_core/transformcore.man create mode 100644 modules/virtchannel_core/transformcore.tcl create mode 100644 modules/virtchannel_transform/ChangeLog create mode 100644 modules/virtchannel_transform/README.txt create mode 100644 modules/virtchannel_transform/adler32.man create mode 100644 modules/virtchannel_transform/adler32.tcl create mode 100644 modules/virtchannel_transform/base64.tcl create mode 100644 modules/virtchannel_transform/counter.tcl create mode 100644 modules/virtchannel_transform/crc32.tcl create mode 100644 modules/virtchannel_transform/hex.man create mode 100644 modules/virtchannel_transform/hex.tcl create mode 100644 modules/virtchannel_transform/identity.man create mode 100644 modules/virtchannel_transform/identity.tcl create mode 100644 modules/virtchannel_transform/limitsize.man create mode 100644 modules/virtchannel_transform/limitsize.tcl create mode 100644 modules/virtchannel_transform/observe.man create mode 100644 modules/virtchannel_transform/observe.tcl create mode 100644 modules/virtchannel_transform/otp.tcl create mode 100644 modules/virtchannel_transform/pkgIndex.tcl create mode 100644 modules/virtchannel_transform/rot.man create mode 100644 modules/virtchannel_transform/rot.tcl create mode 100644 modules/virtchannel_transform/spacer.man create mode 100644 modules/virtchannel_transform/spacer.tcl create mode 100644 modules/virtchannel_transform/tcllib_zlib.man create mode 100644 modules/virtchannel_transform/vt_base64.man create mode 100644 modules/virtchannel_transform/vt_counter.man create mode 100644 modules/virtchannel_transform/vt_crc32.man create mode 100644 modules/virtchannel_transform/vt_otp.man create mode 100644 modules/virtchannel_transform/zlib.tcl create mode 100644 modules/websocket/ChangeLog create mode 100644 modules/websocket/pkgIndex.tcl create mode 100644 modules/websocket/websocket.man create mode 100644 modules/websocket/websocket.tcl create mode 100644 modules/wip/ChangeLog create mode 100644 modules/wip/pkgIndex.tcl create mode 100644 modules/wip/wip.man create mode 100644 modules/wip/wip.tcl create mode 100644 modules/wip/wip2.tcl create mode 100644 modules/yaml/06eef112da.data create mode 100644 modules/yaml/CHANGES create mode 100644 modules/yaml/ChangeLog create mode 100755 modules/yaml/huddle.man create mode 100755 modules/yaml/huddle.tcl create mode 100755 modules/yaml/huddle.test create mode 100644 modules/yaml/huddle_types.tcl create mode 100644 modules/yaml/json2huddle.tcl create mode 100644 modules/yaml/json2huddle.test create mode 100755 modules/yaml/layers.txt create mode 100644 modules/yaml/pkgIndex.tcl create mode 100644 modules/yaml/rb.test create mode 100755 modules/yaml/yaml.bench create mode 100644 modules/yaml/yaml.man create mode 100644 modules/yaml/yaml.tcl create mode 100644 modules/yaml/yaml.test create mode 100644 modules/zip/ChangeLog create mode 100644 modules/zip/decode.man create mode 100644 modules/zip/decode.tcl create mode 100644 modules/zip/encode.man create mode 100644 modules/zip/encode.tcl create mode 100644 modules/zip/mkzip.man create mode 100644 modules/zip/mkzip.tcl create mode 100644 modules/zip/pkgIndex.tcl create mode 100644 project.shed create mode 100755 sak.tcl create mode 100644 support/devel/all.tcl create mode 100644 support/devel/sak/doc/cmd.tcl create mode 100644 support/devel/sak/doc/doc.tcl create mode 100644 support/devel/sak/doc/doc_auto.tcl create mode 100644 support/devel/sak/doc/help.txt create mode 100644 support/devel/sak/doc/kwic.txt create mode 100644 support/devel/sak/doc/manpages.txt create mode 100644 support/devel/sak/doc/pkgIndex.tcl create mode 100644 support/devel/sak/doc/toc.txt create mode 100644 support/devel/sak/doc/toc_apps.txt create mode 100644 support/devel/sak/doc/toc_cats.txt create mode 100644 support/devel/sak/doc/toc_mods.txt create mode 100644 support/devel/sak/doc/topic.txt create mode 100644 support/devel/sak/help/cmd.tcl create mode 100644 support/devel/sak/help/help.tcl create mode 100644 support/devel/sak/help/help.txt create mode 100644 support/devel/sak/help/pkgIndex.tcl create mode 100644 support/devel/sak/help/topic.txt create mode 100644 support/devel/sak/localdoc/cmd.tcl create mode 100644 support/devel/sak/localdoc/help.txt create mode 100644 support/devel/sak/localdoc/localdoc.tcl create mode 100644 support/devel/sak/localdoc/pkgIndex.tcl create mode 100644 support/devel/sak/localdoc/topic.txt create mode 100644 support/devel/sak/old/help.txt create mode 100644 support/devel/sak/old/topic.txt create mode 100644 support/devel/sak/readme/cmd.tcl create mode 100644 support/devel/sak/readme/help.txt create mode 100644 support/devel/sak/readme/pkgIndex.tcl create mode 100644 support/devel/sak/readme/readme.tcl create mode 100644 support/devel/sak/readme/topic.txt create mode 100644 support/devel/sak/registry/pkgIndex.tcl create mode 100644 support/devel/sak/registry/registry.man create mode 100644 support/devel/sak/registry/registry.tcl create mode 100644 support/devel/sak/registry/registry.test create mode 100644 support/devel/sak/review/cmd.tcl create mode 100644 support/devel/sak/review/help.txt create mode 100644 support/devel/sak/review/pkgIndex.tcl create mode 100644 support/devel/sak/review/review.tcl create mode 100644 support/devel/sak/review/topic.txt create mode 100644 support/devel/sak/test/cmd.tcl create mode 100644 support/devel/sak/test/help.txt create mode 100644 support/devel/sak/test/pkgIndex.tcl create mode 100644 support/devel/sak/test/run.tcl create mode 100644 support/devel/sak/test/shell.tcl create mode 100644 support/devel/sak/test/shells.tcl create mode 100644 support/devel/sak/test/test.tcl create mode 100644 support/devel/sak/test/topic.txt create mode 100644 support/devel/sak/util/anim.tcl create mode 100644 support/devel/sak/util/color.tcl create mode 100644 support/devel/sak/util/feedback.tcl create mode 100644 support/devel/sak/util/pkgIndex.tcl create mode 100644 support/devel/sak/util/registry.tcl create mode 100644 support/devel/sak/util/util.tcl create mode 100644 support/devel/sak/validate/cmd.tcl create mode 100644 support/devel/sak/validate/help.txt create mode 100644 support/devel/sak/validate/manpages.tcl create mode 100644 support/devel/sak/validate/pkgIndex.tcl create mode 100644 support/devel/sak/validate/syntax.tcl create mode 100644 support/devel/sak/validate/testsuites.tcl create mode 100644 support/devel/sak/validate/topic.txt create mode 100644 support/devel/sak/validate/validate.tcl create mode 100644 support/devel/sak/validate/versions.tcl create mode 100644 support/fossil-nav-integration.html create mode 100644 support/installation/actions.tcl create mode 100755 support/installation/main.tcl create mode 100644 support/installation/man.macros create mode 100755 support/installation/modules.tcl create mode 100644 support/installation/version.tcl create mode 100644 support/releases/PACKAGES create mode 100644 support/releases/history/README-1.10.txt create mode 100644 support/releases/history/README-1.11.1.txt create mode 100644 support/releases/history/README-1.11.txt create mode 100644 support/releases/history/README-1.12.txt create mode 100644 support/releases/history/README-1.13.txt create mode 100644 support/releases/history/README-1.14.txt create mode 100644 support/releases/history/README-1.15.txt create mode 100644 support/releases/history/README-1.16.txt create mode 100644 support/releases/history/README-1.17.txt create mode 100644 support/releases/history/README-1.18.txt create mode 100644 support/releases/history/README-1.4.txt create mode 100644 support/releases/history/README-1.6.1.txt create mode 100644 support/releases/history/README-1.6.txt create mode 100644 support/releases/history/README-1.7.txt create mode 100644 support/releases/history/README-1.8.txt create mode 100644 support/releases/history/README-1.9.txt create mode 100644 support/releases/package_rpm.txt create mode 100644 support/releases/package_tip55.txt create mode 100644 support/releases/package_yml.txt create mode 100644 support/shed.tcl create mode 100644 tcllib.spec create mode 100644 tcllib.tap create mode 100644 tcllib.yml diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..24ebaa1 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,2862 @@ +2013-11-07 Andreas Kupries + + * support/devel/sak/localdoc/localdoc.tcl (::sak::localdoc::run): + [Ticket 7c7f946046]: Pull in exclusion information from the + installer configuration, and use it to exclude the associated + man-pages from generation. + +2013-11-07 Andreas Kupries + + * support/installation/man.macros: [Ticket 369f67aeee] Updated to + newest from Tcl/Tk. + +2013-05-30 Andreas Kupries + + * Makefile.in: [Bug 3613973][Allura 1371]: Applied patch by + Wolfgang Kechel, fixed missing CYGPATH invokations for paths in + the installation targets. + +2013-04-04 Andreas Kupries + + * support/installation/modules.tcl (Module): + * modules/debug: debug narrator module adapted + from Colin McCormack's Debug wub utility package. + +2013-03-21 Andreas Kupries + + * aclocal.m4: [Bug 3608581]: Extended check for executable + * configure: extension to recognize an MSYS environment as Windows + and requiring a ".exe" suffix. Regenerated configure. + +2013-03-11 Andreas Kupries + + * support/installation/modules.tcl: Added 'pt' (of modules/pt) to + the set of distributed applications. Note that the application + was moved to apps/ for this. + +2013-03-01 Andreas Kupries + + * support/devel/sak/validate/syntax.tcl (::sak::validate::syntax::Setup): + * support/devel/sak/validate/testsuites.tcl (::sak::validate::testsuites::Setup): + The namespace ::tcl contains parts necessary for the proper + operation of the interpreter, since 8.6. Do not delete anymore. + +2013-02-15 Andreas Kupries + + * New module 'string'. String/text utilities, 8.5+. + First packages: + - string::token - regex based lexing. + - string::token::shell - parsing basic shell command line syntax. + +2013-02-08 Andreas Kupries + + * apps/dtplite: Fixed missing -ibase option in direcotry + * apps/dtplite.man: processing with -merge. Fixed sorting in + generated toc and indices. Plus new feature: -toc for external + toc to place in the output. Bumped to 1.0.4. Updated + documentation. + +2013-02-01 Andreas Kupries + + * + * Released and tagged Tcllib 1.15 ======================== + * + +2013-01-28 Andreas Kupries + + * modules/fileutil: New package 'fileutil::decode'. + * modules/zip: New module 'zip', with packages 'zipfile::encode' + and 'zipfile::decode' + +2013-01-24 Andreas Kupries + + * New module and packages: clock (rfc2822, iso8601). + Tcl 8.5 only. + +2013-01-08 Andreas Kupries + + * configure.in: [Bug 3593146]: Extended with CYGPATH usage to + allow building under cygwin. + * configure: Regenerated (autoconf 2.67). + +2012-08-07 Andreas Kupries + + * modules/generator: Generators (via the coroutines of + Tcl 8.6). Provided by Neil Madden. + * support/installation/modules.tcl: + +2011-12-13 Andreas Kupries + + * + * Released and tagged Tcllib 1.14 ======================== + * + +2011-11-07 Andreas Kupries + + * sak.tcl (xcopy): Fixed bug a preventing the detection of files + in subdirectories; copied from the installer. + * sak.tcl (ipackages): Fixed bug (reuse of varname) which placed + packages into the wrong module. + +2011-05-31 Andreas Kupries + + * New module and package: oo::util. Right now only easy + referencing of instance methods for callbacks. + + * New module and package: lambda. Easy anonymous procedures for + Tcl 8.5+. + + * New module and package: try. Tcl 8.5+ forward compatibility + implementation of try/catch/finally (TIP 329). + +2011-04-21 Andreas Kupries + + * modules/struct/queue_c.tcl: Disabled the critcl debug settings used + * modules/pt/pt_rdengine_c.tcl: to work around bugs in critcl v2's + * modules/pt/pt_parse_peg_c.tcl: handling of C companion files. + * modules/pt/pt_cparam_config_critcl.tcl: + + * sak.tcl (__critcl): Fixed processing of -debug, added the + forgotten handling of its argument. Plus added handling of + option -target. + + * ./modules/sha1/sha256.h: Fixed the conditional definition of + uint64_t and uint32_t for aix and hpux machines. + +2011-04-06 Andreas Kupries + + * modules/valtype: New module: Validation types. snit validation + types for various classes of numbers (ISBN, EAN, ...) and + general check-digit algorithms (luhn(5), verhoeff, ...). + +2011-01-24 Andreas Kupries + + * + * Released and tagged Tcllib 1.13 ======================== + * + +2011-01-13 Andreas Kupries + + * sak.tcl: Trim dross of extracted version numbers. + * support/devel/sak/note/cmd.tcl: Extended 'sak note' to accept + * support/devel/sak/note/help.txt: a file of note data. + +2011-01-12 Andreas Kupries + + * modules/hook: New module 'hook'. + * support/installation/modules.tcl: + +2010-11-25 Andreas Kupries + + * examples/mime/maildemo.tcl: [Patch 3117246]: Added the standard + script prologue. Thanks to Stuart Cassoff. + +2010-11-23 Andreas Kupries + + * apps/dtplite.man: Extended with new option -exclude to specify + * apps/dtplite: exclusion patterns (glob matching). Further fixed + issues with file paths causing resolution of include file paths + to break. This uses the new option -ibase of doctools 1.4.11 to + keep include resolution and HTML cross-link generation apart + from each other. Bumped version to 1.0.3. + +2010-10-26 Andreas Kupries + + * support/installation/modules.tcl: [Bug 3085417]: Added the nano + nameservice applications to the installation. + +2010-10-22 Kevin Kenny + + * support/installation/modules.tcl: Corrected installation + of grammar::aycock. + +2010-10-18 Kevin Kenny + + * modules/grammar_aycock: New module, Aycock-Earley-Horspool + parser generator. + +2010-10-08 Andreas Kupries + + * modules/pki: New module, public key infrastructure. + * support/installation/modules.tcl: + +2010-07-09 Andreas Kupries + + * support/installation/modules.tcl: [Bug 3027371]. Fixed typo + 'imap' -> 'imap4'. Thanks to Larry Virden + for reporting. + +2010-07-08 Andreas Kupries + + * modules/gpx: New module 'gpx'. + * support/installation/modules.tcl: + +2010-07-06 Andreas Kupries + + * support/installation/modules.tcl: Module 'imap4' activated. + +2010-03-25 Andreas Kupries + + * New module 'pt', for ParserTools. Requires Tcl 8.5. Supercedes + grammar_peg, grammar_me, and page. + +2009-12-08 Andreas Kupries + + * support/devel/sak/test/run.tcl (CaptureFailureCollectBody, + CaptureFailureCollectError): Fixed issue with test result + capture on failure. We failed on the capture of failure due to + unexpected return codes, because the output syntax is different + for that compared to failure due to result differences. Code has + been added to recognize and capture this other syntax. + + * support/devel/sak/test/run.tcl: Extended the test framework to + * support/devel/all.tcl: record time per .test file, count of + tests per file, enabling it to compute a speed (microseconds per + test), as a rough and crude benchmark of where we may have + performance problems with either packages or tests. + +2009-12-07 Andreas Kupries + + * + * Released and tagged Tcllib 1.12 ======================== + * + +2009-12-03 Andreas Kupries + + * support/devel/sak/readme/readme.tcl: Strip trailing whitespace + from the table formatted parts of the generated readme. + +2009-12-01 Andreas Kupries + + * New modules 'virtchannel_{core,base,transform}' with packages + providing core services to reflected channels and + transformations, and basic reflected channels, and + transforms. This is in essence the example code for the paper I + presented at Tcl'2009 in Portland (Reflected and Transformed + Channels). + + * support/installation/modules.tcl: New modules 'virtchannel_*'. + +2009-11-24 Andreas Kupries + + * New package 'json::write' in existing module 'json'. + + * support/devel/sak/note/cmd.tcl: Extended note command to show + * support/devel/sak/note/note.tcl: saved hints when called without + arguments. + +2009-11-23 Andreas Kupries + + * support/installation/modules.tcl: Fix issue with examples for logger, + * support/installation/actions.tcl: which did not fit the + expectations of action _exa, which assumed the module name, + which is 'log'. Instead of wrestling CVS into renaming the + directory a new action is made which takes the actual name as + argument. + + * support/devel/sak/note/cmd.tcl: New sak commands 'note' and 'readme' + * support/devel/sak/note/help.txt: for semi-automatic generation of + * support/devel/sak/note/note.tcl: the release README.txt from + * support/devel/sak/note/pkgIndex.tcl: current and last package + * support/devel/sak/note/topic.txt: versions, and note'd hints. + * support/devel/sak/readme/cmd.tcl: + * support/devel/sak/readme/help.txt: + * support/devel/sak/readme/pkgIndex.tcl: + * support/devel/sak/readme/readme.tcl: + * support/devel/sak/readme/topic.txt: + +2009-11-11 Andreas Kupries + + * apps/dtplite: Updated the requirements to force use of doctools + v1, this app is not doctools v2 ready yet. + +2009-11-10 Andreas Kupries + + * support/devel/sak/validate/cmd.tcl: Extended argument processing + * support/devel/sak/validate/manpages.tcl: of the validation command + * support/devel/sak/validate/syntax.tcl: to enable a user to specify + * support/devel/sak/validate/testsuites.tcl: which version of Tcl + * support/devel/sak/validate/validate.tcl: to check against. Plus + * support/devel/sak/validate/versions.tcl: fix to handle modules + without manpages. + + * modules/coroutine: New module 'coroutine' providing to coroutine + utility packages for easier use of channel operations. These + packages are for Tcl 8.6+. + + * support/installation/modules.tcl: New module 'coroutine'. + +2009-09-28 Andreas Kupries + + * support/devel/sak/test/run.tcl (::sak::test::run::CaptureStack): + Fix missing variable declaration, and tweak generated output a + bit. + + * support/devel/sak/test/run.tcl (Do): Reworked a bit to save + captured error stacks and failed tests (body, actual, expected) + into separate log files for quick access. + +2009-07-10 Andreas Kupries + + * README.releasemgr: Added links to important places in the + SourceForge site for managing Tcllib releases and uploading + files (WebDAV), to avoid the ever more byzantine link sequences + needed to find them on their site. + +2009-06-02 Andreas Kupries + + * README.developer: Extended with more information about the basic + directory hierarchy and files to be found, testing and + validating modules, writing of test cases, and documentation. + +2009-02-06 Andreas Kupries + + * support/installation/modules.tcl (Module): Put 'exif' on the + exclude list, deprecating it. Use 'jpeg' instead to access the + exif information block in images. + +2009-01-29 Andreas Kupries + + * examples/bibtex/bibtex.tcl: Modified examples to assume that + * examples/htmlparse/webviewer.tcl: they are run by a tclsh found + * examples/irc/irc_example.tcl: on the PATH, and that this shell + * examples/mapproj/tkmap.tcl: has access to the packages of + * examples/math/bigfloat.demo.tcl: Tcllib required by the example. + * examples/ntp/rdate.tcl: Stuart Cassoff + * examples/sasl/saslclient.tcl: provided by the patches as + * examples/struct/diff.tcl: part of his work on making a Tcllib + * examples/struct/diff2.tcl: OpenBSD port. + + * support/installation/modules.tcl: Added the examples for a + number of modules to the installer. Patch by Stuart, see above. + +2009-01-28 Andreas Kupries + + * apps/dtplite: Added missing EOL to last line of the generated + .toc and .idx files. Bumped version to 1.0.1 + + * apps/*.man: Added category information to the majority of man + * modules/*/*.man: pages. + + * support/devel/sak/doc/cmd.tcl: Moved the main code for the + * support/devel/sak/doc/doc.tcl: imake/ishow commands into a + * support/devel/sak/doc/pkgIndex.tcl: separate package. Added a + * support/devel/sak/doc/doc_auto.tcl: new command 'doc index' + * support/devel/sak/doc/manpages.txt: which not only updates + * support/devel/sak/doc/kwic.txt: 'manpages.txt', but also + * support/devel/sak/doc/toc.txt: generates a keyword index + ('kwic.txt'), and a table of contents ('idx.txt'). The first + result are committed as part of this change. The newly generated + files are in docidx and doctoc formats, respectively. + +2008-12-12 Andreas Kupries + + * + * Released and tagged Tcllib 1.11.1 ======================== + * + +2008-11-25 Andreas Kupries + + * support/installation/modules.tcl: New module 'map' with + packages 'map::slippy::*'. + +2008-11-18 Andreas Kupries + + * support/installation/modules.tcl: New module 'cache' with + package 'cache::async'. + +2008-10-16 Andreas Kupries + + * + * Released and tagged Tcllib 1.11 ======================== + * + +2008-09-03 Andreas Kupries + + * modules/devtools/testutilities.tcl (useTcllibC): Added code to + print the location of the tcllibc used by the testsuite. + + * support/devel/sak/test/run.tcl (::sak::test::run::AbortCause): + Tweaked to be more lenient and accept more error messages. + +2008-07-08 Andreas Kupries + + * support/installation/modules.tcl: New module 'amazon-s3' with + packages 'S3' and 'xsxp', by Darren New. Access to Amazon's + Simple Storage Service. + +2008-06-30 Andreas Kupries + + * support/installation/actions.tcl (_manfile): Tossed two of the + three identical copies of this procedure. Thanks to Stuart + Cassoff for noticing and reporting this. + +2008-06-20 Andreas Kupries + + * support/installation/version.tcl: Added code integrated + struct::stack's critcl implementation into the build. + +2008-05-22 Andreas Kupries + + * support/installation/modules.tcl: Added 'yaml' to the list + of official modules. + +2008-03-26 Andreas Kupries + + * support/devel/sak/validate/syntax.tcl: Fix problem in pcx scan + logic, have to handle unknown commands. Like is done for + testsuites. + +2008-03-25 Andreas Kupries + + * support/devel/sak/validate/syntax.tcl: Do not try to check TeX + files for Tcl syntax. + + * support/devel/sak/validate/syntax.tcl: New code, syntax checking + via tclchecker. + * support/devel/sak/validate/validate.tcl: Activated new + validation module. + + * support/devel/sak/validate/manpages.tcl: Skip tcllibc. + * support/devel/sak/validate/testsuites.tcl: Skip tcllibc. + + * support/devel/sak/util/feedback.tcl: Flush log lines. + + * sak.tcl (ppackages): Added code to recognize a pragma '@sak + notprovided' which we can use to mark the packages which have + provide statements yet are not really visible and thus not + indexed. + + * modules/sha1/sha256c.tcl: Added notprovided pragmas to the + * modules/sha1/sha1c.tcl: critcl based package implementations + * modules/md5/md5c.tcl: and the pseudo-packages declared by + * modules/struct/graph_c.tcl: plugin management code. + * modules/struct/tree_c.tcl: + * modules/struct/sets_c.tcl: + * modules/dns/ipMoreC.tcl: + * modules/md5crypt/md5cryptc.tcl: + * modules/rc4/rc4c.tcl: + * modules/crc/crcc.tcl: + * modules/base64/base64c.tcl: + * modules/md4/md4c.tcl: + * modules/page/peg_grammar.tcl: + * modules/page/pluginmgr.tcl: + +2008-03-24 Andreas Kupries + + * support/installation/modules.tcl: Added 'simulation' to the list + of official modules. + + * support/devel/sak/validate/versions.tcl: New code for the + comparison of indexed versus provides packages. + * support/devel/sak/validate/validate.tcl: Activated new + validation module. + + * support/devel/sak/validate/testsuites.tcl: Reworked log format. + * support/devel/sak/validate/manpages.tcl: Reworked log format. + +2008-03-22 Andreas Kupries + + * support/devel/sak/validate/help.txt: Clarified that testsuite + validation is not testsuite execution. + + * support/devel/sak/validate/validate.tcl: Added testsuite + * support/devel/sak/validate/cmd.tcl: validation, using the new + entrypoints to move summaries after the checking phases, and + updated to the feedback api changes. + + * support/devel/sak/validate/testsuites.tcl: New code, validation + of testsuites (= checking which packages are without). + + * support/devel/sak/validate/manpages.tcl: Reworked for changed + feedback module, split summary generation from main body, and + set up proper multiple entry points. + + * support/devel/sak/util/feedback.tcl: Reworked for easier use + when used from multiple packages which can be run separately and + together. Added support for summary generation. + +2008-03-18 Andreas Kupries + + * support/devel/sak/old/help.txt: Renamed old validation command. + * sak.tcl: Renamed old validation command. + + * support/devel/sak/validate/cmd.tcl: New validation code, currently + * support/devel/sak/validate/help.txt: only checking documentation. + * support/devel/sak/validate/manpages.tcl: + * support/devel/sak/validate/pkgIndex.tcl: + * support/devel/sak/validate/topic.txt: + * support/devel/sak/validate/validate.tcl: + + * support/devel/sak/doc/cmd.tcl: Fixed a typo. + * support/devel/sak/doc/topic.txt: Deeper indentation. + * support/devel/sak/help/topic.txt: Deeper indentation. + * support/devel/sak/old/topic.txt: Deeper indentation. + + * support/devel/sak/test/run.tcl: Replaced custom color code with + use of the new package sak::color. + * support/devel/sak/test/cmd.tcl: Fixed a typo. + * support/devel/sak/test/topic.txt: Deeper indentation. + + * support/devel/sak/util/pkgIndex.tcl: Added two new sak support + * support/devel/sak/util/color.tcl: packages to handle colorization + * support/devel/sak/util/feedback.tcl: and common feedback ops (on + top of the animation). + + * support/devel/sak/util/anim.tcl: Exported the public commands. + +2008-03-07 Andreas Kupries + + * support/devel/sak/test/run.tcl (::sak::test::run::Summary): + Fixed [Bug 1909367]. Error information is now passed from the + file summary code to the counters for the whole test run. + +2008-01-29 Pat Thoyts + + * modules/stringprep: New module 'stringprep'. + * support/installation/modules.tcl: + +2007-09-12 Andreas Kupries + + * + * Released and tagged Tcllib 1.10 ======================== + * + +2007-09-07 Andreas Kupries + + * support/releases/history/README-1.10.txt: Updated for modified + math package. + +2007-08-30 Andreas Kupries + + * devdoc/critcl-tcllib.txt: Fixed [SF Tcllib Bug 1784843], applied + * devdoc/dirlayout_install.txt: Larry Virden's patches fixing typos, + * devdoc/indexing.txt: and doing other editorial changes. + * devdoc/installation.txt: + * devdoc/devguide.html: + + * README.developer: Fixed [SF Tcllib Bug 1784836], applied Larry + * README: Virden's patches fixing typos, and doing other editorial + changes. + +2007-08-29 Andreas Kupries + + * modules/tcllibc.tcl: Version of package bumped to 0.3.2 for the + bugfix in the C implementation of struct::set (v 2.2.1). + +2007-08-28 Andreas Kupries + + * support/releases/history/README-1.10.txt: Whitespace and + formatting cleanup after various updates for modified packages. + +2007-08-24 Kevin B. Kenny + + * support/installation/modules.tcl: New module 'mapproj' added. + +2007-08-24 Andreas Kupries + + * README.developer: Added a section describing the basic steps of + adding a new module. + + * support/releases/history/README-1.10.txt: Whitespace and + formatting cleanup. + +2007-08-22 Andreas Kupries + + * apps/tcldocstrip (::tcldocstrip::processCmdline): Fixed handling + of arguments if there are none. The linsert construction broke + for that case. Application version bumped to 1.0.1. + +2007-08-21 Andreas Kupries + + * README.developer: Section about testing updated for the changes + in the Makefile. + + * Makefile.in (install-applications): New target, complement to + 'install-libraries', for applications only. + + * Makefile.in (test): The target now distinguishes interactive + invokation and batch mode, and chooses its log mode accordingly + (interactive: progress feedback, short log, batch: detailed + log). The batch mode is invoked by redirecting the stdout to a + file. Per a suggestion of Mikhail Teterin. The two modes are + also directly acessible, via the new targets 'test_batch' and + 'test_interactive'. + +2007-08-21 Andreas Kupries + + * README.developer: Added a small introduction to the testing of + modules via 'sak.tcl'. This fixes [SF Tcllib Bug 1750655] by + Larry Virden. + + * support/devel/sak/test/run.tcl: Reworked the handling of setup + errors and of the various failure states to ensure that they are + properly reported as problems in the summary output instead of + giving the appearance that everything is ok. Some trouble in the + math testsuite was spotted only by reading the detailed log and + would have been missed otherwise. + +2007-08-20 Andreas Kupries + + * support/releases/history/README-1.10.txt: README listing the + changes for the upcoming release. + +2007-07-27 Andreas Kupries + + * support/installation/modules.tcl: New module 'wip' added. A mini + interpreter for word lists based on ideas in 'treeql'. + +2007-07-17 Andreas Kupries + + * support/installation/modules.tcl: New module 'uev' added, for + the generation and handling of user events. + +2007-05-04 Andreas Kupries + + * support/installation/modules.tcl: New module 'nns' added, a + nano-sized name service based on and for 'comm'. Derived from + the nserver code in the Pool_Net bundle of packages. + +2007-05-03 Andreas Kupries + + * sak.tcl: Added stronger check for 'package provided' command to + 'ppackages'. Code in critcl.tcl generated for tcllibc slips past + the less strong filters. + +2007-03-21 Andreas Kupries + + * Changed all documentation files (*.man). Replaced all deprecated + commands and list types with their new canonical names, putting + the Tcllib documentation back in line with the current + definition of the doctools language and its companions. + +2006-11-15 Andreas Kupries + + * support/installation/version.tcl: Added critcl implementation of + struct::graph to the list of critcl supported packages. + +2006-11-04 Pat Thoyts + + * modules/tcllibc.tcl: Silence critcl warnings. Files with no code + raise a warning message. Add an empty critcl::ccode block to avoid. + +2006-10-13 Andreas Kupries + + * modules/tcllibc.tcl: Bumped to version 0.3.1. I believe this has + to be bumped whenever one of the contained packages changes, or + more packages are added. Keep track of this. + +2006-10-08 Andreas Kupries + + * support/devel/all.tcl: Small comments added to clarify the + operation of the cleanup hook, and a tiny bit of code cleanup. + +2006-10-03 Andreas Kupries + + * + * Released and tagged Tcllib 1.9 ======================== + * + +2006-10-01 Andreas Kupries + + * Makefile.in (test): Changed to use an explicit -s TCLSH_PROG to + avoid use of the Tcllib registry. + + * support/devel/sak/test/run.tcl: Flush all writes to logfiles, to + ensure that they are uptodate in case an abort is needed. Added + output of totals after the test run, and made exit status + dependent on failures (1 = Ok, 0 = Had problems). + +2006-09-27 Andreas Kupries + + * support/devel/all.tcl: Ensure that root is absolute across all + versions of Tcl. Added code to recreate the auto_path in the + slave interps and processes after it was smashed by older + revisions of tcltest during their load. + +2006-09-20 Andreas Kupries + + * support/releases/history/README-1.9.txt: New file. Readme file + for the upcoming release, providing an overview of the changes. + +2006-09-20 Andreas Kupries + + * support/devel/sak/test/run.tcl: Modified to not use echo and cat + * support/devel/sak/test/help.txt: when starting a testsuite on + windows. Eliminated the use of valgrind for that platform as + well. Updated the documentation regarding the latter. + +2006-09-19 Andreas Kupries + + * support/devel/sak/test/run.tcl: Extended testsuite logging. + * support/devel/sak/test/help.txt: Standard user feedback and + extended information (raw log, summaries) are written to a set + of files. All required information in one run, instead of two. + +2006-09-18 Andreas Kupries + + * installer.tcl: Accepted patch by Michael Schlenker + for [Tcllib SF Bug 1559489] to + divert error messages to a dialog box instead of stderr where + possible, to avoid them being silently swallowed by windows. + + * support/devel/sak/test/run.tcl: Reworked output generated + * support/devel/all.tcl: by testsuites, added processing of + the modified output for progress reporting, condensed reporting, + and in preparation of placing results into a database. + * support/devel/sak/test/help.txt: Updated documentation. + * support/devel/sak/test/shell.tcl: Fixed typo in name of method + to call to remove shells from the database. + +2006-09-06 Andreas Kupries + + * Makefile.in (test): Updated the target to the new syntax + for running testsuites accepted by sak. + +2006-09-05 Andreas Kupries + + * support/devel/sak/test/help.txt: Added reference to the file + used to store the list of registered shells. + + * support/devel/all.tcl: Changed to terminate with 'exit' instead + of 'return', to allow the testsuites to be driven by a 'wish' + without having to deal with its event loop. + + * support/devel/sak/test/cmd.tcl: Replaced the existing + * support/devel/sak/test/help.txt: implementation of 'test' with a + dispatcher to an extensible set of packages. See below. + + * support/devel/sak/test/pkgIndex.tcl: New implementation of the + * support/devel/sak/test/run.tcl: 'test' command and its sub- + * support/devel/sak/test/shell.tcl: commands. The 'registry', see + * support/devel/sak/test/shells.tcl: below, is used to store the + * support/devel/sak/test/test.tcl: registered shells. + + * support/devel/sak/util/pkgIndex.tcl: Registered package. + * support/devel/sak/util/registry.tcl: New file, wrapper around + the pregistry, customized to SAK. + + * support/devel/sak/registry/pkgIndex.tcl: Package for a small tree- + * support/devel/sak/registry/registry.man: based database similar to + * support/devel/sak/registry/registry.tcl: the windows registry. For + * support/devel/sak/registry/registry.test: now just an internal + package to support 'sak', in the future it may move and become an + official package. + +2006-09-01 Pat Thoyts + + * support/installation/modules.tcl: New module 'otp'. + +2006-08-30 Andreas Kupries + + * support/installation/modules.tcl: New module 'interp'. + +2006-08-17 Jeff Hobbs + + * support/installation/modules.tcl: added json package + +2006-08-15 Michael Schlenker + + * sak.tcl: Added support for nagelfar (nagelfar.berlios.de) to the + static syntax checking options of sak.tcl while doing a validate + or validate_all. Fixed a slight inconsistency between validate + and validate all, tclchecker was not checked for validate. + +2006-08-14 Andreas Kupries + + * Makefile.in (*-doc): Forgotten to update the Makefile targets + for documentation when changing the sak syntax for invoking a + doc conversion. See entry 2006-07-09. Thanks to wohnivec@dix.cz + for noticing and provision of a patch. + +2006-08-10 Andreas Kupries + + * support/devel/sak/doc/doc.tcl (::sak::doc::ps): Fixed bogus + redirection argument 1>@, correct is >@. + +2006-08-09 Andreas Kupries + + * support/devel/all.tcl: Fixed the loading of Tk into the slave + interp, before Tk 8.4 we are not a real package. Using an + explicit load for a Tk statically bound into the executable. + +2006-07-27 Andreas Kupries + + * sak.tcl: Removed __test. Replaced with a single command + * support/devel/sak/test: with an implementation found in + the support tree. See below. + + * support/devel/sak/test/cmd.tcl: New. Implementation of 'test'. + * support/devel/sak/test/help.txt: New. Help for 'test'. + * support/devel/sak/test/topic.txt: New. Topic definition for 'test'. + +2006-07-12 Andreas Kupries + + * support/installation/modules.tcl: Fixed registration of 'term', + needs recursive install. + +2006-07-10 Andreas Kupries + + * New module "term". Terminal control. + * support/installation/modules.tcl: Registered 'term'. + +2006-07-09 Andreas Kupries + + * sak.tcl: Removed __nroff and all other documentation commands. + * support/devel/sak/old/help.txt: Replaced with a single command + with an implementation found in the support tree. See below. + + * support/devel/sak/doc/cmd.tcl: New. Implementation of 'doc'. + * support/devel/sak/doc/doc.tcl: New. Support package for 'doc'. + * support/devel/sak/doc/pkgIndex.tcl: New. Index for support package. + * support/devel/sak/doc/help.txt: New. Help for 'doc'. + * support/devel/sak/doc/topic.txt: New. Topic definition for 'help'. + + * support/devel/sak/util/util.tcl: New. General support package, + * support/devel/sak/util/pkgIndex.tcl: and index for it. + +2006-07-05 Andreas Kupries + + * sak.tcl: Removed __help. Replaced with implementation found in + the support tree. See below. + + * support/devel/sak/help/cmd.tcl: New. Implementation of 'help' + * support/devel/sak/help/help.tcl: New. Support package for 'help'. + * support/devel/sak/help/help.txt: New. Help for 'help'. + * support/devel/sak/help/pkgIndex.tcl: New. Index for support package. + * support/devel/sak/help/topic.txt: New. Topic definition for 'help'. + * support/devel/sak/old/help.txt: New. Help for old commands. + * support/devel/sak/old/topic.txt: New. Topic def. for old commands. + + * sak.tcl: Added code to locate command implementations in the + support tree. This allows us to factor the commands out of the + main script, making the internal structure of sak clearer + (through the use of packages). + +2006-06-30 Andreas Kupries + + * main.tcl: Moved, and new location + * support/installation/main.tcl: of the file. + + * sak.tcl: Updated to the new location (has to be copied to the + topdir now, when generating the starkit/pack distribution). + + * man.macros: Moved, and new location + * support/installation/man.macros: of the file. + + * installer.tcl: Updated to the new location. + + * all.tcl: Moved, and new location + * support/devel/all.tcl: of the file. Also updated to handle the + new location of the distribution relative to all.tcl, to + properly find the testsuites. + + * sak.tcl: Updated to the new location of all.tcl + + * package_rpm.tcl: Moved, and new location + * support/releases/package_rpm.tcl: of the file. + + * package_yml.tcl: Moved, and new location + * support/releases/package_yml.tcl: of the file. + + * package_tip55.tcl: Moved, and new location + * support/releases/package_tip55.tcl: of the file. + + * sak.tcl: Updated to the new location of + * installer.tcl: package_rpm.tcl, package_tip55.tcl, + package_yml.tcl + + * package_version.tcl: Moved, and new location + * support/installation/version.tcl: of the file. + + * sak.tcl: Updated to the new location of + * installer.tcl: package_version.tcl + + * install_action.tcl: Moved, and new location + * support/installation/actions.tcl: of the file. + + * installed_modules.tcl: Moved, and new location + * support/installation/modules.tcl: of the file. + + * sak.tcl: Updated to the new location of + * installer.tcl: install_action.tcl, installed_modules.tcl. + + * README.developer: New files to introduce new developers + * README.releasemgr: and release managers to Tcllib, the tools + available to support and ease their tasks, the procedures we + have in place, etc. For now they are more or less placeholders, + to be fleshed out with actual content over time. + + * installed_modules.tcl: Registered new module 'nmea'. + + * PACKAGES: Moved. + * support/releases/PACKAGES: New location of PACKAGES. + * sak.tcl: Updated to the new location of PACKAGES. + +2006-06-30 Andreas Kupries + + * installed_modules.tcl: Changed to a declarative style (more + amenable to automated processing). + +2006-06-15 Andreas Kupries + + * sak.tcl: Extended to allow the specification of a module M as + either M or modules/M. The latter is a path relative to the + topdir and enables the entering of modules through + tab-completion in the shell. + +2006-05-27 Andreas Kupries + + * installed_modules.tcl: New module 'base32'. + +2006-05-23 Andreas Kupries + + * installed_modules.tcl: New module 'transfer'. + +2006-04-26 Andreas Kupries + + * sak.tcl (gd-gen-tap): modified to strip non-version characters + out of version numbers. + +2006-01-21 Andreas Kupries + + * all.tcl: Removed the definitions of the common test constraints, + and the emulations of the 'wrongNumArgs' and 'tooManyArgs' + commands. These have all moved into the new common test support + code found in "devtools". + +2005-11-02 Andreas Kupries + + * sak.tcl: Removed all functionality related to execution of + .timing files. They are superceded by the benchmarks provided + through .bench files. + + * modules/aes/aes.timing: Removed, superceded by .bench files. + * modules/des/des.timing: + * modules/rc4/rc4.timing: + * modules/blowfish/blowfish.timing + +2005-11-02 Andreas Kupries + + * sak.tcl (ppackages): Added hack to exclude the package @@ from + the tap file. This is defined in template code in + page/gen_peg_cpkg.tcl, i.e. a variable. + +2005-10-27 Andreas Kupries + + * sak.tcl (bench_mod): Modified default interp to use in + benchmarks from PATH to the interp executing SAK. + +2005-10-21 Andreas Kupries + + * sak.tcl: Extended benchmark facility. New command for removal of + columns from results. New option to explicitly specify a single + interpreter to use. + +2005-10-18 Andreas Kupries + + * sak.tcl: More benchmarking functionality, showing benchmark data + after the fact, implicit merging, and changing interp + information around. Now we need only some functionality to show + the data graphically, and possibly compute statistical + information. + +2005-10-17 Andreas Kupries + + * installed_modules.tcl: New module "bench". Benchmarking support + package. + * sak.tcl: Added benchmarking functionality. + +2005-10-06 Andreas Kupries + + * + * Released and tagged Tcllib 1.8 ======================== + * + +2005-10-05 Pat Thoyts + + * sak.tcl: Added support for passing parameters to critcl. v04 + will support -debug and -clean and v034 supports -keep. + +2005-09-29 Andreas Kupries + + * README-1.8.txt: New file. Readme file for the upcoming release. + + * sak.tcl (pkg-compare): Modified the core of the 'rstatus' + functionality to sort by module, then package, and show the + module name before the packages. Easier for use in new release + README file. + + * installed_modules.tcl: log module changed to use _msg for + installation. + + * install_action.tcl (_msg): New action for modules having a + message catalogs in a msgs subdirectory. + + * installer.tcl (xcopy): Fixed bug in the interaction of recursion + and pattern argument. It is for files, but affected directories + as well, causing page to ignore its plugin directory. + +2005-09-28 Andreas Kupries + + * installed_modules.tcl: Using _tcr to install page and its + plugins. + + * install_action.tcl (_tcr): New install action, recursive install + of all .tcl files in the module. + +2005-09-27 Andreas Kupries + + * installed_modules: New module: grammar_me. + * installed_modules: New module: grammar_peg. + * installed_modules: New module: page. + * installed_modules: New application: page. + +2005-09-26 Andreas Kupries + + * installed_modules.tcl: Added the 'tcldocstrip' application to + the installer. + +2005-09-20 Andreas Kupries + + * all.tcl: Added Tcl 8.5 specific code to + '::tcltest::tooManyArgs'. + +2005-09-05 Pat Thoyts + + * sak.tcl: Added a 'timing' subcommand to run *.timing scripts. + +2005-08-29 Kevin Kenny + + * all.tcl (tcltest::wrongNumArgs): Revised to handle 8.5 error message. + +2005-08-29 Pat Thoyts + + * modules/aes: NEW MODULE: aes + * installed_modules.tcl: + +2005-08-17 Bob Techentin + + * installed_modules.tcl: NEW MODULE: units + * modules/units: + +2005-07-26 Stephane Arnold + + * installed_modules.tcl : registered math example + +2005-07-25 Andreas Kupries + + * config/config.guess: Updated to newer versions. + * config/config.sub: + + * all.tcl: Small correction in wrongNumArgs for when the argument + list is not empty (Added a space). + + * sak.tcl: Rewrite of critcl invokation on Windows, allow usage of + critcl starpack, and for starkits a plain tclsh as interpreter. + +2005-07-07 Andreas Kupries + + * modules/pluginmgr: New module for the management of plugins. + +2005-04-28 Andreas Kupries + + * installer.tcl: Fixed installer, updated to the new file and API + for package meta information. Fixed bug in app installation, + forgot to skip actual copy operations when in simulate-mode. + +2005-04-22 Andreas Kupries + + * sak.tcl: Should be bundle independent now, with (undocumented) + API to the bundle specific information (package_* files). + + * sak.tcl: Moved existing name/version variables over to package + neutral names. Moved meta data file to package neutral + name. Changed the API between sak and meta data file, it is now + command oriented. Replaced hardwired package labeling with + variables. Moved the bundle specific release cleanup into the + meta data file, and made the cleanup code generic. Ditto for the + bundle specific critcl definitions. Modified package load to + fall back to a regular 'require' if there is no local + file containing the package implementation. + + * sak.tcl: Moved the bundle specific template data + * package_rpm.txt: into separate file and rewrote the code + * package_yml.txt: using them to be more regular. + * package_tip55.txt: + +2005-04-04 Andreas Kupries + + * sak.tcl: Extended to handle multiple versions of a package + better when comparing and listing versions. + + * apps/tcldocstrip: New application, an implementation of + * apps/tcldocstrip.man: docstrip in Tcl, for Tcl. Incl. + documentation. + +2005-03-31 Andreas Kupries + + * sak.tcl: Added code to regenerate sources of modules whose + master sources are in one or more docstrip files. + + * sak.tcl: Extended the code for the extraction of version + information from packages with a heuristic static analysis to + cut down on the expense of executing package code. Also made the + code more robust for packages importing other packages. + + * sak.tcl: Replaced all internal 'package require' statements with + calls to an internal helper which always loads from the local + directory tree, i.e. preventing use of an external installation + (which may be incompatible). ... Removed triplicate definition + of command 'write_out'. ... Extended help message a + bit. ... Added code to help internal debugging through logging. + +2005-03-25 Jeff Hobbs + + * Makefile.in (install-libraries): add -app-path arg (steffen) + +2005-03-15 Andreas Kupries + + * modules/bibtex: NEW MODULE: Parser for BibTeX bibliographies. + * installed_modules.tcl: Added to the list of installed modules. + +2005-02-22 Andreas Kupries + + * modules/asn/asn.man: Used the new functionality in sak + * modules/base64/base64.man: to look over the package descriptions. + * modules/base64/uuencode.man: Tightened them a bit, consolidating + * modules/base64/yencode.man: especially differing module descriptions. + * modules/cmdline/cmdline.man: Added some missing descriptions. + * modules/comm/comm.man: + * modules/crc/cksum.man: + * modules/crc/crc16.man: + * modules/crc/crc32.man: + * modules/crc/sum.man: + * modules/dns/tcllib_dns.man: + * modules/dns/tcllib_ip.man: + * modules/fumagic/cfront.tcl + * modules/grammar_fa/dacceptor.man: + * modules/grammar_fa/dexec.man: + * modules/grammar_fa/fa.man: + * modules/grammar_fa/faop.man: + * modules/jpeg/jpeg.man: + * modules/ldap/ldap.man: + * modules/math/bigfloat.man: + * modules/math/bignum.man: + * modules/math/calculus.man: + * modules/math/constants.man: + * modules/math/fourier.man: + * modules/math/fuzzy.man: + * modules/math/geometry.man: + * modules/math/interpolate.man: + * modules/math/linalg.man: + * modules/math/optimize.man: + * modules/math/polynomials.man: + * modules/math/qcomplex.man: + * modules/math/romberg.man: + * modules/math/special.man: + * modules/math/statistics.man: + * modules/md4/md4.man: + * modules/md5/md5.man: + * modules/md5crypt/md5crypt.man: + * modules/multiplexer/multiplexer.man: + * modules/ntp/ntp_time.man: + * modules/rc4/rc4.man: + * modules/ripemd/ripemd128.man: + * modules/ripemd/ripemd160.man: + * modules/sha1/sha1.man: + * modules/snit/snit.man: + * modules/snit/snitfaq.man: + * modules/textutil/expander.man: + * modules/textutil/textutil.man: + + * sak.tcl: Extended with code to extract package descriptions from + the module manpages. The association between packages and + manpages is made through the manpage title and require + statements. Added sub commands which format and print the found + information. Extended the tap generator to insert such + information into its result. + + * modules/doctools/fmt.desc: New format, used for the basic data + extraction mentioned above. + +2005-02-14 Andreas Kupries + + * modules/docstrip: NEW MODULE: docstrip. + * installed_modules.tcl: Literate programming support. + + * apps/dtplite (::dtplite::processCmdline): Fixed the [SF Tcllib + Bug 1111364]. The extension has to be set up before the creation + of the filename (for a directory output path), otherwise the + result will have no extension. + +2005-02-10 Andreas Kupries + + * modules/fumagic: NEW MODULE: fileutil::magic. + * installed_modules.tcl: Magic(5) based file recognizers and + support code. Currently only one recognizer, for mime-types. + +2005-01-31 Pat Thoyts + + * modules/sasl: NEW MODULE: sasl + * installed_modules.tcl: 'Simple Authentication and Security Layer' + +2005-01-28 Andreas Kupries + + * modules/rcs: NEW MODULE: rcs + * installed_modules.tcl: Utilities to deal with 'diff -n' patches. + +2005-01-10 Andreas Kupries + + * Makefile.in: Added -no-apps, and -app-path to the installer + targets, to ensure that a configure --bin-path is handled + correctly. + + Thanks to Gregor Leusch for both + diagnosis and patch ([Tcllib SF Bug 1099727]). + +2004-12-06 Pat Thoyts + + * modules/blowfish: NEW MODULE: blowfish + * installed_modules.tcl: + +2004-10-13 Pat Thoyts + + * examples/htmlparse/webviewer.tcl: Added a sample app to + demonstrate the use of the htmlparse package. This also demos the + use of the autoproxy package too. + +2004-10-05 Andreas Kupries + + * + * Released and tagged Tcllib 1.7 ======================== + * + +2004-09-30 Andreas Kupries + + * installed_modules.tcl: Added new module 'treeql' to the + installer. Thanks to Colin McCormack for donating it. + +2004-09-29 Andreas Kupries + + * installer.tcl (ainstall): Ensure existence of directory for the + applications to install. + +2004-09-23 Andreas Kupries + + * sak.tcl (tclfiles, docfiles): Added code to exclude files under + SCCS directories from the validation. Required to prevent bogus + output when run in my BitKeeper repository. Also fixed bug in + docfiles, redefined the wrong command. + +2004-09-19 Andreas Kupries + + * installed_modules.tcl: New module 'tie added to installer. Tcl + files and documentation, no examples. + +2004-08-25 Andreas Kupries + + * all.tcl: Added constraint 'tcl8.5plus'. + +2004-08-23 Andreas Kupries + + * modules/tar: + * installed_modules.tcl: New module: 'tar'. Tcl files and + documentation, no examples. + +2004-07-21 Andreas Kupries + + * apps/dtplite: New application, a lightweight doctools + * apps/dtplite.man: processor, superceding mpexpand. + + * installer.tcl: Extended the installer with code to + * install_action.tcl: handle the installation of the + * installed_modules.tcl: applications provided by tcllib. + +2004-07-17 Pat Thoyts + + * installed_modules.tcl: NEW MODULE: http + The http module is intended to contain things for use with the http + package. Now, this is the 'autoproxy' package. I plan to add an + auto-cookie managing package too (if I can find it.) + +2004-07-09 Andreas Kupries + + * sak.tcl: Fixed [Tcllib SF Bug 988123], which caused the doctools + converter to fail if one run a module without documentation was + followed by a module having documentation. Found by Reinhard Max + . + +2004-07-09 Reinhard Max + + * installed_modules.tcl: NEW MODULE: ident + +2004-07-08 Pat Thoyts + + * installed_modules.tcl: NEW MODULE: uuid + +2004-07-04 Pat Thoyts + + * sak.tcl: Support critcl implementation of rc4. + * modules/tcllibc.tcl: Increment version to 0.2.0. + +2004-07-02 Pat Thoyts + + * installed_modules.tcl: NEW MODULE: rc4 + +2004-06-22 Andreas Kupries + + * installed_modules.tcl: Added module 'bee'. + + * New module for de- and encoding data using the bittorrent + serialization format. + +2004-05-25 Pat Thoyts + + * installed_modules.tcl: remove struct1 module. + +2004-05-23 Andreas Kupries + + * tcllib_version.tcl: Changed version in main line to distinguish + it from the 1.6 branch and the release coming up in it. + +2004-05-23 Andreas Kupries + + * + * Released and tagged Tcllib 1.6.1 ======================== + * + +2004-05-23 Andreas Kupries + + * Bumped version in branch to 1.6.1 in preparation of upcoming + bugfix release. + +2004-05-07 Andreas Kupries + + * New module for querying JPEG images, and manipulating their + comments. + + * New module: PNG querying and manipulation. + +2004-05-04 Andreas Kupries + + * install_action.tcl: Fixed [SF Tcllib Bug 784519]. Loading the + proper doctools directly, and not using the package system. The + latter may get confused and try to load the wrong (old) package. + +2004-04-27 Andreas Kupries + + * installed_modules.tcl: Added new module. + * examples/ldap: + * modules/ldap: New module: LDAP client. Provided to us by Joechen + Loewer . + +2004-04-16 Pat Thoyts + + * sak.tcl: Some mods to the critcl build code for use under + Windows. If it cannot find critcl.kit, then use env(CRITCL) for + the location of the kit file. + +2004-03-09 Andreas Kupries + + * examples/csv/csv2html.orig: Unified the startup header of all + * examples/csv/csvcut.orig: applications, using suggestions + * examples/csv/csvdiff.orig: made by Stuart Cassoff . + * examples/csv/csvjoin.orig: + * examples/csv/csvsort.orig: + * examples/csv/csvuniq.orig: + * examples/ftp/ftpdemo.tcl.orig: + * examples/ftp/ftpvalid.orig: + * examples/ftp/hpupdate.tcl.orig: + * examples/ftp/mirror.tcl.orig: + * examples/ftp/newer.tcl.orig: + * examples/ftpd/ftpd.orig: + * examples/ftpd/ftpd.test.orig: + * examples/ftpd/ftpd.unix.orig: + * examples/irc/irc_example.tcl.orig: + * examples/mime/mbot/README.html.orig: + * examples/mime/mbot/README.txt.orig: + * examples/mime/mbot/README.xml.orig: + * examples/mime/mbot/impersonal.tcl.orig: + * examples/mime/mbot/personal.tcl.orig: + * examples/nntp/postnews.orig: + * examples/oreilly-oscon2001/oscon.orig: + * examples/smtpd/tcl_smtpd.orig: + * examples/smtpd/tk_smtpd.orig: + * examples/smtpd/tk_smtpdMIME.orig: + * modules/des/des.tcl.orig: + * modules/devtools/musub.tcl.orig: + * modules/doctools/mpexpand.orig: + * modules/doctools/mpexpand.all.orig: + * modules/doctools/tocexpand.orig: + * modules/fileutil/fileutil.test.orig: + * modules/mime/performance.tcl.orig: + * modules/pop3/clnt.tcl.orig: + * modules/pop3/srv.tcl.orig: + +2004-03-01 Andreas Kupries + + * installer.tcl: Requiring Tcl 8.2 when executing the installer, + as anything below that version does not make any sense. This + fixes [Tcllib SF Bug 899152]. + + * installer.tcl: Fixed [Tcllib SF Bug 899209] by deleting an + existing file before trying to overwrite it. + +2004-02-18 Andreas Kupries + + * tcllib_version.tcl: Moving mainline to 1.6.0.1 to distinguish + development from the released version. + +2004-02-16 Pat Thoyts + + * modules/ripemd: New module: RIPEMD message-digest implementation + * installed_modules.tcl: Added new module. + +2004-02-15 Andreas Kupries + + * + * Released and tagged Tcllib 1.6 ======================== + * + +2004-02-14 Andreas Kupries + + * README-1.5.txt -> README-1.6.txt + * INSTALL.txt + * tcllib_version.tcl + + We have too many places which use the Tcllib CVS head under the + designation Tcllib 1.5. Because of that the next officially + released version is called Tcllib 1.6, skipping the number + 1.5. This should differentiate cleanly between the various + instances of Tcllib/CVS floating around and this release, and + avoid any confusion about what is which. + +2004-02-13 Andreas Kupries + + * sak.tcl (release): Made functional, added the code which extends + all the ChangeLogs with the release notice. + (gd-assemble): Extended to exclude SCCS and BitKeeper files from + the distribution. + (gd-gen-packages): Fixed problem with missing global variable. + + * all.tcl: 'getErrorMessage' and 'tooManyMessage' renamed to + 'wrongNumArgs' anfd 'tooManyArg'. Also placed the common + constraints (checking Tcl version: 8.3 only, 8.3+, 8.4+) in + here, and removed their declaration from all test files using + them. + + * README-1.5.txt: Updated logger version info to 0.3. + +2004-01-24 Andreas Kupries + + * sak.tcl: Added a very primitive approval mechanism to suppress + output from the package comparison in 'status'. Allows to work + through a set of problems with repeated comparison, approving + packages when done. + + * sak.tcl: Extended functionality for release engineering. Better + comparison of current state against last release. Alerts for + mismatches in version numbers of packages versus changes made to + them. + + * PACKAGES: New file. Always carries the package information from + the last release. Basis for the release status work above. + +2003-12-01 Andreas Kupries + + * installed_modules.tcl: Added 'struct1', the v1.x version of the + struct module. Kept for backward compatibility. + +2003-10-21 Andreas Kupries + + * sak.tcl: Added -nonewline to a number of puts statements to work + around a problem with Tcl 8.4 where additional ^M characters + appear for Mac OS X. [Bug 784523]. + + * README: Updated to describe the new way of adding modules to + tcllib. [Bug 784515]. + + * INSTALL.txt: Updated references to tcllib 1.4 to 1.5. + [Bug 784516, incomplete]. + + * installed_modules.tcl: Changed doc action for snit from _null to + _man (We have doctools manpages for snit for a while now). + + * all.tcl: Added code to try to load 'Tk'. This allows the + execution of 'tk' constrained tests, if Tk is present (for + example when this code is run run by 'wish'). An example of a + module having such tests is 'snit'. + +2003-07-26 Pat Thoyts + + * modules/md5crypt: New module: MD5-crypt implementation + * installed_modules.tcl: Added new module. + * sak.tcl: Added reference for critcl impl of md5crypt. + +2003-07-24 Pat Thoyts + + * sak.tcl: Added a command for generating a YAML description + file. This is much like the TIP55 format but used for FreePAN. + * sak.tcl: Altered the finding of critcl under Windows. + +2003-07-15 Andreas Kupries + + * modules/snit: New module, William Duquette's oo package 'snit' + (aka Snit Is Not IncrTcl). + + * tcllib_version.tcl: Upped to 1.5 because of the new modules + (snit, inifile). + + * installed_modules.tcl: Added 'snit' to list of modules. + +2003-07-04 Andreas Kupries + + * installed_modules.tcl: Added the new module 'inifile' to the + list of packages handled by 'sak'. + +2003-07-04 Miguel Sofer + + * modules/ftpd.man: + * modules/ftpd.tcl (::ftpd::server): the variable ::ftpd::port is + now updated to reflect the port were the server was opened. This + is only relevant when a server was requested at port 0 - ie, at a + port determined by the OS. + +2003-05-26 Andreas Kupries + + * sak.tcl: Updated rpm spec generator using the latest .spec by + Jean-Luc as template. The spec now determiens the list of files + on its own. Don't have to generate them. + +2003-05-23 Andreas Kupries + + * sak.tcl (gd-gen-rpmspec): Added functions to generate a .spec + file (RPM build specification). Added method 'rpmspec' to + generate tcllib.spec. + +2003-05-20 Andreas Kupries + + * installed_modules.tcl: Added 'multiplexer' to the list of + installed modules. Tested and validqated module. Documentation + looks ok for me. + +2003-05-13 Pat Thoyts + + * sak.tcl: added a critcl command to sak to build any critcl + tcllib submodules into a tcllibc library (or separate libraries). + +2003-05-09 Jeff Hobbs + + * comm.man: updated comm to v4.1 + * comm.tcl: rewrite of code to remove pseudo-object model. + Clean up code, add send -command callback to allow for + notification of results for asynchronous sends. + +2003-05-09 Andreas Kupries + + * sak.tcl (modules_mod): Fixed incorrect check. Caused first + module to be reported as bogus although it isn't. + +2003-05-08 Andreas Kupries + + * installer.tcl: Fixed typo in the code loading the new + 'install_action.tcl', had used '...._actions'; note the trailing + 's'. Thanks to Larry for + reporting this. + +2003-05-07 Andreas Kupries + + * tcllib_version.tcl: Updated to 1.4.0.1 to distinguish the CVS + from the official release. + + * install_action.tcl: + * installer.tcl: + * sak.tcl: Lots of changes to make a number of command + module-ware. In the sense that they now work for individual + modules and not only for all in one go. The most important is + 'validate'. IOW, it is now possible to validate a single module, + making this feature more convenient for a developer, as there is + less noise in the output. This required more sharing of code + with the installer. + +2003-05-05 Andreas Kupries + + * + * Released and tagged Tcllib 1.4 ======================== + * + +2003-05-02 Pat Thoyts + + * sak.tcl: Added a contributors command to list the contributors + to the library. This is also used when generating the TIP55 + description file. Names are extracted from the ChangeLog files. + +2003-05-01 Pat Thoyts + + * modules/base64/base64.test: + * modules/base64/uuencode.test: + * modules/base64/yencode.test: Various fixes to fix the + * modules/control/ChangeLog: testsuite for tcl versions + * modules/control/do.test: from 8.2 to 8.5 + * modules/csv/csv.test: + * modules/dns/dns.test: + * modules/fileutil/ChangeLog: + * modules/fileutil/fileutil.man: + * modules/fileutil/fileutil.tcl: + * modules/fileutil/fileutil.test: + * modules/math/combinatorics.test: + * modules/math/math.test: + * modules/mime/mime.test: + * modules/ntp/time.test: + * modules/pop3/pop3.test: + * modules/pop3d/pop3d.test: + * modules/pop3d/pop3d_dbox.test: + * modules/pop3d/pop3d_udb.test: + * modules/profiler/profiler.test: + * modules/report/report.test: + * modules/stooop/pkgIndex.tcl: + * modules/stooop/stooop.test: + * modules/struct/list.test: + * modules/textutil/ChangeLog: + * modules/textutil/expander.tcl: + * modules/textutil/split.tcl: + +2003-04-24 Andreas Kupries + + * installer.tcl: + * installed_modules.tcl: Changed mechanism for exclusion so that + installer is able to install even the excluded (i.e. unofficial) + modules, if so chosen (cmdline only). + +2003-04-30 Andreas Kupries + + * sak.tcl (gd-tip55): Bugfix, location of changeLog was not computed correctly. + + * README-1.4txt: New, overview of changes from 1.3 to 1.4. + + * installed_modules.tcl: Excluded 'calendar' form the list of + installed modules/packages. Not yet ready. + + * sak.tcl (ppackages): Rewritten to use a sub-interpreter for + retrieving package version information instead of regexes + etc. + + Reverted all changes made to [package provide] commands on + 2003-04-24, except for minor details, like the actual version + numbers and typos. + + Fixes SF Tcllib FR #727694 + +2003-04-30 Pat Thoyts + + * sak.tcl: Various fixes to enable document generation under + Windows. Gracefully avoid non-present archivers (tar or zip). + Support for generating a TIP55 style metadata file (gentip55). + Added a file mtime check to avoid unecessary document generation. + +2003-04-24 Andreas Kupries + + * modules/base64/yencode.tcl: Modified the [package provide]'s + * modules/base64/uuencode.tcl: of various packages to aid the + * modules/crc/sum.tcl: automatic consistency checking at + * modules/crc/cksum.tcl: the expense of slightly more + * modules/crc/crc32.tcl: manual overhead for updating the + * modules/crc/crc16.tcl: numbers. + * modules/dns/dns.tcl: + * modules/dns/resolv.tcl: Additionally cleanup of the found + * modules/ftp/ftp.tcl: inconsistencies. + * modules/ftp/ftp_geturl.tcl: + * modules/pop3d/pop3d.tcl: + * modules/pop3d/pop3d_udb.tcl: + * modules/pop3d/pop3d_dbox.tcl: + * modules/pop3d/pop3d_dbox.man: + * modules/smtpd/smtpd.tcl: + * modules/des/des.tcl: + * modules/des/des.man: + * modules/ntp/time.tcl: + * modules/md4/md4.tcl: + + * sak.tcl: Changed provide heuristics a bit, more robust against + whitespace in various places. + +2003-04-24 Andreas Kupries + + * sak.tcl: New command 'provided' to list packages provided by tcl + code. Extended the 'validate' command to compare the lists of + provided and indexed packages. Note: A number of packages use + variable in provide commands. These will show up as + differences. They need higher attention to ensure version + consistency. + + Modified some modules (calendar, exif, control, math) to reduce + the number of reported false positives. + + * sak.tcl: Added 'vcompare' to compare the current list of + packages against a list in a file. Marks new and unchanged + packages for higher attention. Helper for release engineer. + + * modules/base64/uuencode.n: Removed old nroff documentation. All + * modules/cmdline/cmdline.n: documentation is generated from the + * modules/comm/comm.n: doctools manpages (.man). + * modules/control/control.n: + * modules/counter/counter.n: + * modules/crc/cksum.n: + * modules/crc/crc32.n: + * modules/crc/sum.n: + * modules/csv/csv.n: + * modules/exif/exif.n: + * modules/fileutil/fileutil.n: + * modules/ftp/ftp.n: + * modules/ftpd/ftpd.n: + * modules/html/html.n: + * modules/htmlparse/htmlparse.n: + * modules/irc/irc.n: + * modules/javascript/javascript.n: + * modules/log/log.n: + * modules/math/combinatorics.n: + * modules/math/math.n: + * modules/md5/md5.n: + * modules/mime/mime.n: + * modules/mime/smtp.n: + * modules/ncgi/ncgi.n: + * modules/nntp/nntp.n: + * modules/pop3/pop3.n: + * modules/profiler/profiler.n: + * modules/report/report.n: + * modules/sha1/sha1.n: + * modules/smtpd/smtpd.n: + * modules/stooop/stooop.n: + * modules/struct/graph.n: + * modules/struct/matrix.n: + * modules/struct/queue.n: + * modules/struct/record.n: + * modules/struct/stack.n: + * modules/struct/tree.n: + * modules/textutil/expander.n: + * modules/textutil/textutil.n: + * modules/uri/uri.n: + + * Makefile.in (install): Merged the code for the partial install + targets into one call for full normal install, and dropped the + link between install and the partial install targets. + + * installed_modules.tcl: Moved the list of installed modules out + * installer.tcl: of the installer proper into a separate + * sak.tcl: file, so that the other tools have access + to it too. Extended the SAK to check this + information against the list of modules + under development and print out all the + discrepancies, i.e: modules which are not + installed, or modules installed, but not + existing. This is under 'validate'. + + * sak.tcl: Restricted the list of modules to subdirectories of + 'modules' which contain a package index (pkgIndex.tcl). + + Added the subcommand 'lmodules' listing all modules one per + line. The existing subcommand 'modules' in contrast prints + everything on a single line. + + Added the subcommand 'packages' listing the packages in tcllib + and their versions, one per line. + + Added subcommand 'text' to generate documentation as plain text. + +2003-04-23 Andreas Kupries + + * modules/stats: Removed all files in the deprecated module + 'stats' now. They there not provided in releases for over a year + now. It is time to clean up the CVS too. + +2003-04-22 Andreas Kupries + + * modules/dns/tcllib_dns.man: Cleaned up RFC references, usage + * modules/ftp/ftp.man: of such in the keyword sections, + * modules/ftpd/ftpd.man: and added links to the master RFC + * modules/irc/irc.man: website at http://www.rfc-editor.org. + * modules/md4/md4.man: + * modules/mime/mime.man: + * modules/mime/smtp.man: + * modules/nntp/nntp.man: + * modules/pop3/pop3.man: + * modules/pop3d/pop3d.man: + * modules/pop3d/pop3d_dbox.man: + * modules/pop3d/pop3d_udb.man: + * modules/smtpd/smtpd.man: + * modules/struct/graph.man: + * modules/uri/uri.man: + +2003-04-21 Andreas Kupries + + * devdoc/indexing.txt: + * installer.tcl: Extended [gen_main_index] to include the header + of Don's generated package index. This makes the final chosen + master index a combination of [i7/ad] and [i4/sd] as the + fallback position. + + * installer.tcl: Made sure that all [file copy] operations use + -force. Fix for #719616. + +2003-04-19 Andreas Kupries + + * installer.tcl: Bug fix, the modules calendar, control, and math + have a "tclIndex" file which has to be installed too. Also + changed usage of 'tcl_pkgPath', as this variable does not exist + on windows. + +2003-04-17 Andreas Kupries + + * configure.in: Switched over from the original build system + * configure: to one where configure/Makefile are optional + * Makefile.in: and delegating all real work to 'sak.tcl'. + * INSTALL.txt: Updated documentation, reduced configure macros. + * aclocal.m4: + * sak.tcl: + * devdoc/releaseguide.html: + +2003-04-17 Andreas Kupries + + * installer.tcl: Bug fixes in non-gui mode, added option to force + cmdline mode. + + * sak.tcl: Added command to invoke the testsuite(s). + + * installer.tcl: Added GUI. + + * main.tcl: New file, entrypoint for *kit, *pack, redirects to + 'installer.tcl'. + + * sak.tcl: Helper tool for tcllib development (Generate + distribution, various forms of documentation, check the bundle + of packages for problems. + + * Makefile.in: Added des to the list of modules. (That is the good + thing which came out of the erroneous commit, we found this + error.) + + * mkIndex.tcl: Reverting accidential commit of this file. The + committed state works with a changed Makefile, but not with the + current one. + +2003-04-16 Andreas Kupries + + * installer.tcl: Added 'des' to list. Reworked according to + feedback from Don. + + * tcllib_version.tcl: Added, for sharing with other scripts. + + * modules/stats/pkgIndex: Now throwing an error when trying to + load 'stats'. + + * modules/struct/ChangeLog: Typo correction. + +2003-04-15 Andreas Kupries + + * installer.tcl: Added 'md4' to installer.tcl + +2003-04-15 Pat Thoyts + + * modules/md4: New module md4 created: MD4 hash algorithm. + +2003-04-15 Andreas Kupries + + * installer.tcl: EXPERIMENTAL. New installer for tcllib. Currently + only cmdline based. Use -help to get help. + +2003-04-13 Andreas Kupries + + * Makefile.in (check-doc-markup): Fixed setting for DOC_FLAGS. The + option '-visualwarn' does not exist anymore. Replaced by the + option '-deprecated'. Thanks to Larry Virden for reporting the + problem. + +2003-04-11 Andreas Kupries + + * install.tcl: Changed to notify the user if the directory to + install is not a source distribution but a CVS snapshot. Right + now a direct installation of a CVS snapshot is not possible. + + * Fixed bug #614591 throughout. Numerous modules updated. Also + first round of getting version number consistents, and updated + for a 1.4 release of the whole. + +2003-04-09 Andreas Kupries + + * New module: devtools. Internal use only for now. Does not + contain true packages. + +2003-04-01 Andreas Kupries + + * Makefile.in (MODULES): Added the soundex module. + +2003-03-28 Andreas Kupries + + * README: Updated information about acceptable documentation + formats, i.e. added doctools, made it the most prefered + format. This fixes the [Bug #685270], reported by Larry Virden + . + +2003-03-24 Andreas Kupries + + * README: Updated to refer to the SF website for Tcllib. Thanks to + Larry Virden for the report and + fix. [Bug #707607]. + +2003-03-17 Pat Thoyts + + * modules/ntp: New module ntp created for time related network + protocol stuff. Added RFC868 (TIME) protocol client and example. + +2003-03-13 Andreas Kupries + + * Makefile.in (install-libraries): Extended special code for + doctools to install the new idx and toc engines. + +2003-02-11 Pat Thoyts + + * modules/des: Imported and tcllib-ised the DES package + from wiki page "DES in Tcl" by Jochen Loewer. NOT added to the + main package list as it requires CBC/CFB/OFB modes for real use. + +2003-01-18 Andreas Kupries + + * More doctools changes: Command [strong] is deprecated now. Added + the command [copyright]. Went through all manpages to eliminate + [strong]. Partial setting of copyright information, where known. + +2003-01-13 Andreas Kupries + + * mkInstallScripts.tcl: + * Makefile.in (install-libraries): Added module specific + installation code. + + doctools: Install message catalogs and predefined formatting + engines. + + textutil: Install hyphenation files. + + * Module doctools rewritten to make it a true package + + application, instead of a pure application module. This means + that this module now truly installs some functionality useable + by other applications and packages. + +2003-01-03 Pat Thoyts + + * smtpd: enhanced error handling for FR #655611 + Handle some ESMTP options. + +2002-11-24 Gerald Lester + + * html: Fixed bug #643337 (changes made though 2002-12-2) + +2002-11-24 Gerald Lester + + * html: Fixed bug #596000 + +2002-10-16 Andreas Kupries + + * struct (graph): Implemented FR 603924 + +2002-10-14 Andreas Kupries + + * pop3: Fixed bug #620062. + +2002-10-09 Andreas Kupries + + * Makefile.in (install-libraries): Added code to skip directories + without .tcl files. Some shells do not like a for with nothing + to iterate over. + +2002-10-08 Pat Thoyts + + * smtpd: implemented feature request #531531 to use MIME tokens + +2002-09-25 Jeff Hobbs + + * Makefile.in: better DESTDIR/libdir support (steffen) + +2002-09-14 Andreas Kupries + + * mime: New field_decode, extended testsuite. + +2002-09-04 Andreas Kupries + + * all.tcl (tcltest::tooManyMessage): Additional command to create + different error messages for 8.3 and 8.4. Used in the testsuite + of pop3. + +2002-08-30 Andreas Kupries + + * cmdline: + * counter: + * dns: + * ftpd: + * html: + * ncgi: + * examples/ftp: Cleaned up nits ('info exist' --> 'info exists'). + +2002-08-21 Andreas Kupries + + * examples/ftp: Fixed problem in ftpdemo.tcl. + +2002-08-19 Andreas Kupries + + * nntp: Updated documentation, see Tcllib SF #597102. + + * Makefile.in (install-doc): Fixed problem noted by Elchonon + Edelson. Code to inline man.macros appended to existing + files. Multiple execution of 'make install-doc' thus extended + the manpages of tcllib with multiples of their original + content. Not anymore. + +2002-08-16 Andreas Kupries + + * exif: Applied patch #582828. Partially applied #530970. + +2002-08-15 Andreas Kupries + + * Makefile.in (DOC_EXP): Use the tclsh found during configuration + to run mpexpand. This ensures that mpexpand does not pick + something from the path on its own, possibly something too old + to understand TCLLIBPATH. Problem noted by Elchonon Edelson + . + + * mime: Accepted SF Tcllib FR #595240. This entails the donation + of the personal mail filter mbot, as written and used by + Marshall T. Rose, as an example of the usage of the mime and + smtp packages. + + * mime (smtp): Followup to patch SF #557520/2 (See 2002-07-25). + +2002-08-09 Andreas Kupries + + * Makefile.in (install-doc): Changed $$(basename) to + `basename`. Portability problem. Works for Linux for example, + but not everywhere else. See 2002-08-06 for the change which + introduced this. + +2002-08-08 Andreas Kupries + + * htmlparse: Fixed SF bug #579853. + +2002-08-06 Andreas Kupries + + * Makefile.in (dist): Fixed SF Bug #567079, reported by Don Porter + . No infinite recursion anymore for + srcdir == builddir. + + * ftp: Fixed SF Bug #582668. + + * comm: Fixed SF Bug #589225. + + * Makefile.in (install-doc): Restored the code inlining the + man.macros file into the generated nroff manpages. Got somehow + deleted. Was still in the 'dist' target. Thanks to Reinhard Max + for noticing this. + + * struct (pool): Fixed bug SF #585093. + * struct (tree): Fixed bug SF #587533. + +2002-07-25 Andreas Kupries + + * mime: Applied SF patch #585455. + * mime (smtp): Applied patch SF #557520/2. + +2002-07-08 Andreas Kupries + + * struct (tree): Fixed SF bug #578460. + + * doctools: Fixed bug #578465. + +2002-07-02 Don Porter + + * all.tcl: Corrected name of tcltest hook procedure + +2002-06-24 Andreas Kupries + + * csv: Fixed SF bug #565051. + + * mime: Fixed SF bug #548832. + +2002-06-17 Andreas Kupries + + * Applied patch for bug #567428. Bug reported by Larry Virden + , patch by him too. Correction of + spelling mistakes in the documentation of various modules + + correction of comment placements which interfere with solaris + conventions for nroff output. + +2002-06-10 Andreas Kupries + + * Released and tagged tcllib 1.3.0. ======================== + +2002-06-07 Andreas Kupries + + * dns: Fixed SF bug #564670. + +2002-06-05 Andreas Kupries + + * all.tcl: Updated to use a default value for -modules if that + option is not present. + + * install.tcl: New file, alternate installer for unix and + windows. Execute with any tclsh and tcllib 1.3 is installed in + the parent directory of the tcl script library + directory. Courtesy Gerald Lester + . + + * Makefile.in (install-doc): Changed to use the doctools generated + nroff and html files instead of the manually written .n files. + + * configure.in (MINOR_VERSION): Updated to version 1.3 + + * Makefile.in (doc): Removed tmml-doc from default set of + documentation. + + * Makefile.in (dist, install): New target 'gen-main-index' + encapsulates the generation of the package index for + tcllib. This target is used by both the direct installation + (install) and during the generation of a source distribution + (dist). + + * mkIndex.tcl: Rewritten to make use of 'pkg_mkIndex' to get the + list of all packages in tcllib. Added a message which deprecates + [package require tcllib] if it is used. + +2002-06-03 Andreas Kupries + + * math (calculus): Fixed SF Tcllib Bug #553773. + + * ftpd: + * html: + * htmlparse: + * base64: + * uuencode: Updated version information. + +2002-05-29 Andreas Kupries + + * mime: Fixed SF Tcllib Bug #561416 + +2002-05-27 Andreas Kupries + + * base64: Fixed SF Tcllib Bug #548354. + +2002-05-21 Andreas Kupries + + * doctools: Fixed bug #556509. + * fileutil: Fixed bug #556504. + +2002-05-15 Andreas Kupries + + * pop3d: Fixed bug #532216. All parts of pop3d now have a + testsuite. + +2002-05-14 Andreas Kupries + + * pop3d: Added testsuites for user database and simple mailbox + storage. + + * fileutil: SF Bug #462015 closed. Proosed change rejected, added + new commands to perform the desired operation instead. + +2002-05-09 Andreas Kupries + + * doctools: Fixed bug #534334 (actually more a FR). + + * examples/csv/csvdiff: Applied patch associated with tcllib SF + bug #551133. Bug reported by , + patch by . + + Accepted FR #551127 and added code implementing the feature. + +2002-05-08 Andreas Kupries + + * struct (tree): Accepted FR #552972. + + * mime: Fixed bugs #539952, #553784. + +2002-05-08 Don Porter + + * all.tcl: Show full stack trace when an error occurs sourcing + a test file. + +2002-04-24 Andreas Kupries + + * cmdline: Accepted patch #540313 + + * examples/ftp/hpupdate.tcl: Accepted patch #548221 by Larry + Virden . + Fixed bug #548224 (Touch). + + * base64: Fixed bug #548112. + +2002-04-23 Andreas Kupries + + * doctools: Fixed bug #527025. + + * smtp (mime): Fixed bug #547336. + +2002-04-16 Andreas Kupries + + * Makefile.in (dist): Ensured that the deprecated module 'stats' + is not distributed anymore. Use 'counter' instead. + (*-force): Enforced generation of documentation, for developers. + +2002-04-10 Andreas Kupries + + * Makefile.in (MODULES): Added irc module. + +2002-04-04 Andreas Kupries + + * mime: Fixed bug #533025. + +2002-04-01 Andreas Kupries + + * Makefile.in (doc_generate): Added 'touch' command to prevent + multiple execution of target. + + * struct (matrix): Fixed bug #532791. + + * doctools: Fixed SF Bug #535382. + +2002-03-25 Andreas Kupries + + * doctools: Implemented FR #530059 and FR #527029. + + * Fixed minor formatting errors in several existing doctools + manpages. + + * struct (matrix): Fixed bug #532783. + +2002-03-19 Andreas Kupries + + * ftpd: Fixed SF Bug #531799. + + * New module: pop3d. A POP3 server. + * Makefile.in: Added pop3d. + +2002-03-15 Andreas Kupries + + * math: Update of calculus. #528434 + + * report, struct (matrix): Fixed bug #530207. + +2002-03-14 Andreas Kupries + + * textutil (expander): Fixed SF Bug #530056. + +2002-03-13 Andreas Kupries + + * doctools: Fixed bug #528390. + +2002-03-09 Andreas Kupries + + * struct (matrix): Accepted FR #524430 (-nocase). + + * doctools: FR #527716 accepted. Bug #527025 partially fixed. + +2002-03-07 Andreas Kupries + + * Makefile.in (doc_generate): Added "TCLLIBPATH=$(srcdir)/modules" + in front of the mpexpand invocation so that it is forced to use + the "expander" package inside of the distribution. This fixes + Tcllib Bug #525007 reported by Don Porter + . + +2002-03-02 Pat Thoyts + + * New module: dns + * Makefile.in: updated for new module + +2002-02-27 Andreas Kupries + + * doctools: Done FR #517599. FR #520269. + + * mime: Fixed bug #519623. + + * Makefile.in (install-doc): Changed code determining the files to + install to handle missing files better (use 'ls', suppress error + messages). + +2002-02-18 Andreas Kupries + + * exif: New module. FR 517066 accepted. + +2002-02-14 Andreas Kupries + + * Makefile.in (statcheck, frink, procheck): Added developer + targets to invoke two static code checkers. + + * Ran frink over the package and corrected several minor problems. + +2002-02-12 Andreas Kupries + + * Makefile.in: Added target for generation of documentation in + various formats from .man pages + +2002-02-01 Andreas Kupries + + * mime: Applied patch 511692. + +2002-01-21 Andreas Kupries + + * Makefile.in (dist): Brought archive names and contents more in + sync with earlier releases. This comes from work on release 1.2. + +2002-01-18 Andreas Kupries + + * Bumped version to 1.2, new release. Summary of changes here. See + the individual Changelogs to see the detailed changes in each + module. + + New modules: calendar, crc, doctools, irc, smtpd, and stooop. + + calendar: Version is 0.1 + crc: Version is 1.0 + doctools: Version is 1.0 + irc: Version is 0.1 + smtpd: Version is 1.0 + stooop: Version is 4.3 + + Changed modules: base64, comm, control, csv, fileutil, ftp, + html, math, mime, ncgi, nntp, pop3, struct, textutil, and uri. + + base64: Version stays @ 2.2, but got new subpackage. + comm: Version up to 3.7.1 + control: Version up to 0.2 + csv: Version up to 0.2 + fileutil: Version up to 1.3 + ftp: Version up to 2.3 + html: Version up to 1.2 + math: Version up to 1.2 + mime: Version up to 1.3.1 + ncgi: Version up to 1.2.1 + nntp: Version up to 0.2 + pop3: Version up to 1.5.1 + struct: Version up to 1.2 + textutil: Version up to 0.4 + uri: Version up to 1.1 + +2002-01-18 Andreas Kupries + + * Makefile.in (dist): Fixed bug #495976. + +2002-01-17 Pat Thoyts + + * crc module: added sum manual page + * base64 module: added uuencode manual page + +2002-01-17 Andreas Kupries + + * examples/csv/csvdiff: New example for csv module. FR #485717. + + * mime: Fixed bug #499242. + +2002-01-16 Andreas Kupries + + * mime: Implemented FR #503336 + * ftp: Fixed bug #503471. + * nntp: Fixed bug #502250 + +2002-01-16 Pat Thoyts + + * base64 module: added uuencode package + * crc module: added sum and cksum packages. + +2002-01-11 Pat Thoyts + + * mkInstallScripts.tcl: + * Makefile.in: Added crc and smtpd modules to the installation files. + +2002-01-11 Kevin Kenny + + * mkInstallScripts.tcl: Changed the installation process for + Windows to avoid the unimplemented [file permissions] in favor of + [file attributes]. + +2002-01-11 Kevin Kenny + + * New module: calendar. + +2002-01-11 Pat Thoyts + + * New module: crc. From patch #501339 + +2002-01-11 Andreas Kupries + + * Makefile.in (install-doc): Fixed bug #500655. Using the code + from the tcl "Makefile.in" as template equivalent code for + tcllib was created and added to the file "Makefile.in". The + modified makefile now includes the contents of "man.macros" into + every installed manpage. + + * html: Applied patch #484117. + +2001-12-14 Andreas Kupries + + * New module: doctools. FR #492234. + +2001-12-13 Andreas Kupries + + * texturil: Applied patch #492156. + +2001-12-11 Andreas Kupries + + * pop3: Bugfix for item #490151. + + * textutil: Bugfix for item #476988. + +2001-12-10 Andreas Kupries + + * textutil: Update from William, 'evalcmd' callback. + +2001-12-06 Andreas Kupries + + * fileutil: Bugfix for item #486572. + +2001-11-28 Reinhard Max + + * split.tcl: Speed improvement. + +2001-11-23 Andreas Kupries + + * struct.matrix: Implemented FR #481022. + +2001-11-19 Andreas Kupries + + * irc: Added IRC example to examples section. Patch #481479. + + * struct/graph: Applied patch #483125 + + * smtpd: Example consolidation: Moved the smtpd example to + 'examples' directory. + + * ftp: Implemented FR #481161. + + * ftpd: Added example ftp server used for testing the + functionality of FR #481161. + +2001-11-17 Pat Thoyts + + * smtpd: New module. + +2001-11-16 Andreas Kupries + + * csv: Applied patch #482570. + + * comm: Fixed bug #480227. + + * ftp, uri: Implemented FR #476804. + + * ftp: Applied patch #428053. + +2001-11-12 Andreas Kupries + + * irc: New module. Internet protocol handling. Internet Relay Chat + (IRC). Author David N. Welton . + + * examples/nntp: Moved example applications out of the nntp module + into the example space. + + * examples/ftpd: Moved example applications out of the ftpd module + into the example space. + + * examples/ftp: Moved example applications out of the ftp module + into the example space. + + * csv: Implemented FR #481023. + + * textutil: Added 'expander' code by William H. Duquette + . Added option -strictlength to + adjust. Code by Dan Kuchler . + +2001-11-09 Joe English + + * comm: Replaced nroff macro trickery in comm.n manpage. + +2001-11-07 Andreas Kupries + + * mime: Fixed bug #479174. + + * mkInstallScripts.tcl: Added code to install tclIndex files. + + * Makefile.in (install-libraries, dist): Added commands to copy + 'tclIndex' files into installation and distribution. This fixes + the remainder of #475846. + (dist): Fixed error in generation of tar/zip files too. + +2001-11-07 Andreas Kupries + + * examples/ftp/ftpvalid: New example, using ftp and uri + modules. Validation of ftp urls. + + * fileutil: Accepted Patch #477805. + * ftp: Accepted Patch #478478. + +2001-11-07 Reinhard Max + + * control: added implementation for a 'do ... while/until' loop. + +2001-11-04 Andreas Kupries + + * ftp: Fixed bug #476729. + +2001-11-01 Andreas Kupries + + * mime: Fixed bugs #477088, #472009. + +2001-10-21 Andreas Kupries + + * uri: Accepted patch #470211. + +2001-10-20 Andreas Kupries + + * ncgi: Fixed bug #464560. + * ftp: Fixed bug #466746. + +2001-10-17 Andreas Kupries + + * ------------------ Tcllib 1.1 released ------------------ + + * tcllib moved to version 1.1 + + * cmdline: Version up to 1.1.1 + * ftp: Version up to 2.2.1 + * html: Version up to 1.1.1 + * md5: Version up to 1.4.1 + * mime/smtp: Version up to 1.3 + * ncgi: Version up to 1.2 + * pop3: Version up to 1.5 + * report: Version up to 0.2 + * sha1: Version up to 1.0.1 + * struct: Version up to 1.1.1 + * textutil: Version up to 0.3 + +2001-10-14 Jeff Hobbs + + * csv.tcl: moved to v0.2 + +2001-09-24 Joe English + + * modules/ftpd/ftpd.tcl: fix improperly-formatted multi-line + replies. See SF tracker ID #424797 + +2001-08-24 Andreas Kupries + + * Makefile.in (check): Added target to report modules without + testsuites and/or manpages. + +2001-08-22 Andreas Kupries + + * examples/nntp: Added new example application 'postnews'. This is + an example how to use the 'nntp'-client library provided by + tcllib. + + * Makefile.in (MODULES): Added package 'comm'. + +2001-08-21 Don Porter + + * Makefile.in (MODULES): Added package 'control'. + +2001-08-20 Andreas Kupries + + * Makefile.in (mandir, libdir): Applied patch [447141] by Reinhard + Max to virtualize mandir and libdir + via ${INSTALL_ROOT}. + + * all.tcl: Added ::tcltest::getErrorMessage in preparation of + fixing [440051], [440049] and [440046] reported by Larry Virden + . + +2001-07-17 Andreas Kupries + + * Bumped version to 1.0 + +2001-07-10 Andreas Kupries + + * Frink 2.2 run, fixed dubious code. + +2001-07-06 Andreas Kupries + + * Fixed #438748, corrections of various misspellings in manpages + accross all modules. + +2001-06-21 Andreas Kupries + + * Ran frink and procheck over all modules and fixed the reported + problems. As far as they actually were problems. + +2001-06-21 Andreas Kupries + + * Makefile.in (MODULES): Added module 'sha1'. This is another + message digest like 'md5'. + +2001-05-01 Andreas Kupries + + * Makefile.in (MODULES): Added module 'report'. + + * all.tcl: Added code to propagate "::tcltest::testDirectory" into + the slave actually doing the tests. This tripped some of the + tests for the new CSV module as they use some external files and + were thus unable to find them correctly without this setting. + + * Makefile.in (MODULES): Added module 'csv'. + + * Added directory 'examples' for future sample applications of + tcllib and some example applications too. + +2001-04-24 Andreas Kupries + + * Makefile.in: Added module 'md5'. + +2001-03-26 Andreas Kupries + + * Makefile.in (install-libraries): [Bug #404917] + Added 'smtp' explictly to the list of modules for the full + package index. It is part of the 'mime' directory and thus not + automatically found / part of the list. + +2001-03-26 Andreas Kupries + + * Makefile.in: Added module 'htmlparse'. + +2001-03-21 Andreas Kupries + + * Makefile.in: Added module 'log'. + +2001-03-20 Andreas Kupries + + * all.tcl: [Bug #410100, Patch #410105] + Squashed a subtle bug with package management for the + tests. Changes: all.tcl now adds the module path to the + auto_path (the tested modules did it themselves before) and also + moved the setting of the auto_path in the slave before the first + 'package require'. Why ? Assume the old code, an installed + fileutil 1.0 and a new fileutil 1.1 under development. The + initialization of the tests scans the package directories and + finds fileutil 1.0. The module then adds itself to the auto_path + and then requires fileutil (without version). Now fileutil 1.0 + is found by the pkg management, it is acceptable according to + the rules of require and thus used. The new version is not + considered at all, as changing the auto_path does *not* enforce + a rescan of package directories. It is possible to solve the + problem by having the modules require themselves and request a + specific version (1.1 in this case). But this would mean that in + each module we have (at least) one more file containing the + version number (all test files!) and we have to maintain this + for every module. The change here however solves the problem + without touching the modules at all. + +2000-11-02 Brent Welch + + * configure.in: Bumped version number to 0.8 + +2000-11-01 Dan Kuchler + + * Makefile.in: Added javascript package to tcllib. + +2000-10-27 Dan Kuchler + + * Makefile.in: Added ftpd package to tcllib. + +2000-10-04 Brent Welch + + * Makefile.in: Nuked stats in favor of counter. + +2000-09-19 Brent Welch + + * Makefile.in: + Added the stats module. + * configure.in: + Increased version number to 0.7 + * modules/stats/stats.tcl: + * modules/stats/stats.n: + * modules/stats/stats.test: + * modules/stats/pkgIndex.tcl: + Initial version of the stats package. + +2000-08-23 Brent Welch + + * Makefile.in: fixed typo + +2000-08-22 Brent Welch + + * configure.in: Bumped patchlevel to 0.6.1 + * Makefile.in: Ignore errors when installing documentation, + which only partly exists. You'll still see the error messages + but it doesn't stop the install. + Applied tcllib-0-6-1 tag + +2000-07-19 Brent Welch + + * configure.in: Bumped patchlevel to 0.6 + applied tcllib-0-6 tag + +2000-06-15 Dan Kuchler + + * Makefile.in: Added nntp client package. + * modules/nntp: Added nntp client package to tcllib. + +2000-06-13 Eric Melski + + * Makefile.in: Added uri package. + * modules/uri: Added uri package from Steve Ball, Andreas Kupries. + +2000-06-09 Brent Welch + + * configure.in: Bumped patchlevel to 0.5 + applied tcllib-0-5 tag + +2000-06-02 Eric Melski + + * Makefile.in: Added ftp package. + * modules/ftp: Added ftp package from Steffen Traeger to tcllib. + +2000-04-28 Sandeep Tamhankar + + * mkInstallScripts.tcl: Fixed a bug in the UNIX shell script where + it was checking if TCLINSTALL was non-null, but it was using ==, + which isn't legal in /bin/sh. I found this out the hard way while + trying to install tcllib0.4 in the default location + (/usr/local/lib/tcllib0.4) and because of this bug, it ended up + installing in /lib/tcllib0.4. + +2000-04-26 Brent Welch + + * configure.in: Bumped patchlevel to 0.4 + * Makefile.in: Fixed dist target to deal with missing manual + pages and test files. + * mkInstallScripts.tcl: Made install directory a parameter to + the unix install.sh script + +2000-04-25 Eric Melski + + * Makefile.in: Tweaked dist target to include README and + license.terms in distributions. + +2000-04-17 Brent Welch + + * modules/html: Added html generation module + +2000-04-10 Brent Welch + + * Makefile.in: restored ncgi module + +2000-04-07 Eric Melski + + * configure: + * configure.in: Upped version to 0.3. + +2000-03-29 Eric Melski + + * mkIndex.tcl: Added missing "== -1" to [lsearch] for package dir + in generated pkgIndex.tcl. + +2000-03-28 Eric Melski + + * Makefile.in: Added $(srcdir)/ prefix to mkIndex.tcl call in the + install-libraries target, so that it would find the mkIndex.tcl + script when run outside of the source tree. Same for man.macros + in the install-doc target, so it would find the file. + +2000-03-27 Eric Melski + + * Makefile.in: Added dist target for building distribution. + + * configure.in: Removed mkIndex.tcl from AC_OUTPUT call. + + * mkInstallScripts.tcl: First cut at script for autogenerating + simple INSTALL.BAT and install.sh files for tcllib distributions. + + * mkIndex.tcl: + * mkIndex.tcl.in: Replace mkIndex.tcl.in with mkIndex.tcl, which + now takes more args to specify values. + +2000-03-09 Eric Melski + + * Makefile.in: Added ncgi module, commented out until tests are done. + +2000-03-09 Eric Melski + + * Makefile.in: Updated test target to call out to all.tcl. + + * all.tcl: First checkin of all.tcl, the magic that hides behind + "make test". + +2000-03-08 Eric Melski + + * Makefile.in: Commented out cgi module until it's ready for use. + Added checks for bogus module names in install-libraries, but + they're not foolproof. + +2000-03-07 Brent Welch + + * modules/cgi: Preliminary version of a CGI module. Still needs + some cookie functions, test suite, and docs... + +2000-03-07 Eric Melski + + * modules/math: math library + + * Makefile.in: added math library to list of modules + +2000-03-07 Scott Stanton + + * configure.in: + * configure: + * aclocal.m4: + * Makefile.in: Changed to use shared config subdirectory. Also + fixed problem on Windows builds where it would fail to identify + the tclsh executable to use. Simplified configure.in to minimum + number of macros. + +2000-03-06 Eric Melski + + * man.macros: Moved from individual modules to toplevel tcllib + dir, so that it is not repeated hundreds of times. + + * Makefile.in: + * mkIndex.tcl.in: Added version number to installed tcllib dir. + + * license.terms: Adapted license from Tcl. + + * README: Added more information about file layout in module dirs. + +2000-03-06 Scott Redman + + * Makefile.in: added pop3 module. + +2000-03-02 Eric Melski + + * mkIndex.tcl.in: Instead of probing install dir for modules, + changed to take module list on command line, so that users can + change what goes into the pkgIndex.tcl from the Makefile. + + * Makefile.in: additional work on module list and pkgIndex.tcl + generation. Now changing the module list changes what is + installed and what is put in the pkgIndex.tcl. + +2000-03-02 Eric Melski + + * Makefile.in: Work on install-libraries, install-doc; removed + references to compiled bits. + + * mkIndex.tcl.in: Tweaked the generated pkgIndex.tcl to only + append the dirname if it doesn't already exist in the auto_path, + and to use \[file dirname \[info script\]\] instead of [pwd]. + + * configure: + * configure.in: Removed checks for compiler, and all stuff related + to compiling/linking (this is a tcl only extension). + + * tcl.m4: new tcl.m4 from sample extension. + +2000-03-01 Eric Melski + + * Makefile.in: Added fileutil, cmdline, mime, base64 modules. + +2000-02-24 Eric Melski + + * Makefile.in, et al: Preliminary Makefile and configure script, and + supporting files diff --git a/DESCRIPTION.txt b/DESCRIPTION.txt new file mode 100644 index 0000000..55a7575 --- /dev/null +++ b/DESCRIPTION.txt @@ -0,0 +1,51 @@ +Identifier: tcllib +Title: Tcl Standard Library +Description: This package is intended to be a collection of + Tcl packages that provide utility functions useful to a + large collection of Tcl programmers. +Rights: BSD +Version: 1.18 +URL: http://core.tcl.tk/tcllib +Architecture: tcl +Contributor: +Contributor: Aaron Faupell +Contributor: Andreas Kupries +Contributor: Arjen Markus +Contributor: Benjamin Riefenstahl +Contributor: Bob Techentin +Contributor: Brent Welch +Contributor: Brett Schwarz +Contributor: Colin McCormack +Contributor: Dan Kuchler +Contributor: David N. Welton +Contributor: Don Porter +Contributor: Donal K. Fellows +Contributor: Elchonon Edelson +Contributor: Emmanuel Frecon +Contributor: Eric Melski +Contributor: Gerald Lester +Contributor: Gerhard Reithofer +Contributor: Jeff Hobbs +Contributor: Joe English +Contributor: Johannes-Heinrich Vogeler +Contributor: KATO Kanryu +Contributor: Kevin B, Kenny +Contributor: Kevin B. Kenny +Contributor: Kevin Kenny +Contributor: Lars Hellstr\"om +Contributor: Marty Backe +Contributor: Melissa Chawla +Contributor: Michael Schlenker +Contributor: Miguel Sofer +Contributor: Pat Thoyts +Contributor: Peter MacDonald +Contributor: Pierre David +Contributor: Reinhard Max +Contributor: Ross Mohn +Contributor: Sandeep Tamhankar +Contributor: Scott Redman +Contributor: Scott Stanton +Contributor: Steffen Traeger +Contributor: Stephane Arnold +Contributor: Steve Ball +Contributor: Will Duquette diff --git a/INSTALL.txt b/INSTALL.txt new file mode 100644 index 0000000..1fdc126 --- /dev/null +++ b/INSTALL.txt @@ -0,0 +1,77 @@ +How to install Tcllib +===================== + +Introduction +------------ + +The tcllib distribution, whether a snapshot directly from CVS, or +officially released, offers a single method for installing tcllib, +based on Tcl itself. + +This is based on the assumption that for tcllib to be of use Tcl has +to be present, and therefore can be used. + +This single method however can be used in a variety of ways. + +0 For an unwrapped (= directory) distribution or CVS snapshot + + a. either call the application 'installer.tcl' directly, + b or use + + % configure ; make install + + The latter is provided for people which are used to + this method and more comfortable with it. In end this + boils down into a call of 'installer.tcl' too. + +1. A starpack distribution (window-only) is a self-extracting + installer which internally uses the aforementioned installer. + +2. A starkit distribution is very much like a starpack, but + required an external interpreyter to run. This can be any tcl + interpreter which has all the packages to support starkits + (tclvfs, memchan, trf). + +3. A distribution in a tarball has to be unpacked first, then any + of the methods described in (0) can be used. + + +Usage of the installer +---------------------- + +The installer selects automatically either a gui based mode, or a +command line based mode. If the package Tk is present and can be +loaded, then the GUI mode is entered, else the system falls back to +the command line. + +Note that it is possible to specify options on the command line even +if the installer ultimatively selects a gui mode. In that case the +hardwired defaults and the options determine the data presented to the +user for editing. + +Command line help can be asked for by using the option -help when +running the installer (3) or the distribution itself in the case of +(1) or (2). + +The installer will select a number of defaults for the locations of +packages, examples, and documentation, and also the format of the +documentation. The user can overide these defaults in the GUI, or by +specifying additional options. + +The defaults depend on the platform detected (unix/windows) and the +executable used to run the installer. In the case of a starpack +distribution (1) this means that _no defaults_ are possible for the +various locations as the executable is part of the distribution and +has no knowledge of its environment. + +In all other cases the intepreter executable is outside of the +distribution, which means that its location can be used to determine +sensible defaults. + +Notes +----- + +The installer will overwrite an existing installation of tcllib 1.6 +without asking back after the initial confirmation is given. And if +the user chooses the same directory as for tcllib 1.4, or 1.3, etc. +then the installer will overwrite that too. diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..208f998 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,138 @@ +# Makefile.in -- +# +# This file is a Makefile for the tcllib standard tcl library. If this +# is "Makefile.in" then it is a template for a Makefile; to generate +# the actual Makefile, run "./configure", which is a configuration script +# generated by the "autoconf" program (constructs like "@foo@" will get +# replaced in the actual Makefile. +# +# Copyright (c) 1999-2000 Ajuba Solutions +# Copyright (c) 2001 ActiveState Tool Corp. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: Makefile.in,v 1.101 2007/08/21 22:04:14 andreas_kupries Exp $ + +#======================================================================== +# Nothing of the variables below this line need to be changed. Please +# check the TARGETS section below to make sure the make targets are +# correct. +#======================================================================== + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ +libdir = @libdir@ +mandir = @mandir@ +bindir = @bindir@ + +DESTDIR = +pkglibdir = $(libdir)/@PACKAGE@@VERSION@ +top_builddir = . + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +CYGPATH = @CYGPATH@ + +TCLSH_PROG = @TCLSH_PROG@ + +CONFIG_CLEAN_FILES = + +#======================================================================== +# Start of user-definable TARGETS section +#======================================================================== + +all: +doc: html-doc nroff-doc + +install: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/installer.tcl` \ + -no-examples -no-html \ + -pkg-path `$(CYGPATH) $(DESTDIR)$(pkglibdir)` \ + -app-path `$(CYGPATH) $(DESTDIR)$(bindir)` \ + -nroff-path `$(CYGPATH) $(DESTDIR)$(mandir)/mann` \ + -no-wait -no-gui + +install-libraries: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/installer.tcl` \ + -pkg-path `$(CYGPATH) $(DESTDIR)$(pkglibdir)` \ + -no-examples -no-html -no-nroff \ + -no-wait -no-gui -no-apps + +install-applications: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/installer.tcl` \ + -app-path `$(CYGPATH) $(DESTDIR)$(bindir)` \ + -no-examples -no-html -no-nroff \ + -no-wait -no-gui -no-pkgs + +install-doc: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/installer.tcl` \ + -nroff-path `$(CYGPATH) $(DESTDIR)$(mandir)/mann` \ + -no-examples -no-pkgs -no-html \ + -no-wait -no-gui -no-apps + +test: + if test -t 1 ; \ + then $(MAKE) test_interactive ; \ + else $(MAKE) test_batch ; \ + fi + +test_batch: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` test run -v -s "$(TCLSH_PROG)" + +test_interactive: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` test run -s "$(TCLSH_PROG)" + +depend: +dist: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` gendist + +critcl: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` critcl + +clean: + rm -rf doc *-doc + +distclean: clean + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -rm -f config.status + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +uninstall-binaries: + + +html-doc: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` doc html +nroff-doc: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` doc nroff +tmml-doc: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` doc tmml +wiki-doc: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` doc wiki +latex-doc: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` doc ps +list-doc: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` doc list + +check: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` validate + +sak-help: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` help + +shed: + $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/../sherpa/sherpa.tcl` shed generate `pwd` support/tool.tcl + +.PHONY: all binaries clean depend distclean doc install installdirs libraries test shed + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/README b/README new file mode 100644 index 0000000..c47f080 --- /dev/null +++ b/README @@ -0,0 +1,96 @@ +RCS: @(#) $Id: README,v 1.9 2007/08/30 17:24:13 andreas_kupries Exp $ + +Welcome to the Tcllib, the Tcl Standard Library. This package is +intended to be a collection of Tcl packages that provide utility +functions useful to a large collection of Tcl programmers. + +The home web site for this code is http://core.tcl.tk/tcllib/ . +At this web site, you will find mailing lists, web forums, databases +for bug reports and feature requests, the CVS repository (browsable on +the web, or read-only accessible via CVS ), and more. + +The structure of the tcllib source hierarchy is: + +tcllib + +- modules + +- + +- + +- ... + + +The install hierarchy is: + +.../lib/tcllib + +- + +- + +- ... + +There are some base requirements that a module must meet before it +will be added to tcllib: + +* the module must be a proper Tcl package +* the module must use a namespace for its commands and variables +* the name of the package must be the same as the name of the + namespace +* the module must reside in a subdirectory of the modules directory in + the source hierarchy, and that subdirectory must have the same name + as the package and namespace +* the module must be released under the BSD License, the terms of + which can be found in the toplevel tcllib source directory in the file + license.terms +* the module should have both documentation ([*]) and a test suite + (in the form of a group of *.test files in the module directory). + + [*] Possible forms: doctools, TMML/XML, nroff (man), or HTML. + The first format is the most preferred as it can be processed with + tools provided by tcllib itself (See module doctools). The first + two are preferred in general as they are semantic markup and thus + easier to convert into other formats. + +* the module must have either documentation or a test suite. It can + not have neither. +* the module should adhere to Tcl coding standards + +When adding a module to tcllib, be sure to add it to the files listed below. + +* installed_modules.tcl + + contains a table listing all modules to be installed, modules + excluded, and names the actions to be taken during installation + of each module. Add a line to this table naming your module and + its actions. + + Three actions have to be specified, for the package itself, its + documentation, and the examples demonstrating it. + + The _null action can be used everywhere and signals that there is + nothing to do. Although it is possible to use it for the package + action it does make no sense there, as that means that no package + code is installed. + + Other package actions are _tcl, _tci, and _text. The first causes + the installer to copy all .tcl files from the source directory for + the module into the appropriate module directory. _tci does all that + and also expects a tclIndex file to copy. _tex is like _tcl, however + it also copies all .tex files found in the source directory for the + module. + + There is currently only one true documentation action. This action + is _doc. It converts all documentation in doctools format into the + format chosen by the user for installation and copies the result + into the appropriate directory. + + There is currently one true action for examples, _exa. It copies all + files in the source directory for examples into the directory chosen + by the user as destination for examples. + +Each module source directory should have no subdirectories (other than +the CVS directory), and should contain the following files: + +* source code *.tcl +* package index pkgIndex.tcl +* tests *.test +* documentation *.man, *.n, *.xml + +If you do not follow this directory structure, the tcllib Makefile +will fail to locate the files from the new module. diff --git a/README.developer b/README.developer new file mode 100644 index 0000000..13d2771 --- /dev/null +++ b/README.developer @@ -0,0 +1,396 @@ +RCS: @(#) $Id: README.developer,v 1.6 2009/06/02 22:49:55 andreas_kupries Exp $ + +Welcome to the tcllib, the Tcl Standard Library. +================================================ + +Introduction +------------ + +This README is intended to be a guide to the tools available to a + + Developer + +working on Tcllib to help him with his tasks, i.e. making the tasks easier +to perform. It is our hope that this will improve the quality of even +non-released revisions of Tcllib, and make the work of the release +manager easier as well. + +Audience +-------- + +The intended audience are, first and foremost, developers beginning to +work on Tcllib. To an experienced developer this document will be less +of a guide and more of a reference. Anybody else interested in working +on Tcllib is invited as well. + + +Directory hierarchy and file basics +------------------------------------ + +The main directories under the tcllib top directory are + + modules/ + examples/ +and apps/ + +Each directory FOO under modules/ represents one package, sometimes +more. In the case of the latter the packages are usually related in +some way. Examples are the base64, math, and struct modules, with +loose (base64) to strong (math) relations between the packages. + +Examples associated with a module FOO, if there are any, are placed +into the directory + + examples/FOO + +Any type of distributable application can be found under apps/, +together with their documentation, if any. Note that the apps/ +directory is currently not split into sub-directories. + +Regarding the files in Tcllib, the most common types found are + + .tcl Tcl code for a package. + + .man Documentation for a package, in doctools format. + + .test Test suite for a package, or part of. Based on tcltest. + + .bench Performance benchmarks for a package, or part of. + Based on modules/bench + + .pcx Syntax rules for TclDevKit's tclchecker. Using these + rules allows tclchecker to check the use of commands + of a Tcllib package X without having to scan the + implementation of X, i.e. its .tcl files. + + +Adding a new module +------------------- + +Assuming that FOO is the name of the new module, and T is the toplevel +directory of the Tcllib sources + +(1) Create the directory T/modules/FOO and put all the files of + the module into it. Note: + + * The file 'pkgIndex.tcl' is required. + + * Implementation files should have the extension '.tcl', + naturally. + + * If available, documentation should be in doctools format, + and the files should have the extension '.man' for SAK to + recognize them. + + * If available the testsuite(s) should use 'tcltest' and the + general format as used by the other modules in Tcllib + (declaration of minimally needed Tcl, tcltest, supporting + packages, etc.). The file(s) should have the extension + '.test' for SAK to recognize them. + + Note that an empty testsuite, or a testsuite which does not + perform any tests is less than useful and will not be + accepted. + + * If available the benchmark(s) should use 'bench' and the + general format as used by the other modules in Tcllib. The + file(s) should have the extension '.bench' for SAK to + recognize them. + + * Other files can be named and placed as the module sees fit. + +(2) If the new module has an example application A which is + polished enough for general use, put this application into the + file "T/apps/A.tcl", and its documentation into the file + "T/apps/A.man". While documentation for the application is + optional, it is preferred. + + For examples which are not full-fledged applications, a + skeleton, or not really polished for use, etc., create the + directory T/examples/FOO/ and put them there. + + A key difference is what happens to them on installation, and + what the target audience is. + + The examples are for developers using packages in Tcllib, + whereas the applications are also for users of Tcllib which do + not have an interest in developing for and with it. As such, + they are installed as regular commands, accessible through the + PATH, and example files are not installed. + +(3) To make Tcllib's installer aware of FOO, edit the file + + T/support/installation/modules.tcl + + Add a line 'Module FOO $impaction $docaction $exaction'. The + various actions describe to the installer how to install the + implementation files, the documentation, and the examples. + + Add a line 'Application A' for any application A which was + added to T/apps for FOO. + + The following actions are available: + + Implementation + + _tcl - Copy all .tcl files in T/modules/FOO into the installation. + _tcr - See above, does it for .tcl files in subdirectories as well. + _tci - _tcl + Copying of a tclIndex - special to modules 'math', 'control'. + _msg - _tcl + Copying of subdir 'msgs' - special to modules 'dns', 'log'. + _doc - _tcl + Copying of subdir 'mpformats' - special to module 'doctools'. + _tex - _tcl + Copying of .tex files - special to module 'textutil'. + + The _null action, see below, is available in principle + too, but a module without implementation does not make + sense. + + Documentation + + _null - Module has no documentation, do nothing. + _man - Process the .man files in T/modules/FOO and + install the results (nroff and/or HTML) in the + proper location, as given to the installer. + + Examples + + _null - Module has no examples, do nothing + _exa - Copy the directory T/examples/FOO + (recursively) to the install location for + examples. + + +Testing modules +--------------- + +To run the testsuite of a module FOO in tcllib use the 'test run' +argument of sak.tcl, like so: + + % pwd + /the/tcllib/toplevel/directory + + % ./sak.tcl test run FOO +or % ./sak.tcl test run modules/FOO + +To run the testsuites of all modules either invoke 'test run' without a +module name, or use 'make test'. The latter assumes that configure was +run for Tcllib before, i.e.: + + % ./sak.tcl test run +or % ./sak.tcl test run + % make test + +In all of the above cases the result will be a combination of progress +display and testsuite log, showing for each module the tests that pass +or failed and how many of each in a summary at the end. + +To get a detailed log, it is necessary to invoke 'test run' with +additional options. + +First example: + % ./sak.tcl test run -l LOG FOO + +This shows the same short log on the terminal, and writes a detailed +log to the file LOG.log, and excerpts to other files (LOG.summary, +LOG.failures, etc.). + +Second example: + % ./sak.tcl test run -v FOO + % make test > LOG + +This writes the detailed log to stdout, or to the file LOG, instead of +the short log. In all cases, the detailed log contains a list of all +test cases executed, which failed, and how they failed (expected +versus actual results). + +Note: +The commands + % make test +and % make test > LOG + +are able to generate different output (short vs long log) because the +Makefile target contains code which detects that stdout has been +redirected to a file and acts accordingly. + +Non-developers should reports problems in Tcllib's bug tracker. +Information about its location and the relevant category can be found +in the section 'BUGS, IDEAS, FEEDBACK' of the manpage of the module +and/or package. + +Module documentation +-------------------- + +The main format used for the documentation of packages in Tcllib is +'doctools', the support packages of which are part of Tcllib, see the +module 'doctools'. + +To convert this documentation to HTML or nroff manpages, or some other +format use the 'doc' argument of sak.tcl, like so: + + % pwd + /the/tcllib/toplevel/directory + + % ./sak.tcl doc html FOO +or % ./sak.tcl doc html modules/FOO + +The result of the conversion can be found in the newly-created 'doc' +directory in the current working directory. + +The set of formats the documentation can be converted into can be +queried via + + % ./sak.tcl help doc + + +To convert the documentation of all modules either invoke 'test run' +without a module name, or use 'make html-doc', etc.. The latter +assumes that configure was run for Tcllib before, i.e.: + + % ./sak.tcl doc html + % make html-doc + +Note the special format 'validate'. Using this format does not convert +the documentation to anything (and the sub-directory 'doc' will not be +created), it just checks that the documentation is syntactically +correct. I.e. + + % ./sak.tcldoc validate modules/FOO + % ./sak.tcldoc validate + + +Validating modules +------------------ + +Running the testsuite of a module, or checking the syntax of its +documentation (see the previous sections) are two forms of validation. + +The 'validate' command of sak.tcl provides a few more. The online +documentation of this command is available via + + % ./sak.tcl help validate + +The validated parts are man pages, testsuites, version information, +and syntax. The latter only if various static syntax checkers are +available on the PATH, like TclDevKit's tclchecker. + +Note that testsuite validation is not the execution of the testsuites, +only if a package has a testsuite or not. + +It is strongly recommended to validate a module before committing any +type of change made to it. + +It is recommended to validate all modules before committing any type +of change made to one of them. We have package inter-dependencies +between packages in Tcllib, thus changing one package may break +others, and just validating the changed package will not catch such +problems. + + +Writing Tests +------------- + +While a previous section talked about running the testsuite for a +module and the packages therein this has no meaning if the module in +question has no testsuites at all. + +This section gives a very basic overview on methodologies for writing +tests and testsuites. + +First there are "drudgery" tests. Written to check absolutely basic +assumptions which should never fail. + +Example: + + For a command FOO taking two arguments, three tests calling it + with zero, one, and three arguments. The basic checks that the + command fails if it has not enough arguments, or too many. + +After that come the tests checking things based on our knowledge of +the command, about its properties and assumptions. Some examples based +on the graph operations added during Google's Summer of Code 2009. + +** The BellmanFord command in struct::graph::ops takes a + _startnode_ as argument, and this node should be a node of the + graph. equals one test case checking the behavior when the + specified node is not a node a graph. + + This often gives rise to code in the implementation which + explicitly checks the assumption and throws a nice error. + Instead of letting the algorithm fails later in some weird + non-deterministic way. + + Such checks cannot be done always. The graph argument for + example is just a command in itself, and while we expect it to + exhibit a certain interface, i.e. set of sub-commands aka + methods, we cannot check that it has them, except by actually + trying to use them. That is done by the algorithm anyway, so + an explicit check is just overhead we can get by without. + +** IIRC one of the distinguishing characteristic of either + BellmanFord and/or Johnson is that they are able to handle + negative weights. Whereas Dijkstra requires positive weights. + + This induces (at least) three testcases ... Graph with all + positive weights, all negative, and a mix of positive and + negative weights. + + Thinking further does the algorithm handle the weight '0' as + well ? Another test case, or several, if we mix zero with + positive and negative weights. + +** The two algorithms we are currently thinking about are about + distances between nodes, and distance can be 'Inf'inity, + i.e. nodes may not be connected. This means that good test + cases are + + (1) Strongly connected graph + (2) Connected graph + (3) Disconnected graph. + + At the extremes of (1) and (3) we have the fully connected + graphs and graphs without edges, only nodes, i.e. completely + disconnected. + +** IIRC both of the algorithms take weighted arcs, and fill in a + default if arcs are left unweighted in the input graph. + + This also induces three test cases: + + (1) Graph will all arcs with explicit weights. + (2) Graph without weights at all. + (3) Graph with mixture of weighted and unweighted graphs. + + +What was described above via examples is called 'black-box' testing. +Test cases are designed and written based on our knowledge of the +properties of the algorithm and its inputs, without referencing a +particular implementation. + +Going further, a complement to 'black-box' testing is 'white-box'. For +this we know the implementation of the algorithm, we look at it and +design our tests cases so that they force the code through all +possible paths in the implementation. Wherever a decision is made we +have a test cases forcing a specific direction of the decision, for +all possible directions. + +In practice I often hope that the black-box tests I have made are +enough to cover all the paths, obviating the need for white-box tests. + +So, if you, dear reader, now believe that writing tests for an +algorithm takes at least as much time as coding the algorithm, and +often more time, then you are completely right. It does. Much more +time. See for example also http://sqlite.org/testing.html, a writeup +on how the Sqlite database engine is tested. + + + +An interesting connection is to documentation. In one direction, the +properties you are checking with black-box testing are properties +which should be documented in the algorithm man page. And conversely, +if you have documentation of properties of an algorithm then this is a +good reference to base black-box tests on. + +In practice test cases and documentation often get written together, +cross-influencing each other. And the actual writing of test cases is +a mix of black and white box, possibly influencing the implementation +while writing the tests. Like writing test for 'startnode not in input +graph' serving as reminder to put in a check for this into the code. diff --git a/README.releasemgr b/README.releasemgr new file mode 100644 index 0000000..dd3e85a --- /dev/null +++ b/README.releasemgr @@ -0,0 +1,65 @@ +RCS: @(#) $Id: README.releasemgr,v 1.2 2009/07/10 16:33:31 andreas_kupries Exp $ + +Welcome to the tcllib, the Tcl Standard Library. +================================================ + +Introduction +------------ + +This README is intended to be a guide to the tools available to a + + Release manager + +working on the creation of a release of Tcllib. + +Audience +-------- + +The intended audience is the release manager of Tcllib, his deputies, +and anybody else interested in the task. + +Basics +------ + +< Flesh this out > + + sak.tcl validate + sak.tcl test run + sak.tcl review + sak.tcl readme + sak.tcl localdoc + sak.tcl release (change to include rpmspec+gentip55+yml) + +< Tasks, and how to perform them > + + Making a release (candidate) branch. + Readying the release in the branch. + Make the release official, merging the branch back. + +Uploading and releasing files +-------------------------------------------- + +(1) Create a proper fossil event for the release, via + + http://core.tcl.tk/tcllib/eventedit + + See existing events (*) for a template + + (Ad *) http://core.tcl.tk/tcllib/event/dac0ddcd2e990234143196b4dc438fe01e7b9817 + +(2) Update the following web locations + + (a) Home page: http://core.tcl.tk/tcllib/home + (b) Downloads: http://core.tcl.tk/tcllib/wiki?name=Downloads + (c) Past Releases: http://core.tcl.tk/tcllib/wiki?name=Past+Releases + + Admin access to the fossil repository required + + (d) http://www.tcl.tk/home/release.txt + (e) http://www.tcl.tk/software/tcllib/*.tml + + ssh access to tcl.activestate.com + aka www.tcl.tk + required. + + (f) http://wiki.tcl.tk/1246 diff --git a/STATUS b/STATUS new file mode 100644 index 0000000..09c094e --- /dev/null +++ b/STATUS @@ -0,0 +1,23 @@ +tcllib STATUS: +$Id: STATUS,v 1.3 2004/01/15 06:36:11 andreas_kupries Exp $ + +Release: +------- + +Next release? + +To be done before release? + +Open Issues: +----------- + +Problems outlined here (bgerror): +https://sourceforge.net/mailarchive/forum.php?thread_id=1288113&forum_id=6718 + + Bugs/feature requests need filing. + + Several solutions offered - we need to pick one. + +"Feature requests" for packages doing their own output. + +Feature requests for packages using too much regexp/regsub. diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..0cccee1 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,84 @@ +# tcl.m4 -- +# +# This file provides a set of autoconf macros to help TEA-enable +# a Tcl extension. +# +# Copyright (c) 1999-2000 Ajuba Solutions. +# All rights reserved. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +#------------------------------------------------------------------------ +# SC_SIMPLE_EXEEXT +# Select the executable extension based on the host type. This +# is a lightweight replacement for AC_EXEEXT that doesn't require +# a compiler. +# +# Arguments +# none +# +# Results +# Subst's the following values: +# EXEEXT +#------------------------------------------------------------------------ + +AC_DEFUN(SC_SIMPLE_EXEEXT, [ + AC_MSG_CHECKING(executable extension based on host type) + + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*|*MSYS*) + EXEEXT=".exe" + ;; + *) + EXEEXT="" + ;; + esac + + AC_MSG_RESULT(${EXEEXT}) + AC_SUBST(EXEEXT) +]) + +#------------------------------------------------------------------------ +# SC_PROG_TCLSH +# Locate a tclsh shell in the following directories: +# ${exec_prefix}/bin +# ${prefix}/bin +# ${TCL_BIN_DIR} +# ${TCL_BIN_DIR}/../bin +# ${PATH} +# +# Arguments +# none +# +# Results +# Subst's the following values: +# TCLSH_PROG +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PROG_TCLSH, [ + AC_MSG_CHECKING([for tclsh]) + + AC_CACHE_VAL(ac_cv_path_tclsh, [ + search_path=`echo ${exec_prefix}/bin:${prefix}/bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${PATH} | sed -e 's/:/ /g'` + for dir in $search_path ; do + for j in `ls -r $dir/tclsh[[8-9]]*${EXEEXT} 2> /dev/null` \ + `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do + if test x"$ac_cv_path_tclsh" = x ; then + if test -f "$j" ; then + ac_cv_path_tclsh=$j + break + fi + fi + done + done + ]) + + if test -f "$ac_cv_path_tclsh" ; then + TCLSH_PROG=$ac_cv_path_tclsh + AC_MSG_RESULT($TCLSH_PROG) + else + AC_MSG_ERROR(No tclsh found in PATH: $search_path) + fi + AC_SUBST(TCLSH_PROG) +]) diff --git a/apps/dtplite b/apps/dtplite new file mode 100755 index 0000000..6f447bf --- /dev/null +++ b/apps/dtplite @@ -0,0 +1,28 @@ +#! /usr/bin/env tclsh +# -*- tcl -*- + +# @@ Meta Begin +# Application dtplite 1.0.5 +# Meta platform tcl +# Meta summary Lightweight DocTools Processor +# Meta description This application is a simple processor +# Meta description for documents written in the doctools +# Meta description markup language. It covers the most +# Meta description common use cases, but is not as +# Meta description configurable as its big brother dtp. +# Meta category Processing doctools documents +# Meta subject doctools doctoc docidx +# Meta require {dtplite 1.0.5} +# Meta author Andreas Kupries +# Meta license BSD +# @@ Meta End + +package require dtplite 1.0.5 + +# dtp lite - Lightweight DocTools Processor +# ======== = ============================== + +exit [dtplite::do $argv] + +# ### ### ### ######### ######### ######### +exit diff --git a/apps/dtplite.man b/apps/dtplite.man new file mode 100644 index 0000000..8f506e1 --- /dev/null +++ b/apps/dtplite.man @@ -0,0 +1,447 @@ +[comment {-*- tcl -*- doctools manpage}] +[manpage_begin dtplite n 1.0.5] +[see_also {docidx introduction}] +[see_also {doctoc introduction}] +[see_also {doctools introduction}] +[keywords conversion] +[keywords docidx] +[keywords doctoc] +[keywords doctools] +[keywords HTML] +[keywords manpage] +[keywords markup] +[keywords nroff] +[keywords TMML] +[copyright {2004-2013 Andreas Kupries }] +[titledesc {Lightweight DocTools Markup Processor}] +[moddesc {Documentation toolbox}] +[category {Documentation tools}] +[description] +[para] + +The application described by this document, [syscmd dtplite], is the +successor to the extremely simple [syscmd mpexpand]. Influenced in its +functionality by the [syscmd dtp] doctools processor it is much more +powerful than [syscmd mpexpand], yet still as easy to use; definitely +easier than [syscmd dtp] with its myriad of subcommands and options. + +[para] + +[syscmd dtplite] is based upon the package [package doctools], like +the other two processors. + +[subsection {USE CASES}] + +[syscmd dtplite] was written with the following three use cases in +mind. + +[para] +[list_begin enumerated] +[enum] +Validation of a single document, i.e. checking that it was written in +valid doctools format. This mode can also be used to get a preliminary +version of the formatted output for a single document, for display in +a browser, nroff, etc., allowing proofreading of the formatting. + +[enum] +Generation of the formatted documentation for a single package, +i.e. all the manpages, plus a table of contents and an index of +keywords. + +[enum] +An extension of the previous mode of operation, a method for the easy +generation of one documentation tree for several packages, and +especially of a unified table of contents and keyword index. + +[list_end] + +[para] + +Beyond the above we also want to make use of the customization +features provided by the HTML formatter. It is not the only format the +application should be able to generate, but we anticipiate it to be +the most commonly used, and it is one of the few which do provide +customization hooks. + +[para] + +We allow the caller to specify a header string, footer string, a +stylesheet, and data for a bar of navigation links at the top of the +generated document. + +While all can be set as long as the formatting engine provides an +appropriate engine parameter (See section [sectref OPTIONS]) the last +two have internal processing which make them specific to HTML. + +[subsection {COMMAND LINE}] + +[list_begin definitions] + +[call [cmd dtplite] [option -o] [arg output] [opt options] [arg format] [arg inputfile]] + +This is the form for use case [lb]1[rb]. The [arg options] will be +explained later, in section [sectref OPTIONS]. + +[list_begin arguments] + +[arg_def path output in] + +This argument specifies where to write the generated document. It can +be the path to a file or directory, or [const -]. + +The last value causes the application to write the generated +documented to [const stdout]. + +[para] + +If the [arg output] does not exist then [lb]file dirname $output[rb] +has to exist and must be a writable directory. + +The generated document will be written to a file in that directory, +and the name of that file will be derived from the [arg inputfile], +the [arg format], and the value given to option [option -ext] (if +present). + +[arg_def (path|handle) format in] + +This argument specifies the formatting engine to use when processing +the input, and thus the format of the generated document. See section +[sectref FORMATS] for the possibilities recognized by the application. + +[arg_def path inputfile in] + +This argument specifies the path to the file to process. It has to +exist, must be readable, and written in [term doctools] format. + +[list_end] +[para] + +[call [cmd dtplite] [const validate] [arg inputfile]] + +This is a simpler form for use case [lb]1[rb]. The "validate" format +generates no output at all, only syntax checks are performed. As such +the specification of an output file or other options is not necessary +and left out. + +[call [cmd dtplite] [option -o] [arg output] [opt options] [arg format] [arg inputdirectory]] + +This is the form for use case [lb]2[rb]. It differs from the form for +use case [lb]1[rb] by having the input documents specified through a +directory instead of a file. The other arguments are identical, except +for [arg output], which now has to be the path to an existing and +writable directory. + +[para] + +The input documents are all files in [arg inputdirectory] or any of +its subdirectories which were recognized by [cmd fileutil::fileType] +as containing text in [term doctools] format. + +[call [cmd dtplite] [option -merge] [option -o] [arg output] [opt options] [arg format] [arg inputdirectory]] + +This is the form for use case [lb]3[rb]. The only difference to the +form for use case [lb]2[rb] is the additional option [option -merge]. + +[para] + +Each such call will merge the generated documents coming from +processing the input documents under [arg inputdirectory] or any of +its subdirectories to the files under [arg output]. In this manner it +is possible to incrementally build the unified documentation for any +number of packages. Note that it is necessary to run through all the +packages twice to get fully correct cross-references (for formats +supporting them). + +[list_end] + +[subsection OPTIONS] + +This section describes all the options available to the user of the +application, with + +the exception of the options [option -o] and [option -merge]. These +two were described already, in section [sectref {COMMAND LINE}]. + +[para] +[list_begin options] +[opt_def -exclude string] + +This option specifies an exclude (glob) pattern. Any files identified +as manpages to process which match the exclude pattern are +ignored. The option can be provided multiple times, each usage adding +an additional pattern to the list of exclusions. + +[opt_def -ext string] + +If the name of an output file has to be derived from the name of an +input file it will use the name of the [arg format] as the extension +by default. This option here will override this however, forcing it to +use [arg string] as the file extension. This option is ignored if the +name of the output file is fully specified through option [option -o]. + +[para] + +When used multiple times only the last definition is relevant. + +[opt_def -header file] + +This option can be used if and only if the selected [arg format] +provides an engine parameter named "header". It takes the contents of +the specified file and assign them to that parameter, for whatever use +by the engine. The HTML engine will insert the text just after the tag +[const ]. + +If navigation buttons are present (see option [option -nav] below), +then the HTML generated for them is appended to the header data +originating here before the final assignment to the parameter. + +[para] + +When used multiple times only the last definition is relevant. + +[opt_def -footer file] + +Like [option -header], except that: Any navigation buttons are ignored, +the corresponding required engine parameter is named "footer", and the +data is inserted just before the tag [const ]. + +[para] + +When used multiple times only the last definition is relevant. + +[opt_def -style file] + +This option can be used if and only if the selected [arg format] +provides an engine parameter named "meta". When specified it will +generate a piece of HTML code declaring the [arg file] as the +stylesheet for the generated document and assign that to the +parameter. The HTML engine will insert this inot the document, just +after the tag [const ]. + +[para] + +When processing an input directory the stylesheet file is copied into +the output directory and the generated HTML will refer to the copy, to +make the result more self-contained. When processing an input file we +have no location to copy the stylesheet to and so just reference it as +specified. + +[para] + +When used multiple times only the last definition is relevant. + +[opt_def -toc path] + +This option specifies a doctoc file to use for the table of contents +instead of generating our own. + +[para] + +When used multiple times only the last definition is relevant. + +[opt_def -pre+toc "label path|text"] +[opt_def -post+toc "label path|text"] + +This option specifies additional doctoc files (or texts) to use in +the navigation bar. + +[para] Positioning and handling of multiple uses is like for options +[option -prenav] and [option -postnav], see below. + +[opt_def -nav "label url"] +[opt_def -prenav "label url"] + +Use this option to specify a navigation button with [arg label] to +display and the [arg url] to link to. This option can be used if and +only if the selected [arg format] provides an engine parameter named +"header". The HTML generated for this is appended to whatever data we +got from option [option -header] before it is inserted into the +generated documents. + +[para] + +When used multiple times all definitions are collected and a +navigation bar is created, with the first definition shown at the left +edge and the last definition to the right. + +[para] The url can be relative. In that case it is assumed to be relative +to the main files (TOC and Keyword index), and will be transformed for +all others to still link properly. + +[opt_def -postnav "label url"] + +Use this option to specify a navigation button with [arg label] to +display and the [arg url] to link to. This option can be used if and +only if the selected [arg format] provides an engine parameter named +"header". The HTML generated for this is appended to whatever data we +got from option [option -header] before it is inserted into the +generated documents. + +[para] + +When used multiple times all definitions are collected and a +navigation bar is created, with the last definition shown at the right +edge and the first definition to the left. + +[para] The url can be relative. In that case it is assumed to be relative +to the main files (TOC and Keyword index), and will be transformed for +all others to still link properly. + +[list_end] + +[subsection FORMATS] + +At first the [arg format] argument will be treated as a path to a tcl +file containing the code for the requested formatting engine. The +argument will be treated as the name of one of the predefined formats +listed below if and only if the path does not exist. + +[para] + +[emph {Note a limitation}]: If treating the format as path to the tcl +script implementing the engine was sucessful, then this script has to +implement not only the engine API for doctools, i.e. + +[term doctools_api], but for [term doctoc_api] and [term docidx_api] +as well. Otherwise the generation of a table of contents and of a +keyword index will fail. + +[para] + +List of predefined formats, i.e. as provided by the +package [package doctools]: + +[para] +[list_begin definitions] + +[def [const nroff]] + +The processor generates *roff output, the standard format for unix +manpages. + +[def [const html]] + +The processor generates HTML output, for usage in and display by web +browsers. This engine is currently the only one providing the various +engine parameters required for the additional customaization of the +output. + +[def [const tmml]] + +The processor generates TMML output, the Tcl Manpage Markup Language, +a derivative of XML. + +[def [const latex]] + +The processor generates LaTeX output. + +[def [const wiki]] + +The processor generates Wiki markup as understood by [syscmd wikit]. + +[def [const list]] + +The processor extracts the information provided by [cmd manpage_begin]. +[see_also {docidx introduction}] +[see_also {doctoc introduction}] +[see_also {doctools introduction}] +[keywords conversion] +[keywords docidx] +[keywords doctoc] +[keywords doctools] +[keywords HTML] +[keywords manpage] +[keywords markup] +[keywords nroff] +[keywords TMML] + +This format is used internally to extract the meta data from which +both table of contents and keyword index are derived from. + +[def [const null]] + +The processor does not generate any output. This is equivalent to +[const validate]. + +[list_end] + +[subsection {DIRECTORY STRUCTURES}] + +In this section we describe the directory structures generated by the +application under [arg output] when processing all documents in an +[arg inputdirectory]. In other words, this is only relevant to the use +cases [lb]2[rb] and [lb]3[rb]. + +[list_begin definitions] + +[def "[lb]2[rb]"] + +The following directory structure is created when processing a single +set of input documents. The file extension used is for output in +HTML, but that is not relevant to the structure and was just used to +have proper file names. + +[example { + output/ + toc.html + index.html + files/ + path/to/FOO.html +}] + +The last line in the example shows the document +generated for a file FOO located at + +[example { + inputdirectory/path/to/FOO +}] + +[def "[lb]3[rb]"] + +When merging many packages into a unified set of documents the +generated directory structure is a bit deeper: + +[example { + output + .toc + .idx + .tocdoc + .idxdoc + .xrf + toc.html + index.html + FOO1/ + ... + FOO2/ + toc.html + files/ + path/to/BAR.html +}] + +Each of the directories FOO1, ... contains the documents generated for +the package FOO1, ... and follows the structure shown for use case +[lb]2[rb]. The only exception is that there is no per-package index. + +[para] + +The files [file .toc], [file .idx], and [file .xrf] contain the +internal status of the whole output and will be read and updated by +the next invokation. Their contents will not be documented. Remove +these files when all packages wanted for the output have been +processed, i.e. when the output is complete. + +[para] + +The files [file .tocdoc], and [file .idxdoc], are intermediate files +in doctoc and docidx markup, respectively, containing the main table +of contents and keyword index for the set of documents before their +conversion to the chosen output format. + +They are left in place, i.e. not deleted, to serve as demonstrations +of doctoc and docidx markup. + +[list_end] + +[vset CATEGORY doctools] +[include ../modules/doctools2base/include/feedback.inc] +[manpage_end] diff --git a/apps/nns b/apps/nns new file mode 100755 index 0000000..ccf58aa --- /dev/null +++ b/apps/nns @@ -0,0 +1,291 @@ +#! /usr/bin/env tclsh +# -*- tcl -*- + +# @@ Meta Begin +# Application nns 1.2 +# Meta platform tcl +# Meta summary Nano Name Service Client +# Meta description This application connects to a name service demon +# Meta description and either registers a name with associated data +# Meta description (until exit) or searches for entries matching a +# Meta description glob pattern. Operations to identify client and +# Meta description server are made available as well. It will survive +# Meta description the loss of the nameserver and automatically reconnect +# Meta description and continue when it comes back (bind and search). +# Meta description +# Meta subject {name service} client +# Meta require {Tcl 8.4} +# Meta require logger +# Meta require nameserv::auto +# Meta require struct::matrix +# Meta author Andreas Kupries +# Meta license BSD +# @@ Meta End + +package provide nns 1.2 + +# nns - Nano Name Service Client +# === = ======================== +# +# Use cases +# --------- +# +# (1) Register something at a nano name service +# (2) Query protocol and feature information. +# (3) Provide application version, and protocol information +# (4) Search service for entries matching a glob-pattern +# +# Command syntax +# -------------- +# +# (Ad 1) nns bind ?-host NAME|IP? ?-port PORT? name data +# (Ad 2) nns ident ?-host NAME|IP? ?-port PORT? +# (Ad 3) nns who +# (Ad 4) nns search ?-host NAME|IP? ?-port PORT? ?-continuous? ?pattern? +# +# Register a name with data. If no port is specified the default +# port 38573 is used to connect to it. If no host is specified +# the default (localhost) is used to connect to it. + +# ### ### ### ######### ######### ######### +## Requirements + +lappend auto_path [file join [file dirname [file dirname \ + [file normalize [info script]]]] modules] + +package require nameserv::auto 0.3 ;# Need auto-restoring search. +package require struct::matrix + +logger::initNamespace ::nns +namespace eval ::nns { log::setlevel info } + +# ### ### ### ######### ######### ######### +## Process application command line + +proc ::nns::ProcessCommandLine {} { + global argv + variable xcmd + variable xname + variable xdata + variable xpat * + variable xwatch 0 + + # Process the options, perform basic validation. + + if {[llength $argv] < 1} Usage + + set cmd [lindex $argv 0] + set argv [lrange $argv 1 end] + + switch -exact -- $cmd { + bind - ident - who - search {set xcmd $cmd} + default Usage + } + + while {[llength $argv]} { + set opt [lindex $argv 0] + if {![string match "-*" $opt]} break + + switch -exact -- $opt { + -host { + if {$xcmd == "who"} Usage + if {[llength $argv] < 2} Usage + + set host [lindex $argv 1] + set argv [lrange $argv 2 end] + + nameserv::auto::configure -host $host + } + -port { + if {$xcmd == "who"} Usage + if {[llength $argv] < 2} Usage + + # Todo: Check non-zero unsigned short integer + set port [lindex $argv 1] + set argv [lrange $argv 2 end] + + nameserv::auto::configure -port $port + } + -continuous { + set xwatch 1 + set argv [lrange $argv 1 end] + } + -debug { + # Undocumented. Activate the logger services provided + # by various packages. + logger::setlevel debug + set argv [lrange $argv 1 end] + } + default Usage + } + } + + # Additional validation, and extraction of the non-option + # arguments. Of which this application has none. + + switch -exact -- $xcmd { + bind { + if {[llength $argv] != 2} Usage + foreach {xname xdata} $argv break + } + search { + if {[llength $argv] > 1} Usage + if {[llength $argv] == 1} { + set xpat [lindex $argv 0] + } + } + who - ident { + if {[llength $argv] != 0} Usage + } + } + return +} + +proc ::nns::Usage {{sfx {}}} { + global argv0 ; append argv0 $sfx + set blank [blank $argv0] + puts stderr "$argv0 wrong#args, expected: bind ?-host NAME|IP? ?-port PORT? NAME DATA" + puts stderr "$blank ident ?-host NAME|IP? ?-port PORT?" + puts stderr "$blank search ?-host NAME|IP? ?-port PORT? ?-continuous? ?PATTERN?" + puts stderr "$blank who" + exit 1 +} + +proc ::nns::ArgError {text} { + global argv0 + puts stderr "$argv0: $text" + #puts $::errorInfo + exit 1 +} + +proc ::nns::blank {s} { + regsub -all -- {[^ ]} $s { } s + return $s +} + +# ### ### ### ######### ######### ######### + +proc ::nns::My {} { + # Quick access to format the identity of the name service the + # client talks to. + return "[nameserv::auto::cget -host] @[nameserv::auto::cget -port]" +} + +proc ::nns::Connection {message args} { + # args = tag event details, ignored + log::info $message + return +} + +proc ::nns::MonitorConnection {} { + uevent::bind nameserv lost-connection [list ::nns::Connection "Disconnected name service at [My]"] + uevent::bind nameserv re-connection [list ::nns::Connection "Reconnected2 name service at [My]"] + return +} + +# ### ### ### ######### ######### ######### +## Main + +proc ::nns::Do.bind {} { + global argv0 + variable xname + variable xdata + + MonitorConnection + log::info "Binding with name service at [My]: $xname = $xdata" + nameserv::auto::bind $xname $xdata + + vwait ::forever + # Not reached. + return +} + +proc ::nns::Do.ident {} { + set sp [nameserv::auto::server_protocol] + set sf [join [nameserv::auto::server_features] {, }] + + if {[llength $sf] > 1} { + set sf [linsert $sf end-1 and] + } + + puts "Server [My]" + puts " Protocol: $sp" + puts " Features: $sf" + return +} + +proc ::nns::Do.search {} { + variable xpat + variable xwatch + + struct::matrix M + M add columns 2 + + if {$xwatch} { + MonitorConnection + set contents [nameserv::auto::search -continuous $xpat] + $contents configure -command [list ::nns::Do.search.change $contents] + + vwait ::forever + # Not reached. + } else { + Do.search.print [nameserv::auto::search $xpat] + } + return +} + +proc ::nns::Do.search.change {res type response} { + # Ignoring the arguments, we simply print the full results every + # time. + + if {$type eq "stop"} { + # Cannot happen for nameserv::auto client, we are free to panic. + $res destroy + log::critical {Bad event 'stop' <=> Lost connection, search closed} + return + } + + # Clear screen ... + puts -nonewline stdout "\033\[H\033\[J"; # Home + Erase Down + flush stdout + + ::nns::Do.search.print [$res getall] + return +} + +proc ::nns::Do.search.print {contents} { + log::info "Searching at name service at [My]" + + if {![llength $contents]} { + log info "Nothing found..." + return + } + + catch {M delete rows [M rows]} + foreach {name data} $contents { + M add row [list $name $data] + } + + foreach line [split [M format 2string] \n] { log::info $line } + return +} + +proc ::nns::Do.who {} { + # FUTURE: access and print the metadata contained in ourselves. + global argv0 + puts "$argv0 [package require nns] (Client Protocol [nameserv::auto::protocol])" + return +} + +# ### ### ### ######### ######### ######### +## Invoking the functionality. + +::nns::ProcessCommandLine +if {[catch { + ::nns::Do.$::nns::xcmd +} msg]} { + ::nns::ArgError $msg +} + +# ### ### ### ######### ######### ######### +exit diff --git a/apps/nns.man b/apps/nns.man new file mode 100644 index 0000000..22363f1 --- /dev/null +++ b/apps/nns.man @@ -0,0 +1,143 @@ +[comment {-*- tcl -*- doctools manpage}] +[manpage_begin nns n 1.1] +[see_also nameserv(n)] +[see_also nameserv::common(n)] +[keywords application] +[keywords client] +[keywords {name service}] +[copyright {2007-2008 Andreas Kupries }] +[moddesc {Name service facility}] +[titledesc {Name service facility, Commandline Client Application}] +[category Networking] +[description] +[para] + +Please read [term {Name service facility, introduction}] first. + +[para] + +The application described by this document, [syscmd nns], is a simple +command line client for the nano name service facility provided by the +Tcllib packages [package nameserv], and [package nameserv::server]. + +Beyond that the application's sources also serve as an example of how +to use the client package [package nameserv]. All abilities of a +client are covered, from configuration to registration of names to +searching. + +[para] + +This name service facility has nothing to do with the Internet's +[term {Domain Name System}], otherwise known as [term DNS]. If the +reader is looking for a package dealing with that please see either of +the packages [package dns] and [package resolv], both found in Tcllib +too. + +[subsection {USE CASES}] + +[syscmd nns] was written with the following two main use cases in +mind. + +[para] +[list_begin enumerated] +[enum] +Registration of a name/data pair in the name service. + +[enum] +Searching the name service for entries matching a glob pattern. + +[list_end] + +[para] + +Beyond the above we also want to be able to identify the client, and +get information about the name service. + +[subsection {COMMAND LINE}] + +[list_begin definitions] + +[call [cmd nns] [method bind] \ + [opt "[option -host] [arg host]"] \ + [opt "[option -port] [arg port]"] \ + [arg name] [arg data]] + +This form registers the [arg name]/[arg data] pair in the specified +name service. In this form the command will [emph not] exit to keep +the registration alive. The user has to kill it explicitly, either by +sending a signal, or through the job-control facilities of the shell +in use. It will especially survive the loss of the connection to the +name service and reestablish the [arg name]/[arg data] pair when the +connection is restored. + +[para] +The options to specify the name service will be explained later, in +section [sectref OPTIONS]. + +[call [cmd nns] [method search] \ + [opt "[option -host] [arg host]"] \ + [opt "[option -port] [arg port]"] \ + [opt [option -continuous]] \ + [opt [arg pattern]]] + +This form searches the specified name service for entries matching the +glob-[arg pattern] and prints them to stdout, with each entry on its +own line. If no pattern is specified it defaults to [const *], +matching everything. + +[para] +The options to specify the name service will be explained later, in +section [sectref OPTIONS]. + +[para] + +If the option [option -continuous] is specified the client will not +exit after performing the search, but start to continuously monitor +the service for changes to the set of matching entries, appropriately +updating the display as changes arrive. In that form it will +especially also survive the loss of the connection to the name service +and reestablish the search when the connection is restored. + +[call [cmd nns] [method ident] \ + [opt "[option -host] [arg host]"] \ + [opt "[option -port] [arg port]"]] + +This form asks the specified name service for the version and features +of the name service protocol it supports and prints the results to +stdout. + +[para] +The options to specify the name service will be explained later, in +section [sectref OPTIONS]. + +[call [cmd nns] [method who]] + +This form prints name, version, and protocol version of the +application to stdout. + +[list_end] + +[subsection OPTIONS] + +This section describes all the options available to the user of the +application + +[para] +[list_begin options] +[opt_def -host name|ipaddress] + +If this option is not specified it defaults to [const localhost]. It +specifies the name or ip-address of the host the name service to talk +to is running on. + +[opt_def -port number] + +If this option is not specified it defaults to [const 38573]. It +specifies the TCP port the name service to talk to is listening on for +requests. + +[list_end] + +[vset CATEGORY nameserv] +[include ../modules/doctools2base/include/feedback.inc] +[manpage_end] diff --git a/apps/nnsd b/apps/nnsd new file mode 100755 index 0000000..dd11233 --- /dev/null +++ b/apps/nnsd @@ -0,0 +1,153 @@ +#! /usr/bin/env tclsh +# -*- tcl -*- + +# @@ Meta Begin +# Application nnsd 1.0.1 +# Meta platform tcl +# Meta summary Nano Name Service Demon +# Meta description This application is a simple demon on top +# Meta description of the nano name service facilities +# Meta subject {name service} server demon +# Meta require {Tcl 8.4} +# Meta require comm +# Meta require logger +# Meta require interp +# Meta require nameserv::common +# Meta require nameserv::server +# Meta author Andreas Kupries +# Meta license BSD +# @@ Meta End + +package provide nnsd 1.0.1 + +# nnsd - Nano Name Service Demon +# ==== = ======================= +# +# Use cases +# --------- +# +# (1) Run a simple trusted name service on some host. +# +# Command syntax +# -------------- +# +# Ad 1) nnsd ?-localonly BOOL? ?-port PORT? +# +# Run the server. If no port is specified the default port 38573 +# is used to listen for client. The option -localonly determines +# what connections are acceptable, local only (default), or +# remote connections as well. Local connections are whose +# originating from the same host which is running the server. +# Remote connections come from other hosts. + +lappend auto_path [file join [file dirname [file dirname [file normalize [info script]]]] modules] + +package require nameserv::server + +namespace eval ::nnsd {} + +proc ::nnsd::ProcessCommandLine {} { + global argv + + # Process the options, perform basic validation. + + while {[llength $argv]} { + set opt [lindex $argv 0] + if {![string match "-*" $opt]} break + + switch -exact -- $opt { + -localonly { + if {[llength $argv] % 2 == 1} Usage + + # Todo: Check boolean + set local [lindex $argv 1] + set argv [lrange $argv 2 end] + + nameserv::server::configure -localonly $local + } + -port { + if {[llength $argv] % 2 == 1} Usage + + # Todo: Check non-zero unsigned short integer + set port [lindex $argv 1] + set argv [lrange $argv 2 end] + + nameserv::server::configure -port $port + } + -debug { + # Undocumented. Activate the logger services provided + # by various packages. + logger::setlevel debug + set argv [lrange $argv 1 end] + } + default { + Usage + } + } + } + + # Additional validation, and extraction of the non-option + # arguments. Of which this application has none. + + if {[llength $argv]} Usage + + return +} + +proc ::nnsd::Usage {} { + global argv0 + puts stderr "$argv0 wrong#args, expected:\ + ?-localonly BOOL? ?-port PORT?" + exit 1 +} + +proc ::nnsd::ArgError {text} { + global argv0 + puts stderr "$argv0: $text" + exit 1 +} + +proc bgerror {args} { + puts stderr $args + puts stderr $::errorInfo + return +} + +# ### ### ### ######### ######### ######### +## Main + +proc ::nnsd::Headline {} { + global argv0 + set p [nameserv::server::cget -port] + set l [expr {[nameserv::server::cget -localonly] + ? "local only" + : "local & remote"}] + + puts "$argv0 [package require nnsd], listening on $p ($l)" + return +} + +proc ::nnsd::Do {} { + global argv0 + + ProcessCommandLine + + nameserv::server::start + Headline + + vwait forever + return +} + +# ### ### ### ######### ######### ######### +## Invoking the functionality. + +if {[catch { + ::nnsd::Do +} msg]} { + puts $::errorInfo + #::nnsd::ArgError $msg +} + +# ### ### ### ######### ######### ######### +exit diff --git a/apps/nnsd.man b/apps/nnsd.man new file mode 100644 index 0000000..28b139a --- /dev/null +++ b/apps/nnsd.man @@ -0,0 +1,91 @@ +[comment {-*- tcl -*- doctools manpage}] +[manpage_begin nnsd n 1.0.1] +[see_also nameserv::common(n)] +[see_also nameserv::server(n)] +[keywords application] +[keywords {name service}] +[keywords server] +[copyright {2007-2008 Andreas Kupries }] +[moddesc {Name service facility}] +[titledesc {Name service facility, Commandline Server Application}] +[category Networking] +[description] +[para] + +Please read [term {Name service facility, introduction}] first. + +[para] + +The application described by this document, [syscmd nns], is a simple +command line server for the nano name service facility provided by the +Tcllib packages [package nameserv], and [package nameserv::server]. + +Beyond that the application's sources also serve as an example of how +to use the server package [package nameserv::server]. + +[para] + +This name service facility has nothing to do with the Internet's +[term {Domain Name System}], otherwise known as [term DNS]. If the +reader is looking for a package dealing with that please see either of +the packages [package dns] and [package resolv], both found in Tcllib +too. + +[subsection {USE CASES}] + +[syscmd nnsd] was written with the following main use case in +mind. + +[para] +[list_begin enumerated] +[enum] +Run a nano name service on some host. + +[list_end] + +[para] + +[subsection {COMMAND LINE}] + +[list_begin definitions] + +[call [cmd nnsd] \ + [opt "[option -localonly] [arg flag]"] \ + [opt "[option -port] [arg port]"]] + +The command configures a server per the specified options and starts +it. The command will not exit on its own, as it keeps the name service +database wholly in memory. The user has to kill it explicitly, either +by sending a a signal, or through the job-control facilities of the +shell in use. + +[para] +The options to configure the name service are explained in section +[sectref OPTIONS]. + +[list_end] + +[subsection OPTIONS] + +This section describes all the options available to the user of the +application + +[para] +[list_begin options] +[opt_def -localonly bool] + +If this option is not specified it defaults to [const true], i.e. +acceptance of only local connections. The server will accept remote +connections, i.e. connections from other hosts, if and only if this +option is configured to [const false]. + +[opt_def -port number] + +If this option is not specified it defaults to [const 38573]. It +specifies the TCP port the server has to listen on for requests. + +[list_end] + +[vset CATEGORY nameserv] +[include ../modules/doctools2base/include/feedback.inc] +[manpage_end] diff --git a/apps/nnslog b/apps/nnslog new file mode 100755 index 0000000..87989eb --- /dev/null +++ b/apps/nnslog @@ -0,0 +1,182 @@ +#! /usr/bin/env tclsh +# -*- tcl -*- + +# @@ Meta Begin +# Application nnslog 1.1 +# Meta platform tcl +# Meta summary Nano Name Service Logger +# Meta description This application connects to a name service demon +# Meta description and then continuously logs all changes (new/removed +# Meta description definitions) to the standard output. It will survive +# Meta description the loss of the nameserver and automatically reconnect +# Meta description and continue when it comes back. +# Meta subject {name service} client log +# Meta require {Tcl 8.4} +# Meta require logger +# Meta require nameserv::auto +# Meta author Andreas Kupries +# Meta license BSD +# @@ Meta End + +package provide nnslog 1.0 + +# nns - Nano Name Service Logger +# === = ======================== +# +# Use cases +# --------- +# +# (1) Continuously monitor a nameservice for changes. +# +# Command syntax +# -------------- +# +# (Ad 1) nnslog ?-host NAME|IP? ?-port PORT? ?-color BOOL? +# +# Monitor a name server. If no port is specified the default +# port 38573 is used to connect to it. If no host is specified +# the default (localhost) is used to connect to it. + +# ### ### ### ######### ######### ######### +## Requirements + +lappend auto_path [file join [file dirname [file dirname \ + [file normalize [info script]]]] modules] + +package require nameserv::auto 0.3 ;# Need auto-restoring search. + +logger::initNamespace ::nnslog +namespace eval ::nnslog { log::setlevel info } + +# ### ### ### ######### ######### ######### +## Process application command line + +proc ::nnslog::ProcessCommandLine {} { + global argv + + # Process the options, perform basic validation. + set xcolor 0 + + if {[llength $argv] < 1} return + + while {[llength $argv]} { + set opt [lindex $argv 0] + if {![string match "-*" $opt]} break + + switch -exact -- $opt { + -host { + if {[llength $argv] < 2} Usage + + set host [lindex $argv 1] + set argv [lrange $argv 2 end] + + nameserv::configure -host $host + } + -port { + if {[llength $argv] < 2} Usage + + # Todo: Check non-zero unsigned short integer + set port [lindex $argv 1] + set argv [lrange $argv 2 end] + + nameserv::configure -port $port + } + -debug { + # Undocumented. Activate the logger services provided + # by various packages. + logger::setlevel debug + set argv [lrange $argv 1 end] + } + default Usage + } + } + + # Additional validation. no arguments should be left over. + if {[llength $argv] > 1} Usage + return +} + +proc ::nnslog::Usage {{sfx {}}} { + global argv0 ; append argv0 $sfx + puts stderr "$argv0 wrong#args, expected: ?-host NAME|IP? ?-port PORT?" + exit 1 +} + +proc ::nnslog::ArgError {text} { + global argv0 + puts stderr "$argv0: $text" + #puts $::errorInfo + exit 1 +} + +# ### ### ### ######### ######### ######### +## Setup a text|graphical report + +proc ::nnslog::My {} { + # Quick access to format the identity of the name service the + # client talks to. + return "[nameserv::auto::cget -host] @[nameserv::auto::cget -port]" +} + +proc ::nnslog::Connection {message args} { + # args = tag event details, ignored + log::info $message + return +} + +proc ::nnslog::MonitorConnection {} { + uevent::bind nameserv lost-connection [list ::nnslog::Connection "Disconnected name service at [My]"] + uevent::bind nameserv re-connection [list ::nnslog::Connection "Reconnected2 name service at [My]"] + return +} + +# ### ### ### ######### ######### ######### +## Main + +proc ::nnslog::Do.search {} { + MonitorConnection + set contents [nameserv::auto::search -continuous *] + $contents configure -command [list ::nnslog::Do.search.change $contents] + + log::info "Logging name service at [My]" + vwait ::forever + # Not reached. + return +} + +namespace eval ::nnslog { + variable map + array set map { + add +++ + remove --- + } +} + +proc ::nnslog::Do.search.change {res type response} { + variable map + + if {$type eq "stop"} { + # Cannot happen for nameserv::auto client, we are free to panic. + $res destroy + log::critical {Bad event 'stop' <=> Lost connection, search closed} + return + } + # Print events ... + foreach {name value} $response { + log::info "$map($type) : [list $name = $value]" + } + return +} + +# ### ### ### ######### ######### ######### +## Invoking the functionality. + +::nnslog::ProcessCommandLine +if {[catch { + ::nnslog::Do.search +} msg]} { + ::nnslog::ArgError $msg +} + +# ### ### ### ######### ######### ######### +exit diff --git a/apps/nnslog.man b/apps/nnslog.man new file mode 100644 index 0000000..91d93d1 --- /dev/null +++ b/apps/nnslog.man @@ -0,0 +1,93 @@ +[comment {-*- tcl -*- doctools manpage}] +[manpage_begin nnslog n 1.0] +[see_also nameserv(n)] +[see_also nameserv::common(n)] +[keywords application] +[keywords client] +[keywords {name service}] +[copyright {2008 Andreas Kupries }] +[moddesc {Name service facility}] +[titledesc {Name service facility, Commandline Logging Client Application}] +[category Networking] +[description] +[para] + +Please read [term {Name service facility, introduction}] first. + +[para] + +The application described by this document, [syscmd nnslog], is a +simple command line client for the nano name service facility provided +by the Tcllib packages [package nameserv], and [package nameserv::server]. + +[para] + +It essentially implements "[syscmd nns] search -continuous *", but +uses a different output formatting. Instead of continuously showing +the current contents of the server in the terminal it simply logs all +received add/remove events to [const stdout]. + +[para] + +This name service facility has nothing to do with the Internet's +[term {Domain Name System}], otherwise known as [term DNS]. If the +reader is looking for a package dealing with that please see either of +the packages [package dns] and [package resolv], both found in Tcllib +too. + +[subsection {USE CASES}] + +[syscmd nnslog] was written with the following main use case in mind. + +[para] +[list_begin enumerated] +[enum] +Monitoring the name service for all changes and logging them in a text +terminal. +[list_end] + +[para] + +[subsection {COMMAND LINE}] + +[list_begin definitions] +[call [cmd nnslog] \ + [opt "[option -host] [arg host]"] \ + [opt "[option -port] [arg port]"]] + +The command connects to the specified name service, sets up a search +for all changes and then prints all received events to stdout, with +each events on its own line. The command will not exit until it is +explicitly terminated by the user. It will especially survive the loss +of the connection to the name service and reestablish the search and +log when the connection is restored. + +[para] +The options to specify the name service will be explained later, in +section [sectref OPTIONS]. + +[list_end] + +[subsection OPTIONS] + +This section describes all the options available to the user of the +application + +[list_begin options] +[opt_def -host name|ipaddress] + +If this option is not specified it defaults to [const localhost]. It +specifies the name or ip-address of the host the name service to talk +to is running on. + +[opt_def -port number] + +If this option is not specified it defaults to [const 38573]. It +specifies the TCP port the name service to talk to is listening on for +requests. + +[list_end] + +[vset CATEGORY nameserv] +[include ../modules/doctools2base/include/feedback.inc] +[manpage_end] diff --git a/apps/page b/apps/page new file mode 100755 index 0000000..e8985fa --- /dev/null +++ b/apps/page @@ -0,0 +1,820 @@ +#! /usr/bin/env tclsh +# -*- tcl -*- + +# @@ Meta Begin +# Application page 1.0 +# Meta platform tcl +# Meta summary Tool for general text transformation +# Meta description While the name is an allusion to parser +# Meta description generation, the modular plugin-based +# Meta description nature of this application allows for +# Meta description any type of text transformation which +# Meta description can be put into a plugin. Still, the +# Meta description plugins coming with Tcllib all deal +# Meta description with parser generation. +# Meta category Processing text files +# Meta subject {parser generation} {text transformation} +# Meta require page::pluginmgr +# Meta require logger +# Meta require struct::matrix +# Meta author Andreas Kupries +# Meta license BSD +# @@ Meta End + +package provide page 1.0 + +lappend auto_path [file join [lindex $tcl_pkgPath end] page] +lappend auto_path [file join [file dirname [file dirname [file normalize [info script]]]] modules] + +#lappend auto_path [file join [file dirname [info script]] .. modules] +#source [file join [file dirname [info script]] .. modules struct tree.tcl] + +# /= +# $Id: page,v 1.3 2011/11/10 21:16:02 andreas_kupries Exp $ +# \= +# +# PAGE - PArser GEnerator | GTT - General Text Transformation +# ==== = ================ + === = =========================== +# +# Use cases +# --------- +# +# (1) Read a grammar specification and write out code implementing a +# parser for that grammar. +# +# (2) As (1), and additionally allow the user to select between a +# number of different backends for writing the results. +# Different forms for the same parser, pretty printing the +# grammar, different parser types (LL vs LR vs ...). Etc. +# +# (3) As (1) and/or (2), and additionally allow the user to select +# the frontend, i.e. the part reading the grammar. This allows +# the use of different input grammars for the specification of +# grammars, i.e. PEG, Yacc, Tyacc, Coco, etc. +# +# Note: For grammars it may be possible to write a unifying +# frontend whose reader grammar is able to recognize many +# different grammar formats without requiring the user to +# specify which format the supplied input is in. +# +# (4) As (1) and/or (2), and/or (3), and additionally allow the user +# to select the transformations to execute on the data provided +# by the frontend before it is given to the backend. At this +# point the parser generator has transformed into a general tool +# for the reading, transformation, and writing of any type of +# structured information. +# +# Note: For the use cases from (1) to (3) the representations returned +# by the frontend, and taken by the backend have to be fully +# specified to ensure that all the parts are working together. +# For the use case (4) it becomes the responsibility of the user +# of the tool to specify frontend, backed, and transformations +# which work properly together. + +# Command syntax +# -------------- +# +# Ad 1) page ?-rd peg|hb|ser? ?-gen tpcp|hb|ser|tree|peg|me|null? ?-min no|reach|use|all? [input|"-" [output|"-"]] +# +# The tool reads the grammar from the specified inputfile, +# transforms it as needed and then writes the resulting parser +# to the outputfile. Usage of "-" for the input signals that the +# grammar should be read from stdin. Analoguously usage of "-" +# for the output signals that the results should be written to +# stdout. +# +# Unspecified parts of the command line default to "-". +# +# Ad 2) Not specified yet. +# Ad 3) S.a. +# Ad 4) S.a. + +# ### ### ### ######### ######### ######### +## Requisites + +package require page::pluginmgr ; # Management of the PAGE plugins. +package require logger ; # Logging subsystem for debugging. +package require struct::matrix ; # Matrices. For statistics report + +# ### ### ### ######### ######### ######### +## Internal data and status + +namespace eval ::page { + # Path to where the output goes to. The name of a file, or "-" for + # stdout. + + variable output "" + + # Path to where the input comes from. The name of a file, or "-" + # for stdin. + + variable input "" + + # Boolean flag. Input processing is timed. + + variable timed 0 + + # Boolean flag. Input processing has progressbar. + + variable progress 0 + + # Reader plugin and options. + + variable rd {} + + # List of transforms and their options. + + variable tr {} + + # Writer plugin an options. + + variable wr {} + + # ### ### ### ######### ######### ######### + + # Statistics. + # The number of characters read from the input. + + variable nread 0 + + # Progress + # Counter for when to print progress notification. + + variable ncount 0 + variable ndelta 100 + + # Collected statistical output. A matrix object, for proper + # columnar formatting when generating the report. And the last + # non-empty string in the first column, to prevent repetition. + + variable statistics {} + variable slast {} + + # ### ### ### ######### ######### ######### +} + +# ### ### ### ######### ######### ######### +## External data and status + +# This tool does not use external files to save and load status +# information. It has no history. If history is required, or data +# beyond the regular input see use cases (2-4). These may allow the +# specification of options specific to the selected frontend, backend, +# and transformations. + +# ### ### ### ######### ######### ######### +## Option processing. +## Validate command line. +## Full command line syntax. +## +# page [input|"-" [output|"-"]] +## + +proc ::page::ProcessCmdline {} { + global argv + + variable output + variable input + + set logging 0 + set n [ProcessArguments] + + # No options at all => Default -c peg. + + if {!$n} { + set argv [linsert $argv 0 -c peg] + ProcessArguments + } + + # Additional validation, and extraction of the non-option + # arguments. + + if {[llength $argv] > 2} Usage + + set input [lindex $argv 0] + set output [lindex $argv 1] + + # Final validation across the whole configuration. + + if {$input eq ""} { + set input - + } elseif {$input ne "-"} { + CheckInputFile $input {Input file} + } + + if {$output eq ""} { + set output - + } elseif {$output ne "-"} { + CheckTheOutput + } + + CheckReader + CheckWriter + CheckTransforms + + if {$logging} { + pluginmgr::log [::logger::init page] + } else { + pluginmgr::log {} + } + return +} + +proc ::page::ProcessArguments {} { + global argv + upvar 1 logging logging + + variable rd {} + variable tr {} + variable wr {} + variable timed 0 + variable progress 0 + + # Process the options, perform basic validation. + + set type {} + set name {} + set options {} + set mode {} + set nextmode {} + + set noptions 0 + + while {[llength $argv]} { + #puts ([join $argv ") ("]) + + set opt [lindex $argv 0] + if {![string match "-*" $opt]} { + # End of options reached. + break + } + incr noptions + Shift + switch -exact -- $opt { + --help - -h - -? {Usage} + --version - -V {Version} + + -v - --verbose - --log {set logging 1} + -q - --quiet - --nolog {set logging 0} + + -P {set progress 1} + -T {set timed 1} + + -D { + # Activate logging in the safe base for better debugging. + ::safe::setLogCmd {puts stderr} + } + + -r - -rd - --reader { + Complete + set type rd + set name [Shift] + set options {} + } + -w - -wr - --writer { + Complete + set type wr + set name [Shift] + set options {} + } + -t - -tr - --transform { + Complete + set type tr + set name [Shift] + if {$mode eq ""} {set mode tail} + set options {} + } + -c - --config { + set configfile [Shift] + if {($configfile eq "") || [catch { + set newargv [pluginmgr::configuration \ + $configfile] + } msg]} { + set msg [string map { + {Unable to locate} + {Unable to locate configuration}} $msg] + + ArgError "Bad argument \"$configfile\".\n\t$msg" + } + + if {[llength $newargv]} { + if {![llength $argv]} { + set argv $newargv + } else { + # linsert argv 0 {expanded}newargv + # -------------- + # linsert options 0 (linsert argv 0) + + set argv [eval [linsert $newargv 0 linsert $argv 0]] + #set argv [linsert $argv 0 {expand}$options] + } + } + } + -p - --prepend {set nextmode head} + -a - --append {set nextmode tail} + + --reset {Complete ; set tr {}} + + default { + # All unknown options go into the + # configuration of the last plugin + # defined (-r, -w, -t) + lappend options $opt [Shift] + } + } + } + + Complete + return $noptions +} + +proc ::page::Shift {} { + upvar 1 argv argv + if {![llength $argv]} {return {}} + set first [lindex $argv 0] + set argv [lrange $argv 1 end] + return $first +} + +proc ::page::Complete {} { + upvar 1 type type name name options options mode mode \ + nextmode nextmode rd rd wr wr tr tr + + #puts "$type $name ($options) \[$mode/$nextmode\]" + + set currentmode $mode + if {$nextmode ne $mode} { + set mode $nextmode + } + + if {$type eq ""} return + + switch -exact -- $type { + rd {set rd [list $name $options]} + wr {set wr [list $name $options]} + tr { + if {$currentmode eq "tail"} { + lappend tr [list $name $options] + } else { + set tr [linsert $tr 0 [list $name $options]] + } + } + } + return +} + +# ### ### ### ######### ######### ######### +## Option processing. +## Helpers: Generation of error messages. +## I. General usage/help message. +## II. Specific messages. +# +# Both write their messages to stderr and then +# exit the application with status 1. +## + +proc ::page::Usage {} { + global argv0 + puts stderr "Expected $argv0 ?options? ?inputpath|- ?outputpath|-??" + + puts stderr " --help, -h, -? This help" + puts stderr " --version, -V, Version information" + puts stderr " -v, --verbose, --log Activate logging in all loaded plugins" + puts stderr " -q, --quiet, --nolog Disable logging in all loaded plugins" + puts stderr " -P Activate progress feedback" + puts stderr " -T Activate collection of timings" + puts stderr " -r reader Specify input plugin" + puts stderr " -rd, --reader See above" + puts stderr " -w writer Specify output plugin" + puts stderr " -wr, --writer See above" + puts stderr " -t transform Specify processing plugin" + puts stderr " -tr, --transform See above" + puts stderr " -p, --prepend Place processing at front" + puts stderr " -a, --append Place processing at end" + puts stderr " --reset Clear list of transforms" + puts stderr " -c file Read configuration file" + puts stderr " --configuration See above." + puts stderr " " + + # --log, --nolog, -v, --verbose, -q, --quiet + + exit 1 +} + +proc ::page::Version {} { + puts stderr {$Id: page,v 1.3 2011/11/10 21:16:02 andreas_kupries Exp $} + exit 1 +} + +proc ::page::ArgError {text} { + global argv0 + puts stderr "$argv0: $text" + exit 1 +} + +proc in {list item} { + expr {([lsearch -exact $list $item] >= 0)} +} + +# ### ### ### ######### ######### ######### +## Check existence and permissions of an input/output file + +proc ::page::CheckReader {} { + variable rd + + if {![llength $rd]} { + ArgError "Input processing module is missing" + } + + foreach {name options} $rd break + + if {[catch { + set po [pluginmgr::reader $name] + } msg]} { + set msg [string map { + {Unable to locate} + {Unable to locate reader}} $msg] + + ArgError "Bad argument \"$name\".\n\t$msg" + } + + set opt {} + foreach {k v} $options { + if {![in $po $k]} { + ArgError "Input plugin $name: Bad option $k" + } + lappend opt $k $v + } + + pluginmgr::rconfigure $opt + return +} + +proc ::page::CheckWriter {} { + variable wr + + if {![llength $wr]} { + ArgError "Output module is missing" + } + + foreach {name options} $wr break + + if {[catch { + set po [pluginmgr::writer $name] + } msg]} { + set msg [string map { + {Unable to locate} + {Unable to locate writer}} $msg] + + ArgError "Bad argument \"$name\".\n\t$msg" + } + + set opt {} + foreach {k v} $options { + if {![in $po $k]} { + ArgError "Output plugin $name: Bad option $k" + } + lappend opt $k $v + } + + pluginmgr::wconfigure $opt + return +} + +proc ::page::CheckTransforms {} { + variable tr + + set idlist {} + foreach t $tr { + foreach {name options} $t break + + if {[catch { + foreach {id po} \ + [pluginmgr::transform $name] \ + break + } msg]} { + set msg [string map { + {Unable to locate} + {Unable to locate transformation}} $msg] + + ArgError "Bad argument \"$name\".\n\t$msg" + } + + set opt {} + foreach {k v} $options { + if {![in $po $k]} { + ArgError "Processing plugin $name: Bad option $k" + } + lappend opt $k $v + } + + pluginmgr::tconfigure $id $opt + lappend idlist $id + } + + set tr $idlist + return +} + +proc ::page::CheckInputFile {f label} { + if {![file exists $f]} { + ArgError "Unable to find $label \"$f\"" + } elseif {![file isfile $f]} { + ArgError "$label \"$f\" is not a file" + } elseif {![file readable $f]} { + ArgError "$label \"$f\" not readable (permission denied)" + } + return +} + +proc ::page::CheckTheOutput {} { + variable output + + set base [file dirname $output] + if {$base eq ""} {set base [pwd]} + + if {![file exists $output]} { + if {![file exists $base]} { + ArgError "Output base path \"$base\" not found" + } + if {![file writable $base]} { + ArgError "Output base path \"$base\" not writable (permission denied)" + } + } elseif {![file writable $output]} { + ArgError "Output path \"$output\" not writable (permission denied)" + } elseif {![file isfile $output]} { + ArgError "Output path \"$output\" is not a file" + } + + return +} + +# ### ### ### ######### ######### ######### +## Commands implementing the main functionality. + +proc ::page::Read {} { + variable input + variable progress + variable timed + variable nread + + set label \[[pluginmgr::rlabel]\] + set msg "" + append msg $label " " + + if {$input eq "-"} { + append msg {Reading grammar from stdin} + set chan stdin + } else { + append msg {Reading grammar from file "} $input {"} + set chan [open $input r] + } + + pluginmgr::report info $msg + + if {!$timed && !$progress} { + # Regular run + set data [pluginmgr::read \ + [list read $chan] [list eof $chan]] + + } elseif {$timed && $progress} { + # Timed, with feedback + if {[pluginmgr::rtimeable]} { + pluginmgr::rtime + set data [pluginmgr::read \ + [list ::page::ReadPT $chan] [list eof $chan] \ + ::page::ReadComplete] + set usec [pluginmgr::rgettime] + } else { + set usec [lindex [time { + set data [pluginmgr::read \ + [list ::page::ReadPT $chan] [list eof $chan] \ + ::page::ReadComplete] + }] 0] ; # {} + } + } elseif {$timed} { + # Timed only + if {[pluginmgr::rtimeable]} { + pluginmgr::rtime + set data [pluginmgr::read \ + [list ::page::ReadT $chan] [list eof $chan]] + set usec [pluginmgr::rgettime] + } else { + set usec [lindex [time { + set data [pluginmgr::read \ + [list ::page::ReadT $chan] [list eof $chan]] + }] 0] ; # {} + } + } else { + # Feedback only ... + set data [pluginmgr::read \ + [list ::page::ReadPT $chan] [list eof $chan] \ + ::page::ReadComplete] + } + + if {$input ne "-"} { + close $chan + } + + if {$timed} { + Statistics $label "Characters:" $nread + Statistics $label "Seconds:" [expr {double($usec)/1000000}] + Statistics $label "Char/Seconds:" [expr {1000000*double($nread)/$usec}] + Statistics $label "Microseconds:" $usec + Statistics $label "Microsec/Char:" [expr {$usec/double($nread)}] + } elseif {$progress} { + pluginmgr::report info " Read $nread [expr {$nread == 1 ? "character" : "characters"}]" + } + return $data +} + +proc ::page::Transform {data} { + variable timed + variable tr + + if {$data eq ""} {return $data} + + if 0 { + pluginmgr::report info ---------------------------- + foreach tid $tr { + set label "\[[pluginmgr::tlabel $tid]\]" + pluginmgr::report info $label + } + pluginmgr::report info ---------------------------- + } + + #puts /($data)/ + + foreach tid $tr { + set label "\[[pluginmgr::tlabel $tid]\]" + + pluginmgr::report info $label + + if {!$timed} { + set data [pluginmgr::transform_do $tid $data] + } else { + if {[pluginmgr::ttimeable $tid]} { + pluginmgr::ttime $tid + set data [pluginmgr::transform_do $tid $data] + set usec [pluginmgr::tgettime $tid] + } else { + set usec [lindex [time { + set data [pluginmgr::transform_do $tid $data] + }] 0]; #{} + } + Statistics $label Seconds: [expr {double($usec)/1000000}] + } + } + return $data +} + +proc ::page::Write {data} { + variable timed + variable output + + if {$data eq ""} {return $data} + + set label \[[pluginmgr::wlabel]\] + set msg "" + append msg $label " " + + if {$output eq "-"} { + append msg {Writing to stdout} + set chan stdout + } else { + append msg {Writing to file "} $output {"} + set chan [open $output w] + } + + pluginmgr::report info $msg + + if {!$timed} { + pluginmgr::write $chan $data + } else { + if {[pluginmgr::wtimeable]} { + pluginmgr::wtime + pluginmgr::write $chan $data + set usec [pluginmgr::wgettime] + } else { + set usec [lindex [time { + pluginmgr::write $chan $data + }] 0]; #{} + } + Statistics $label Seconds: [expr {double($usec)/1000000}] + } + + if {$output ne "-"} { + close $chan + } + return +} + +proc ::page::StatisticsBegin {} { + variable timed + variable statistics + if {!$timed} return + + set statistics [struct::matrix ::page::STAT] + + Statistics _Statistics_________ + return +} + +proc ::page::Statistics {module args} { + variable statistics + variable slast + + set n [expr {1+[llength $args]}] + + if {[$statistics columns] < $n} { + $statistics add columns [expr { + $n - [$statistics columns] + }] ; # {} + } + + if {$module eq $slast} { + set prefix "" + } else { + set prefix $module + set slast $module + } + + $statistics add row [linsert $args 0 $prefix] + return +} + +proc ::page::StatisticsComplete {} { + variable timed + variable statistics + if {!$timed} return + + pluginmgr::report info "" + foreach line [split [$statistics \ + format 2string] \n] { + pluginmgr::report info $line + } + return +} + +# ### ### ### ######### ######### ######### +## Helper commands. + +proc ::page::ReadPT {chan {n {}}} { + variable nread + variable ncount + variable ndelta + + if {$n eq ""} { + set data [read $chan] + } else { + set data [read $chan $n] + } + + set n [string length $data] + incr nread $n + + while {$ncount < $nread} { + puts -nonewline stderr . + flush stderr + incr ncount $ndelta + } + + return $data +} + +proc ::page::ReadComplete {} { + puts stderr "" + flush stderr + return +} + +proc ::page::ReadT {chan {n {}}} { + variable nread + + if {$n eq ""} { + set data [read $chan] + } else { + set data [read $chan $n] + } + + set n [string length $data] + incr nread $n + + return $data +} + +# ### ### ### ######### ######### ######### +## Invoking the functionality. + +if {[catch { + ::page::ProcessCmdline + ::page::StatisticsBegin + ::page::Write [::page::Transform [::page::Read]] + ::page::StatisticsComplete +} msg]} { + puts $::errorInfo + #::page::ArgError $msg +} + +# ### ### ### ######### ######### ######### +exit diff --git a/apps/page.man b/apps/page.man new file mode 100644 index 0000000..bae424d --- /dev/null +++ b/apps/page.man @@ -0,0 +1,467 @@ +[comment {-*- tcl -*- doctools manpage}] +[manpage_begin page n 1.0] +[see_also page::pluginmgr] +[keywords {parser generator}] +[keywords {text processing}] +[copyright {2005 Andreas Kupries }] +[titledesc {Parser Generator}] +[moddesc {Development Tools}] +[category {Page Parser Generator}] +[description] +[para] + +The application described by this document, [syscmd page], is actually +not just a parser generator, as the name implies, but a generic tool +for the execution of arbitrary transformations on texts. + +[para] + +Its genericity comes through the use of [term plugins] for reading, +transforming, and writing data, and the predefined set of plugins +provided by Tcllib is for the generation of memoizing recursive +descent parsers (aka [term {packrat parsers}]) from grammar +specifications ([term {Parsing Expression Grammars}]). + +[para] + +[syscmd page] is written on top of the package + +[package page::pluginmgr], wrapping its functionality into a command +line based application. All the other [package page::*] packages are +plugin and/or supporting packages for the generation of parsers. The +parsers themselves are based on the packages [package grammar::peg], +[package grammar::peg::interp], and [package grammar::mengine]. + +[subsection {COMMAND LINE}] + +[list_begin definitions] + +[call [cmd page] [opt [arg options]...] [opt "[arg input] [opt [arg output]]"]] + +This is general form for calling [syscmd page]. The application will +read the contents of the file [arg input], process them under the +control of the specified [arg options], and then write the result to +the file [arg output]. + +[para] + +If [arg input] is the string [const -] the data to process will be +read from [const stdin] instead of a file. Analogously the result will +be written to [const stdout] instead of a file if [arg output] is the +string [const -]. A missing output or input specification causes the +application to assume [const -]. + +[para] + +The detailed specifications of the recognized [arg options] are +provided in section [sectref OPTIONS]. + +[list_begin arguments] +[arg_def path input in] + +This argument specifies the path to the file to be processed by the +application, or [const -]. The last value causes the application to +read the text from [const stdin]. Otherwise it has to exist, and be +readable. If the argument is missing [const -] is assumed. + +[arg_def path output in] + +This argument specifies where to write the generated text. It can be +the path to a file, or [const -]. The last value causes the +application to write the generated documented to [const stdout]. + +[para] + +If the file [arg output] does not exist then +[lb]file dirname $output[rb] has to exist and must be a writable +directory, as the application will create the fileto write to. + +[para] + +If the argument is missing [const -] is assumed. + +[list_end] +[list_end] + +[subsection OPERATION] + +... reading ... transforming ... writing - plugins - pipeline ... + +[subsection OPTIONS] + +This section describes all the options available to the user of the +application. Options are always processed in order. I.e. of both +[option --help] and [option --version] are specified the option +encountered first has precedence. + +[para] + +Unknown options specified before any of the options [option -rd], +[option -wr], or [option -tr] will cause processing to abort with an +error. Unknown options coming in between these options, or after the +last of them are assumed to always take a single argument and are +associated with the last plugin option coming before them. They will +be checked after all the relevant plugins, and thus the options they +understand, are known. I.e. such unknown options cause error if and +only if the plugin option they are associated with does not understand +them, and was not superceded by a plugin option coming after. + +[para] + +Default options are used if and only if the command line did not +contain any options at all. They will set the application up as a +PEG-based parser generator. The exact list of options is + +[para] +[example {-c peg}] +[para] + +And now the recognized options and their arguments, if they have any: + +[para] +[list_begin options] + +[opt_def --help] +[opt_def -h] +[opt_def -?] + +When one of these options is found on the command line all arguments +coming before or after are ignored. The application will print a short +description of the recognized options and exit. + +[opt_def --version] +[opt_def -V] + +When one of these options is found on the command line all arguments +coming before or after are ignored. The application will print its +own revision and exit. + +[opt_def -P] + +This option signals the application to activate visual feedback while +reading the input. + +[opt_def -T] + +This option signals the application to collect statistics while +reading the input and to print them after reading has completed, +before processing started. + +[opt_def -D] + +This option signals the application to activate logging in the Safe +base, for the debugging of problems with plugins. + +[opt_def -r parser] +[opt_def -rd parser] +[opt_def --reader parser] + +These options specify the plugin the application has to use for +reading the [arg input]. If the options are used multiple times the +last one will be used. + +[opt_def -w generator] +[opt_def -wr generator] +[opt_def --writer generator] + +These options specify the plugin the application has to use for +generating and writing the final [arg output]. If the options are used +multiple times the last one will be used. + +[opt_def -t process] +[opt_def -tr process] +[opt_def --transform process] + +These options specify a plugin to run on the input. In contrast to +readers and writers each use will [emph not] supersede previous +uses, but add each chosen plugin to a list of transformations, either +at the front, or the end, per the last seen use of either option +[option -p] or [option -a]. The initial default is to append the new +transformations. + +[opt_def -a] +[opt_def --append] + +These options signal the application that all following +transformations should be added at the end of the list of +transformations. + +[opt_def -p] +[opt_def --prepend] + +These options signal the application that all following +transformations should be added at the beginning of the list of +transformations. + +[opt_def --reset] + +This option signals the application to clear the list of +transformations. This is necessary to wipe out the default +transformations used. + +[opt_def -c file] +[opt_def --configuration file] + +This option causes the application to load a configuration file and/or +plugin. This is a plugin which in essence provides a pre-defined set +of commandline options. They are processed exactly as if they have +been specified in place of the option and its arguments. This means +that unknown options found at the beginning of the configuration file +are associated with the last plugin, even if that plugin was specified +before the configuration file itself. Conversely, unknown options +coming after the configuration file can be associated with a plugin +specified in the file. + +[para] + +If the argument is a file which cannot be loaded as a plugin the +application will assume that its contents are a list of options and +their arguments, separated by space, tabs, and newlines. Options and +argumentes containing spaces can be quoted via double-quotes (") and +quotes ('). The quote character can be specified within in a quoted +string by doubling it. Newlines in a quoted string are accepted as is. + +[comment {"}] +[list_end] + +[subsection PLUGINS] + +[syscmd page] makes use of four different types of plugins, namely: +readers, writers, transformations, and configurations. Here we provide +only a basic introduction on how to use them from [syscmd page]. The +exact APIs provided to and expected from the plugins can be found in +the documentation for [package page::pluginmgr], for those who wish to +write their own plugins. + +[para] + +Plugins are specified as arguments to the options [option -r], +[option -w], [option -t], [option -c], and their equivalent longer +forms. See the section [sectref OPTIONS] for reference. + +[para] + +Each such argument will be first treated as the name of a file and +this file is loaded as the plugin. If however there is no file with +that name, then it will be translated into the name of a package, and +this package is then loaded. For each type of plugins the package +management searches not only the regular paths, but a set application- +and type-specific paths as well. Please see the section +[sectref {PLUGIN LOCATIONS}] for a listing of all paths and their +sources. + +[para] + +[list_begin definitions] +[def "[option -c] [arg name]"] + +Configurations. The name of the package for the plugin [arg name] is +"page::config::[arg name]". + +[para] +We have one predefined plugin: + +[list_begin definitions] +[def [emph peg]] + +It sets the application up as a parser generator accepting parsing +expression grammars and writing a packrat parser in Tcl. The actual +arguments it specifies are: + +[para] +[example { + --reset + --append + --reader peg + --transform reach + --transform use + --writer me +}] +[para] + +[list_end] + +[def "[option -r] [arg name]"] + +Readers. The name of the package for the plugin [arg name] is +"page::reader::[arg name]". + +[para] +We have five predefined plugins: + +[list_begin definitions] +[def [emph peg]] + +Interprets the input as a parsing expression grammar ([term PEG]) and +generates a tree representation for it. Both the syntax of PEGs and +the structure of the tree representation are explained in their own +manpages. + +[def [emph hb]] + +Interprets the input as Tcl code as generated by the writer plugin +[emph hb] and generates its tree representation. + +[def [emph ser]] + +Interprets the input as the serialization of a PEG, as generated by +the writer plugin [emph ser], using the package +[package grammar::peg]. + +[def [emph lemon]] + +Interprets the input as a grammar specification as understood by +Richard Hipp's [term LEMON] parser generator and generates a tree +representation for it. Both the input syntax and the structure of the +tree representation are explained in their own manpages. + +[def [emph treeser]] + +Interprets the input as the serialization of a +[package struct::tree]. It is validated as such, +but nothing else. It is [emph not] assumed to +be the tree representation of a grammar. +[list_end] + +[def "[option -w] [arg name]"] + +Writers. The name of the package for the plugin [arg name] is +"page::writer::[arg name]". + +[para] +We have eight predefined plugins: + +[list_begin definitions] + +[def [emph identity]] + +Simply writes the incoming data as it is, without making any +changes. This is good for inspecting the raw result of a reader or +transformation. + +[def [emph null]] + +Generates nothing, and ignores the incoming data structure. + +[def [emph tree]] + +Assumes that the incoming data structure is a [package struct::tree] +and generates an indented textual representation of all nodes, their +parental relationships, and their attribute information. + +[def [emph peg]] + +Assumes that the incoming data structure is a tree representation of a +[term PEG] or other other grammar and writes it out as a PEG. The +result is nicely formatted and partially simplified (strings as +sequences of characters). A pretty printer in essence, but can also be +used to obtain a canonical representation of the input grammar. + +[def [emph tpc]] + +Assumes that the incoming data structure is a tree representation of a +[term PEG] or other other grammar and writes out Tcl code defining a +package which defines a [package grammar::peg] object containing the +grammar when it is loaded into an interpreter. + +[def [emph hb]] + +This is like the writer plugin [emph tpc], but it writes only the +statements which define stat expression and grammar rules. The code +making the result a package is left out. + +[def [emph ser]] + +Assumes that the incoming data structure is a tree representation of a +[term PEG] or other other grammar, transforms it internally into a +[package grammar::peg] object and writes out its serialization. + +[def [emph me]] + +Assumes that the incoming data structure is a tree representation of a +[term PEG] or other other grammar and writes out Tcl code defining a +package which implements a memoizing recursive descent parser based on +the match engine (ME) provided by the package [package grammar::mengine]. + +[list_end] + +[def "[option -t] [arg name]"] + +Transformers. The name of the package for the plugin [arg name] is +"page::transform::[arg name]". + +[para] +We have two predefined plugins: + +[list_begin definitions] +[def [emph reach]] + +Assumes that the incoming data structure is a tree representation of a +[term PEG] or other other grammar. It determines which nonterminal +symbols and rules are reachable from start-symbol/expression. All +nonterminal symbols which were not reached are removed. + +[def [emph use]] + +Assumes that the incoming data structure is a tree representation of a +[term PEG] or other other grammar. It determines which nonterminal +symbols and rules are able to generate a [emph finite] sequences of +terminal symbols (in the sense for a Context Free Grammar). All +nonterminal symbols which were not deemed useful in this sense are +removed. + +[list_end] +[list_end] + +[subsection {PLUGIN LOCATIONS}] + +The application-specific paths searched by [syscmd page] either are, +or come from: + +[para] + +[list_begin enumerated] +[enum] The directory [file ~/.page/plugin] +[enum] The environment variable [term PAGE_PLUGINS] +[enum] The registry entry [term "HKEY_LOCAL_MACHINE\\SOFTWARE\\PAGE\\PLUGINS"] +[enum] The registry entry [term "HKEY_CURRENT_USER\\SOFTWARE\\PAGE\\PLUGINS"] +[list_end] + +[para] + +The type-specific paths searched by [syscmd page] either are, or come +from: + +[para] +[list_begin enumerated] +[enum] The directory [file ~/.page/plugin/] +[enum] The environment variable [term PAGE__PLUGINS] +[enum] The registry entry [term "HKEY_LOCAL_MACHINE\\SOFTWARE\\PAGE\\\\PLUGINS"] +[enum] The registry entry [term "HKEY_CURRENT_USER\\SOFTWARE\\PAGE\\\\PLUGINS"] +[list_end] + +[para] + +Where the placeholder [term ] is always one of the values below, +properly capitalized. + +[list_begin enumerated] +[enum] reader +[enum] writer +[enum] transform +[enum] config +[list_end] +[para] + +The registry entries are specific to the Windows(tm) platform, all +other platforms will ignore them. + +[para] + +The contents of both environment variables and registry entries are +interpreted as a list of paths, with the elements separated by either +colon (Unix), or semicolon (Windows). + +[vset CATEGORY page] +[include ../modules/doctools2base/include/feedback.inc] +[manpage_end] diff --git a/apps/pt b/apps/pt new file mode 100755 index 0000000..7389604 --- /dev/null +++ b/apps/pt @@ -0,0 +1,156 @@ +#!/usr/bin/env tclsh +# -*- tcl -*- + +package require Tcl 8.5 +# activate commands below for execution from within the pt directory +set self [file normalize [info script]] +set selfdir [file dirname $self] +lappend auto_path $selfdir [file dirname $selfdir] +# When debugging package loading trouble, show the search paths +#puts [join $auto_path \n] + +# # ## ### ##### ######## ############# ##################### + +package require pt::pgen 1.0.3 +package require pt::util +package require fileutil +package require try + +namespace eval ::pt::app { + namespace export generate help + namespace ensemble create +} + +# # ## ### ##### ######## ############# ##################### + +proc main {} { + global argv argv0 errorInfo + if {![llength $argv]} { lappend argv help } + if {[catch { + set status [::pt::app {*}$argv] + } msg]} { + set elines [split $errorInfo \n] + if {[llength $elines] == 3} { + if {[string match *unknown* $msg]} { + #puts stderr "$argv0 $msg" + ::pt::app help + exit 1 + } elseif {[string match {*wrong # args*} $msg]} { + #puts $msg + # Extracting the command name from the error message, + # because there a prefix will have been expanded to + # the actual command. OTOH would be a + # possible prefix, without a properly matching topic. + puts stderr Usage: + ::pt::app help [lindex $msg 5 1] + exit 1 + } + } + set prefix {INTERNAL ERROR :: } + puts ${prefix}[join $elines \n$prefix] + exit 1 + } + exit $status +} + +# # ## ### ##### ######## ############# ##################### + +proc ::pt::app::helpHelp {} { + return { + @ help ?TOPIC? + + Provides general help, or specific to the given topic. + } +} +proc ::pt::app::help {{topic {}}} { + global argv0 + if {[llength [info level 0]] == 1} { + puts stderr "Usage: $argv0 command ...\n\nKnown commands:\n" + foreach topic [Topics] { + ::pt::app help $topic + } + } elseif {$topic ni [Topics]} { + puts stderr "$argv0: Unknown help topic '$topic'" + puts stderr "\tUse one of [linsert [join [Topics] {, }] end-1 or]" + puts stderr "" + } else { + puts stderr \t[join [split [string map [list @ $argv0] [string trim [::pt::app::${topic}Help]]] \n] \n\t] + puts stderr "" + } + return 0 +} + +proc ::pt::app::Topics {} { + namespace eval ::TEMP { namespace import ::pt::app::* } + set commands [info commands ::TEMP::*] + namespace delete ::TEMP + + set res {} + foreach c $commands { + lappend res [regsub ^::TEMP:: $c {}] + } + proc ::pt::app::Topics {} [list return $res] + return $res +} + +# # ## ### ##### ######## ############# ##################### + +proc ::pt::app::generateHelp {} { + return { + @ generate PFORMAT ?-option value...? PFILE INFORMAT GFILE + + Generate data in format PFORMAT and write it to PFILE. Read + the grammar to be processed from GFILE (assuming the format + GFORMAT). Use any options to configure the generator. The are + dependent on PFORMAT. + } +} +proc ::pt::app::generate {args} { + # args = parserformat ?...? parserfile grammarformat grammarfile + + if {[llength $args] < 4} { + # Just enough that the help code can extract the method name + return -code error "wrong # args, should be \"@ generate ...\"" + } + + set args [lassign $args parserformat] + lassign [lrange $args end-2 end] \ + parserfile grammarformat grammarfile + set args [Template [lrange $args 0 end-3]] + lappend args -file $grammarfile + + puts "Reading $grammarformat $grammarfile ..." + set grammar [fileutil::cat $grammarfile] + + puts "Generating a $parserformat parser ..." + try { + set parser [::pt::pgen $grammarformat $grammar $parserformat {*}$args] + } trap {PT RDE SYNTAX} {e o} { + puts [pt::util error2readable $e $grammar] + return 1 + } + + puts "Saving to $parserfile ..." + fileutil::writeFile $parserfile $parser + + puts OK + return 0 +} + +# Lift template specifications from file paths to the file's contents. + +proc ::pt::app::Template {optiondict} { + set res {} + foreach {option value} $optiondict { + if {$option eq "-template"} { + set value [fileutil::cat $value] + } + lappend res $option $value + } + return $res +} + +# # ## ### ##### ######## ############# ##################### + +main +exit diff --git a/apps/pt.man b/apps/pt.man new file mode 100644 index 0000000..577b625 --- /dev/null +++ b/apps/pt.man @@ -0,0 +1,242 @@ +[comment {-*- text -*- doctools manpage}] +[manpage_begin pt n 1] +[include ../modules/pt/include/module.inc] +[titledesc {Parser Tools Application}] +[description] +[include ../modules/pt/include/ref_intro.inc] + +This document describes [cmd pt], the main application of the module, +a [term {parser generator}]. Its intended audience are people who wish +to create a parser for some language of theirs. Should you wish to +modify the application instead, please see the section about the +application's [sectref {Internals}] for the basic references. + +[para] + +It resides in the User Application Layer of Parser Tools. +[para][image arch_user_app][para] + +[section {Command Line}] + +[list_begin definitions] + +[call [cmd pt] [method generate] \ + [arg resultformat] [opt [arg options...]] [arg resultfile] \ + [arg inputformat] [arg inputfile]] + +This sub-command of the application reads the parsing expression +grammar stored in the [arg inputfile] in the format [arg inputformat], +converts it to the [arg resultformat] under the direction of the +(format-specific) set of options specified by the user and stores the +result in the [arg resultfile]. + +[para] + +The [arg inputfile] has to exist, while the [arg resultfile] may be +created, overwriting any pre-existing content of the file. Any missing +directory in the path to the [arg resultfile] will be created as well. + +[para] + +The exact form of the result for, and the set of options supported by +the known result-formats, are explained in the upcoming sections of +this document, with the list below providing an index mapping between +format name and its associated section. In alphabetical order: + +[para] +[list_begin definitions] +[def [const c]] A [term resultformat]. See section [sectref {C Parser}]. +[def [const container]] A [term resultformat]. See section [sectref {Grammar Container}]. +[def [const critcl]] A [term resultformat]. See section [sectref {C Parser Embedded In Tcl}]. +[def [const json]] A [term input]- and [term resultformat]. See section [sectref {JSON Grammar Exchange}]. +[def [const oo]] A [term resultformat]. See section [sectref {TclOO Parser}]. +[def [const peg]] A [term input]- and [term resultformat]. See section [sectref {PEG Specification Language}]. +[def [const snit]] A [term resultformat]. See section [sectref {Snit Parser}]. +[list_end] +[list_end] + +Of the seven possible results four are parsers outright ([const c], +[const critcl], [const oo], and [const snit]), one ([const container]) +provides code which can be used in conjunction with a generic parser +(also known as a grammar interpreter), and the last two ([const json] +and [const peg]) are doing double-duty as input formats, allowing the +transformation of grammars for exchange, reformatting, and the like. + +[para] + +The created parsers fall into three categories: +[include ../modules/pt/include/gen_options.inc] + +[list_begin definitions] + +[def [const {Specialized parsers implemented in C}]] + +The fastest parsers are created when using the result formats +[const c] and [const critcl]. The first returns the raw C code for the +parser, while the latter wraps it into a Tcl package using +[term CriTcl]. + +[para] + +This makes the latter much easier to use than the former. On the other +hand, the former can be adapted to the users' requirements through a +multitude of options, allowing for things like usage of the parser +outside of a Tcl environment, something the [const critcl] format +doesn't support. As such the [const c] format is meant for more +advanced users, or users with special needs. + +[para] + +A disadvantage of all the parsers in this section is the need to run +them through a C compiler to make them actually executable. This is +not something everyone has the necessary tools for. The parsers in the +next section are for people under such restrictions. + +[def [const {Specialized parsers implemented in Tcl}]] + +As the parsers in this section are implemented in Tcl they are quite a +bit slower than anything from the previous section. On the other hand +this allows them to be used in pure-Tcl environments, or in +environments which allow only a limited set of binary packages. In the +latter case it will be advantageous to lobby for the inclusion of the +C-based runtime support (notes below) into the environment to reduce +the impact of Tcl's on the speed of these parsers. + +[para] + +The relevant formats are [const snit] and [const oo]. Both place their +result into a Tcl package containing a [cmd snit::type], or TclOO +[cmd class] respectively. + +[para] + +Of the supporting runtime, which is the package [package pt::rde], the +user has to know nothing but that it does exist and that the parsers +are dependent on it. Knowledge of the API exported by the runtime for +the parsers' consumption is [emph not] required by the parsers' users. + +[def [const {Interpreted parsing implemented in Tcl}]] + +The last category, grammar interpretation. This means that an +interpreter for parsing expression grammars takes the description of +the grammar to parse input for, and uses it guide the parsing process. + +This is the slowest of the available options, as the interpreter has +to continually run through the configured grammar, whereas the +specialized parsers of the previous sections have the relevant +knowledge about the grammar baked into them. + +[para] + +The only places where using interpretation make sense is where the +grammar for some input may be changed interactively by the user, as +the interpretation allows for quick turnaround after each change, +whereas the previous methods require the generation of a whole new +parser, which is not as fast. + +On the other hand, wherever the grammar to use is fixed, the previous +methods are much more advantageous as the time to generate the parser +is minuscule compared to the time the parser code is in use. + +[para] + +The relevant result format is [const container]. + +It (quickly) generates grammar descriptions (instead of a full parser) +which match the API expected by ParserTools' grammar interpreter. + +The latter is provided by the package [package pt::peg::interp]. + +[list_end] + +All the parsers generated by [const critcl], [const snit], and +[const oo], and the grammar interpreter share a common API for access +to the actual parsing functionality, making them all +plug-compatible. + +It is described in the [manpage {Parser API}] specification document. + +[section {PEG Specification Language}] +[include ../modules/pt/include/format/whatis_peg.inc] +[para] + +For either an introduction to or the formal specification of the +language, please go and read the [manpage {PEG Language Tutorial}]. + +[para] + +When used as a result-format this format supports the following +options: + +[include ../modules/pt/include/format/options_peg.inc] + +[section {JSON Grammar Exchange}] +[include ../modules/pt/include/format/whatis_json.inc] +[para] + +For the formal specification of the JSON grammar exchange format, +please go and read [manpage {The JSON Grammar Exchange Format}]. + +[para] + +When used as a result-format this format supports the following +options: + +[include ../modules/pt/include/format/options_json.inc] + +[section {C Parser Embedded In Tcl}] +[include ../modules/pt/include/format/whatis_cparam_critcl.inc] +[para] + +This result-format supports the following options: + +[include ../modules/pt/include/format/options_cparam_critcl.inc] + +[section {C Parser}] +[include ../modules/pt/include/format/whatis_cparam_rawc.inc] +[para] + +This result-format supports the following options: + +[include ../modules/pt/include/format/options_cparam_rawc.inc] + +[section {Snit Parser}] +[include ../modules/pt/include/format/whatis_tclparam_snit.inc] +[para] + +This result-format supports the following options: + +[include ../modules/pt/include/format/options_tclparam_snit.inc] + +[section {TclOO Parser}] +[include ../modules/pt/include/format/whatis_tclparam_oo.inc] +[para] + +This result-format supports the following options: + +[include ../modules/pt/include/format/options_tclparam_oo.inc] + +[section {Grammar Container}] +[include ../modules/pt/include/format/whatis_container.inc] +[para] + +This result-format supports the following options: + +[include ../modules/pt/include/format/options_container.inc] + +[section Example] +[vset MODE app][include ../modules/pt/include/example/full.inc] + +[section Internals] + +This section is intended for users of the application which wish to +modify or extend it. Users only interested in the generation of +parsers can ignore it. + +[para] + +The main functionality of the application is encapsulated in the +package [package pt::pgen]. Please read it for more information. + +[include ../modules/pt/include/feedback.inc] +[manpage_end] diff --git a/apps/tcldocstrip b/apps/tcldocstrip new file mode 100755 index 0000000..6d73425 --- /dev/null +++ b/apps/tcldocstrip @@ -0,0 +1,537 @@ +#! /usr/bin/env tclsh +# -*- tcl -*- + +# @@ Meta Begin +# Application tcldocstrip 1.0.1 +# Meta platform tcl +# Meta summary TeX's docstrip written in Tcl +# Meta description This application is an implementation +# Meta description of TeX's docstrip application in Tcl. +# Meta description It provides commands to convert a docstrip +# Meta description weave according to a set of guards, to +# Meta description assemble an output based on several sets +# Meta description guards and input files, i.e. of a document +# Meta description spread over several inputs and/or guards, +# Meta description and to extract and list all unique guard +# Meta description expressions found in a document. +# Meta category Processing docstrip documents +# Meta subject docstrip TeX LaTeX +# Meta require docstrip +# Meta author Andreas Kupries +# Meta license BSD +# @@ Meta End + +package provide tcldocstrip 1.0.1 + +# TODO __________________________ +# Add handling of pre- and postambles. + +# tcldocstrip - Docstrip written in Tcl +# =========== = ======================= +# +# Use cases +# --------- +# +# (-) Providing access to the functionality of the tcllib/docstrip +# package from within shell and other scripts which are not Tcl. +# +# (1) Conversion of a single input file according to the listed +# guards into the stripped output. +# +# This handles the most simple case of a set of guards +# specifying a single document found in a single input file. +# +# (2) Stitching, or the assembly of an output from several sets of +# guards, in a specific order, and possibly from different +# files. This is the second common case. One document spread +# over several inputs, and/or spread over different guard sets. +# +# (3) Extraction and listing of all the unique guard expressions and +# guards used within a document to help a person which did not +# author the document in question in familiarizing itself with +# it. +# +# Command syntax +# -------------- +# +# Ad 1) tcldocstrip output|"-" ?options? input ?guards? +# +# Converts the input file according to the specified guards and +# options. The result is written to the named output. Usage of +# the string "-" as output signals that the result should be +# written to stdout. The guards are document-specific and have +# to be known to the caller. The options are the same as +# accepted by docstrip::extract. +# +# -metaprefix string +# -onerror mode {ignore,puts,throw} +# -trimlines bool +# +# Additional options understood are +# +# -premamble text +# -postamble text +# -nopremamble +# -nopostamble +# +# These are processed by the application itself. The -no*amble +# options deactivate pre- and postambles altogether, whereas the +# -*amble specify the _user_ part of pre- and postambles. This +# part can be empty, in that case only the standard parts are +# shown. This is the default. +# +# Ad 2) tcldocstrip ?options? output|"-" (?options? input|"." guards)... +# +# Extracts data from the various input files, according to the +# specified options and guards, and writes the result to the +# given output, in the order of their specification on the +# command line. Options specified before the output are global +# settings, whereas the options specified before each input are +# valid only just for this input file. Unspecified values are +# taken from the global settings. As in (1) "-" as output causes +# the application to write to stdout. Using "." for an input +# file signals that the last input file should be used +# again. This enables the assembly of the output from one input +# file using multiple and different sets of guards. +# +# Ad 3) tcldocstrip -guards input +# +# Determines the guards, and unique guard expressions used +# within the input document. The found strings are written to +# stdout, one string per line. +# + +lappend auto_path [file join [file dirname [file dirname [info script]]] modules] +package require docstrip + +# ### ### ### ######### ######### ######### +## Internal data and status + +namespace eval ::tcldocstrip { + + # List of global options and their arguments found in the command + # line. No checking was done on them, they are simply passed to + # the extraction command. + + variable options {} + + # List of input specifications. Each element is a list specifying + # the extraction options, input file, and guard set, in this + # order. + + variable stitch {} + + # Name of the file to write to. "-" signals that output has to be + # written to stdout. + + variable output {} + + # Mode of operation: Conversion, or guard retrieval + + variable mode Extract + + # The input file for guard retrieval mode. + + variable input {} + + # Standard preamble to preambles + + variable preamble {} + append preamble \n + append preamble "This is file `@output@'," \n + append preamble "generated with the tcldocstrip utility." \n + append preamble \n + append preamble "The original source files were:" \n + append preamble \n + append preamble "@input@ (with options: `@guards@')" \n + append preamble \n + + # Standard postamble to postambles + + variable postamble {} + append postamble \n + append postamble \n + append postamble "End of file `@output@'." + + # Default values for the options which are relevant to the + # application itself and thus have to be defined always. + # They are processed as global options, as part of argv. + + variable defaults {-metaprefix {%} -preamble {} -postamble {}} +} + +# ### ### ### ######### ######### ######### +## External data and status +# +## This tool does not depend on external data and/or status. + +# ### ### ### ######### ######### ######### +## Option processing. +## Validate command line. +## Full command line syntax. +## +# tcldocstrip ?-option value...? input ?guard...? +## + +proc ::tcldocstrip::processCmdline {} { + global argv + + variable defaults + variable preamble + variable postamble + variable options + variable stitch + variable output + variable input + variable mode + + # Process the options, perform basic validation. + + set optbuf {} + set stitchbuf {} + set get output + + if {![llength $argv]} { + set argv $defaults + } else { + set argv [eval [linsert $argv 0 linsert $defaults end]] + } + + while {[llength $argv]} { + set opt [lindex $argv 0] + if {($opt eq "-") || ![string match "-*" $opt]} { + # Non option state machine. Output first. Then input and + # guards alternating. + + set argv [lrange $argv 1 end] + switch -exact -- $get { + output { + set output $opt + set get input + } + input { + lappend stitchbuf $optbuf $opt + set optbuf {} + set get guards + } + guards { + lappend stitchbuf $opt + set get input + lappend stitch $stitchbuf + set stitchbuf {} + } + } + continue + } + + switch -exact -- $opt { + -guards { + if { + ($get ne "output") || + ([llength $argv] != 2) + } Usage + + set mode Guards + set input [lindex $argv 1] + break + } + -nopreamble - + -nopostamble { + set o -[string range $opt 3 end] + if {$get eq "output"} { + lappend options $o "" + } else { + lappend optbuf $o "" + } + } + -preamble { + set val $preamble[lindex $argv 1] + if {$get eq "output"} { + lappend options $opt $val + } else { + lappend optbuf $opt $val + } + set argv [lrange $argv 2 end] + } + -postamble { + set val [lindex $argv 1]$postamble + if {$get eq "output"} { + lappend options $opt $val + } else { + lappend optbuf $opt $val + } + set argv [lrange $argv 2 end] + } + default { + set val [lindex $argv 1] + if {$get eq "output"} { + lappend options $opt $val + } else { + lappend optbuf $opt $val + } + + set argv [lrange $argv 2 end] + } + } + } + + if {$get eq "guards"} { + # Complete last input spec, may have no guards. + lappend stitchbuf {} + lappend stitch $stitchbuf + set stitchbuf {} + } + + # Additional validation. + + if {$mode eq "Guards"} { + CheckInput $input {Input path} + return + } + + if {![llength $stitch]} { + Usage + } + + set first 1 + foreach in $stitch { + foreach {o i g} $in break + if {$first || ($i ne ".")} { + # First input file must not be ".". + CheckInput $i {Input path} + } + set first 0 + } + + CheckTheOutput + return +} + +# ### ### ### ######### ######### ######### +## Option processing. +## Helpers: Generation of error messages. +## I. General usage/help message. +## II. Specific messages. +# +# Both write their messages to stderr and then +# exit the application with status 1. +## + +proc ::tcldocstrip::Usage {} { + global argv0 + puts stderr "$argv0: ?options? output (?options? input guards)..." + puts stderr "$argv0: -guards input" + exit 1 +} + +proc ::tcldocstrip::ArgError {text} { + global argv0 + puts stderr "$argv0: $text" + exit 1 +} + +proc in {list item} { + expr {([lsearch -exact $list $item] >= 0)} +} + +# ### ### ### ######### ######### ######### +## Check existence and permissions of an input/output file or +## directory. + +proc ::tcldocstrip::CheckInput {f label} { + if {![file exists $f]} { + ArgError "Unable to find $label \"$f\"" + } elseif {![file readable $f]} { + ArgError "$label \"$f\" not readable (permission denied)" + } elseif {![file isfile $f]} { + ArgError "$label \"$f\" is not a file" + } + return +} + +proc ::tcldocstrip::CheckTheOutput {} { + variable output + + if {$output eq ""} { + ArgError "No output path specified" + } elseif {$output eq "-"} { + # Stdout. This is ok. + return + } + + set base [file dirname $output] + if {[string equal $base ""]} {set base [pwd]} + + if {![file exists $output]} { + if {![file exists $base]} { + ArgError "Output base path \"$base\" not found" + } + if {![file writable $base]} { + ArgError "Output base path \"$base\" not writable (permission denied)" + } + } elseif {![file writable $output]} { + ArgError "Output path \"$output\" not writable (permission denied)" + } elseif {![file isfile $output]} { + ArgError "Output path \"$output\" is not a file" + } + return +} + +# ### ### ### ######### ######### ######### +## Helper commands. File reading and writing. + +proc ::tcldocstrip::Get {f} { + variable data + if {[info exists data($f)]} {return $data($f)} + return [set data($f) [read [set in [open $f r]]][close $in]] +} + +proc ::tcldocstrip::Write {f data} { + puts -nonewline [set out [open $f w]] $data + close $out + return +} + +proc ::tcldocstrip::WriteStdout {data} { + puts -nonewline stdout $data + return +} + +# ### ### ### ######### ######### ######### +## Helper commands. Guard extraction. + +proc ::tcldocstrip::Guards {text} { + array set g {} + set verbatim 0 + set verbtag {} + foreach line [split $text \n] { + if {$verbatim} { + # End of verbatim mode + if {$line eq $verbtag} {set verbatim 0} + continue + } + switch -glob -- $line { + %<<* { + # Start of verbatim mode. + set verbatim 1 + set verbtag %[string range $line 3 end] + continue + } + %<* { + if {![regexp -- {^%<([*/+-]?)([^>]*)>(.*)$} \ + $line --> modifier expression line]} { + # Malformed guard. FUTURE Handle via -onerror. For now: ignore. + continue + } + # Remember the guard. Hashtable ensures that + # duplicates are removed automatically. + set g($expression) . + } + default {continue} + } + } + return [array names g] +} + + +# ### ### ### ######### ######### ######### +## Configuation phase, validate command line. + +::tcldocstrip::processCmdline + +# ### ### ### ######### ######### ######### +## Commands implementing the main functionality. + +proc ::tcldocstrip::Do.Extract {} { + variable stitch + variable output + variable options + + set text "" + + foreach in $stitch { + foreach {opt input guards} $in break + + # Merge defaults, global and local options, then filch the + # options handled in the application. + + unset -nocomplain o + array set o $options + array set o $opt + + set pre "" + if {[info exists o(-preamble)]} { + set pre $o(-preamble) + unset o(-preamble) + } + set post "" + if {[info exists o(-postamble)]} { + set post $o(-postamble) + unset o(-postamble) + } + + set opt [array get o] + set c $o(-metaprefix) + + set pmap [list \ + @output@ $output \ + @input@ $input \ + @guards@ $guards \ + ] + + if {$pre ne ""} { + append text $c $c " " [join [split [string map $pmap $pre] \n] "\n$c$c "] + } + + append text [eval [linsert $opt 0 docstrip::extract [Get $input] $guards]] + + if {$post ne ""} { + append text $c $c " " [join [split [string map $pmap $post] \n] "\n$c$c "] + } + } + + if {$output eq "-"} { + WriteStdout $text + } else { + Write $output $text + } + return +} + +proc ::tcldocstrip::Do.Guards {} { + variable input + + WriteStdout [join [lsort [Guards [Get $input]]] \n] + return +} + +# ### ### ### ######### ######### ######### +## Invoking the functionality. + +if {[catch { + set mode $::tcldocstrip::mode + ::tcldocstrip::Do.$mode +} msg]} { + ## puts $::errorInfo + ::tcldocstrip::ArgError $msg +} + +# ### ### ### ######### ######### ######### +exit + +# Generic internal command for error handling. Factored out of the +# implementation of extract into its own command. + +proc HandleError {text attr lineno} { + variable O + + switch -- [string tolower $O(-onerror)] "puts" { + puts stderr "docstrip: $text on line $lineno." + } "ignore" {} default { + return \ + -code error \ + -errorinfo "" \ + -errorcode [linsert $attr end $lineno] \ + $text + } +} diff --git a/apps/tcldocstrip.man b/apps/tcldocstrip.man new file mode 100644 index 0000000..aa35b7d --- /dev/null +++ b/apps/tcldocstrip.man @@ -0,0 +1,197 @@ +[comment {-*- tcl -*- doctools manpage}] +[manpage_begin tcldocstrip n 1.0] +[see_also docstrip] +[keywords .dtx] +[keywords conversion] +[keywords docstrip] +[keywords documentation] +[keywords LaTeX] +[keywords {literate programming}] +[keywords markup] +[keywords source] +[copyright {2005 Andreas Kupries }] +[titledesc {Tcl-based Docstrip Processor}] +[moddesc {Textprocessing toolbox}] +[category {Documentation tools}] +[description] +[para] + +The application described by this document, [syscmd tcldocstrip], is a +relative of [syscmd docstrip], a simple literate programming tool for +LaTeX. + +[para] + +[syscmd tcldocstrip] is based upon the package [package docstrip]. + +[subsection {USE CASES}] + +[syscmd tcldocstrip] was written with the following three use cases in +mind. + +[para] +[list_begin enumerated] +[enum] +Conversion of a single input file according to the listed guards into +the stripped output. This handles the most simple case of a set of +guards specifying a single document found in a single input file. + +[enum] +Stitching, or the assembly of an output from several sets of guards, +in a specific order, and possibly from different files. This is the +second common case. One document spread over several inputs, and/or +spread over different guard sets. + +[enum] +Extraction and listing of all the unique guard expressions and guards +used within a document to help a person which did not author the +document in question in familiarizing itself with it. + +[list_end] + +[subsection {COMMAND LINE}] + +[list_begin definitions] + +[call [cmd tcldocstrip] [arg output] [opt options] [arg input] [opt [arg guards]]] + +This is the form for use case [lb]1[rb]. It converts the [arg input] +file according to the specified [arg guards] and options. The result +is written to the named [arg output] file. + +Usage of the string [const "-"] as the name of the output signals that +the result should be written to [const stdout]. The guards are +document-specific and have to be known to the caller. The +[arg options] will be explained later, in section [sectref OPTIONS]. + +[list_begin arguments] + +[arg_def path output in] + +This argument specifies where to write the generated document. It can +be the path to a file or directory, or [const -]. + +The last value causes the application to write the generated +documented to [const stdout]. + +[para] + +If the [arg output] does not exist then [lb]file dirname $output[rb] +has to exist and must be a writable directory. + +[arg_def path inputfile in] + +This argument specifies the path to the file to process. It has to +exist, must be readable, and written in [term docstrip] format. + +[list_end] +[para] + +[call [cmd tcldocstrip] [opt options] [arg output] ([opt options] [arg input] [arg guards])...] + +This is the form for use case [lb]2[rb]. It differs from the form for +use case [lb]1[rb] by the possibility of having options before the +output file, which apply in general, and specifying more than one +inputfile, each with its own set of input specific options and guards. + +[para] + +It extracts data from the various [arg input] files, according to the +specified [arg options] and [arg guards], and writes the result to the +given [arg output], in the order of their specification on the command +line. Options specified before the output are global settings, whereas +the options specified before each input are valid only just for this +input file. Unspecified values are taken from the global settings, or +defaults. As for form [lb]1[rb] using the string [const "-"] as output +causes the application to write to stdout. + +Using the string [const "."] for an input file signals that the last +input file should be used again. This enables the assembly of the +output from one input file using multiple and different sets of +guards, without having to specify the full name of the file every +time. + +[call [cmd tcldocstrip] [option -guards] [arg input]] + +This is the form for use case [lb]3[rb]. + +It determines the guards, and unique guard expressions used within the +provided [arg input] document. The found strings are written to +stdout, one string per line. + +[list_end] + +[subsection OPTIONS] + +This section describes all the options available to the user of the +application, with the exception of the option [option -guards]. This +option was described already, in section [sectref {COMMAND LINE}]. + +[para] +[list_begin options] +[opt_def -metaprefix string] + +This option is inherited from the command [cmd docstrip::extract] +provided by the package [package docstrip]. + +[para] + +It specifies the string by which the '%%' prefix of a metacomment line +will be replaced. Defaults to '%%'. For Tcl code this would typically +be '#'. + +[opt_def -onerror mode] + +This option is inherited from the command [cmd docstrip::extract] +provided by the package [package docstrip]. + +[para] + +It controls what will be done when a format error in the [arg text] +being processed is detected. The settings are: + +[list_begin definitions] +[def [const ignore]] +Just ignore the error; continue as if nothing happened. + +[def [const puts]] +Write an error message to [const stderr], then continue processing. + +[def [const throw]] +Throw an error. [var ::errorCode] is set to a list whose first element +is [const DOCSTRIP], second element is the type of error, and third +element is the line number where the error is detected. This is the +default. +[list_end] + +[opt_def -trimlines bool] + +This option is inherited from the command [cmd docstrip::extract] +provided by the package [package docstrip]. + +[para] + +Controls whether [emph spaces] at the end of a line should be trimmed +away before the line is processed. Defaults to [const true]. + +[opt_def -preamble text] +[opt_def -postamble text] +[opt_def -nopreamble] +[opt_def -nopostamble] + +The -no*amble options deactivate file pre- and postambles altogether, +whereas the -*amble options specify the [emph user] part of the file +pre- and postambles. This part can be empty, in that case only the +standard parts are shown. This is the default. + +[para] + +Preambles, when active, are written before the actual content of a +generated file. In the same manner postambles are, when active, +written after the actual content of a generated file. + +[list_end] + +[vset CATEGORY docstrip] +[include ../modules/doctools2base/include/feedback.inc] +[manpage_end] diff --git a/config/ChangeLog b/config/ChangeLog new file mode 100644 index 0000000..42ac6de --- /dev/null +++ b/config/ChangeLog @@ -0,0 +1,42 @@ +2003-05-05 Andreas Kupries + + * + * Released and tagged Tcllib 1.4 ======================== + * + +2001-03-15 Karl Lehenbauer + + * installFile.tcl: Added updating of the modification time of + the target file whether we overwrote it or decided that it + hadn't changed. This was necessary for us to be able to + determine whether or not a module install touched the file. + +2001-03-08 Karl Lehenbauer + + * installFile.tcl: Added support for converting new-style (1.1+) + Cygnus drive paths to Tcl-style. + +2001-01-15 + + * tcl.m4: Added FreeBSD clause. + +2001-01-03 + + * tcl.m4: Fixed typo in SC_LIB_SPEC where it is checking + for exec-prefix. + +2000-12-01 + + * tcl.m4: Concatenated most of the Ajuba acsite.m4 file + so we don't need to modify the autoconf installation. + * config.guess: + * config.sub: + * installFile.tcl: + Added files from the itcl config subdirectory, + which should go away. + +2000-7-29 + + * Fixed the use of TCL_SRC_DIR and TK_SRC_DIR within TCL_PRIVATE_INCLUDES + and TK_PRIVATE_INCLUDES to match their recent change from $(srcdir) + to $(srcdir)/.. diff --git a/config/config.guess b/config/config.guess new file mode 100644 index 0000000..1127162 --- /dev/null +++ b/config/config.guess @@ -0,0 +1,1415 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-10-07' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mipseb-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha*:OpenVMS:*:*) + echo alpha-hp-vms + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && exit 0 + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + # avoid double evaluation of $set_cc_for_build + test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + *:UNICOS/mp:*:*) + echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + # Determine whether the default compiler uses glibc. + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #if __GLIBC__ >= 2 + LIBC=gnu + #else + LIBC= + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + # GNU/KFreeBSD systems have a "k" prefix to indicate we are using + # FreeBSD's kernel, but not the complete OS. + case ${LIBC} in gnu) kernel_only='k' ;; esac + echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + x86:Interix*:[34]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + exit 0 ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit 0 ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit 0 ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit 0 ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #ifdef __INTEL_COMPILER + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit 0 ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i*86:*:5:[78]*) + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit 0 ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + case `uname -p` in + *86) UNAME_PROCESSOR=i686 ;; + powerpc) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config/config.sub b/config/config.sub new file mode 100644 index 0000000..79657cd --- /dev/null +++ b/config/config.sub @@ -0,0 +1,1510 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-10-07' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32r | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | msp430 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32r-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | msp430-* \ + | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nv1) + basic_machine=nv1-cray + os=-unicosmp + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config/install-sh b/config/install-sh new file mode 100755 index 0000000..0ff4b6a --- /dev/null +++ b/config/install-sh @@ -0,0 +1,119 @@ +#!/bin/sh + +# +# install - install a program, script, or datafile +# This comes from X11R5; it is not part of GNU. +# +# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" + +instcmd="$mvprog" +chmodcmd="" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +fi + +if [ x"$dst" = x ] +then + echo "install: no destination specified" + exit 1 +fi + + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + +if [ -d $dst ] +then + dst="$dst"/`basename $src` +fi + +# Make a temp file name in the proper directory. + +dstdir=`dirname $dst` +dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + +$doit $instcmd $src $dsttmp + +# and set any options; do chmod last to preserve setuid bits + +if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi +if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi +if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi +if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi + +# Now rename the file to the real destination. + +$doit $rmcmd $dst +$doit $mvcmd $dsttmp $dst + + +exit 0 diff --git a/config/installFile.tcl b/config/installFile.tcl new file mode 100755 index 0000000..b77afdd --- /dev/null +++ b/config/installFile.tcl @@ -0,0 +1,131 @@ +#!/bin/sh +# +# installFile.tcl - a Tcl version of install-sh +# that copies a file and preserves its permission bits. +# This also optimizes out installation of existing files +# that have the same size and time stamp as the source. +# +# \ +exec tclsh8.3 "$0" ${1+"$@"} + +set doCopy 0 ;# Rename files instead of copy +set doStrip 0 ;# Strip the symbols from installed copy +set verbose 0 +set src "" +set dst "" + +# Process command line arguments, compatible with install-sh + +for {set i 0} {$i < $argc} {incr i} { + set arg [lindex $argv $i] + switch -- $arg { + -c { + set doCopy 1 + } + -m { + incr i + # Assume UNIX standard "644", etc, so force Tcl to think octal + set permissions 0[lindex $argv $i] + } + -o { + incr i + set owner [lindex $argv $i] + } + -g { + incr i + set group [lindex $argv $i] + } + -s { + set doStrip 1 + } + -v { + set verbose 1 + } + default { + set src $arg + incr i + set dst [lindex $argv $i] + break + } + } +} +if {[string length $src] == 0} { + puts stderr "$argv0: no input file specified" + exit 1 +} +if {[string length $dst] == 0} { + puts stderr "$argv0: no destination file specified" + exit 1 +} + +# Compatibility with CYGNUS-style pathnames +regsub {^/(cygdrive)?/(.)/(.*)} $src {\2:/\3} src +regsub {^/(cygdrive)?/(.)/(.*)} $dst {\2:/\3} dst + +if {$verbose && $doStrip} { + puts stderr "Ignoring -s (strip) option for $dst" +} +if {[file isdirectory $dst]} { + set dst [file join $dst [file tail $src]] +} + +# Temporary file name + +set dsttmp [file join [file dirname $dst] #inst.[pid]#] + +# Optimize out install if the file already exists + +set actions "" +if {[file exists $dst] && + ([file mtime $src] == [file mtime $dst]) && + ([file size $src] == [file size $dst])} { + + # Looks like the same file, so don't bother to copy. + # Set dsttmp in case we still need to tweak mode, group, etc. + + set dsttmp $dst + lappend actions "already installed" +} else { + if {"[file type $src]" == "link"} { + # Perfom a true copy. + set in [open $src r] + set out [open $dsttmp w] + fcopy $in $out + close $in + close $out + } else { + file copy -force $src $dsttmp + } + lappend actions copied +} + +# update the modification time of the target file +file mtime $dsttmp [clock seconds] + +# At this point "$dsttmp" is installed, but might not have the +# right permissions and may need to be renamed. + + +foreach attrName {owner group permissions} { + upvar 0 $attrName attr + + if {[info exists attr]} { + if {![catch {file attributes $dsttmp -$attrName} dstattr]} { + + # This system supports "$attrName" kind of attributes + + if {($attr != $dstattr)} { + file attributes $dsttmp -$attrName $attr + lappend actions "set $attrName to $attr" + } + } + } +} + +if {[string compare $dst $dsttmp] != 0} { + file rename -force $dsttmp $dst +} +if {$verbose} { + puts stderr "$dst: [join $actions ", "]" +} +exit 0 diff --git a/config/mkinstalldirs b/config/mkinstalldirs new file mode 100755 index 0000000..8ba5915 --- /dev/null +++ b/config/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +# $Id: mkinstalldirs,v 1.2 2004/01/15 06:36:12 andreas_kupries Exp $ + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here diff --git a/config/tcl.m4 b/config/tcl.m4 new file mode 100644 index 0000000..f6df490 --- /dev/null +++ b/config/tcl.m4 @@ -0,0 +1,2709 @@ +# tcl.m4 -- +# +# This file provides a set of autoconf macros to help TEA-enable +# a Tcl extension. +# +# Copyright (c) 1999-2000 Ajuba Solutions. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +#------------------------------------------------------------------------ +# SC_PATH_TCLCONFIG -- +# +# Locate the tclConfig.sh file and perform a sanity check on +# the Tcl compile flags +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --with-tcl=... +# +# Defines the following vars: +# TCL_BIN_DIR Full path to the directory containing +# the tclConfig.sh file +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PATH_TCLCONFIG, [ + # + # Ok, lets find the tcl configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-tcl + # + + if test x"${no_tcl}" = x ; then + # we reset no_tcl in case something fails here + no_tcl=true + AC_ARG_WITH(tcl, [ --with-tcl directory containing tcl configuration (tclConfig.sh)], with_tclconfig=${withval}) + AC_MSG_CHECKING([for Tcl configuration]) + AC_CACHE_VAL(ac_cv_c_tclconfig,[ + + # First check to see if --with-tcl was specified. + if test x"${with_tclconfig}" != x ; then + if test -f "${with_tclconfig}/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)` + else + AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh]) + fi + fi + + # then check for a private Tcl installation + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ../tcl \ + `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../tcl \ + `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../../tcl \ + `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test -f "$i/unix/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/unix; pwd)` + break + fi + done + fi + + # check in a few common install locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` ; do + if test -f "$i/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i; pwd)` + break + fi + done + fi + + # check in a few other private locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ${srcdir}/../tcl \ + `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test -f "$i/unix/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/unix; pwd)` + break + fi + done + fi + ]) + + if test x"${ac_cv_c_tclconfig}" = x ; then + TCL_BIN_DIR="# no Tcl configs found" + AC_MSG_WARN(Can't find Tcl configuration definitions) + exit 0 + else + no_tcl= + TCL_BIN_DIR=${ac_cv_c_tclconfig} + AC_MSG_RESULT(found $TCL_BIN_DIR/tclConfig.sh) + fi + fi +]) + +#------------------------------------------------------------------------ +# SC_PATH_TKCONFIG -- +# +# Locate the tkConfig.sh file +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --with-tk=... +# +# Defines the following vars: +# TK_BIN_DIR Full path to the directory containing +# the tkConfig.sh file +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PATH_TKCONFIG, [ + # + # Ok, lets find the tk configuration + # First, look for one uninstalled. + # the alternative search directory is invoked by --with-tk + # + + if test x"${no_tk}" = x ; then + # we reset no_tk in case something fails here + no_tk=true + AC_ARG_WITH(tk, [ --with-tk directory containing tk configuration (tkConfig.sh)], with_tkconfig=${withval}) + AC_MSG_CHECKING([for Tk configuration]) + AC_CACHE_VAL(ac_cv_c_tkconfig,[ + + # First check to see if --with-tkconfig was specified. + if test x"${with_tkconfig}" != x ; then + if test -f "${with_tkconfig}/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)` + else + AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh]) + fi + fi + + # then check for a private Tk library + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ../tk \ + `ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../tk \ + `ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \ + ../../../tk \ + `ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test -f "$i/unix/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/unix; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` ; do + if test -f "$i/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ${srcdir}/../tk \ + `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do + if test -f "$i/unix/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/unix; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_tkconfig}" = x ; then + TK_BIN_DIR="# no Tk configs found" + AC_MSG_WARN(Can't find Tk configuration definitions) + exit 0 + else + no_tk= + TK_BIN_DIR=${ac_cv_c_tkconfig} + AC_MSG_RESULT(found $TK_BIN_DIR/tkConfig.sh) + fi + fi + +]) + +#------------------------------------------------------------------------ +# SC_LOAD_TCLCONFIG -- +# +# Load the tclConfig.sh file +# +# Arguments: +# +# Requires the following vars to be set: +# TCL_BIN_DIR +# +# Results: +# +# Subst the following vars: +# TCL_BIN_DIR +# TCL_SRC_DIR +# TCL_LIB_FILE +# +#------------------------------------------------------------------------ + +AC_DEFUN(SC_LOAD_TCLCONFIG, [ + AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh]) + + if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then + AC_MSG_RESULT([loading]) + . $TCL_BIN_DIR/tclConfig.sh + else + AC_MSG_RESULT([file not found]) + fi + + # + # The eval is required to do the TCL_DBGX substitution in the + # TCL_LIB_FILE variable + # + + eval TCL_LIB_FILE=${TCL_LIB_FILE} + eval TCL_LIB_FLAG=${TCL_LIB_FLAG} + + AC_SUBST(TCL_DBGX) + AC_SUBST(TCL_BIN_DIR) + AC_SUBST(TCL_SRC_DIR) + AC_SUBST(TCL_LIB_FILE) + AC_SUBST(TCL_LIBS) + AC_SUBST(TCL_DEFS) + AC_SUBST(TCL_SHLIB_LD_LIBS) + AC_SUBST(TCL_EXTRA_CFLAGS) + AC_SUBST(TCL_LD_FLAGS) + AC_SUBST(TCL_LIB_FILE) + AC_SUBST(TCL_STUB_LIB_FILE) + AC_SUBST(TCL_LIB_SPEC) + AC_SUBST(TCL_BUILD_LIB_SPEC) + AC_SUBST(TCL_STUB_LIB_SPEC) + AC_SUBST(TCL_BUILD_STUB_LIB_SPEC) +]) + +#------------------------------------------------------------------------ +# SC_LOAD_TKCONFIG -- +# +# Load the tkConfig.sh file +# +# Arguments: +# +# Requires the following vars to be set: +# TK_BIN_DIR +# +# Results: +# +# Sets the following vars that should be in tkConfig.sh: +# TK_BIN_DIR +#------------------------------------------------------------------------ + +AC_DEFUN(SC_LOAD_TKCONFIG, [ + AC_MSG_CHECKING([for existence of $TK_BIN_DIR/tkConfig.sh]) + + if test -f "$TK_BIN_DIR/tkConfig.sh" ; then + AC_MSG_RESULT([loading]) + . $TK_BIN_DIR/tkConfig.sh + else + AC_MSG_RESULT([could not find $TK_BIN_DIR/tkConfig.sh]) + fi + + AC_SUBST(TK_BIN_DIR) + AC_SUBST(TK_SRC_DIR) + AC_SUBST(TK_LIB_FILE) + AC_SUBST(TK_XINCLUDES) +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_GCC -- +# +# Allows the use of GCC if available +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-gcc +# +# Sets the following vars: +# CC Command to use for the compiler +#------------------------------------------------------------------------ + +AC_DEFUN(SC_ENABLE_GCC, [ + AC_ARG_ENABLE(gcc, [ --enable-gcc allow use of gcc if available [--disable-gcc]], + [ok=$enableval], [ok=no]) + if test "$ok" = "yes"; then + CC=gcc + else + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*) + CC=cl + ;; + *) + CC=${CC-cc} + ;; + esac + fi + AC_PROG_CC +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_SHARED -- +# +# Allows the building of shared libraries +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-shared=yes|no +# +# Defines the following vars: +# STATIC_BUILD Used for building import/export libraries +# on Windows. +# +# Sets the following vars: +# SHARED_BUILD Value of 1 or 0 +#------------------------------------------------------------------------ + +AC_DEFUN(SC_ENABLE_SHARED, [ + AC_MSG_CHECKING([how to build libraries]) + AC_ARG_ENABLE(shared, + [ --enable-shared build and link with shared libraries [--enable-shared]], + [tcl_ok=$enableval], [tcl_ok=yes]) + + if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + tcl_ok=$enableval + else + tcl_ok=yes + fi + + if test "$tcl_ok" = "yes" ; then + AC_MSG_RESULT([shared]) + SHARED_BUILD=1 + else + AC_MSG_RESULT([static]) + SHARED_BUILD=0 + AC_DEFINE(STATIC_BUILD) + fi +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_THREADS -- +# +# Specify if thread support should be enabled +# +# Arguments: +# none +# +# Results: +# +# Adds the following arguments to configure: +# --enable-threads +# +# Sets the following vars: +# THREADS_LIBS Thread library(s) +# +# Defines the following vars: +# TCL_THREADS +# _REENTRANT +# +#------------------------------------------------------------------------ + +AC_DEFUN(SC_ENABLE_THREADS, [ + AC_MSG_CHECKING(for building with threads) + AC_ARG_ENABLE(threads, [ --enable-threads build with threads], + [tcl_ok=$enableval], [tcl_ok=no]) + + if test "$tcl_ok" = "yes"; then + TCL_THREADS=1 + AC_DEFINE(TCL_THREADS) + AC_DEFINE(_REENTRANT) + + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*) + AC_MSG_RESULT(yes) + ;; + *) + AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no) + if test "$tcl_ok" = "yes"; then + # The space is needed + THREADS_LIBS=" -lpthread" + AC_MSG_RESULT(yes) + else + TCL_THREADS=0 + AC_MSG_RESULT(no) + AC_MSG_WARN("Don t know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...") + fi + ;; + esac + else + TCL_THREADS=0 + AC_MSG_RESULT(no (default)) + fi + +]) + +#------------------------------------------------------------------------ +# SC_ENABLE_SYMBOLS -- +# +# Specify if debugging symbols should be used +# +# Arguments: +# none +# +# Requires the following vars to be set: +# CFLAGS_DEBUG +# CFLAGS_OPTIMIZE +# LDFLAGS_DEBUG +# LDFLAGS_OPTIMIZE +# +# Results: +# +# Adds the following arguments to configure: +# --enable-symbols +# +# Defines the following vars: +# CFLAGS_DEFAULT Sets to CFLAGS_DEBUG if true +# Sets to CFLAGS_OPTIMIZE if false +# LDFLAGS_DEFAULT Sets to LDFLAGS_DEBUG if true +# Sets to LDFLAGS_OPTIMIZE if false +# DBGX Debug library extension +# +#------------------------------------------------------------------------ + +AC_DEFUN(SC_ENABLE_SYMBOLS, [ + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*) + tcl_dbgx=d + ;; + *) + tcl_dbgx=g + ;; + esac + + AC_MSG_CHECKING([for build with symbols]) + AC_ARG_ENABLE(symbols, [ --enable-symbols build with debugging symbols [--disable-symbols]], [tcl_ok=$enableval], [tcl_ok=no]) + if test "$tcl_ok" = "yes"; then + CFLAGS_DEFAULT="${CFLAGS_DEBUG}" + LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" + DBGX=${tcl_dbgx} + TCL_DBGX=${tcl_dbgx} + AC_MSG_RESULT([yes]) + else + CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}" + LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" + DBGX="" + TCL_DBGX="" + AC_MSG_RESULT([no]) + fi + + AC_SUBST(TCL_DBGX) + AC_SUBST(CFLAGS_DEFAULT) + AC_SUBST(LDFLAGS_DEFAULT) +]) + +#-------------------------------------------------------------------- +# SC_CONFIG_CFLAGS +# +# Try to determine the proper flags to pass to the compiler +# for building shared libraries and other such nonsense. +# +# Arguments: +# none +# +# Results: +# +# Defines the following vars: +# +# DL_OBJS - Name of the object file that implements dynamic +# loading for Tcl on this system. +# DL_LIBS - Library file(s) to include in tclsh and other base +# applications in order for the "load" command to work. +# LDFLAGS - Flags to pass to the compiler when linking object +# files into an executable application binary such +# as tclsh. +# LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib", +# that tell the run-time dynamic linker where to look +# for shared libraries such as libtcl.so. Depends on +# the variable LIB_RUNTIME_DIR in the Makefile. +# MAKE_LIB - Command to execute to build the Tcl library; +# differs depending on whether or not Tcl is being +# compiled as a shared library. +# SHLIB_CFLAGS - Flags to pass to cc when compiling the components +# of a shared library (may request position-independent +# code, among other things). +# SHLIB_LD - Base command to use for combining object files +# into a shared library. +# SHLIB_LD_LIBS - Dependent libraries for the linker to scan when +# creating shared libraries. This symbol typically +# goes at the end of the "ld" commands that build +# shared libraries. The value of the symbol is +# "${LIBS}" if all of the dependent libraries should +# be specified when creating a shared library. If +# dependent libraries should not be specified (as on +# SunOS 4.x, where they cause the link to fail, or in +# general if Tcl and Tk aren't themselves shared +# libraries), then this symbol has an empty string +# as its value. +# SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable +# extensions. An empty string means we don't know how +# to use shared libraries on this platform. +# TCL_LIB_FILE - Name of the file that contains the Tcl library, such +# as libtcl7.8.so or libtcl7.8.a. +# TCL_LIB_SUFFIX -Specifies everything that comes after the "libtcl" +# in the shared library name, using the $VERSION variable +# to put the version in the right place. This is used +# by platforms that need non-standard library names. +# Examples: ${VERSION}.so.1.1 on NetBSD, since it needs +# to have a version after the .so, and ${VERSION}.a +# on AIX, since the Tcl shared library needs to have +# a .a extension whereas shared objects for loadable +# extensions have a .so extension. Defaults to +# ${VERSION}${SHLIB_SUFFIX}. +# TCL_NEEDS_EXP_FILE - +# 1 means that an export file is needed to link to a +# shared library. +# TCL_EXP_FILE - The name of the installed export / import file which +# should be used to link to the Tcl shared library. +# Empty if Tcl is unshared. +# TCL_BUILD_EXP_FILE - +# The name of the built export / import file which +# should be used to link to the Tcl shared library. +# Empty if Tcl is unshared. +# CFLAGS_DEBUG - +# Flags used when running the compiler in debug mode +# CFLAGS_OPTIMIZE - +# Flags used when running the compiler in optimize mode +# +# EXTRA_CFLAGS +# +# Subst's the following vars: +# DL_LIBS +# CFLAGS_DEBUG +# CFLAGS_OPTIMIZE +#-------------------------------------------------------------------- + +AC_DEFUN(SC_CONFIG_CFLAGS, [ + + # Step 0: Enable 64 bit support? + + AC_MSG_CHECKING([if 64bit support is enabled]) + AC_ARG_ENABLE(64bit,[ --enable-64bit enable 64bit support],,enableval="no") + + if test "$enableval" = "yes"; then + AC_MSG_RESULT(Will compile with 64bit support) + do64bit=yes + else + do64bit=no + fi + AC_MSG_RESULT($do64bit) + + # Step 1: set the variable "system" to hold the name and version number + # for the system. This can usually be done via the "uname" command, but + # there are a few systems, like Next, where this doesn't work. + + AC_MSG_CHECKING([system version (for dynamic loading)]) + if test -f /usr/lib/NextStep/software_version; then + system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` + else + system=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then + AC_MSG_RESULT([unknown (can't find uname command)]) + system=unknown + else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + system=MP-RAS-`awk '{print $3}' /etc/.relid'` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` + fi + AC_MSG_RESULT($system) + fi + fi + + # Step 2: check for existence of -ldl library. This is needed because + # Linux can use either -ldl or -ldld for dynamic loading. + + AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no) + + # Step 3: set configuration options based on system name and version. + + do64bit_ok=no + fullSrcDir=`cd $srcdir; pwd` + EXTRA_CFLAGS="" + TCL_EXPORT_FILE_SUFFIX="" + UNSHARED_LIB_SUFFIX="" + TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`' + ECHO_VERSION='`echo ${VERSION}`' + TCL_LIB_VERSIONS_OK=ok + CFLAGS_DEBUG=-g + CFLAGS_OPTIMIZE=-O + TCL_NEEDS_EXP_FILE=0 + TCL_BUILD_EXP_FILE="" + TCL_EXP_FILE="" + STLIB_LD="ar cr" + case $system in + AIX-5.*) + if test "${TCL_THREADS}" = "1" -a "$using_gcc" = "no" ; then + # AIX requires the _r compiler when gcc isn't being used + if test "${CC}" != "cc_r" ; then + CC=${CC}_r + fi + AC_MSG_RESULT(Using $CC for compiling with threads) + fi + # AIX-5 uses ELF style dynamic libraries + SHLIB_CFLAGS="" + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + + # Note: need the LIBS below, otherwise Tk won't find Tcl's + # symbols when dynamically loaded into tclsh. + + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + # AIX-5 has dl* in libc.so + DL_LIBS="" + LDFLAGS="" + if test "$using_gcc" = "yes" ; then + LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + else + LD_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' + fi + + if test "$do64bit" = "yes" ; then + if test "$using_gcc" = "no" ; then + do64bit_ok=yes + EXTRA_CFLAGS="-q64" + LDFLAGS="-q64" + else + AC_MSG_WARN("64bit mode not supported with GCC on $system") + fi + fi + ;; + AIX-*) + if test "${TCL_THREADS}" = "1" -a "$using_gcc" = "no" ; then + # AIX requires the _r compiler when gcc isn't being used + if test "${CC}" != "cc_r" ; then + CC=${CC}_r + fi + AC_MSG_RESULT(Using $CC for compiling with threads) + fi + SHLIB_CFLAGS="" + SHLIB_LD="$fullSrcDir/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="" + LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + TCL_NEEDS_EXP_FILE=1 + TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.exp' + + # AIX v<=4.1 has some different flags than 4.2+ + if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then + LIBOBJS="$LIBOBJS tclLoadAix.o" + DL_LIBS="-lld" + fi + + # On AIX <=v4 systems, libbsd.a has to be linked in to support + # non-blocking file IO. This library has to be linked in after + # the MATH_LIBS or it breaks the pow() function. The way to + # insure proper sequencing, is to add it to the tail of MATH_LIBS. + # This library also supplies gettimeofday. + # + # AIX does not have a timezone field in struct tm. When the AIX + # bsd library is used, the timezone global and the gettimeofday + # methods are to be avoided for timezone deduction instead, we + # deduce the timezone by comparing the localtime result on a + # known GMT value. + + AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes, libbsd=no) + if test $libbsd = yes; then + MATH_LIBS="$MATH_LIBS -lbsd" + AC_DEFINE(USE_DELTA_FOR_TZ) + fi + ;; + BSD/OS-2.1*|BSD/OS-3*) + SHLIB_CFLAGS="" + SHLIB_LD="shlicc -r" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="" + LD_SEARCH_FLAGS="" + ;; + BSD/OS-4.*) + SHLIB_CFLAGS="-export-dynamic -fPIC" + SHLIB_LD="cc -shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="-export-dynamic" + LD_SEARCH_FLAGS="" + ;; + *win32*|*WIN32*|CYGWIN_NT*|cygwin_nt*|*CYGWIN_98*|*CYGWIN_95*) + CFLAGS_DEBUG="-nologo -Z7 -Od -WX ${runtime}d" + CFLAGS_OPTIMIZE="-nologo -Oti -Gs -GD ${runtime}" + LDFLAGS_CONSOLE="-subsystem:console" + LDFLAGS_WINDOW="-subsystem:windows" + LDFLAGS_DEBUG="-debug:full -debugtype:cv" + LDFLAGS_OPTIMIZE="-release" + EXTRA_CFLAGS="-YX" + PATHTYPE=-w + STLIB_LD="lib -nologo" + SHLIB_LD="link -dll -nologo -incremental:no" + SHLIB_LD_LIBS="user32.lib advapi32.lib" + RC="rc" + ;; + dgux*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="" + LD_SEARCH_FLAGS="" + ;; + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*|HP-UX-*.11.*) + SHLIB_SUFFIX=".sl" + AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = yes; then + SHLIB_CFLAGS="+z" + SHLIB_LD="ld -b" + SHLIB_LD_LIBS="" + DL_OBJS="tclLoadShl.o" + DL_LIBS="-ldld" + LDFLAGS="-Wl,-E" + LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' + fi + ;; + IRIX-4.*) + SHLIB_CFLAGS="-G 0" + SHLIB_SUFFIX=".a" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" + SHLIB_LD_LIBS='${LIBS}' + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + LDFLAGS="-Wl,-D,08000000" + LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a' + ;; + IRIX-5.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -shared -rdata_shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + EXTRA_CFLAGS="" + LDFLAGS="" + ;; + IRIX-6.*|IRIX64-6.5*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -n32 -shared -rdata_shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + if test "$using_gcc" = "yes" ; then + EXTRA_CFLAGS="-mabi=n32" + LDFLAGS="-mabi=n32" + else + case $system in + IRIX-6.3) + # Use to build 6.2 compatible binaries on 6.3. + EXTRA_CFLAGS="-n32 -D_OLD_TERMIOS" + ;; + *) + EXTRA_CFLAGS="-n32" + ;; + esac + LDFLAGS="-n32" + fi + ;; + IRIX64-6.*) + SHLIB_CFLAGS="" + SHLIB_LD="ld -32 -shared -rdata_shared" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + ;; + Linux*) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + + # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings + # when you inline the string and math operations. Turn this off to + # get rid of the warnings. + + CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + + if test "$have_dl" = yes; then + SHLIB_LD="${CC} -shared" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="-rdynamic" + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + else + AC_CHECK_HEADER(dld.h, [ + SHLIB_LD="ld -shared" + DL_OBJS="tclLoadDld.o" + DL_LIBS="-ldld" + LDFLAGS="" + LD_SEARCH_FLAGS=""]) + fi + if test "`uname -m`" = "alpha" ; then + EXTRA_CFLAGS="-mieee" + fi + ;; + MP-RAS-02*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="" + LD_SEARCH_FLAGS="" + ;; + MP-RAS-*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="-Wl,-Bexport" + LD_SEARCH_FLAGS="" + ;; + NetBSD-*|FreeBSD-[[12]].*|OpenBSD-*) + # Not available on all versions: check for include file. + AC_CHECK_HEADER(dlfcn.h, [ + SHLIB_CFLAGS="-fpic" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS="" + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' + ], [ + SHLIB_CFLAGS="" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".a" + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + ]) + + # FreeBSD doesn't handle version numbers with dots. + + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + FreeBSD-*) + # FreeBSD 3.* and greater have ELF. + SHLIB_CFLAGS="-fpic" + SHLIB_LD="ld -Bshareable -x" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS="" + ;; + NEXTSTEP-*) + SHLIB_CFLAGS="" + SHLIB_LD="cc -nostdlib -r" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadNext.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS="" + ;; + OS/390-*) + CFLAGS_OPTIMIZE="" # Optimizer is buggy + AC_DEFINE(_OE_SOCKETS) # needed in sys/socket.h + ;; + OSF1-1.0|OSF1-1.1|OSF1-1.2) + # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1 + SHLIB_CFLAGS="" + # Hack: make package name same as library name + SHLIB_LD='ld -R -export $@:' + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadOSF.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS="" + ;; + OSF1-1.*) + # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 + SHLIB_CFLAGS="-fpic" + SHLIB_LD="ld -shared" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS="" + ;; + OSF1-V*) + # Digital OSF/1 + SHLIB_CFLAGS="" + SHLIB_LD='ld -shared -expect_unresolved "*"' + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + ;; + RISCos-*) + SHLIB_CFLAGS="-G 0" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".a" + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + LDFLAGS="-Wl,-D,08000000" + LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + ;; + SCO_SV-3.2*) + # Note, dlopen is available only on SCO 3.2.5 and greater. However, + # this test works, since "uname -s" was non-standard in 3.2.4 and + # below. + SHLIB_CFLAGS="-Kpic -belf" + SHLIB_LD="ld -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="" + LDFLAGS="-belf -Wl,-Bexport" + LD_SEARCH_FLAGS="" + ;; + SINIX*5.4*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="" + LD_SEARCH_FLAGS="" + ;; + SunOS-4*) + SHLIB_CFLAGS="-PIC" + SHLIB_LD="ld" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="" + LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + + # SunOS can't handle version numbers with dots in them in library + # specs, like -ltcl7.5, so use -ltcl75 instead. Also, it + # requires an extra version number at the end of .so file names. + # So, the library has to have a name like libtcl75.so.1.0 + + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + TCL_LIB_VERSIONS_OK=nodots + ;; + SunOS-5.[[0-6]]*) + SHLIB_CFLAGS="-KPIC" + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + + # Note: need the LIBS below, otherwise Tk won't find Tcl's + # symbols when dynamically loaded into tclsh. + + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="" + LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + ;; + SunOS-5*) + SHLIB_CFLAGS="-KPIC" + SHLIB_LD="/usr/ccs/bin/ld -G -z text" + LDFLAGS="" + + do64bit_ok=no + if test "$do64bit" = "yes" ; then + arch=`isainfo` + if test "$arch" = "sparcv9 sparc" ; then + if test "$CC" != "gcc" -a `$CC -v 2>&1 | grep -c gcc` = "0" ; then + do64bit_ok=yes + EXTRA_CFLAGS="-xarch=v9" + LDFLAGS="-xarch=v9" + else + AC_MSG_WARN("64bit mode not supported using GCC on $system") + fi + else + AC_MSG_WARN("64bit mode only supported sparcv9 system") + fi + fi + + # Note: need the LIBS below, otherwise Tk won't find Tcl's + # symbols when dynamically loaded into tclsh. + + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then + LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + else + LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' + fi + ;; + ULTRIX-4.*) + SHLIB_CFLAGS="-G 0" + SHLIB_SUFFIX=".a" + SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" + SHLIB_LD_LIBS='${LIBS}' + DL_OBJS="tclLoadAout.o" + DL_LIBS="" + LDFLAGS="-Wl,-D,08000000" + LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' + ;; + UNIX_SV* | UnixWare-5*) + SHLIB_CFLAGS="-KPIC" + SHLIB_LD="cc -G" + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers + # that don't grok the -Bexport option. Test that it does. + hold_ldflags=$LDFLAGS + AC_MSG_CHECKING(for ld accepts -Bexport flag) + LDFLAGS="${LDFLAGS} -Wl,-Bexport" + AC_TRY_LINK(, [int i;], found=yes, found=no) + LDFLAGS=$hold_ldflags + AC_MSG_RESULT($found) + if test $found = yes; then + LDFLAGS="-Wl,-Bexport" + else + LDFLAGS="" + fi + LD_SEARCH_FLAGS="" + ;; + esac + + if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then + AC_MSG_WARN("64bit support being disabled -- not supported on this platform") + fi + + # Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic + # Loading for Tcl -- What Became of It?". Proc. 2nd Tcl/Tk Workshop, + # New Orleans, LA, Computerized Processes Unlimited, 1994), then we need + # to determine which of several header files defines the a.out file + # format (a.out.h, sys/exec.h, or sys/exec_aout.h). At present, we + # support only a file format that is more or less version-7-compatible. + # In particular, + # - a.out files must begin with `struct exec'. + # - the N_TXTOFF on the `struct exec' must compute the seek address + # of the text segment + # - The `struct exec' must contain a_magic, a_text, a_data, a_bss + # and a_entry fields. + # The following compilation should succeed if and only if either sys/exec.h + # or a.out.h is usable for the purpose. + # + # Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the + # `struct exec' includes a second header that contains information that + # duplicates the v7 fields that are needed. + + if test "x$DL_OBJS" = "xtclLoadAout.o" ; then + AC_MSG_CHECKING(sys/exec.h) + AC_TRY_COMPILE([#include ],[ + struct exec foo; + unsigned long seek; + int flag; +#if defined(__mips) || defined(mips) + seek = N_TXTOFF (foo.ex_f, foo.ex_o); +#else + seek = N_TXTOFF (foo); +#endif + flag = (foo.a_magic == OMAGIC); + return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; + ], tcl_ok=usable, tcl_ok=unusable) + AC_MSG_RESULT($tcl_ok) + if test $tcl_ok = usable; then + AC_DEFINE(USE_SYS_EXEC_H) + else + AC_MSG_CHECKING(a.out.h) + AC_TRY_COMPILE([#include ],[ + struct exec foo; + unsigned long seek; + int flag; +#if defined(__mips) || defined(mips) + seek = N_TXTOFF (foo.ex_f, foo.ex_o); +#else + seek = N_TXTOFF (foo); +#endif + flag = (foo.a_magic == OMAGIC); + return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; + ], tcl_ok=usable, tcl_ok=unusable) + AC_MSG_RESULT($tcl_ok) + if test $tcl_ok = usable; then + AC_DEFINE(USE_A_OUT_H) + else + AC_MSG_CHECKING(sys/exec_aout.h) + AC_TRY_COMPILE([#include ],[ + struct exec foo; + unsigned long seek; + int flag; +#if defined(__mips) || defined(mips) + seek = N_TXTOFF (foo.ex_f, foo.ex_o); +#else + seek = N_TXTOFF (foo); +#endif + flag = (foo.a_midmag == OMAGIC); + return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; + ], tcl_ok=usable, tcl_ok=unusable) + AC_MSG_RESULT($tcl_ok) + if test $tcl_ok = usable; then + AC_DEFINE(USE_SYS_EXEC_AOUT_H) + else + DL_OBJS="" + fi + fi + fi + fi + + # Step 5: disable dynamic loading if requested via a command-line switch. + + AC_ARG_ENABLE(load, [ --disable-load disallow dynamic loading and "load" command], + [tcl_ok=$enableval], [tcl_ok=yes]) + if test "$tcl_ok" = "no"; then + DL_OBJS="" + fi + + if test "x$DL_OBJS" != "x" ; then + BUILD_DLTEST="\$(DLTEST_TARGETS)" + else + echo "Can't figure out how to do dynamic loading or shared libraries" + echo "on this system." + SHLIB_CFLAGS="" + SHLIB_LD="" + SHLIB_SUFFIX="" + DL_OBJS="tclLoadNone.o" + DL_LIBS="" + LDFLAGS="" + LD_SEARCH_FLAGS="" + BUILD_DLTEST="" + fi + + # If we're running gcc, then change the C flags for compiling shared + # libraries to the right flags for gcc, instead of those for the + # standard manufacturer compiler. + + if test "$DL_OBJS" != "tclLoadNone.o" ; then + if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then + case $system in + AIX-*) + ;; + BSD/OS*) + ;; + IRIX*) + ;; + NetBSD-*|FreeBSD-*|OpenBSD-*) + ;; + RISCos-*) + ;; + ULTRIX-4.*) + ;; + *) + SHLIB_CFLAGS="-fPIC" + ;; + esac + fi + fi + + if test "$SHARED_LIB_SUFFIX" = "" ; then + SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}${SHLIB_SUFFIX}' + fi + if test "$UNSHARED_LIB_SUFFIX" = "" ; then + UNSHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a' + fi + + AC_SUBST(STLIB_LD) + AC_SUBST(SHLIB_LD) + AC_SUBST(SHLIB_CFLAGS) + AC_SUBST(SHLIB_LDFLAGS) + AC_SUBST(DL_LIBS) + AC_SUBST(CFLAGS_DEBUG) + AC_SUBST(CFLAGS_OPTIMIZE) + AC_SUBST(LDFLAGS_DEBUG) + AC_SUBST(LDFLAGS_OPTIMIZE) +]) + +#-------------------------------------------------------------------- +# SC_SERIAL_PORT +# +# Determine which interface to use to talk to the serial port. +# Note that #include lines must begin in leftmost column for +# some compilers to recognize them as preprocessor directives. +# +# Arguments: +# none +# +# Results: +# +# Defines only one of the following vars: +# USE_TERMIOS +# USE_TERMIO +# USE_SGTTY +# +#-------------------------------------------------------------------- + +AC_DEFUN(SC_SERIAL_PORT, [ + AC_MSG_CHECKING([termios vs. termio vs. sgtty]) + + AC_TRY_RUN([ +#include + +main() +{ + struct termios t; + if (tcgetattr(0, &t) == 0) { + cfsetospeed(&t, 0); + t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; +}], tk_ok=termios, tk_ok=no, tk_ok=no) + + if test $tk_ok = termios; then + AC_DEFINE(USE_TERMIOS) + else + AC_TRY_RUN([ +#include + +main() +{ + struct termio t; + if (ioctl(0, TCGETA, &t) == 0) { + t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; + }], tk_ok=termio, tk_ok=no, tk_ok=no) + + if test $tk_ok = termio; then + AC_DEFINE(USE_TERMIO) + else + AC_TRY_RUN([ +#include + +main() +{ + struct sgttyb t; + if (ioctl(0, TIOCGETP, &t) == 0) { + t.sg_ospeed = 0; + t.sg_flags |= ODDP | EVENP | RAW; + return 0; + } + return 1; +}], tk_ok=sgtty, tk_ok=none, tk_ok=none) + + if test $tk_ok = sgtty; then + AC_DEFINE(USE_SGTTY) + else + AC_TRY_RUN([ +#include +#include + +main() +{ + struct termios t; + if (tcgetattr(0, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + cfsetospeed(&t, 0); + t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; +}], tk_ok=termios, tk_ok=no, tk_ok=no) + + if test $tk_ok = termios; then + AC_DEFINE(USE_TERMIOS) + else + AC_TRY_RUN([ +#include +#include + +main() +{ + struct termio t; + if (ioctl(0, TCGETA, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; + return 0; + } + return 1; + }], tk_ok=termio, tk_ok=no, tk_ok=no) + + if test $tk_ok = termio; then + AC_DEFINE(USE_TERMIO) + else + AC_TRY_RUN([ +#include +#include + +main() +{ + struct sgttyb t; + if (ioctl(0, TIOCGETP, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { + t.sg_ospeed = 0; + t.sg_flags |= ODDP | EVENP | RAW; + return 0; + } + return 1; +}], tk_ok=sgtty, tk_ok=none, tk_ok=none) + + if test $tk_ok = sgtty; then + AC_DEFINE(USE_SGTTY) + fi + fi + fi + fi + fi + fi + AC_MSG_RESULT($tk_ok) +]) + +#-------------------------------------------------------------------- +# SC_MISSING_POSIX_HEADERS +# +# Supply substitutes for missing POSIX header files. Special +# notes: +# - stdlib.h doesn't define strtol, strtoul, or +# strtod insome versions of SunOS +# - some versions of string.h don't declare procedures such +# as strstr +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# NO_DIRENT_H +# NO_ERRNO_H +# NO_VALUES_H +# NO_LIMITS_H +# NO_STDLIB_H +# NO_STRING_H +# NO_SYS_WAIT_H +# NO_DLFCN_H +# HAVE_UNISTD_H +# HAVE_SYS_PARAM_H +# +# HAVE_STRING_H ? +# +#-------------------------------------------------------------------- + +AC_DEFUN(SC_MISSING_POSIX_HEADERS, [ + + AC_MSG_CHECKING(dirent.h) + AC_TRY_LINK([#include +#include ], [ +#ifndef _POSIX_SOURCE +# ifdef __Lynx__ + /* + * Generate compilation error to make the test fail: Lynx headers + * are only valid if really in the POSIX environment. + */ + + missing_procedure(); +# endif +#endif +DIR *d; +struct dirent *entryPtr; +char *p; +d = opendir("foobar"); +entryPtr = readdir(d); +p = entryPtr->d_name; +closedir(d); +], tcl_ok=yes, tcl_ok=no) + + if test $tcl_ok = no; then + AC_DEFINE(NO_DIRENT_H) + fi + + AC_MSG_RESULT($tcl_ok) + AC_CHECK_HEADER(errno.h, , AC_DEFINE(NO_ERRNO_H)) + AC_CHECK_HEADER(float.h, , AC_DEFINE(NO_FLOAT_H)) + AC_CHECK_HEADER(values.h, , AC_DEFINE(NO_VALUES_H)) + AC_CHECK_HEADER(limits.h, , AC_DEFINE(NO_LIMITS_H)) + AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0) + AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0) + AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0) + AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0) + if test $tcl_ok = 0; then + AC_DEFINE(NO_STDLIB_H) + fi + AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0) + AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0) + AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0) + + # See also memmove check below for a place where NO_STRING_H can be + # set and why. + + if test $tcl_ok = 0; then + AC_DEFINE(NO_STRING_H) + fi + + AC_CHECK_HEADER(sys/wait.h, , AC_DEFINE(NO_SYS_WAIT_H)) + AC_CHECK_HEADER(dlfcn.h, , AC_DEFINE(NO_DLFCN_H)) + + # OS/390 lacks sys/param.h (and doesn't need it, by chance). + + AC_HAVE_HEADERS(unistd.h sys/param.h) + +]) + +#-------------------------------------------------------------------- +# SC_PATH_X +# +# Locate the X11 header files and the X11 library archive. Try +# the ac_path_x macro first, but if it doesn't find the X stuff +# (e.g. because there's no xmkmf program) then check through +# a list of possible directories. Under some conditions the +# autoconf macro will return an include directory that contains +# no include files, so double-check its result just to be safe. +# +# Arguments: +# none +# +# Results: +# +# Sets the the following vars: +# XINCLUDES +# XLIBSW +# +#-------------------------------------------------------------------- + +AC_DEFUN(SC_PATH_X, [ + AC_PATH_X + not_really_there="" + if test "$no_x" = ""; then + if test "$x_includes" = ""; then + AC_TRY_CPP([#include ], , not_really_there="yes") + else + if test ! -r $x_includes/X11/Intrinsic.h; then + not_really_there="yes" + fi + fi + fi + if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then + AC_MSG_CHECKING(for X11 header files) + XINCLUDES="# no special path needed" + AC_TRY_CPP([#include ], , XINCLUDES="nope") + if test "$XINCLUDES" = nope; then + dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include" + for i in $dirs ; do + if test -r $i/X11/Intrinsic.h; then + AC_MSG_RESULT($i) + XINCLUDES=" -I$i" + break + fi + done + fi + else + if test "$x_includes" != ""; then + XINCLUDES=-I$x_includes + else + XINCLUDES="# no special path needed" + fi + fi + if test "$XINCLUDES" = nope; then + AC_MSG_RESULT(couldn't find any!) + XINCLUDES="# no include files found" + fi + + if test "$no_x" = yes; then + AC_MSG_CHECKING(for X11 libraries) + XLIBSW=nope + dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" + for i in $dirs ; do + if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then + AC_MSG_RESULT($i) + XLIBSW="-L$i -lX11" + x_libraries="$i" + break + fi + done + else + if test "$x_libraries" = ""; then + XLIBSW=-lX11 + else + XLIBSW="-L$x_libraries -lX11" + fi + fi + if test "$XLIBSW" = nope ; then + AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow) + fi + if test "$XLIBSW" = nope ; then + AC_MSG_RESULT(couldn't find any! Using -lX11.) + XLIBSW=-lX11 + fi +]) +#-------------------------------------------------------------------- +# SC_BLOCKING_STYLE +# +# The statements below check for systems where POSIX-style +# non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented. +# On these systems (mostly older ones), use the old BSD-style +# FIONBIO approach instead. +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# HAVE_SYS_IOCTL_H +# HAVE_SYS_FILIO_H +# USE_FIONBIO +# O_NONBLOCK +# +#-------------------------------------------------------------------- + +AC_DEFUN(SC_BLOCKING_STYLE, [ + AC_CHECK_HEADERS(sys/ioctl.h) + AC_CHECK_HEADERS(sys/filio.h) + AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O]) + if test -f /usr/lib/NextStep/software_version; then + system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` + else + system=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then + system=unknown + else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + system=MP-RAS-`awk '{print $3}' /etc/.relid'` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` + fi + fi + fi + case $system in + # There used to be code here to use FIONBIO under AIX. However, it + # was reported that FIONBIO doesn't work under AIX 3.2.5. Since + # using O_NONBLOCK seems fine under AIX 4.*, I removed the FIONBIO + # code (JO, 5/31/97). + + OSF*) + AC_DEFINE(USE_FIONBIO) + AC_MSG_RESULT(FIONBIO) + ;; + SunOS-4*) + AC_DEFINE(USE_FIONBIO) + AC_MSG_RESULT(FIONBIO) + ;; + ULTRIX-4.*) + AC_DEFINE(USE_FIONBIO) + AC_MSG_RESULT(FIONBIO) + ;; + *) + AC_MSG_RESULT(O_NONBLOCK) + ;; + esac +]) + +#-------------------------------------------------------------------- +# SC_HAVE_VFORK +# +# Check to see whether the system provides a vfork kernel call. +# If not, then use fork instead. Also, check for a problem with +# vforks and signals that can cause core dumps if a vforked child +# resets a signal handler. If the problem exists, then use fork +# instead of vfork. +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# vfork (=fork) +# +#-------------------------------------------------------------------- + +AC_DEFUN(SC_HAVE_VFORK, [ + AC_TYPE_SIGNAL() + AC_CHECK_FUNC(vfork, tcl_ok=1, tcl_ok=0) + if test "$tcl_ok" = 1; then + AC_MSG_CHECKING([vfork/signal bug]); + AC_TRY_RUN([ +#include +#include +#include +int gotSignal = 0; +sigProc(sig) + int sig; +{ + gotSignal = 1; +} +main() +{ + int pid, sts; + (void) signal(SIGCHLD, sigProc); + pid = vfork(); + if (pid < 0) { + exit(1); + } else if (pid == 0) { + (void) signal(SIGCHLD, SIG_DFL); + _exit(0); + } else { + (void) wait(&sts); + } + exit((gotSignal) ? 0 : 1); +}], tcl_ok=1, tcl_ok=0, tcl_ok=0) + + if test "$tcl_ok" = 1; then + AC_MSG_RESULT(ok) + else + AC_MSG_RESULT([buggy, using fork instead]) + fi + fi + rm -f core + if test "$tcl_ok" = 0; then + AC_DEFINE(vfork, fork) + fi +]) + +#-------------------------------------------------------------------- +# SC_TIME_HANLDER +# +# Checks how the system deals with time.h, what time structures +# are used on the system, and what fields the structures have. +# +# Arguments: +# none +# +# Results: +# +# Defines some of the following vars: +# USE_DELTA_FOR_TZ +# HAVE_TM_GMTOFF +# HAVE_TM_TZADJ +# HAVE_TIMEZONE_VAR +# +#-------------------------------------------------------------------- + +AC_DEFUN(SC_TIME_HANDLER, [ + AC_CHECK_HEADERS(sys/time.h) + AC_HEADER_TIME + AC_STRUCT_TIMEZONE + + AC_MSG_CHECKING([tm_tzadj in struct tm]) + AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_tzadj;], + [AC_DEFINE(HAVE_TM_TZADJ) + AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + + AC_MSG_CHECKING([tm_gmtoff in struct tm]) + AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_gmtoff;], + [AC_DEFINE(HAVE_TM_GMTOFF) + AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + + # + # Its important to include time.h in this check, as some systems + # (like convex) have timezone functions, etc. + # + have_timezone=no + AC_MSG_CHECKING([long timezone variable]) + AC_TRY_COMPILE([#include ], + [extern long timezone; + timezone += 1; + exit (0);], + [have_timezone=yes + AC_DEFINE(HAVE_TIMEZONE_VAR) + AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + + # + # On some systems (eg IRIX 6.2), timezone is a time_t and not a long. + # + if test "$have_timezone" = no; then + AC_MSG_CHECKING([time_t timezone variable]) + AC_TRY_COMPILE([#include ], + [extern time_t timezone; + timezone += 1; + exit (0);], + [AC_DEFINE(HAVE_TIMEZONE_VAR) + AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no)) + fi + + # + # AIX does not have a timezone field in struct tm. When the AIX bsd + # library is used, the timezone global and the gettimeofday methods are + # to be avoided for timezone deduction instead, we deduce the timezone + # by comparing the localtime result on a known GMT value. + # + + if test "`uname -s`" = "AIX" ; then + AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes) + if test $libbsd = yes; then + AC_DEFINE(USE_DELTA_FOR_TZ) + fi + fi +]) + +#-------------------------------------------------------------------- +# SC_BUGGY_STRTOD +# +# Under Solaris 2.4, strtod returns the wrong value for the +# terminating character under some conditions. Check for this +# and if the problem exists use a substitute procedure +# "fixstrtod" (provided by Tcl) that corrects the error. +# +# Arguments: +# none +# +# Results: +# +# Might defines some of the following vars: +# strtod (=fixstrtod) +# +#-------------------------------------------------------------------- + +AC_DEFUN(SC_BUGGY_STRTOD, [ + AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0) + if test "$tcl_strtod" = 1; then + AC_MSG_CHECKING([for Solaris2.4/Tru64 strtod bugs]) + AC_TRY_RUN([ + extern double strtod(); + int main() + { + char *string = "NaN", *spaceString = " "; + char *term; + double value; + value = strtod(string, &term); + if ((term != string) && (term[-1] == 0)) { + exit(1); + } + value = strtod(spaceString, &term); + if (term == (spaceString+1)) { + exit(1); + } + exit(0); + }], tcl_ok=1, tcl_ok=0, tcl_ok=0) + if test "$tcl_ok" = 1; then + AC_MSG_RESULT(ok) + else + AC_MSG_RESULT(buggy) + LIBOBJS="$LIBOBJS fixstrtod.o" + AC_DEFINE(strtod, fixstrtod) + fi + fi +]) + +#-------------------------------------------------------------------- +# SC_TCL_LINK_LIBS +# +# Search for the libraries needed to link the Tcl shell. +# Things like the math library (-lm) and socket stuff (-lsocket vs. +# -lnsl) are dealt with here. +# +# Arguments: +# Requires the following vars to be set in the Makefile: +# DL_LIBS +# LIBS +# MATH_LIBS +# +# Results: +# +# Subst's the following var: +# TCL_LIBS +# MATH_LIBS +# +# Might append to the following vars: +# LIBS +# +# Might define the following vars: +# HAVE_NET_ERRNO_H +# +#-------------------------------------------------------------------- + +AC_DEFUN(SC_TCL_LINK_LIBS, [ + #-------------------------------------------------------------------- + # On a few very rare systems, all of the libm.a stuff is + # already in libc.a. Set compiler flags accordingly. + # Also, Linux requires the "ieee" library for math to work + # right (and it must appear before "-lm"). + #-------------------------------------------------------------------- + + AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm") + AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"]) + + #-------------------------------------------------------------------- + # On AIX systems, libbsd.a has to be linked in to support + # non-blocking file IO. This library has to be linked in after + # the MATH_LIBS or it breaks the pow() function. The way to + # insure proper sequencing, is to add it to the tail of MATH_LIBS. + # This library also supplies gettimeofday. + #-------------------------------------------------------------------- + + libbsd=no + if test "`uname -s`" = "AIX" ; then + AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes) + if test $libbsd = yes; then + MATH_LIBS="$MATH_LIBS -lbsd" + fi + fi + + + #-------------------------------------------------------------------- + # Interactive UNIX requires -linet instead of -lsocket, plus it + # needs net/errno.h to define the socket-related error codes. + #-------------------------------------------------------------------- + + AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"]) + AC_CHECK_HEADER(net/errno.h, AC_DEFINE(HAVE_NET_ERRNO_H)) + + #-------------------------------------------------------------------- + # Check for the existence of the -lsocket and -lnsl libraries. + # The order here is important, so that they end up in the right + # order in the command line generated by make. Here are some + # special considerations: + # 1. Use "connect" and "accept" to check for -lsocket, and + # "gethostbyname" to check for -lnsl. + # 2. Use each function name only once: can't redo a check because + # autoconf caches the results of the last check and won't redo it. + # 3. Use -lnsl and -lsocket only if they supply procedures that + # aren't already present in the normal libraries. This is because + # IRIX 5.2 has libraries, but they aren't needed and they're + # bogus: they goof up name resolution if used. + # 4. On some SVR4 systems, can't use -lsocket without -lnsl too. + # To get around this problem, check for both libraries together + # if -lsocket doesn't work by itself. + #-------------------------------------------------------------------- + + tcl_checkBoth=0 + AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1) + if test "$tcl_checkSocket" = 1; then + AC_CHECK_LIB(socket, main, LIBS="$LIBS -lsocket", tcl_checkBoth=1) + fi + if test "$tcl_checkBoth" = 1; then + tk_oldLibs=$LIBS + LIBS="$LIBS -lsocket -lnsl" + AC_CHECK_FUNC(accept, tcl_checkNsl=0, [LIBS=$tk_oldLibs]) + fi + AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main, + [LIBS="$LIBS -lnsl"])) + + # Don't perform the eval of the libraries here because DL_LIBS + # won't be set until we call SC_CONFIG_CFLAGS + + TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}' + AC_SUBST(TCL_LIBS) + AC_SUBST(MATH_LIBS) +]) + +#------------------------------------------------------------------------ +# SC_MAKE_LIB -- +# +# Generate a line that can be used to build a shared/unshared library +# in a platform independent manner. +# +# Arguments: +# none +# +# Requires: +# +# Results: +# +# Defines the following vars: +# MAKE_LIB Makefile rule for building a library +# MAKE_SHARED_LIB Makefile rule for building a shared library +# MAKE_UNSHARED_LIB Makefile rule for building a static +# library +#------------------------------------------------------------------------ + +AC_DEFUN(SC_MAKE_LIB, [ + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*) + if test "${CC-cc}" = "cl"; then + MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(${PACKAGE}_LIB_OBJECTS) " + MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS} \$(LDFLAGS) -out:\[$]@ \$(${PACKAGE}_LIB_OBJECTS) " + fi + ;; + *) + MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(${PACKAGE}_LIB_OBJECTS)" + MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(${PACKAGE}_LIB_OBJECTS) \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS}" + ;; + esac + + if test "${SHARED_BUILD}" = "1" ; then + MAKE_LIB=${MAKE_SHARED_LIB} + else + MAKE_LIB=${MAKE_STATIC_LIB} + fi + + AC_SUBST(MAKE_LIB) + AC_SUBST(MAKE_SHARED_LIB) + AC_SUBST(MAKE_STATIC_LIB) +]) + +#------------------------------------------------------------------------ +# SC_LIB_SPEC -- +# +# Compute the name of an existing object library located in libdir +# from the given base name and produce the appropriate linker flags. +# +# Arguments: +# basename The base name of the library without version +# numbers, extensions, or "lib" prefixes. +# extra_dir Extra directory in which to search for the +# library. This location is used first, then +# $prefix/$exec-prefix, then some defaults. +# +# Requires: +# CYGPATH command used to generate native style paths +# +# Results: +# +# Defines the following vars: +# ${basename}_LIB_NAME The computed library name. +# ${basename}_LIB_SPEC The computed linker flags. +#------------------------------------------------------------------------ + +AC_DEFUN(SC_LIB_SPEC, [ + AC_MSG_CHECKING(for $1 library) + + # Look in exec-prefix and prefix for the library. If neither of + # these were specified, look in libdir. It doesn't matter if libdir + # wasn't specified since a search in the unspecified directory will + # fail (NONE/lib) + + if test x"${exec_prefix}" != x"NONE" ; then + sc_lib_name_dir="${exec_prefix}/lib" + elif test x"${prefix}" != x"NONE" ; then + sc_lib_name_dir="${prefix}/lib" + else + eval "sc_lib_name_dir=${libdir}" + fi + + if test x"$2" != x ; then + sc_extra_lib_dir=$2 + else + sc_extra_lib_dir=NONE + fi + + for i in \ + `ls -dr ${sc_extra_lib_dir}/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr ${sc_extra_lib_dir}/$1.lib 2>/dev/null ` \ + `ls -dr ${sc_extra_lib_dir}/lib$1[[0-9]]* 2>/dev/null ` \ + `ls -dr ${sc_extra_lib_dir}/lib$1.* 2>/dev/null ` \ + `ls -dr ${sc_lib_name_dir}/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr ${sc_lib_name_dir}/$1.lib 2>/dev/null ` \ + `ls -dr ${sc_lib_name_dir}/lib$1[[0-9]]* 2>/dev/null ` \ + `ls -dr ${sc_lib_name_dir}/lib$1.* 2>/dev/null ` \ + `ls -dr /usr/lib/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr /usr/lib/$1.lib 2>/dev/null ` \ + `ls -dr /usr/lib/lib$1[[0-9]]* 2>/dev/null ` \ + `ls -dr /usr/lib/lib$1.* 2>/dev/null ` \ + `ls -dr /usr/local/lib/$1[[0-9]]*.lib 2>/dev/null ` \ + `ls -dr /usr/local/lib/$1.lib 2>/dev/null ` \ + `ls -dr /usr/local/lib/lib$1[[0-9]]* 2>/dev/null ` \ + `ls -dr /usr/local/lib/lib$1.* 2>/dev/null ` ; do + if test -f "$i" ; then + + sc_lib_name_dir=`dirname $i` + $1_LIB_NAME=`basename $i` + $1_LIB_PATH_NAME=$i + break + fi + done + + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*) + $1_LIB_SPEC=\"`${CYGPATH} ${$1_LIB_PATH_NAME}`\" + ;; + *) + # Strip off the leading "lib" and trailing ".a" or ".so" + + sc_lib_name_lib=`echo ${$1_LIB_NAME}|sed -e 's/^lib//' -e 's/\.[[^.]]*$//' -e 's/\.so.*//'` + $1_LIB_SPEC="-L${sc_lib_name_dir} -l${sc_lib_name_lib}" + ;; + esac + + if test "x${$1_LIB_NAME}" = x ; then + AC_MSG_ERROR(not found) + else + AC_MSG_RESULT(${$1_LIB_SPEC}) + fi +]) + +#------------------------------------------------------------------------ +# SC_PRIVATE_TCL_HEADERS -- +# +# Locate the private Tcl include files +# +# Arguments: +# +# Requires: +# TCL_SRC_DIR Assumes that SC_LOAD_TCLCONFIG has +# already been called. +# +# Results: +# +# Substs the following vars: +# TCL_TOP_DIR_NATIVE +# TCL_GENERIC_DIR_NATIVE +# TCL_UNIX_DIR_NATIVE +# TCL_WIN_DIR_NATIVE +# TCL_BMAP_DIR_NATIVE +# TCL_TOOL_DIR_NATIVE +# TCL_PLATFORM_DIR_NATIVE +# TCL_BIN_DIR_NATIVE +# TCL_INCLUDES +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PRIVATE_TCL_HEADERS, [ + AC_MSG_CHECKING(for Tcl private include files) + + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*) + TCL_TOP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}`\" + TCL_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/generic`\" + TCL_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/unix`\" + TCL_WIN_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/win`\" + TCL_BMAP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/bitmaps`\" + TCL_TOOL_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/tools`\" + TCL_COMPAT_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/compat`\" + TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE} + ;; + *) + TCL_TOP_DIR_NATIVE='$(TCL_SRC_DIR)' + TCL_GENERIC_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/generic' + TCL_UNIX_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/unix' + TCL_WIN_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/win' + TCL_BMAP_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/bitmaps' + TCL_TOOL_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/tools' + TCL_COMPAT_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/compat' + TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE} + ;; + esac + + AC_SUBST(TCL_TOP_DIR_NATIVE) + AC_SUBST(TCL_GENERIC_DIR_NATIVE) + AC_SUBST(TCL_UNIX_DIR_NATIVE) + AC_SUBST(TCL_WIN_DIR_NATIVE) + AC_SUBST(TCL_BMAP_DIR_NATIVE) + AC_SUBST(TCL_TOOL_DIR_NATIVE) + AC_SUBST(TCL_PLATFORM_DIR_NATIVE) + + TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}" + AC_SUBST(TCL_INCLUDES) + AC_MSG_RESULT(Using srcdir found in tclConfig.sh) +]) + +#------------------------------------------------------------------------ +# SC_PUBLIC_TCL_HEADERS -- +# +# Locate the installed public Tcl header files +# +# Arguments: +# None. +# +# Requires: +# CYGPATH must be set +# +# Results: +# +# Adds a --with-tclinclude switch to configure. +# Result is cached. +# +# Substs the following vars: +# TCL_INCLUDES +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PUBLIC_TCL_HEADERS, [ + AC_MSG_CHECKING(for Tcl public headers) + + AC_ARG_WITH(tclinclude, [ --with-tclinclude directory containing the public Tcl header files.], with_tclinclude=${withval}) + + if test x"${with_tclinclude}" != x ; then + if test -f "${with_tclinclude}/tcl.h" ; then + ac_cv_c_tclh=${with_tclinclude} + else + AC_MSG_ERROR([${with_tclinclude} directory does not contain Tcl public header file tcl.h]) + fi + else + AC_CACHE_VAL(ac_cv_c_tclh, [ + # Use the value from --with-tclinclude, if it was given + + if test x"${with_tclinclude}" != x ; then + ac_cv_c_tclh=${with_tclinclude} + else + # Check in the includedir, if --prefix was specified + + eval "temp_includedir=${includedir}" + for i in \ + `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ + `ls -d ${temp_includedir} 2>/dev/null` \ + `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null` \ + /usr/local/include /usr/include ; do + if test -f "$i/tcl.h" ; then + ac_cv_c_tclh=$i + break + fi + done + fi + ]) + fi + + # Print a message based on how we determined the include path + + if test x"${ac_cv_c_tclh}" = x ; then + AC_MSG_ERROR(tcl.h not found. Please specify its location with --with-tclinclude) + else + AC_MSG_RESULT(${ac_cv_c_tclh}) + fi + + # Convert to a native path and substitute into the output files. + + INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}` + + TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" + + AC_SUBST(TCL_INCLUDES) +]) + +#------------------------------------------------------------------------ +# SC_PRIVATE_TK_HEADERS -- +# +# Locate the private Tk include files +# +# Arguments: +# +# Requires: +# TK_SRC_DIR Assumes that SC_LOAD_TKCONFIG has +# already been called. +# +# Results: +# +# Substs the following vars: +# TK_INCLUDES +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PRIVATE_TK_HEADERS, [ + AC_MSG_CHECKING(for Tk private include files) + + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*) + TK_TOP_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}`\" + TK_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/unix`\" + TK_WIN_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/win`\" + TK_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/generic`\" + TK_XLIB_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/xlib`\" + TK_PLATFORM_DIR_NATIVE=${TK_WIN_DIR_NATIVE} + + TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE} -I${TK_XLIB_DIR_NATIVE}" + ;; + *) + TK_TOP_DIR_NATIVE='$(TK_SRC_DIR)' + TK_GENERIC_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/generic' + TK_UNIX_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/unix' + TK_WIN_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/win' + TK_PLATFORM_DIR_NATIVE=${TK_UNIX_DIR_NATIVE} + + TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}" + ;; + esac + + AC_SUBST(TK_TOP_DIR_NATIVE) + AC_SUBST(TK_UNIX_DIR_NATIVE) + AC_SUBST(TK_WIN_DIR_NATIVE) + AC_SUBST(TK_GENERIC_DIR_NATIVE) + AC_SUBST(TK_XLIB_DIR_NATIVE) + AC_SUBST(TK_PLATFORM_DIR_NATIVE) + + AC_SUBST(TK_INCLUDES) + AC_MSG_RESULT(Using srcdir found in tkConfig.sh) +]) + +#------------------------------------------------------------------------ +# SC_PUBLIC_TK_HEADERS -- +# +# Locate the installed public Tk header files +# +# Arguments: +# None. +# +# Requires: +# CYGPATH must be set +# +# Results: +# +# Adds a --with-tkinclude switch to configure. +# Result is cached. +# +# Substs the following vars: +# TK_INCLUDES +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PUBLIC_TK_HEADERS, [ + AC_MSG_CHECKING(for Tk public headers) + + AC_ARG_WITH(tkinclude, [ --with-tkinclude directory containing the public Tk header files.], with_tkinclude=${withval}) + + if test x"${with_tkinclude}" != x ; then + if test -f "${with_tkinclude}/tk.h" ; then + ac_cv_c_tkh=${with_tkinclude} + else + AC_MSG_ERROR([${with_tkinclude} directory does not contain Tk public header file tk.h]) + fi + else + AC_CACHE_VAL(ac_cv_c_tkh, [ + # Use the value from --with-tkinclude, if it was given + + if test x"${with_tkinclude}" != x ; then + ac_cv_c_tkh=${with_tkinclude} + else + # Check in the includedir, if --prefix was specified + + eval "temp_includedir=${includedir}" + for i in \ + `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ + `ls -d ${temp_includedir} 2>/dev/null` \ + `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null` \ + /usr/local/include /usr/include ; do + if test -f "$i/tk.h" ; then + ac_cv_c_tkh=$i + break + fi + done + fi + ]) + fi + + # Print a message based on how we determined the include path + + if test x"${ac_cv_c_tkh}" = x ; then + AC_MSG_ERROR(tk.h not found. Please specify its location with --with-tkinclude) + else + AC_MSG_RESULT(${ac_cv_c_tkh}) + fi + + # Convert to a native path and substitute into the output files. + + INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}` + + TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" + + AC_SUBST(TK_INCLUDES) +]) + +#------------------------------------------------------------------------ +# SC_SIMPLE_EXEEXT +# Select the executable extension based on the host type. This +# is a lightweight replacement for AC_EXEEXT that doesn't require +# a compiler. +# +# Arguments +# none +# +# Results +# Subst's the following values: +# EXEEXT +#------------------------------------------------------------------------ + +AC_DEFUN(SC_SIMPLE_EXEEXT, [ + AC_MSG_CHECKING(executable extension based on host type) + + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*) + EXEEXT=".exe" + ;; + *) + EXEEXT="" + ;; + esac + + AC_MSG_RESULT(${EXEEXT}) + AC_SUBST(EXEEXT) +]) + +#------------------------------------------------------------------------ +# SC_PROG_TCLSH +# Locate a tclsh shell in the following directories: +# ${exec_prefix}/bin +# ${prefix}/bin +# ${TCL_BIN_DIR} +# ${TCL_BIN_DIR}/../bin +# ${PATH} +# +# Arguments +# none +# +# Results +# Subst's the following values: +# TCLSH_PROG +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PROG_TCLSH, [ + AC_MSG_CHECKING([for tclsh]) + + AC_CACHE_VAL(ac_cv_path_tclsh, [ + search_path=`echo ${exec_prefix}/bin:${prefix}/bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${PATH} | sed -e 's/:/ /g'` + for dir in $search_path ; do + for j in `ls -r $dir/tclsh[[8-9]]*${EXEEXT} 2> /dev/null` \ + `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do + if test x"$ac_cv_path_tclsh" = x ; then + if test -f "$j" ; then + ac_cv_path_tclsh=$j + break + fi + fi + done + done + ]) + + if test -f "$ac_cv_path_tclsh" ; then + TCLSH_PROG=$ac_cv_path_tclsh + AC_MSG_RESULT($TCLSH_PROG) + else + AC_MSG_ERROR(No tclsh found in PATH: $search_path) + fi + AC_SUBST(TCLSH_PROG) +]) + +#------------------------------------------------------------------------ +# SC_PROG_WISH +# Locate a wish shell in the following directories: +# ${exec_prefix}/bin +# ${prefix}/bin +# ${TCL_BIN_DIR} +# ${TCL_BIN_DIR}/../bin +# ${PATH} +# +# Arguments +# none +# +# Results +# Subst's the following values: +# WISH_PROG +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PROG_WISH, [ + AC_MSG_CHECKING([for wish]) + + AC_CACHE_VAL(ac_cv_path_wish, [ + search_path=`echo ${exec_prefix}/bin:${prefix}/bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${PATH} | sed -e 's/:/ /g'` + for dir in $search_path ; do + for j in `ls -r $dir/wish[[8-9]]*${EXEEXT} 2> /dev/null` \ + `ls -r $dir/wish*${EXEEXT} 2> /dev/null` ; do + if test x"$ac_cv_path_wish" = x ; then + if test -f "$j" ; then + ac_cv_path_wish=$j + break + fi + fi + done + done + ]) + + if test -f "$ac_cv_path_wish" ; then + WISH_PROG=$ac_cv_path_wish + AC_MSG_RESULT($WISH_PROG) + else + AC_MSG_ERROR(No wish found in PATH: $search_path) + fi + AC_SUBST(WISH_PROG) +]) + +#------------------------------------------------------------------------ +# SC_SET_PLATFORM +# Determine the common name of the platform we are using +# +# Arguments +# none +# +# Results +# Subst's the following values: +# PLATFORM +# CYGPATH +#------------------------------------------------------------------------ + +AC_DEFUN(SC_SET_PLATFORM, [ + AC_MSG_CHECKING(host platform) + + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*) + CYGPATH="cygpath -w" + PLATFORM=win32-ix86 + ;; + SunOS) + CYGPATH=echo + PLATFORM=solaris-sparc + ;; + Linux) + CYGPATH=echo + PLATFORM=linux-ix86 + ;; + FreeBSD) + CYGPATH=echo + PLATFORM=freebsd-ix86 + ;; + AIX) + CYGPATH=echo + PLATFORM=aix-risc + ;; + HP-UX) + CYGPATH=echo + PLATFORM=hpux-parisc + ;; + IRIX) + CYGPATH=echo + PLATFORM=irix-mips + ;; + *) + CYGPATH=echo + PLATFORM=UNSUPPORTED + ;; + esac + + if test x"${PLATFORM}" = x"UNSUPPORTED" ; then + AC_MSG_ERROR(Can't figure out what platform you are using) + else + AC_MSG_RESULT(${PLATFORM}) + fi + + AC_SUBST(PLATFORM) + AC_SUBST(CYGPATH) +]) + +#------------------------------------------------------------------------ +# SC_PATH_MODULE +# Add a --with-foodir flag for locating sources for an external module +# Search order: +# --with-foodir configure switch value +# cached configure value +# $2 argument +# ${srcdir}/modules/$1 +# ${srcdir}/../$1 +# ${srcdir}/../$1[0-9]* +# +# Arguments +# $1 Name of module to locate +# $2 Default directory where module can be found. If not specified, +# the macro looks in some well-known locations. This argument +# is mainly used for internal modules. +# +# Results +# sets MODULE_DIR_$1 to point to the top level directory of +# the module. +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PATH_MODULE, [ + + if test x"${CYGPATH}" = x ; then + SC_SET_PLATFORM + fi + + modsrcdir=$1 + + AC_ARG_WITH($1dir, [ --with-$1dir directory containing sources for $1], with_module=${withval}, with_module="") + AC_MSG_CHECKING([for $1dir]) + + if test x"${with_module}" = x ; then + AC_CACHE_VAL(ac_cv_module_$1dir,[ + if test x"${with_module}" != x ; then + # Sanity check. Look for this module dir + if test -d "${with_module}" ; then + ac_cv_module_$1dir=`(cd ${with_module} ; pwd)` + fi + fi + + + # If not found, look in a few standard places for this module. + # Look in the default location (as specified by the argument(s) + # to this macro) first + + if test x"$2" != x ; then + for i in \ + `ls -dr $2 2>/dev/null` \ + `ls -dr ${srcdir}/$2 2>/dev/null` \ + `ls -dr ${srcdir}/../$2 2>/dev/null` \ + `ls -dr ${srcdir}/../$2[[0-9]]* 2>/dev/null` ; do + if test -d $i ; then + ac_cv_module_$1dir=`(cd $i; pwd)` + break + fi + done + fi + + # Make sure not to require a specific version number. + + if test x"${ac_cv_module_$1dir}" = x ; then + for i in \ + `ls -dr ${srcdir}/modules/$modsrcdir 2>/dev/null` \ + `ls -dr ${srcdir}/../$modsrcdir 2>/dev/null` \ + `ls -dr ${srcdir}/../$modsrcdir[[0-9]]* 2>/dev/null` ; do + if test -d $i ; then + ac_cv_module_$1dir=`(cd $i; pwd)` + break + fi + done + fi + + + ]) + else + if test -d "${with_module}" ; then + ac_cv_module_$1dir=`(cd ${with_module} ; pwd)` + else + AC_MSG_ERROR("Directory ${with_module} does not exist!") + fi + fi + + if test x"${ac_cv_module_$1dir}" = x ; then + AC_MSG_WARN(MISSING. Use --with-$1dir to specify location of $1 or make sure you have checked out the sources from cvs.) + MISSING_MODULE_LIST="${MISSING_MODULE_LIST} $1" + MODULE_LIST="${MODULE_LIST} $1" + else + # Strip off any trailing \ from the path + MODULE_DIR_$1=`${CYGPATH} ${ac_cv_module_$1dir} | sed -e 's%\\\\$%%'` + AC_MSG_RESULT(${MODULE_DIR_$1}) + AC_SUBST(MODULE_DIR_$1) + if test x"$1" != x"${PACKAGE}" ; then + MODULE_LIST="${MODULE_LIST} $1" + fi + fi +]) + +#------------------------------------------------------------------------ +# SC_PATH_TOOLS +# Add a --with-toolsdir flag for locating sources for an external module +# +# Arguments +# none +# +# Results +# sets MODULE_DIR_tools to point to the top level directory of +# the module. +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PATH_TOOLS, [ + AC_ARG_WITH(toolsdir, [ --with-toolsdir directory containing sources for tools], with_module=${withval}, with_module="") + AC_MSG_CHECKING([for toolsdir]) + + if test x"${with_module}" = x ; then + AC_CACHE_VAL(ac_cv_module_toolsdir,[ + if test x"${with_module}" != x ; then + # Sanity check. Look for configure.in in this module dir + if test -d "${with_module}" ; then + ac_cv_module_toolsdir=`(cd ${with_module} ; pwd)` + fi + fi + + + + # If not found, look in a few standard places for this module. + # Make sure not to require a specific version number. + + if test x"${ac_cv_module_toolsdir}" = x ; then + for i in \ + `ls -dr /tools/1.[[1-5]] 2>/dev/null` \ + `ls -dr /tools/TclPro1.[[1-5]] 2>/dev/null` \ + `ls -dr //t/tools/1.[[1-5]] 2>/dev/null` \ + `ls -dr //t/tools/TclPro1.[[1-5]] 2>/dev/null` \ + `ls -dr //pop/tools/1.[[1-5]] 2>/dev/null` \ + `ls -dr //pop/tools/TclPro1.[[1-5]] 2>/dev/null` ; do + if test -d $i ; then + ac_cv_module_toolsdir=`(cd $i; pwd)` + break + fi + done + fi + + + ]) + else + if test -d "${with_module}" ; then + ac_cv_module_toolsdir=`(cd ${with_module} ; pwd)` + else + AC_MSG_WARN(Directory ${with_module} does not exist!) + fi + fi + + if test x"${ac_cv_module_toolsdir}" = x ; then + AC_MSG_WARN(No tools directory - pressing forward with bogus value.) + MODULE_DIR_tools=no_tools_dir + AC_SUBST(MODULE_DIR_tools) +# AC_MSG_ERROR("Use --with-toolsdir to specify location of tools") +# exit 1 + else + MODULE_DIR_tools=${ac_cv_module_toolsdir} + AC_MSG_RESULT(${ac_cv_module_toolsdir}) + AC_SUBST(MODULE_DIR_tools) + fi +]) + +#------------------------------------------------------------------------ +# SC_PATH_PROTOOLS +# Path to a valid Tclpro installation. You must call SC_ SET_PLATFORM +# before calling this macro. +# +# Arguments +# none +# +# Results +# Subst's the following values: +# PROTOOLSDIR +#------------------------------------------------------------------------ + +AC_DEFUN(SC_PATH_PROTOOLS, [ + if test x"${PLATFORM}" = x ; then + SC_SET_PLATFORM + fi + + AC_ARG_WITH(protools, [ --with-protools directory containing the Tclpro installation], protools_dir=${withval}) + + AC_MSG_CHECKING(for protclsh in a TclPro installation) + + if test x"${protools_dir}" != x ; then + # Look for protclsh + + for i in `ls -r ${protools_dir}/${PLATFORM}/bin/protclsh* 2>/dev/null` ; do + if test -f $i ; then + PROTCLSH=$i + break + fi + done + else + for i in `ls -dr /tools/TclPro1.[[3-4]] 2>/dev/null` \ + `ls -dr //t/tools/TclPro1.[[3-4]] 2>/dev/null ` ; do + + # Look for protclsh + + for j in `ls $i/${PLATFORM}/bin/protclsh* 2>/dev/null` ; do + if test -f $j ; then + PROTCLSH=$j + break + fi + done + + if test x"${PROTCLSH}" != x ; then + protools_dir=$i + break + fi + done + fi + + if test x"${PROTCLSH}" = x ; then + AC_MSG_WARN(Could not locate a TclPro installation containing protclsh. Use --with-protoolsdir to specify a valid TclPro installation.) + protools_dir=BOGUS_protools_dir + else + AC_MSG_RESULT("found ${PROTCLSH}") + fi + + PROTOOLSDIR=${protools_dir} + AC_SUBST(PROTOOLSDIR) +]) diff --git a/configure b/configure new file mode 100755 index 0000000..e8f8218 --- /dev/null +++ b/configure @@ -0,0 +1,2234 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.59. +# +# Copyright (C) 2003 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="ChangeLog" +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CYGPATH EXEEXT TCLSH_PROG PACKAGE VERSION LIBOBJS LTLIBOBJS' +ac_subst_files='' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +_ACEOF + + cat <<_ACEOF +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-tclsh=FILE location of a working tclsh executable + +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF + +Copyright (C) 2003 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.59. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_sep= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + + + + + + + + + + + +case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*) + CYGPATH="cygpath -w" + ;; + *) + CYGPATH=echo + ;; +esac + + + +# Check whether --with-tclsh or --without-tclsh was given. +if test "${with_tclsh+set}" = set; then + withval="$with_tclsh" + with_tclsh=${withval} +fi; + + + echo "$as_me:$LINENO: checking executable extension based on host type" >&5 +echo $ECHO_N "checking executable extension based on host type... $ECHO_C" >&6 + + case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*|*MSYS*) + EXEEXT=".exe" + ;; + *) + EXEEXT="" + ;; + esac + + echo "$as_me:$LINENO: result: ${EXEEXT}" >&5 +echo "${ECHO_T}${EXEEXT}" >&6 + + + +# allow user to override the tclsh we think we found +if test x"${with_tclsh}" != x ; then + echo "$as_me:$LINENO: checking for tclsh" >&5 +echo $ECHO_N "checking for tclsh... $ECHO_C" >&6 + if "${with_tclsh}" < /dev/null > /dev/null 2> /dev/null + then + TCLSH_PROG=${with_tclsh} + echo "$as_me:$LINENO: result: $TCLSH_PROG, via --with-tclsh" >&5 +echo "${ECHO_T}$TCLSH_PROG, via --with-tclsh" >&6 + else + { { echo "$as_me:$LINENO: error: Bad --with-tclsh ${with_tclsh}, not found or not executable" >&5 +echo "$as_me: error: Bad --with-tclsh ${with_tclsh}, not found or not executable" >&2;} + { (exit 1); exit 1; }; } + fi + +else + + echo "$as_me:$LINENO: checking for tclsh" >&5 +echo $ECHO_N "checking for tclsh... $ECHO_C" >&6 + + if test "${ac_cv_path_tclsh+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + search_path=`echo ${exec_prefix}/bin:${prefix}/bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${PATH} | sed -e 's/:/ /g'` + for dir in $search_path ; do + for j in `ls -r $dir/tclsh[8-9]*${EXEEXT} 2> /dev/null` \ + `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do + if test x"$ac_cv_path_tclsh" = x ; then + if test -f "$j" ; then + ac_cv_path_tclsh=$j + break + fi + fi + done + done + +fi + + + if test -f "$ac_cv_path_tclsh" ; then + TCLSH_PROG=$ac_cv_path_tclsh + echo "$as_me:$LINENO: result: $TCLSH_PROG" >&5 +echo "${ECHO_T}$TCLSH_PROG" >&6 + else + { { echo "$as_me:$LINENO: error: No tclsh found in PATH: $search_path" >&5 +echo "$as_me: error: No tclsh found in PATH: $search_path" >&2;} + { (exit 1); exit 1; }; } + fi + + +fi + + +# ### ######### ########################### + +SAK=`$CYGPATH ${srcdir}/sak.tcl` + +PACKAGE=`$TCLSH_PROG "${SAK}" name` +MAJOR_VERSION=`$TCLSH_PROG "${SAK}" major` +MINOR_VERSION=`$TCLSH_PROG "${SAK}" minor` +PATCHLEVEL="" + +VERSION=${MAJOR_VERSION}.${MINOR_VERSION}${PATCHLEVEL} +NODOT_VERSION=${MAJOR_VERSION}${MINOR_VERSION} + + + + +# ### ######### ########################### + + ac_config_files="$ac_config_files Makefile" +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by $as_me, which was +generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Report bugs to ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.59, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2003 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF + + + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@CYGPATH@,$CYGPATH,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@TCLSH_PROG@,$TCLSH_PROG,;t t +s,@PACKAGE@,$PACKAGE,;t t +s,@VERSION@,$VERSION,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo "$f";; + *) # Relative + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..1397e02 --- /dev/null +++ b/configure.in @@ -0,0 +1,50 @@ +AC_INIT(ChangeLog) + +case "`uname -s`" in + *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*) + CYGPATH="cygpath -w" + ;; + *) + CYGPATH=echo + ;; +esac +AC_SUBST(CYGPATH) + +AC_ARG_WITH(tclsh, [ --with-tclsh=FILE location of a working tclsh executable], with_tclsh=${withval}) + +SC_SIMPLE_EXEEXT + +# allow user to override the tclsh we think we found +if test x"${with_tclsh}" != x ; then + AC_MSG_CHECKING([for tclsh]) + if "${with_tclsh}" < /dev/null > /dev/null 2> /dev/null + then + TCLSH_PROG=${with_tclsh} + AC_MSG_RESULT([$TCLSH_PROG, via --with-tclsh]) + else + AC_MSG_ERROR([Bad --with-tclsh ${with_tclsh}, not found or not executable]) + fi + AC_SUBST(TCLSH_PROG) +else + SC_PROG_TCLSH +fi + + +# ### ######### ########################### + +SAK=`$CYGPATH ${srcdir}/sak.tcl` + +PACKAGE=`$TCLSH_PROG "${SAK}" name` +MAJOR_VERSION=`$TCLSH_PROG "${SAK}" major` +MINOR_VERSION=`$TCLSH_PROG "${SAK}" minor` +PATCHLEVEL="" + +VERSION=${MAJOR_VERSION}.${MINOR_VERSION}${PATCHLEVEL} +NODOT_VERSION=${MAJOR_VERSION}${MINOR_VERSION} + +AC_SUBST(PACKAGE) +AC_SUBST(VERSION) + +# ### ######### ########################### + +AC_OUTPUT([Makefile]) diff --git a/devdoc/critcl-tcllib.txt b/devdoc/critcl-tcllib.txt new file mode 100644 index 0000000..d63b7d8 --- /dev/null +++ b/devdoc/critcl-tcllib.txt @@ -0,0 +1,116 @@ +* Enhancing tcllib with CriTcl + + I have been looking into using critcl [http://wiki.tcl.tk.critcl] + to enhance some of the computationally intensive packages in + tcllib with compiled functions. The intention here is to provide + an alternative implementation for the 'hot-spots' in a package. In + the case of the uuencode package, for instance, we can provide + just the function that encodes or decodes a chunk of data. The + remainder of the package can be left in Tcl - which importantly + means that the public interface to the package remains identical. + + There is already some precedent for enhancing tcllib in this + way. Trf is used in the base64, md5 and sha1 packages to + optionally provide a compiled implementation of the + package. Importantly we still have a pure-tcl implementation. + + Provided that we accept that this hot-spot compilation strategy is + a good idea there is an issue to do with how the compiled code is + bundled. Critcl can build libraries or packages. Packages are the + same as libraries except that the library is placed into a + platform dependent subdirectory and a suitable pkgIndex file is + created. + + There are four main possibilities: + 1) library-per-package + 2) package-per-package + 3) package-per-module + 4) tcllib-c-package + +** library-per-package + a library is built for each critcl-enabled tcllib package. For + instance, 'critcl -lib uuencode.dll base64/uuencode.tcl'. This + doesn't generate any package loading tcl code and so doesn't + require a new package name. Instead the calling code will have to + handle loading the correct library. Once loaded the compiled + commands are available in the tcl namespace. For example, + ' load uuencode.tcl ; uuencode::CEncode abc ' + +** package-per-package + a compiled package is built for each critcl-enabled package. For + instance, 'critcl -pkg uuencode_c base64/uuencode.tcl'. This + builds the same library and for library-per-package but also + generates the package loading code. This requires a unique package + name (such as ${package}_c). + +** package-per-module + a compiled package is built for each tcllib module. For instance, + 'critcl -pkg base64c base64/base64c.tcl base64/uuencode.tcl + base64/yencode.tcl'. This collects all the critcl sections for a + module (which may contain a number of packages) into one library + and then creates the package loading code for this library. + +** tcllib-c-package + a compiled package is built for tcllib. This combines all the + critcl sections for all tcllib packages together in one + library. An advantage to this is that there is only one package + name and only one library. + + + +* Examples + +** library-per-package + + critcl -lib yencode.dll base64\yencode.tcl + critcl -lib uuencode.dll base64\uuencode.tcl + critcl -lib md4c.dll md4\md4c.tcl + critcl -lib md4c.dll md4\md4c.tcl + critcl -lib sum.dll crc\sum.tcl + + This gives us the named dll's in the current directory. For this case + I get (under Windows): + md4c.dll - 15,360 + md5c.dll - 15,360 + sum.dll - 12,800 + uuencode.dll - 13,312 + yencode.dll - 12,800 + +** package-per-package + + This creates libraries of the same size as library-per-package. + +** package-per-module + + critcl -libdir . -pkg base64c base64c\base64c.tcl base64\uuencode.tcl + base64\yencode.tcl + critcl -libdir . -pkg md4c md4\md4c.tcl + critcl -libdir . -pkg md5c md5\md5c.tcl + critcl -libdir . -pkg crc crc\crcc.tcl crc\sum.tcl + + This gives: + base64c.dll - 14,848 + crcc.dll - 12,800 + md4c.dll - 15,360 + md5c.dll - 15,360 + +** tcllib-c-package + + critcl -libdir . -pkg tcllibc + tcllibc.dll - 19,968 + +* Conclusion + + We can see that the overhead of producing a dynamic library is + quite significant - at least for Windows. Building a library for + all 5 packages is only around 4000 bytes larger than the library + for a single package. There is also a cost involved in loading + each dynamic library as they have to be loaded from disk and + relocated in memory. Other concerns are the package namespace + pollution - by which I mean the proliferation of package names + caused by creating compiled packages for each tcllib package. Also + ease of loading - I don't really think abandoning the tcl package + mechanism is a good idea. + +Pat Thoyts + diff --git a/devdoc/cvs.branches.fig b/devdoc/cvs.branches.fig new file mode 100644 index 0000000..3c6f6a3 --- /dev/null +++ b/devdoc/cvs.branches.fig @@ -0,0 +1,32 @@ +#FIG 3.2 +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +6 3000 2025 5400 2400 +4 0 12 50 0 0 14 0.0000 4 150 2385 3000 2175 Point releases are branched\001 +4 0 12 50 0 0 14 0.0000 4 150 1530 3000 2370 from RELEASES\001 +-6 +6 2400 750 5700 1200 +4 0 1 50 0 0 14 0.0000 4 195 3225 2400 900 Developer performs internal releases,\001 +4 0 1 50 0 0 14 0.0000 4 195 3285 2400 1095 merging from HEAD into RELEASES\001 +-6 +2 1 0 4 0 7 50 0 -1 0.000 0 0 7 1 0 2 + 2 1 4.00 240.00 480.00 + 300 600 5700 600 +2 1 0 2 1 7 50 0 -1 0.000 0 0 -1 1 0 2 + 2 1 2.00 120.00 240.00 + 2100 600 2400 1800 +2 1 0 5 12 7 50 0 -1 0.000 0 0 -1 1 0 3 + 2 1 5.00 300.00 600.00 + 2700 1800 3000 3000 5700 3000 +2 1 0 4 17 7 50 0 -1 0.000 0 0 7 1 0 3 + 2 1 4.00 240.00 480.00 + 1200 600 1500 1800 5700 1800 +4 0 0 50 0 0 14 0.0000 4 195 2835 3150 1575 Staging for release : RELEASES\001 +4 0 0 50 0 0 14 0.0000 4 195 1905 3900 300 Development : HEAD\001 +4 0 0 50 0 0 14 0.0000 4 150 930 4800 2700 Tcllib 1.2.0\001 diff --git a/devdoc/devguide.html b/devdoc/devguide.html new file mode 100644 index 0000000..c438ca4 --- /dev/null +++ b/devdoc/devguide.html @@ -0,0 +1,50 @@ + + +

Guide for Tcllib developers. +

+
+ +

CVS Repository +

+
+ + +

+ +The CVS repository for Tcllib contains two main branches, the HEAD for +development, and RELEASES as the staging area for official +releases. At RELEASES the minor branches containing the various +official releases are anchored at. +

+ +

All the branches are of interest to the developers for + Tcllib. Ongoing development happens in HEAD, which can be + unstable or may not work at all. Whenever a developer considers + a piece of code, or module, he is responsible for as + sufficiently stable she has to perform an internal release which + merges this part from HEAD into RELEASES. Tools to help with + this will be provided. +

+ +

The branches for the official releases of tcllib are of interest to + a developer because it is expected that fixes for important bugs + not only go into the HEAD branch but also into the release + branches for the release they were found in and all releases + following that one. This is to allow the release manager to + create patch releases of existing releases distributing important + bugfixes as well. +

+ +

Version numbers for modules are handled as described below. This + way of handling them was chosen so that the modules in the + development branch always uses version numbers different from + the version numbers in the official releases made so far. +

+
    +
  • Whenever an internal release of a module FOO is done, the + developer performing this internal release has to increment + the version number of the module after the release was + executed. +
diff --git a/devdoc/dirlayout_install.txt b/devdoc/dirlayout_install.txt new file mode 100644 index 0000000..8cacea0 --- /dev/null +++ b/devdoc/dirlayout_install.txt @@ -0,0 +1,85 @@ +Tcllib installation directory layout +==================================== + +This document describes the possible layouts for an installed tcllib, +discusses their pro and contra and makes a choice for Tcllib 1.4. A +roadmap of changes in the future is made available as appendix. + +[L1/D] Deep layout +------------------ + + This is the layout of Tcllib 1.3 (and versions before that). + + A single directory tcllib is created, and all + subdirectories of the 'modules' subdirectory in the + distribution is copied into it. This is restricted at large to + *.tcl files, with exception made for some modules with special + needs. + + Pro: + Contra: + Makes the handling of the various package indices, + well, not difficult, but uncomfortable. + + +[L2/Fa] Flat layout 1 +--------------------- + + A directory is created for each module of tcllib. + + Pro: + Handling of package indices is easier than for L1/D, a + toplevel index file with all its problems is not + required anymore. + + Contra: + Directories should be versioned to avoid conflicts + between multiple releases. modules have no + version. This can be faked for modules containing one + package, but not for the modules with more. + + +[L2/Fb] Flat layout 2 +--------------------- + + A directory is created for each package in tcllib. + + Pro + Handling of package indices is easy, one per package. + + Contra: + Modules containing more than one package are difficult + to handle. The system has to split them into the + individual packages. This rendered very difficult + because of shared package index files. + + This can be solved by moving tcllib (back) towards of + one package per module. When that goal is reached + L2/Fa and L2/Fb become the same, and the contra for + L2/Fa vanishes too as an exact version number can be + associated with each directory. + +Chosen layout for Tcllib 1.4 +---------------------------- + + L1/D + + Despite the problems with package indices the contras against + the flat structures are too strong at this point in + time. Automatic solutions are not really possible, or require + a very high effort. + +Roadmap +------- + Change the module directories of tcllib to contain exactly one + package per directory, with appropriate index (and meta data). + + This not only makes sense for easier handling of installation + and package indices, but also in the greater context of + wrapping code for deployment. + + +----------------------------------- +This document is in the public domain. + + Andreas Kupries diff --git a/devdoc/indexing.txt b/devdoc/indexing.txt new file mode 100644 index 0000000..ddc501a --- /dev/null +++ b/devdoc/indexing.txt @@ -0,0 +1,418 @@ +Tcllib package indexing +======================= + +This document describes the possibilities for using one or more +pkgIndex.tcl files in an installation of tcllib to provide the +information about all of its packages to a tcl interpreter, discusses +their pro and contra and makes a choice for Tcllib 1.4. A roadmap of +changes in the future is made available as an appendix. + +Background under which to see the solutions: + + There are three level of groupings: + + - The tcllib project itself + - Modules in the project (== subdirectory of 'modules') + - Packages in a module. + + Each module currently contains one package index file. + + Some modules contain more than one package. They share the index. + + Most packages require specific versions of the Tcl + interpreter. They perform the checks in their package index + file and do not register if the pre-requisites are not + fulfilled. + + Other checks are possible, but currently not in use. + +Note I: + Whether a solution is actually applicable depends on external + factors, like the chosen directory layout of an installed + tcllib. + +Note II: + All solutions currently depend on the specific implementation + of [tclPkgUnknown] coming with the basic core, simply by the + fact that the files looked at are called 'pkgIndex.tcl'. This + is therefore no contra argument against any specific solution, + but against all. We ignore this as currently there is no + better replacement in existence. + +Note III: + We have to support Tcl before 8.3. as some packages in tcllib + allow this. + + +[i1/ng] No global package index +------------------------------- + + In this solution the module package indices are the only index + files present in an installation. + + This solution is applicable if and only if one of the flat + directory layouts (L2/Fa or L2/Fb) has been chosen. + + Pro: + Simple. No need for complex management. + + +[i2/ad] Global package index, auto_path extension, direct +--------------------------------------------------------- + + A single global package index is present in the toplevel + directory of the installation. + + This solution is applicable if and only if the deep directory + layout (L2/D) has been chosen. + + The package index contains a series of statements extending + the auto_path variable with all module directories. The list + of names of the module directories is hardcoded. In other + words, it is _not_ determined via [glob]. + + Example: + lappend auto_path [file join $dir md4] + lappend auto_path [file join $dir md5] + lappend auto_path [file join $dir sha1] + ... + + + Pro: + [[0]] Compared to [i3/ag] this should be bit faster + as glob'ing the directory tree of tcllib is + avoided. This performance-boost is not a big + pro according to the opinions below. + + [[1]] Relies on the module package index files for + the actual registration of packages, thus + automatically inherits the correct constraints + on the registration of packages. No additional + complexities. + + [[2]] Easier to generate than [i6/dr]. + + Contra: + [[3]] Hard coding the directory names implies that + adding modules to the installed tcllib is not + as easy as just creating a new directory for + the module/package. The global index has to be + updated too. + + Contra-Contra: + <> + + <> + + [[4]] Extending the 'auto_path' list causes the + package management of the tcl core to re-read + the list and glob through all of them for new + package indices. This has a high cost in terms + of filesystem access, i.e. is an issue of + performance. + + Contra-Contra: + <> + + <> + + + [[5]] This enables auto-loading in each module + (according to any tclIndex file installed). + This should not be done by the package + indexer, but by the package itself. See + control for an example. + + [[10]] Will not work with Tcl releases prior to + 8.3.1. Only then was [tclPkgUnknown] + "enhanced" to deal with changing ::auto_path + values. If tcllib 1.4 wishes to continue + supporting pre-8.3.1 Tcl, then this option has + to be supplemented with a fallback. + + +[i3/ag] Global package index, auto_path extension, glob +------------------------------------------------------- + + This is like [i2/ad], except that the list of sub directories + is not hardcoded into the index, but determined through glob. + + Example: + foreach subdir [glob -nocomplain -type d $dir/*] { + lappend auto_path $subdir + } + + Pro: + Anti-[[3]] + [[1]] + + Contra: + All the contras of [i2/ad] and Anti-[[0]]. + + +[i4/sd] Global package index, sourcing module indices, direct +------------------------------------------------------------- + + A single global package index is present in the toplevel + directory of the installation. + + This solution is applicable if and only if the deep directory + layout (L2/D) has been chosen. + + The package index contains a series of statements source'ing + the package index files of the modules in tcllib. The list + of names of the module directories is hardcoded. In other + words, it is _not_ determined via [glob]. + + Example: + set main $dir + set dir [file join $main md4] ; source [file join $dir pkgIndex.tcl] + set dir [file join $main md5] ; source [file join $dir pkgIndex.tcl] + set dir [file join $main sha1] ; source [file join $dir pkgIndex.tcl] + ... + + Pro: + [[0]], but compared to [i5/sg]. + [[1]] + [[2]] + [[6]] In contrast to [i2/ad] and [i3/ag] repeated + glob'ing for package index files is + avoided. This cuts down on costly FS accesses. + I.e. another perf. boost. + + Contra: + [[3]] + +[i5/sg] Global package index, sourcing module indices, glob +----------------------------------------------------------- + + This is like [i4/sd], except that the list of package indices + to source is not hardcoded into the index, but determined + through glob. + + Example: + foreach subdir [glob -nocomplain -type d $dir/*] { + set dir $subdir + source [file join $dir pkgIndex.tcl] + } + + Pro: + Anti-[[3]] + [[1]] + [[2]] + + Contra: + All the contras of [i2/sd], and Anti-[[0]] + + +[i6/dr] Global package index, direct registration +------------------------------------------------- + + A single global package index is present in the toplevel + directory of the installation. + + This solution is applicable if and only if the deep directory + layout (L2/D) has been chosen. + + The package index contains a series of statements which + directly register all the tcllib packages. + + Example: + if {[constraint]} {return} + package ifneeded md4 [list source [file join $dir md4 md4.tcl]] + package ifneeded md5 [list source [file join $dir md4 md4.tcl]] + package ifneeded sha1 [list source [file join $dir md4 md4.tcl]] + ... more constraints ... package ifneeded + + Pro: + [[7]] This is the fasted solution as the number of + accesses to the filesystem is minimal. + + Contra: + [[[3]] + Anti-[[1]] Care has to be taken to ensure that + the constraints the module indices + place on the registration of packages + are replicated in the global + index. All other solutions simply used + the module indices and thus got it + right automatically. Now supporting + code is required to detect such + constraints and then to properly + recreate them globally. + + = High complexity for the maintainer. + +[i7/ad] Global package index, auto_path extension, direct +--------------------------------------------------------- + + A single global package index is present in the toplevel + directory of the installation. + + This solution is applicable if and only if the deep directory + layout (L2/D) has been chosen. + + The package index contains a single statement extending the + auto_path variable with the tcllib main directory. The + standard package management will then find all module sub + directories and the package indices in them. + + Example: + lappend auto_path $dir + + Pro: + [[1]] + [[8]] This is the easiest solution by far in terms + of code to write, and complexities to solve + (none). + + [[9]] <> + + <> + + Contra: [[4]] + [[10]] + + +[i8/pm] Global package index, pkg_mkIndex +----------------------------------------- + +Just use [pkg_mkIndex modules */*.tcl] to generate the master index. + + Pro: + Easy to do. + + Contra: + Does not handle constraints in subordinate package + indices, simply because they are actually ignored + during processing. + + Adding code to handle constraints evolves this into + [i6/dr]. + + Note: The contra is hard enough IMHO to make this solution not + applicable for 1.4, which does have constraints, and handling + them wrong (not at all) is a bug. + + +General discussion +------------------ + +Given that a deep directory layout was chosen [i1/ng] is not +applicable and therefore dropped from the discussion. + +In the pro and contra arguments listed above three independent axes of +reasoning emerged: + +a) Performance of the solution, with the number of accesses to + filesystem the main factor determining it. + +b) Complexity/difficulty of the solution with regard to + adding/updating packages. + +c) Complexity of generating the master index. + +Axis (b) has essentially been thrown out. Trying to modify the +installation of tcllib itself is bad practice. Install new/updated +packages separately. The version numbering takes care of the rest, +i.e. usage of the new over the older version found in tcllib. + +With respect to axis (c), complexity of generation, [i7/ad] is the +definite winner, with the other *d solutions close behind (all use +fixed scripts, I7/ad wins on size). This is followed by the *g +solutions as they require actual dynamic generation of code. And at +the bottom of the ladder is [i6/dr] with its need for close inspection +of the sub-ordinate indices to get everything right. + +Now axis (a), performance, [i6/dr] is most likely the winner as it +causes only one index to be read and nothing else. This is followed by +the all *d solutions, which read the subordinate indices, but do not +need much glob'ing. The actual order in this group is difficult to +determine. I guess that the auto_path extending methods are slower +than the sourcing methods, and the adding of one directory faster than +the adding of all, as the latter looks for much more subdirectories. +The next group are the *g solutions as they perform their own glob'ing too +beyond that done by the package mgmt. + +Two final rankings + + (c), then (a) (a), then (c) + ------------- ------------- + [i7/ad] [i6/dr] + [i4/sd] [i4/sd] + [i2/ad] [i7/ad] + [i5/sg] [i2/ad] + [i3/ag] [i5/sg] + [i6/dr] [i3/ag] + ------------- ------------- + +[i4/sd] seems to be a good compromise solution between performance and +complexity of generation, but [i7/ad] is not too bad either. + +[i4/sd] reminder: + set main $dir + set dir [file join $main md4] ; source [file join $dir pkgIndex.tcl] + set dir [file join $main md5] ; source [file join $dir pkgIndex.tcl] + set dir [file join $main sha1] ; source [file join $dir pkgIndex.tcl] + ... + +[i7/ad] reminder: + lappend auto_path $dir + +Other opinions: + + Don Porter prefers [i7/ad], and [i6/dr] as second choice. Also + as [i7/ad] fallback for older Tcl before 8.3.1 + + Joe English strictly opposes any solution modifying the + auto_path, violating his opinion that index scripts should + have no side-effects beyond registering a package. + + +Chosen solution for Tcllib 1.4 +------------------------------ + +After comparing the code for the combination of [i7/ad] and [i6/dr] as +submitted by Don Porter, and for [i4/sd] as submitted by myself +(Andreas), and a small discussion on the Tcl'ers chat between Don and +me, we took [i4/sd] for the main body of the index, and the header of +Don's code. Basically the chosen package index is a combination of +[i7/id] and of [i4/sd] as fallback. + +This is still as easy to generate as [4/sd], the index is also only a +bit more complex, and speed should be okay too. + +Don convinced me that while extending auto_path is definitely bad in +the long-term it is still okay for the short-term and release 1.4. + + +Roadmap +------- + +After Tcllib has been driven into the state of one package per module +directory, and switched to a flat directory layout for its +installation we switch to [i1/ng] for the indexing structure. + + +----------------------------------- +This document is in the public domain. + + Andreas Kupries diff --git a/devdoc/installation.txt b/devdoc/installation.txt new file mode 100644 index 0000000..e8b95b7 --- /dev/null +++ b/devdoc/installation.txt @@ -0,0 +1,85 @@ +Tcllib installation directory layout +==================================== + +This document describes the possible layouts for an installed tcllib, +discusses their pro and contra and makes a choice for Tcllib 1.4. A +roadmap of changes in the future is made available as appendix. + +[L1/D] Deep layout +------------------ + + This is the layout of Tcllib 1.3 (and versions before that). + + A single directory tcllib is created, and all + subdirectories of the 'modules' subdirectory in the + distribution is copied into it. This is restricted at large to + *.tcl files, with exception made for some modules with special + needs. + + Pro: + Contra: + Makes the handling of the various package indices, + well, not difficult, but uncomfortable. + + +[L2/Fa] Flat layout 1 +--------------------- + + A directory is created for each module of tcllib. + + Pro: + Handling of package indices is easier than for L1/D, a + toplevel index file with all its problems is not + required anymore. + + Contra: + Directories should be versioned to avoid conflicts + between multiple releases. modules have no + version. This can be faked for modules containing one + package, but not for the modules with more. + + +[L2/Fb] Flat layout 2 +--------------------- + + A directory is created for each package in tcllib. + + Pro + Handling of package indices is easy, one per package. + + Contra: + Modules containing more than one package are difficult + to handle. The system has to split them into the + individual packages. This rendered very difficult + because of shared package index files. + + This can be solved by moving tcllib (back) towards of + one package per module. When that goal is reached + L2/Fa and L2/Fb become the same, and the contra for + L2/Fa vanishes too as an exact version number can be + associated with each directory. + +Chosen layout for Tcllib 1.4 +---------------------------- + + L2/D + + Despite the problems with package indices the contras against + the flat structures are too strong at this point in + time. Automatic solutions are not really possible, or require + a very high effort. + +Roadmap +------- + Change the module directories of tcllib to contain exactly one + package per directory, with appropriate index (and meta data). + + This not only makes sense for easier handling of installation + and package indices, but also in the greater context of + wrapping code for deployment. + + +----------------------------------- +This document is in the public domain. + + Andreas Kupries diff --git a/devdoc/releaseguide.html b/devdoc/releaseguide.html new file mode 100644 index 0000000..1fd086c --- /dev/null +++ b/devdoc/releaseguide.html @@ -0,0 +1,72 @@ + + +

Guide to the creation of source releases for Tcllib +

+
+ +

Recap +

+
+ + +

+The CVS repository for Tcllib contains two main branches, + the HEAD for development, and RELEASES as the staging area for + official releases. +

+ +

Dependencies +

+ +

Creation of a new official release +

+ +

To create a new official release of Tcllib the release manager has + to perform the steps described below: +

+ + +
    +
  1. Retrieve the sources at the current head + from the CVS repository, using a command like +
    +	  CVSROOT=:pserver:anonymous@cvs.tcllib.sourceforge.net:/cvsroot/tcllib
    +	  cvs -d${CVSROOT} co tcllib
    +
    + Vary this command according to taste as long as the overall + meaning is not changed. Compression options and the like. + +
  2. Tag these sources with a new branch tag for the new release of + tcllib, like +
    +	  cvs -d${CVSROOT} rtag tcllib
    +
    + +
  3. Commit the changes, then update the working directory. + +
  4. Use a tclsh to run the sak tool with the argument gendist, like +
    +    tclsh /path/to/tcllib/sak.tcl gendist
    +
    + +
  5. This results in the creation of a tcllib-VERSION directory +in the current working directory, and of two archives, .zip, +and .tar.gz. A starkit will be created if sdx is present +in the PATH. If additionally a file named tclkit is present in +the current working directory a starpack will be created too, using +this tclkit as the runtime. + + +
  6. Now follow the instructions in the Sourceforge site documentation + for uploading the archives generated by the last + step to + ftp://upload.sourceforge.net/incoming, and + follow the procedures for creating packages and + releases at Sourceforge. +
+ +

At last notify the relevant persons in other communities like +Debian (See list of contacts) about the new release. +

diff --git a/embedded/index.html b/embedded/index.html new file mode 100644 index 0000000..c2dd407 --- /dev/null +++ b/embedded/index.html @@ -0,0 +1,74 @@ +
+ +

Tcl Library Source Code

+ +
+
+ + +
+

+Table Of Contents +    + +Keyword Index +

+ +

Discussion & Contact

+
    +

    Tcllib has two mailing lists, +one for notifications, the other for general discussion. These are managed at SourceForge, +at the aforementioned link. A few direct links for various topics: + + + + + + + + + +
    tcllib-bugs: SubscribeArchiveSearch
    tcllib-devel:SubscribeArchiveSearch
    + +

+ + +

Feedback

+
    +

    Please go to and use our + +Local Trackers. They are for +

      +
    • Bugs,
    • +
    • Patches, and
    • +
    • Ideas & Feature Requests.
    • +

    +
+ +

Releases

+ + + +

Related Repositories

+ + + +

See also

+ diff --git a/embedded/www/image/arch_core_container.png b/embedded/www/image/arch_core_container.png new file mode 100644 index 0000000..f577233 Binary files /dev/null and b/embedded/www/image/arch_core_container.png differ diff --git a/embedded/www/image/arch_core_eplugins.png b/embedded/www/image/arch_core_eplugins.png new file mode 100644 index 0000000..9089fb2 Binary files /dev/null and b/embedded/www/image/arch_core_eplugins.png differ diff --git a/embedded/www/image/arch_core_export.png b/embedded/www/image/arch_core_export.png new file mode 100644 index 0000000..293cb82 Binary files /dev/null and b/embedded/www/image/arch_core_export.png differ diff --git a/embedded/www/image/arch_core_import.png b/embedded/www/image/arch_core_import.png new file mode 100644 index 0000000..5749efb Binary files /dev/null and b/embedded/www/image/arch_core_import.png differ diff --git a/embedded/www/image/arch_core_iplugins.png b/embedded/www/image/arch_core_iplugins.png new file mode 100644 index 0000000..079cce7 Binary files /dev/null and b/embedded/www/image/arch_core_iplugins.png differ diff --git a/embedded/www/image/arch_core_support.png b/embedded/www/image/arch_core_support.png new file mode 100644 index 0000000..b33ec99 Binary files /dev/null and b/embedded/www/image/arch_core_support.png differ diff --git a/embedded/www/image/arch_core_transform.png b/embedded/www/image/arch_core_transform.png new file mode 100644 index 0000000..bc6358d Binary files /dev/null and b/embedded/www/image/arch_core_transform.png differ diff --git a/embedded/www/image/arch_user_app.png b/embedded/www/image/arch_user_app.png new file mode 100644 index 0000000..66c3af9 Binary files /dev/null and b/embedded/www/image/arch_user_app.png differ diff --git a/embedded/www/image/arch_user_pkg.png b/embedded/www/image/arch_user_pkg.png new file mode 100644 index 0000000..bb89aac Binary files /dev/null and b/embedded/www/image/arch_user_pkg.png differ diff --git a/embedded/www/image/architecture.png b/embedded/www/image/architecture.png new file mode 100644 index 0000000..36b957b Binary files /dev/null and b/embedded/www/image/architecture.png differ diff --git a/embedded/www/image/expr_ast.png b/embedded/www/image/expr_ast.png new file mode 100644 index 0000000..e33e8f1 Binary files /dev/null and b/embedded/www/image/expr_ast.png differ diff --git a/embedded/www/image/flow.png b/embedded/www/image/flow.png new file mode 100644 index 0000000..10a5448 Binary files /dev/null and b/embedded/www/image/flow.png differ diff --git a/embedded/www/image/gen_options.png b/embedded/www/image/gen_options.png new file mode 100644 index 0000000..9d64a55 Binary files /dev/null and b/embedded/www/image/gen_options.png differ diff --git a/embedded/www/index.html b/embedded/www/index.html new file mode 100644 index 0000000..5e344c1 --- /dev/null +++ b/embedded/www/index.html @@ -0,0 +1,4385 @@ +
+ +
[ + Table Of Contents +| Categories +| Modules +| Applications + ]
+

Keyword Index

+
+ . · / · 3 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Keywords: . +
.ddt + docstrip_util +
.dtx + docstrip · docstrip_util · tcldocstrip +
+Keywords: / +
/dev/null + tcl::chan::null · tcl::chan::nullzero +
/dev/random + tcl::chan::random · tcl::randomseed +
/dev/zero + tcl::chan::nullzero · tcl::chan::zero +
+Keywords: 3 +
3DES + des · tcldes · tcldes +
+Keywords: A +
abstract syntax tree + grammar::me::util · grammar::me_ast +
acceptance + grammar::fa::dacceptor +
acceptor + grammar::fa::dacceptor +
active + transfer::connect +
adaptors + snit · snitfaq +
adjacency list + struct::graph::op +
adjacency matrix + struct::graph::op +
adjacent + struct::graph · struct::graph::op +
adjusting + textutil::adjust +
adler32 + tcl::transform::adler32 +
aes + aes +
after + coroutine · coroutine::auto +
alias + interp +
amazon + S3 +
ambiguous + grammar::aycock +
American Express + valtype::creditcard::amex +
AMEX + valtype::creditcard::amex +
angle + math::geometry · units +
anonymous procedure + lambda +
ansi + term::ansi::code::attr · term::ansi::code::ctrl · term::ansi::code::macros · term::ansi::ctrl::unix +
appender + logger::appender · logger::utils +
application + nns · nnsd · nnslog +
approximation algorithm + struct::graph::op +
arc + struct::graph · struct::graph::op +
arcfour + rc4 +
archive + tar +
argument integrity + tepam · tepam::procedure +
argument processing + cmdline +
argument validation + tepam · tepam::procedure +
arguments + tepam · tepam::procedure +
argv + cmdline +
argv0 + cmdline +
array + tie · tie +
articulation point + struct::graph::op +
ascii85 + ascii85 +
asn + asn +
assembler + grammar::me::cpu::gasm +
assert + control +
assign + struct::list +
AST + grammar::me_ast +
asynchronous + cache::async +
attribute control + term::ansi::code::attr · term::ansi::code::ctrl +
augmenting network + struct::graph::op +
augmenting path + struct::graph::op +
authentication + autoproxy · SASL · SASL::NTLM · SASL::SCRAM · SASL::XGoogleToken +
automatic + nameserv::auto +
automatic documentation + tepam::doc_gen +
automaton + grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op +
aycock + grammar::aycock +
+Keywords: B +
bank + valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa · valtype::iban +
base32 + base32 · base32::core · base32::hex +
base64 + base64 · tcl::transform::base64 +
bash + string::token::shell +
bee + bee +
bench language + bench_intro · bench_lang_intro · bench_lang_spec +
benchmark + bench · bench::in · bench::out::csv · bench::out::text · bench_intro · bench_lang_intro · bench_lang_spec +
ber + asn +
Bessel functions + math::special +
bfs + struct::graph::op +
bibliography + bibtex +
bibtex + bibtex +
bignums + math::bignum +
bind + uevent +
bipartite + struct::graph::op +
BitTorrent + bee +
bittorrent + bee +
blanks + textutil::repeat +
block cipher + aes · blowfish · des · tcldes · tcldes +
blocking flow + struct::graph::op +
blowfish + blowfish +
Book Number + valtype::isbn +
breadth-first + struct::tree +
bridge + struct::graph::op +
BWidget + snit · snitfaq +
+Keywords: C +
C + doctools::msgcat::idx::c · doctools::msgcat::toc::c +
C++ + snit · snitfaq · stooop · switched +
cache + cache::async · map::slippy::cache +
caesar cipher + tcl::transform::rot +
calculus + math::calculus +
callback + cache::async · hook · lambda · oo::util · oo::util · uevent::onidle +
callbacks + tcl::chan::halfpipe +
capitalize + textutil::string +
card for credit + valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa +
cardinality + struct::set +
cat + fileutil +
catalog package + doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr +
catalogue + docstrip_util +
cell-phone + valtype::imei +
cer + asn +
CFG + grammar::me_intro +
CFL + grammar::me_intro +
CGI + ncgi +
cgraph + struct::graph · struct::graph_v1 +
changelog + doctools::changelog · doctools::cvs +
channel + coroutine · coroutine::auto · transfer::connect · transfer::copy · transfer::copy::queue · transfer::data::destination · transfer::data::source · transfer::receiver · transfer::transmitter +
channel transformation + tcl::transform::adler32 · tcl::transform::base64 · tcl::transform::counter · tcl::transform::crc32 · tcl::transform::hex · tcl::transform::identity · tcl::transform::limitsize · tcl::transform::observe · tcl::transform::otp · tcl::transform::rot · tcl::transform::spacer · tcl::transform::zlib +
character input + term::receive · term::receive::bind +
character output + term::ansi::send · term::send +
chat + irc · multiplexer · picoirc +
checkbox + html · javascript +
checkbutton + html +
Checking + valtype::common · valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa · valtype::gs1::ean13 · valtype::iban · valtype::imei · valtype::isbn · valtype::luhn · valtype::luhn5 · valtype::usnpi · valtype::verhoeff +
checksum + cksum · crc16 · crc32 · sum · tcl::transform::adler32 · tcl::transform::crc32 +
chop + textutil::string +
cipher + pki · tcl::transform::otp · tcl::transform::rot +
cksum + cksum · crc16 · crc32 · sum +
class + snit · snitfaq · stooop · switched +
class methods + oo::util · oo::util +
class variables + oo::util · oo::util +
cleanup + try +
client + nameserv · nameserv::auto · nameserv::common · nns · nns_intro · nnslog +
cloud + S3 +
cmdline processing + cmdline +
color control + term::ansi::code::attr · term::ansi::code::ctrl +
columns + term::ansi::ctrl::unix +
comm + comm · comm_wire · deleg_method · deleg_proc · nameserv::protocol +
command + doctools::tcl::parse +
command line processing + cmdline +
command prefix + lambda · oo::util · oo::util +
comment + jpeg · png +
common + struct::list +
common prefix + textutil::string +
communication + comm · comm_wire +
comparison + struct::list +
complete graph + struct::graph::op +
complex numbers + math::complexnumbers · math::fourier +
compression + tcl::transform::zlib · zipfile::encode +
computations + math::bigfloat +
concatenation channel + tcl::chan::cat · tcl::chan::facade +
connected component + struct::graph::op +
connected fifos + tcl::chan::fifo2 +
connection + transfer::connect +
constants + math::constants · units +
CONTAINER + pt::peg::export::container · pt::peg::to::container +
contents + doctools2toc_introduction +
context-free grammar + grammar::me_intro +
context-free languages + grammar::me_intro · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
control + control · term · term::ansi::code · term::ansi::code::attr · term::ansi::code::ctrl · term::ansi::code::macros · term::ansi::ctrl::unix · term::ansi::send · term::interact::menu · term::interact::pager · term::receive · term::receive::bind · term::send +
control structure + generator +
conversion + doctools · doctools2idx_introduction · doctools2toc_introduction · doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::import · doctools::toc · doctools::toc · doctools::toc::export · doctools::toc::import · dtplite · dtplite · math::roman · mpexpand · pt::peg::from::json · pt::peg::from::peg · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · tcldocstrip · units +
cooked + term::ansi::ctrl::unix +
cookie + ncgi +
copy + fileutil::multi · fileutil::multi::op · transfer::copy · transfer::copy::queue · transfer::data::destination · transfer::data::source · transfer::receiver · transfer::transmitter +
coroutine + coroutine · coroutine::auto · generator +
Cost + treeql +
counter + tcl::transform::counter +
counting + counter +
CPARAM + pt::peg::to::cparam +
crc + cksum · crc16 · crc32 · sum +
crc16 + crc16 +
crc32 + cksum · crc16 · crc32 · sum · tcl::transform::crc32 +
credit card + valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa +
cron + cron +
cryptography + blowfish +
CSS + doctools::html::cssdefaults +
csv + bench::in · bench::out::csv · csv +
currying + lambda · oo::util · oo::util +
cut edge + struct::graph::op +
cut vertex + struct::graph::op +
CVS + rcs +
cvs + doctools::cvs +
cvs log + doctools::cvs +
cyclic redundancy check + cksum · crc16 · crc32 · sum +
+Keywords: D +
data analysis + math::statistics +
data destination + transfer::data::destination · transfer::receiver +
data entry form + tepam::argument_dialogbox +
data exchange + huddle · json · json::write · yaml +
data integrity + aes · cksum · crc16 · crc32 · des · pki · rc4 · sum · tcldes · tcldes +
data source + transfer::data::source · transfer::transmitter +
data structures + struct::record +
database + tie · tie +
dataflow + page_util_flow +
DE + doctools::msgcat::idx::de · doctools::msgcat::toc::de +
debug + debug · debug::caller · debug::heartbeat · debug::timestamp +
decimal + math::decimal +
declare + term::ansi::code +
decompression + tcl::transform::zlib · zipfile::decode · zipfile::mkzip +
decryption + tcl::transform::otp · tcl::transform::rot +
deferal + uevent::onidle +
define + term::ansi::code +
degree + struct::graph · struct::graph::op +
degree constrained spanning tree + struct::graph::op +
degrees + math::constants +
delegation + deleg_method · deleg_proc +
depth-first + struct::tree +
der + asn +
DES + des · tcldes · tcldes +
deserialization + doctools::idx::import::docidx · doctools::idx::import::json · doctools::idx::structure · doctools::toc::import::doctoc · doctools::toc::import::json · doctools::toc::structure +
diameter + struct::graph::op +
dict + dicttool +
diff + docstrip_util · struct::list +
diff -n format + rcs +
difference + struct::set +
differential + struct::list +
differential equations + math::calculus +
dijkstra + struct::graph::op +
directory access + ldap · ldapx +
directory traversal + fileutil_traverse +
Discover + valtype::creditcard::discover +
discrete items + struct::pool +
disjoint set + struct::disjointset +
dispatcher + term::receive::bind +
distance + math::geometry · struct::graph::op · units +
DNS + dns +
do + control +
docidx + doctools::idx · doctools::idx::export · doctools::idx::export::docidx · doctools::idx::import · doctools::idx::import::docidx · doctools::idx::parse · doctools::idx::structure · doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · dtplite · dtplite +
docidx commands + docidx_lang_cmdref · docidx_lang_faq · docidx_lang_intro · docidx_lang_syntax +
docidx language + docidx_lang_cmdref · docidx_lang_faq · docidx_lang_intro · docidx_lang_syntax +
docidx markup + docidx_lang_cmdref · docidx_lang_faq · docidx_lang_intro · docidx_lang_syntax · doctools::idx +
docidx syntax + docidx_lang_faq · docidx_lang_intro · docidx_lang_syntax +
docstrip + docstrip · docstrip_util · tcldocstrip +
doctoc + doctools::msgcat · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr · doctools::toc · doctools::toc::export · doctools::toc::export::doctoc · doctools::toc::import · doctools::toc::import::doctoc · doctools::toc::parse · doctools::toc::structure · dtplite · dtplite +
doctoc commands + doctoc_lang_cmdref · doctoc_lang_faq · doctoc_lang_intro · doctoc_lang_syntax +
doctoc language + doctoc_lang_cmdref · doctoc_lang_faq · doctoc_lang_intro · doctoc_lang_syntax +
doctoc markup + doctoc_lang_cmdref · doctoc_lang_faq · doctoc_lang_intro · doctoc_lang_syntax · doctools::toc +
doctoc syntax + doctoc_lang_faq · doctoc_lang_intro · doctoc_lang_syntax +
doctools + docstrip_util · doctools::changelog · doctools::html::cssdefaults · doctools::idx::export::docidx · doctools::idx::export::html · doctools::idx::export::json · doctools::idx::export::nroff · doctools::idx::export::text · doctools::idx::export::wiki · doctools::idx::import::docidx · doctools::idx::import::json · doctools::idx::parse · doctools::idx::structure · doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr · doctools::nroff::man_macros · doctools::tcl::parse · doctools::toc::export::doctoc · doctools::toc::export::html · doctools::toc::export::json · doctools::toc::export::nroff · doctools::toc::export::text · doctools::toc::export::wiki · doctools::toc::import::doctoc · doctools::toc::import::json · doctools::toc::parse · doctools::toc::structure · dtplite · dtplite +
doctools commands + doctools_lang_cmdref · doctools_lang_faq · doctools_lang_intro · doctools_lang_syntax +
doctools language + doctools_lang_cmdref · doctools_lang_faq · doctools_lang_intro · doctools_lang_syntax +
doctools markup + doctools_lang_cmdref · doctools_lang_faq · doctools_lang_intro · doctools_lang_syntax +
doctools syntax + doctools_lang_faq · doctools_lang_intro · doctools_lang_syntax +
document + doctools_plugin_apiref +
documentation + docstrip · docstrip_util · doctools · doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::import · doctools::toc · doctools::toc · doctools::toc::export · doctools::toc::import · tcldocstrip · tepam::doc_gen +
DOM + treeql +
dom + xsxp +
domain name service + dns +
+Keywords: E +
e + math::constants +
EAN + valtype::gs1::ean13 · valtype::isbn +
EAN13 + valtype::gs1::ean13 · valtype::isbn +
earley + grammar::aycock +
EBNF + pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
eccentricity + struct::graph::op +
edge + struct::graph · struct::graph::op +
emacs + doctools::changelog · doctools::cvs +
email + imap4 · mime · pop3 · smtp +
emptiness + struct::set +
empty interpreter + interp +
EN + doctools::msgcat::idx::en · doctools::msgcat::toc::en +
encoding + ascii85 · base64 · uuencode · yencode +
encryption + aes · blowfish · des · pki · rc4 · tcl::transform::otp · tcl::transform::rot · tcldes · tcldes +
entry mask + tepam +
equal + struct::list +
equality + struct::list +
equivalence class + struct::disjointset +
error + try · try +
error function + math::special +
European Article Number + valtype::gs1::ean13 · valtype::isbn +
event + hook · uevent · uevent::onidle +
event management + tcl::chan::events +
events + coroutine · coroutine::auto +
examples + bench_lang_intro · docidx_lang_faq · doctoc_lang_faq · doctools_lang_faq +
exception + try +
exchange format + huddle · json · json::write +
exclusion + struct::set +
execution + grammar::fa::dexec +
exif + jpeg +
exit + coroutine · coroutine::auto +
export + doctools::html::cssdefaults · doctools::idx::export · doctools::idx::export::docidx · doctools::idx::export::html · doctools::idx::export::json · doctools::idx::export::nroff · doctools::idx::export::text · doctools::idx::export::wiki · doctools::nroff::man_macros · doctools::toc::export · doctools::toc::export::doctoc · doctools::toc::export::html · doctools::toc::export::json · doctools::toc::export::nroff · doctools::toc::export::text · doctools::toc::export::wiki · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg +
expression + grammar::me_intro · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
extended namespace + namespacex +
+Keywords: F +
faq + docidx_lang_faq · doctoc_lang_faq · doctools_lang_faq +
fetching information + uri +
FFT + math::fourier +
fifo + tcl::chan::fifo · tcl::chan::fifo2 · tcl::chan::halfpipe +
file + tie · tie · uri +
file recognition + fileutil::magic::cfront · fileutil::magic::cgen · fileutil::magic::filetype · fileutil::magic::mimetype · fileutil::magic::rt +
file type + fileutil::magic::cfront · fileutil::magic::cgen · fileutil::magic::filetype · fileutil::magic::mimetype · fileutil::magic::rt +
file utilities + fileutil · fileutil::magic::cfront · fileutil::magic::cgen · fileutil::magic::filetype · fileutil::magic::mimetype · fileutil::magic::rt · fileutil::multi · fileutil::multi::op +
filesystem + map::slippy::cache +
filter + generator · struct::list +
final + try +
finance + valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa · valtype::iban +
find + struct::disjointset +
finite + struct::pool +
finite automaton + grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op +
FIPS 180-1 + sha1 · sha256 +
first permutation + struct::list +
Fisher-Yates + struct::list +
flatten + struct::list +
floating-point + math::bigfloat · math::fuzzy +
flow + control +
flow network + struct::graph::op +
folding + struct::list +
foldl + generator +
foldr + generator +
foreach + generator +
form + html · ncgi +
format conversion + pt::peg::from::json · pt::peg::from::peg · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam +
formatter + doctools_plugin_apiref +
formatting + bench::in · bench::out::csv · bench::out::text · doctools2idx_introduction · doctools2toc_introduction · doctools::idx · doctools::idx::export · doctools::toc · doctools::toc::export · textutil · textutil::adjust · textutil::string · textutil::tabify +
formatting engine + docidx_plugin_apiref · doctoc_plugin_apiref · doctools_plugin_apiref +
Fourier transform + math::fourier +
FR + doctools::msgcat::idx::fr · doctools::msgcat::toc::fr +
frame + term::ansi::code::macros +
ftp + ftp · ftp::geturl · ftpd · uri +
ftpd + ftpd +
ftpserver + ftpd +
full outer join + struct::list +
+Keywords: G +
generate event + uevent +
generate permutations + struct::list +
generation + doctools::idx · doctools::idx::export · doctools::toc · doctools::toc::export +
generator + generator +
geocoding + map::geocode::nominatim +
geodesy + map::slippy · mapproj +
geography + map::slippy +
get character + term::receive +
gets + coroutine · coroutine::auto +
global + coroutine · coroutine::auto +
gopher + uri +
gps + gpx · nmea +
gpx + gpx +
grammar + grammar::aycock · grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op · grammar::me::cpu · grammar::me::cpu::core · grammar::me::cpu::gasm · grammar::me::tcl · grammar::me_intro · grammar::me_vm · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
graph + grammar::me::cpu::gasm · struct::graph · struct::graph::op · struct::graph_v1 · struct::queue · struct::stack +
graph walking + page_util_flow · page_util_norm_lemon · page_util_norm_peg +
green threads + coroutine · coroutine::auto +
grep + fileutil +
GUID + uuid +
+Keywords: H +
hashing + md4 · md5 · md5crypt · otp · ripemd128 · ripemd160 · sha1 · sha256 +
heartbeat + debug::heartbeat +
heuristic + struct::graph::op +
hex + base32::hex +
hexadecimal + tcl::transform::hex +
histogram + counter +
hook + hook · uevent +
horspool + grammar::aycock +
HTML + doctools · doctools::html::cssdefaults · doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::export::html · doctools::toc · doctools::toc · doctools::toc::export · doctools::toc::export::html · dtplite · dtplite · mpexpand +
html + html · htmlparse · javascript · ncgi +
http + autoproxy · map::geocode::nominatim · map::slippy::fetcher · uri · websocket +
huddle + huddle · yaml +
human readable + bench::in · bench::out::text +
hyphenation + textutil · textutil::adjust +
+Keywords: I +
i18n + doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr +
IBAN + valtype::iban +
ident + ident +
identification + ident +
identity + tcl::transform::identity +
idle + uevent::onidle +
image + jpeg · png · tiff +
imap + imap4 +
IMEI + valtype::imei +
import + doctools::idx::import · doctools::idx::import::docidx · doctools::idx::import::json · doctools::toc::import · doctools::toc::import::doctoc · doctools::toc::import::json · pt::peg::import::json · pt::peg::import::peg +
in-memory channel + tcl::chan::fifo · tcl::chan::fifo2 · tcl::chan::halfpipe · tcl::chan::memchan · tcl::chan::string · tcl::chan::variable +
in-order + struct::tree +
inclusion + struct::set +
Incr Tcl + snit · snitfaq +
indenting + textutil · textutil::adjust +
independent set + struct::graph::op +
index + docidx_intro · docidx_plugin_apiref · doctools2idx_introduction · doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::export::docidx · doctools::idx::export::html · doctools::idx::export::json · doctools::idx::export::nroff · doctools::idx::export::text · doctools::idx::export::wiki · doctools::idx::import · doctools::idx::import::docidx · doctools::idx::import::json +
index formatter + docidx_plugin_apiref +
info + namespacex +
inner join + struct::list +
input mode + term::ansi::ctrl::unix +
integer + math::roman +
integration + math::calculus +
inter-thread communication + tcl::chan::fifo2 +
International Article Number + valtype::gs1::ean13 · valtype::isbn +
International Bank Account Number + valtype::iban +
International Mobile Equipment Identity + valtype::imei +
International Standard Book Number + valtype::isbn +
internationalization + doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr +
internet + asn · ftp · ftp::geturl · imap4 · ldap · ldapx · mime · pop3d · pop3d::dbox · pop3d::udb · smtp · websocket +
internet address + tcllib_ip +
interpolation + math::interpolate +
interpreter + deleg_method · deleg_proc · interp · wip +
intersection + struct::set +
interval + math::bigfloat +
ip + tcllib_ip +
ipc + comm · comm_wire +
ipv4 + tcllib_ip +
ipv6 + tcllib_ip +
irc + irc · picoirc +
isA + valtype::common · valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa · valtype::gs1::ean13 · valtype::iban · valtype::imei · valtype::isbn · valtype::luhn · valtype::luhn5 · valtype::usnpi · valtype::verhoeff +
ISBN + valtype::isbn +
isthmus + struct::graph::op +
iterator + generator +
+Keywords: J +
javascript + javascript · json · json::write +
jfif + jpeg +
join + struct::list +
jpeg + jpeg +
JSON + doctools::idx::export::json · doctools::idx::import::json · doctools::toc::export::json · doctools::toc::import::json · pt::peg::export::json · pt::peg::from::json · pt::peg::import::json · pt::peg::to::json +
json + doctools::idx · doctools::idx::export · doctools::idx::import · doctools::toc · doctools::toc::export · doctools::toc::import · huddle · json · json::write +
justification + textutil::adjust +
+Keywords: K +
keyword index + docidx_intro · doctools2idx_introduction · doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::import +
keywords + docidx_plugin_apiref +
knuth + soundex +
+Keywords: L +
l10n + doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr +
lambda + lambda +
LaTeX + docstrip · docstrip_util · tcldocstrip +
latex + doctools::idx · doctools::idx · doctools::toc · doctools::toc +
latitute + map::slippy +
ldap + ldap · ldapx · uri +
ldap client + ldap · ldapx +
ldif + ldapx +
least squares + math::linearalgebra +
left outer join + struct::list +
lemon + page_util_norm_lemon +
level graph + struct::graph::op +
lexer + doctools::idx::parse · doctools::toc::parse +
lexing + string::token · string::token::shell +
limitsize + tcl::transform::limitsize +
line + math::geometry +
linear algebra + math::linearalgebra +
linear equations + math::linearalgebra +
linear program + math::optimize +
lines + term::ansi::ctrl::unix +
list + struct::list · struct::queue · wip +
listener + term::receive · term::receive::bind +
literate programming + docstrip · docstrip_util · tcldocstrip +
LL(k) + grammar::me_intro · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
local searching + struct::graph::op +
localization + doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr +
location + map::geocode::nominatim · map::slippy · map::slippy::cache · map::slippy::fetcher +
log + debug · debug::caller · debug::heartbeat · debug::timestamp · doctools::cvs · log · logger +
log level + log · logger +
logger + logger · logger::appender · logger::utils +
longest common subsequence + struct::list +
longitude + map::slippy +
loop + struct::graph · struct::graph::op +
luhn + valtype::luhn · valtype::luhn5 +
luhn-5 + valtype::luhn5 +
+Keywords: M +
macros + doctools::nroff::man_macros +
mail + imap4 · mime · pop3 · smtp +
mailto + uri +
man_macros + doctools::nroff::man_macros +
manpage + doctools · doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::import · doctools::toc · doctools::toc::export · doctools::toc::import · doctools_plugin_apiref · dtplite · dtplite · mpexpand +
map + generator · map::geocode::nominatim · map::slippy · map::slippy::cache · map::slippy::fetcher · mapproj · struct::list +
markup + docidx_intro · docidx_lang_cmdref · docidx_lang_faq · docidx_lang_intro · docidx_lang_syntax · docidx_plugin_apiref · doctoc_intro · doctoc_lang_cmdref · doctoc_lang_faq · doctoc_lang_intro · doctoc_lang_syntax · doctoc_plugin_apiref · doctools · doctools2idx_introduction · doctools2toc_introduction · doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::import · doctools::toc · doctools::toc · doctools::toc::export · doctools::toc::import · doctools_intro · doctools_lang_cmdref · doctools_lang_faq · doctools_lang_intro · doctools_lang_syntax · doctools_plugin_apiref · dtplite · dtplite · mpexpand · tcldocstrip +
MasterCard + valtype::creditcard::mastercard +
matching + grammar::me_intro · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op · struct::graph::op +
math + math · math::bigfloat · math::bignum · math::calculus · math::complexnumbers · math::constants · math::decimal · math::fuzzy · math::geometry · math::interpolate · math::linearalgebra · math::optimize · math::polynomials · math::rationalfunctions · math::special · simulation::annealing · simulation::montecarlo · simulation::random +
mathematics + math::fourier · math::statistics +
matrices + math::linearalgebra +
matrix + csv · math::linearalgebra · report · struct::matrix · struct::matrix_v1 · struct::queue · struct::stack +
max cut + struct::graph::op +
maximum + math::optimize +
maximum flow + struct::graph::op +
md4 + md4 · ripemd128 · ripemd160 +
md5 + md5 · md5crypt +
md5crypt + md5crypt +
medicare + valtype::usnpi +
mega widget + snit · snitfaq +
membership + struct::set +
menu + term::ansi::code::macros · term::interact::menu +
merge + tcl::randomseed · uevent::onidle +
merge find + struct::disjointset +
merging + bench +
message + comm · comm_wire · log +
message catalog + doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr +
message level + log +
message package + doctools::msgcat · doctools::msgcat::idx::c · doctools::msgcat::idx::de · doctools::msgcat::idx::en · doctools::msgcat::idx::fr · doctools::msgcat::toc::c · doctools::msgcat::toc::de · doctools::msgcat::toc::en · doctools::msgcat::toc::fr +
message-digest + md4 · md5 · md5crypt · otp · ripemd128 · ripemd160 · sha1 · sha256 +
metakit + tie · tie +
method + deleg_method · interp +
method reference + oo::util · oo::util +
mime + fileutil::magic::cfront · fileutil::magic::cgen · fileutil::magic::mimetype · fileutil::magic::rt · mime · smtp +
minimal spanning tree + struct::graph::op +
minimum + math::optimize +
minimum cost flow + struct::graph::op +
minimum degree spanning tree + struct::graph::op +
minimum diameter spanning tree + struct::graph::op +
mobile phone + valtype::imei +
module + docstrip_util +
montecarlo simulation + simulation::montecarlo +
move + fileutil::multi · fileutil::multi::op +
multi-file + fileutil::multi · fileutil::multi::op +
multiplexer + multiplexer +
multiprecision + math::bigfloat · math::bignum +
my method + oo::util · oo::util +
+Keywords: N +
name service + nameserv · nameserv::auto · nameserv::common · nameserv::protocol · nameserv::server · nns · nns_intro · nnsd · nnslog +
namespace unknown + namespacex +
namespace utilities + namespacex +
narrative + debug · debug::caller · debug::heartbeat · debug::timestamp +
National Provider Identifier + valtype::usnpi +
neighbour + struct::graph · struct::graph::op +
net + ftp · ftp::geturl · imap4 · mime · smtp · websocket +
nettool + nettool +
network + pop3d · pop3d::dbox · pop3d::udb +
news + nntp · uri +
next permutation + struct::list +
nmea + nmea +
nntp + nntp +
nntpclient + nntp +
no-op + control +
node + struct::graph · struct::graph::op · struct::tree +
nominatim + map::geocode::nominatim +
normalization + bench · page_util_norm_lemon · page_util_norm_peg · unicode +
NPI + valtype::usnpi +
nroff + doctools · doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::export::nroff · doctools::nroff::man_macros · doctools::toc · doctools::toc · doctools::toc::export · doctools::toc::export::nroff · dtplite · dtplite · mpexpand +
NTLM + SASL::NTLM +
NTP + ntp_time +
null + tcl::chan::null · tcl::chan::nullzero +
number theory + math::numtheory +
+Keywords: O +
oauth + oauth +
object + snit · snitfaq · stooop · switched +
object oriented + snit · snitfaq · stooop · switched +
observer + hook · tcl::transform::observe +
odie + cron · nettool · processman +
on-idle + uevent::onidle +
one time pad + tcl::transform::otp +
optimization + math::optimize · simulation::annealing +
ordered list + struct::prioqueue +
otp + tcl::transform::otp +
outer join + struct::list +
+Keywords: P +
package + csv +
package indexing + docstrip_util +
page + page_intro · page_pluginmgr · page_util_flow · page_util_norm_lemon · page_util_norm_peg · page_util_peg · page_util_quote +
pager + term::interact::pager +
paragraph + textutil · textutil::adjust +
PARAM + pt::peg::to::param +
parameter entry form + tepam · tepam::argument_dialogbox +
parser + doctools::idx::parse · doctools::tcl::parse · doctools::toc::parse · grammar::aycock · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op · xsxp +
parser generator + page · page_intro · page_pluginmgr · page_util_flow · page_util_norm_lemon · page_util_norm_peg · page_util_peg · page_util_quote +
parsing + bench::in · bibtex · doctools2idx_introduction · doctools2toc_introduction · doctools::idx · doctools::idx::import · doctools::toc · doctools::toc::import · grammar::aycock · grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op · grammar::me::cpu · grammar::me::cpu::core · grammar::me::cpu::gasm · grammar::me::tcl · grammar::me_intro · grammar::me_vm · grammar::peg · grammar::peg::interp · htmlparse · huddle · string::token::shell · yaml +
parsing expression + grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
parsing expression grammar + grammar::me_intro · grammar::peg · grammar::peg::interp · page_util_peg · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
partial application + lambda +
partition + struct::disjointset +
partitioned set + struct::disjointset +
passive + transfer::connect +
password + otp +
patch + docstrip_util +
patching + rcs +
PEG + grammar::me_intro · page_util_norm_peg · page_util_peg · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
performance + bench · bench::in · bench::out::csv · bench::out::text · bench_intro · bench_lang_intro · bench_lang_spec · profiler +
permutation + struct::list +
persistence + tie · tie +
phone + valtype::imei +
pi + math::constants +
plain text + doctools::idx::export::text · doctools::toc::export::text +
plane geometry + math::geometry +
plugin + docidx_plugin_apiref · doctoc_plugin_apiref · doctools2idx_introduction · doctools2toc_introduction · doctools::html::cssdefaults · doctools::idx · doctools::idx::export · doctools::idx::import · doctools::nroff::man_macros · doctools::toc · doctools::toc::export · doctools::toc::import · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::import::json · pt::peg::import::peg +
plugin management + pluginmgr +
plugin search + pluginmgr +
png + png +
point + math::geometry +
polynomial functions + math::polynomials +
pool + struct::pool · struct::queue +
pop + pop3 +
pop3 + pop3 · pop3d · pop3d::dbox · pop3d::udb +
post-order + struct::tree +
pre-order + struct::tree +
prefix + textutil::string · textutil::trim +
prime + math::numtheory +
prioqueue + struct::prioqueue · struct::queue +
priority queue + struct::prioqueue +
proc + lambda +
procedure + deleg_proc · tepam · tepam::procedure +
procedure documentation + tepam::doc_gen +
processman + processman +
producer + hook +
profile + profiler +
projection + mapproj +
prospero + uri +
protocol + asn · ldap · ldapx · nameserv::protocol · pop3d · pop3d::dbox · pop3d::udb +
proxy + autoproxy +
public key cipher + pki +
publisher + hook +
push down automaton + grammar::me_intro · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
+Keywords: Q +
queue + csv · htmlparse · struct::stack · transfer::copy::queue +
quoting + page_util_quote +
+Keywords: R +
radians + math::constants · units +
radiobutton + html +
radius + struct::graph::op +
random + tcl::chan::random · tcl::randomseed +
random numbers + simulation::random +
rational functions + math::rationalfunctions +
raw + term::ansi::ctrl::unix +
rc4 + rc4 +
RCS + rcs +
RCS patch + rcs +
read + coroutine · coroutine::auto +
reading + bench::in +
receiver + term::receive · term::receive::bind · transfer::receiver +
reconnect + nameserv::auto +
record + struct::queue · struct::record +
recursive descent + grammar::me_intro · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
reduce + generator · struct::list +
reference + doctools::idx · doctools::idx::export · doctools::idx::import · doctools::toc · doctools::toc::export · doctools::toc::import +
reflected channel + tcl::chan::cat · tcl::chan::core · tcl::chan::events · tcl::chan::facade · tcl::chan::fifo · tcl::chan::fifo2 · tcl::chan::halfpipe · tcl::chan::memchan · tcl::chan::null · tcl::chan::nullzero · tcl::chan::random · tcl::chan::std · tcl::chan::string · tcl::chan::textwindow · tcl::chan::variable · tcl::chan::zero · tcl::randomseed · tcl::transform::adler32 · tcl::transform::base64 · tcl::transform::core · tcl::transform::counter · tcl::transform::crc32 · tcl::transform::hex · tcl::transform::identity · tcl::transform::limitsize · tcl::transform::observe · tcl::transform::otp · tcl::transform::rot · tcl::transform::spacer · tcl::transform::zlib +
regex + string::token +
regular expression + grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op · textutil · textutil::split · textutil::trim +
regular grammar + grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op +
regular languages + grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op +
remote communication + comm · comm_wire +
remote execution + comm · comm_wire +
remove + fileutil::multi · fileutil::multi::op +
repeating + struct::list +
repetition + struct::list · textutil::repeat +
report + report +
reshuffle + struct::list +
residual graph + struct::graph::op +
resolver + dns +
resource management + try +
restore + nameserv::auto +
return + try +
reverse + struct::list +
rfc 821 + mime · smtp · smtpd +
rfc 822 + mime · pop3d::dbox · smtp +
rfc 868 + ntp_time +
rfc 959 + ftp · ftp::geturl · ftpd +
rfc 977 + nntp +
rfc 1034 + dns +
rfc 1035 + dns +
rfc 1036 + nntp +
rfc 1320 + md4 · md5 · ripemd128 · ripemd160 +
rfc 1321 + md4 · md5 · ripemd128 · ripemd160 +
rfc 1413 + ident +
rfc 1886 + dns +
rfc 1939 + pop3 · pop3d +
rfc 2030 + ntp_time +
rfc 2045 + mime +
rfc 2046 + mime +
rfc 2049 + mime +
rfc 2104 + md4 · md5 · ripemd128 · ripemd160 · sha1 · sha256 +
rfc 2141 + uri_urn +
rfc 2251 + ldap · ldapx +
rfc 2255 + uri +
rfc 2289 + otp +
rfc 2396 + uri +
rfc 2554 + smtp +
RFC 2718 + oauth +
rfc 2821 + smtp · smtpd +
rfc 2849 + ldapx +
rfc 3207 + smtp +
rfc 3513 + tcllib_ip +
rfc 4511 + ldap +
RFC 5849 + oauth +
rfc 6455 + websocket +
rfc3501 + imap4 +
rfc3548 + base32 · base32::hex +
right outer join + struct::list +
RIPEMD + ripemd128 · ripemd160 +
roman numeral + math::roman +
roots + math::calculus +
rot + tcl::transform::rot +
rot13 + tcl::transform::rot +
rounding + math::fuzzy +
rows + term::ansi::ctrl::unix +
rpc + comm · comm_wire +
rsa + pki +
running + grammar::fa::dexec +
+Keywords: S +
s3 + S3 +
SASL + SASL · SASL::NTLM · SASL::SCRAM · SASL::XGoogleToken +
scanl + generator +
SCCS + rcs +
SCRAM + SASL::SCRAM +
secure + comm · pop3 · pop3d · transfer::connect · transfer::receiver · transfer::transmitter +
security + aes · blowfish · cksum · crc16 · crc32 · des · md4 · md5 · md5crypt · otp · pki · rc4 · ripemd128 · ripemd160 · sha1 · sha256 · sum · tcldes · tcldes +
seed + tcl::randomseed +
selectionbox + javascript +
semantic markup + docidx_intro · docidx_lang_cmdref · docidx_lang_faq · docidx_lang_intro · docidx_lang_syntax · docidx_plugin_apiref · doctoc_intro · doctoc_lang_cmdref · doctoc_lang_faq · doctoc_lang_intro · doctoc_lang_syntax · doctoc_plugin_apiref · doctools2idx_introduction · doctools2toc_introduction · doctools_intro · doctools_lang_cmdref · doctools_lang_faq · doctools_lang_intro · doctools_lang_syntax · doctools_plugin_apiref +
send + comm +
serialization + bee · doctools::idx::export::docidx · doctools::idx::export::html · doctools::idx::export::json · doctools::idx::export::nroff · doctools::idx::export::text · doctools::idx::export::wiki · doctools::idx::structure · doctools::toc::export::doctoc · doctools::toc::export::html · doctools::toc::export::json · doctools::toc::export::nroff · doctools::toc::export::text · doctools::toc::export::wiki · doctools::toc::structure · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::json · pt::peg::from::peg · pt::peg::import::json · pt::peg::import::peg · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · struct::graph · struct::tree +
server + map::geocode::nominatim · map::slippy::fetcher · nameserv::common · nameserv::server · nns_intro · nnsd +
service + logger +
services + ftpd · smtpd +
set + struct::queue · struct::set +
sha1 + sha1 +
sha256 + sha256 +
shell + string::token::shell +
shortest path + struct::graph::op +
shuffle + struct::list +
simulated annealing + simulation::annealing +
simulation + simulation::random +
singleton + oo::util · oo::util +
size limit + tcl::transform::limitsize +
skiplist + struct::queue · struct::skiplist +
slippy + map::slippy · map::slippy::cache · map::slippy::fetcher +
smtp + mime · smtp · smtpd +
smtpd + smtpd +
Snit + snit +
snit + deleg_method · interp +
SNTP + ntp_time +
socket + comm · comm_wire · smtpd +
soundex + soundex +
source + docstrip · docstrip_util · tcldocstrip +
spacing + tcl::transform::spacer +
spatial interpolation + math::interpolate +
special functions + math::special +
specification + bench_lang_spec +
speed + profiler +
split + textutil::split +
squared graph + struct::graph::op +
ssl + comm · imap4 · pop3 · pop3d · transfer::connect · transfer::receiver · transfer::transmitter +
stack + struct::queue +
standard io + tcl::chan::std +
state + grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
state (de)serialization + namespacex +
statistical distribution + simulation::random +
statistics + counter · math · math::statistics +
stdin + tcl::chan::std +
stdout + tcl::chan::std +
stochastic modelling + simulation::montecarlo +
stream cipher + rc4 +
stream copy + tcl::transform::observe +
string + string::token · string::token::shell · textutil · textutil::adjust · textutil::expander · textutil::repeat · textutil::split · textutil::string · textutil::tabify · textutil::trim +
stringprep + stringprep · stringprep::data · unicode::data +
strongly connected component + struct::graph::op +
struct + struct::pool · struct::record +
structure + control +
structured queries + treeql +
style + doctools::html::cssdefaults +
subcommand + tepam · tepam::procedure +
subgraph + struct::graph · struct::graph::op +
subject + hook +
submitbutton + javascript +
subscriber + hook +
subsequence + struct::list +
subst + doctools::tcl::parse +
sum + sum +
swapping + struct::list +
symmetric difference + struct::set +
synchronous + cache::async +
syntax tree + grammar::me::util +
+Keywords: T +
table + doctools::toc · doctools::toc::export · doctools::toc::import · html · report +
table of contents + doctoc_intro · doctoc_plugin_apiref · doctools2toc_introduction · doctools::toc · doctools::toc · doctools::toc::export · doctools::toc::export::doctoc · doctools::toc::export::html · doctools::toc::export::json · doctools::toc::export::nroff · doctools::toc::export::text · doctools::toc::export::wiki · doctools::toc::import · doctools::toc::import::doctoc · doctools::toc::import::json +
tabstops + textutil::tabify +
tallying + counter +
tape archive + tar +
tar + tar +
tcl + math::bigfloat · math::bignum · math::decimal +
Tcl module + docstrip_util +
Tcl syntax + doctools::tcl::parse +
tcler's wiki + doctools::idx · doctools::idx::export · doctools::toc · doctools::toc::export +
tcllib + csv +
TclOO + oo::util · oo::util · tool · tool::dict_ensemble +
TCLPARAM + pt::peg::to::tclparam +
TDPL + grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
temp file + fileutil +
template processing + textutil::expander +
terminal + term · term::ansi::code · term::ansi::code::attr · term::ansi::code::ctrl · term::ansi::code::macros · term::ansi::ctrl::unix · term::ansi::send · term::interact::menu · term::interact::pager · term::receive · term::receive::bind · term::send +
test + fileutil +
Testing + valtype::common · valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa · valtype::gs1::ean13 · valtype::iban · valtype::imei · valtype::isbn · valtype::luhn · valtype::luhn5 · valtype::usnpi · valtype::verhoeff +
testing + bench · bench::in · bench::out::csv · bench::out::text · bench_intro · bench_lang_intro · bench_lang_spec +
TeX + textutil · textutil::adjust +
text + bench::in · bench::out::text · doctools::idx · doctools::idx::export · doctools::toc · doctools::toc::export +
text comparison + soundex +
text conversion + rcs +
text differences + rcs +
text display + term::interact::menu · term::interact::pager +
text expansion + textutil::expander +
text likeness + soundex +
text processing + bibtex · huddle · page · page_intro · page_pluginmgr · page_util_flow · page_util_norm_lemon · page_util_norm_peg · page_util_peg · page_util_quote · yaml +
text widget + tcl::chan::textwindow +
threads + coroutine · coroutine::auto +
throw + try +
thumbnail + jpeg +
tie + tie · tie +
tif + tiff +
tiff + tiff +
tile + map::slippy::cache · map::slippy::fetcher +
time + ntp_time +
timestamp + png +
timestamps + debug::timestamp +
tip 219 + tcl::chan::cat · tcl::chan::core · tcl::chan::events · tcl::chan::facade · tcl::chan::fifo · tcl::chan::fifo2 · tcl::chan::halfpipe · tcl::chan::memchan · tcl::chan::null · tcl::chan::nullzero · tcl::chan::random · tcl::chan::std · tcl::chan::string · tcl::chan::textwindow · tcl::chan::variable · tcl::chan::zero · tcl::randomseed · tcl::transform::core +
tip 230 + tcl::transform::adler32 · tcl::transform::base64 · tcl::transform::counter · tcl::transform::crc32 · tcl::transform::hex · tcl::transform::identity · tcl::transform::limitsize · tcl::transform::observe · tcl::transform::otp · tcl::transform::rot · tcl::transform::spacer · tcl::transform::zlib +
tip 234 + tcl::transform::zlib +
tip 317 + tcl::transform::base64 +
Tk + tcl::chan::textwindow +
tls + comm · imap4 · pop3 · pop3d · smtp · transfer::connect · transfer::receiver · transfer::transmitter +
TMML + doctools · doctools::idx · doctools::idx · doctools::toc · doctools::toc · dtplite · dtplite · mpexpand +
toc + doctoc_intro · doctoc_plugin_apiref · doctools::toc · doctools::toc::export::doctoc · doctools::toc::export::html · doctools::toc::export::json · doctools::toc::export::nroff · doctools::toc::export::text · doctools::toc::export::wiki · doctools::toc::import::doctoc · doctools::toc::import::json +
toc formatter + doctoc_plugin_apiref +
tokenization + string::token · string::token::shell +
TOOL + tool · tool::dict_ensemble +
top-down parsing languages + grammar::me_intro · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
torrent + bee +
touch + fileutil +
TPDL + grammar::me_intro +
trace + debug · debug::caller · debug::heartbeat · debug::timestamp +
transducer + grammar::aycock · grammar::fa · grammar::fa::dacceptor · grammar::fa::dexec · grammar::fa::op · grammar::me_intro · grammar::peg · grammar::peg::interp · pt · pt::ast · pt::cparam::configuration::critcl · pt::cparam::configuration::tea · pt::json_language · pt::param · pt::pe · pt::pe::op · pt::peg · pt::peg::container · pt::peg::container::peg · pt::peg::export · pt::peg::export::container · pt::peg::export::json · pt::peg::export::peg · pt::peg::from::container · pt::peg::from::json · pt::peg::from::peg · pt::peg::import · pt::peg::import::container · pt::peg::import::json · pt::peg::import::peg · pt::peg::interp · pt::peg::to::container · pt::peg::to::cparam · pt::peg::to::json · pt::peg::to::param · pt::peg::to::peg · pt::peg::to::tclparam · pt::peg_language · pt::pegrammar · pt::pgen · pt::rde · pt::tclparam::configuration::snit · pt::tclparam::configuration::tcloo · pt::util · pt_export_api · pt_import_api · pt_introduction · pt_parse_peg · pt_parser_api · pt_peg_op +
transfer + transfer::connect · transfer::copy · transfer::copy::queue · transfer::data::destination · transfer::data::source · transfer::receiver · transfer::transmitter +
transformation + page_util_peg · tcl::transform::adler32 · tcl::transform::base64 · tcl::transform::counter · tcl::transform::crc32 · tcl::transform::hex · tcl::transform::identity · tcl::transform::limitsize · tcl::transform::observe · tcl::transform::otp · tcl::transform::rot · tcl::transform::spacer · tcl::transform::zlib +
transmitter + transfer::transmitter +
travelling salesman + struct::graph::op +
traversal + fileutil_traverse +
tree + grammar::me::cpu::gasm · grammar::me::util · htmlparse · struct::queue · struct::stack · struct::tree · struct::tree_v1 · treeql +
tree query language + treeql +
tree walking + page_util_flow · page_util_norm_lemon · page_util_norm_peg +
TreeQL + treeql +
trimming + textutil · textutil::trim +
twitter + oauth +
type + fileutil · fileutil::magic::cfront · fileutil::magic::cgen · fileutil::magic::filetype · fileutil::magic::mimetype · fileutil::magic::rt · snit +
Type checking + valtype::common · valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa · valtype::gs1::ean13 · valtype::iban · valtype::imei · valtype::isbn · valtype::luhn · valtype::luhn5 · valtype::usnpi · valtype::verhoeff +
+Keywords: U +
uevent + hook +
unbind + uevent +
uncapitalize + textutil::string +
undenting + textutil::adjust +
unicode + stringprep · stringprep::data · unicode · unicode::data +
union + struct::disjointset · struct::set +
unit + units +
unknown hooking + namespacex +
untie + tie · tie +
update + coroutine · coroutine::auto +
uri + uri · uri_urn +
url + doctools::idx · doctools::idx::export · doctools::idx::import · doctools::toc::export · doctools::toc::import · map::geocode::nominatim · map::slippy::fetcher · uri · uri_urn +
urn + uri_urn +
US-NPI + valtype::usnpi +
utilities + namespacex +
uuencode + uuencode +
UUID + uuid +
+Keywords: V +
Validation + valtype::common · valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa · valtype::gs1::ean13 · valtype::iban · valtype::imei · valtype::isbn · valtype::luhn · valtype::luhn5 · valtype::usnpi · valtype::verhoeff +
Value checking + valtype::common · valtype::creditcard::amex · valtype::creditcard::discover · valtype::creditcard::mastercard · valtype::creditcard::visa · valtype::gs1::ean13 · valtype::iban · valtype::imei · valtype::isbn · valtype::luhn · valtype::luhn5 · valtype::usnpi · valtype::verhoeff +
vectors + math::linearalgebra +
verhoeff + valtype::verhoeff +
vertex + struct::graph · struct::graph::op +
vertex cover + struct::graph::op +
virtual channel + tcl::chan::cat · tcl::chan::core · tcl::chan::events · tcl::chan::facade · tcl::chan::fifo · tcl::chan::fifo2 · tcl::chan::halfpipe · tcl::chan::memchan · tcl::chan::null · tcl::chan::nullzero · tcl::chan::random · tcl::chan::std · tcl::chan::string · tcl::chan::textwindow · tcl::chan::variable · tcl::chan::zero · tcl::randomseed · tcl::transform::adler32 · tcl::transform::base64 · tcl::transform::core · tcl::transform::counter · tcl::transform::crc32 · tcl::transform::hex · tcl::transform::identity · tcl::transform::limitsize · tcl::transform::observe · tcl::transform::otp · tcl::transform::rot · tcl::transform::spacer · tcl::transform::zlib +
virtual machine + grammar::me::cpu · grammar::me::cpu::core · grammar::me::cpu::gasm · grammar::me::tcl · grammar::me_intro · grammar::me_vm · grammar::peg::interp · pt::param +
VISA + valtype::creditcard::visa +
vwait + coroutine · coroutine::auto · smtpd +
+Keywords: W +
wais + uri +
widget + snit · snitfaq +
widget adaptors + snit · snitfaq +
wiki + doctools::idx · doctools::idx · doctools::idx::export · doctools::idx::export::wiki · doctools::toc · doctools::toc · doctools::toc::export · doctools::toc::export::wiki +
word + doctools::tcl::parse · wip +
www + uri +
+Keywords: X +
x.208 + asn +
x.209 + asn +
x.500 + ldap +
XGoogleToken + SASL::XGoogleToken +
xml + xsxp +
xor + tcl::transform::otp +
XPath + treeql +
XSLT + treeql +
+Keywords: Y +
yaml + huddle · yaml +
ydecode + yencode +
yEnc + yencode +
yencode + yencode +
+Keywords: Z +
zero + tcl::chan::nullzero · tcl::chan::zero +
zip + zipfile::decode · zipfile::encode · zipfile::mkzip +
zlib + tcl::transform::zlib +
zoom + map::slippy · map::slippy::cache · map::slippy::fetcher +
\ No newline at end of file diff --git a/embedded/www/tcllib/files/apps/dtplite.html b/embedded/www/tcllib/files/apps/dtplite.html new file mode 100644 index 0000000..1f249d7 --- /dev/null +++ b/embedded/www/tcllib/files/apps/dtplite.html @@ -0,0 +1,427 @@ + +
+ +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index +| Categories +| Modules +| Applications + ]
+
+

dtplite(n) 1.0.5 tcllib "Documentation toolbox"

+

Name

+

dtplite - Lightweight DocTools Markup Processor

+
+ + +

Description

+

The application described by this document, dtplite, is the +successor to the extremely simple mpexpand. Influenced in its +functionality by the dtp doctools processor it is much more +powerful than mpexpand, yet still as easy to use; definitely +easier than dtp with its myriad of subcommands and options.

+

dtplite is based upon the package doctools, like +the other two processors.

+

USE CASES

+

dtplite was written with the following three use cases in +mind.

+
    +
  1. Validation of a single document, i.e. checking that it was written in +valid doctools format. This mode can also be used to get a preliminary +version of the formatted output for a single document, for display in +a browser, nroff, etc., allowing proofreading of the formatting.

  2. +
  3. Generation of the formatted documentation for a single package, +i.e. all the manpages, plus a table of contents and an index of +keywords.

  4. +
  5. An extension of the previous mode of operation, a method for the easy +generation of one documentation tree for several packages, and +especially of a unified table of contents and keyword index.

  6. +
+

Beyond the above we also want to make use of the customization +features provided by the HTML formatter. It is not the only format the +application should be able to generate, but we anticipiate it to be +the most commonly used, and it is one of the few which do provide +customization hooks.

+

We allow the caller to specify a header string, footer string, a +stylesheet, and data for a bar of navigation links at the top of the +generated document. +While all can be set as long as the formatting engine provides an +appropriate engine parameter (See section OPTIONS) the last +two have internal processing which make them specific to HTML.

+
+

COMMAND LINE

+
+
dtplite -o output ?options? format inputfile
+

This is the form for use case [1]. The options will be +explained later, in section OPTIONS.

+
+
path output (in)
+

This argument specifies where to write the generated document. It can +be the path to a file or directory, or -. +The last value causes the application to write the generated +documented to stdout.

+

If the output does not exist then [file dirname $output] +has to exist and must be a writable directory. +The generated document will be written to a file in that directory, +and the name of that file will be derived from the inputfile, +the format, and the value given to option -ext (if +present).

+
(path|handle) format (in)
+

This argument specifies the formatting engine to use when processing +the input, and thus the format of the generated document. See section +FORMATS for the possibilities recognized by the application.

+
path inputfile (in)
+

This argument specifies the path to the file to process. It has to +exist, must be readable, and written in doctools format.

+
+
dtplite validate inputfile
+

This is a simpler form for use case [1]. The "validate" format +generates no output at all, only syntax checks are performed. As such +the specification of an output file or other options is not necessary +and left out.

+
dtplite -o output ?options? format inputdirectory
+

This is the form for use case [2]. It differs from the form for +use case [1] by having the input documents specified through a +directory instead of a file. The other arguments are identical, except +for output, which now has to be the path to an existing and +writable directory.

+

The input documents are all files in inputdirectory or any of +its subdirectories which were recognized by fileutil::fileType +as containing text in doctools format.

+
dtplite -merge -o output ?options? format inputdirectory
+

This is the form for use case [3]. The only difference to the +form for use case [2] is the additional option -merge.

+

Each such call will merge the generated documents coming from +processing the input documents under inputdirectory or any of +its subdirectories to the files under output. In this manner it +is possible to incrementally build the unified documentation for any +number of packages. Note that it is necessary to run through all the +packages twice to get fully correct cross-references (for formats +supporting them).

+
+
+

OPTIONS

+

This section describes all the options available to the user of the +application, with +the exception of the options -o and -merge. These +two were described already, in section COMMAND LINE.

+
+
-exclude string
+

This option specifies an exclude (glob) pattern. Any files identified +as manpages to process which match the exclude pattern are +ignored. The option can be provided multiple times, each usage adding +an additional pattern to the list of exclusions.

+
-ext string
+

If the name of an output file has to be derived from the name of an +input file it will use the name of the format as the extension +by default. This option here will override this however, forcing it to +use string as the file extension. This option is ignored if the +name of the output file is fully specified through option -o.

+

When used multiple times only the last definition is relevant.

+
-header file
+

This option can be used if and only if the selected format +provides an engine parameter named "header". It takes the contents of +the specified file and assign them to that parameter, for whatever use +by the engine. The HTML engine will insert the text just after the tag +<body>. +If navigation buttons are present (see option -nav below), +then the HTML generated for them is appended to the header data +originating here before the final assignment to the parameter.

+

When used multiple times only the last definition is relevant.

+
-footer file
+

Like -header, except that: Any navigation buttons are ignored, +the corresponding required engine parameter is named "footer", and the +data is inserted just before the tag </body>.

+

When used multiple times only the last definition is relevant.

+
-style file
+

This option can be used if and only if the selected format +provides an engine parameter named "meta". When specified it will +generate a piece of HTML code declaring the file as the +stylesheet for the generated document and assign that to the +parameter. The HTML engine will insert this inot the document, just +after the tag <head>.

+

When processing an input directory the stylesheet file is copied into +the output directory and the generated HTML will refer to the copy, to +make the result more self-contained. When processing an input file we +have no location to copy the stylesheet to and so just reference it as +specified.

+

When used multiple times only the last definition is relevant.

+
-toc path
+

This option specifies a doctoc file to use for the table of contents +instead of generating our own.

+

When used multiple times only the last definition is relevant.

+
-pre+toc label path|text
+
+
-post+toc label path|text
+

This option specifies additional doctoc files (or texts) to use in +the navigation bar.

+

Positioning and handling of multiple uses is like for options +-prenav and -postnav, see below.

+
-nav label url
+
+
-prenav label url
+

Use this option to specify a navigation button with label to +display and the url to link to. This option can be used if and +only if the selected format provides an engine parameter named +"header". The HTML generated for this is appended to whatever data we +got from option -header before it is inserted into the +generated documents.

+

When used multiple times all definitions are collected and a +navigation bar is created, with the first definition shown at the left +edge and the last definition to the right.

+

The url can be relative. In that case it is assumed to be relative +to the main files (TOC and Keyword index), and will be transformed for +all others to still link properly.

+
-postnav label url
+

Use this option to specify a navigation button with label to +display and the url to link to. This option can be used if and +only if the selected format provides an engine parameter named +"header". The HTML generated for this is appended to whatever data we +got from option -header before it is inserted into the +generated documents.

+

When used multiple times all definitions are collected and a +navigation bar is created, with the last definition shown at the right +edge and the first definition to the left.

+

The url can be relative. In that case it is assumed to be relative +to the main files (TOC and Keyword index), and will be transformed for +all others to still link properly.

+
+
+

FORMATS

+

At first the format argument will be treated as a path to a tcl +file containing the code for the requested formatting engine. The +argument will be treated as the name of one of the predefined formats +listed below if and only if the path does not exist.

+

Note a limitation: If treating the format as path to the tcl +script implementing the engine was sucessful, then this script has to +implement not only the engine API for doctools, i.e. +doctools_api, but for doctoc_api and docidx_api +as well. Otherwise the generation of a table of contents and of a +keyword index will fail.

+

List of predefined formats, i.e. as provided by the +package doctools:

+
+
nroff
+

The processor generates *roff output, the standard format for unix +manpages.

+
html
+

The processor generates HTML output, for usage in and display by web +browsers. This engine is currently the only one providing the various +engine parameters required for the additional customaization of the +output.

+
tmml
+

The processor generates TMML output, the Tcl Manpage Markup Language, +a derivative of XML.

+
latex
+

The processor generates LaTeX output.

+
wiki
+

The processor generates Wiki markup as understood by wikit.

+
list
+

The processor extracts the information provided by manpage_begin. +This format is used internally to extract the meta data from which +both table of contents and keyword index are derived from.

+
null
+

The processor does not generate any output. This is equivalent to +validate.

+
+
+

DIRECTORY STRUCTURES

+

In this section we describe the directory structures generated by the +application under output when processing all documents in an +inputdirectory. In other words, this is only relevant to the use +cases [2] and [3].

+
+
[2]
+

The following directory structure is created when processing a single +set of input documents. The file extension used is for output in +HTML, but that is not relevant to the structure and was just used to +have proper file names.

+
+    output/
+        toc.html
+        index.html
+        files/
+            path/to/FOO.html
+
+

The last line in the example shows the document +generated for a file FOO located at

+
+    inputdirectory/path/to/FOO
+
+
+
[3]
+

When merging many packages into a unified set of documents the +generated directory structure is a bit deeper:

+
+    output
+        .toc
+        .idx
+        .tocdoc
+        .idxdoc
+        .xrf
+        toc.html
+        index.html
+        FOO1/
+            ...
+        FOO2/
+            toc.html
+            files/
+                path/to/BAR.html
+
+

Each of the directories FOO1, ... contains the documents generated for +the package FOO1, ... and follows the structure shown for use case +[2]. The only exception is that there is no per-package index.

+

The files ".toc", ".idx", and ".xrf" contain the +internal status of the whole output and will be read and updated by +the next invokation. Their contents will not be documented. Remove +these files when all packages wanted for the output have been +processed, i.e. when the output is complete.

+

The files ".tocdoc", and ".idxdoc", are intermediate files +in doctoc and docidx markup, respectively, containing the main table +of contents and keyword index for the set of documents before their +conversion to the chosen output format. +They are left in place, i.e. not deleted, to serve as demonstrations +of doctoc and docidx markup.

+
+
+
+

Bugs, Ideas, Feedback

+

This document, and the package it describes, will undoubtedly contain +bugs and other problems. +Please report such in the category doctools of the +Tcllib Trackers. +Please also report any ideas for enhancements you may have for either +package and/or documentation.

+
+ + +

Category

+

Documentation tools

+
+ +
diff --git a/embedded/www/tcllib/files/apps/nns.html b/embedded/www/tcllib/files/apps/nns.html new file mode 100644 index 0000000..03281eb --- /dev/null +++ b/embedded/www/tcllib/files/apps/nns.html @@ -0,0 +1,229 @@ + +
+ +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index +| Categories +| Modules +| Applications + ]
+
+

nns(n) 1.1 tcllib "Name service facility"

+

Name

+

nns - Name service facility, Commandline Client Application

+
+ + +

Description

+

Please read Name service facility, introduction first.

+

The application described by this document, nns, is a simple +command line client for the nano name service facility provided by the +Tcllib packages nameserv, and nameserv::server. +Beyond that the application's sources also serve as an example of how +to use the client package nameserv. All abilities of a +client are covered, from configuration to registration of names to +searching.

+

This name service facility has nothing to do with the Internet's +Domain Name System, otherwise known as DNS. If the +reader is looking for a package dealing with that please see either of +the packages dns and resolv, both found in Tcllib +too.

+

USE CASES

+

nns was written with the following two main use cases in +mind.

+
    +
  1. Registration of a name/data pair in the name service.

  2. +
  3. Searching the name service for entries matching a glob pattern.

  4. +
+

Beyond the above we also want to be able to identify the client, and +get information about the name service.

+
+

COMMAND LINE

+
+
nns bind ?-host host? ?-port port? name data
+

This form registers the name/data pair in the specified +name service. In this form the command will not exit to keep +the registration alive. The user has to kill it explicitly, either by +sending a signal, or through the job-control facilities of the shell +in use. It will especially survive the loss of the connection to the +name service and reestablish the name/data pair when the +connection is restored.

+

The options to specify the name service will be explained later, in +section OPTIONS.

+
nns search ?-host host? ?-port port? ?-continuous? ?pattern?
+

This form searches the specified name service for entries matching the +glob-pattern and prints them to stdout, with each entry on its +own line. If no pattern is specified it defaults to *, +matching everything.

+

The options to specify the name service will be explained later, in +section OPTIONS.

+

If the option -continuous is specified the client will not +exit after performing the search, but start to continuously monitor +the service for changes to the set of matching entries, appropriately +updating the display as changes arrive. In that form it will +especially also survive the loss of the connection to the name service +and reestablish the search when the connection is restored.

+
nns ident ?-host host? ?-port port?
+

This form asks the specified name service for the version and features +of the name service protocol it supports and prints the results to +stdout.

+

The options to specify the name service will be explained later, in +section OPTIONS.

+
nns who
+

This form prints name, version, and protocol version of the +application to stdout.

+
+
+

OPTIONS

+

This section describes all the options available to the user of the +application

+
+
-host name|ipaddress
+

If this option is not specified it defaults to localhost. It +specifies the name or ip-address of the host the name service to talk +to is running on.

+
-port number
+

If this option is not specified it defaults to 38573. It +specifies the TCP port the name service to talk to is listening on for +requests.

+
+
+
+

Bugs, Ideas, Feedback

+

This document, and the package it describes, will undoubtedly contain +bugs and other problems. +Please report such in the category nameserv of the +Tcllib Trackers. +Please also report any ideas for enhancements you may have for either +package and/or documentation.

+
+ + +

Category

+

Networking

+
+ +
diff --git a/embedded/www/tcllib/files/apps/nnsd.html b/embedded/www/tcllib/files/apps/nnsd.html new file mode 100644 index 0000000..c3a23ff --- /dev/null +++ b/embedded/www/tcllib/files/apps/nnsd.html @@ -0,0 +1,197 @@ + +
+ +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index +| Categories +| Modules +| Applications + ]
+
+

nnsd(n) 1.0.1 tcllib "Name service facility"

+

Name

+

nnsd - Name service facility, Commandline Server Application

+
+ + +

Description

+

Please read Name service facility, introduction first.

+

The application described by this document, nns, is a simple +command line server for the nano name service facility provided by the +Tcllib packages nameserv, and nameserv::server. +Beyond that the application's sources also serve as an example of how +to use the server package nameserv::server.

+

This name service facility has nothing to do with the Internet's +Domain Name System, otherwise known as DNS. If the +reader is looking for a package dealing with that please see either of +the packages dns and resolv, both found in Tcllib +too.

+

USE CASES

+

nnsd was written with the following main use case in +mind.

+
    +
  1. Run a nano name service on some host.

  2. +
+
+

COMMAND LINE

+
+
nnsd ?-localonly flag? ?-port port?
+

The command configures a server per the specified options and starts +it. The command will not exit on its own, as it keeps the name service +database wholly in memory. The user has to kill it explicitly, either +by sending a a signal, or through the job-control facilities of the +shell in use.

+

The options to configure the name service are explained in section +OPTIONS.

+
+
+

OPTIONS

+

This section describes all the options available to the user of the +application

+
+
-localonly bool
+

If this option is not specified it defaults to true, i.e. +acceptance of only local connections. The server will accept remote +connections, i.e. connections from other hosts, if and only if this +option is configured to false.

+
-port number
+

If this option is not specified it defaults to 38573. It +specifies the TCP port the server has to listen on for requests.

+
+
+
+

Bugs, Ideas, Feedback

+

This document, and the package it describes, will undoubtedly contain +bugs and other problems. +Please report such in the category nameserv of the +Tcllib Trackers. +Please also report any ideas for enhancements you may have for either +package and/or documentation.

+
+ + +

Category

+

Networking

+
+ +
diff --git a/embedded/www/tcllib/files/apps/nnslog.html b/embedded/www/tcllib/files/apps/nnslog.html new file mode 100644 index 0000000..69aceab --- /dev/null +++ b/embedded/www/tcllib/files/apps/nnslog.html @@ -0,0 +1,200 @@ + +
+ +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index +| Categories +| Modules +| Applications + ]
+
+

nnslog(n) 1.0 tcllib "Name service facility"

+

Name

+

nnslog - Name service facility, Commandline Logging Client Application

+
+ + +

Description

+

Please read Name service facility, introduction first.

+

The application described by this document, nnslog, is a +simple command line client for the nano name service facility provided +by the Tcllib packages nameserv, and nameserv::server.

+

It essentially implements "nns search -continuous *", but +uses a different output formatting. Instead of continuously showing +the current contents of the server in the terminal it simply logs all +received add/remove events to stdout.

+

This name service facility has nothing to do with the Internet's +Domain Name System, otherwise known as DNS. If the +reader is looking for a package dealing with that please see either of +the packages dns and resolv, both found in Tcllib +too.

+

USE CASES

+

nnslog was written with the following main use case in mind.

+
    +
  1. Monitoring the name service for all changes and lo