AminetAminet
Search:
84782 packages online
About
Recent
Browse
Search
Upload
Setup
Services

text/edit/FrexxShell.lha

Mirror:Random
Showing: i386-aros icongeneric icon
No screenshot available
Short:Shell in a FrexxEd buffer
Author: s6357 at fb1.fhtw-berlin.de (Carsten Orthbandt)
Uploader:s6357 fb1 fhtw-berlin de (Carsten Orthbandt)
Type:text/edit
Architecture:m68k-amigaos
Date:1995-07-10
Download:text/edit/FrexxShell.lha - View contents
Readme:text/edit/FrexxShell.readme
Downloads:602

This was one idea from Jesper Skov. Since redirecting a shell to
a FrexxEd buffer doesn´t work for real, this is not a real shell.

############################################
File:		FrexxShell.FPL
Author:		Carsten Orthbandt
Email:		s6357@fb1.fhtw-berlin.de
Short:		gives you a virtual shell in FrexxEd.
Version:	1.0
Date:		5.7.95
Local settings:
Global settings:
Keysequence:	"Enter","Tab"
Type:		Key/Function
Prereq:		FrexxEd v1.6 fpl.library v12.1
############################################

FUNCTION
  This little hack gives you a shell in a FrexxEd buffer. It includes a nice
 file name completion feature (assigned to TAB).
 When started, this scripts opens a new buffer, sets up a shell environment
 for it and does a little echo. From now on you may use it as a real shell.
 You enter commands BEHIND the prompt "Sys:>" and get the output.
 To quit this little shell, simply kill the buffer. There is no real shell
 behind it´s functionality.

REQUIREMENTS
 You need a fpl.library supporting string catenation with "+". This works
 since version 12.1.
 You need a path to the following commands:
 - Execute
 - Delete
 It might be useful to have these commands resident.

COMMENT
 FrexxShell uses four temporary files:
  FConCmd_xxx - the command script
  FConOut_xxx - the commands output
  FConDir_xxx - the current dir after execution
  FConErr_xxx - error messages
 Although temp file names are unique you can´t run two shell buffers from
 the same FrexxEd session. This would require all variables to be local
 info vars. In my opinion, this is not very useful.
 The output (FConOut) is deleted after it has been loaded into Fred because it
 can get very long (try "list SYS: ALL"). All other files remain. I tried to
 get them deleted too, but somehow FrexxEd crashed everytime I did.
 You shouldn´t mind it since they all sum to a total of 7 lines (maximum).

 FrexxShell searches the last line of the buffer for ">". This char marks
 the end of prompt. You may change any contents of shell buffer, but commands
 are only executed if enterd behind that first ">".

 FrexxShell assigns it´s routine to the "Enter" key (means "Return" too). It
 simply does a Output("\n") if the current buffer is not the shell buffer.
 I wanted to execute the old function of this key, but KeyPress() seems not
 to work by now.

BUGS
 1) You can´t use interactive input. This should not be a real problem since
    FrexxShell redirects all input to NIL:. So all that happens if you
    type "DIR ?" is what happens you if press Return on every request in a
    real shell.
 2) You can´t get a return code. Since FrexxShell has to know the current
    directory after execution of the command line (might be "cd ram:"), it
    does a "cd" directly after command execution. To get information about
    failed statements all error outputs are displayed.
 3) You should never re-use a shell buffer for normal text editing since
    every time you press Return the last line will be interpreted as a shell
    command.
 4) FrexxShell should not be run twice from the same FrexxEd.
 5) Since there is no real shell behind it, no Shell-Startup, Aliases or
    local variables are possible.
 6) Change count is reset after each command to avoid that annoying requester
    if you quit a FrexxShell buffer.
 7) If you quit one Buffer and open a new directly after chances are high to
    get the same buffer id again. So you get a new shell without calling
    FrexxShell.FPL for that new buffer. This could be solved by hooking into
    Quit(). I´ll surely add this when KeyPress() gets fixed, which is required
    for a real clean-up.

FUTURE
 - Proper clean-up: Will be done when KeyPress() works finally.


Contents of text/edit/FrexxShell.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                  930    2256  41.2% -lh5- 671f Jul 10  1995 FrexxShell.FPL
[generic]                 1722    3569  48.2% -lh5- 1ea7 Jul  7  1995 FrexxShell.FPL.README
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total         2 files    2652    5825  45.5%            Jul 10  1995
Page generated in 0.02 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>