Short: Menu system for AXsh Uploader: albert cs tut fi (Pasi 'Albert' Ojala) Type: util/shell Architecture: m68k-amigaos DESCRIPTION Matrix is a replacement for the Topic menuing system by Markku 'Hack' Mellanen. I used Topic for half a year, but eventually became frustrated with its quirks and lack of expandability and got tired of hex-editing in my corrections, so I wrote my own. Matrix is intended for use with AXsh, but it can be used from AmigaDOS or another BBS if you want (consult the OTHER SYSTEMS section for this). Matrix is largely compatible with Topic, but it also provides a large number of extensions. Here's a summary of the differences: - full shell support (local/global variables, piping, etc) - all options can be combined - better support for submenus - all actions by users are logged - expert/verbose mode selection - instant menu redrawing, pause option - support for "timeout" utility, detection of AXsh:etc/nologin - commands to run from outside for page, forced chat, and abort - user-definable abort/chat/force commands - attempts to notice carrier loss and acts accordingly As of Jan 1994, Timeout (a time limit utility) is not ready for release, so ignore references to it here. NEW FEATURES Matrix v1.1 is a stopgap release to fix the massive security bug I realized had been in it (and Topic) all along. Namely, if the user decided to create his own menu file...perhaps with a menu item like "axsh:bin/axsh -con -user root"... Need I say more? Matrix now supports a MATRIX_DIR variable where the sysop can enter legal directories for menus. The other changes are also primarily security/safety features. Being an intermediate release, the code actually has some of the nifty client/server multitask code I was working on, but it's #ifdef'd out and never invoked. Features added or significantly changed in Matrix since v1.0: - Aforementioned security bug fixed with ENV:MATRIX_DIR variable. - Users kicked out of Matrix if 5 invalid commands are given. This is an attempt to deal with carrier drops, which often cause the modem to spew/repeat junk for a while, making Topic/Matrix 1.0 loop endlessly. - CTRL-C processed instead of just aborting instantly. - Users cannot enter MSG_* in menus. - All gets() replaced with fgets(stdin), now users cannot crash machine simply by entering tons of junk. - Superuser rights given to all users with one of these accesslevels: assistant, superuser, wizard, system I attempted to implent an autologout system, bu evidently WaitForChar() doesn't like AXsh or serial input, so I had to resort to the current approach. I'll try it with a different approach for v2.0. REQUIREMENTS Matrix requires an Amiga with Kickstart 2.0 or higher and an input device of some kind (ie. a serial port or a keyboard). AUTHOR _ Jani "Guru Gnosis Sahib" Poijärvi Internet: root@brahman.nullnet.fi BBS: Brahman, +358-0-498-797, USR 16800 DS, 24h/7d (official Matrix support site)