Richard Suchenwirth 2008-01-17 - In Powerpoint (and possibly other software) you have a feature that when you type (TM), it is immediately replaced by the Trademark character ™. Not sure whether one needs it, but I did, and in a quiet moment I reimplemented that behavior for Tk's text widget.
The autoreplacement is triggered by a closing paren, so all such replacement strings (defined in the "automap" global variable) must end in ), but that would e.g. include smilies :^). If you want to temporarily suppress autoreplacement, just type a space before the closing paren, and delete it split-seconds later.
Here it is, simple enough:
package require Tk pack [text .t -wrap word] -fill both -expand 1 bind .t <KeyRelease-)> {autochange %W $automap} set automap "(TM) \u2122 (C) \u00A9 (R) \u00AE" proc autochange {w map} { foreach {abbrev value} $map { set n [string length $abbrev]c if {[$w get insert-$n insert] eq $abbrev} { $w delete insert-$n insert $w insert insert $value break } } }