[comp.binaries.ibm.pc] v01i061: commando, command line editor v1.0

bamcpherson@math.waterloo.edu (Brent McPherson) (12/17/88)

Posting-number: Volume 01 Issue 061
Originally-from: trillium!bamcpherson@math.waterloo.edu (Brent McPherson)
Submitted-by: trillium!bamcpherson@math.waterloo.edu (Brent McPherson)
Archive-name: commando/commando.uue

Here it is!  Commando, my ultimate command line editor.  Not being able
to find a command line editor with all the features I wanted, I wrote
my own.  Commando is a TSR written in C.  It uses BIOS and DOS level
interrupts and should work on most MSDOS machines.  (DOS 2.x or greater
I think.)  This program may be distributed free of charge.  It has a
lot of neat features and many more are planned.  Any new ideas or
suggestions are welcome.  Enjoy!

[
Features include command line editing, recall of previous commands,
filename completion and wildcard expansion on the command line,
multiple commands on a line, function key binding, aliases with
optional parameter substitution, ability to not save commands shorter
than a user-specified number of characters, and a few other minor
configuration options.

Commando seems to have most of the features of both CED and Anarkey
(which was posted in this newsgroup recently) but not all of them and
not in the same way.  Its ability to expand wildcards to a list of
names might be useful when running C programs ported from UNIX, since
these usually accept a list of filenames but don't do any wildcard
expansion.  Commando has aliases, which CED does but Anarkey doesn't.
(But Anarkey lets you edit paths and environment variables, and Commando
doesn't.)  Neither Anarkey nor Commando has CED's "pcall" variables,
i.e., commands that, once typed with arguments, will have their
arguments filled in the next time you just type the command without any
arguments.  Only Commando lets you define function keys.  CED allows
comments and empty lines in its alias initialization file while
Commando doesn't.

Commando was also not able to detect a second attempt to load it if
something else had been made resident in between.  Under the same
conditions both CED and Anarkey refused to load themselves twice.

Any nitpicking is being done solely as part of my job as moderator, and
not because I see any glaring faults.  It's a well-done program.

The copyright statement doesn't mention any distribution policy.  Since
the author sent it here Usenet distribution is assumed OK, and no money
is requested, so it's a "free" program.

checksum     size (bytes)  file
   13909        19055      this uuencoded posting
   17064        13808      commando.arc

-- R.D.
]

BEGIN--cut here--cut here
begin 644 commando.arc
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
F!F'@!F3@^I`P`0\#`"!0`"``$@C`!!_`!/%F&[:!6;8A$1\`&@#!
`
end
END--cut here--cut here