Now at version 0.2.20, last updated July 12th 2004 Latest change: bugfixes by LV. // Taskbar flashes correctly on MS Windows with an additional DLL (see below)
MG: Potato is a MUSH/MUD/MOO/MU* client written in Tcl/Tk. It was originally started by a friend of mine, who named it Potato (so don't blame me for that;) and I began a re-write about a year ago to add more features to it. The list of features included (and missing that I plan to add) are shown below. It's very much a work-in-progress; it works ok on Windows (tested on 98 and XP), but has hung on Linux every time, so far, and hasn't yet been tested on MacOS. (I don't have a Linux box; a friend has been helping me debug, though she's not too familiar with Tcl, which makes it a little difficult. If anyone with more experienced could lend a hand, it would certainly be appreciated!) There's a screenshot (Windows 98) at the bottom of the page.
Since the code is a little large, it can be found at [L1 ], rather than on the Wiki itself, along with a copy of Winico 0.3 which I had lying around (I didn't write or compile Winico, I just found it online).
Potato uses Tcl/Tk 8.4 and Iwidgets 4.0, with Winico 0.3, Img and snack all being optional. It also uses ctext for the syntax highlighting in the text-editor (again optional).
Disclaimer: use this code at your own risk; if it breaks or causes you problems, don't blame me. :) Please don't claim credit for my code, and please send me any improvements you make or think of, whether it's just ideas or actual Tcl code. I can be reached via email at [email protected] . At present there's no help-files, but if and when I get around to writing them, everyone who sends things in will be credited. In the mean time, I'll just rig up a tk_messageBox with credits, or something like that :)
I can't guarantee that the code is perfect, or even fairly good; I'm a 17 year old who took Tcl up as a hobby last year, not a professional coder or anything, so if you see something that could be made better, please do let me know :)
Features currently available:
Features that I'm hoping to add soon:
Features I'm not likely to support for a LONG time:
It's not perfect, by any means, but I've been using it for several months now, as have one or two of my friends, and I definitely find it useful. :) You're more than welcome to use the code if you want, though I really would appreciate any comments/suggestions. If you find a bug, please let me know, and if you write a fix for it, I'd appreciate a copy of that, too. ([email protected]) For an example of a MUSH, check out ElendorMUSH [L4 ], a free Lord of the Rings Role-playing game.
Mike Griffiths (Talvo@ElendorMUSH)
Comments
FW: You have an extra newline at line 5251 of the script, which makes it unusable (error) without editing. Also, your window flashes like crazy as it resizes - I'm epileptic, I feel jeopardized ;)
Also, your client opens up in a very similar small, tall window size to TkMOO. Coincidence? ;)
I can't see the problem with the extra new line you mentioned; checking with the editor I use, there's no problem at line 5251, and it runs fine for me (Win 98). *grins* And yes, that is a coincidence ;) It just comes up 80 characters wide (default for telnet) and high enough to be useful ;)
*shudders* I always run it maximized, and hadn't noticed the flashing on resize. I'll fiddle about a bit and see if I can't sort that, 'cause it looks terrible. -- OK, looking closer, the flashing seems to be part of the Iwidgets Panedwindow code, not actually a part of my code. I don't suppose anyone knows of a way around the flashing?
March 19th - MG fixed a bug in the text editor window. Also fixed the 'bug' which made the client hang while it was (re)connecting, using the -async option for the socket command (and using code taken from that page).
March 25th - MG added syntax highlighting for PennMUSH code into the Text Editor window. To allow this, the program now loads the ctext package, if available.
March 28th - MG fixed a bug in the Text Editor which stopped it from working/working correctly if you didn't have ctext
April 1st - MG added a spell-checker in the Text Editor window, improved the syntax highlighting, and added an option for 'escaping' MUSH-code by adding a backslash in front of certain characters (currently the same characters as PennMUSH's escape() function). If there're any Linux TCL'ers/MUSHers out there who have a little spare time, I'd greatly appreciate any feedback they could give me, too :)
April 4th - MG fixed a bug in the mail window (proc mail_send) that stopped sending mail with single quotes (") in any part of the message from working.
April 25th - MG Not sure if anyone's using this, or really cares, but I'm enjoying updating it ;) Added a feature for customizable slash-commands. See the 'Change Global Settings' menu to do it, and the description above for how it works
May 25th - MG Fixed a bug which caused the client to think it'd been booted, if the game you were connected to sent the string -1. Stupid bug in the get_mushage procedure.
July 12th - MG Flashing the taskbar now works on MS Windows, with an additional DLL from (Youness El Alaoui (KaKaRoTo - [email protected]) is the author of that DLL). A copy can be obtained (zipped) at http://www.geocities.com/mush_code/winflash.dll [L5 ] - you'll need to unzip the two files into the /lib/ folder. Without them, taskbar-flashing is done via wm deiconify . which doesn't always do the correct thing on MS Windows.
LV I tried the potato.txt on my SPARC Solaris 8 system, using Tcl/Tk 8.4.4 . I get this error (I have Img 1.3):
bitmap "::img::iconbitmap" not defined while executing "wm iconbitmap . $p(iconB)" ("eval" body line 1) invoked from within "eval "wm iconbitmap . $flag \$p($icon)"" (procedure "setIcon_init" line 54) invoked from within "setIcon_init" (procedure "splash" line 555) invoked from within "splash" (file "./potato.tcl" line 9991)
LV Also, the line starting a web browser for windows machines which uses a regsub appears to have an extra ] character on the regsub eval exec line. Later, when invoking a browser on Unix, the variable $url is used instead of, I suspect, $page.
Down in the code which invokes playSound (it has the text mc word,play), it appears there is an excess ] in the -command argument.
MG Thanks very much, Larry. All of those have been fixed, now. One of these days, I must learn how to actually use 'wm iconbitmap' (not to mention get Linux installed and figure that out, too).
LV If you ever get a chance to use ActiveState's TDK, try out their tclchecker. It shows a developer a lot of interesting things. Not all may be relevant, but certainly some of the above things can be caught.
MG Unfortunatly, it's a little more than my budget can stretch to, at the moment. Hopefully I'll get it some time in the not-so-distant future, though, it certainly looks like it'd be useful, if/when I can.
Screenshot taken on MS Windows 98: