home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
488.lha
/
csh_v5.0
/
changes.doc.pp
/
changes.doc
Wrap
Text File
|
1991-03-12
|
14KB
|
278 lines
Overview
The new CShell 4.9 is no longer adequate to low end systems, it's too large
and consumes too much memory. I advise everybody who doesn't own a hard
drive to stick with the old versions. For those who can afford to run it,
however, this version is a practical tool in command mode and a powerful
language for writing scripts while remaining compatible with its old
scripts. As the version number 4.9 suggests, I'm note quite done yet, and
there might be bugs left. I count on you to report them to me. The source
is not included this time, but still available.
Some of the new features:
- works fine on an Amiga 3000 and under Kickstart 2.0
- is residentable
- file name completion with TAB
- freely programmable command line editing keys
- many new editing functions
- jump scrolling (three lines scrolled in one step, useful in interlace)
- automatic cd (type 'system' instead of 'cd system')
- quick cd (cd knows about all directories on your HD and jumps directly)
- ~ stands for previous current directory
- special support for the closing kickstart 2.0 gadget
- you can 'rback' programs by adding a single '&' to the command line
- it is possible to install menus to the console window
- some internal functions csh have become faster
- runs on VT terminals again, even command line editing works now
- many builtin functions now like 'echo @strleft( hello 3 )'
- you can finally use foreign character sets
- any letter can be coded using backslash: echo \101 ouputs 'A'
- more startup options: -b (priority -1) -t (terminal) -k (no ^C) etc.
- automatic rx-ing: you can 'rx' .rexx files by typing their name
- ^D now aborts batchfiles like under AmigaDOS
- will 'source' files with script bit set
- limit of 256 arguments removed
- limit of 20 commands per line removed
- limit of 256 bytes per source line extended to 512
New commands (and options):
- 'addbuffers' accepts any number drive/buffer pairs
- 'action' sends a action request to a file class
- 'alias'es can have more than one argument
- 'alias'es can prevent wild card expansion
- 'ascii' shows an ascii table
- 'assign' accepts any number logical/physical pairs
- 'assign' can create late/nonbinding assigns under kick 2.0
- 'cd' has an option to generate the list of all your directories
- 'class' defines a class of files and the actions allowed on them
- 'close' without arguments closes all open files
- 'cls' clears the screen, but now also works on a vt terminal
- 'copy' now copies the protection bits but clears archive bit
- 'copy -f' now 'freshens' like zoo. NOTE: *incompatible* with 4.02
- 'date' has a stopwatch built in
- 'dir' can sort forwards and backwards by name, size or time.
- 'dir' can hide .info files and files with the h-bit set
- 'dir' can show differences between directories
- 'dir' can show filenotes and file types
- 'echo' has an option to print to stderr
- 'exec' works better now
- 'filenote' can display filenotes, too
- 'getenv' reads a ARP or ENV: environment variable
- 'head', a filter, displays the first n lines of stdin
- 'input' can get characters in single character mode (!)
- 'info' also gives information on a single device
- 'linecnt', a filter, counts number of lines
- 'man' gets documentation to a shell command
- 'mem' can show only chip, only fast or bytes used sinc last mem -s
- 'menu' adds a menu
- 'mv' now clears the archive bit
- 'path' can also be used to set the path, not only to list it
- 'protect' can clear and set bits without disturbing the others
- 'ps' by default only shows the basenames of the started commands
- 'qsort' quicksorts from stdin to stdout
- 'readfile' completely reads a file and stores it in a variable
- 'rxsend' can receive results (now it's useful!)
- 'search' is much faster and has new output
- 'setenv' is used to set ENV: variables
- 'tail', a filter, prints the last lines of a file
- 'tee' copies stdin to stdout and stderr
- 'truncate' cuts the width of an ascii file
- 'touch' now clears the archive bit
- 'uniq' removes consecutive identical lines
- 'usage' shows the usage of a command
- 'waitforport' waits for an (arexx) port
- 'whereis' looks for a file on your hard drive
New system variables:
- '_every' contains a command to be executed before the prompt appears
- '_hilite' holds the highlighting attributes
- '_history' now can be set to 0, which disables history
- '_kick2x' indicates whether V36 dos.library could be opened
- '_lcd' is the last current directoy
- '_minrows' is the minimum number of rows a window must have to quickscroll
- '_nobreak', if set, disables ^C
- '_noreq' disables system requesters
- '_path' no more need slashes at the end of directories
- '_prompt' now has many special symbols like %t for current time
- '_qcd' holds the name of the file where the directoy list for cd is stored
- '_rxpath' stores the list of directories where .rexx files reside
- '_scroll' contains the scroll jump or 0 for no quick scrolling
- '_terminal' indicates wheter or not shell was started in terminal mode
- '_titlebar' can have special %-symbols like _prompt
- '_tool_xxx' holds default tools for file ending .xxx
- '_version' is the current shell version number
Functions:
- @abbrev is true if the str1 is an abbreviation of str2
- @abs returns absolute value of <num>
- @appext appends an extension to a string
- @availmem returns free 'chip', 'fast' or otherwise total memory
- @basename returns the file name without path
- @center centers a string
- @checkport indicates if given port exists
- @clinum returns the number of the given process
- @complete returns the first word an abbreviation matches
- @concat concats all args in one blank separated string
- @confirm gets confirmation for all its arguments
- @dectohex returns a string representing number in hex
- @delword returns a string with the n-th word deleted.
- @delwords deletes the next m words from the n-th.
- @dirs returns the directories among the given file names
- @drive outputs the drive ( device ) name associated to path
- @drives outputs all available drives
- @exists tells whether a file exists or not
- @fileblks returns the # of blocks needed for the files
- @filelen count the total number of bytes of the given files
- @fileprot returns a string like ---arwed
- @filereq brings up the arp file requester and returns the selected file
- @files gives you the files among those names, no directories
- @freebytes the number of free bytes on the given path
- @freeblks the number of free blocks on the given path
- @freestore the amount of free store on that path, given in K, M and G
- @getenv returns the value of the named env: variable
- @howmany indicates the # of shells running
- @index returns the index of str2 in str1 (starting at 1)
- @info the corresponding line from the 'info' command
- @intersect returns all words which are in both lists
- @lookfor looks for a file in the current directory and the given paths
- @lower lowercases its arguments
- @match returns the words in the that match the arp-pattern
- @max computes the maximum of all given numbers
- @megs expresses a number in K, M and G (-bytes)
- @member tells you if the first arg is among the remaining
- @min computes the minimum of all given numbers
- @nameext returns all after the last dot of filename.
- @nameroot returns all before the LAST dot of filename.
- @union returns all names that are in either list
- @pathname strips the base name from a path
- @pickargs picks of its arguments those which don't start with a '-'
- @pickopts picks of its arguments those which start witch a '-'
- @rpn computes the rpn expression. See rpn command
- @sortargs sorts its arguments alphabetically
- @split makes each blank separated part of @string a word
- @strcmp returns -1, 0 or 1 depending of alphabetical comparison
- @strhead see strhead command
- @strleft see strleft command
- @strmid see strmid command
- @strright see strright command
- @strtail see strtail command
- @subword returns the n-th word of the given list
- @subword returns the next m words word of the given list starting from n
- @tackon see tackon command
- @unique sorts the arguments and makes each of them unique
- @upper upper cases the given words
- @volume returns the volume name in that path or "" if no disk present
- @without returns all names of list 1 that are not in list 2
- @word same as @subword
- @words returns the number of args
Bug fixes:
- recursive wild card expansion does not crash the Amiga 3000 anymore
- recursive wild card expansion does not lose memory anymore
- now works on AUX:
- trying to start a non-object-file now properly prints 'Command Not Found'
- automatic sourcing now also works if you already add .sh to the file name
- files longer than 999999 bytes no longer misalign 'dir'
- exec does not discard the rest of the command line ('exec echo hi;echo ho')
- all memory trashing fixed. Thanks to C= for their great debugging tools!
- source doesn't forget last character if batchfile was not CR terminated
- run & rback also search AmigaDOS path now
- division by zero does not crash rpn anymore
- temporary pipe files are now written to t: instead of ram:
- shift-tab does not cause a lockup anymore
- running the shell via aux: no longer crashes the machine
- 'history partial' now numbers the lines correctly
- strleft, strright and strmid no longer crash on strings > 256 bytes
- source with no arguments now prints correct error message
- 'input' now cuts down lines longer than 256 bytes instead of crashing
- cursor-up no more deletes lines if there's an invalid entry in the history
- if history fails, no empty history entry is generated
- 'echo "---"' and even 'echo ---' work, but 'echo "-a"' still doesn't
- international character sets can be used
- 'copy -u' won't copy a file with identical date stamp but in uppercase
- 'copy -u' will no longer access low memory
- 'echo "echo mem | shell" | shell' now works, not only every second time
- starting from workbench now prevented
- editing lines longer than 256 bytes is now correctly prevented
- word-right cursor movement works correclty with multiple blanks
- 'if'-stack will be adjusted when a batch file is exited
- relabel occasionally crashed in Syquest drives. should be okay now
New to 4.02A:
- Fixed bug that caused loss of memory on exit.
- cp now copies protection bits; use -f switch if you want to avoid this.
- Added commands: man (and alias manlist), uniq, head, tail, tee.
- This doc has been reformatted to work with man.
New to 4.01A:
- This version features mostly bug fixes and corrections:
* Window title is restored after quitting.
* rxrec now answers to the 'bye' message.
* rpn can now be redirected and piped; however, this causes
some problem (see rpn for info).
* resident list now works with ARP 1.3. To recompile source, you must
modify include file "libraries/arpbase.h".
Change definition of rpn_Usage in struct ResidentProgramNode from LONG
to WORD.
* pri no more assumes 20 CLI maximum.
* you can now split long lines in source files even into more than 2 lines.
- Added much info in this doc about source files (chapter XI)
- Added copyright notice (see under restrictions).
New to 4.00A:
- This version is called 4.00A because it is not 100% compatible with
previous versions. We choose to accept this in order to better support
the new ARP.library 1.3.
- External commands are searched in a different order than before; Shell
path is now searched AFTER current directory, AmigaDOS path and C:.
- ARP pattern matching has been implemented (in part for line arg expanding,
fully for search -w).
- Internal changes for various optimizations.
- Search command has been improved in several ways.
- New commands: basename, tackon.
- New options: if -v, resident -d, fornum -v -s, dir -n.
- Fixed bugs with dir (some dirs remained locked), foreach -v, htype
(blanks were treated as binary), info (for devices > 32M).
- rback command now works ok (run, however, doesn't).
- Oh, I forgot: it also has an AREXX port... And you don't even have to get
AREXX to use it. See new commands rxsend, rxrec
New to 3.03A:
- New filter commands fltlower, fltupper.
- Added configuration file feature: now if you have a file named S:.login,
it will be sourced for every Shell you start.
- New option dir -c.
- New editing feature: shift-left(right) arrow move cursor to previous(next)
word.
- Bugs fixed: alias command wasn't listed in help; typing a number as a
command was interpreted like 'alias'.
New to 3.02A:
- New commands: fornum, forline, strleft, strright, strmid, strlen, exec.
- Improved commands: foreach, pri.
- New system variable _clinumber.
- You can now split long lines in source files (see source for details).
- window -q now lists also position of screens/windows, not only dimension.
- Since strings are handled directly from Shell with new commands,
rpn is now used only for calculations; string commands are gone.
However, now RPN is really usable.
- Changed rawgets() to fix some problems with function keys, multi-line
editing and window resizing; also, fixed bug with ^E.
- cat now warns you if it can't find any file matching your pattern.
- Now uses DOS packets to get ptr to CLI window; this fixes a bug that
caused problems if Shell was run on unactive windows.
- Fixed minor bugs (htype printed some more ASCII bytes, some commands
returned random values, history didn't print CR's).
- Heavy mods to this file.