[comp.sys.amiga.tech] SKsh 1.6 available

koren@hpfelg.HP.COM (Steve Koren) (10/11/90)

This posting is the Addendum from version 1.6 of SKsh.   I will be sending
version 1.6 to Fred Fish this week, and also have it put on abcfd20.

    - steve

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ title page deleted to save space ]

          Addendum to Version 1.6

            This  document  describes  additions and changes to SKsh  since
            version 1.5.  1.6 is a  "small"  release; there are several new
            features, but  nothing "significant".  This release is intended
            mainly to fix  several bugs in 1.5, and to add a few minor fea-
            tures (such  as  command line cut and paste).  I am making this
            a "small" release for the following reasons:

               * I wanted to get  it  distributed as soon as possible after
                 1.5 to  fix  the  "+C"  file  completion bug and the ARexx
                 port bug described below.

               * I  am  currently too busy to do another major release in a
                 reasonable time; this will help bridge the  gap  until the
                 next major release.

               * I am  changing addresses and wanted to get the new contact
                 address in this version.  See the MiscInfo.doc manual  for
                 details.


            The following are changes since SKsh 1.5:

            cilist command added

               A  new  cilist  command, similar to the dwclist and complist
               commands, has been added.   It  contains SKsh patterns which
               will  be  ignored by the file completion mechanism.  For ex-
               ample,  if  this  list  contained '*.bak' and "*.info",  all
               .bak and .info files would  be  ignored for file completion.
               Any  pattern may  be  used,  and  the  '/'  character is not
               treated specially.

               When  adding  patterns to the cilist, they must be quoted to
               avoid  being  interpreted by the shell.  Another solution is
               to add  the  cilist command to the dwclist, which allows the
               wildcards to be passed on unexpanded.

               This  command  is  described in more detail in the reference
               manual.  Please see that document for details.


            'r' added as synonym for 'd' in complist, dwclist, cilist

               It  was  previously  difficult to  remember whether 'r' (for
               remove) was  used  in  the  above  commands, or 'd' (for de-
               lete).  Both are  now  accepted, and remove the supplied ar-
               guments from the indicated list.







          SKsh Amiga Shell             Page 2              Addendum to 1.6









            -q option added to crc command

               A  -q  option is now  accepted by the crc command.  This op-
               tion  tells  crc not to  output the file names, but only the
               redundancy code information.   This  option actually existed
               in the 1.4 version, but was not documented.


            +C File completion fixed

               There was a bug in SKsh 1.5 which  caused  filename  comple-
               tion to break if the  +C  (complist) option was unset.  This
               has been fixed.


            ARexx port bug fixed

               A value in SKsh 1.5 was off by  several orders of magnitude,
               causing  an  SKsh  invoked with an ARexx port  to  both  use
               large amounts of CPU time, and to  cause  strange  side  ef-
               fects in the system.  This has been fixed.


            More keymapping functions added

               Several new  key  map  functions have been added, including:
               ISM  (insert mode), OVS (overstrike mode), PIO (previous in-
               sert/overstrike mode), YNK  (yank),  CEL  (copy  to  end  of
               line), and ERC (explicitly set repeat count).


            Esc-# macro fixed

               The  Esc-#  (comment out line) macro  previously worked only
               in  insert mode.  In overstrike mode,  it  would  erase  the
               first  character of the line.  It now uses  the  new  keymap
               functions  mentioned  above  to  operate correctly in either
               insert or overstrike mode.


            Touch bug fixed

               The  touch  command would previously update the datestamp of
               a file only if the file was in the  current directory.  This
               has been fixed.


            cp bug fixed

               A  similar  datestamp bug in "cp" has been fixed; files cop-
               ied  to   other   directories  now  correctly  retain  their
               datestamp.   This  makes  the  "-u"  (update) option to "cp"
               much more useful.



          SKsh Amiga Shell             Page 3              Addendum to 1.6










            head command now accepts multiple arguments

               The  head command previously ignored multiple arguments.  It
               no longer does this.


            line truncation problem fixed

               Certain  commands,  such  as  "history" and  "set"  truncate
               their  output to the width  of  the  window.   However, they
               were  incorrectly truncating the output even if it was redi-
               rected to a file or variable.  This no longer  happens; they
               output the full line width in these cases.


            tail buffer size change

               If  the  output  of  the  tail command is to the console, it
               will  output 80 byte records at a time instead of the previ-
               ous  16K.   This   allows the  output to be stopped from the
               console device.  It will still use 16K  blocks  to  increase
               performance if the output is directed to a file.

            tail character 0 bug fixed

               If  the  1.5  tail command was given an argument larger than
               the  number of lines in the file, the first  character would
               be omitted.  This no longer happens.


            INTERACTIVE variable added

               A  variable has been  added  which  can  be  used  to  check
               whether  the  current SKsh invocation is an interactive one.
               This is in  preparation for a change in the invocation model
               to take place in SKsh 1.7.   Please  see  the  Reference.doc
               entry  for  the  INTERACTIVE  variable  for  details on this
               change.  It  will  become important to understand the INTER-
               ACTIVE  variable in SKsh 1.7;  I  am  adding it now to avoid
               making a change in the invocation model suddenly.


            find external command added

               A  find  command,  similar to the  Un*x  command of the same
               name, has been added as  an  external binary.  Find has many
               options, including the following:








          SKsh Amiga Shell             Page 4              Addendum to 1.6









                 -name pattern       find files matching pattern
                 -path pattern       similar to -name but for paths
                 -comment pattern    files who's comment matches pattern
                 -type { d | f }     limit to directories or files
                 -depth              perform depth first search
                 -case               make pattern matching case sensitive
                 -exec command       files for which cmd returns true
                 -cmd command        generate command list for (any) shell
                 -hidden             include "hidden" files
                 -blocks n           files n blocks in size
                 -bigger n           files n bytes or bigger
                 -smaller n          files n bytes or smaller
                 -quiet              don't print unreadable file errors
                 -newer file         files newer than given file
                 -newer date [time]  files newer than given date/time
                 -older file         files older than given file
                 -older date [time]  files older than given date/time
                 -print              print matching file names
                 -ver                print the version of find

               Options can be  combined; for example, to find all files un-
               der the /usr tree larger than 10000 bytes but  smaller  than
               50000 bytes and which contain the string "mytext":

                 find /usr -type f -bigger 10000 -smaller 50000 \
                      -exec "sys:bin/fgrep -ls mytext %s" -print

               Or, to find  all  files  under the /usr or /misc trees newer
               than 20-Aug-90 and  who's  file  comment contains the string
               "foo" and ends in a "Z":

                 find /usr /misc -newer 20-aug-90 -comment '*foo*Z' -print

               I  believe this find is one of the more complete ones avail-
               able for the Amiga.   The  find command is described in much
               more  detail in the ExtCmds.doc manual.  Please see the  en-
               try there for more information.


            New option flag added

               A new "H"  option has been added which prints lines executed
               with  any  of  the  "history -e" style mechanisms (which in-
               clude "!" and "!!").  If there  are  commands in the history
               list  which  produce no visible action, the "H" option makes
               it easy to see what has been executed.










          SKsh Amiga Shell             Page 5              Addendum to 1.6









            [class] bug fixed

               A  problem with using [] style classes at the beginning of a
               wildcard  pattern has  been  fixed.   For  example, "[a-h]*"
               would  previously not work as a wildcard  pattern, but "*[a-
               h]" would.   They  both  work  correctly now.  Note that you
               must  surround  the  '['  character by spaces if you wish to
               use it as a separate token in a test expression.


            -f option added to rm command

               The  rm  command now accepts an "f" (force) flag.  If given,
               rm will  effectively do a "chmod +wd" on each file or direc-
               tory  before deletion.  This stops "rm" from  issuing an er-
               ror if some files did not have delete permission.


            Minimum stack size downgraded to 6K

               The  minimum  acceptable stack size is now 6K instead of the
               previous 10K.


            rm and rmdir now accept trailing "/"

               The  rm  and  rmdir commands now accept a trailing slash for
               directory names.   This  is  useful, as file completion puts
               one there automatically.


            New variables added

               There   previously   existed   variables   named   "_DIR_S",
               "_DIR_E",  etc,  which  controlled the  display of files and
               directories  by  the  ls  command with the -F option.  Since
               these  variables could be set  to  either printing sequences
               (such as  a  "/"  at  the  end  of  directory names), or non
               printing  sequences (such as $_ANSI_P2),  there  was  previ-
               ously  no  way  for  "ls"  to  determine the actual printing
               length of the filename and  special characters.  Occasionaly
               odd  effects would show up  if  these  variables were set to
               printing sequences.   (For  example, blank lines would often
               be printed).  Three new  variables have been added to handle
               this problem.  "_DIR_L" stores  the  displayed length of the
               _DIR_S and  _DIR_E  variables; _EXEC_L and _FILE_L act simi-
               larly for  executables and files.  The concept is similar to
               the PNPC variable.








          SKsh Amiga Shell             Page 6              Addendum to 1.6









            srun reports errors and unlocks files

               The  srun command previously did not report an error message
               if it  could  not  execute the given file, or could not open
               the  input  or  output files.  It will now  correctly report
               these  error conditions.  It will  also  unlock any files it
               has  opened  if  an  error is  encountered; this will enable
               those files to be deleted later.


            mplist command added

               An  mplist  command has been  added  which  allows a limited
               form of filename mapping.   A  number of users had asked for
               the  ability to, for  example, map "/dh1/myfile" to "dh1:my-
               file".   This  command allows such mappings to be performed,
               but in  a  limited manner.  It is only a stopgap measure un-
               til  AmigaDos  supports  symbolic  links.   Please  see  the
               Reference.doc entry for details.


            info command output extended

               The  info  command  now  reports the disk state (read/write,
               read only, etc) in the report for each device.


            mv command resets archive bits

               The  mv  command now resets archive bits on files which have
               been moved.


          A word about .skshinit vs .skshrc

            A few people  have  been  confused about the difference between
            these two  files.   The  difference is that .skshinit is for my
            use, and .skshrc is for yours.  All  user  modifications should
            go in .skshrc.  That way,  when  I  supply a new .skshinit file
            with each  release, it won't overwrite your customizations, and
            you won't have  to  manually merge the two.  The .skshrc file I
            have  shipped  since  the  first  release is trivial and is in-
            tended  as  an  example to be  appended to.  You do not need to
            re-install  it  after each release; you can simply use your old
            version.

            The .skshrc file sourced  after the .skshinit file when SKsh is
            started.  That way, you can  override or re-define things which
            are set up by .skshinit.  The new .skshinit file  I  supply (or
            the .pp form) should be re-installed after each release.






          SKsh Amiga Shell             Page 7              Addendum to 1.6









          Misc. Notes

            Don't  forget that you will  have  to  regenerate any .pp files
            which  you  produced with SKsh 1.5.  This includes .pp versions
            of your .skshrc file.  Old  versions will not run and will gen-
            erate  an  error  message from SKsh.  The Check_1.6.sksh script
            should be used  to  check  the  installation of this version of
            SKsh.
















































          SKsh Amiga Shell             Page 8              Addendum to 1.6

koren@hpfelg.HP.COM (Steve Koren) (10/15/90)

> This posting is the Addendum from version 1.6 of SKsh.   I will be sending
> version 1.6 to Fred Fish this week, and also have it put on abcfd20.

It is on abcfd20 now under /incoming/amiga/SKsh016.zoo.

    - steve

angst@batserver.cs.uq.oz.au (Angst) (10/15/90)

Steve writes:

>This posting is the Addendum from version 1.6 of SKsh.   I will be sending
>version 1.6 to Fred Fish this week, and also have it put on abcfd20.

Has anyone tried this under 2.0 yet ?  Steve ?  If no-one has, I'll try it
myself soon, and post the result.

>    - steve

Angst

---------------
The Moth: "The cow just .... ate them."
The Tick: "Allright !!  Bovine intervention !!"
---------------

koren@hpfelg.HP.COM (Steve Koren) (10/17/90)

> Steve writes:

> >This posting is the Addendum from version 1.6 of SKsh.   I will be sending
> >version 1.6 to Fred Fish this week, and also have it put on abcfd20.

> Has anyone tried this under 2.0 yet ?  Steve ?  If no-one has, I'll try it
> myself soon, and post the result.

Steve wishes he had a 2.0 system to try it on!

Anyhow, someone emailed me yesterday saying that it worked on his
2.0 system.  However, with SKsh 1.5 it seemed to work just fine for
some people and crash for others, all under 2.0 on a 3000.  I don't
yet know what is going on.

I'm going to try compiling it with Lattice 5.10 (which arrived today)
and see if that makes any difference.

   - steve

ps - sorry if this posting appeared twice; had some problems posting it.