├── .classpath ├── .gitignore ├── .hgignore ├── .project ├── .travis.yml ├── README.md ├── build.xml ├── maven-build.properties ├── maven-build.xml ├── misc ├── fix-tests.sh ├── mkDocRelease.sh ├── mkRelease.sh ├── mkSrcRelease.sh ├── release_build.sh └── tcllib_notes.txt ├── pom.xml ├── src ├── main │ ├── assembly │ │ ├── bin.xml │ │ ├── doc.xml │ │ └── src.xml │ ├── java │ │ ├── org │ │ │ └── codehaus │ │ │ │ └── janino │ │ │ │ ├── Access.java │ │ │ │ ├── AstCompilationUnitGenerator.java │ │ │ │ ├── ByteArrayClassLoader.java │ │ │ │ ├── CachingJavaSourceClassLoader.java │ │ │ │ ├── ClassBodyEvaluator.java │ │ │ │ ├── ClassFileIClass.java │ │ │ │ ├── ClassLoaderIClassLoader.java │ │ │ │ ├── CodeContext.java │ │ │ │ ├── CompileException.java │ │ │ │ ├── Compiler.java │ │ │ │ ├── Cookable.java │ │ │ │ ├── DebuggingInformation.java │ │ │ │ ├── Descriptor.java │ │ │ │ ├── ExpressionEvaluator.java │ │ │ │ ├── FilterWarningHandler.java │ │ │ │ ├── IClass.java │ │ │ │ ├── IClassLoader.java │ │ │ │ ├── Java.java │ │ │ │ ├── JavaSourceClassLoader.java │ │ │ │ ├── JavaSourceIClassLoader.java │ │ │ │ ├── Location.java │ │ │ │ ├── MethodDescriptor.java │ │ │ │ ├── Mod.java │ │ │ │ ├── Opcode.java │ │ │ │ ├── Parser.java │ │ │ │ ├── ReflectionIClass.java │ │ │ │ ├── ResourceFinderIClassLoader.java │ │ │ │ ├── Scanner.java │ │ │ │ ├── ScriptEvaluator.java │ │ │ │ ├── SimpleCompiler.java │ │ │ │ ├── UnicodeUnescapeException.java │ │ │ │ ├── UnicodeUnescapeReader.java │ │ │ │ ├── UnitCompiler.java │ │ │ │ ├── UnparseVisitor.java │ │ │ │ ├── Visitor.java │ │ │ │ ├── WarningHandler.java │ │ │ │ ├── doc-files │ │ │ │ └── new_bsd_license.txt │ │ │ │ ├── samples │ │ │ │ ├── ClassBodyDemo.java │ │ │ │ ├── DeclarationCounter.java │ │ │ │ ├── DemoBase.java │ │ │ │ ├── ExpressionDemo.java │ │ │ │ ├── ScriptDemo.java │ │ │ │ └── ShippingCost.java │ │ │ │ ├── tools │ │ │ │ ├── Disassembler.java │ │ │ │ ├── HprofScrubber.java │ │ │ │ └── JGrep.java │ │ │ │ └── util │ │ │ │ ├── AutoIndentWriter.java │ │ │ │ ├── Benchmark.java │ │ │ │ ├── CausedException.java │ │ │ │ ├── ClassFile.java │ │ │ │ ├── MultiIterator.java │ │ │ │ ├── PrimitiveWrapper.java │ │ │ │ ├── Producer.java │ │ │ │ ├── ResourceFinderClassLoader.java │ │ │ │ ├── StringPattern.java │ │ │ │ ├── TeeReader.java │ │ │ │ ├── Traverser.java │ │ │ │ ├── enumerator │ │ │ │ ├── Enumerator.java │ │ │ │ ├── EnumeratorFormatException.java │ │ │ │ ├── EnumeratorSet.java │ │ │ │ └── EnumeratorSetTypeException.java │ │ │ │ ├── iterator │ │ │ │ ├── DirectoryIterator.java │ │ │ │ ├── EnumerationIterator.java │ │ │ │ ├── FilterIterator.java │ │ │ │ ├── FilterListIterator.java │ │ │ │ ├── IteratorCollection.java │ │ │ │ ├── MultiDimensionalIterator.java │ │ │ │ ├── ProducerIterator.java │ │ │ │ ├── ReverseListIterator.java │ │ │ │ ├── ScopeIterator.java │ │ │ │ ├── TransformingIterator.java │ │ │ │ ├── TraversingIterator.java │ │ │ │ └── UniterableElementException.java │ │ │ │ └── resource │ │ │ │ ├── DirectoryResourceCreator.java │ │ │ │ ├── DirectoryResourceFinder.java │ │ │ │ ├── FileResource.java │ │ │ │ ├── FileResourceCreator.java │ │ │ │ ├── FileResourceFinder.java │ │ │ │ ├── JarDirectoriesResourceFinder.java │ │ │ │ ├── LazyMultiResourceFinder.java │ │ │ │ ├── MapResourceCreator.java │ │ │ │ ├── MapResourceFinder.java │ │ │ │ ├── MultiResourceFinder.java │ │ │ │ ├── PathResourceFinder.java │ │ │ │ ├── Resource.java │ │ │ │ ├── ResourceCreator.java │ │ │ │ ├── ResourceFinder.java │ │ │ │ └── ZipFileResourceFinder.java │ │ └── tcl │ │ │ ├── lang │ │ │ ├── AppShell.java │ │ │ ├── AssocData.java │ │ │ ├── BackSlashResult.java │ │ │ ├── BgErrorMgr.java │ │ │ ├── CallFrame.java │ │ │ ├── CharPointer.java │ │ │ ├── Command.java │ │ │ ├── CommandTrace.java │ │ │ ├── CommandWithDispose.java │ │ │ ├── ConsoleThread.java │ │ │ ├── DebugInfo.java │ │ │ ├── Env.java │ │ │ ├── EventDeleter.java │ │ │ ├── EventuallyFreed.java │ │ │ ├── ExecutionTrace.java │ │ │ ├── ExprValue.java │ │ │ ├── Expression.java │ │ │ ├── Extension.java │ │ │ ├── FileUtil.java │ │ │ ├── FindElemResult.java │ │ │ ├── IdleHandler.java │ │ │ ├── ImportRef.java │ │ │ ├── ImportedCmdData.java │ │ │ ├── InternalRep.java │ │ │ ├── Interp.java │ │ │ ├── JACL.java │ │ │ ├── ManagedSystemInStream.java │ │ │ ├── Namespace.java │ │ │ ├── NonInteractiveShell.java │ │ │ ├── Notifier.java │ │ │ ├── PackageNameException.java │ │ │ ├── ParseAdaptor.java │ │ │ ├── ParseExpr.java │ │ │ ├── ParseResult.java │ │ │ ├── Parser.java │ │ │ ├── Pipeline.java │ │ │ ├── Procedure.java │ │ │ ├── QSort.java │ │ │ ├── Regex.java │ │ │ ├── Resolver.java │ │ │ ├── SearchId.java │ │ │ ├── Shell.java │ │ │ ├── StrtodResult.java │ │ │ ├── StrtoulResult.java │ │ │ ├── TCL.java │ │ │ ├── TclBoolean.java │ │ │ ├── TclByteArray.java │ │ │ ├── TclClassLoader.java │ │ │ ├── TclDict.java │ │ │ ├── TclDouble.java │ │ │ ├── TclEvent.java │ │ │ ├── TclException.java │ │ │ ├── TclIO.java │ │ │ ├── TclIndex.java │ │ │ ├── TclInteger.java │ │ │ ├── TclInterruptedException.java │ │ │ ├── TclLambda.java │ │ │ ├── TclList.java │ │ │ ├── TclNumArgsException.java │ │ │ ├── TclObject.java │ │ │ ├── TclObjectBase.java │ │ │ ├── TclParse.java │ │ │ ├── TclParser.java │ │ │ ├── TclParserExtension.java │ │ │ ├── TclPosixException.java │ │ │ ├── TclRegexp.java │ │ │ ├── TclRuntimeError.java │ │ │ ├── TclString.java │ │ │ ├── TclToken.java │ │ │ ├── TclVarException.java │ │ │ ├── TimerHandler.java │ │ │ ├── TraceRecord.java │ │ │ ├── Util.java │ │ │ ├── Var.java │ │ │ ├── VarTrace.java │ │ │ ├── Word.java │ │ │ ├── WrappedCommand.java │ │ │ ├── channel │ │ │ │ ├── AbstractSocketChannel.java │ │ │ │ ├── Channel.java │ │ │ │ ├── EofInputFilter.java │ │ │ │ ├── EofOutputFilter.java │ │ │ │ ├── EolInputFilter.java │ │ │ │ ├── EolOutputFilter.java │ │ │ │ ├── Fcopy.java │ │ │ │ ├── FileChannel.java │ │ │ │ ├── FileEvent.java │ │ │ │ ├── FileEventScript.java │ │ │ │ ├── InputBuffer.java │ │ │ │ ├── MarkableInputStream.java │ │ │ │ ├── NonBlockingOutputStream.java │ │ │ │ ├── OutputBuffer.java │ │ │ │ ├── PipelineChannel.java │ │ │ │ ├── ReadInputStreamChannel.java │ │ │ │ ├── ResourceChannel.java │ │ │ │ ├── SeekableChannel.java │ │ │ │ ├── ServerSocketChannel.java │ │ │ │ ├── SocketChannel.java │ │ │ │ ├── SocketConnectionEvent.java │ │ │ │ ├── StdChannel.java │ │ │ │ ├── TclByteArrayChannel.java │ │ │ │ ├── UnicodeDecoder.java │ │ │ │ └── UnicodeEncoder.java │ │ │ ├── cmd │ │ │ │ ├── AfterCmd.java │ │ │ │ ├── AppendCmd.java │ │ │ │ ├── ApplyCmd.java │ │ │ │ ├── ArrayCmd.java │ │ │ │ ├── BinaryCmd.java │ │ │ │ ├── BreakCmd.java │ │ │ │ ├── CaseCmd.java │ │ │ │ ├── CatchCmd.java │ │ │ │ ├── CdCmd.java │ │ │ │ ├── ClockCmd.java │ │ │ │ ├── CloseCmd.java │ │ │ │ ├── ConcatCmd.java │ │ │ │ ├── ContinueCmd.java │ │ │ │ ├── DictCmd.java │ │ │ │ ├── EncodingCmd.java │ │ │ │ ├── EofCmd.java │ │ │ │ ├── ErrorCmd.java │ │ │ │ ├── EvalCmd.java │ │ │ │ ├── ExecCmd.java │ │ │ │ ├── ExitCmd.java │ │ │ │ ├── ExprCmd.java │ │ │ │ ├── FblockedCmd.java │ │ │ │ ├── FconfigureCmd.java │ │ │ │ ├── FcopyCmd.java │ │ │ │ ├── FileCmd.java │ │ │ │ ├── FileeventCmd.java │ │ │ │ ├── FlushCmd.java │ │ │ │ ├── ForCmd.java │ │ │ │ ├── ForeachCmd.java │ │ │ │ ├── FormatCmd.java │ │ │ │ ├── GetsCmd.java │ │ │ │ ├── GlobCmd.java │ │ │ │ ├── GlobalCmd.java │ │ │ │ ├── IfCmd.java │ │ │ │ ├── IncrCmd.java │ │ │ │ ├── InfoCmd.java │ │ │ │ ├── InterpAliasCmd.java │ │ │ │ ├── InterpCmd.java │ │ │ │ ├── InterpSlaveCmd.java │ │ │ │ ├── JoinCmd.java │ │ │ │ ├── LappendCmd.java │ │ │ │ ├── LassignCmd.java │ │ │ │ ├── LindexCmd.java │ │ │ │ ├── LinsertCmd.java │ │ │ │ ├── ListCmd.java │ │ │ │ ├── LlengthCmd.java │ │ │ │ ├── LrangeCmd.java │ │ │ │ ├── LrepeatCmd.java │ │ │ │ ├── LreplaceCmd.java │ │ │ │ ├── LreverseCmd.java │ │ │ │ ├── LsearchCmd.java │ │ │ │ ├── LsetCmd.java │ │ │ │ ├── LsortCmd.java │ │ │ │ ├── NamespaceCmd.java │ │ │ │ ├── OpenCmd.java │ │ │ │ ├── PackageCmd.java │ │ │ │ ├── PidCmd.java │ │ │ │ ├── ProcCmd.java │ │ │ │ ├── PutsCmd.java │ │ │ │ ├── PwdCmd.java │ │ │ │ ├── ReadCmd.java │ │ │ │ ├── RegexpCmd.java │ │ │ │ ├── RegsubCmd.java │ │ │ │ ├── RenameCmd.java │ │ │ │ ├── ReturnCmd.java │ │ │ │ ├── ScanCmd.java │ │ │ │ ├── SeekCmd.java │ │ │ │ ├── SetCmd.java │ │ │ │ ├── SocketCmd.java │ │ │ │ ├── SourceCmd.java │ │ │ │ ├── SplitCmd.java │ │ │ │ ├── StringCmd.java │ │ │ │ ├── SubstCmd.java │ │ │ │ ├── SwitchCmd.java │ │ │ │ ├── TellCmd.java │ │ │ │ ├── TimeCmd.java │ │ │ │ ├── TraceCmd.java │ │ │ │ ├── UnsetCmd.java │ │ │ │ ├── UpdateCmd.java │ │ │ │ ├── UplevelCmd.java │ │ │ │ ├── UpvarCmd.java │ │ │ │ ├── VariableCmd.java │ │ │ │ ├── VwaitCmd.java │ │ │ │ └── WhileCmd.java │ │ │ ├── embed │ │ │ │ └── jsr223 │ │ │ │ │ ├── JtclScriptEngine.java │ │ │ │ │ └── JtclScriptEngineFactory.java │ │ │ └── process │ │ │ │ ├── JavaProcess.java │ │ │ │ ├── Redirect.java │ │ │ │ └── TclProcess.java │ │ │ └── pkg │ │ │ ├── fleet │ │ │ ├── ArgOptions.java │ │ │ ├── FleetCmd.java │ │ │ ├── FleetExt.java │ │ │ ├── FleetMember.java │ │ │ └── Message.java │ │ │ ├── itcl │ │ │ ├── BiCmds.java │ │ │ ├── Class.java │ │ │ ├── Cmds.java │ │ │ ├── Ensemble.java │ │ │ ├── Itcl.java │ │ │ ├── ItclAccess.java │ │ │ ├── ItclExtension.java │ │ │ ├── ItclInt.java │ │ │ ├── Linkage.java │ │ │ ├── Methods.java │ │ │ ├── Migrate.java │ │ │ ├── Objects.java │ │ │ ├── Parse.java │ │ │ └── Util.java │ │ │ ├── java │ │ │ ├── AdaptorClassLoader.java │ │ │ ├── AdaptorGen.java │ │ │ ├── ArrayObject.java │ │ │ ├── BeanEvent.java │ │ │ ├── BeanEventMgr.java │ │ │ ├── BeanEventParamSet.java │ │ │ ├── BlendExtension.java │ │ │ ├── ClassRep.java │ │ │ ├── EventAdaptor.java │ │ │ ├── FieldSig.java │ │ │ ├── FuncSig.java │ │ │ ├── JaclLoadJavaCmd.java │ │ │ ├── JavaBindCmd.java │ │ │ ├── JavaCallCmd.java │ │ │ ├── JavaCastCmd.java │ │ │ ├── JavaDefineClassCmd.java │ │ │ ├── JavaEventCmd.java │ │ │ ├── JavaFieldCmd.java │ │ │ ├── JavaForCmd.java │ │ │ ├── JavaGetInterpCmd.java │ │ │ ├── JavaImportCmd.java │ │ │ ├── JavaInfoCmd.java │ │ │ ├── JavaInstanceofCmd.java │ │ │ ├── JavaInvoke.java │ │ │ ├── JavaIsNullCmd.java │ │ │ ├── JavaLoadCmd.java │ │ │ ├── JavaNewCmd.java │ │ │ ├── JavaNullCmd.java │ │ │ ├── JavaPropCmd.java │ │ │ ├── JavaThrowCmd.java │ │ │ ├── JavaTryCmd.java │ │ │ ├── PropertySig.java │ │ │ ├── ReflectException.java │ │ │ ├── ReflectObject.java │ │ │ ├── UnsupportedJDetachCallCmd.java │ │ │ └── reflect │ │ │ │ └── PkgInvoker.java │ │ │ └── tjc │ │ │ ├── JaclLoadTJCCmd.java │ │ │ ├── TJC.java │ │ │ ├── TJCBench.java │ │ │ ├── TJCCommandCmd.java │ │ │ ├── TJCCompileCmd.java │ │ │ ├── TJCPackageCmd.java │ │ │ ├── TJCReadyVar.java │ │ │ ├── TJCShell.java │ │ │ └── TJCThread.java │ ├── licenses │ │ ├── license.amd │ │ ├── license.itcl │ │ ├── license.janino │ │ ├── license.tcllib │ │ ├── license.terms │ │ └── license.ucb │ ├── readmes │ │ └── README │ ├── resources │ │ ├── META-INF │ │ │ └── services │ │ │ │ └── javax.script.ScriptEngineFactory │ │ └── tcl │ │ │ ├── lang │ │ │ └── library │ │ │ │ ├── auto.tcl │ │ │ │ ├── history.tcl │ │ │ │ ├── http │ │ │ │ ├── http.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── http10 │ │ │ │ ├── http.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── init.tcl │ │ │ │ ├── jtcl_version.tcl │ │ │ │ ├── ldAout.tcl │ │ │ │ ├── license.terms │ │ │ │ ├── msgcat │ │ │ │ ├── msgcat.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── opt │ │ │ │ ├── optparse.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── package.tcl │ │ │ │ ├── parray.tcl │ │ │ │ ├── safe.tcl │ │ │ │ ├── tclIndex │ │ │ │ ├── tcltest │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── tcltest.tcl │ │ │ │ └── word.tcl │ │ │ └── pkg │ │ │ ├── itcl │ │ │ └── library │ │ │ │ └── itcl.tcl │ │ │ ├── java │ │ │ └── library │ │ │ │ └── javalock.tcl │ │ │ ├── jtcllib │ │ │ └── library │ │ │ │ ├── fleet │ │ │ │ ├── fleet.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── hyde │ │ │ │ ├── hyde.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── ziplib │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── ziplib.tcl │ │ │ ├── tcllib │ │ │ └── library │ │ │ │ ├── aes │ │ │ │ ├── aes.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── asn │ │ │ │ ├── asn.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── base32 │ │ │ │ ├── base32.tcl │ │ │ │ ├── base32_c.tcl │ │ │ │ ├── base32_tcl.tcl │ │ │ │ ├── base32core.tcl │ │ │ │ ├── base32hex.tcl │ │ │ │ ├── base32hex_c.tcl │ │ │ │ ├── base32hex_tcl.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── base64 │ │ │ │ ├── ascii85.tcl │ │ │ │ ├── base64.tcl │ │ │ │ ├── base64c.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── uuencode.tcl │ │ │ │ └── yencode.tcl │ │ │ │ ├── bee │ │ │ │ ├── bee.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── bench │ │ │ │ ├── bench.tcl │ │ │ │ ├── bench_read.tcl │ │ │ │ ├── bench_wcsv.tcl │ │ │ │ ├── bench_wtext.tcl │ │ │ │ ├── libbench.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── bibtex │ │ │ │ ├── bibtex.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── blowfish │ │ │ │ ├── blowfish.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── cache │ │ │ │ ├── async.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── cmdline │ │ │ │ ├── cmdline.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── comm │ │ │ │ ├── comm.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── control │ │ │ │ ├── ascaller.tcl │ │ │ │ ├── assert.tcl │ │ │ │ ├── control.tcl │ │ │ │ ├── do.tcl │ │ │ │ ├── no-op.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── tclIndex │ │ │ │ ├── counter │ │ │ │ ├── counter.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── crc │ │ │ │ ├── cksum.tcl │ │ │ │ ├── crc16.tcl │ │ │ │ ├── crc32.tcl │ │ │ │ ├── crcc.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── sum.tcl │ │ │ │ ├── csv │ │ │ │ ├── csv.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── des │ │ │ │ ├── des.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── tcldes.tcl │ │ │ │ └── tcldesjr.tcl │ │ │ │ ├── dns │ │ │ │ ├── dns.tcl │ │ │ │ ├── ip.tcl │ │ │ │ ├── ipMore.tcl │ │ │ │ ├── ipMoreC.tcl │ │ │ │ ├── msgs │ │ │ │ │ └── en.msg │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── resolv.tcl │ │ │ │ └── spf.tcl │ │ │ │ ├── docstrip │ │ │ │ ├── docstrip.tcl │ │ │ │ ├── docstrip_util.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── doctools │ │ │ │ ├── api.tcl │ │ │ │ ├── api_idx.tcl │ │ │ │ ├── api_toc.tcl │ │ │ │ ├── changelog.tcl │ │ │ │ ├── checker.tcl │ │ │ │ ├── checker_idx.tcl │ │ │ │ ├── checker_toc.tcl │ │ │ │ ├── cvs.tcl │ │ │ │ ├── docidx.tcl │ │ │ │ ├── doctoc.tcl │ │ │ │ ├── doctools.tcl │ │ │ │ ├── mpformats │ │ │ │ │ ├── _common.tcl │ │ │ │ │ ├── _html.tcl │ │ │ │ │ ├── _idx_common.tcl │ │ │ │ │ ├── _nroff.tcl │ │ │ │ │ ├── _text.tcl │ │ │ │ │ ├── _toc_common.tcl │ │ │ │ │ ├── _xml.tcl │ │ │ │ │ ├── c.msg │ │ │ │ │ ├── de.msg │ │ │ │ │ ├── en.msg │ │ │ │ │ ├── fmt.desc │ │ │ │ │ ├── fmt.html │ │ │ │ │ ├── fmt.latex │ │ │ │ │ ├── fmt.list │ │ │ │ │ ├── fmt.nroff │ │ │ │ │ ├── fmt.null │ │ │ │ │ ├── fmt.text │ │ │ │ │ ├── fmt.tmml │ │ │ │ │ ├── fmt.wiki │ │ │ │ │ ├── fr.msg │ │ │ │ │ ├── idx.html │ │ │ │ │ ├── idx.nroff │ │ │ │ │ ├── idx.null │ │ │ │ │ ├── idx.text │ │ │ │ │ ├── idx.wiki │ │ │ │ │ ├── man.macros │ │ │ │ │ ├── toc.html │ │ │ │ │ ├── toc.nroff │ │ │ │ │ ├── toc.null │ │ │ │ │ ├── toc.text │ │ │ │ │ ├── toc.tmml │ │ │ │ │ └── toc.wiki │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── doctools2base │ │ │ │ ├── config.tcl │ │ │ │ ├── html.tcl │ │ │ │ ├── html_cssdefaults.tcl │ │ │ │ ├── msgcat.tcl │ │ │ │ ├── nroff_manmacros.tcl │ │ │ │ ├── paths.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── tcl_parse.tcl │ │ │ │ └── text.tcl │ │ │ │ ├── doctools2idx │ │ │ │ ├── container.tcl │ │ │ │ ├── export.tcl │ │ │ │ ├── export_docidx.tcl │ │ │ │ ├── export_html.tcl │ │ │ │ ├── export_json.tcl │ │ │ │ ├── export_nroff.tcl │ │ │ │ ├── export_text.tcl │ │ │ │ ├── export_wiki.tcl │ │ │ │ ├── import.tcl │ │ │ │ ├── import_docidx.tcl │ │ │ │ ├── import_json.tcl │ │ │ │ ├── msgcat_c.tcl │ │ │ │ ├── msgcat_de.tcl │ │ │ │ ├── msgcat_en.tcl │ │ │ │ ├── msgcat_fr.tcl │ │ │ │ ├── parse.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── structure.tcl │ │ │ │ ├── doctools2toc │ │ │ │ ├── container.tcl │ │ │ │ ├── export.tcl │ │ │ │ ├── export_doctoc.tcl │ │ │ │ ├── export_html.tcl │ │ │ │ ├── export_json.tcl │ │ │ │ ├── export_nroff.tcl │ │ │ │ ├── export_text.tcl │ │ │ │ ├── export_wiki.tcl │ │ │ │ ├── import.tcl │ │ │ │ ├── import_doctoc.tcl │ │ │ │ ├── import_json.tcl │ │ │ │ ├── msgcat_c.tcl │ │ │ │ ├── msgcat_de.tcl │ │ │ │ ├── msgcat_en.tcl │ │ │ │ ├── msgcat_fr.tcl │ │ │ │ ├── parse.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── structure.tcl │ │ │ │ ├── fileutil │ │ │ │ ├── fileutil.tcl │ │ │ │ ├── multi.tcl │ │ │ │ ├── multiop.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── traverse.tcl │ │ │ │ ├── ftp │ │ │ │ ├── ftp.tcl │ │ │ │ ├── ftp_geturl.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── ftpd │ │ │ │ ├── ftpd.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── fumagic │ │ │ │ ├── cfront.tcl │ │ │ │ ├── cgen.tcl │ │ │ │ ├── filetypes.tcl │ │ │ │ ├── mimetypes.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── rtcore.tcl │ │ │ │ ├── grammar_fa │ │ │ │ ├── dacceptor.tcl │ │ │ │ ├── dexec.tcl │ │ │ │ ├── fa.tcl │ │ │ │ ├── faop.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── grammar_me │ │ │ │ ├── gasm.tcl │ │ │ │ ├── me_cpu.tcl │ │ │ │ ├── me_cpucore.tcl │ │ │ │ ├── me_tcl.tcl │ │ │ │ ├── me_util.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── grammar_peg │ │ │ │ ├── peg.tcl │ │ │ │ ├── peg_interp.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── html │ │ │ │ ├── html.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── htmlparse │ │ │ │ ├── htmlparse.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── http │ │ │ │ ├── autoproxy.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── ident │ │ │ │ ├── ident.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── inifile │ │ │ │ ├── ini.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── interp │ │ │ │ ├── deleg_method.tcl │ │ │ │ ├── deleg_proc.tcl │ │ │ │ ├── interp.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── irc │ │ │ │ ├── irc.tcl │ │ │ │ ├── picoirc.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── javascript │ │ │ │ ├── javascript.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── jpeg │ │ │ │ ├── jpeg.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── json │ │ │ │ ├── json.tcl │ │ │ │ ├── json_write.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── ldap │ │ │ │ ├── ldap.tcl │ │ │ │ ├── ldapx.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── log │ │ │ │ ├── log.tcl │ │ │ │ ├── logger.tcl │ │ │ │ ├── loggerAppender.tcl │ │ │ │ ├── loggerUtils.tcl │ │ │ │ ├── msgs │ │ │ │ │ └── en.msg │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── map │ │ │ │ ├── map_slippy.tcl │ │ │ │ ├── map_slippy_cache.tcl │ │ │ │ ├── map_slippy_fetcher.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── mapproj │ │ │ │ ├── mapproj.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── math │ │ │ │ ├── bessel.tcl │ │ │ │ ├── bigfloat.tcl │ │ │ │ ├── bigfloat2.tcl │ │ │ │ ├── bignum.tcl │ │ │ │ ├── calculus.tcl │ │ │ │ ├── classic_polyns.tcl │ │ │ │ ├── combinatorics.tcl │ │ │ │ ├── constants.tcl │ │ │ │ ├── elliptic.tcl │ │ │ │ ├── exponential.tcl │ │ │ │ ├── fourier.tcl │ │ │ │ ├── fuzzy.tcl │ │ │ │ ├── geometry.tcl │ │ │ │ ├── interpolate.tcl │ │ │ │ ├── kruskal.tcl │ │ │ │ ├── linalg.tcl │ │ │ │ ├── liststat.tcl │ │ │ │ ├── machineparameters.tcl │ │ │ │ ├── math.tcl │ │ │ │ ├── misc.tcl │ │ │ │ ├── mvlinreg.tcl │ │ │ │ ├── numtheory.tcl │ │ │ │ ├── optimize.tcl │ │ │ │ ├── pdf_stat.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── plotstat.tcl │ │ │ │ ├── polynomials.tcl │ │ │ │ ├── qcomplex.tcl │ │ │ │ ├── rational_funcs.tcl │ │ │ │ ├── romannumerals.tcl │ │ │ │ ├── special.tcl │ │ │ │ ├── statistics.tcl │ │ │ │ ├── symdiff.tcl │ │ │ │ └── tclIndex │ │ │ │ ├── md4 │ │ │ │ ├── md4.tcl │ │ │ │ ├── md4c.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── md5 │ │ │ │ ├── md5.tcl │ │ │ │ ├── md5c.tcl │ │ │ │ ├── md5x.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── md5crypt │ │ │ │ ├── md5crypt.tcl │ │ │ │ ├── md5cryptc.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── mime │ │ │ │ ├── mime.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── smtp.tcl │ │ │ │ ├── multiplexer │ │ │ │ ├── multiplexer.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── ncgi │ │ │ │ ├── ncgi.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── nmea │ │ │ │ ├── nmea.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── nns │ │ │ │ ├── common.tcl │ │ │ │ ├── nns.tcl │ │ │ │ ├── nns_auto.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── server.tcl │ │ │ │ ├── nntp │ │ │ │ ├── nntp.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── ntp │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── time.tcl │ │ │ │ ├── otp │ │ │ │ ├── otp.tcl │ │ │ │ └── pkgIndex.tcl │ │ │ │ ├── page │ │ │ │ ├── analysis_peg_emodes.tcl │ │ │ │ ├── analysis_peg_minimize.tcl │ │ │ │ ├── analysis_peg_reachable.tcl │ │ │ │ ├── analysis_peg_realizable.tcl │ │ │ │ ├── compiler_peg_mecpu.tcl │ │ │ │ ├── gen_peg_canon.tcl │ │ │ │ ├── gen_peg_cpkg.tcl │ │ │ │ ├── gen_peg_hb.tcl │ │ │ │ ├── gen_peg_me.tcl │ │ │ │ ├── gen_peg_mecpu.tcl │ │ │ │ ├── gen_peg_ser.tcl │ │ │ │ ├── gen_tree_text.tcl │ │ │ │ ├── parse_lemon.tcl │ │ │ │ ├── parse_peg.tcl │ │ │ │ ├── parse_peghb.tcl │ │ │ │ ├── parse_pegser.tcl │ │ │ │ ├── peg_grammar.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── pluginmgr.tcl │ │ │ │ ├── plugins │ │ │ │ │ ├── config_peg.tcl │ │ │ │ │ ├── pkgIndex.tcl │ │ │ │ │ ├── reader_hb.tcl │ │ │ │ │ ├── reader_lemon.tcl │ │ │ │ │ ├── reader_peg.tcl │ │ │ │ │ ├── reader_ser.tcl │ │ │ │ │ ├── reader_treeser.tcl │ │ │ │ │ ├── transform_mecpu.tcl │ │ │ │ │ ├── transform_reachable.tcl │ │ │ │ │ ├── transform_realizable.tcl │ │ │ │ │ ├── writer_hb.tcl │ │ │ │ │ ├── writer_identity.tcl │ │ │ │ │ ├── writer_me.tcl │ │ │ │ │ ├── writer_mecpu.tcl │ │ │ │ │ ├── writer_null.tcl │ │ │ │ │ ├── writer_peg.tcl │ │ │ │ │ ├── writer_ser.tcl │ │ │ │ │ ├── writer_tpc.tcl │ │ │ │ │ └── writer_tree.tcl │ │ │ │ ├── util_flow.tcl │ │ │ │ ├── util_norm_lemon.tcl │ │ │ │ ├── util_norm_peg.tcl │ │ │ │ ├── util_peg.tcl │ │ │ │ └── util_quote.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── pluginmgr │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── pluginmgr.tcl │ │ │ │ ├── png │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── png.tcl │ │ │ │ ├── pop3 │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── pop3.tcl │ │ │ │ ├── pop3d │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── pop3d.tcl │ │ │ │ ├── pop3d_dbox.tcl │ │ │ │ └── pop3d_udb.tcl │ │ │ │ ├── profiler │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── profiler.tcl │ │ │ │ ├── rc4 │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── rc4.tcl │ │ │ │ └── rc4c.tcl │ │ │ │ ├── rcs │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── rcs.tcl │ │ │ │ ├── report │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── report.tcl │ │ │ │ ├── ripemd │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── ripemd128.tcl │ │ │ │ └── ripemd160.tcl │ │ │ │ ├── sasl │ │ │ │ ├── gtoken.tcl │ │ │ │ ├── ntlm.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── sasl.tcl │ │ │ │ ├── sha1 │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── sha1.tcl │ │ │ │ ├── sha1c.tcl │ │ │ │ ├── sha1v1.tcl │ │ │ │ ├── sha256.tcl │ │ │ │ └── sha256c.tcl │ │ │ │ ├── simulation │ │ │ │ ├── annealing.tcl │ │ │ │ ├── montecarlo.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── random.tcl │ │ │ │ ├── smtpd │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── smtpd.tcl │ │ │ │ ├── snit │ │ │ │ ├── main1.tcl │ │ │ │ ├── main1_83.tcl │ │ │ │ ├── main2.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── snit.tcl │ │ │ │ ├── snit2.tcl │ │ │ │ ├── snit_tcl83_utils.tcl │ │ │ │ └── validate.tcl │ │ │ │ ├── soundex │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── soundex.tcl │ │ │ │ ├── stooop │ │ │ │ ├── mkpkgidx.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── stooop.tcl │ │ │ │ ├── switched.tcl │ │ │ │ └── xifo.tcl │ │ │ │ ├── stringprep │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── stringprep.tcl │ │ │ │ ├── stringprep_data.tcl │ │ │ │ ├── unicode.tcl │ │ │ │ └── unicode_data.tcl │ │ │ │ ├── struct │ │ │ │ ├── disjointset.tcl │ │ │ │ ├── graph.tcl │ │ │ │ ├── graph1.tcl │ │ │ │ ├── graph_c.tcl │ │ │ │ ├── graph_tcl.tcl │ │ │ │ ├── graphops.tcl │ │ │ │ ├── list.tcl │ │ │ │ ├── matrix.tcl │ │ │ │ ├── matrix1.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── pool.tcl │ │ │ │ ├── prioqueue.tcl │ │ │ │ ├── queue.tcl │ │ │ │ ├── queue_c.tcl │ │ │ │ ├── queue_oo.tcl │ │ │ │ ├── queue_tcl.tcl │ │ │ │ ├── record.tcl │ │ │ │ ├── sets.tcl │ │ │ │ ├── sets_c.tcl │ │ │ │ ├── sets_tcl.tcl │ │ │ │ ├── skiplist.tcl │ │ │ │ ├── stack.tcl │ │ │ │ ├── stack_c.tcl │ │ │ │ ├── stack_oo.tcl │ │ │ │ ├── stack_tcl.tcl │ │ │ │ ├── struct.tcl │ │ │ │ ├── struct1.tcl │ │ │ │ ├── tree.tcl │ │ │ │ ├── tree1.tcl │ │ │ │ ├── tree_c.tcl │ │ │ │ └── tree_tcl.tcl │ │ │ │ ├── tar │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── tar.tcl │ │ │ │ ├── tepam │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── tepam.tcl │ │ │ │ ├── term │ │ │ │ ├── ansi │ │ │ │ │ ├── code.tcl │ │ │ │ │ ├── code │ │ │ │ │ │ ├── attr.tcl │ │ │ │ │ │ ├── ctrl.tcl │ │ │ │ │ │ └── macros.tcl │ │ │ │ │ ├── ctrlunix.tcl │ │ │ │ │ └── send.tcl │ │ │ │ ├── bind.tcl │ │ │ │ ├── imenu.tcl │ │ │ │ ├── ipager.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── receive.tcl │ │ │ │ ├── send.tcl │ │ │ │ └── term.tcl │ │ │ │ ├── textutil │ │ │ │ ├── adjust.tcl │ │ │ │ ├── dehypht.tex │ │ │ │ ├── eshyph_vo.tex │ │ │ │ ├── expander.tcl │ │ │ │ ├── ithyph.tex │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── repeat.tcl │ │ │ │ ├── split.tcl │ │ │ │ ├── string.tcl │ │ │ │ ├── tabify.tcl │ │ │ │ ├── textutil.tcl │ │ │ │ └── trim.tcl │ │ │ │ ├── tie │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── tie.tcl │ │ │ │ ├── tie_array.tcl │ │ │ │ ├── tie_dsource.tcl │ │ │ │ ├── tie_file.tcl │ │ │ │ ├── tie_growfile.tcl │ │ │ │ ├── tie_log.tcl │ │ │ │ └── tie_rarray.tcl │ │ │ │ ├── tiff │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── tiff.tcl │ │ │ │ ├── transfer │ │ │ │ ├── connect.tcl │ │ │ │ ├── copyops.tcl │ │ │ │ ├── ddest.tcl │ │ │ │ ├── dsource.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── receiver.tcl │ │ │ │ ├── tqueue.tcl │ │ │ │ └── transmitter.tcl │ │ │ │ ├── treeql │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── treeql.tcl │ │ │ │ ├── treeql84.tcl │ │ │ │ └── treeql85.tcl │ │ │ │ ├── uev │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── uevent.tcl │ │ │ │ └── uevent_onidle.tcl │ │ │ │ ├── units │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── units.tcl │ │ │ │ ├── uri │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── uri.tcl │ │ │ │ └── urn-scheme.tcl │ │ │ │ ├── uuid │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── uuid.tcl │ │ │ │ ├── wip │ │ │ │ ├── pkgIndex.tcl │ │ │ │ ├── wip.tcl │ │ │ │ └── wip2.tcl │ │ │ │ └── yaml │ │ │ │ ├── huddle.tcl │ │ │ │ ├── pkgIndex.tcl │ │ │ │ └── yaml.tcl │ │ │ └── tjc │ │ │ └── library │ │ │ ├── compileproc.tcl │ │ │ ├── descend.tcl │ │ │ ├── emitter.tcl │ │ │ ├── jdk.tcl │ │ │ ├── main.tcl │ │ │ ├── module.tcl │ │ │ ├── nameproc.tcl │ │ │ ├── parse.tcl │ │ │ ├── parseproc.tcl │ │ │ ├── reload.tcl │ │ │ ├── tjc.tcl │ │ │ ├── tjc.tjc │ │ │ ├── tjcthread.tcl │ │ │ └── util.tcl │ └── scripts │ │ ├── echopath │ │ ├── jtcl │ │ ├── jtcl.bat │ │ ├── jtclni │ │ ├── jtclni.bat │ │ ├── paraffin.tcl │ │ ├── tjc │ │ └── tjc.bat ├── site │ ├── apt │ │ ├── docs │ │ │ ├── buildingjtcl.apt │ │ │ ├── index.apt │ │ │ ├── jtcldifferences.apt │ │ │ ├── jtcllib │ │ │ │ ├── fleet.apt │ │ │ │ ├── hyde.apt │ │ │ │ ├── index.apt │ │ │ │ └── ziplib.apt │ │ │ ├── paraffin.apt │ │ │ └── tcllib_modules.apt │ │ ├── gettingstarted.apt │ │ ├── index.apt │ │ ├── licenses.apt │ │ ├── news.apt │ │ └── projects.apt │ ├── fml │ │ └── faq.fml │ ├── resources │ │ ├── docs │ │ │ ├── itcl3.3 │ │ │ │ ├── body.n.html │ │ │ │ ├── class.n.html │ │ │ │ ├── code.n.html │ │ │ │ ├── configbody.n.html │ │ │ │ ├── delete.n.html │ │ │ │ ├── ensemble.n.html │ │ │ │ ├── find.n.html │ │ │ │ ├── index.html │ │ │ │ ├── is.n.html │ │ │ │ ├── itcl.n.html │ │ │ │ ├── itclvars.n.html │ │ │ │ ├── local.n.html │ │ │ │ └── scope.n.html │ │ │ ├── java2.0.0 │ │ │ │ ├── ClassLoading.html │ │ │ │ ├── JavaArrayObjCmd.html │ │ │ │ ├── JavaAutoLockCmd.html │ │ │ │ ├── JavaBindCmd.html │ │ │ │ ├── JavaCallCmd.html │ │ │ │ ├── JavaCastCmd.html │ │ │ │ ├── JavaConversions.html │ │ │ │ ├── JavaDefineClassCmd.html │ │ │ │ ├── JavaEventCmd.html │ │ │ │ ├── JavaEventParameters.html │ │ │ │ ├── JavaEventScripts.html │ │ │ │ ├── JavaFieldCmd.html │ │ │ │ ├── JavaForCmd.html │ │ │ │ ├── JavaGC.html │ │ │ │ ├── JavaGetInterpCmd.html │ │ │ │ ├── JavaImportCmd.html │ │ │ │ ├── JavaInfoCmd.html │ │ │ │ ├── JavaInstanceOfCmd.html │ │ │ │ ├── JavaIsNullCmd.html │ │ │ │ ├── JavaLoadCmd.html │ │ │ │ ├── JavaLockCmd.html │ │ │ │ ├── JavaNewCmd.html │ │ │ │ ├── JavaNullCmd.html │ │ │ │ ├── JavaObjCmd.html │ │ │ │ ├── JavaPackage.html │ │ │ │ ├── JavaPropCmd.html │ │ │ │ ├── JavaRefCount.html │ │ │ │ ├── JavaSignatures.html │ │ │ │ ├── JavaThrowCmd.html │ │ │ │ ├── JavaTryCmd.html │ │ │ │ ├── JavaUnlockCmd.html │ │ │ │ └── contents.html │ │ │ ├── jtcl-swank-paper.pdf │ │ │ ├── parser1.4 │ │ │ │ └── parse.html │ │ │ ├── tcl8.4.19 │ │ │ │ └── html │ │ │ │ │ ├── Keywords │ │ │ │ │ ├── A.htm │ │ │ │ │ ├── B.htm │ │ │ │ │ ├── C.htm │ │ │ │ │ ├── D.htm │ │ │ │ │ ├── E.htm │ │ │ │ │ ├── F.htm │ │ │ │ │ ├── G.htm │ │ │ │ │ ├── H.htm │ │ │ │ │ ├── I.htm │ │ │ │ │ ├── J.htm │ │ │ │ │ ├── K.htm │ │ │ │ │ ├── L.htm │ │ │ │ │ ├── M.htm │ │ │ │ │ ├── N.htm │ │ │ │ │ ├── O.htm │ │ │ │ │ ├── P.htm │ │ │ │ │ ├── Q.htm │ │ │ │ │ ├── R.htm │ │ │ │ │ ├── S.htm │ │ │ │ │ ├── T.htm │ │ │ │ │ ├── U.htm │ │ │ │ │ ├── V.htm │ │ │ │ │ ├── W.htm │ │ │ │ │ ├── X.htm │ │ │ │ │ ├── Y.htm │ │ │ │ │ ├── Z.htm │ │ │ │ │ └── contents.htm │ │ │ │ │ ├── TclCmd │ │ │ │ │ ├── Tcl.htm │ │ │ │ │ ├── after.htm │ │ │ │ │ ├── append.htm │ │ │ │ │ ├── apply.htm │ │ │ │ │ ├── array.htm │ │ │ │ │ ├── bgerror.htm │ │ │ │ │ ├── binary.htm │ │ │ │ │ ├── break.htm │ │ │ │ │ ├── catch.htm │ │ │ │ │ ├── cd.htm │ │ │ │ │ ├── clock.htm │ │ │ │ │ ├── close.htm │ │ │ │ │ ├── concat.htm │ │ │ │ │ ├── contents.htm │ │ │ │ │ ├── continue.htm │ │ │ │ │ ├── dde.htm │ │ │ │ │ ├── dict.htm │ │ │ │ │ ├── encoding.htm │ │ │ │ │ ├── eof.htm │ │ │ │ │ ├── error.htm │ │ │ │ │ ├── eval.htm │ │ │ │ │ ├── exec.htm │ │ │ │ │ ├── exit.htm │ │ │ │ │ ├── expr.htm │ │ │ │ │ ├── fblocked.htm │ │ │ │ │ ├── fconfigure.htm │ │ │ │ │ ├── fcopy.htm │ │ │ │ │ ├── file.htm │ │ │ │ │ ├── fileevent.htm │ │ │ │ │ ├── filename.htm │ │ │ │ │ ├── flush.htm │ │ │ │ │ ├── for.htm │ │ │ │ │ ├── foreach.htm │ │ │ │ │ ├── format.htm │ │ │ │ │ ├── gets.htm │ │ │ │ │ ├── glob.htm │ │ │ │ │ ├── global.htm │ │ │ │ │ ├── history.htm │ │ │ │ │ ├── http.htm │ │ │ │ │ ├── if.htm │ │ │ │ │ ├── incr.htm │ │ │ │ │ ├── info.htm │ │ │ │ │ ├── interp.htm │ │ │ │ │ ├── join.htm │ │ │ │ │ ├── lappend.htm │ │ │ │ │ ├── lassign.htm │ │ │ │ │ ├── library.htm │ │ │ │ │ ├── lindex.htm │ │ │ │ │ ├── linsert.htm │ │ │ │ │ ├── list.htm │ │ │ │ │ ├── llength.htm │ │ │ │ │ ├── load.htm │ │ │ │ │ ├── lrange.htm │ │ │ │ │ ├── lrepeat.htm │ │ │ │ │ ├── lreplace.htm │ │ │ │ │ ├── lreverse.htm │ │ │ │ │ ├── lsearch.htm │ │ │ │ │ ├── lset.htm │ │ │ │ │ ├── lsort.htm │ │ │ │ │ ├── memory.htm │ │ │ │ │ ├── msgcat.htm │ │ │ │ │ ├── namespace.htm │ │ │ │ │ ├── open.htm │ │ │ │ │ ├── package.htm │ │ │ │ │ ├── packagens.htm │ │ │ │ │ ├── pid.htm │ │ │ │ │ ├── pkgMkIndex.htm │ │ │ │ │ ├── proc.htm │ │ │ │ │ ├── puts.htm │ │ │ │ │ ├── pwd.htm │ │ │ │ │ ├── re_syntax.htm │ │ │ │ │ ├── read.htm │ │ │ │ │ ├── regexp.htm │ │ │ │ │ ├── registry.htm │ │ │ │ │ ├── regsub.htm │ │ │ │ │ ├── rename.htm │ │ │ │ │ ├── resource.htm │ │ │ │ │ ├── return.htm │ │ │ │ │ ├── safe.htm │ │ │ │ │ ├── scan.htm │ │ │ │ │ ├── seek.htm │ │ │ │ │ ├── set.htm │ │ │ │ │ ├── socket.htm │ │ │ │ │ ├── source.htm │ │ │ │ │ ├── split.htm │ │ │ │ │ ├── string.htm │ │ │ │ │ ├── subst.htm │ │ │ │ │ ├── switch.htm │ │ │ │ │ ├── tcltest.htm │ │ │ │ │ ├── tclvars.htm │ │ │ │ │ ├── tell.htm │ │ │ │ │ ├── time.htm │ │ │ │ │ ├── trace.htm │ │ │ │ │ ├── unknown.htm │ │ │ │ │ ├── unset.htm │ │ │ │ │ ├── update.htm │ │ │ │ │ ├── uplevel.htm │ │ │ │ │ ├── upvar.htm │ │ │ │ │ ├── variable.htm │ │ │ │ │ ├── vwait.htm │ │ │ │ │ └── while.htm │ │ │ │ │ ├── TclLib │ │ │ │ │ └── contents.htm │ │ │ │ │ ├── TkCmd │ │ │ │ │ └── contents.htm │ │ │ │ │ ├── TkLib │ │ │ │ │ └── contents.htm │ │ │ │ │ ├── UserCmd │ │ │ │ │ └── contents.htm │ │ │ │ │ ├── contents.htm │ │ │ │ │ └── copyright.htm │ │ │ ├── tcllib1.13 │ │ │ │ ├── files │ │ │ │ │ ├── aes │ │ │ │ │ │ └── aes.html │ │ │ │ │ ├── asn │ │ │ │ │ │ └── asn.html │ │ │ │ │ ├── base32 │ │ │ │ │ │ ├── base32.html │ │ │ │ │ │ ├── base32core.html │ │ │ │ │ │ └── base32hex.html │ │ │ │ │ ├── base64 │ │ │ │ │ │ ├── ascii85.html │ │ │ │ │ │ ├── base64.html │ │ │ │ │ │ ├── uuencode.html │ │ │ │ │ │ └── yencode.html │ │ │ │ │ ├── bee │ │ │ │ │ │ └── bee.html │ │ │ │ │ ├── bench │ │ │ │ │ │ ├── bench.html │ │ │ │ │ │ ├── bench_intro.html │ │ │ │ │ │ ├── bench_lang_intro.html │ │ │ │ │ │ ├── bench_lang_spec.html │ │ │ │ │ │ ├── bench_read.html │ │ │ │ │ │ ├── bench_wcsv.html │ │ │ │ │ │ └── bench_wtext.html │ │ │ │ │ ├── bibtex │ │ │ │ │ │ └── bibtex.html │ │ │ │ │ ├── blowfish │ │ │ │ │ │ └── blowfish.html │ │ │ │ │ ├── cache │ │ │ │ │ │ └── async.html │ │ │ │ │ ├── cmdline │ │ │ │ │ │ └── cmdline.html │ │ │ │ │ ├── comm │ │ │ │ │ │ ├── comm.html │ │ │ │ │ │ └── comm_wire.html │ │ │ │ │ ├── control │ │ │ │ │ │ └── control.html │ │ │ │ │ ├── counter │ │ │ │ │ │ └── counter.html │ │ │ │ │ ├── crc │ │ │ │ │ │ ├── cksum.html │ │ │ │ │ │ ├── crc16.html │ │ │ │ │ │ ├── crc32.html │ │ │ │ │ │ └── sum.html │ │ │ │ │ ├── csv │ │ │ │ │ │ └── csv.html │ │ │ │ │ ├── des │ │ │ │ │ │ └── des.html │ │ │ │ │ ├── dns │ │ │ │ │ │ ├── tcllib_dns.html │ │ │ │ │ │ └── tcllib_ip.html │ │ │ │ │ ├── docstrip │ │ │ │ │ │ ├── docstrip.html │ │ │ │ │ │ └── docstrip_util.html │ │ │ │ │ ├── doctools │ │ │ │ │ │ ├── changelog.html │ │ │ │ │ │ ├── cvs.html │ │ │ │ │ │ ├── docidx.html │ │ │ │ │ │ ├── docidx_intro.html │ │ │ │ │ │ ├── docidx_lang_cmdref.html │ │ │ │ │ │ ├── docidx_lang_faq.html │ │ │ │ │ │ ├── docidx_lang_intro.html │ │ │ │ │ │ ├── docidx_lang_syntax.html │ │ │ │ │ │ ├── docidx_plugin_apiref.html │ │ │ │ │ │ ├── doctoc.html │ │ │ │ │ │ ├── doctoc_intro.html │ │ │ │ │ │ ├── doctoc_lang_cmdref.html │ │ │ │ │ │ ├── doctoc_lang_faq.html │ │ │ │ │ │ ├── doctoc_lang_intro.html │ │ │ │ │ │ ├── doctoc_lang_syntax.html │ │ │ │ │ │ ├── doctoc_plugin_apiref.html │ │ │ │ │ │ ├── doctools.html │ │ │ │ │ │ ├── doctools_intro.html │ │ │ │ │ │ ├── doctools_lang_cmdref.html │ │ │ │ │ │ ├── doctools_lang_faq.html │ │ │ │ │ │ ├── doctools_lang_intro.html │ │ │ │ │ │ ├── doctools_lang_syntax.html │ │ │ │ │ │ ├── doctools_plugin_apiref.html │ │ │ │ │ │ └── mpexpand.html │ │ │ │ │ ├── doctools2base │ │ │ │ │ │ ├── html_cssdefaults.html │ │ │ │ │ │ ├── nroff_manmacros.html │ │ │ │ │ │ ├── tcl_parse.html │ │ │ │ │ │ └── tcllib_msgcat.html │ │ │ │ │ ├── doctools2idx │ │ │ │ │ │ ├── container.html │ │ │ │ │ │ ├── export.html │ │ │ │ │ │ ├── export_docidx.html │ │ │ │ │ │ ├── export_html.html │ │ │ │ │ │ ├── export_json.html │ │ │ │ │ │ ├── export_nroff.html │ │ │ │ │ │ ├── export_text.html │ │ │ │ │ │ ├── export_wiki.html │ │ │ │ │ │ ├── import.html │ │ │ │ │ │ ├── import_docidx.html │ │ │ │ │ │ ├── import_json.html │ │ │ │ │ │ ├── introduction.html │ │ │ │ │ │ ├── msgcat_c.html │ │ │ │ │ │ ├── msgcat_de.html │ │ │ │ │ │ ├── msgcat_en.html │ │ │ │ │ │ ├── msgcat_fr.html │ │ │ │ │ │ ├── parse.html │ │ │ │ │ │ └── structure.html │ │ │ │ │ ├── doctools2toc │ │ │ │ │ │ ├── container.html │ │ │ │ │ │ ├── export.html │ │ │ │ │ │ ├── export_doctoc.html │ │ │ │ │ │ ├── export_html.html │ │ │ │ │ │ ├── export_json.html │ │ │ │ │ │ ├── export_nroff.html │ │ │ │ │ │ ├── export_text.html │ │ │ │ │ │ ├── export_wiki.html │ │ │ │ │ │ ├── import.html │ │ │ │ │ │ ├── import_doctoc.html │ │ │ │ │ │ ├── import_json.html │ │ │ │ │ │ ├── introduction.html │ │ │ │ │ │ ├── msgcat_c.html │ │ │ │ │ │ ├── msgcat_de.html │ │ │ │ │ │ ├── msgcat_en.html │ │ │ │ │ │ ├── msgcat_fr.html │ │ │ │ │ │ ├── parse.html │ │ │ │ │ │ └── structure.html │ │ │ │ │ ├── fileutil │ │ │ │ │ │ ├── fileutil.html │ │ │ │ │ │ ├── multi.html │ │ │ │ │ │ ├── multiop.html │ │ │ │ │ │ └── traverse.html │ │ │ │ │ ├── ftp │ │ │ │ │ │ ├── ftp.html │ │ │ │ │ │ └── ftp_geturl.html │ │ │ │ │ ├── ftpd │ │ │ │ │ │ └── ftpd.html │ │ │ │ │ ├── fumagic │ │ │ │ │ │ ├── cfront.html │ │ │ │ │ │ ├── cgen.html │ │ │ │ │ │ ├── filetypes.html │ │ │ │ │ │ ├── mimetypes.html │ │ │ │ │ │ └── rtcore.html │ │ │ │ │ ├── grammar_fa │ │ │ │ │ │ ├── dacceptor.html │ │ │ │ │ │ ├── dexec.html │ │ │ │ │ │ ├── fa.html │ │ │ │ │ │ └── faop.html │ │ │ │ │ ├── grammar_me │ │ │ │ │ │ ├── gasm.html │ │ │ │ │ │ ├── me_ast.html │ │ │ │ │ │ ├── me_cpu.html │ │ │ │ │ │ ├── me_cpucore.html │ │ │ │ │ │ ├── me_intro.html │ │ │ │ │ │ ├── me_tcl.html │ │ │ │ │ │ ├── me_util.html │ │ │ │ │ │ └── me_vm.html │ │ │ │ │ ├── grammar_peg │ │ │ │ │ │ ├── peg.html │ │ │ │ │ │ └── peg_interp.html │ │ │ │ │ ├── html │ │ │ │ │ │ └── html.html │ │ │ │ │ ├── htmlparse │ │ │ │ │ │ └── htmlparse.html │ │ │ │ │ ├── http │ │ │ │ │ │ └── autoproxy.html │ │ │ │ │ ├── ident │ │ │ │ │ │ └── ident.html │ │ │ │ │ ├── inifile │ │ │ │ │ │ └── ini.html │ │ │ │ │ ├── interp │ │ │ │ │ │ ├── deleg_method.html │ │ │ │ │ │ ├── deleg_proc.html │ │ │ │ │ │ └── tcllib_interp.html │ │ │ │ │ ├── irc │ │ │ │ │ │ ├── irc.html │ │ │ │ │ │ └── picoirc.html │ │ │ │ │ ├── javascript │ │ │ │ │ │ └── javascript.html │ │ │ │ │ ├── jpeg │ │ │ │ │ │ └── jpeg.html │ │ │ │ │ ├── json │ │ │ │ │ │ ├── json.html │ │ │ │ │ │ └── json_write.html │ │ │ │ │ ├── ldap │ │ │ │ │ │ ├── ldap.html │ │ │ │ │ │ └── ldapx.html │ │ │ │ │ ├── log │ │ │ │ │ │ ├── log.html │ │ │ │ │ │ ├── logger.html │ │ │ │ │ │ ├── loggerAppender.html │ │ │ │ │ │ └── loggerUtils.html │ │ │ │ │ ├── map │ │ │ │ │ │ ├── map_slippy.html │ │ │ │ │ │ ├── map_slippy_cache.html │ │ │ │ │ │ └── map_slippy_fetcher.html │ │ │ │ │ ├── mapproj │ │ │ │ │ │ └── mapproj.html │ │ │ │ │ ├── math │ │ │ │ │ │ ├── bigfloat.html │ │ │ │ │ │ ├── bignum.html │ │ │ │ │ │ ├── calculus.html │ │ │ │ │ │ ├── combinatorics.html │ │ │ │ │ │ ├── constants.html │ │ │ │ │ │ ├── fourier.html │ │ │ │ │ │ ├── fuzzy.html │ │ │ │ │ │ ├── interpolate.html │ │ │ │ │ │ ├── linalg.html │ │ │ │ │ │ ├── machineparameters.html │ │ │ │ │ │ ├── math.html │ │ │ │ │ │ ├── math_geometry.html │ │ │ │ │ │ ├── numtheory.html │ │ │ │ │ │ ├── optimize.html │ │ │ │ │ │ ├── polynomials.html │ │ │ │ │ │ ├── qcomplex.html │ │ │ │ │ │ ├── rational_funcs.html │ │ │ │ │ │ ├── roman.html │ │ │ │ │ │ ├── romberg.html │ │ │ │ │ │ ├── special.html │ │ │ │ │ │ ├── statistics.html │ │ │ │ │ │ └── symdiff.html │ │ │ │ │ ├── md4 │ │ │ │ │ │ └── md4.html │ │ │ │ │ ├── md5 │ │ │ │ │ │ └── md5.html │ │ │ │ │ ├── md5crypt │ │ │ │ │ │ └── md5crypt.html │ │ │ │ │ ├── mime │ │ │ │ │ │ ├── mime.html │ │ │ │ │ │ └── smtp.html │ │ │ │ │ ├── multiplexer │ │ │ │ │ │ └── multiplexer.html │ │ │ │ │ ├── ncgi │ │ │ │ │ │ └── ncgi.html │ │ │ │ │ ├── nmea │ │ │ │ │ │ └── nmea.html │ │ │ │ │ ├── nns │ │ │ │ │ │ ├── nns_auto.html │ │ │ │ │ │ ├── nns_client.html │ │ │ │ │ │ ├── nns_common.html │ │ │ │ │ │ ├── nns_intro.html │ │ │ │ │ │ ├── nns_protocol.html │ │ │ │ │ │ └── nns_server.html │ │ │ │ │ ├── nntp │ │ │ │ │ │ └── nntp.html │ │ │ │ │ ├── ntp │ │ │ │ │ │ └── ntp_time.html │ │ │ │ │ ├── otp │ │ │ │ │ │ └── otp.html │ │ │ │ │ ├── page │ │ │ │ │ │ ├── page_intro.html │ │ │ │ │ │ ├── page_pluginmgr.html │ │ │ │ │ │ ├── page_util_flow.html │ │ │ │ │ │ ├── page_util_norm_lemon.html │ │ │ │ │ │ ├── page_util_norm_peg.html │ │ │ │ │ │ ├── page_util_peg.html │ │ │ │ │ │ └── page_util_quote.html │ │ │ │ │ ├── pluginmgr │ │ │ │ │ │ └── pluginmgr.html │ │ │ │ │ ├── png │ │ │ │ │ │ └── png.html │ │ │ │ │ ├── pop3 │ │ │ │ │ │ └── pop3.html │ │ │ │ │ ├── pop3d │ │ │ │ │ │ ├── pop3d.html │ │ │ │ │ │ ├── pop3d_dbox.html │ │ │ │ │ │ └── pop3d_udb.html │ │ │ │ │ ├── profiler │ │ │ │ │ │ └── profiler.html │ │ │ │ │ ├── rc4 │ │ │ │ │ │ └── rc4.html │ │ │ │ │ ├── rcs │ │ │ │ │ │ └── rcs.html │ │ │ │ │ ├── report │ │ │ │ │ │ └── report.html │ │ │ │ │ ├── ripemd │ │ │ │ │ │ ├── ripemd128.html │ │ │ │ │ │ └── ripemd160.html │ │ │ │ │ ├── sasl │ │ │ │ │ │ └── sasl.html │ │ │ │ │ ├── sha1 │ │ │ │ │ │ ├── sha1.html │ │ │ │ │ │ └── sha256.html │ │ │ │ │ ├── simulation │ │ │ │ │ │ ├── annealing.html │ │ │ │ │ │ ├── montecarlo.html │ │ │ │ │ │ └── simulation_random.html │ │ │ │ │ ├── smtpd │ │ │ │ │ │ └── smtpd.html │ │ │ │ │ ├── snit │ │ │ │ │ │ ├── snit.html │ │ │ │ │ │ └── snitfaq.html │ │ │ │ │ ├── soundex │ │ │ │ │ │ └── soundex.html │ │ │ │ │ ├── stooop │ │ │ │ │ │ └── stooop.html │ │ │ │ │ ├── stringprep │ │ │ │ │ │ ├── stringprep.html │ │ │ │ │ │ ├── stringprep_data.html │ │ │ │ │ │ ├── unicode.html │ │ │ │ │ │ └── unicode_data.html │ │ │ │ │ ├── struct │ │ │ │ │ │ ├── disjointset.html │ │ │ │ │ │ ├── graph.html │ │ │ │ │ │ ├── graph1.html │ │ │ │ │ │ ├── graphops.html │ │ │ │ │ │ ├── matrix.html │ │ │ │ │ │ ├── matrix1.html │ │ │ │ │ │ ├── pool.html │ │ │ │ │ │ ├── prioqueue.html │ │ │ │ │ │ ├── queue.html │ │ │ │ │ │ ├── record.html │ │ │ │ │ │ ├── skiplist.html │ │ │ │ │ │ ├── stack.html │ │ │ │ │ │ ├── struct_list.html │ │ │ │ │ │ ├── struct_set.html │ │ │ │ │ │ ├── struct_tree.html │ │ │ │ │ │ └── struct_tree1.html │ │ │ │ │ ├── tar │ │ │ │ │ │ └── tar.html │ │ │ │ │ ├── tepam │ │ │ │ │ │ ├── tepam_argument_dialogbox.html │ │ │ │ │ │ ├── tepam_introduction.html │ │ │ │ │ │ └── tepam_procedure.html │ │ │ │ │ ├── term │ │ │ │ │ │ ├── ansi_cattr.html │ │ │ │ │ │ ├── ansi_cctrl.html │ │ │ │ │ │ ├── ansi_cmacros.html │ │ │ │ │ │ ├── ansi_code.html │ │ │ │ │ │ ├── ansi_ctrlu.html │ │ │ │ │ │ ├── ansi_send.html │ │ │ │ │ │ ├── imenu.html │ │ │ │ │ │ ├── ipager.html │ │ │ │ │ │ ├── receive.html │ │ │ │ │ │ ├── term.html │ │ │ │ │ │ ├── term_bind.html │ │ │ │ │ │ └── term_send.html │ │ │ │ │ ├── textutil │ │ │ │ │ │ ├── adjust.html │ │ │ │ │ │ ├── expander.html │ │ │ │ │ │ ├── repeat.html │ │ │ │ │ │ ├── tabify.html │ │ │ │ │ │ ├── textutil.html │ │ │ │ │ │ ├── textutil_split.html │ │ │ │ │ │ ├── textutil_string.html │ │ │ │ │ │ └── trim.html │ │ │ │ │ ├── tie │ │ │ │ │ │ ├── tie.html │ │ │ │ │ │ └── tie_std.html │ │ │ │ │ ├── tiff │ │ │ │ │ │ └── tiff.html │ │ │ │ │ ├── transfer │ │ │ │ │ │ ├── connect.html │ │ │ │ │ │ ├── copyops.html │ │ │ │ │ │ ├── ddest.html │ │ │ │ │ │ ├── dsource.html │ │ │ │ │ │ ├── receiver.html │ │ │ │ │ │ ├── tqueue.html │ │ │ │ │ │ └── transmitter.html │ │ │ │ │ ├── treeql │ │ │ │ │ │ └── treeql.html │ │ │ │ │ ├── uev │ │ │ │ │ │ ├── uevent.html │ │ │ │ │ │ └── uevent_onidle.html │ │ │ │ │ ├── units │ │ │ │ │ │ └── units.html │ │ │ │ │ ├── uri │ │ │ │ │ │ ├── uri.html │ │ │ │ │ │ └── urn-scheme.html │ │ │ │ │ ├── uuid │ │ │ │ │ │ └── uuid.html │ │ │ │ │ ├── wip │ │ │ │ │ │ └── wip.html │ │ │ │ │ └── yaml │ │ │ │ │ │ ├── huddle.html │ │ │ │ │ │ └── yaml.html │ │ │ │ ├── index.html │ │ │ │ └── toc.html │ │ │ └── tjc1.0 │ │ │ │ ├── example1.html │ │ │ │ ├── example2.html │ │ │ │ ├── future.html │ │ │ │ ├── index.html │ │ │ │ ├── jdkcfg.html │ │ │ │ ├── module.html │ │ │ │ ├── optcode.html │ │ │ │ └── tjcpkg.html │ │ └── images │ │ │ ├── jtcl-horz-med.png │ │ │ ├── jtcl-horz-small.png │ │ │ ├── jtcl-horz.png │ │ │ └── jtcl-vert.png │ ├── site.xml │ └── xdoc │ │ └── xdoc.xml └── test │ ├── java │ └── tcl │ │ └── lang │ │ ├── TclCmdTest.java │ │ └── cmd │ │ ├── AppendCmdTest.java │ │ ├── ApplyCmdTest.java │ │ ├── BinaryCmdTest.java │ │ ├── CaseCmdTest.java │ │ ├── ClockCmdTest.java │ │ ├── CmdAHTest.java │ │ ├── CmdILTest.java │ │ ├── CmdMZTest.java │ │ ├── ConcatCmdText.java │ │ ├── EncodingCmdTest.java │ │ ├── ErrorCmdTest.java │ │ ├── EvalCmdTest.java │ │ ├── ExecCmdTest.java │ │ ├── ExprCmdTest.java │ │ ├── FileCmdTest.java │ │ ├── FileNameCmdTest.java │ │ ├── FileSystemCmdTest.java │ │ ├── ForCmdTest.java │ │ ├── ForeachCmdTest.java │ │ ├── FormatCmdTest.java │ │ ├── HistoryCmdTest.java │ │ ├── IfCmdTest.java │ │ ├── IncrCmdTest.java │ │ ├── InfoCmdTest.java │ │ ├── InterpCmdTest.java │ │ ├── IoCmdTest.java │ │ ├── JoinCmdTest.java │ │ ├── LassignCmdTest.java │ │ ├── LindexCmdTest.java │ │ ├── LinsertCmdTest.java │ │ ├── ListCmdTest.java │ │ ├── LlengthCmdTest.java │ │ ├── LrangeCmdTest.java │ │ ├── LrepeatCmdTest.java │ │ ├── LreplaceCmdTest.java │ │ ├── LreverseCmdTest.java │ │ ├── LsearchCmdTest.java │ │ ├── LsetCmdTest.java │ │ ├── MiscCmdTest.java │ │ ├── NamespaceCmdTest.java │ │ ├── PackageCmdTest.java │ │ ├── PidCmdTest.java │ │ ├── ProcCmdTest.java │ │ ├── PwdCmdTest.java │ │ ├── RegexCmdTest.java │ │ ├── RenameCmdTest.java │ │ ├── ScanCmdTest.java │ │ ├── SetCmdTest.java │ │ ├── SocketCmdTest.java │ │ ├── SourceCmdTest.java │ │ ├── SplitCmdTest.java │ │ ├── StringCmdTest.java │ │ ├── SubstCmdTest.java │ │ ├── SwitchCmdTest.java │ │ ├── TimerCmdTest.java │ │ ├── TraceCmdTest.java │ │ ├── UplevelCmdTest.java │ │ ├── UpvarCmdTest.java │ │ └── WhileCmdTest.java │ └── resources │ └── tcl │ └── lang │ └── cmd │ ├── README │ ├── all.tcl │ ├── append.test │ ├── appendComp.test │ ├── apply.test │ ├── assocd.test │ ├── async.test │ ├── autoMkindex.test │ ├── basic.test │ ├── binary.test │ ├── case.test │ ├── clock.test │ ├── cmdAH.test │ ├── cmdIL.test │ ├── cmdInfo.test │ ├── cmdMZ.test │ ├── compExpr-old.test │ ├── compExpr.test │ ├── compile.test │ ├── concat.test │ ├── dcall.test │ ├── dstring.test │ ├── encoding.test │ ├── env.test │ ├── error.test │ ├── eval.test │ ├── event.test │ ├── exec.test │ ├── execute.test │ ├── expr-old.test │ ├── expr.test │ ├── fCmd.test │ ├── fileName.test │ ├── fileSystem.test │ ├── for-old.test │ ├── for.test │ ├── foreach.test │ ├── format.test │ ├── get.test │ ├── history.test │ ├── http.test │ ├── httpd │ ├── httpold.test │ ├── if-old.test │ ├── if.test │ ├── incr-old.test │ ├── incr.test │ ├── indexObj.test │ ├── info.test │ ├── init.test │ ├── interp.test │ ├── io.test │ ├── ioCmd.test │ ├── ioUtil.test │ ├── iogt.test │ ├── join.test │ ├── lassign.test │ ├── license.terms │ ├── lindex.test │ ├── link.test │ ├── linsert.test │ ├── list.test │ ├── listObj.test │ ├── llength.test │ ├── load.test │ ├── lrange.test │ ├── lrepeat.test │ ├── lreplace.test │ ├── lreverse.test │ ├── lsearch.test │ ├── lset.test │ ├── lsetComp.test │ ├── macFCmd.test │ ├── main.test │ ├── misc.test │ ├── msgcat.test │ ├── namespace-old.test │ ├── namespace.test │ ├── notify.test │ ├── obj.test │ ├── opt.test │ ├── osa.test │ ├── package.test │ ├── parse.test │ ├── parseExpr.test │ ├── parseOld.test │ ├── pid.test │ ├── pkg.test │ ├── pkgMkIndex.test │ ├── platform.test │ ├── proc-old.test │ ├── proc.test │ ├── pwd.test │ ├── reg.test │ ├── regexp.test │ ├── regexpComp.test │ ├── registry.test │ ├── remote.tcl │ ├── rename.test │ ├── resource.test │ ├── result.test │ ├── safe.test │ ├── scan.test │ ├── security.test │ ├── set-old.test │ ├── set.test │ ├── socket.test │ ├── source.test │ ├── split.test │ ├── stack.test │ ├── string.test │ ├── stringComp.test │ ├── stringObj.test │ ├── subst.test │ ├── switch.test │ ├── tcltest.test │ ├── thread.test │ ├── timer.test │ ├── trace.test │ ├── unixFCmd.test │ ├── unixFile.test │ ├── unixInit.test │ ├── unixNotfy.test │ ├── unknown.test │ ├── uplevel.test │ ├── upvar.test │ ├── utf.test │ ├── util.test │ ├── var.test │ ├── while-old.test │ ├── while.test │ ├── winConsole.test │ ├── winDde.test │ ├── winFCmd.test │ ├── winFile.test │ ├── winNotify.test │ ├── winPipe.test │ └── winTime.test └── toolchains.xml /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | tjc.jar 3 | tjcsrc.jar 4 | *.iml 5 | .idea 6 | .settings 7 | -------------------------------------------------------------------------------- /.hgignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | 3 | bin/ 4 | target/ 5 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | jtcl 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: java 3 | sudo: false 4 | cache: 5 | directories: 6 | - $HOME/.m2 7 | jdk: 8 | - oraclejdk8 9 | - oraclejdk7 10 | - openjdk6 11 | install: ant -debug -noinput get-deps 12 | script: | 13 | ant -debug -noinput -lib $HOME/.m2/repository/junit/junit/3.8.1 test 14 | -------------------------------------------------------------------------------- /build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /maven-build.properties: -------------------------------------------------------------------------------- 1 | #Generated by Maven Ant Plugin - DO NOT EDIT THIS FILE! 2 | #Sun Jul 25 16:46:21 MDT 2010 3 | project.build.outputDirectory=${maven.build.outputDir} 4 | project.build.directory=${maven.build.dir} 5 | maven.test.reports=${maven.build.dir}/test-reports 6 | project.version=2.9.0 7 | maven.build.finalName=jtcl-2.9.0 8 | maven.reporting.outputDirectory=${maven.build.dir}/site 9 | maven.build.testResourceDir.0=src/test/resources 10 | maven.build.outputDir=${maven.build.dir}/classes 11 | maven.build.resourceDir.0=src/main/resources 12 | maven.build.testOutputDir=${maven.build.dir}/test-classes 13 | maven.repo.local=${user.home}/.m2/repository 14 | maven.settings.offline=false 15 | maven.build.dir=target 16 | maven.settings.interactiveMode=true 17 | maven.build.testDir.0=src/test/java 18 | maven.build.srcDir.0=src/main/java 19 | -------------------------------------------------------------------------------- /misc/fix-tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # change test files in bulk 4 | # jtcl doesn't have a 'compiling' mode, to change occurances in error messages 5 | # from 'while compiling' to 'while executing' 6 | 7 | cd ../src/test/resources/tcl/lang/cmd 8 | for testfile in *.test ; do 9 | sed -e 's/while compiling/while executing/' <$testfile >$testfile.tmp 10 | rm $testfile 11 | mv $testfile.tmp $testfile 12 | done 13 | -------------------------------------------------------------------------------- /misc/mkDocRelease.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "deprecated - used 'release_build.sh' instead" 4 | echo "^C to abort (or return to continue)" 5 | read junk 6 | 7 | 8 | # creates jtcl documentation distribution after 9 | # building with "mvn -DskipTests clean package javadoc:javadoc site" 10 | 11 | if [ $# -ne 1 ] ; then 12 | echo usage: `basename $0` version 13 | exit 14 | fi 15 | 16 | version=$1 17 | 18 | if [ ! -f ../target/jtcl-$version.jar ] ; then 19 | echo "missing ../target/jtcl-$version.jar" 20 | exit 21 | fi 22 | if [ ! -d ../target/site ] ; then 23 | echo "missing ../target/site" 24 | exit 25 | fi 26 | 27 | dir=/tmp/jtcl-$$.d 28 | mkdir -p $dir/jtcl-$version/doc 29 | 30 | cp -r ../target/site/* $dir/jtcl-$version/doc 31 | cd $dir 32 | zip -r ../jtcl-${version}-doc.zip * 33 | cd .. 34 | ls -alt `pwd`/jtcl-${version}-doc.zip 35 | 36 | rm -rf $dir 37 | -------------------------------------------------------------------------------- /misc/mkRelease.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "deprecated - used 'release_build.sh' instead" 4 | echo "^C to abort (or return to continue)" 5 | read junk 6 | 7 | # creates jtcl binary distribution after building with "ant compile; ant package" 8 | 9 | version=$1 10 | 11 | if [ ! -f ../jtcl-$version.jar ] ; then 12 | echo "missing ../jtcl-$version.jar" 13 | exit 14 | fi 15 | 16 | dir=/tmp/jtcl-$$.d 17 | mkdir -p $dir/jtcl-$version 18 | 19 | for f in ../src/main/scripts/* ; do 20 | f2=`basename $f` 21 | sed -e "s/\${project.version}/$version/" <$f >$dir/jtcl-$version/$f2 22 | chmod +x $dir/jtcl-$version/$f2 23 | done 24 | cp ../src/main/readmes/* $dir/jtcl-$version 25 | cp ../src/main/licenses/* $dir/jtcl-$version 26 | cp ../jtcl-$version.jar $dir/jtcl-$version 27 | 28 | cd $dir 29 | zip -r jtcl-${version}-bin.zip jtcl-$version/* 30 | mv jtcl-${version}-bin.zip /tmp 31 | cd 32 | rm -rf $dir 33 | ls -alt /tmp/jtcl-${version}-bin.zip 34 | -------------------------------------------------------------------------------- /misc/mkSrcRelease.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "deprecated - used 'release_build.sh' instead" 4 | echo "^C to abort (or return to continue)" 5 | read junk 6 | 7 | # creates jtcl src zip file 8 | 9 | if [ $# -ne 1 ] ; then 10 | echo usage: `basename $0` version 11 | exit 12 | fi 13 | 14 | version=$1 15 | 16 | if [ ! -f ../target/jtcl-$version.jar ] ; then 17 | echo "missing ../target/jtcl-$version.jar" 18 | exit 19 | fi 20 | 21 | dir=/tmp/jtcl-$$.d 22 | mkdir -p $dir/jtcl-$version 23 | 24 | cp -r ../* $dir/jtcl-$version/ 25 | cp ../.??* $dir/jtcl-$version/ 26 | cd $dir 27 | rm -rf jtcl-$version/.hg 28 | rm -rf jtcl-$version/.hgignore 29 | rm -rf jtcl-$version/target 30 | rm -rf jtcl-$version/bldTJC 31 | rm -rf jtcl-$version/tjc*jar 32 | zip -r ../jtcl-${version}-src.zip * 33 | cd .. 34 | ls -alt `pwd`/jtcl-${version}-src.zip 35 | 36 | rm -rf $dir 37 | -------------------------------------------------------------------------------- /misc/release_build.sh: -------------------------------------------------------------------------------- 1 | #! 2 | cd `dirname $0` 3 | cd .. 4 | mvn -DskipTests clean javadoc:javadoc site package 5 | -------------------------------------------------------------------------------- /src/main/assembly/doc.xml: -------------------------------------------------------------------------------- 1 | 2 | doc 3 | 4 | zip 5 | 6 | true 7 | 8 | 9 | 10 | / 11 | 755 12 | 755 13 | 14 | ./ 15 | 16 | 17 | 18 | target/site 19 | 0755 20 | 0644 21 | doc/ 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/main/assembly/src.xml: -------------------------------------------------------------------------------- 1 | 2 | src 3 | 4 | zip 5 | 6 | true 7 | 8 | 9 | 10 | / 11 | 755 12 | 755 13 | 14 | ./ 15 | 16 | 17 | 18 | 19 | 0755 20 | 21 | 22 | .hg* 23 | .settings/** 24 | target/** 25 | tjc*.jar 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/main/java/org/codehaus/janino/doc-files/new_bsd_license.txt: -------------------------------------------------------------------------------- 1 | Janino - An embedded Java[TM] compiler 2 | 3 | Copyright (c) 2006, Arno Unkrig 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions 8 | are met: 9 | 10 | 1. Redistributions of source code must retain the above copyright 11 | notice, this list of conditions and the following disclaimer. 12 | 2. Redistributions in binary form must reproduce the above 13 | copyright notice, this list of conditions and the following 14 | disclaimer in the documentation and/or other materials 15 | provided with the distribution. 16 | 3. The name of the author may not be used to endorse or promote 17 | products derived from this software without specific prior 18 | written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 21 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 22 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 24 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 26 | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 28 | IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29 | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 30 | IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/AssocData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * AssocData.java -- 3 | * 4 | * The API for registering named data objects in the Tcl 5 | * interpreter. 6 | * 7 | * Copyright (c) 1997 Sun Microsystems, Inc. 8 | * 9 | * See the file "license.terms" for information on usage and 10 | * redistribution of this file, and for a DISCLAIMER OF ALL 11 | * WARRANTIES. 12 | * 13 | * RCS: @(#) $Id: AssocData.java,v 1.2 1999/05/11 23:10:03 dejong Exp $ 14 | * 15 | */ 16 | 17 | package tcl.lang; 18 | 19 | /** 20 | * This interface is the API for registering named data objects in the Tcl 21 | * interpreter. 22 | */ 23 | 24 | public interface AssocData { 25 | 26 | /** 27 | * This method is called when the interpreter is destroyed or when 28 | * Interp.deleteAssocData is called on a registered AssocData instance. 29 | * 30 | * @param interp the interpreter in which this AssocData instance is registered in 31 | */ 32 | public void disposeAssocData(Interp interp); 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/BackSlashResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * BackSlashResult.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | * RCS: @(#) $Id: BackSlashResult.java,v 1.2 2005/10/26 19:17:08 mdejong Exp $ 12 | * 13 | */ 14 | 15 | package tcl.lang; 16 | 17 | /** 18 | * Encapsulates the replacement for a backslash 19 | * in the parser 20 | * 21 | */ 22 | public class BackSlashResult { 23 | /** 24 | * character to replace backslash sequence with 25 | */ 26 | public char c; 27 | /** 28 | * script index that follows backslash sequence 29 | */ 30 | public int nextIndex; 31 | public boolean isWordSep; 32 | /** 33 | * Number of characters in the backslash sequence 34 | */ 35 | int count; 36 | 37 | /** 38 | * @param c character ro replace the backslash sequence with 39 | * @param nextIndex index of char following bs sequence in script 40 | * @param count number of chars in backslash sequence 41 | */ 42 | BackSlashResult(char c, int nextIndex, int count) { 43 | this.c = c; 44 | this.nextIndex = nextIndex; 45 | this.isWordSep = false; 46 | this.count = count; 47 | } 48 | 49 | BackSlashResult(char c, int nextIndex, boolean isWordSep, int count) { 50 | this.c = c; 51 | this.nextIndex = nextIndex; 52 | this.isWordSep = false; 53 | this.count = count; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/Command.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Command.java 3 | * 4 | * Interface for Commands that can be added to the Tcl Interpreter. 5 | * 6 | * Copyright (c) 1997 Sun Microsystems, Inc. 7 | * 8 | * See the file "license.terms" for information on usage and 9 | * redistribution of this file, and for a DISCLAIMER OF ALL 10 | * WARRANTIES. 11 | * 12 | * RCS: @(#) $Id: Command.java,v 1.3 1999/08/05 03:43:27 mo Exp $ 13 | */ 14 | 15 | package tcl.lang; 16 | 17 | /** 18 | * The Command interface specifies the method that a new Tcl command must 19 | * implement. See the createCommand method of the Interp class to see how to add 20 | * a new command to an interperter. 21 | */ 22 | 23 | public interface Command { 24 | /** 25 | * This method implements the functionality of the command. However, calling 26 | * it directly in application code will bypass execution traces. Instead, 27 | * commands should be called with WrappedCommand.invoke 28 | * 29 | * @param interp 30 | * The interpreter for setting the results and which contains the 31 | * context 32 | * @param objv 33 | * the argument list for the command; objv[0[ is the command name 34 | * itself 35 | * @throws TclException 36 | * on any errors 37 | */ 38 | abstract public void cmdProc(Interp interp, TclObject[] objv) throws TclException; 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/CommandWithDispose.java: -------------------------------------------------------------------------------- 1 | /* 2 | * CommandWithDispose.java -- 3 | * 4 | * Interface for Commands that need to know when they are deleted 5 | * from an interpreter. 6 | * 7 | * Copyright (c) 1997 Sun Microsystems, Inc. 8 | * 9 | * See the file "license.terms" for information on usage and 10 | * redistribution of this file, and for a DISCLAIMER OF ALL 11 | * WARRANTIES. 12 | * 13 | * RCS: @(#) $Id: CommandWithDispose.java,v 1.2 1999/07/28 03:41:13 mo Exp $ 14 | */ 15 | 16 | package tcl.lang; 17 | 18 | /** 19 | * This interface is implemented by Commands that need to know when they are 20 | * deleted from an interpreter. Most commands do not need to know when they are 21 | * deleted in Java because Java will garbage collect any allocations made by the 22 | * command. However, sometimes a command may hold onto resources that must be 23 | * explicitly released. This interface allows those commands to be notified when 24 | * they are being deleted from the interpreter. 25 | */ 26 | 27 | public interface CommandWithDispose extends Command { 28 | /** 29 | * Called when the interpreter is removing the Tcl command 30 | */ 31 | public void disposeCmd(); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/EventDeleter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * EventDeleter.java -- 3 | * 4 | * Interface for deleting events in the notifier's event queue. 5 | * 6 | * Copyright (c) 1997 Sun Microsystems, Inc. 7 | * 8 | * See the file "license.terms" for information on usage and 9 | * redistribution of this file, and for a DISCLAIMER OF ALL 10 | * WARRANTIES. 11 | * 12 | * RCS: @(#) $Id: EventDeleter.java,v 1.1.1.1 1998/10/14 21:09:14 cvsadmin Exp $ 13 | * 14 | */ 15 | 16 | package tcl.lang; 17 | 18 | /** 19 | * This is the interface for deleting events in the notifier's event 20 | * queue. It's used together with the Notifier.deleteEvents() method. 21 | * 22 | */ 23 | 24 | public interface EventDeleter { 25 | 26 | /** 27 | * This method is called once for each event in the event queue. It returns 28 | * 1 for all events that should be deleted and 0 for events that should 29 | * remain in the queue. 30 | * 31 | * If this method determines that an event should be removed, it should 32 | * perform appropriate clean up on the event object. 33 | * 34 | * @param evt Event to test whether it should be removed 35 | * @return 1 means evt should be removed from the event queue. 0 otherwise. 36 | */ 37 | public int deleteEvent(TclEvent evt); 38 | 39 | } // end EventDeleter 40 | 41 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/ImportRef.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ImportRef.java 3 | * 4 | * An ImportRef is a member of the list of imported commands 5 | * which is part of the WrappedCommand class. 6 | * 7 | * Copyright (c) 1999 Mo DeJong. 8 | * 9 | * See the file "license.terms" for information on usage and 10 | * redistribution of this file, and for a DISCLAIMER OF ALL 11 | * WARRANTIES. 12 | * 13 | * RCS: @(#) $Id: ImportRef.java,v 1.1 1999/08/05 03:42:49 mo Exp $ 14 | */ 15 | 16 | package tcl.lang; 17 | 18 | /** 19 | * An imported command is created in an namespace when it imports a "real" 20 | * command from another namespace. An imported command has a Command structure 21 | * that points (via its ClientData value) to the "real" Command structure in the 22 | * source namespace's command table. The real command records all the imported 23 | * commands that refer to it in a list of ImportRef structures so that they can 24 | * be deleted when the real command is deleted. 25 | */ 26 | 27 | class ImportRef { 28 | /** 29 | * Points to the imported command created in an importing namespace; this 30 | * command redirects its invocations to the "real" cmd. 31 | */ 32 | WrappedCommand importedCmd; 33 | /** 34 | * Next element on the linked list of imported commands that refer to the 35 | * "real" command. The real command deletes these imported commands on 36 | * this list when it is deleted. 37 | */ 38 | ImportRef next; 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/JACL.java: -------------------------------------------------------------------------------- 1 | /* 2 | * JACL.java -- 3 | * 4 | * This class stores all the Jacl-specific package protected constants. 5 | * The exact values should match those in tcl.h. 6 | * 7 | * Copyright (c) 1997 Sun Microsystems, Inc. 8 | * 9 | * See the file "license.terms" for information on usage and 10 | * redistribution of this file, and for a DISCLAIMER OF ALL 11 | * WARRANTIES. 12 | * 13 | * RCS: @(#) $Id: JACL.java,v 1.1.1.1 1998/10/14 21:09:21 cvsadmin Exp $ 14 | * 15 | */ 16 | 17 | package tcl.lang; 18 | 19 | /* 20 | * This class holds all the Jacl-specific package protected constants. 21 | */ 22 | 23 | public class JACL { 24 | 25 | /* 26 | * Platform constants. PLATFORM is not final because we may change it for 27 | * testing purposes only. 28 | */ 29 | 30 | public static final int PLATFORM_UNIX = 0; 31 | public static final int PLATFORM_WINDOWS = 1; 32 | public static final int PLATFORM_MAC = 2; 33 | public static int PLATFORM = Util.getActualPlatform(); 34 | 35 | } // end JACL class 36 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/NonInteractiveShell.java: -------------------------------------------------------------------------------- 1 | package tcl.lang; 2 | 3 | /** 4 | * This class creates a Shell that has tcl_interactive set to 0. This shell 5 | * will not print the prompt or the command results to standard out. It's main 6 | * purpose is for testing JTCL. 7 | * 8 | * The TCL test suite execs a shell with redirected stdin to test several command, and 9 | * inspects the results from stdout (which shouldn't include the '%' prompt). 10 | * C TCL automatically creates a non-interactive shell when stdin is not from a terminal. 11 | * Since the Java VM can't detect where stdin comes from, this NonInteractiveShell class can 12 | * be used instead. 13 | * 14 | */ 15 | public class NonInteractiveShell { 16 | public static void main(String args[]) { 17 | Shell.forceNonInteractive = true; 18 | Shell.main(args); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/PackageNameException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * PackageNameException.java 3 | * 4 | * Copyright (c) 2006 Moses DeJong 5 | * 6 | * See the file "license.terms" for information on usage and 7 | * redistribution of this file, and for a DISCLAIMER OF ALL 8 | * WARRANTIES. 9 | * 10 | * RCS: @(#) $Id: PackageNameException.java,v 1.1 2006/04/13 07:36:50 mdejong Exp $ 11 | * 12 | */ 13 | 14 | package tcl.lang; 15 | 16 | /** 17 | * This exception is thrown by the TclClassLoader when an attempt to load a 18 | * class from any package that starts with the java.* or tcl.* prefix is made. 19 | * Classes in these packages can be loaded with the system class loader, but not 20 | * the TclClassLoader. 21 | */ 22 | 23 | public class PackageNameException extends RuntimeException { 24 | String className; 25 | 26 | public PackageNameException(String msg, String className) { 27 | super(msg); 28 | this.className = className; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/Resolver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Resolver.java 3 | * 4 | * Interface for resolvers that can be added to 5 | * the Tcl Interpreter or to a namespace. 6 | * 7 | * Copyright (c) 1997 Sun Microsystems, Inc. 8 | * Copyright (c) 2001 Christian Krone 9 | * 10 | * See the file "license.terms" for information on usage and 11 | * redistribution of this file, and for a DISCLAIMER OF ALL 12 | * WARRANTIES. 13 | * 14 | * RCS: @(#) $Id: Resolver.java,v 1.2 2005/09/12 00:00:50 mdejong Exp $ 15 | */ 16 | 17 | package tcl.lang; 18 | 19 | /** 20 | * The Resolver interface specifies the methods that a new Tcl resolver must 21 | * implement. See the addInterpResolver method of the Interp class to see how to 22 | * add a new resolver to an interperter or the setNamespaceResolver of the 23 | * NamespaceCmd class. 24 | */ 25 | 26 | public interface Resolver { 27 | 28 | public WrappedCommand resolveCmd(Interp interp, // The current interpreter. 29 | String name, // Command name to resolve. 30 | Namespace context, // The namespace to look in. 31 | int flags) // 0 or TCL.LEAVE_ERR_MSG. 32 | throws TclException; // Tcl exceptions are thrown for Tcl errors. 33 | 34 | public Var resolveVar(Interp interp, // The current interpreter. 35 | String name, // Variable name to resolve. 36 | Namespace context, // The namespace to look in. 37 | int flags) // 0 or TCL.LEAVE_ERR_MSG. 38 | throws TclException; // Tcl exceptions are thrown for Tcl errors. 39 | 40 | } // end Resolver 41 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/StrtodResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * StrtodResult.java -- 3 | * 4 | * Stores the result of the Util.strtod() method. 5 | * 6 | * Copyright (c) 1997 Cornell University. 7 | * Copyright (c) 1997 Sun Microsystems, Inc. 8 | * 9 | * See the file "license.terms" for information on usage and 10 | * redistribution of this file, and for a DISCLAIMER OF ALL 11 | * WARRANTIES. 12 | * 13 | * RCS: @(#) $Id: StrtodResult.java,v 1.3 2005/11/19 01:09:06 mdejong Exp $ 14 | * 15 | */ 16 | 17 | package tcl.lang; 18 | 19 | /* 20 | * This class stores the result of the Util.strtod() method. 21 | */ 22 | 23 | public class StrtodResult { 24 | 25 | /* 26 | * If the conversion is successful, errno = 0; 27 | * 28 | * If the number cannot be converted to a valid signed 64-bit double, 29 | * contains the error code (TCL.DOUBLE_RANGE or TCL.UNVALID_DOUBLE). 30 | */ 31 | 32 | public int errno; 33 | 34 | /* 35 | * If errno is 0, points to the character right after the number 36 | */ 37 | 38 | public int index; 39 | 40 | /* 41 | * If errno is 0, contains the value of the number. 42 | */ 43 | 44 | public double value; 45 | 46 | // Update a StrtodResult. Note that there is typically 47 | // just one StrtodResult for each interp. 48 | 49 | void update(double v, // value for the value field. 50 | int i, // value for the index field. 51 | int e) // value for the errno field. 52 | { 53 | value = v; 54 | index = i; 55 | errno = e; 56 | } 57 | 58 | } // end StrtodResult 59 | 60 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/StrtoulResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * StrtoulResult.java 3 | * 4 | * Stores the result of the Util.strtoul() method. 5 | * 6 | * Copyright (c) 1997 Cornell University. 7 | * Copyright (c) 1997 Sun Microsystems, Inc. 8 | * 9 | * See the file "license.terms" for information on usage and 10 | * redistribution of this file, and for a DISCLAIMER OF ALL 11 | * WARRANTIES. 12 | * 13 | * RCS: @(#) $Id: StrtoulResult.java,v 1.3 2005/09/30 02:12:17 mdejong Exp $ 14 | * 15 | */ 16 | 17 | package tcl.lang; 18 | 19 | /** 20 | * This class stores the result of the Util.strtoul() method. 21 | */ 22 | 23 | public class StrtoulResult { 24 | 25 | /** 26 | * If the conversion is successful, errno = 0; If the number cannot be 27 | * converted to a valid unsigned 32-bit integer, contains the error code 28 | * (TCL.INTEGER_RANGE or TCL.INVALID_INTEGER). 29 | */ 30 | 31 | public int errno = 0; 32 | 33 | /** 34 | * If errno is 0, points to the character right after the number 35 | */ 36 | 37 | public int index = -1; 38 | 39 | /** 40 | * If errno is 0, contains the value of the number. 41 | */ 42 | 43 | public long value = 0; 44 | 45 | /** 46 | * Update a StrtoulResult. Note that there is typically just one 47 | * StrtoulResult for each interp. 48 | * 49 | * @param v 50 | * value for the value field. 51 | * @param i 52 | * value for the index field. 53 | * @param e 54 | * value for the errno field. 55 | */ 56 | 57 | public void update(long v, int i, int e) { 58 | value = v; 59 | index = i; 60 | errno = e; 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/TclRegexp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TclRegexp.java 3 | * 4 | * Copyright (c) 1999 Sun Microsystems, Inc. 5 | * 6 | * See the file "license.terms" for information on usage and 7 | * redistribution of this file, and for a DISCLAIMER OF ALL 8 | * WARRANTIES. 9 | * 10 | * SCCS: %Z% %M% %I% %E% %U% 11 | */ 12 | 13 | package tcl.lang; 14 | 15 | import java.util.regex.PatternSyntaxException; 16 | 17 | public class TclRegexp { 18 | private TclRegexp() { 19 | } 20 | 21 | public static Regex compile(Interp interp, TclObject exp, String str) 22 | throws TclException { 23 | try { 24 | return new Regex(exp.toString(), str, 0); 25 | } catch (PatternSyntaxException ex) { 26 | throw new TclException(interp, Regex.getPatternSyntaxMessage(ex)); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/TclRuntimeError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TclRuntimeError.java 3 | * 4 | * Copyright (c) 1997 Sun Microsystems, Inc. 5 | * 6 | * See the file "license.terms" for information on usage and 7 | * redistribution of this file, and for a DISCLAIMER OF ALL 8 | * WARRANTIES. 9 | * 10 | * RCS: @(#) $Id: TclRuntimeError.java,v 1.1.1.1 1998/10/14 21:09:14 cvsadmin Exp $ 11 | * 12 | */ 13 | 14 | package tcl.lang; 15 | 16 | /** 17 | * Signals that a unrecoverable run-time error in the interpreter. Similar to 18 | * the panic() function in C. 19 | */ 20 | public class TclRuntimeError extends RuntimeException { 21 | /** 22 | * Constructs a TclRuntimeError with the specified detail message. 23 | * 24 | * @param s 25 | * the detail message. 26 | */ 27 | public TclRuntimeError(String s) { 28 | super(s); 29 | } 30 | 31 | /** 32 | * Constructs a TclRuntimeError with the specified detail message and 33 | * cause. 34 | * 35 | * @param msg the detail message. 36 | * @param cause the cause. 37 | */ 38 | public TclRuntimeError(String msg, Throwable cause) { 39 | super(msg, cause); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/TclVarException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TclNumArgsException.java 3 | * 4 | * Copyright (c) 1997 Sun Microsystems, Inc. 5 | * 6 | * See the file "license.terms" for information on usage and 7 | * redistribution of this file, and for a DISCLAIMER OF ALL 8 | * WARRANTIES. 9 | * 10 | * RCS: @(#) $Id: TclVarException.java,v 1.1.1.1 1998/10/14 21:09:19 cvsadmin Exp $ 11 | * 12 | */ 13 | 14 | package tcl.lang; 15 | 16 | /** 17 | * This exception is used to report variable errors in Tcl. 18 | */ 19 | 20 | public class TclVarException extends TclException { 21 | 22 | /** 23 | * Creates an exception with the appropiate Tcl error message to indicate an 24 | * error with variable access. 25 | * 26 | * @param interp 27 | * currrent interpreter. 28 | * @param name1 29 | * first part of a variable name. 30 | * @param name2 31 | * second part of a variable name. May be null. 32 | * @param operation 33 | * either "read" or "set". 34 | * @param reason 35 | * a string message to explain why the operation fails.. 36 | */ 37 | 38 | public TclVarException(Interp interp, String name1, String name2, 39 | String operation, String reason) { 40 | super(TCL.ERROR); 41 | if (interp != null) { 42 | interp.resetResult(); 43 | if (name2 == null) { 44 | interp.setResult("can't " + operation + " \"" + name1 + "\": " 45 | + reason); 46 | } else { 47 | interp.setResult("can't " + operation + " \"" + name1 + "(" 48 | + name2 + ")\": " + reason); 49 | } 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/TraceRecord.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TraceRecord.java -- 3 | * 4 | * This class is used internally by CallFrame to store one 5 | * variable trace. 6 | * 7 | * Copyright (c) 1997 Sun Microsystems, Inc. 8 | * 9 | * See the file "license.terms" for information on usage and 10 | * redistribution of this file, and for a DISCLAIMER OF ALL 11 | * WARRANTIES. 12 | * 13 | * RCS: @(#) $Id: TraceRecord.java,v 1.2 1999/07/28 03:27:36 mo Exp $ 14 | * 15 | */ 16 | 17 | package tcl.lang; 18 | 19 | /** 20 | * This class is used internally by CallFrame to store one variable trace. 21 | */ 22 | 23 | public class TraceRecord { 24 | 25 | /** 26 | * Stores info about the conditions under which this trace should be 27 | * triggered. Should be a combination of TCL.TRACE_READS, TCL.TRACE_WRITES 28 | * or TCL.TRACE_UNSETS. 29 | */ 30 | 31 | int flags; 32 | 33 | /** 34 | * Stores the trace procedure to invoke when a trace is fired. 35 | */ 36 | 37 | public VarTrace trace; 38 | 39 | } // end TraceRecord 40 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/channel/ReadInputStreamChannel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ReadInputStreamChannel.java 3 | * 4 | */ 5 | package tcl.lang.channel; 6 | 7 | import java.io.IOException; 8 | import java.io.InputStream; 9 | import java.io.OutputStream; 10 | 11 | import tcl.lang.Interp; 12 | import tcl.lang.TclIO; 13 | 14 | /** 15 | * The ReadInputStreamChannel class is a bridge between existing Java 16 | * InputStream objects and Tcl channels. 17 | **/ 18 | 19 | public class ReadInputStreamChannel extends Channel { 20 | 21 | InputStream inStream; 22 | 23 | /** 24 | * Constructor - creates a new ReadInputStreamChannel object that will read 25 | * from the passed in InputStream. 26 | **/ 27 | 28 | public ReadInputStreamChannel(Interp interp, InputStream in_stream) { 29 | this.mode = TclIO.RDONLY; 30 | this.inStream = in_stream; 31 | } 32 | 33 | String getChanType() { 34 | return "ReadInputStream"; 35 | } 36 | 37 | protected InputStream getInputStream() throws IOException { 38 | return inStream; 39 | } 40 | 41 | protected OutputStream getOutputStream() throws IOException { 42 | throw new RuntimeException("should never be called"); 43 | } 44 | 45 | @Override 46 | void implClose() throws IOException { 47 | // caller must close the input stream 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/ApplyCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ApplyCmd.java -- 3 | * 4 | * Copyright (C) 2010 Neil Madden <nem@cs.nott.ac.uk>. 5 | * 6 | * See the file "license.terms" for information on usage and redistribution of 7 | * this file, and for a DISCLAIMER OF ALL WARRANTIES. 8 | * 9 | * RCS: @(#) $Id$ 10 | */ 11 | 12 | package tcl.lang.cmd; 13 | 14 | import tcl.lang.*; 15 | 16 | /** 17 | * Implementation of the [apply] command. 18 | * 19 | * @author Neil Madden <nem@cs.nott.ac.uk> 20 | * @version $Revision$ 21 | */ 22 | public class ApplyCmd implements Command { 23 | 24 | public void cmdProc(Interp interp, TclObject[] objv) throws TclException { 25 | if (objv.length < 2) { 26 | throw new TclNumArgsException(interp, 1, objv, "lambdaExpr ?arg ...?"); 27 | } 28 | 29 | TclLambda.apply(interp, objv[1], objv); 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/BreakCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * BreakCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | * RCS: @(#) $Id: BreakCmd.java,v 1.1.1.1 1998/10/14 21:09:18 cvsadmin Exp $ 12 | * 13 | */ 14 | 15 | package tcl.lang.cmd; 16 | 17 | import tcl.lang.Command; 18 | import tcl.lang.Interp; 19 | import tcl.lang.TCL; 20 | import tcl.lang.TclException; 21 | import tcl.lang.TclNumArgsException; 22 | import tcl.lang.TclObject; 23 | 24 | /** 25 | * This class implements the built-in "break" command in Tcl. 26 | */ 27 | 28 | public class BreakCmd implements Command { 29 | /** 30 | * This procedure is invoked to process the "break" Tcl command. See the 31 | * user documentation for details on what it does. 32 | * 33 | * @exception TclException 34 | * is always thrown. 35 | */ 36 | 37 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 38 | if (argv.length != 1) { 39 | throw new TclNumArgsException(interp, 1, argv, null); 40 | } 41 | throw new TclException(interp, null, TCL.BREAK); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/ConcatCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ConcatCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | * RCS: @(#) $Id: ConcatCmd.java,v 1.1.1.1 1998/10/14 21:09:18 cvsadmin Exp $ 12 | * 13 | */ 14 | 15 | package tcl.lang.cmd; 16 | 17 | import tcl.lang.Command; 18 | import tcl.lang.Interp; 19 | import tcl.lang.TclException; 20 | import tcl.lang.TclObject; 21 | import tcl.lang.Util; 22 | 23 | /** 24 | * This class implements the built-in "concat" command in Tcl. 25 | */ 26 | public class ConcatCmd implements Command { 27 | 28 | /** 29 | * See Tcl user documentation for details. 30 | */ 31 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 32 | interp.setResult(Util.concat(1, argv.length, argv)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/ContinueCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ContinueCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | * RCS: @(#) $Id: ContinueCmd.java,v 1.1.1.1 1998/10/14 21:09:20 cvsadmin Exp $ 12 | * 13 | */ 14 | 15 | package tcl.lang.cmd; 16 | 17 | import tcl.lang.Command; 18 | import tcl.lang.Interp; 19 | import tcl.lang.TCL; 20 | import tcl.lang.TclException; 21 | import tcl.lang.TclNumArgsException; 22 | import tcl.lang.TclObject; 23 | 24 | /** 25 | * This class implements the built-in "continue" command in Tcl. 26 | */ 27 | 28 | public class ContinueCmd implements Command { 29 | /** 30 | * This procedure is invoked to process the "continue" Tcl command. See the 31 | * user documentation for details on what it does. 32 | * 33 | * @exception TclException 34 | * is always thrown. 35 | */ 36 | 37 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 38 | if (argv.length != 1) { 39 | throw new TclNumArgsException(interp, 1, argv, null); 40 | } 41 | throw new TclException(interp, null, TCL.CONTINUE); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/ExitCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ExitCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | * RCS: @(#) $Id: ExitCmd.java,v 1.1.1.1 1998/10/14 21:09:19 cvsadmin Exp $ 12 | * 13 | */ 14 | 15 | package tcl.lang.cmd; 16 | 17 | import tcl.lang.Command; 18 | import tcl.lang.Interp; 19 | import tcl.lang.TclException; 20 | import tcl.lang.TclIO; 21 | import tcl.lang.TclInteger; 22 | import tcl.lang.TclNumArgsException; 23 | import tcl.lang.TclObject; 24 | 25 | /** 26 | * This class implements the built-in "exit" command in Tcl. 27 | */ 28 | public class ExitCmd implements Command { 29 | 30 | /** 31 | * See Tcl user documentation for details. 32 | */ 33 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 34 | int code; 35 | 36 | if (argv.length > 2) { 37 | throw new TclNumArgsException(interp, 1, argv, "?returnCode?"); 38 | } 39 | if (argv.length == 2) { 40 | code = TclInteger.getInt(interp, argv[1]); 41 | } else { 42 | code = 0; 43 | } 44 | 45 | /* 46 | * Flush any open write channels. Don't actually close all the 47 | * channels here, because pipeline channels may cause a hang 48 | * if the process won't stop. 49 | */ 50 | TclIO.flushAllOpenChannels(interp); 51 | 52 | System.exit(code); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/ExprCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ExprCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | * RCS: @(#) $Id: ExprCmd.java,v 1.3 2005/09/30 02:12:17 mdejong Exp $ 12 | * 13 | */ 14 | 15 | package tcl.lang.cmd; 16 | 17 | import tcl.lang.Command; 18 | import tcl.lang.Interp; 19 | import tcl.lang.TclException; 20 | import tcl.lang.TclNumArgsException; 21 | import tcl.lang.TclObject; 22 | 23 | /** 24 | * This class implements the built-in "expr" command in Tcl. 25 | */ 26 | 27 | public class ExprCmd implements Command { 28 | /** 29 | * Evaluates a Tcl expression. See Tcl user documentation for details. 30 | * 31 | * @exception TclException 32 | * If malformed expression. 33 | */ 34 | 35 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 36 | if (argv.length < 2) { 37 | throw new TclNumArgsException(interp, 1, argv, "arg ?arg ...?"); 38 | } 39 | 40 | if (argv.length == 2) { 41 | interp.expr.evalSetResult(interp, argv[1].toString()); 42 | } else { 43 | StringBuffer sbuf = new StringBuffer(); 44 | sbuf.append(argv[1].toString()); 45 | for (int i = 2; i < argv.length; i++) { 46 | sbuf.append(' '); 47 | sbuf.append(argv[i].toString()); 48 | } 49 | interp.expr.evalSetResult(interp, sbuf.toString()); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/FblockedCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * FblockedCmd.java -- 3 | * 4 | * Copyright (c) 1997 Sun Microsystems, Inc. 5 | * 6 | * See the file "license.terms" for information on usage and 7 | * redistribution of this file, and for a DISCLAIMER OF ALL 8 | * WARRANTIES. 9 | * 10 | * RCS: @(#) $Id: FblockedCmd.java,v 1.5 2003/03/08 03:42:43 mdejong Exp $ 11 | * 12 | */ 13 | 14 | package tcl.lang.cmd; 15 | 16 | import tcl.lang.Command; 17 | import tcl.lang.Interp; 18 | import tcl.lang.TclException; 19 | import tcl.lang.TclIO; 20 | import tcl.lang.TclNumArgsException; 21 | import tcl.lang.TclObject; 22 | import tcl.lang.channel.Channel; 23 | 24 | /** 25 | * This class implements the built-in "fblocked" command in Tcl. 26 | */ 27 | 28 | public class FblockedCmd implements Command { 29 | /** 30 | * This procedure is invoked to process the "fblocked" Tcl command. See the 31 | * user documentation for details on what it does. 32 | * 33 | * @param interp 34 | * the current interpreter. 35 | * @param argv 36 | * command arguments. 37 | */ 38 | 39 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 40 | 41 | Channel chan; // The channel being operated on this method 42 | 43 | if (argv.length != 2) { 44 | throw new TclNumArgsException(interp, 1, argv, "channelId"); 45 | } 46 | 47 | chan = TclIO.getChannel(interp, argv[1].toString()); 48 | if (chan == null) { 49 | throw new TclException(interp, "can not find channel named \"" 50 | + argv[1].toString() + "\""); 51 | } 52 | 53 | interp.setResult(chan.isBlocked(interp)); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/ListCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ListCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | * RCS: @(#) $Id: ListCmd.java,v 1.3 2010/02/12 03:43:50 mdejong Exp $ 12 | * 13 | */ 14 | 15 | package tcl.lang.cmd; 16 | 17 | import tcl.lang.Command; 18 | import tcl.lang.Interp; 19 | import tcl.lang.TclException; 20 | import tcl.lang.TclList; 21 | import tcl.lang.TclObject; 22 | 23 | /** 24 | * This class implements the built-in "list" command in Tcl. 25 | */ 26 | public class ListCmd implements Command { 27 | 28 | /** 29 | * See Tcl user documentation for details. 30 | */ 31 | public void cmdProc(Interp interp, TclObject[] objv) throws TclException { 32 | TclObject list = TclList.newInstance(); 33 | 34 | try { 35 | for (int i = 1; i < objv.length; i++) { 36 | TclList.append(interp, list, objv[i]); 37 | } 38 | interp.setResult(list); 39 | } catch (TclException te) { 40 | list.release(); 41 | throw te; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/LlengthCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * LlengthCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | * RCS: @(#) $Id: LlengthCmd.java,v 1.2 2005/10/07 06:50:09 mdejong Exp $ 12 | * 13 | */ 14 | 15 | package tcl.lang.cmd; 16 | 17 | import tcl.lang.Command; 18 | import tcl.lang.Interp; 19 | import tcl.lang.TclException; 20 | import tcl.lang.TclList; 21 | import tcl.lang.TclNumArgsException; 22 | import tcl.lang.TclObject; 23 | 24 | /** 25 | * This class implements the built-in "llength" command in Tcl. 26 | */ 27 | 28 | public class LlengthCmd implements Command { 29 | /** 30 | * See Tcl user documentation for details. 31 | * 32 | * @exception TclException 33 | * If incorrect number of arguments. 34 | */ 35 | 36 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 37 | if (argv.length != 2) { 38 | throw new TclNumArgsException(interp, 1, argv, "list"); 39 | } 40 | interp.setResult(TclList.getLength(interp, argv[1])); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/LrepeatCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * LreverseCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | */ 12 | 13 | package tcl.lang.cmd; 14 | 15 | import tcl.lang.Command; 16 | import tcl.lang.Interp; 17 | import tcl.lang.TclException; 18 | import tcl.lang.TclInteger; 19 | import tcl.lang.TclList; 20 | import tcl.lang.TclNumArgsException; 21 | import tcl.lang.TclObject; 22 | 23 | /** 24 | * This class implements the built-in "lrepeat" command in Tcl. 25 | */ 26 | 27 | public class LrepeatCmd implements Command { 28 | 29 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 30 | if (argv.length < 3) { 31 | throw new TclNumArgsException(interp, 1, argv, "positiveCount value ?value ...?"); 32 | } 33 | 34 | int count = TclInteger.getInt(interp, argv[1]); 35 | if (count < 1) { 36 | throw new TclException(interp, "must have a count of at least 1"); 37 | } 38 | 39 | TclObject result = TclList.newInstance(); 40 | 41 | for (int i = 0; i < count; i++) { 42 | for (int j = 2; j < argv.length; j++) { 43 | TclList.append(interp, result, argv[j]); 44 | } 45 | } 46 | interp.setResult(result); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/tcl/lang/cmd/LreverseCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * LreverseCmd.java 3 | * 4 | * Copyright (c) 1997 Cornell University. 5 | * Copyright (c) 1997 Sun Microsystems, Inc. 6 | * 7 | * See the file "license.terms" for information on usage and 8 | * redistribution of this file, and for a DISCLAIMER OF ALL 9 | * WARRANTIES. 10 | * 11 | */ 12 | 13 | package tcl.lang.cmd; 14 | 15 | import tcl.lang.Command; 16 | import tcl.lang.Interp; 17 | import tcl.lang.TclException; 18 | import tcl.lang.TclList; 19 | import tcl.lang.TclNumArgsException; 20 | import tcl.lang.TclObject; 21 | 22 | /** 23 | * This class implements the built-in "lreverse" command in Tcl. 24 | */ 25 | 26 | public class LreverseCmd implements Command { 27 | 28 | public void cmdProc(Interp interp, TclObject argv[]) throws TclException { 29 | if (argv.length != 2) { 30 | throw new TclNumArgsException(interp, 1, argv, "list"); 31 | } 32 | 33 | TclObject[] elems = TclList.getElements(interp, argv[1]); 34 | 35 | if (elems.length == 0) { 36 | interp.setResult(argv[1]); 37 | } else { 38 | TclObject result = TclList.newInstance(); 39 | for (int i = 0, j = elems.length-1; i < elems.length; i++, j--) { 40 | TclList.append(interp, result, elems[j]); 41 | } 42 | interp.setResult(result); 43 | } 44 | 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/tcl/pkg/fleet/FleetExt.java: -------------------------------------------------------------------------------- 1 | package tcl.pkg.fleet; 2 | 3 | import tcl.lang.Extension; 4 | import tcl.lang.Interp; 5 | 6 | /* 7 | * This class implements a simple Tcl extension package "Fleet". 8 | */ 9 | /** 10 | * 11 | * @author brucejohnson 12 | */ 13 | public class FleetExt extends Extension { 14 | /* 15 | * Create all the commands in the Simple package. 16 | */ 17 | 18 | /** 19 | * 20 | * @param interp 21 | */ 22 | public void init(Interp interp) { 23 | Extension.loadOnDemand(interp, "fleet", "tcl.pkg.fleet.FleetCmd"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/tcl/pkg/java/BeanEventParamSet.java: -------------------------------------------------------------------------------- 1 | /* 2 | * BeanEventParam.java -- 3 | * 4 | * This class stores the parameters that are passed to the event 5 | * method when an event is fired. 6 | * 7 | * Copyright (c) 1997 Sun Microsystems, Inc. 8 | * 9 | * See the file "license.terms" for information on usage and 10 | * redistribution of this file, and for a DISCLAIMER OF ALL 11 | * WARRANTIES. 12 | * 13 | * RCS: @(#) $Id: BeanEventParamSet.java,v 1.1.1.1 1998/10/14 21:09:13 cvsadmin Exp $ 14 | */ 15 | 16 | package tcl.pkg.java; 17 | 18 | 19 | /* 20 | * This class stores the parameters that are passed to the event 21 | * method when an event is fired. 22 | */ 23 | 24 | class BeanEventParamSet { 25 | 26 | /* 27 | * The types of the parameters. 28 | */ 29 | 30 | Class paramTypes[]; 31 | 32 | /* 33 | * The parameters to the event method that has been fired. 34 | */ 35 | 36 | Object params[]; 37 | 38 | /* 39 | * ---------------------------------------------------------------------- 40 | * 41 | * BeanEventParamSet -- 42 | * 43 | * Creates a new BeanEventParamSet instance. 44 | * 45 | * Side effects: Member fields are initialized. 46 | * 47 | * ---------------------------------------------------------------------- 48 | */ 49 | 50 | BeanEventParamSet(Class t[], // Initial value for paramTypes. 51 | Object p[]) // Initial value for params. 52 | { 53 | paramTypes = t; 54 | params = p; 55 | } 56 | 57 | } // end BeanEventParam 58 | 59 | -------------------------------------------------------------------------------- /src/main/java/tcl/pkg/java/JaclLoadJavaCmd.java: -------------------------------------------------------------------------------- 1 | package tcl.pkg.java; 2 | 3 | import tcl.lang.Command; 4 | import tcl.lang.Interp; 5 | import tcl.lang.TclException; 6 | import tcl.lang.TclNumArgsException; 7 | import tcl.lang.TclObject; 8 | import tcl.lang.TclRuntimeError; 9 | 10 | /** 11 | * This class implements a small helper function that is used to load the Java 12 | * package into Jacl. 13 | */ 14 | 15 | public class JaclLoadJavaCmd implements Command { 16 | 17 | public void cmdProc(Interp interp, // Current interpreter. 18 | TclObject argv[]) // Arguments to "jaclloadjava" statement. 19 | throws TclException { 20 | // This method takes no arguments 21 | if (argv.length != 1) { 22 | throw new TclNumArgsException(interp, 1, argv, ""); 23 | } 24 | 25 | try { 26 | (new BlendExtension()).init(interp); 27 | } catch (TclException e) { 28 | System.out.println(interp.getResult()); 29 | e.printStackTrace(); 30 | throw new TclRuntimeError("unexpected TclException: " + e); 31 | } 32 | 33 | // Now that we have loaded the Java package we can delete this command 34 | // from the interp. 35 | 36 | interp.deleteCommand(argv[0].toString()); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/tcl/pkg/java/JavaGetInterpCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * JavaGetInterpCmd.java -- 3 | * 4 | * Implements the built-in "java::getinterp" command. 5 | * 6 | * Copyright (c) 1997 Sun Microsystems, Inc. 7 | * 8 | * See the file "license.terms" for information on usage and 9 | * redistribution of this file, and for a DISCLAIMER OF ALL 10 | * WARRANTIES. 11 | * 12 | * RCS: @(#) $Id: JavaGetInterpCmd.java,v 1.1.1.1 1998/10/14 21:09:14 cvsadmin Exp $ 13 | */ 14 | 15 | package tcl.pkg.java; 16 | 17 | import tcl.lang.Command; 18 | import tcl.lang.Interp; 19 | import tcl.lang.TclException; 20 | import tcl.lang.TclObject; 21 | 22 | /* 23 | * Implements the built-in "java::getinterp" command. 24 | */ 25 | 26 | public class JavaGetInterpCmd implements Command { 27 | 28 | /*---------------------------------------------------------------------- 29 | * 30 | * cmdProc -- 31 | * 32 | * This procedure is invoked to process the "java::getInterp" Tcl 33 | * command. See the user documentation for details on what it 34 | * does. 35 | * 36 | * Results: 37 | * None. 38 | * 39 | * Side effects: 40 | * A standard Tcl result is stored in the interpreter. 41 | * 42 | *---------------------------------------------------------------------- 43 | */ 44 | 45 | public void cmdProc(Interp interp, // Current interpreter. 46 | TclObject argv[]) // Argument list. 47 | throws TclException // A standard Tcl exception. 48 | { 49 | interp.setResult(ReflectObject 50 | .newInstance(interp, Interp.class, interp)); 51 | } 52 | 53 | } // end JavaGetInterpCmd 54 | 55 | -------------------------------------------------------------------------------- /src/main/java/tcl/pkg/java/JavaNullCmd.java: -------------------------------------------------------------------------------- 1 | /* 2 | * JavaNullCmd.java -- 3 | * 4 | * Implements the built-in "java::null" command. 5 | * 6 | * Copyright (c) 1997 Sun Microsystems, Inc. 7 | * 8 | * See the file "license.terms" for information on usage and 9 | * redistribution of this file, and for a DISCLAIMER OF ALL 10 | * WARRANTIES. 11 | * 12 | * RCS: @(#) $Id: JavaNullCmd.java,v 1.2 1999/05/09 22:19:45 dejong Exp $ 13 | * 14 | */ 15 | 16 | package tcl.pkg.java; 17 | 18 | import tcl.lang.Command; 19 | import tcl.lang.Interp; 20 | import tcl.lang.TclException; 21 | import tcl.lang.TclObject; 22 | 23 | /** 24 | * Implements the built-in "java::null" command. 25 | */ 26 | 27 | public class JavaNullCmd implements Command { 28 | 29 | /*---------------------------------------------------------------------- 30 | * 31 | * cmdProc -- 32 | * 33 | * This procedure is invoked to process the "java::null" Tcl 34 | * command. See the user documentation for details on what it 35 | * does. 36 | * 37 | * Results: 38 | * None. 39 | * 40 | * Side effects: 41 | * A standard Tcl result is stored in the interpreter. 42 | * 43 | *---------------------------------------------------------------------- 44 | */ 45 | 46 | public void cmdProc(Interp interp, // Current interpreter. 47 | TclObject argv[]) // Argument list. 48 | throws TclException { 49 | interp.setResult(ReflectObject.newInstance(interp, null, null)); 50 | } 51 | 52 | } // end JavaNullCmd 53 | 54 | -------------------------------------------------------------------------------- /src/main/licenses/license.amd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/main/licenses/license.amd -------------------------------------------------------------------------------- /src/main/licenses/license.janino: -------------------------------------------------------------------------------- 1 | Janino - An embedded Java[TM] compiler 2 | 3 | Copyright (c) 2001-2010, Arno Unkrig 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions 8 | are met: 9 | 10 | 1. Redistributions of source code must retain the above copyright 11 | notice, this list of conditions and the following disclaimer. 12 | 2. Redistributions in binary form must reproduce the above 13 | copyright notice, this list of conditions and the following 14 | disclaimer in the documentation and/or other materials 15 | provided with the distribution. 16 | 3. The name of the author may not be used to endorse or promote 17 | products derived from this software without specific prior 18 | written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 21 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 22 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 24 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 26 | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 28 | IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29 | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 30 | IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /src/main/licenses/license.ucb: -------------------------------------------------------------------------------- 1 | Portions of Jacl and Tcl Blend are 2 | Copyright (c) 1997-1999 The Regents of the University of California. 3 | All rights reserved. 4 | 5 | Permission is hereby granted, without written agreement and without 6 | license or royalty fees, to use, copy, modify, and distribute this 7 | software and its documentation for any purpose, provided that the above 8 | copyright notice and the following two paragraphs appear in all copies 9 | of this software. 10 | 11 | IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY 12 | FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 13 | ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF 14 | THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF 15 | SUCH DAMAGE. 16 | 17 | THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, 18 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE 20 | PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF 21 | CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, 22 | ENHANCEMENTS, OR MODIFICATIONS. 23 | 24 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/services/javax.script.ScriptEngineFactory: -------------------------------------------------------------------------------- 1 | tcl.lang.embed.jsr223.JtclScriptEngineFactory 2 | -------------------------------------------------------------------------------- /src/main/resources/tcl/lang/library/http/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 12 | package ifneeded http 2.5.5 [list tclPkgSetup $dir http 2.5.5 {{http.tcl source {::http::config ::http::formatQuery ::http::geturl ::http::reset ::http::wait ::http::register ::http::unregister ::http::mapReply}}}] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/lang/library/http10/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.0 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | package ifneeded http 1.0 [list tclPkgSetup $dir http 1.0 {{http.tcl source {httpCopyDone httpCopyStart httpEof httpEvent httpFinish httpMapReply httpProxyRequired http_code http_config http_data http_formatQuery http_get http_reset http_size http_status http_wait}}}] 12 | -------------------------------------------------------------------------------- /src/main/resources/tcl/lang/library/jtcl_version.tcl: -------------------------------------------------------------------------------- 1 | # fake package that provides JTcl version, 2 | # project.version substituted during build 3 | 4 | 5 | if { [ catch { 6 | if {[regexp {^[2-9]} "${project.version}"]} { 7 | package provide JTcl "${project.version}" 8 | } else { 9 | package provide JTcl 0.0 10 | } 11 | }]} { 12 | # default if project.version not substituted 13 | package provide JTcl 0.0 14 | } 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/main/resources/tcl/lang/library/msgcat/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded msgcat 1.3.4 [list source [file join $dir msgcat.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/lang/library/opt/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex -direct" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded opt 0.4.4.1 [list source [file join $dir optparse.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/lang/library/parray.tcl: -------------------------------------------------------------------------------- 1 | # parray: 2 | # Print the contents of a global array on stdout. 3 | # 4 | # RCS: @(#) $Id: parray.tcl,v 1.3 1998/09/14 18:40:03 stanton Exp $ 5 | # 6 | # Copyright (c) 1991-1993 The Regents of the University of California. 7 | # Copyright (c) 1994 Sun Microsystems, Inc. 8 | # 9 | # See the file "license.terms" for information on usage and redistribution 10 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 11 | # 12 | 13 | proc parray {a {pattern *}} { 14 | upvar 1 $a array 15 | if {![array exists array]} { 16 | error "\"$a\" isn't an array" 17 | } 18 | set maxl 0 19 | foreach name [lsort [array names array $pattern]] { 20 | if {[string length $name] > $maxl} { 21 | set maxl [string length $name] 22 | } 23 | } 24 | set maxl [expr {$maxl + [string length $a] + 2}] 25 | foreach name [lsort [array names array $pattern]] { 26 | set nameString [format %s(%s) $a $name] 27 | puts stdout [format "%-*s = %s" $maxl $nameString $array($name)] 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/resources/tcl/lang/library/tcltest/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex -direct" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 12 | package ifneeded tcltest 2.2.9 [list source [file join $dir tcltest.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/jtcllib/library/fleet/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | package ifneeded fleet 0.1 "source [file join $dir fleet.tcl]" 2 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/jtcllib/library/hyde/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | package ifneeded hyde 1.7 "source [file join $dir hyde.tcl]" 2 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/jtcllib/library/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # jtcllib version 1.1 3 | 4 | # All jtcllib packages need Tcl 8 (use [namespace]) 5 | if {![package vsatisfies [package provide Tcl] 8]} {return} 6 | 7 | # Extend the auto_path to make jtcllib packages available 8 | if {[lsearch -exact $::auto_path $dir] == -1} { 9 | lappend ::auto_path $dir 10 | } 11 | 12 | set maindir $dir 13 | set dir [file join $maindir hyde] ; source [file join $dir pkgIndex.tcl] 14 | set dir [file join $maindir ziplib] ; source [file join $dir pkgIndex.tcl] 15 | set dir [file join $maindir fleet] ; source [file join $dir pkgIndex.tcl] 16 | unset maindir 17 | 18 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/jtcllib/library/ziplib/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | package ifneeded ziplib 1.0 "source [file join $dir ziplib.tcl]" 2 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/aes/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} { 2 | # PRAGMA: returnok 3 | return 4 | } 5 | package ifneeded aes 1.0.2 [list source [file join $dir aes.tcl]] 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/asn/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | 3 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 4 | package ifneeded asn 0.8.4 [list source [file join $dir asn.tcl]] 5 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/base32/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} return 2 | package ifneeded base32 0.1 [list source [file join $dir base32.tcl]] 3 | package ifneeded base32::hex 0.1 [list source [file join $dir base32hex.tcl]] 4 | package ifneeded base32::core 0.1 [list source [file join $dir base32core.tcl]] 5 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/base64/base64c.tcl: -------------------------------------------------------------------------------- 1 | # base64c - Copyright (C) 2003 Pat Thoyts 2 | # 3 | # This package is a place-holder for the critcl enhanced code present in 4 | # the tcllib base64 module. 5 | # 6 | # Normally this code will become part of the tcllibc library. 7 | # 8 | 9 | # @sak notprovided base64c 10 | package require critcl 11 | package provide base64c 0.1.0 12 | 13 | namespace eval ::base64c { 14 | variable base64c_rcsid {$Id: base64c.tcl,v 1.5 2008/03/25 07:15:35 andreas_kupries Exp $} 15 | 16 | critcl::ccode { 17 | /* no code required in this file */ 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/base64/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded base64 2.4.2 [list source [file join $dir base64.tcl]] 3 | package ifneeded uuencode 1.1.5 [list source [file join $dir uuencode.tcl]] 4 | package ifneeded yencode 1.1.3 [list source [file join $dir yencode.tcl]] 5 | package ifneeded ascii85 1.0 [list source [file join $dir ascii85.tcl]] 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/bee/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | 3 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 4 | package ifneeded bee 0.1 [list source [file join $dir bee.tcl]] 5 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/bench/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} { 2 | return 3 | } 4 | package ifneeded bench 0.4 [list source [file join $dir bench.tcl]] 5 | package ifneeded bench::out::text 0.1.2 [list source [file join $dir bench_wtext.tcl]] 6 | package ifneeded bench::out::csv 0.1.2 [list source [file join $dir bench_wcsv.tcl]] 7 | package ifneeded bench::in 0.1 [list source [file join $dir bench_read.tcl]] 8 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/bibtex/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded bibtex 0.5 [list source [file join $dir bibtex.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/blowfish/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} { 2 | # PRAGMA: returnok 3 | return 4 | } 5 | package ifneeded blowfish 1.0.4 [list source [file join $dir blowfish.tcl]] 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/cache/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded cache::async 0.3 [list source [file join $dir async.tcl]] 3 | 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/cmdline/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded cmdline 1.3.2 [list source [file join $dir cmdline.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/comm/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 2 | package ifneeded comm 4.6.2 [list source [file join $dir comm.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/control/control.tcl: -------------------------------------------------------------------------------- 1 | # control.tcl -- 2 | # 3 | # This is the main package provide script for the package 4 | # "control". It provides commands that govern the flow of 5 | # control of a program. 6 | # 7 | # RCS: @(#) $Id: control.tcl,v 1.15 2005/09/30 05:36:38 andreas_kupries Exp $ 8 | 9 | package require Tcl 8.2 10 | 11 | namespace eval ::control { 12 | variable version 0.1.3 13 | namespace export assert control do no-op rswitch 14 | 15 | proc control {command args} { 16 | # Need to add error handling here 17 | namespace eval [list $command] $args 18 | } 19 | 20 | # Set up for auto-loading the commands 21 | variable home [file join [pwd] [file dirname [info script]]] 22 | if {[lsearch -exact $::auto_path $home] == -1} { 23 | lappend ::auto_path $home 24 | } 25 | 26 | package provide [namespace tail [namespace current]] $version 27 | } 28 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/control/no-op.tcl: -------------------------------------------------------------------------------- 1 | # no-op.tcl -- 2 | # 3 | # The [no-op] command of the package "control". 4 | # It accepts any number of arguments and does nothing. 5 | # It returns an empty string. 6 | # 7 | # RCS: @(#) $Id: no-op.tcl,v 1.2 2004/01/15 06:36:12 andreas_kupries Exp $ 8 | 9 | namespace eval ::control { 10 | 11 | proc no-op args {} 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/control/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded control 0.1.3 [list source [file join $dir control.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/control/tclIndex: -------------------------------------------------------------------------------- 1 | # Tcl autoload index file, version 2.0 2 | # This file is generated by the "auto_mkindex" command 3 | # and sourced to set up indexing information for one or 4 | # more commands. Typically each line is a command that 5 | # sets an element in the auto_index array, where the 6 | # element name is the name of a command and the value is 7 | # a script that loads the command. 8 | 9 | set auto_index(::control::CommandAsCaller) [list source [file join $dir ascaller.tcl]] 10 | set auto_index(::control::BodyAsCaller) [list source [file join $dir ascaller.tcl]] 11 | set auto_index(::control::ErrorInfoAsCaller) [list source [file join $dir ascaller.tcl]] 12 | set auto_index(::control::assert::EnabledAssert) [list source [file join $dir assert.tcl]] 13 | set auto_index(::control::assert::enabled) [list source [file join $dir assert.tcl]] 14 | set auto_index(::control::assert::callback) [list source [file join $dir assert.tcl]] 15 | set auto_index(::control::AssertSwitch) [list source [file join $dir assert.tcl]] 16 | set auto_index(::control::assert) [list source [file join $dir assert.tcl]] 17 | set auto_index(::control::do) [list source [file join $dir do.tcl]] 18 | set auto_index(::control::no-op) [list source [file join $dir no-op.tcl]] 19 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/counter/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded counter 2.0.4 [list source [file join $dir counter.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/crc/crcc.tcl: -------------------------------------------------------------------------------- 1 | # crcc.tcl - Copyright (C) 2002 Pat Thoyts 2 | # 3 | # Place holder for building a critcl C module for this tcllib module. 4 | # 5 | # ------------------------------------------------------------------------- 6 | # See the file "license.terms" for information on usage and redistribution 7 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 8 | # ------------------------------------------------------------------------- 9 | # $Id: crcc.tcl,v 1.4 2008/03/25 07:15:35 andreas_kupries Exp $ 10 | 11 | package require critcl 12 | 13 | namespace eval ::crc { 14 | variable rcsid {$Id: crcc.tcl,v 1.4 2008/03/25 07:15:35 andreas_kupries Exp $} 15 | 16 | critcl::ccode { 17 | /* no code required in this file */ 18 | } 19 | } 20 | 21 | # @sak notprovided crcc 22 | package provide crcc 1.0.0 -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/crc/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded cksum 1.1.3 [list source [file join $dir cksum.tcl]] 3 | package ifneeded crc16 1.1.1 [list source [file join $dir crc16.tcl]] 4 | package ifneeded crc32 1.3.1 [list source [file join $dir crc32.tcl]] 5 | package ifneeded sum 1.1.0 [list source [file join $dir sum.tcl]] 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/csv/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 2 | package ifneeded csv 0.7.2 [list source [file join $dir csv.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/des/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} { 2 | # PRAGMA: returnok 3 | return 4 | } 5 | package ifneeded des 1.1.0 [list source [file join $dir des.tcl]] 6 | package ifneeded tclDES 1.0.0 [list source [file join $dir tcldes.tcl]] 7 | package ifneeded tclDESjr 1.0.0 [list source [file join $dir tcldesjr.tcl]] 8 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/dns/msgs/en.msg: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | package require msgcat 3 | namespace import ::msgcat::* 4 | 5 | mcset en "option %s not supported" "option %s not supported" 6 | mcset en "option %s not supported" "option %s not supported" 7 | mcset en "not an ip mask: %s" "not an ip mask: %s" 8 | mcset en "ip host could not be found in %s" "ip host could not be found in %s" 9 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/dns/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # pkgIndex.tcl - 2 | # 3 | # $Id: pkgIndex.tcl,v 1.21 2010/08/16 17:35:18 andreas_kupries Exp $ 4 | 5 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 6 | package ifneeded dns 1.3.3 [list source [file join $dir dns.tcl]] 7 | package ifneeded resolv 1.0.3 [list source [file join $dir resolv.tcl]] 8 | package ifneeded ip 1.2 [list source [file join $dir ip.tcl]] 9 | package ifneeded spf 1.1.1 [list source [file join $dir spf.tcl]] 10 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/docstrip/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | ## 2 | ## This is the file `pkgIndex.tcl', 3 | ## generated with the SAK utility 4 | ## (sak docstrip/regen). 5 | ## 6 | ## The original source files were: 7 | ## 8 | ## tcldocstrip.dtx (with options: `idx') 9 | ## 10 | ## In other words: 11 | ## ************************************** 12 | ## * This Source is not the True Source * 13 | ## ************************************** 14 | ## the true source is the file from which this one was generated. 15 | ## 16 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 17 | package ifneeded docstrip 1.2\ 18 | [list source [file join $dir docstrip.tcl]] 19 | package ifneeded docstrip::util 1.3\ 20 | [list source [file join $dir docstrip_util.tcl]] 21 | ## 22 | ## 23 | ## End of file `pkgIndex.tcl'. -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/api.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # api.tcl -- API placeholders 3 | # 4 | # Copyright (c) 2001 Andreas Kupries 5 | # Copyright (c) 2002 Andreas Kupries 6 | # Copyright (c) 2003 Andreas Kupries 7 | 8 | ################################################################ 9 | # This file defines all commands expected from a formatter by the 10 | # doctools library. It is loaded into the formatter interpreter before 11 | # the code for a particular format is loaded. All commands defined 12 | # here return an error. This ensures the generation of errors if a 13 | # format forgets to define commands in the API. 14 | 15 | ################################################################ 16 | # Here it comes 17 | 18 | foreach __cmd { 19 | initialize shutdown setup numpasses listvariables varset 20 | 21 | manpage_begin moddesc titledesc manpage_end require description 22 | section para list_begin list_end lst_item call bullet enum see_also 23 | keywords example example_begin example_end nl arg cmd opt emph strong 24 | comment sectref syscmd method option widget fun type package class var 25 | file uri term const copyright category 26 | } { 27 | proc fmt_$__cmd {args} [list return "return -code error \"Unimplemented API command $__cmd\""] 28 | } 29 | unset __cmd 30 | 31 | ################################################################ 32 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/api_idx.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # api_idx.tcl -- API placeholders 3 | # 4 | # Copyright (c) 2003 Andreas Kupries 5 | 6 | ################################################################ 7 | # This file defines all commands expected from a docidx formatter by the 8 | # doctools library. It is loaded into the formatter interpreter before 9 | # the code for a particular docidx format is loaded. All commands defined 10 | # here return an error. This ensures the generation of errors if a 11 | # format forgets to define commands in the API. 12 | 13 | ################################################################ 14 | # Here it comes 15 | 16 | foreach __cmd { 17 | idx_initialize idx_shutdown idx_setup idx_numpasses 18 | idx_listvariables idx_varset 19 | fmt_index_begin fmt_index_end fmt_key fmt_manpage fmt_url 20 | fmt_comment fmt_plain_text 21 | } { 22 | proc $__cmd {args} [list return "return -code error \"Unimplemented API command $__cmd\""] 23 | } 24 | unset __cmd 25 | 26 | ################################################################ 27 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/api_toc.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # api_toc.tcl -- API placeholders 3 | # 4 | # Copyright (c) 2003 Andreas Kupries 5 | 6 | ################################################################ 7 | # This file defines all commands expected from a doctoc formatter by the 8 | # doctools library. It is loaded into the formatter interpreter before 9 | # the code for a particular doctoc format is loaded. All commands defined 10 | # here return an error. This ensures the generation of errors if a 11 | # format forgets to define commands in the API. 12 | 13 | ################################################################ 14 | # Here it comes 15 | 16 | foreach __cmd { 17 | toc_initialize toc_shutdown toc_setup toc_numpasses 18 | toc_listvariables toc_varset 19 | fmt_toc_begin fmt_toc_end fmt_division_start fmt_division_end 20 | fmt_item fmt_comment fmt_plain_text 21 | } { 22 | proc $__cmd {args} [list return "return -code error \"Unimplemented API command $__cmd\""] 23 | } 24 | unset __cmd 25 | 26 | ################################################################ 27 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/mpformats/_idx_common.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # 3 | # _idx_common.tcl 4 | # 5 | # (c) 2003 Andreas Kupries 6 | 7 | ################################################################ 8 | # The code here contains general definitions for API functions and 9 | # state information. They are used by several formatters to simplify 10 | # their own code. 11 | 12 | proc idx_initialize {} {return} 13 | proc idx_shutdown {} {return} 14 | proc idx_numpasses {} {return 1} 15 | proc idx_postprocess {text} {return $text} 16 | proc idx_setup {n} {return} 17 | proc idx_listvariables {} {return {}} 18 | proc idx_varset {varname text} {return} 19 | 20 | 21 | proc fmt_plain_text {text} {return $text} 22 | 23 | ################################################################ 24 | # Functions made available to the formatter to access the common 25 | # state managed here. 26 | 27 | proc c_provenance {} { 28 | return "Generated by tcllib/doctools/idx with format '[dt_format]'" 29 | } 30 | 31 | ################################################################ 32 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/mpformats/_toc_common.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # 3 | # _toc_common.tcl 4 | # 5 | # (c) 2003 Andreas Kupries 6 | 7 | ################################################################ 8 | # The code here contains general definitions for API functions and 9 | # state information. They are used by several formatters to simplify 10 | # their own code. 11 | 12 | proc toc_initialize {} {return} 13 | proc toc_shutdown {} {return} 14 | proc toc_numpasses {} {return 1} 15 | proc toc_postprocess {text} {return $text} 16 | proc toc_setup {n} {return} 17 | proc toc_listvariables {} {return {}} 18 | proc toc_varset {varname text} {return} 19 | 20 | 21 | proc fmt_plain_text {text} {return $text} 22 | 23 | ################################################################ 24 | # Functions made available to the formatter to access the common 25 | # state managed here. 26 | 27 | proc c_provenance {} { 28 | return "Generated by tcllib/doctools/toc with format '[dt_format]'" 29 | } 30 | 31 | ################################################################ 32 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/mpformats/fmt.null: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # 3 | # -- Null format 4 | # 5 | # Copyright (c) 2001-2002 Andreas Kupries 6 | # Copyright (c) 2003 Andreas Kupries 7 | 8 | # This is a null format which does return no output at all. 9 | 10 | ################################################################ 11 | 12 | proc fmt_initialize {} {return} 13 | proc fmt_shutdown {} {return} 14 | proc fmt_numpasses {} {return 1} 15 | proc fmt_postprocess {text} {return ""} 16 | proc fmt_plain_text {text} {return ""} 17 | proc fmt_setup {n} {return} 18 | 19 | foreach p { 20 | manpage_begin moddesc titledesc manpage_end require description 21 | section para list_begin list_end lst_item call usage bullet enum 22 | arg_def cmd_def opt_def tkoption_def see_also keywords example 23 | example_begin example_end nl arg cmd opt emph comment image mdash 24 | sectref syscmd method option widget fun type package class var 25 | file uri term const copyright namespace subsection category ndash 26 | } { 27 | proc fmt_$p {args} {return ""} 28 | } 29 | 30 | ################################################################ 31 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/mpformats/idx.null: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # 3 | # -- Null format (docidx) 4 | # 5 | # Copyright (c) 2003 Andreas Kupries 6 | 7 | # This is a null format which does return no output at all. 8 | 9 | ################################################################ 10 | 11 | proc idx_initialize {} {return} 12 | proc idx_shutdown {} {return} 13 | proc idx_numpasses {} {return 1} 14 | proc idx_postprocess {text} {return ""} 15 | proc idx_setup {n} {return} 16 | 17 | foreach p { 18 | index_begin index_end key manpage url comment plain_text 19 | } { 20 | proc fmt_$p {args} {return ""} 21 | } 22 | 23 | ################################################################ 24 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/mpformats/toc.null: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # 3 | # -- Null format (doctoc) 4 | # 5 | # Copyright (c) 2003 Andreas Kupries 6 | 7 | # This is a null format which does return no output at all. 8 | 9 | ################################################################ 10 | 11 | proc toc_initialize {} {return} 12 | proc toc_shutdown {} {return} 13 | proc toc_numpasses {} {return 1} 14 | proc toc_postprocess {text} {return ""} 15 | proc toc_setup {n} {return} 16 | 17 | foreach p { 18 | toc_begin toc_end item division_start division_end comment plain_text 19 | } { 20 | proc fmt_$p {args} {return ""} 21 | } 22 | 23 | ################################################################ 24 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/mpformats/toc.tmml: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # 3 | # $Id: toc.tmml,v 1.6 2005/09/28 04:51:19 andreas_kupries Exp $ 4 | # 5 | # Engine to convert a doctoc document into TMML. 6 | # 7 | # Copyright (c) 2003 Andreas Kupries 8 | # Freely redistributable. 9 | # 10 | # See also 11 | # 12 | ###################################################################### 13 | 14 | dt_source _toc_common.tcl 15 | dt_source _xml.tcl 16 | 17 | ###################################################################### 18 | # Conversion specification. 19 | # 20 | # One-pass processing. 21 | 22 | rename toc_postprocess {} 23 | rename fmt_postprocess toc_postprocess 24 | 25 | proc fmt_plain_text {text} {if {$text != {}} {return \n} else {return {}}} 26 | 27 | ################################################################ 28 | ## Backend for TMML markup 29 | 30 | proc fmt_toc_begin {label title} {sequence [start manual package $label] [wrap $title title]} 31 | proc fmt_toc_end {} {end manual} 32 | proc fmt_division_start {title symfile} {sequence [start division] [wrap $text title]} 33 | proc fmt_division_end {} {end division} 34 | proc fmt_item {file label desc} {emptyElement subdoc href [dt_fmap $file]} 35 | proc fmt_comment {text} {xmlComment $text} 36 | 37 | ################################################################ 38 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded doctools 1.4.11 [list source [file join $dir doctools.tcl]] 3 | package ifneeded doctools::toc 1.1.3 [list source [file join $dir doctoc.tcl]] 4 | package ifneeded doctools::idx 1.0.4 [list source [file join $dir docidx.tcl]] 5 | package ifneeded doctools::cvs 1 [list source [file join $dir cvs.tcl]] 6 | package ifneeded doctools::changelog 1 [list source [file join $dir changelog.tcl]] 7 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/doctools2base/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | 3 | # Packages for the doctools {idx,toc,doc} v2 implementation 4 | # (still v1.1 doc{idx,toc} languages). 5 | 6 | # Supporting packages 7 | # - Handling configuration variables, and include paths. 8 | # - Handling text generation, the nroff man.macros definitions, 9 | # HTML/XML generation, and the default CSS style 10 | # - Handling of message catalogs as packages. 11 | # - Recursive descent parser for Tcl strings (as expected by 'subst -novariables'). 12 | 13 | package ifneeded doctools::config 0.1 [list source [file join $dir config.tcl]] 14 | package ifneeded doctools::paths 0.1 [list source [file join $dir paths.tcl]] 15 | package ifneeded doctools::text 0.1 [list source [file join $dir text.tcl]] 16 | package ifneeded doctools::nroff::man_macros 0.1 [list source [file join $dir nroff_manmacros.tcl]] 17 | package ifneeded doctools::html 0.1 [list source [file join $dir html.tcl]] 18 | package ifneeded doctools::html::cssdefaults 0.1 [list source [file join $dir html_cssdefaults.tcl]] 19 | package ifneeded doctools::msgcat 0.1 [list source [file join $dir msgcat.tcl]] 20 | package ifneeded doctools::tcl::parse 0.1 [list source [file join $dir tcl_parse.tcl]] 21 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/fileutil/multi.tcl: -------------------------------------------------------------------------------- 1 | # ### ### ### ######### ######### ######### 2 | ## 3 | # (c) 2007 Andreas Kupries. 4 | 5 | # Multi file operations. Singleton based on the multiop processor. 6 | 7 | # ### ### ### ######### ######### ######### 8 | ## Requisites 9 | 10 | package require fileutil::multi::op 11 | 12 | # ### ### ### ######### ######### ######### 13 | ## API & Implementation 14 | 15 | namespace eval ::fileutil {} 16 | 17 | # Create the multiop processor object and make its do method the main 18 | # command of this package. 19 | ::fileutil::multi::op ::fileutil::multi::obj 20 | 21 | proc ::fileutil::multi {args} { 22 | return [uplevel 1 [linsert $args 0 ::fileutil::multi::obj do]] 23 | } 24 | 25 | # ### ### ### ######### ######### ######### 26 | ## Ready 27 | 28 | package provide fileutil::multi 0.1 29 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/fileutil/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded fileutil 1.14.4 [list source [file join $dir fileutil.tcl]] 3 | 4 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 5 | package ifneeded fileutil::traverse 0.4.1 [list source [file join $dir traverse.tcl]] 6 | 7 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 8 | package ifneeded fileutil::multi 0.1 [list source [file join $dir multi.tcl]] 9 | package ifneeded fileutil::multi::op 0.5.3 [list source [file join $dir multiop.tcl]] 10 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/ftp/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded ftp 2.4.9 [list source [file join $dir ftp.tcl]] 3 | package ifneeded ftp::geturl 0.2.1 [list source [file join $dir ftp_geturl.tcl]] 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/ftpd/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 2 | package ifneeded ftpd 1.2.5 [list source [file join $dir ftpd.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/fumagic/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | 3 | # Recognizers 4 | package ifneeded fileutil::magic::filetype 1.0.2 [list source [file join $dir filetypes.tcl]] 5 | package ifneeded fileutil::magic::mimetype 1.0.2 [list source [file join $dir mimetypes.tcl]] 6 | 7 | # Runtime 8 | package ifneeded fileutil::magic::rt 1.0 [list source [file join $dir rtcore.tcl]] 9 | 10 | # Compiler packages 11 | package ifneeded fileutil::magic::cgen 1.0 [list source [file join $dir cgen.tcl]] 12 | package ifneeded fileutil::magic::cfront 1.0 [list source [file join $dir cfront.tcl]] 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/grammar_fa/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | 3 | package ifneeded grammar::fa 0.4 [list source [file join $dir fa.tcl]] 4 | package ifneeded grammar::fa::op 0.4.1 [list source [file join $dir faop.tcl]] 5 | package ifneeded grammar::fa::dacceptor 0.1.1 [list source [file join $dir dacceptor.tcl]] 6 | package ifneeded grammar::fa::dexec 0.2 [list source [file join $dir dexec.tcl]] 7 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/grammar_me/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | 3 | package ifneeded grammar::me::util 0.1 [list source [file join $dir me_util.tcl]] 4 | package ifneeded grammar::me::tcl 0.1 [list source [file join $dir me_tcl.tcl]] 5 | package ifneeded grammar::me::cpu 0.2 [list source [file join $dir me_cpu.tcl]] 6 | package ifneeded grammar::me::cpu::core 0.2 [list source [file join $dir me_cpucore.tcl]] 7 | package ifneeded grammar::me::cpu::gasm 0.1 [list source [file join $dir gasm.tcl]] 8 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/grammar_peg/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | package ifneeded grammar::peg 0.1 [list source [file join $dir peg.tcl]] 2 | package ifneeded grammar::peg::interp 0.1 [list source [file join $dir peg_interp.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/html/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded html 1.4 [list source [file join $dir html.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/htmlparse/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded htmlparse 1.2 [list source [file join $dir htmlparse.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/http/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded autoproxy 1.5.1 [list source [file join $dir autoproxy.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/ident/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded ident 0.42 [list source [file join $dir ident.tcl]] 13 | 14 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/inifile/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if { ![package vsatisfies [package provide Tcl] 8.2] } { return } 2 | package ifneeded inifile 0.2.3 [list source [file join $dir ini.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/interp/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.3]} return 2 | package ifneeded interp 0.1.1 [list source [file join $dir interp.tcl]] 3 | package ifneeded interp::delegate::proc 0.2 [list source [file join $dir deleg_proc.tcl]] 4 | package ifneeded interp::delegate::method 0.2 [list source [file join $dir deleg_method.tcl]] 5 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/irc/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # pkgIndex.tcl -*- tcl -*- 2 | # $Id: pkgIndex.tcl,v 1.10 2008/08/05 20:40:04 andreas_kupries Exp $ 3 | if { ![package vsatisfies [package provide Tcl] 8.3] } { 4 | # PRAGMA: returnok 5 | return 6 | } 7 | package ifneeded irc 0.6.1 [list source [file join $dir irc.tcl]] 8 | package ifneeded picoirc 0.5.1 [list source [file join $dir picoirc.tcl]] 9 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/javascript/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | 3 | if {![package vsatisfies [package provide Tcl] 8]} {return} 4 | package ifneeded javascript 1.0.2 [list source [file join $dir javascript.tcl]] 5 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/jpeg/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded jpeg 0.3.5 [list source [file join $dir jpeg.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/json/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | 3 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 4 | package ifneeded json 1.1.1 [list source [file join $dir json.tcl]] 5 | 6 | if {![package vsatisfies [package provide Tcl] 8.5]} {return} 7 | package ifneeded json::write 1 [list source [file join $dir json_write.tcl]] 8 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/ldap/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | 3 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 4 | package ifneeded ldap 1.8 [list source [file join $dir ldap.tcl]] 5 | 6 | # the OO level wrapper for ldap 7 | package ifneeded ldapx 1.0 [list source [file join $dir ldapx.tcl]] 8 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/log/msgs/en.msg: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | package require msgcat 3 | namespace import ::msgcat::* 4 | 5 | mcset en "Unknown argument: \"%s\" :\nUsage: %s" "Unknown argument: \"%s\" :\nUsage: %s" 6 | mcset en "could not find appender '%s'" "could not find appender '%s'" 7 | mcset en "need to specify -appender" "need to specify -appender" 8 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/log/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8]} {return} 2 | package ifneeded log 1.3 [list source [file join $dir log.tcl]] 3 | 4 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 5 | package ifneeded logger 0.9 [list source [file join $dir logger.tcl]] 6 | package ifneeded logger::appender 1.3 [list source [file join $dir loggerAppender.tcl]] 7 | 8 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 9 | package ifneeded logger::utils 1.3 [list source [file join $dir loggerUtils.tcl]] 10 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/map/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded map::slippy 0.3 [list source [file join $dir map_slippy.tcl]] 3 | package ifneeded map::slippy::fetcher 0.2 [list source [file join $dir map_slippy_fetcher.tcl]] 4 | package ifneeded map::slippy::cache 0.2 [list source [file join $dir map_slippy_cache.tcl]] 5 | 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/mapproj/mapproj.tcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/main/resources/tcl/pkg/tcllib/library/mapproj/mapproj.tcl -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/mapproj/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded mapproj 1.0 [list source [file join $dir mapproj.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/math/bigfloat.tcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/main/resources/tcl/pkg/tcllib/library/math/bigfloat.tcl -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/math/bigfloat2.tcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/main/resources/tcl/pkg/tcllib/library/math/bigfloat2.tcl -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/math/math.tcl: -------------------------------------------------------------------------------- 1 | # math.tcl -- 2 | # 3 | # Main 'package provide' script for the package 'math'. 4 | # 5 | # Copyright (c) 1998-2000 by Ajuba Solutions. 6 | # Copyright (c) 2002 by Kevin B. Kenny. All rights reserved. 7 | # 8 | # See the file "license.terms" for information on usage and redistribution 9 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 10 | # 11 | # RCS: @(#) $Id: math.tcl,v 1.23 2009/12/04 17:37:47 andreas_kupries Exp $ 12 | 13 | package require Tcl 8.2 ;# uses [lindex $l end-$integer] 14 | 15 | # @mdgen OWNER: tclIndex 16 | # @mdgen OWNER: misc.tcl 17 | # @mdgen OWNER: combinatorics.tcl 18 | 19 | namespace eval ::math { 20 | 21 | variable version 1.2.5 22 | 23 | # misc.tcl 24 | 25 | namespace export cov fibonacci integrate 26 | namespace export max mean min 27 | namespace export product random sigma 28 | namespace export stats sum 29 | namespace export expectDouble expectInteger 30 | 31 | # combinatorics.tcl 32 | 33 | namespace export ln_Gamma factorial choose 34 | namespace export Beta 35 | 36 | # Set up for auto-loading 37 | 38 | if { ![interp issafe {}]} { 39 | variable home [file join [pwd] [file dirname [info script]]] 40 | if {[lsearch -exact $::auto_path $home] == -1} { 41 | lappend ::auto_path $home 42 | } 43 | } else { 44 | source [file join [file dirname [info script]] misc.tcl] 45 | source [file join [file dirname [info script]] combinatorics.tcl] 46 | } 47 | 48 | package provide [namespace tail [namespace current]] $version 49 | } 50 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/md4/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # This package has been tested with tcl 8.2.3 and above. 2 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 3 | package ifneeded md4 1.0.5 [list source [file join $dir md4.tcl]] 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/md5/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded md5 2.0.7 [list source [file join $dir md5x.tcl]] 3 | package ifneeded md5 1.4.4 [list source [file join $dir md5.tcl]] 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/md5crypt/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # package index for md5crypt 2 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 3 | package ifneeded md5crypt 1.1.0 [list source [file join $dir md5crypt.tcl]] 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/mime/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 2 | package ifneeded mime 1.5.4 [list source [file join $dir mime.tcl]] 3 | package ifneeded smtp 1.4.5 [list source [file join $dir smtp.tcl]] 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/multiplexer/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if { ![package vsatisfies [package provide Tcl] 8.2] } { return } 12 | package ifneeded multiplexer 0.2 [list source [file join $dir multiplexer.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/ncgi/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded ncgi 1.3.2 [list source [file join $dir ncgi.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/nmea/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded nmea 1.0.0 [list source [file join $dir nmea.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/nns/common.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # ### ### ### ######### ######### ######### 3 | ## Name service - Common/shared information. 4 | 5 | # ### ### ### ######### ######### ######### 6 | ## Requirements 7 | 8 | namespace eval ::nameserv::common {} 9 | 10 | # ### ### ### ######### ######### ######### 11 | ## API 12 | 13 | proc ::nameserv::common::port {} { 14 | variable port 15 | return $port 16 | } 17 | 18 | namespace eval ::nameserv::common { 19 | # Derivation of the standard port number for this service. 20 | 21 | # nameserv::server 22 | # -> nameservserver / remove ':' 23 | # -> 62637378737837 / phonecode 24 | # -> 38573 / mod 65536 25 | 26 | variable port 38573 27 | 28 | # The modulo operation is required because IP port numbers are 29 | # restricted to unsigned short (16 bit), i.e. 1 ... 65535. 30 | } 31 | 32 | # ### ### ### ######### ######### ######### 33 | ## Ready 34 | 35 | package provide nameserv::common 0.1 36 | 37 | ## 38 | # ### ### ### ######### ######### ######### 39 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/nns/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8]} {return} 2 | package ifneeded nameserv::common 0.1 [list source [file join $dir common.tcl]] 3 | 4 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 5 | package ifneeded nameserv 0.4.2 [list source [file join $dir nns.tcl]] 6 | package ifneeded nameserv::server 0.3.2 [list source [file join $dir server.tcl]] 7 | package ifneeded nameserv::auto 0.3 [list source [file join $dir nns_auto.tcl]] 8 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/nntp/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded nntp 0.2.1 [list source [file join $dir nntp.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/ntp/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded time 1.2.1 [list source [file join $dir time.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/otp/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # pkgIndex.tcl -*- tcl -*- 2 | if {![package vsatisfies [package provide Tcl] 8.2]} { return } 3 | package ifneeded otp 1.0.0 [list source [file join $dir otp.tcl]] 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/page/plugins/config_peg.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- $Id: config_peg.tcl,v 1.2 2005/09/28 06:16:38 andreas_kupries Exp $ 2 | 3 | package provide page::config::peg 0.1 4 | 5 | proc page_cdefinition {} { 6 | return { 7 | --reset 8 | --append 9 | --reader peg 10 | --transform reachable 11 | --transform realizable 12 | --writer me 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/pluginmgr/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded pluginmgr 0.3 [list source [file join $dir pluginmgr.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/png/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded png 0.1.2 [list source [file join $dir png.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/pop3/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded pop3 1.8 [list source [file join $dir pop3.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/pop3d/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded pop3d::udb 1.1 [list source [file join $dir pop3d_udb.tcl]] 13 | 14 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 15 | package ifneeded pop3d 1.1.0 [list source [file join $dir pop3d.tcl]] 16 | package ifneeded pop3d::dbox 1.0.2 [list source [file join $dir pop3d_dbox.tcl]] 17 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/profiler/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 2 | package ifneeded profiler 0.3 [list source [file join $dir profiler.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/rc4/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # pkgIndex.tcl - 2 | # 3 | # RC4 package index file 4 | # 5 | # This package has been tested with tcl 8.2.3 and above. 6 | # 7 | # $Id: pkgIndex.tcl,v 1.4 2005/12/20 16:19:38 patthoyts Exp $ 8 | 9 | if {![package vsatisfies [package provide Tcl] 8.2]} { 10 | # PRAGMA: returnok 11 | return 12 | } 13 | package ifneeded rc4 1.1.0 [list source [file join $dir rc4.tcl]] 14 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/rcs/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded rcs 0.1 [list source [file join $dir rcs.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/report/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded report 0.3.1 [list source [file join $dir report.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/ripemd/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # pkgIndex.tcl - 2 | # 3 | # RIPEMD package index file 4 | # 5 | # This package has been tested with tcl 8.2.3 and above. 6 | # 7 | # $Id: pkgIndex.tcl,v 1.6 2009/05/07 01:12:59 patthoyts Exp $ 8 | 9 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 10 | package ifneeded ripemd128 1.0.4 [list source [file join $dir ripemd128.tcl]] 11 | package ifneeded ripemd160 1.0.4 [list source [file join $dir ripemd160.tcl]] 12 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/sasl/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # pkgIndex.tcl -*- tcl -*- 2 | # Copyright (C) 2005 Pat Thoyts 3 | # $Id: pkgIndex.tcl,v 1.11 2008/01/29 00:51:39 patthoyts Exp $ 4 | if {![package vsatisfies [package provide Tcl] 8.2]} { 5 | # PRAGMA: returnok 6 | return 7 | } 8 | package ifneeded SASL 1.3.2 [list source [file join $dir sasl.tcl]] 9 | package ifneeded SASL::NTLM 1.1.1 [list source [file join $dir ntlm.tcl]] 10 | package ifneeded SASL::XGoogleToken 1.0.1 [list source [file join $dir gtoken.tcl]] 11 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/sha1/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded sha256 1.0.3 [list source [file join $dir sha256.tcl]] 13 | package ifneeded sha1 2.0.3 [list source [file join $dir sha1.tcl]] 14 | package ifneeded sha1 1.1.0 [list source [file join $dir sha1v1.tcl]] 15 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/simulation/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | package ifneeded simulation::random 0.1 [list source [file join $dir random.tcl]] 2 | package ifneeded simulation::montecarlo 0.1 [list source [file join $dir montecarlo.tcl]] 3 | package ifneeded simulation::annealing 0.2 [list source [file join $dir annealing.tcl]] 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/smtpd/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 12 | package ifneeded smtpd 1.4.0 [list source [file join $dir smtpd.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/snit/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {[package vsatisfies [package provide Tcl] 8.5]} { 2 | package ifneeded snit 2.3.2 \ 3 | [list source [file join $dir snit2.tcl]] 4 | } 5 | 6 | package ifneeded snit 1.4.2 [list source [file join $dir snit.tcl]] 7 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/snit/snit.tcl: -------------------------------------------------------------------------------- 1 | #----------------------------------------------------------------------- 2 | # TITLE: 3 | # snit.tcl 4 | # 5 | # AUTHOR: 6 | # Will Duquette 7 | # 8 | # DESCRIPTION: 9 | # Snit's Not Incr Tcl, a simple object system in Pure Tcl. 10 | # 11 | # Snit 1.x Loader 12 | # 13 | # Copyright (C) 2003-2006 by William H. Duquette 14 | # This code is licensed as described in license.txt. 15 | # 16 | #----------------------------------------------------------------------- 17 | 18 | package require Tcl 8.3 19 | 20 | # Define the snit namespace and save the library directory 21 | 22 | namespace eval ::snit:: { 23 | set library [file dirname [info script]] 24 | } 25 | 26 | # Select the implementation based on the version of the Tcl core 27 | # executing this code. For 8.3 we use a backport emulating various 28 | # 8.4 features 29 | 30 | if {[package vsatisfies [package provide Tcl] 8.4]} { 31 | source [file join $::snit::library main1.tcl] 32 | } else { 33 | source [file join $::snit::library main1_83.tcl] 34 | source [file join $::snit::library snit_tcl83_utils.tcl] 35 | } 36 | 37 | # Load the library of Snit validation types. 38 | 39 | source [file join $::snit::library validate.tcl] 40 | 41 | package provide snit 1.4.2 42 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/snit/snit2.tcl: -------------------------------------------------------------------------------- 1 | #----------------------------------------------------------------------- 2 | # TITLE: 3 | # snit2.tcl 4 | # 5 | # AUTHOR: 6 | # Will Duquette 7 | # 8 | # DESCRIPTION: 9 | # Snit's Not Incr Tcl, a simple object system in Pure Tcl. 10 | # 11 | # Snit 2.x Loader 12 | # 13 | # Copyright (C) 2003-2006 by William H. Duquette 14 | # This code is licensed as described in license.txt. 15 | # 16 | #----------------------------------------------------------------------- 17 | 18 | package require Tcl 8.5 19 | 20 | # Define the snit namespace and save the library directory 21 | 22 | namespace eval ::snit:: { 23 | set library [file dirname [info script]] 24 | } 25 | 26 | # Load the kernel. 27 | source [file join $::snit::library main2.tcl] 28 | 29 | # Load the library of Snit validation types. 30 | source [file join $::snit::library validate.tcl] 31 | 32 | package provide snit 2.3.2 33 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/soundex/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 12 | package ifneeded soundex 1.0 [list source [file join $dir soundex.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/stooop/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # @mdgen EXCLUDE: xifo.tcl 2 | # @mdgen EXCLUDE: mkpkgidx.tcl 3 | # 4 | # Copyright (c) 2001 by Jean-Luc Fontaine . 5 | # This code may be distributed under the same terms as Tcl. 6 | # 7 | # $Id: pkgIndex.tcl,v 1.10 2007/03/23 17:31:51 andreas_kupries Exp $ 8 | 9 | # Since stooop redefines the proc command and the default package facility will 10 | # only load the stooop package at the first unknown command, proc being 11 | # obviously known by default, forcing the loading of stooop is mandatory prior 12 | # to the first proc declaration. 13 | 14 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 15 | package ifneeded stooop 4.4.1 [list source [file join $dir stooop.tcl]] 16 | 17 | # the following package index instruction was generated using: 18 | # "tclsh mkpkgidx.tcl switched switched.tcl" 19 | # (comment out the following line if you do not want to use the switched class 20 | # as a package) 21 | 22 | package ifneeded switched 2.2.1 [list source [file join $dir switched.tcl]] 23 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/stringprep/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | package ifneeded stringprep 1.0.1 [list source [file join $dir stringprep.tcl]] 2 | package ifneeded stringprep::data 1.0.1 [list source [file join $dir stringprep_data.tcl]] 3 | package ifneeded unicode 1.0.0 [list source [file join $dir unicode.tcl]] 4 | package ifneeded unicode::data 1.0.0 [list source [file join $dir unicode_data.tcl]] 5 | 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/struct/struct.tcl: -------------------------------------------------------------------------------- 1 | package require Tcl 8.2 2 | package require struct::graph 2.0 3 | package require struct::queue 1.2.1 4 | package require struct::stack 1.2.1 5 | package require struct::tree 2.0 6 | package require struct::matrix 2.0 7 | package require struct::pool 1.2.1 8 | package require struct::record 1.2.1 9 | package require struct::list 1.4 10 | package require struct::set 2.1 11 | package require struct::prioqueue 1.3 12 | package require struct::skiplist 1.3 13 | 14 | namespace eval ::struct { 15 | namespace export * 16 | } 17 | 18 | package provide struct 2.1 19 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/struct/struct1.tcl: -------------------------------------------------------------------------------- 1 | package require Tcl 8.2 2 | package require struct::graph 1.2.1 3 | package require struct::queue 1.2.1 4 | package require struct::stack 1.2.1 5 | package require struct::tree 1.2.1 6 | package require struct::matrix 1.2.1 7 | package require struct::pool 1.2.1 8 | package require struct::record 1.2.1 9 | package require struct::list 1.4 10 | package require struct::prioqueue 1.3 11 | package require struct::skiplist 1.3 12 | 13 | namespace eval ::struct { 14 | namespace export * 15 | } 16 | 17 | package provide struct 1.4 18 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/tar/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} { 2 | # PRAGMA: returnok 3 | return 4 | } 5 | package ifneeded tar 0.7 [list source [file join $dir tar.tcl]] 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/tepam/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.3]} {return} 2 | package ifneeded tepam 0.2.0 [list source [file join $dir tepam.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/term/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} return 2 | package ifneeded term 0.1 [list source [file join $dir term.tcl]] 3 | package ifneeded term::ansi::code 0.1 [list source [file join $dir ansi/code.tcl]] 4 | package ifneeded term::ansi::code::attr 0.1 [list source [file join $dir ansi/code/attr.tcl]] 5 | package ifneeded term::ansi::code::ctrl 0.1.1 [list source [file join $dir ansi/code/ctrl.tcl]] 6 | package ifneeded term::ansi::code::macros 0.1 [list source [file join $dir ansi/code/macros.tcl]] 7 | package ifneeded term::ansi::ctrl::unix 0.1 [list source [file join $dir ansi/ctrlunix.tcl]] 8 | package ifneeded term::ansi::send 0.1 [list source [file join $dir ansi/send.tcl]] 9 | package ifneeded term::interact::menu 0.1 [list source [file join $dir imenu.tcl]] 10 | package ifneeded term::interact::pager 0.1 [list source [file join $dir ipager.tcl]] 11 | package ifneeded term::receive 0.1 [list source [file join $dir receive.tcl]] 12 | package ifneeded term::receive::bind 0.1 [list source [file join $dir bind.tcl]] 13 | package ifneeded term::send 0.1 [list source [file join $dir send.tcl]] 14 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/term/receive.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # ### ### ### ######### ######### ######### 3 | ## Terminal packages - Generic receiver operations 4 | 5 | # ### ### ### ######### ######### ######### 6 | ## Requirements 7 | 8 | namespace eval ::term::receive {} 9 | 10 | # ### ### ### ######### ######### ######### 11 | ## API. Read character from specific channel, 12 | ## or default (stdin). Processing of 13 | ## character sequences. 14 | 15 | proc ::term::receive::getch {{chan stdin}} { 16 | return [read $chan 1] 17 | } 18 | 19 | proc ::term::receive::listen {cmd {chan stdin}} { 20 | fconfigure $chan -blocking 0 21 | fileevent $chan readable \ 22 | [list ::term::receive::Foreach $chan $cmd] 23 | return 24 | } 25 | 26 | proc ::term::receive::unlisten {{chan stdin}} { 27 | fileevent $chan readable {} 28 | return 29 | } 30 | 31 | # ### ### ### ######### ######### ######### 32 | ## Internals 33 | 34 | proc ::term::receive::Foreach {chan cmd} { 35 | set string [read $chan] 36 | if {[string length $string]} { 37 | #puts stderr "F($string)" 38 | uplevel #0 [linsert $cmd end process $string] 39 | } 40 | if {[eof $chan]} { 41 | close $chan 42 | uplevel #0 [linsert $cmd end eof] 43 | } 44 | return 45 | } 46 | 47 | # ### ### ### ######### ######### ######### 48 | ## Initialization 49 | 50 | namespace eval ::term::receive { 51 | namespace export getch listen 52 | } 53 | 54 | # ### ### ### ######### ######### ######### 55 | ## Ready 56 | 57 | package provide term::receive 0.1 58 | 59 | ## 60 | # ### ### ### ######### ######### ######### 61 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/term/send.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # ### ### ### ######### ######### ######### 3 | ## Terminal packages - Generic sender operations 4 | 5 | # ### ### ### ######### ######### ######### 6 | ## Requirements 7 | 8 | namespace eval ::term::send {} 9 | 10 | # ### ### ### ######### ######### ######### 11 | ## API. Write to channel, or default (stdout) 12 | 13 | proc ::term::send::wr {str} { 14 | wrch stdout $str 15 | return 16 | } 17 | 18 | proc ::term::send::wrch {ch str} { 19 | puts -nonewline $ch $str 20 | flush $ch 21 | return 22 | } 23 | 24 | namespace eval ::term::send { 25 | namespace export wr wrch 26 | } 27 | 28 | # ### ### ### ######### ######### ######### 29 | ## Ready 30 | 31 | package provide term::send 0.1 32 | 33 | ## 34 | # ### ### ### ######### ######### ######### 35 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/term/term.tcl: -------------------------------------------------------------------------------- 1 | # -*- tcl -*- 2 | # ### ### ### ######### ######### ######### 3 | ## Terminal packages - Main :: Generic operations 4 | 5 | # Currently we have no generica at all. We make the package, but it 6 | # provides nothing for now. 7 | 8 | # ### ### ### ######### ######### ######### 9 | ## Requirements 10 | 11 | namespace eval ::term {} 12 | 13 | # ### ### ### ######### ######### ######### 14 | ## Ready 15 | 16 | package provide term 0.1 17 | 18 | ## 19 | # ### ### ### ######### ######### ######### 20 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/textutil/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} { 2 | # FRINK: nocheck 3 | return 4 | } 5 | package ifneeded textutil 0.7.1 [list source [file join $dir textutil.tcl]] 6 | package ifneeded textutil::adjust 0.7 [list source [file join $dir adjust.tcl]] 7 | package ifneeded textutil::split 0.7 [list source [file join $dir split.tcl]] 8 | package ifneeded textutil::trim 0.7 [list source [file join $dir trim.tcl]] 9 | package ifneeded textutil::tabify 0.7 [list source [file join $dir tabify.tcl]] 10 | package ifneeded textutil::repeat 0.7 [list source [file join $dir repeat.tcl]] 11 | package ifneeded textutil::string 0.7.1 [list source [file join $dir string.tcl]] 12 | package ifneeded textutil::expander 1.3.1 [list source [file join $dir expander.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/tie/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded tie 1.1 [list source [file join $dir tie.tcl]] 3 | package ifneeded tie::std::file 1.0.4 [list source [file join $dir tie_file.tcl]] 4 | package ifneeded tie::std::growfile 1.0 [list source [file join $dir tie_growfile.tcl]] 5 | package ifneeded tie::std::log 1.0 [list source [file join $dir tie_log.tcl]] 6 | package ifneeded tie::std::array 1.0 [list source [file join $dir tie_array.tcl]] 7 | package ifneeded tie::std::rarray 1.0 [list source [file join $dir tie_rarray.tcl]] 8 | package ifneeded tie::std::dsource 1.0 [list source [file join $dir tie_dsource.tcl]] 9 | 10 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/tie/tie_dsource.tcl: -------------------------------------------------------------------------------- 1 | # tie_dsource.tcl -- 2 | # 3 | # Data source: Data source object. I.e. here we implement a proxy. 4 | # 5 | # Copyright (c) 2004 Andreas Kupries 6 | # 7 | # See the file "license.terms" for information on usage and redistribution 8 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 9 | # 10 | # RCS: @(#) $Id: tie_dsource.tcl,v 1.3 2005/09/28 04:51:24 andreas_kupries Exp $ 11 | 12 | # ### ### ### ######### ######### ######### 13 | ## Requisites 14 | 15 | package require snit 16 | package require tie 17 | 18 | # ### ### ### ######### ######### ######### 19 | ## Implementation 20 | 21 | snit::type ::tie::std::dsource { 22 | 23 | # ### ### ### ######### ######### ######### 24 | ## Specials 25 | 26 | pragma -hastypemethods no 27 | pragma -hasinfo no 28 | 29 | # ### ### ### ######### ######### ######### 30 | ## API : Construction & Destruction 31 | 32 | constructor {args} { 33 | set delegate $args 34 | return 35 | } 36 | 37 | # ### ### ### ######### ######### ######### 38 | ## API : Data source methods 39 | 40 | delegate method * to delegate 41 | 42 | # ### ### ### ######### ######### ######### 43 | ## Internal : Instance data 44 | 45 | variable delegate ; # The object to delegate to. 46 | 47 | # ### ### ### ######### ######### ######### 48 | } 49 | 50 | # ### ### ### ######### ######### ######### 51 | ## Ready to go 52 | 53 | ::tie::register ::tie::std::dsource as dsource 54 | package provide tie::std::dsource 1.0 55 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/tiff/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 2 | package ifneeded tiff 0.2.1 [list source [file join $dir tiff.tcl]] 3 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/transfer/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} return 2 | package ifneeded transfer::copy 0.3 [list source [file join $dir copyops.tcl]] 3 | package ifneeded transfer::copy::queue 0.1 [list source [file join $dir tqueue.tcl]] 4 | package ifneeded transfer::data::source 0.2 [list source [file join $dir dsource.tcl]] 5 | package ifneeded transfer::data::destination 0.2 [list source [file join $dir ddest.tcl]] 6 | package ifneeded transfer::connect 0.2 [list source [file join $dir connect.tcl]] 7 | package ifneeded transfer::transmitter 0.2 [list source [file join $dir transmitter.tcl]] 8 | package ifneeded transfer::receiver 0.2 [list source [file join $dir receiver.tcl]] 9 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/treeql/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} { 2 | # PRAGMA: returnok 3 | return 4 | } 5 | package ifneeded treeql 1.3.1 [list source [file join $dir treeql.tcl]] 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/treeql/treeql.tcl: -------------------------------------------------------------------------------- 1 | # treeql.tcl 2 | # A generic tree query language in snit 3 | # 4 | # Copyright 2004 Colin McCormack. 5 | # You are permitted to use this code under the same license as tcl. 6 | # 7 | # 20040930 Colin McCormack - initial release to tcllib 8 | # 9 | # RCS: @(#) $Id: treeql.tcl,v 1.10 2006/09/19 23:36:18 andreas_kupries Exp $ 10 | 11 | package require Tcl 8.4 12 | 13 | # Select the implementation based on the version of the Tcl core 14 | # executing this code. For 8.5 we are using features like 15 | # word-expansion to simplify the various evaluations. 16 | 17 | set dir [file dirname [info script]] 18 | if {[package vsatisfies [package provide Tcl] 8.5]} { 19 | source [file join $dir treeql85.tcl] 20 | } else { 21 | source [file join $dir treeql84.tcl] 22 | } 23 | 24 | package provide treeql 1.3.1 25 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/uev/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded uevent 0.2 [list source [file join $dir uevent.tcl]] 3 | package ifneeded uevent::onidle 0.1 [list source [file join $dir uevent_onidle.tcl]] 4 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/uev/uevent_onidle.tcl: -------------------------------------------------------------------------------- 1 | ## -*- tcl -*- 2 | # ### ### ### ######### ######### ######### 3 | 4 | # ### ### ### ######### ######### ######### 5 | ## Requisites 6 | 7 | package require Tcl 8.4 ; # 8 | package require snit ; # 9 | 10 | # ### ### ### ######### ######### ######### 11 | ## 12 | 13 | snit::type uevent::onidle { 14 | # ### ### ### ######### ######### ######### 15 | ## API 16 | 17 | constructor {cmd} { 18 | set mycmd $cmd 19 | return 20 | } 21 | 22 | method request {} { 23 | if {$myhasrequest} return 24 | after idle [mymethod RunAction] 25 | set myhasrequest 1 26 | return 27 | } 28 | 29 | # ### ### ### ######### ######### ######### 30 | ## Internal commands 31 | 32 | method RunAction {} { 33 | set myhasrequest 0 34 | uplevel \#0 $mycmd 35 | return 36 | } 37 | 38 | # ### ### ### ######### ######### ######### 39 | ## State 40 | 41 | variable mycmd {} ; # Command prefix of the action to perform 42 | variable myhasrequest 0 ; # Boolean flag, set when the action has 43 | # ; # been requested 44 | 45 | # ### ### ### ######### ######### ######### 46 | } 47 | 48 | # ### ### ### ######### ######### ######### 49 | ## Ready 50 | 51 | package provide uevent::onidle 0.1 52 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/units/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | 3 | if {![package vsatisfies [package provide Tcl] 8.1]} {return} 4 | package ifneeded units 2.1.1 [list source [file join $dir units.tcl]] 5 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/uri/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.2]} { 2 | # FRINK: nocheck 3 | return 4 | } 5 | package ifneeded uri 1.2.1 [list source [file join $dir uri.tcl]] 6 | package ifneeded uri::urn 1.0.2 [list source [file join $dir urn-scheme.tcl]] 7 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/uuid/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # pkgIndex.tcl - 2 | # 3 | # uuid package index file 4 | # 5 | # $Id: pkgIndex.tcl,v 1.2 2005/09/30 05:36:39 andreas_kupries Exp $ 6 | 7 | if {![package vsatisfies [package provide Tcl] 8.2]} {return} 8 | package ifneeded uuid 1.0.1 [list source [file join $dir uuid.tcl]] 9 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/wip/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | if {![package vsatisfies [package provide Tcl] 8.4]} {return} 2 | package ifneeded wip 1.2 [list source [file join $dir wip.tcl]] 3 | 4 | if {![package vsatisfies [package provide Tcl] 8.5]} {return} 5 | package ifneeded wip 2.2 [list source [file join $dir wip2.tcl]] 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/yaml/pkgIndex.tcl: -------------------------------------------------------------------------------- 1 | # Tcl package index file, version 1.1 2 | # This file is generated by the "pkg_mkIndex" command 3 | # and sourced either when an application starts up or 4 | # by a "package unknown" script. It invokes the 5 | # "package ifneeded" command to set up package-related 6 | # information so that packages will be loaded automatically 7 | # in response to "package require" commands. When this 8 | # script is sourced, the variable $dir must contain the 9 | # full path name of this file's directory. 10 | 11 | package ifneeded yaml 0.3.5 [list source [file join $dir yaml.tcl]] 12 | package ifneeded huddle 0.1.5 [list source [file join $dir huddle.tcl]] 13 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tcllib/library/yaml/yaml.tcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/main/resources/tcl/pkg/tcllib/library/yaml/yaml.tcl -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tjc/library/tjc.tjc: -------------------------------------------------------------------------------- 1 | PACKAGE tjc 2 | SOURCE ./src/main/resources/tcl/pkg/tjc/library/*.tcl 3 | INIT_SOURCE tjc.tcl 4 | OPTIONS +O 5 | 6 | -------------------------------------------------------------------------------- /src/main/resources/tcl/pkg/tjc/library/util.tcl: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2005 Advanced Micro Devices, Inc. 3 | # 4 | # See the file "license.amd" for information on usage and 5 | # redistribution of this file, and for a DISCLAIMER OF ALL 6 | # WARRANTIES. 7 | # 8 | # RCS: @(#) $Id: util.tcl,v 1.2 2005/12/28 02:36:38 mdejong Exp $ 9 | # 10 | # 11 | 12 | # Utility methods used by various TJC modules. 13 | 14 | # Save data into a file with LF translation. 15 | 16 | proc tjc_util_file_saveas { filename data } { 17 | set fd [open $filename w] 18 | fconfigure $fd -translation lf 19 | puts $fd $data 20 | close $fd 21 | return 22 | } 23 | 24 | proc tjc_util_file_read { filename } { 25 | set fd [open $filename r] 26 | set data [read $fd] 27 | close $fd 28 | return $data 29 | } 30 | 31 | -------------------------------------------------------------------------------- /src/main/scripts/echopath: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # msys converts unix-style pathnames to windows-style pathnames when calling 4 | # windows programs. this allows 'jtcl' to convert the installation 5 | # directory into a window pathname 6 | 7 | cmd /q/c call echo $* 8 | -------------------------------------------------------------------------------- /src/main/scripts/jtcl.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem jtcl [ script [ arg ... ] ] 4 | rem 5 | rem optional environment variables: 6 | rem 7 | rem JAVA_HOME - directory of JDK/JRE, if not set then 'java' must be found on PATH 8 | rem CLASSPATH - colon separated list of additional jar files & class directories 9 | rem JAVA_OPTS - list of JVM options, e.g. "-Xmx256m -Dfoo=bar" 10 | rem TCLLIBPATH - space separated list of Tcl library directories 11 | rem 12 | 13 | 14 | if "%OS%" == "Windows_NT" setlocal 15 | 16 | set jtclver=${project.version} 17 | set jtclmain=tcl.lang.Shell 18 | 19 | set dir=%~dp0 20 | 21 | set cp="%dir%\jtcl-%jtclver%.jar;%CLASSPATH%" 22 | 23 | if "%TCLLIBPATH%" == "" goto nullTcllib 24 | set tcllibpathvar=-DTCLLIBPATH="%TCLLIBPATH%" 25 | :nullTcllib 26 | 27 | java %tcllibpathvar% -cp %cp% %JAVA_OPTS% %jtclmain% %* 28 | 29 | -------------------------------------------------------------------------------- /src/main/scripts/jtclni.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem jtcl [ script [ arg ... ] ] 4 | rem 5 | rem invokes the non-interactive shell, no command prompts are printed 6 | rem optional environment variables: 7 | rem 8 | rem JAVA_HOME - directory of JDK/JRE, if not set then 'java' must be found on PATH 9 | rem CLASSPATH - colon separated list of additional jar files & class directories 10 | rem JAVA_OPTS - list of JVM options, e.g. "-Xmx256m -Dfoo=bar" 11 | rem TCLLIBPATH - space separated list of Tcl library directories 12 | rem 13 | 14 | 15 | if "%OS%" == "Windows_NT" setlocal 16 | 17 | set jtclver=${project.version} 18 | set jtclmain=tcl.lang.NonInteractiveShell 19 | 20 | set dir=%~dp0 21 | 22 | set cp="%dir%\jtcl-%jtclver%.jar;%CLASSPATH%" 23 | 24 | if "%TCLLIBPATH%" == "" goto nullTcllib 25 | set tcllibpathvar=-DTCLLIBPATH="%TCLLIBPATH%" 26 | :nullTcllib 27 | 28 | java %tcllibpathvar% -cp %cp% %JAVA_OPTS% %jtclmain% %* 29 | 30 | -------------------------------------------------------------------------------- /src/main/scripts/tjc.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem tjc [ script [ arg ... ] ] 4 | rem 5 | rem optional environment variables: 6 | rem 7 | rem JAVA_HOME - directory of JDK/JRE, if not set then 'java' must be found on PATH 8 | rem CLASSPATH - colon separated list of additional jar files & class directories 9 | rem JAVA_OPTS - list of JVM options, e.g. "-Xmx256m -Dfoo=bar" 10 | rem TCLLIBPATH - space separated list of Tcl library directories 11 | rem 12 | 13 | 14 | if "%OS%" == "Windows_NT" setlocal 15 | 16 | set jtclver=${project.version} 17 | set jtclmain=tcl.pkg.tjc.TJCShell 18 | 19 | set dir=%~dp0 20 | 21 | set cp="%dir%\jtcl-%jtclver%.jar;%CLASSPATH%" 22 | 23 | if "%TCLLIBPATH%" == "" goto nullTcllib 24 | set tcllibpathvar=-DTCLLIBPATH="%TCLLIBPATH%" 25 | :nullTcllib 26 | 27 | java %tcllibpathvar% -cp %cp% %JAVA_OPTS% %jtclmain% %* 28 | 29 | -------------------------------------------------------------------------------- /src/site/apt/docs/jtcllib/index.apt: -------------------------------------------------------------------------------- 1 | ---- 2 | jtcllib 3 | ---- 4 | 5 | jtcllib is a library modules specifically for JTcl using Java classes. 6 | 7 | * {{{./fleet.html}fleet 0.1}} Simple concurrent processing 8 | 9 | * {{{./hyde.html}hyde 1.6}} Compile and execute Java code from JTcl 10 | 11 | * {{{./ziplib.html}ziplib 1.0}} Read and write ZIP and JAR files. 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/site/apt/projects.apt: -------------------------------------------------------------------------------- 1 | ---- 2 | Projects Using JTcl 3 | ---- 4 | 5 | Projects using JTcl 6 | 7 | * {{{http://swank.kenai.com}Swank}} is a Tk compatible GUI widget set using Java Swing components. 8 | Many existing Tk applications can be run using Swank with little or no modifications. 9 | 10 | 11 | [] 12 | 13 | * {{{http://aejaks.sf.net}\xC6jaks}} is a server-side web development toolkit using Tk-like 14 | components. Applications developed in \xC6jaks are written in Tcl and require no HTML, Javascript or CSS. 15 | 16 | [] 17 | 18 | 19 | * {{{http://testcl.com/}TesTcl}} is a Tcl library for unit testing iRules which are used when 20 | configuring F5 BigIP devices. 21 | 22 | [] 23 | 24 | -------------------------------------------------------------------------------- /src/site/resources/docs/itcl3.3/index.html: -------------------------------------------------------------------------------- 1 | 2 | \[incr Tcl\] 3.3 3 | 4 | 5 |

[incr Tcl] 3.3

6 |

[incr Tcl] was written by Michael McLennan and ported to Jacl/JTcl by Mo DeJong. 7 |

Overview

8 | 9 |
  • itcl 10 | 11 |

    Commands and variables

    12 | 13 |
  • body 14 |
  • class 15 |
  • code 16 |
  • configbody 17 |
  • delete 18 |
  • ensemble 19 |
  • find 20 |
  • is 21 |
  • itclvars 22 |
  • local 23 |
  • scope 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaEventParameters.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Java Event Parameters 4 | 5 | 6 | 7 |
    8 |

    9 | Java Event Parameters 10 |

    11 | 12 |
    13 | 14 | 15 |
    16 | 17 |

    18 | About: 19 |

    20 | 21 |
    22 | 23 | An event callback script can query the event parameters using the 24 | java::event command. Usually, there is only one event parameter 25 | -- the event object, which stores various information about the 26 | event as its properties. For example, when the mouseClicked 27 | event occurs inside an AWT Button, the x and y properties 28 | of the event object contains the location of the mouse cursor. The 29 | following script prints out the location of the mouse cursor: 30 |

    31 | 32 |

    33 | 34 | 35 |
    36 | 37 |

    38 | Example: 39 |

    40 | 41 |
    42 | 43 | 44 |
    45 | package require java
    46 | 
    47 | set f [java::new java.awt.Frame]
    48 | $f setSize 100 100
    49 | $f show
    50 | 
    51 | java::bind $f mouseClicked {
    52 |     puts "mouse click at ([java::event x],[java::event y])"
    53 | }
    54 | 
    55 |
    56 | 57 |

    58 | 59 |

    60 | 61 |
    62 | 63 |
    64 | Copyright © 1997-1998 Sun Microsystems, Inc.
    65 | 
    66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaGetInterpCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The java::getinterp Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The java::getinterp Command 11 |

    12 | 13 |
    14 | 15 |
    16 | 17 |

    18 | Usage: 19 |

    20 | 21 |
    java::getinterp 22 | 23 |

    24 | 25 | 26 | The java::getinterp command takes no arguments and returns a handle 27 | to the tcl.lang.Interp Java object that represents the current 28 | interpreter. This command is typically used to get a Java object handle 29 | that will be passed to a Java method. 30 | 31 |

    32 | 33 |

    34 | 35 |
    36 | Copyright © 1997-1998 Sun Microsystems, Inc.
    37 | 
    38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaInstanceOfCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The java::instanceof Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The java::instanceof Command 11 |

    12 | 13 |
    14 | 15 | 16 |
    17 | 18 |

    19 | Usage: 20 |

    21 | 22 |
    java::instanceof javaObj type 23 | 24 |

    25 | The java::instanceof command is used to determine if a Java 26 | object is of a given type. The javaObj argument specifies an 27 | object handle. The type argument specifies an 28 | interface or class name. If the type argument is 29 | a class name, java::instanceof will return 1 if the javaObj 30 | argument is an instance of type or an instance of a subclass 31 | of type. If the type argument is an interface name, 32 | java::instanceof returns 1 if the 33 | javaObj argument implements the interface. Otherwise, 34 | java::instanceof returns 0. 35 | 36 |

    37 | 38 |

    39 | 40 |
    41 | 42 |

    43 | Examples: 44 |

    45 | 46 |
    47 | 48 | This examples shows using the java::instanceof command to 49 | query the inheritance relationship of a java.lang.String 50 | object. 51 | 52 |

    53 | 54 | 55 |

    56 | % set obj [java::new String mystring]
    57 | % java::instanceof $obj Object
    58 | 1
    59 | 
    60 | 61 | 62 |
    63 | 64 |
    65 | Copyright © 1997-1998 Sun Microsystems, Inc.
    66 | 
    67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaIsNullCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The java::isnull Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The java::isnull Command 11 |

    12 | 13 |
    14 | 15 |
    16 | 17 |

    18 | Usage: 19 |

    20 | 21 |
    java::isnull javaObj 22 | 23 |

    24 | 25 | The java::isnull command is used to tell if a Java 26 | reference has the null value. The javaObj argument specifies an 27 | object handle. If the object has the null value, java::isnull 28 | will return 1. If the object is a Java object then java::isnull 29 | will return 0. If the object is not a valid Java object but rather 30 | a standard Tcl string, java::isnull will return an error 31 | stating that the argument was not a Java object handle. 32 | 33 |

    34 | 35 |

    36 | 37 |
    38 | Copyright © 1997-1998 Sun Microsystems, Inc.
    39 | 
    40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaLockCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The java::lock Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The java::lock Command 11 |

    12 | 13 |
    14 | 15 |
    16 | 17 |

    18 | Usage: 19 |

    20 | 21 |
    java::lock javaObj 22 | 23 |

    24 | 25 | The java::lock command prevents the Java object, javaObj, 26 | from getting garbage collected. A Tcl variable that stores a Java 27 | object handle has an internal rep that holds a reference to the Java object. 28 | If the Tcl variable's internal rep is changed (e.g. to a Tcl List), the 29 | reference to the Java object is removed, and the Java object could be 30 | garbage collected. The java::lock command maintains a copy of 31 | javaObj's internal rep, so the Java object will be not be 32 | garbage collected. Multiple locks can be placed on the same Java 33 | object. If javaObject is not a valid reference to a Java 34 | object, a Tcl error is generated. It is important to note that use 35 | of the java::lock command is optional, it is not required. A 36 | Java object handle that is stored in a Tcl variable 37 | will not be garbage collected unless the Tcl variable is unset, or 38 | the internal representation is changed. 39 | 40 |

    41 | 42 |

    43 | 44 |
    45 | Copyright © 1997-1998 Sun Microsystems, Inc.
    46 | 
    47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaNullCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The java::null Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The java::null Command 11 |

    12 | 13 |
    14 | 15 |
    16 | 17 |

    18 | Usage: 19 |

    20 | 21 |
    java::null 22 | 23 |

    24 | 25 | The java::null command takes no arguments and returns an object 26 | handle that represents the "null" value in Java. 27 | This command is typically used to get a "null" handle that 28 | will be passed to a Java method. The exact form of the return value 29 | of java::null is not specified and is likely to change 30 | but this should be of little concern as you should not need to know 31 | what the string representation of the "null" Java object is. 32 | If you ever need to test a handle to see if reffers to the "null" 33 | Java object you should use 34 | the java::isnull command. 35 | 36 |

    37 | 38 |

    39 | 40 |
    41 | Copyright © 1997-1998 Sun Microsystems, Inc.
    42 | 
    43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaObjCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The javaObj Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The javaObj Command 11 |

    12 | 13 |
    14 | 15 |
    16 | 17 |

    18 | Usage: 19 |

    20 | 21 |
    javaObj ?-noconvert? signature ?arg arg ...? 22 | 23 |

    24 | 25 | Each Java object handle is also the name of a Tcl command that can be 26 | used to invoke accessible methods of that object from Tcl. The 27 | signature argument specifies which instance method to invoke. 28 | The Signatures section covers the 29 | form of the signature argument in more detail. Additional 30 | parameters to an object command are converted to Java objects or 31 | primitive Java values and passed to the method. It is not 32 | possible to invoke static methods via a javaObj handle, 33 | use the java::call method instead. 34 | 35 |

    36 | 37 | The Conversions section describes the result 38 | and possible error conditions of the object command, including the 39 | effect of the optional -noconvert flag. 40 | 41 |

    42 | 43 |

    44 | 45 |
    46 | Copyright © 1997-1998 Sun Microsystems, Inc.
    47 | 
    48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaPropCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The java::prop Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The java::prop Command 11 |

    12 | 13 |
    14 | 15 |
    16 | 17 |

    18 | Usage: 19 |

    20 | 21 |
    java::prop ?-noconvert? javaObj property ?value property value ...? 22 | 23 |

    24 | 25 | The java::prop command is used to manipulate Java Bean 26 | properties from Tcl. The javaObj argument specifies an object 27 | handle. The property argument specifies a Java Bean property 28 | that has corresponding get and set methods. If an additional 29 | value parameter exists, then the property will be set to 30 | value, otherwise the current value of the property is returned. 31 | Multiple properties may be set via additional parameters by 32 | alternating properties and values. 33 | 34 |

    35 | 36 | The Conversions section describes the effect 37 | of the optional -noconvert flag on the result. The -noconvert 38 | flag can only be used when getting the value of a property. 39 | 40 |

    41 | 42 |
    43 | Copyright © 1997-1998 Sun Microsystems, Inc.
    44 | 
    45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaThrowCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The java::throw Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The java::throw Command 11 |

    12 | 13 |
    14 | 15 |
    16 | 17 |

    18 | Usage: 19 |

    20 | 21 |
    java::throw throwableObj 22 | 23 |

    24 | 25 | 26 | The java::throw command throws a Java exception. 27 | throwableObj must be a valid Java object handle and 28 | must be an instance of java.lang.Throwable. Internally, the 29 | java::throw command sets the errorCode global variable to 30 | a list whose first element is the string "JAVA" and whose second 31 | element is throwableObj. Then, it generates a Tcl error to cause 32 | the script to return abruptly. The effect of calling the 33 | java::throw command is exactly the same as calling a Java method 34 | which throws a Java exception. 35 | 36 |

    37 | 38 | 39 |

    40 | 41 |
    42 | 43 |

    44 | Example: 45 |

    46 | 47 |
    48 | 49 | The following code will raise a java.lang.ClassNotFoundException. 50 | 51 | 52 |
    53 | java::throw [java::new ClassNotFoundException "bad class foo"]
    54 | 
    55 |
    56 | 57 |
    58 | 59 |
    60 | Copyright © 1997-1998 Sun Microsystems, Inc.
    61 | 
    62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /src/site/resources/docs/java2.0.0/JavaUnlockCmd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The java::unlock Command 4 | 5 | 6 | 7 |
    8 | 9 |

    10 | The java::unlock Command 11 |

    12 | 13 |
    14 | 15 |
    16 | 17 |

    18 | Usage: 19 |

    20 | 21 |
    java::unlock javaObj 22 | 23 |

    24 | 25 | The java::unlock command removes a lock placed on 26 | javaObj by the java::lock command. 27 | Multiple locks are allowed on javaObj. 28 | The java::unlock removes one lock each 29 | time it is called. 30 | If the internal rep of the Tcl variable referenced by javaObj 31 | is zero after the lock is removed, the Java object could 32 | be garbage collected. If javaObj does not have an existing lock, 33 | a Tcl error is generated. 34 | 35 |

    36 | 37 | If the java::unlock command is called with the string "all" 38 | as the argument, each object that had been locked with the 39 | java::lock command will be unlocked. 40 | 41 |

    42 | 43 |

    44 | 45 |
    46 | Copyright © 1997-1998 Sun Microsystems, Inc.
    47 | 
    48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /src/site/resources/docs/jtcl-swank-paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/site/resources/docs/jtcl-swank-paper.pdf -------------------------------------------------------------------------------- /src/site/resources/docs/tcl8.4.19/html/TclCmd/cd.htm: -------------------------------------------------------------------------------- 1 | Built-In Commands - cd manual page 2 |

    NAME

    3 | cd - Change working directory 4 |

    SYNOPSIS

    5 | cd ?dirName?
    6 |

    DESCRIPTION

    7 | Change the current working directory to dirName, or to the 8 | home directory (as specified in the HOME environment variable) if 9 | dirName is not given. 10 | Returns an empty string. 11 | Note that the current working directory is a per-process resource; the 12 | cd command changes the working directory for all interpreters 13 | and (in a threaded environment) all threads. 14 |

    EXAMPLES

    15 | Change to the home directory of the user fred: 16 |
    cd ~fred
    17 |

    18 | Change to the directory lib that is a sibling directory of the 19 | current one: 20 |

    cd ../lib
    21 |

    SEE ALSO

    22 | filename, glob, pwd 23 |

    KEYWORDS

    24 | working directory 25 |
    26 | Copyright © 1993 The Regents of the University of California.
    27 | Copyright © 1994-1996 Sun Microsystems, Inc.
    28 | Copyright © 1995-1997 Roger E. Critchlow Jr.
    29 | 30 | -------------------------------------------------------------------------------- /src/site/resources/docs/tcl8.4.19/html/TclCmd/time.htm: -------------------------------------------------------------------------------- 1 | Built-In Commands - time manual page 2 |

    NAME

    3 | time - Time the execution of a script 4 |

    SYNOPSIS

    5 | time script ?count?
    6 |

    DESCRIPTION

    7 | This command will call the Tcl interpreter count 8 | times to evaluate script (or once if count isn't 9 | specified). It will then return a string of the form 10 |
    503 microseconds per iteration
    11 | which indicates the average amount of time required per iteration, 12 | in microseconds. 13 | Time is measured in elapsed time, not CPU time. 14 |

    EXAMPLE

    15 | Estimate how long it takes for a simple Tcl for loop to count to 16 | a thousand: 17 |
    time {
    18 |     for {set i 0} {$i<1000} {incr i} {
    19 |         # empty body
    20 |     }
    21 | }
    22 |

    SEE ALSO

    23 | clock 24 |

    KEYWORDS

    25 | script, time 26 |
    27 | Copyright © 1993 The Regents of the University of California.
    28 | Copyright © 1994-1996 Sun Microsystems, Inc.
    29 | Copyright © 1995-1997 Roger E. Critchlow Jr.
    30 | 31 | -------------------------------------------------------------------------------- /src/site/resources/docs/tcl8.4.19/html/TclLib/contents.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | This Page Intentional Blank 4 | 5 | 6 | This Page Intentional Blank. 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/site/resources/docs/tcl8.4.19/html/TkCmd/contents.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | This Page Intentional Blank 4 | 5 | 6 | This Page Intentional Blank. 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/site/resources/docs/tcl8.4.19/html/TkLib/contents.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | This Page Intentional Blank 4 | 5 | 6 | This Page Intentional Blank. 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/site/resources/docs/tcl8.4.19/html/UserCmd/contents.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | This Page Intentional Blank 4 | 5 | 6 | This Page Intentional Blank. 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/site/resources/images/jtcl-horz-med.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/site/resources/images/jtcl-horz-med.png -------------------------------------------------------------------------------- /src/site/resources/images/jtcl-horz-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/site/resources/images/jtcl-horz-small.png -------------------------------------------------------------------------------- /src/site/resources/images/jtcl-horz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/site/resources/images/jtcl-horz.png -------------------------------------------------------------------------------- /src/site/resources/images/jtcl-vert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/site/resources/images/jtcl-vert.png -------------------------------------------------------------------------------- /src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | JTcl 5 | images/jtcl-horz-med.png 6 | https://jtcl-project.github.io/jtcl/ 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/site/xdoc/xdoc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Welcome 5 | The Maven Team 6 | 7 | 8 |
    9 |

    10 | This is some text for the xdoc file. 11 |

    12 |
    13 | 14 |
    15 | 16 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/AppendCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class AppendCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/append.test"; 8 | tclTestResource(resName); 9 | } 10 | 11 | public void testAppendComp() throws Exception { 12 | String resName = "/tcl/lang/cmd/appendComp.test"; 13 | tclTestResource(resName); 14 | } 15 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ApplyCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class ApplyCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | // fails because of error message differences: 12 | "apply-4.3", "apply-4.4", "apply-4.5", "apply-5.1", 13 | // returns the correct values, but non in the same order as C Tcl 14 | "apply-8.2", "apply-8.3", "apply-8.4", "apply-8.5", "apply-8.6", "apply-8.7", 15 | "apply-8.8", "apply-8.9", "apply-8.10" 16 | })); 17 | String resName = "/tcl/lang/cmd/apply.test"; 18 | tclTestResource(resName, expectedFailureList); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/BinaryCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Collections; 4 | 5 | import tcl.lang.TclCmdTest; 6 | 7 | public class BinaryCmdTest extends TclCmdTest { 8 | public void testCmd() throws Exception { 9 | String resName = "/tcl/lang/cmd/binary.test"; 10 | tclTestResource(resName, Collections.EMPTY_LIST); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/CaseCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class CaseCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/case.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ClockCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class ClockCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/clock.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/CmdAHTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class CmdAHTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList(new String[] { 11 | // these fail because 'file atime', 'file mtime', 'file stat' and 'file link' are incomplete 12 | // because of JVM restrictions. Could fix with Java 1.7 or native code 13 | "cmdAH-20.2", "cmdAH-24.3", "cmdAH-28.3", "cmdAH-28.4", "cmdAH-28.8", "cmdAH-28.12", "cmdAH-29.4.1" 14 | })); 15 | 16 | String resName = "/tcl/lang/cmd/cmdAH.test"; 17 | tclTestResource(resName, expectedFailureList); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/CmdILTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class CmdILTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList(new String[] { 11 | // These fail because JTCL uses a different sorting algorithm than C Tcl. 12 | // Identical elements, according to the lsort comparison method, might be swapped 13 | // in JTCL relative to C Tcl - for example 'lsort -index 0 {{a b} {a c}}' can sort into either order 14 | // and be correctly sorted. 15 | // Also, the compare function might not be called in the same order, 16 | // which makes cmdIL-3.15 fail. 17 | "cmdIL-1.6", "cmdIL-1.23", "cmdIL-3.15" 18 | })); 19 | String resName = "/tcl/lang/cmd/cmdIL.test"; 20 | tclTestResource(resName, expectedFailureList); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/CmdMZTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class CmdMZTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | String resName = "/tcl/lang/cmd/cmdMZ.test"; 11 | tclTestResource(resName); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ConcatCmdText.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class ConcatCmdText extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/concat.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/EncodingCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | import java.util.LinkedList; 6 | 7 | import tcl.lang.TclCmdTest; 8 | 9 | public class EncodingCmdTest extends TclCmdTest { 10 | public void testCmd() throws Exception { 11 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 12 | // These fail because of the description at http://www8.plala.or.jp/tkubota1/unicode-symbols-map.html 13 | // In the non-Unicode world, these codes map onto the same JIS X 0208 codepoints. But in Unicode, 14 | // Cpe982's 0x81 0x91 maps to U+FFE0, while Shift_JIS's 0x81 0x91 and Euc-JP's 0xA1 0xF1 map on 15 | // to U+00A2. All three of those map to JIS X 0208 0x2171 and actually are the same "cents" sign. 16 | // When Java encodes Cpe982, 0x81 0x91 -> U+FFE0, and then decodes U+FFE0 to Shift_JIS, it's an invalid 17 | // character. It seems that C Tcl either doesn't go through Unicode, or has hacked the maps. 18 | "encoding-25.2", 19 | "encoding-25.3", 20 | "encoding-25.4", 21 | "encoding-25.5", 22 | "encoding-25.9", 23 | "encoding-25.13" 24 | })); 25 | String resName = "/tcl/lang/cmd/encoding.test"; 26 | tclTestResource(TCLTEST_NAMEOFEXECUTABLE, resName, expectedFailureList); 27 | } 28 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ErrorCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class ErrorCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 10 | // difference in 'invoked from within' and 'while executing' 11 | "error-1.3", 12 | "error-2.6" 13 | })); 14 | String resName = "/tcl/lang/cmd/error.test"; 15 | tclTestResource(resName, expectedFailureList); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/EvalCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class EvalCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | String resName = "/tcl/lang/cmd/eval.test"; 11 | tclTestResource(resName); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ExecCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class ExecCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | // exec-1.3 and exec-63 fail because the JVM process model doesn't allow for proper STDIN 12 | // file descriptor inheritance, instead using a pipe model. Too much of stdin can get 13 | // eaten up because of this. The solution is to create platform-specific subclasses 14 | // of TclProcess which do proper inheritance. However, these two test fail only 15 | // occassionally, so we inserted the "stdinInherit" testconstraint into exec.test 16 | // which should be removed when we have platform-specific exec. 17 | //"exec-1.3", 18 | //"exec-6.3", 19 | 20 | // exec-11.5 and exec-17.1 fail because JVM doesn't allow background processes to survive the JVM 21 | // if they read from STDIN or write to STDOUT/STDERR. There's no direct access 22 | // in the JVM to filedescriptors 0, 1, 2; we're only given InputStream() and OutputStream() 23 | // so the JVM must be running. However, putting processes in the background does 24 | // work, even though these tests fail. 25 | "exec-11.5", 26 | "exec-17.1" 27 | })); 28 | String resName = "/tcl/lang/cmd/exec.test"; 29 | tclTestResource(TCLTEST_NAMEOFEXECUTABLE, resName, expectedFailureList); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ExprCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class ExprCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | "expr-13.9", // not possible to match error message without significant recoding 12 | "expr-14.23", // widespread, pesky "invoked from within" instead of "while executing" in error message 13 | "expr-14.29", // widespread, pesky "invoked from within" instead of "while executing" in error message 14 | "expr-20.2", // not possible to match error message without significant recoding 15 | "expr-46.5", "expr-46.6" // JTCL uses 64-bit integer, so these tests don't overflow 16 | })); 17 | String resName = "/tcl/lang/cmd/expr.test"; 18 | tclTestResource(resName, expectedFailureList); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/FileCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class FileCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | /* These fail because of error message differences; JVM can't doesn't know exactly why 12 | * copy/rename fails 13 | */ 14 | "fCmd-6.17", 15 | "fCmd-9.14", 16 | /* 17 | * These tests fail primarily because link creation with 'file link' is not available because 18 | * Java doesn't support it. However, Java 1.7 will support it, so we should fix it at that time, 19 | * or fix it with native code. 20 | */ 21 | "fCmd-28.9", 22 | "fCmd-28.11", 23 | "fCmd-28.12", 24 | "fCmd-28.13", 25 | "fCmd-28.15.2", 26 | "fCmd-28.16", 27 | "fCmd-28.17", 28 | "fCmd-28.18" 29 | 30 | })); 31 | String resName = "/tcl/lang/cmd/fCmd.test"; 32 | tclTestResource(resName, expectedFailureList); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/FileNameCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | import java.util.LinkedList; 6 | 7 | import tcl.lang.TclCmdTest; 8 | 9 | public class FileNameCmdTest extends TclCmdTest { 10 | public void testCmd() throws Exception { 11 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 12 | /* 13 | * These tests fail because 'file link -symbolic' doesn't work in Java. If someday we add 14 | * platform-specific native code, file link -symbolic and glob -types l can be fixes, and these 15 | * test should work. 16 | */ 17 | "filename-11.17.2", 18 | "filename-11.17.3", 19 | "filename-11.17.4", 20 | "filename-11.17.7", 21 | "filename-11.17.8" 22 | })); 23 | 24 | String resName = "/tcl/lang/cmd/fileName.test"; 25 | 26 | // mostly tests the 'glob' command and some 'file ...' tests 27 | tclTestResource(resName,expectedFailureList); 28 | } 29 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/FileSystemCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | import java.util.LinkedList; 6 | 7 | import tcl.lang.TclCmdTest; 8 | 9 | public class FileSystemCmdTest extends TclCmdTest { 10 | public void testCmd() throws Exception { 11 | String resName = "/tcl/lang/cmd/fileSystem.test"; 12 | tclTestResource(resName,Collections.EMPTY_LIST); 13 | } 14 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ForCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class ForCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | // FIXME - can we fix the error callback messages? 12 | // widespread, pesky "invoked from within" instead of "while executing" in error message 13 | "for-1.8", "for-1.12" 14 | })); 15 | 16 | String resName = "/tcl/lang/cmd/for.test"; 17 | tclTestResource(resName, expectedFailureList); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ForeachCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class ForeachCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/foreach.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/FormatCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class FormatCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/format.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/HistoryCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class HistoryCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/history.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/IfCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class IfCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | // widespread, pesky "invoked from within" instead of "while executing" in error message, 12 | // couled with difference between compiled and non-compiled version of 'if' 13 | "if-1.3", "if-1.10", "if-2.4", "if-3.4", "if-5.3", "if-5.10", "if-6.4", "if-7.4", 14 | // this difference in expr error message would take significant coding to fix 15 | "if-10.6" 16 | })); 17 | 18 | String resName = "/tcl/lang/cmd/if.test"; 19 | tclTestResource(resName, expectedFailureList); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/IncrCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class IncrCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | // differences between "compiling" and "executing" in error message: 12 | // FIXME - change the error text in the IncrCmd to match 8.4 13 | "incr-1.19", "incr-1.27", "incr-2.19", "incr-2.27" 14 | })); 15 | 16 | String resName = "/tcl/lang/cmd/incr.test"; 17 | tclTestResource(resName, expectedFailureList); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/InfoCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class InfoCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | // fails because it counts the number of compiled, not interpreted, commands in C Tcl; JTCL doesn't compile 12 | "info-3.1", 13 | // returns the correct values, but non in the same order as C Tcl 14 | "info-15.4" 15 | })); 16 | String resName = "/tcl/lang/cmd/info.test"; 17 | tclTestResource(resName, expectedFailureList); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/InterpCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class InterpCmdTest extends TclCmdTest { 9 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 10 | // different list from [interp hidden] because the 'load' command is not implemented in JTCL 11 | "interp-21.5", 12 | "interp-21.8", 13 | // recursion limit is actually inherited by the slave interpreter as expected, but the nested proc 14 | // call count is one fewer in JTCL than in TCL. My best guess is that this is due to TCL compiling 15 | // some of the contents of the recursive proc in these tests, so that there's no eval internal 16 | // to the proc (DJB) 17 | "interp-29.4.1", 18 | "interp-29.4.2" 19 | })); 20 | public void testCmd() throws Exception { 21 | String resName = "/tcl/lang/cmd/interp.test"; 22 | tclTestResource(resName, expectedFailureList); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/IoCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class IoCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/ioCmd.test"; 8 | tclTestResource(resName); 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/JoinCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class JoinCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/join.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LassignCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class LassignCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/lassign.test"; 8 | tclTestResource(resName); 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LindexCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class LindexCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/linsert.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LinsertCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class LinsertCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/linsert.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ListCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class ListCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/list.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LlengthCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Collections; 4 | 5 | import tcl.lang.TclCmdTest; 6 | 7 | public class LlengthCmdTest extends TclCmdTest { 8 | public void testCmd() throws Exception { 9 | String resName = "/tcl/lang/cmd/llength.test"; 10 | tclTestResource(resName); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LrangeCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class LrangeCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/lrange.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LrepeatCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class LrepeatCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/lrepeat.test"; 8 | tclTestResource(resName); 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LreplaceCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class LreplaceCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/lreplace.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LreverseCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class LreverseCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/lreverse.test"; 8 | tclTestResource(resName); 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LsearchCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class LsearchCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | String resName = "/tcl/lang/cmd/lsearch.test"; 11 | tclTestResource(resName, Collections.EMPTY_LIST); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/LsetCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class LsetCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/lset.test"; 8 | tclTestResource(resName); 9 | } 10 | 11 | public void testLsetComp() throws Exception { 12 | String resName = "/tcl/lang/cmd/lsetComp.test"; 13 | tclTestResource(resName); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/MiscCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | import java.util.LinkedList; 6 | 7 | import tcl.lang.TclCmdTest; 8 | 9 | public class MiscCmdTest extends TclCmdTest { 10 | public void testBasic() throws Exception { 11 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 12 | "basic-24.3" // 'info commands' result in a different order; this is not a bug 13 | })); 14 | 15 | String resName = "/tcl/lang/cmd/basic.test"; 16 | tclTestResource(TCLTEST_NAMEOFEXECUTABLE, resName, expectedFailureList); 17 | } 18 | 19 | public void testIo() throws Exception { 20 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 21 | // previously failing test now seems to be working in Java 1.6.0_31 22 | // "io-14.9" // test requires that we can exec a new tcltest environment 23 | })); 24 | String resName = "/tcl/lang/cmd/io.test"; 25 | tclTestResource(TCLTEST_NAMEOFEXECUTABLE,resName, expectedFailureList); 26 | } 27 | 28 | public void testUtil() throws Exception { 29 | String resName = "/tcl/lang/cmd/util.test"; 30 | tclTestResource(resName); 31 | } 32 | 33 | public void testVar() throws Exception { 34 | String resName = "/tcl/lang/cmd/var.test"; 35 | tclTestResource(resName); 36 | } 37 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/NamespaceCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Collections; 4 | 5 | import tcl.lang.TclCmdTest; 6 | 7 | public class NamespaceCmdTest extends TclCmdTest { 8 | public void testCmd() throws Exception { 9 | String resName = "/tcl/lang/cmd/namespace.test"; 10 | tclTestResource(resName, Collections.EMPTY_LIST); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/PackageCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class PackageCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/package.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/PidCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class PidCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/pid.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ProcCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class ProcCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | // fails because of error message differences: 12 | "proc-1.7", "proc-1.8" 13 | })); 14 | String resName = "/tcl/lang/cmd/proc.test"; 15 | tclTestResource(resName, expectedFailureList); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/PwdCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class PwdCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/pwd.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/RenameCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class RenameCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | // FIXME: rename.test altered to run test "rename-6.1 {old code invalidated (epoch incremented) when cmd with compile proc is renamed } {" 8 | // a difference between C/Tcl on-the-fly bytecode compiler and JTcl's pure interpreter?? 9 | // original test looks was this (from rename-5.1 to end of file) 10 | 11 | // test rename-6.1 {old code invalidated (epoch incremented) when cmd with compile proc is renamed } { 12 | // proc x {} { 13 | // set a 123 14 | // set b [incr a] 15 | // } 16 | // x 17 | // rename incr incr.old 18 | // proc incr {} {puts "new incr called!"} 19 | // catch {x} msg 20 | // set msg 21 | // } {wrong # args: should be "incr"} 22 | // 23 | // if {[info commands incr.old] != {}} { 24 | // catch {rename incr {}} 25 | // catch {rename incr.old incr} 26 | // } 27 | // ::tcltest::cleanupTests 28 | // return 29 | 30 | String resName = "/tcl/lang/cmd/rename.test"; 31 | tclTestResource(resName); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/ScanCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class ScanCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/scan.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/SetCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class SetCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/set.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/SocketCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Collections; 4 | 5 | import tcl.lang.TclCmdTest; 6 | 7 | public class SocketCmdTest extends TclCmdTest { 8 | public void testCmd() throws Exception { 9 | String resName = "/tcl/lang/cmd/socket.test"; 10 | /* need TCLTEST_NAMEOFEXECUTABLE in order to properly initialize stdio testConstraint */ 11 | tclTestResource(TCLTEST_NAMEOFEXECUTABLE, resName, Collections.EMPTY_LIST); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/SourceCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class SourceCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | String resName = "/tcl/lang/cmd/source.test"; 11 | tclTestResource(resName); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/SplitCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class SplitCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/split.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/StringCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class StringCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/string.test"; 8 | tclTestResource(resName); 9 | } 10 | 11 | public void testStringComp() throws Exception { 12 | String resName = "/tcl/lang/cmd/stringComp.test"; 13 | tclTestResource(resName); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/SubstCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Collections; 4 | 5 | import tcl.lang.TclCmdTest; 6 | 7 | public class SubstCmdTest extends TclCmdTest { 8 | public void testCmd() throws Exception { 9 | String resName = "/tcl/lang/cmd/subst.test"; 10 | tclTestResource(TCLTEST_NAMEOFEXECUTABLE, resName, Collections.EMPTY_LIST); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/SwitchCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class SwitchCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | String resName = "/tcl/lang/cmd/switch.test"; 11 | tclTestResource(resName, Collections.EMPTY_LIST); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/TimerCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class TimerCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/timer.test"; 8 | tclTestResource(resName); 9 | } 10 | } -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/TraceCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class TraceCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/trace.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/UplevelCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import tcl.lang.TclCmdTest; 4 | 5 | public class UplevelCmdTest extends TclCmdTest { 6 | public void testCmd() throws Exception { 7 | String resName = "/tcl/lang/cmd/uplevel.test"; 8 | tclTestResource(resName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/UpvarCmdTest.java: -------------------------------------------------------------------------------- 1 | 2 | package tcl.lang.cmd; 3 | 4 | import java.util.Arrays; 5 | import java.util.LinkedList; 6 | 7 | import tcl.lang.TclCmdTest; 8 | 9 | public class UpvarCmdTest extends TclCmdTest { 10 | public void testCmd() throws Exception { 11 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 12 | // these test pass, except order of list returned by "array names" if different 13 | "upvar-3.5", "upvar-3.6" 14 | })); 15 | 16 | String resName = "/tcl/lang/cmd/upvar.test"; 17 | tclTestResource(resName, expectedFailureList); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/tcl/lang/cmd/WhileCmdTest.java: -------------------------------------------------------------------------------- 1 | package tcl.lang.cmd; 2 | 3 | import java.util.Arrays; 4 | import java.util.LinkedList; 5 | 6 | import tcl.lang.TclCmdTest; 7 | 8 | public class WhileCmdTest extends TclCmdTest { 9 | public void testCmd() throws Exception { 10 | LinkedList expectedFailureList = new LinkedList(Arrays.asList( new String[] { 11 | // widespread, pesky "invoked from within" instead of "while executing" in error message 12 | "while-1.2", "while-1.8" 13 | })); 14 | 15 | String resName = "/tcl/lang/cmd/while.test"; 16 | tclTestResource(resName, expectedFailureList); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/all.tcl: -------------------------------------------------------------------------------- 1 | # all.tcl -- 2 | # 3 | # This file contains a top-level script to run all of the Tcl 4 | # tests. Execute it by invoking "source all.test" when running tcltest 5 | # in this directory. 6 | # 7 | # Copyright (c) 1998-1999 by Scriptics Corporation. 8 | # Copyright (c) 2000 by Ajuba Solutions 9 | # 10 | # See the file "license.terms" for information on usage and redistribution 11 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 12 | # 13 | # RCS: @(#) $Id: all.tcl,v 1.16 2002/04/10 19:57:15 hobbs Exp $ 14 | 15 | set tcltestVersion [package require tcltest] 16 | namespace import -force tcltest::* 17 | 18 | if {$tcl_platform(platform) == "macintosh"} { 19 | tcltest::singleProcess 1 20 | } 21 | 22 | tcltest::testsDirectory [file dir [info script]] 23 | tcltest::runAllTests 24 | 25 | return 26 | -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/llength.test: -------------------------------------------------------------------------------- 1 | # Commands covered: llength 2 | # 3 | # This file contains a collection of tests for one or more of the Tcl 4 | # built-in commands. Sourcing this file into Tcl runs the tests and 5 | # generates output for errors. No output means no errors were found. 6 | # 7 | # Copyright (c) 1991-1993 The Regents of the University of California. 8 | # Copyright (c) 1994 Sun Microsystems, Inc. 9 | # Copyright (c) 1998-1999 by Scriptics Corporation. 10 | # 11 | # See the file "license.terms" for information on usage and redistribution 12 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 13 | # 14 | # RCS: @(#) $Id: llength.test,v 1.5 2000/04/10 17:19:01 ericm Exp $ 15 | 16 | if {[lsearch [namespace children] ::tcltest] == -1} { 17 | package require tcltest 18 | namespace import -force ::tcltest::* 19 | } 20 | 21 | test llength-1.1 {length of list} { 22 | llength {a b c d} 23 | } 4 24 | test llength-1.2 {length of list} { 25 | llength {a b c {a b {c d}} d} 26 | } 5 27 | test llength-1.3 {length of list} { 28 | llength {} 29 | } 0 30 | 31 | test llength-2.1 {error conditions} { 32 | list [catch {llength} msg] $msg 33 | } {1 {wrong # args: should be "llength list"}} 34 | test llength-2.2 {error conditions} { 35 | list [catch {llength 123 2} msg] $msg 36 | } {1 {wrong # args: should be "llength list"}} 37 | test llength-2.3 {error conditions} { 38 | list [catch {llength "a b c \{"} msg] $msg 39 | } {1 {unmatched open brace in list}} 40 | 41 | # cleanup 42 | ::tcltest::cleanupTests 43 | return 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/lreverse.test: -------------------------------------------------------------------------------- 1 | # This file contains a collection of tests for the procedures in the 2 | # file tclCmdIL.c. Sourcing this file into Tcl runs the tests and 3 | # generates output for errors. No output means no errors were found. 4 | # 5 | # Copyright (c) 1997 Sun Microsystems, Inc. 6 | # Copyright (c) 1998-1999 by Scriptics Corporation. 7 | # 8 | # See the file "license.terms" for information on usage and redistribution 9 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 10 | # 11 | 12 | if {[lsearch [namespace children] ::tcltest] == -1} { 13 | package require tcltest 14 | namespace import -force ::tcltest::* 15 | } 16 | 17 | test lreverse-7.1 {lreverse command} -body { 18 | lreverse 19 | } -returnCodes error -result "wrong # args: should be \"lreverse list\"" 20 | test lreverse-7.2 {lreverse command} -body { 21 | lreverse a b 22 | } -returnCodes error -result "wrong # args: should be \"lreverse list\"" 23 | test lreverse-7.3 {lreverse command} -body { 24 | lreverse "not \{a list" 25 | } -returnCodes error -result {unmatched open brace in list} 26 | test lreverse-7.4 {lreverse command - shared object} { 27 | set x {a b {c d} e f} 28 | lreverse $x 29 | } {f e {c d} b a} 30 | test lreverse-7.5 {lreverse command - unshared object} { 31 | lreverse [list a b {c d} e f] 32 | } {f e {c d} b a} 33 | test lreverse-7.6 {lreverse command - unshared object [Bug 1672585]} { 34 | lreverse [set x {1 2 3}][unset x] 35 | } {3 2 1} 36 | test lreverse-7.7 {lreverse command - empty object [Bug 1876793]} { 37 | lreverse [list] 38 | } {} 39 | -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/osa.test: -------------------------------------------------------------------------------- 1 | # Commands covered: AppleScript 2 | # 3 | # This file contains a collection of tests for one or more of the Tcl 4 | # built-in commands. Sourcing this file into Tcl runs the tests and 5 | # generates output for errors. No output means no errors were found. 6 | # 7 | # Copyright (c) 1997 Sun Microsystems, Inc. 8 | # Copyright (c) 1998-1999 by Scriptics Corporation. 9 | # 10 | # See the file "license.terms" for information on usage and redistribution 11 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 12 | # 13 | # RCS: @(#) $Id: osa.test,v 1.6 2000/04/10 17:19:02 ericm Exp $ 14 | 15 | if {[lsearch [namespace children] ::tcltest] == -1} { 16 | package require tcltest 17 | namespace import -force ::tcltest::* 18 | } 19 | 20 | # Only run the test if we can load the AppleScript command 21 | set ::tcltest::testConstraints(appleScript) [expr {[info commands AppleScript] != ""}] 22 | 23 | test osa-1.1 {Tcl_OSAComponentCmd} {macOnly appleScript} { 24 | list [catch AppleScript msg] $msg 25 | } {1 {wrong # args: should be "AppleScript option ?arg ...?"}} 26 | test osa-1.2 {Tcl_OSAComponentCmd} {macOnly appleScript} { 27 | list [catch {AppleScript x} msg] $msg 28 | } {1 {bad option "x": should be compile, decompile, delete, execute, info, load, run or store}} 29 | 30 | test osa-1.3 {TclOSACompileCmd} {macOnly appleScript} { 31 | list [catch {AppleScript compile} msg] $msg 32 | } {1 {wrong # args: should be "AppleScript compile ?options? code"}} 33 | 34 | # cleanup 35 | ::tcltest::cleanupTests 36 | return 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/pwd.test: -------------------------------------------------------------------------------- 1 | # Commands covered: pwd 2 | # 3 | # This file contains a collection of tests for one or more of the Tcl 4 | # built-in commands. Sourcing this file into Tcl runs the tests and 5 | # generates output for errors. No output means no errors were found. 6 | # 7 | # Copyright (c) 1991-1993 The Regents of the University of California. 8 | # Copyright (c) 1994-1997 Sun Microsystems, Inc. 9 | # Copyright (c) 1998-1999 by Scriptics Corporation. 10 | # 11 | # See the file "license.terms" for information on usage and redistribution 12 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 13 | # 14 | # RCS: @(#) $Id: pwd.test,v 1.6 2000/04/10 17:19:03 ericm Exp $ 15 | 16 | if {[lsearch [namespace children] ::tcltest] == -1} { 17 | package require tcltest 18 | namespace import -force ::tcltest::* 19 | } 20 | 21 | test pwd-1.1 {simple pwd} { 22 | catch pwd 23 | } 0 24 | test pwd-1.2 {simple pwd} { 25 | expr [string length pwd]>0 26 | } 1 27 | 28 | # cleanup 29 | ::tcltest::cleanupTests 30 | return 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/security.test: -------------------------------------------------------------------------------- 1 | # security.test -- 2 | # 3 | # Functionality covered: this file contains a collection of tests for the 4 | # auto loading and namespaces. 5 | # 6 | # Sourcing this file into Tcl runs the tests and generates output for 7 | # errors. No output means no errors were found. 8 | # 9 | # Copyright (c) 1997 Sun Microsystems, Inc. 10 | # Copyright (c) 1998-1999 by Scriptics Corporation. 11 | # All rights reserved. 12 | # 13 | # RCS: @(#) $Id: security.test,v 1.5 2000/04/10 17:19:04 ericm Exp $ 14 | 15 | if {[lsearch [namespace children] ::tcltest] == -1} { 16 | package require tcltest 17 | namespace import -force ::tcltest::* 18 | } 19 | 20 | # If this proc becomes invoked, then there is a bug 21 | 22 | proc BUG {args} { 23 | set ::BUG 1 24 | } 25 | 26 | # Check and Clear the bug flag (to do before each test) 27 | set ::BUG 0 28 | 29 | proc CB {} { 30 | set ret $::BUG 31 | set ::BUG 0 32 | return $ret 33 | } 34 | 35 | 36 | test sec-1.1 {tcl_endOfPreviousWord} { 37 | catch {tcl_startOfPreviousWord x {[BUG]}} 38 | CB 39 | } 0 40 | 41 | # cleanup 42 | ::tcltest::cleanupTests 43 | return 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/string.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/test/resources/tcl/lang/cmd/string.test -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/stringObj.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/test/resources/tcl/lang/cmd/stringObj.test -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/subst.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtcl-project/jtcl/60c40eabf9dfaf7c5901249689484ada73b9d210/src/test/resources/tcl/lang/cmd/subst.test -------------------------------------------------------------------------------- /src/test/resources/tcl/lang/cmd/winConsole.test: -------------------------------------------------------------------------------- 1 | # This file tests the tclWinConsole.c file. 2 | # 3 | # This file contains a collection of tests for one or more of the Tcl 4 | # built-in commands. Sourcing this file into Tcl runs the tests and 5 | # generates output for errors. No output means no errors were found. 6 | # 7 | # Copyright (c) 1999 by Scriptics Corporation. 8 | # 9 | # See the file "license.terms" for information on usage and redistribution 10 | # of this file, and for a DISCLAIMER OF ALL WARRANTIES. 11 | # 12 | # RCS: @(#) $Id: winConsole.test,v 1.5 2000/04/10 17:19:06 ericm Exp $ 13 | 14 | if {[lsearch [namespace children] ::tcltest] == -1} { 15 | package require tcltest 16 | namespace import -force ::tcltest::* 17 | } 18 | 19 | 20 | test winConsole-1.1 {Console file channel: non-blocking gets} \ 21 | {pcOnly interactive} { 22 | 23 | set oldmode [fconfigure stdin] 24 | 25 | puts stdout "Enter abcdef now: " nonewline 26 | flush stdout 27 | fileevent stdin readable { 28 | if {[gets stdin line] >= 0} { 29 | set result $line 30 | } else { 31 | set result "gets failed" 32 | } 33 | } 34 | 35 | fconfigure stdin -blocking 0 -buffering line 36 | 37 | set result {} 38 | vwait result 39 | 40 | #cleanup the fileevent 41 | fileevent stdin readable {} 42 | eval fconfigure stdin $oldmode 43 | 44 | set result 45 | 46 | } "abcdef" 47 | 48 | #cleanup 49 | 50 | ::tcltest::cleanupTests 51 | return 52 | 53 | -------------------------------------------------------------------------------- /toolchains.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | jdk 7 | 8 | 1.6 9 | sun 10 | 11 | 12 | 13 | 14 | 15 | /usr/local/java16 16 | 17 | 18 | 19 | 20 | 21 | 22 | --------------------------------------------------------------------------------