ghudson@cie.uoregon.edu (Greg Hudson) (05/06/91)
Archive-name: games/mud/tinyfugue/1991-05-04 Archive: belch.berkeley.edu:/pub/mud_clients/tf.* [128.32.152.202] Original-posting-by: ghudson@cie.uoregon.edu (Greg Hudson) Original-subject: TF v1.5.3 beta 1 release Reposted-by: emv@msen.com (Edward Vielmetti, MSEN) Tinyfugue v1.5.3 beta 1 is available for anonymous FTP at belch.berkeley.edu (128.32.152.202) and valkyrie.ecn.uoknor.edu (129.15.22.6). The directory on both FTP servers is pub/mud_clients. The changes since last release are: 1.5.3 beta1 (5/4/91) ----------- Added in Madwand's TF status patch Fixed portals Corrected erroneous portal format in tf.help Fixed -DOLD_LPPROMPTS option The ---- <world name> ---- status line will only be displayed if -DLOUD_WORLDS is defined on the CFLAGS line. ----------- Tinyfugue is a client for Tiny* servers. It also has some support for LP-MUDs and DikuMUDs. It replaces telnet, and has a huge variety of features, many of them superfluous. The most notable of these are the ability to wrap text, the ability to split input and output into two windows, and the ability to do complicated automation. Technical notes --------------- TF v1.5.2.beta 5 was going to be my last release of TF, but the problem with portals is rapidly becoming more important with the Object Interchange Format development going on. I can't guarantee that I've fixed it completely, but I fixed the most obvious problem. In any case, I'd be quite happy to see someone put some effort into cleaning up TF. The problem with portals was an outgrowth of the way TF does multiple server connections. TF, being a line-based client, buffers remote input until it receives a full line (except when in /lp mode). The proper way to do this, of course, is to have a buffer for each connection. TF doesn't do it that way; it does it the same way as tinytalk used to-- that is, it has only one buffer. This worked great for tinytalk, because tinytalk was only supposed to handle one connection at a time. When switching from world to world, TF has to clean out any partial lines sitting in its remote input buffer. Ever since v1.5.0 beta 1 or so, it's done this without losing any data; that is, it sticks a newline on the end of whatever's in the buffer and outputs it, and then switches to the new world. This tends to be ugly, since the second half of the line (on a TinyMuck or TinyMUD, usually just a return) gets outputted when you get back, but it keeps you from losing output. The portal problem occured because TF would get stuck in a loop. The normal way for TF to process input is: 1. Receive glob of input from server 2. Check to see if we have any full lines (if not, go to step 1). 3. Process a full line (check it for triggers, portals, etc). 4. Remove that line from the buffer 5. Return to step 2. 6. Return to step 1. If we hit a portal, and are switching to a new world, TF's world-switching functions merrily decide to flush the buffer before announcing that we've hit a new world. Since the line containing the portal hasn't yet been removed from the buffer, flushing the buffer involves flushing the portal line, and of course, checking it for portals. I don't know why TF kicks out of this loop eventually, but apparently it does after about three iterations. The fix was to prevent TF from flushing the buffer while switching worlds from a portal. I used a cross-file global variable, which is really ugly, but then again, so is TF. To anyone who plans to support TF (I originally received some offers, but no one seems to have released anything so far. I was slightly worried about a multitude of new releases coming out from several sides after I stopped supporting the client, but apparently I needn't have worried), the solution to this whole mess is simply to put the buffers in the Sock structures in socket.c, eliminating the need for a flush_output() function completely. Greg Hudson ghudson@cie.uoregon.edu Explorer_Bob@asylum, others Platypus_Bob@furry -- comp.archives file verification belch.berkeley.edu -rw-r--r-- 1 10 0 116355 May 4 16:22 /pub/mud_clients/tf.1.5.2.beta1.shar.Z -rw-r--r-- 1 10 0 169 Apr 30 15:33 /pub/mud_clients/tf.note found tinyfugue ok belch.berkeley.edu:/pub/mud_clients/tf*