Real name Mark Janssen ([Tcl Chatroom] nick: mjanssen). I have been using Tcl since 2004 and I love it. ---- There are several reasons I love Tcl: * It supports Unicode in code and GUI * The community is great * It is truly interactive: Open a console in your application and see what is really going on * Tclkit or Starkit deployment is very, very convenient * It is very easy to install libraries without changing config files all over the place * The community is great * Very simple syntax and everything is a string: This allows for some funky stuff like redefining proc * The C-API is one of the easiest of any of the ones I have seen (Perl, Python, Ruby) this makes it very easy to wrap C libraries. See for an example [readline] * The community is great ---- '''Current projects''' * Embedding [tcc] in a Tcl extension. It can compile an example Tcl extension at the moment [tdom] and supports [VFS] '''Pages I contributed to''' * [Alternative Namespaces] * [Tailing widget] * [Tcl Interface to WinPCAP] * [less] * [readline] * [Angles on a compass] * [exec quotes problem] * [SNMP parser] * [WBXML] * [tedit] - Tcl only text editor with Emacs like functionality (sort of). Bindtags are so cool. * [newexec] * [self] and my C-implementation at [SELF extension] * [scriptaculous] * [SOCKS proxy] * [XOTcl Objects as Tcl Commands with subcommands] * [Tuplespace] * [Event tutorial] * [Engineering Notation] * [Overridden commands] - restoring Tcl internal commands that have been overridden beyond your control * [Wizard] * [Retrieve file icon using the Win32 API] * [Scratchpad] * [NTLM] * [cal] * [chan mode] * [Extending chan] - Extending Tcl core commands implemented with [namespace ensemble]s * [Tcl in a hybrid of RealLife and More Equal Pigs] * [SCGI] * [Splitting an amount in parts] * [Retrieving movie information from IMDB] * [TkTreeCtrl] * [tcc] - and more specifically [tcltcc], a Tcl binding to [tcc] (hosted at [http://code.google.com/p/tcltcc/]) * [tunnel] * [freezeconfig] * [Entering Unicode characters in a widget] * [Finding duplicate files] * [Interfacing Windows Search] * [A Simple Wiki with Outlook backend] '''Random ideas I like to pursue''' * Everything will be compiled (so not only procs) * Image based Tcl ala [Smalltalk] * Fast OO ala [Self Extension] * Extensible parser allow {..}[...] to be extended from script level * Better [exec] * Faster [Tcl IO performance] '''TODO''' * Tcl frontend to fossil db's * Caching in the [Self extension] using epoch counters '''Autoexpansion of leading word''' Until I find a better sport to put this, the following patch will change Tcl so it will autoexpand leading words. ====== diff --git a/tcl/generic/tclParse.c b/tcl/generic/tclParse.c index b06b106..02b126f 100644 --- a/tcl/generic/tclParse.c +++ b/tcl/generic/tclParse.c @@ -266,6 +266,8 @@ Tcl_ParseCommand( const char *termPtr; /* Set by Tcl_ParseBraces/QuotedString to * point to char after terminating one. */ int scanned; + int expandWord; + int firstWord; if ((start == NULL) && (numBytes != 0)) { if (interp != NULL) { @@ -307,8 +309,14 @@ Tcl_ParseCommand( */ parsePtr->commandStart = src; + firstWord = 1; while (1) { - int expandWord = 0; + if (firstWord) { + expandWord = 1; + firstWord = 0; + } else { + expandWord = 0; + } /* * Create the token for the word. diff --git a/tcl/library/clock.tcl b/tcl/library/clock.tcl index 7411fd6..6d1bb7a 100644 --- a/tcl/library/clock.tcl +++ b/tcl/library/clock.tcl @@ -693,7 +693,7 @@ proc ::tcl::clock::format { args } { [ParseClockFormatFormat $procName $format $locale] } - return [$procName $clockval $timezone] + return [[list $procName] $clockval $timezone] } #---------------------------------------------------------------------- ====== ---- Everything I post on the wiki is in the public domain unless explicitly marked otherwise. I would love to hear if some of it was useful to you though. <> Category Person