Index of /tcl/ftparchive/sorted/net/mmucl-1.1.1

      Name                   Last modified     Size  Description

[DIR] Parent Directory 28-Oct-99 15:46 - [   ] CHANGES 16-Jul-98 16:44 1k [   ] README 16-Jul-98 16:46 3k [CMP] mmucl-1.1.1.tar.gz 16-Jul-98 17:31 46k

Mark's MUd CLient, Mmucl (pronounced muckle) v1.1.1
Copyright (C) 1997-1998 Mark Patton 
email: mpatton@jhu.edu
homepage: http://idt.net/~tmtr01/mmucl/

Introduction
-------------

This is _alpha_ software working up to a stable 1.2 release.
There are lots of bugs, documentation is mostly non-existent,
and the interface is changing by the minute.

That being said, it works pretty well for me. =)

If you've got time I'd appreciate you reading the
feedback section below and responding.

Ramblings
---------

The aim goal the 1.2 release is a clean, simple interface,
both command line and gui.

I'm trying to standardize the syntax of commands to be more like
the builtin tcl ones. For example if you call a command with an
option (an option is a subcommand) it doesn't understand,  the
command returns an informative error message telling you what
options it does take. Try "/alias blah" or "/action blah" to see.

Regexps are too complicated (especially the 8.1 perlish ones)
for a normal user to bother with. Action patterns are translated
from a simple syntax to a regexp. The syntax probably needs
some work.

A number
%d -> ([0-9.]+)

A word or, more accurately, a contiguous block of anything that
isn't whitespace.
%w -> ([^\n\r\t ]+)

Anything up to the end of a line
%s -> ([^\n\r]+)

A single character
%c -> (.)

Match the begginning of a line. Also works if the line
is colored.
%^ -> (^|\n|^\x1B\\\[\[0-9\;\]*m|\n\x1B\\\[\[0-9\;\]*m)

Anything
*  -> .*

"|" just divides up a regexp like normal.

The special meanings of %c, %d, etc. can be escaped by
putting a % before it. "*" can be escaped by putting
"*" before it.

Actions now access matches through a @ command that takes
the number of the match to return as an arg.

action set {%^%w tells you: %s} {
    echo [color [@ 2] magenta] "told me something"
    echo "He told me:" [@ 3]
    echo "The whole match was:" [@ 0]
}

"@ 1" is the first match, either an empty string or a
newline.

action set {%^%w hugs you|%^%w smiles at you} {
    write "grin [expr {[string length [@ 2]] ? [@ 2] : [@ 4]}]"
}

Either "@ 2" or "@ 4" will be the name of the person. The
other will be an empty string.

Similarily arguments to alises are treated as a list and accesed
thhough a % command. The args to the alias are _not_ evaluated.

alias set annoy {
    write "smack [% 1]" "spit [% 1]" "kick [% 1]"
}

"%" or "% 0" returns the list of arguments

Using a command to retrieve alias args and action
eliminates a number of nasty problems caused by the
text substitution 1.0. used.

All the documentation is being written in texinfo format.
If you have tkinfo installed, mmucl will use it as an
online help system. You have to use tkinfo >= 2.5.

The console interface now works pretty well. It lets
you do command line editing, go through history, etc.
It even has a keep_line option like the gui interfaces.
To do all this it needs to use stty to initialize the
terminal.

I hope to add more ansi emulation to winmmucl. Right now it
just does color.

The gui hasn't changed at all.

The examples haven't been completely updated yet.

Feedback
--------

In addition to any bug report I'd really like to get some feedback
on anything in general and specifically on the questions below.

What do you think of the action/sub pattern matching?
Are there any additions/changes that should be made to it?

Is there any basic functionality (that couldn't be implemented
in the user interp) missing?

Should there be some additional features in the gui?
If so, what?