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
Text File  |  1991-03-12  |  14KB  |  278 lines

  1. Overview
  2.  
  3. The new CShell 4.9 is no longer adequate to low end systems, it's too large
  4. and  consumes  too  much memory.  I advise everybody who doesn't own a hard
  5. drive  to stick with the old versions.  For those who can afford to run it,
  6. however,  this  version  is a practical tool in command mode and a powerful
  7. language  for  writing  scripts  while  remaining  compatible  with its old
  8. scripts.   As the version number 4.9 suggests, I'm note quite done yet, and
  9. there might be bugs left.  I count on you to report them to me.  The source
  10. is not included this time, but still available.
  11.  
  12. Some of the new features:
  13.  
  14. - works fine on an Amiga 3000 and under Kickstart 2.0
  15. - is residentable
  16. - file name completion with TAB
  17. - freely programmable command line editing keys
  18. - many new editing functions
  19. - jump scrolling (three lines scrolled in one step, useful in interlace)
  20. - automatic cd  (type 'system' instead of 'cd system')
  21. - quick cd (cd knows about all directories on your HD and jumps directly)
  22. - ~ stands for previous current directory
  23. - special support for the closing kickstart 2.0 gadget
  24. - you can 'rback' programs by adding a single '&' to the command line
  25. - it is possible to install menus to the console window
  26. - some internal functions csh have become faster 
  27. - runs on VT terminals again, even command line editing works now
  28. - many builtin functions now like 'echo @strleft( hello 3 )'
  29. - you can finally use foreign character sets
  30. - any letter can be coded using backslash: echo \101 ouputs 'A'
  31. - more startup options: -b (priority -1) -t (terminal) -k (no ^C) etc.
  32. - automatic rx-ing: you can 'rx' .rexx files by typing their name
  33. - ^D now aborts batchfiles like under AmigaDOS
  34. - will 'source' files with script bit set
  35. - limit of 256 arguments removed
  36. - limit of 20 commands per line removed
  37. - limit of 256 bytes per source line extended to 512
  38.  
  39. New commands (and options):
  40.  
  41. - 'addbuffers' accepts any number drive/buffer pairs
  42. - 'action' sends a action request to a file class
  43. - 'alias'es can have more than one argument
  44. - 'alias'es can prevent wild card expansion
  45. - 'ascii' shows an ascii table
  46. - 'assign' accepts any number logical/physical pairs
  47. - 'assign' can create late/nonbinding assigns under kick 2.0
  48. - 'cd' has an option to generate the list of all your directories
  49. - 'class' defines a class of files and the actions allowed on them
  50. - 'close' without arguments closes all open files
  51. - 'cls' clears the screen, but now also works on a vt terminal
  52. - 'copy' now copies the protection bits but clears archive bit
  53. - 'copy -f' now 'freshens' like zoo. NOTE: *incompatible* with 4.02
  54. - 'date' has a stopwatch built in
  55. - 'dir' can sort forwards and backwards by name, size or time.
  56. - 'dir' can hide .info files and files with the h-bit set
  57. - 'dir' can show differences between directories
  58. - 'dir' can show filenotes and file types
  59. - 'echo' has an option to print to stderr
  60. - 'exec' works better now
  61. - 'filenote' can display filenotes, too
  62. - 'getenv' reads a ARP or ENV: environment variable
  63. - 'head', a filter, displays the first n lines of stdin
  64. - 'input' can get characters in single character mode (!)
  65. - 'info' also gives information on a single device
  66. - 'linecnt', a filter, counts number of lines
  67. - 'man' gets documentation to a shell command
  68. - 'mem' can show only chip, only fast or bytes used sinc last mem -s
  69. - 'menu' adds a menu
  70. - 'mv' now clears the archive bit
  71. - 'path' can also be used to set the path, not only to list it
  72. - 'protect' can clear and set bits without disturbing the others
  73. - 'ps' by default only shows the basenames of the started commands
  74. - 'qsort' quicksorts from stdin to stdout
  75. - 'readfile' completely reads a file and stores it in a variable
  76. - 'rxsend' can receive results (now it's useful!)
  77. - 'search' is much faster and has new output
  78. - 'setenv' is used to set ENV: variables
  79. - 'tail', a filter, prints the last lines of a file
  80. - 'tee' copies stdin to stdout and stderr
  81. - 'truncate' cuts the width of an ascii file
  82. - 'touch' now clears the archive bit
  83. - 'uniq' removes consecutive identical lines
  84. - 'usage' shows the usage of a command
  85. - 'waitforport' waits for an (arexx) port
  86. - 'whereis' looks for a file on your hard drive
  87.  
  88. New system variables:
  89.  
  90. - '_every' contains a command to be executed before the prompt appears
  91. - '_hilite' holds the highlighting attributes
  92. - '_history' now can be set to 0, which disables history
  93. - '_kick2x' indicates whether V36 dos.library could be opened
  94. - '_lcd' is the last current directoy
  95. - '_minrows' is the minimum number of rows a window must have to quickscroll
  96. - '_nobreak', if set, disables ^C
  97. - '_noreq' disables system requesters
  98. - '_path' no more need slashes at the end of directories
  99. - '_prompt' now has many special symbols like %t for current time
  100. - '_qcd' holds the name of the file where the directoy list for cd is stored
  101. - '_rxpath' stores the list of directories where .rexx files reside
  102. - '_scroll' contains the scroll jump or 0 for no quick scrolling
  103. - '_terminal' indicates wheter or not shell was started in terminal mode
  104. - '_titlebar' can have special %-symbols like _prompt
  105. - '_tool_xxx' holds default tools for file ending .xxx
  106. - '_version' is the current shell version number
  107.  
  108. Functions:
  109.  
  110. - @abbrev    is true if the str1 is an abbreviation of str2
  111. - @abs       returns absolute value of <num>
  112. - @appext    appends an extension to a string
  113. - @availmem  returns free 'chip', 'fast' or otherwise total memory
  114. - @basename  returns the file name without path
  115. - @center    centers a string
  116. - @checkport indicates if given port exists
  117. - @clinum    returns the number of the given process
  118. - @complete  returns the first word an abbreviation matches
  119. - @concat    concats all args in one blank separated string
  120. - @confirm   gets confirmation for all its arguments
  121. - @dectohex  returns a string representing number in hex
  122. - @delword   returns a string with the n-th word deleted.
  123. - @delwords  deletes the next m words from the n-th.
  124. - @dirs      returns the directories among the given file names
  125. - @drive     outputs the drive ( device ) name associated to path
  126. - @drives    outputs all available drives
  127. - @exists    tells whether a file exists or not
  128. - @fileblks  returns the # of blocks needed for the files
  129. - @filelen   count the total number of bytes of the given files
  130. - @fileprot  returns a string like ---arwed
  131. - @filereq   brings up the arp file requester and returns the selected file
  132. - @files     gives you the files among those names, no directories
  133. - @freebytes the number of free bytes on the given path
  134. - @freeblks  the number of free blocks on the given path
  135. - @freestore the amount of free store on that path, given in K, M and G
  136. - @getenv    returns the value of the named env: variable
  137. - @howmany   indicates the # of shells running
  138. - @index     returns the index of str2 in str1 (starting at 1)
  139. - @info      the corresponding line from the 'info' command
  140. - @intersect returns all words which are in both lists
  141. - @lookfor   looks for a file in the current directory and the given paths
  142. - @lower     lowercases its arguments
  143. - @match     returns the words in the that match the arp-pattern
  144. - @max       computes the maximum of all given numbers
  145. - @megs      expresses a number in K, M and G (-bytes)
  146. - @member    tells you if the first arg is among the remaining
  147. - @min       computes the minimum of all given numbers
  148. - @nameext   returns all after the last dot of filename.
  149. - @nameroot  returns all before the LAST dot of filename.
  150. - @union     returns all names that are in either list
  151. - @pathname  strips the base name from a path
  152. - @pickargs  picks of its arguments those which don't start with a '-'
  153. - @pickopts  picks of its arguments those which start witch a '-'
  154. - @rpn       computes the rpn expression. See rpn command
  155. - @sortargs  sorts its arguments alphabetically
  156. - @split     makes each blank separated part of @string a word
  157. - @strcmp    returns -1, 0 or 1 depending of alphabetical comparison
  158. - @strhead   see strhead command
  159. - @strleft   see strleft command
  160. - @strmid    see strmid command
  161. - @strright  see strright command
  162. - @strtail   see strtail command
  163. - @subword   returns the n-th word of the given list
  164. - @subword   returns the next m words word of the given list starting from n
  165. - @tackon    see tackon command
  166. - @unique    sorts the arguments and makes each of them unique
  167. - @upper     upper cases the given words
  168. - @volume    returns the volume name in that path or "" if no disk present
  169. - @without   returns all names of list 1 that are not in list 2
  170. - @word      same as @subword
  171. - @words     returns the number of args
  172.  
  173. Bug fixes:
  174.  
  175. - recursive wild card expansion does not crash the Amiga 3000 anymore
  176. - recursive wild card expansion does not lose memory anymore
  177. - now works on AUX:
  178. - trying to start a non-object-file now properly prints 'Command Not Found'
  179. - automatic sourcing now also works if you already add .sh to the file name
  180. - files longer than 999999 bytes no longer misalign 'dir'
  181. - exec does not discard the rest of the command line ('exec echo hi;echo ho')
  182. - all memory trashing fixed. Thanks to C= for their great debugging tools!
  183. - source doesn't forget last character if batchfile was not CR terminated
  184. - run & rback also search AmigaDOS path now
  185. - division by zero does not crash rpn anymore
  186. - temporary pipe files are now written to t: instead of ram:
  187. - shift-tab does not cause a lockup anymore
  188. - running the shell via aux: no longer crashes the machine
  189. - 'history partial' now numbers the lines correctly
  190. - strleft, strright and strmid no longer crash on strings > 256 bytes
  191. - source with no arguments now prints correct error message
  192. - 'input' now cuts down lines longer than 256 bytes instead of crashing
  193. - cursor-up no more deletes lines if there's an invalid entry in the history
  194. - if history fails, no empty history entry is generated
  195. - 'echo "---"' and even 'echo ---' work, but 'echo "-a"' still doesn't
  196. - international character sets can be used
  197. - 'copy -u' won't copy a file with identical date stamp but in uppercase
  198. - 'copy -u' will no longer access low memory
  199. - 'echo "echo mem | shell" | shell' now works, not only every second time
  200. - starting from workbench now prevented
  201. - editing lines longer than 256 bytes is now correctly prevented
  202. - word-right cursor movement works correclty with multiple blanks
  203. - 'if'-stack will be adjusted when a batch file is exited
  204. - relabel occasionally crashed in Syquest drives. should be okay now
  205.  
  206. New to 4.02A:
  207.  
  208. - Fixed bug that caused loss of memory on exit.
  209. - cp now copies protection bits; use -f switch if you want to avoid this.
  210. - Added  commands: man (and alias manlist), uniq, head, tail, tee.
  211. - This doc has been reformatted to work with man.
  212.  
  213. New to 4.01A:
  214.  
  215. - This version features mostly bug fixes and corrections:
  216.  * Window title is restored after quitting.
  217.  * rxrec now answers to the 'bye' message.
  218.  * rpn can now be redirected and piped; however, this causes
  219.     some problem (see rpn for info).
  220.  * resident list now works with ARP 1.3. To recompile source, you must
  221.     modify include file "libraries/arpbase.h".
  222.     Change definition of rpn_Usage in struct ResidentProgramNode from LONG
  223.     to WORD.
  224.  * pri no more assumes 20 CLI maximum.
  225.  * you can now split long lines in source files even into more than 2 lines.
  226. - Added much info in this doc about source files (chapter XI)
  227. - Added copyright notice (see under restrictions).
  228.  
  229. New to 4.00A:
  230.  
  231. - This version is called 4.00A because it is not 100% compatible with
  232.   previous versions. We choose to accept this in order to better support
  233.   the new ARP.library 1.3.
  234. - External commands are searched in a different order than before; Shell
  235.   path is now searched AFTER current directory, AmigaDOS path and C:.
  236. - ARP pattern matching has been implemented (in part for line arg expanding,
  237.   fully for search -w).
  238. - Internal changes for various optimizations.
  239. - Search command has been improved in several ways.
  240. - New commands: basename, tackon.
  241. - New options: if -v, resident -d, fornum -v -s, dir -n.
  242. - Fixed bugs with dir (some dirs remained locked), foreach -v, htype
  243.   (blanks were treated as binary), info (for devices > 32M).
  244. - rback command now works ok (run, however, doesn't).
  245. - Oh, I forgot: it also has an AREXX port... And you don't even have to get
  246.   AREXX to use it. See new commands rxsend, rxrec
  247.  
  248. New to 3.03A:
  249.  
  250. - New filter commands fltlower, fltupper.
  251. - Added configuration file feature: now if you have a file named S:.login,
  252.   it will be sourced for every Shell you start.
  253. - New option dir -c.
  254. - New editing feature: shift-left(right) arrow move cursor to previous(next)
  255.   word.
  256. - Bugs fixed: alias command wasn't listed in help; typing a number as a
  257.   command was interpreted like 'alias'.
  258.  
  259. New to 3.02A:
  260.  
  261. - New commands: fornum, forline, strleft, strright, strmid, strlen, exec.
  262. - Improved commands: foreach, pri.
  263. - New system variable _clinumber.
  264. - You can now split long lines in source files (see source for details).
  265. - window -q now lists also position of screens/windows, not only dimension.
  266. - Since strings are handled directly from Shell with new commands,
  267.   rpn is now used only for calculations; string commands are gone.
  268.   However, now RPN is really usable.
  269. - Changed rawgets() to fix some problems with function keys, multi-line
  270.   editing and window resizing; also, fixed bug with ^E.
  271. - cat now warns you if it can't find any file matching your pattern.
  272. - Now uses DOS packets to get ptr to CLI window; this fixes a bug that
  273.   caused problems if Shell was run on unactive windows.
  274. - Fixed minor bugs (htype printed some more ASCII bytes, some commands
  275.   returned random values, history didn't print CR's).
  276. - Heavy mods to this file.
  277.  
  278.