Hamilton C shell Recent Changes



Hamilton C shell(tm) for Windows(R)  Release Notes 4.0
Copyright (c) 1989-2009 by Hamilton Laboratories.  All rights reserved.


Change Summary


Fix Level 2.3.n Changes:

703. The mv/rm/cp -c (continue) option added at 2.3.L was on all the time,
    not just when selected using the -c flag.  That's fixed.

704. [NT] du didn't work with just a drive letter, it wanted a colon following.
    That wasn't as intended and has been fixed.


Fix Level 2.3.o Changes:

705. All references to our old Waltham address have been updated to reflect
    our move back to Sudbury, Massachusetts.

706. The C shell wasn't properly responding to #!/bin/csh lines at the
    start of a script.  It works now.

707. xargs didn't mention the -r option in help screen.  It does now.

708. [NT] The du -c option didn't work; it always reported on the C: drive.
    That's fixed.

709. The update.csh script has been added to the samples directory.

710. The C shell pattern-matching operators !~ and =~ were supposed to
    treat ':' as an ordinary character.  Instead, it treated it as a
    delimiter.  That's fixed.



Fix Level 3.0 Changes:

711. The longstanding problem with "ps -s | more" is fixed.  Microsoft
    appears to have changed the way the HKEY_PERFORMANCE_DATA\Counters
    object works:  individual names (e.g., "Virtual Bytes") can appear
    multiple times in the list, but only the first counter number is
    actually usable.

712. Support for OS/2, MIPS, PowerPC and Alpha are dropped.

713. All our contact information has been updated.

714. The C shell didn't parse floating point literals of the form nn.nnE-nn
    correctly.  It does now.

715. Postage.csh has been updated with current US postage rates.

716. Colors.csh now resets MoreEOF, DIRECTORIES, SYSTEMFILES, SYSTEMDIRS
    and HIGHLIGHT, so that if you change to something else (e.g., laptop
    colors) then back, everything is restored.

717. The cl.csh sample script has been retired.  (Current versions of cl.exe
    supplied with Microsoft Visual Studio work just fine.)  Also, the
    makecpgm.csh sample script now includes user32.lib.

718. The undocumented csh -Q (quiet) option is now documented.

719. The entire product has been rebuilt using the latest Microsoft
    Visual Studio for Windows XP, though still retaining back-level
    compatibility with earlier Windows releases.

720. The default for MixedCaseDrives (if that variable's not defined) has
    been changed:  Everything is now mixed case, reflecting the fact that
    no one's still using 8.3 filenames anymore.

721. Des is now legal to export, so there's no longer a separate export
    version.

722. Shortcut can now be used to set console properties on the shortcut.

723. The C shell will now look for a startup.csh and login.csh file in
    the distribution directory, e.g., d:\Program Files\Hamilton C shell 2003,
    if it doesn't find one in the Home directory.

724. Any inherited value for the SHELL environment variable is discarded;
    the value of SHELL is always set at startup to be the actual path
    to this particular csh.exe.

725. The default colors are changed as follows to assume a white on blue
    window:

      Color       Old default             New default

      Deletions   bright red              bright white on red
      Additions   bright green            bright white on green
      MorePrompt  green                   red on white
      MoreFillin  white                   black
      MoreError   bright yellow           bright white on red

727. At last(!), the shell comes with an automated install and uninstall
    using the Microsoft Installer and the Add/Remove Programs applet.

728. The User Guid is now on-line as hypertext and as a Word document.
    PowerPoint slides deck tutorials on the shell and on Tar and MT have
    been added.

729. If a popup was generated (e.g., after the 10th command in the demo)
    after a command that had just scrolled the screen, the popup would be
    off the top of the window.  That's fixed.


Fix Level 3.0.a Changes:

730. The PV_Annuity and FV_Annuity calculations were wrong in finance.csh
    and have been corrected.  Also, the Annuity_PV and Annuity_FV procedures
    have been added.

731. ls encountered a buffer overrun error on any shortname (e.g., c:\progra~1)
    arguments.  That's been fixed.

732. All the hypertext is now Palatino Linotype font rather than Times Roman
    for better readability.


Fix Level 3.0.b Changes:

733. The new auto install would fail on Japanese and other machines with
    localized names for Start Menu\Programs and Desktop.  That's fixed.

734. Chown and chgrp have been substantially reworked to support long Unicode
    filenames and to fix a bug that caused attempts to recursively take (-rT)
    a directory tree to fail.

735. A new -c (continue on error) option has been added to mv, cp and rm.


Fix Level 3.0.c Changes:

736. Tar had a bug that would cause it to crash if it tried to append a small
    file onto an archive on tape that didn't even fill a whole block.  That's
    fixed.


Fix Level 3.0.d Changes:

737. Tar couldn't copy files larger than 4GB (32-bit length) to an archive.
    The new limit is 5.85GB (eleven octal digits.)


Fix Level 3.0.e Changes:

738. Tar would fail when trying to write a continuation tape.  That now
    works.


Fix Level 3.0.f Changes:

739. Tar has been substantially improved.  It now supports binary fields in
    a tar header, allowing a maximum filesize of 8.4M petabytes.  Problems
    reading continuation tapes have been fixed and tar now prompts rather
    than simply exiting with an error if it's asked to read a continuation
    tape before the tape has actually been inserted.  After reading a tape,
    tar now ejects as well as rewinds by default.  A new -# option has been
    added as a shortcut for reading and writing the tape drive.  The help
    screen has been somewhat improved.

740. The AllowVistaTapeAccess.csh script and the associated
    AllowVistaTapeAccess.reg file have been added to the Setup directory
    and may be used, as described in the tar -h help screen, to grant
    access to the tape device under Vista Basic or Home Premium.

741. Minor changes were made to chown and chgrp to eliminate a Utf8 sequence
    from the output and to improve the formatting of the help screen.

742. On very rare occasions, the C shell could crash when a thread exited.
    That's fixed.

743. The postage.csh sample script has been updated to reflect the latest
    USPS rate increase as of May 12, 2008.

744. The directory utility has been added.

745. Even if the C shell was installed for "all users," the ACL on it
    would still only allow access to the user who'd installed it.  That's
    fixed; all the files and various start menu shortcuts, etc., are now
    ACL'ed to allow read access by all users and power users and full control
    by administrators, the system, the user who did the installation and
    the creator/owner.

746. The timestmp.csh sample script would fail on dates in 2008 and 2009
    because when it truncated the year to 08 or 09, then tried to print it
    as a 2-digit decimal, the C shell would complain that it wasn't a valid
    octal.  This also affected the fixup.csh sample script, which used
    timestmp.

747. The C shell now allows procedure arguments and variable assignments
    of lists of typed values (ints, floats or strings).  Individual elements
    of a variable can themselves be lists of typed values, allowing pseudo-
    two-dimensional arrays.

748. Chained editing operations against variables didn't work properly.  For
    example, $a:2-4:# didn't work.  Also, there was a memory leak in chained
    operations.  Both these problems have been fixed.

749. The vol utility reported a noise value for the high bits of a volume
    serial number due to an uninitialized variable.  That's fixed.

750. The dirname and posxpath sample utilities now return "." if called
    with no argument.  They used to generate error spew.

751. The percentchg sample utility has been added.

752. The read utility didn't work if less than 2 read variables were
    specified.  It now works properly for all cases.

753. The double backquote, `` ... ``, construct has been introduced.  It
    works like the single backquote version of command substitution,
    ` ... `, except that the substituted text is parsed by lines rather
    than words.  This is convenient if the output of the command is a list
    of filenames, one per line, with spaces in the filenames, e.g.,

      25 D% whereis whereis
      D:\Program Files\Hamilton C shell 2003\Bin\whereis.csh
      26 D% mi ``!!``

    It's possible to read a whole file into a variable using this construct.
    For example:

      27 D% @ x = ``cat parse.c``
      28 D% foreach i ($x:q) do calc i; end | mi

    (To avoid having wildcarding being applied to the text, the @-statement
    is used for reading and the :q quoting operator is used in the foreach.)

754. A bug in the wildcarding caused the shell to lock up with a nonsensical
    complaint about running out of memory on seemingly simple constructs
    such as

      echo *\

    has been fixed.


Fix Level 3.0.g Changes:

755. A bug was introduced at 3.0.f that caused floating point values to be
    compared as if they were integers, giving wrong results.  That's fixed.

756. An access violation in echo `` caused by having failed to rebuild one
    of the modules in the C shell in 3.0.f has been fixed.

757. The which sample utility could fail sometimes if used in command
    substitution because it piped data to head to pick off just the first
    item.  If head exited before the first stage completed, the thread would
    exit with a 232 "pipe is being closed" error status.  Which now uses the
    new ``...`` operator with word selection to pick the first line.

758. Fixed typos and arranged options alphabetically in the help screen for
    tar.

759. Added a comment to the sunrise.csh sample script noting that west
    longitudes and and north latitudes are positive.

760. Added mention of the -c option to the option summary lines in the help
    screens for the mv, cp and rm utilities.

761. The AllowVistaTapeAccess.csh and DenyVistaTapeAccess.csh scripts
    now refuse to do anything unless they're run on Vista.  Also, they've
    been moved to the bin directory.

762. The Word and hypertext (HTML) User Guides have been updated.  Also, a
    PDF version has been added.


Fix Level 4.0 Changes:

763. The entire product has been rebuilt under Visual Studio 2008 and a new
    64-bit version has been introduced.  Performance of the 64-bit version
    (measured on an Intel Core i7 machine running 64-bit Vista) is about 2x
    to 3x that of the 32-bit build on the same machine, depending on what's
    measured.

764. Installation for "all users" is now the default and it no longer requires
    that the installation be run as administrator.

765. The 32-bit version now knows about the 64-bit Vista file system
    redirection mechanism that ordinarily redirects any attempts by 32-bit
    applications to access the \windows\system32 directory to the
    \windows\SysWOW64 directory.   (Vista does this so that 32-bit apps
    will load the 32-bit versions of all the system DLLs.  But it has effect
    of making programs that ship only as 64-bit versions, like telnet.exe,
    inaccessible.)  Once they start up, the C shell and all the utilities now
    disable that redirection, thus allowing them to access the system32
    directory.

766. The default startup.csh script now unsetenv's the CshTitle variable so
    that if you start a 64-bit version of the C shell from a 32-bit version,
    it'll update the title.

767. The xargs utility has been improved.  If the C shell is used to run the
    command because it appears to be an alias, xargs now allows for the
    possibility the expansion might grow the command by 1024 bytes.  Also,
    xargs used to stop if the child returned any non-zero return code.  That
    was awkward because grep and fgrep return 1 for no matches.  Xargs now
    stops by default only if the return code is > 1.  If it does stop because
    the return code was over the limit, it generates an error message.
    
768. The postage.csh sample script has been updated to reflect the new US
    postage rates effective May 11, 2009.

769. The deltahrs.csh sample script has been added.

770. The update.csh, ts.csh and duplicat.csh sample scripts now use the
    ``...`` whole-line command substitution operator so they'll work properly
    with filenames containing spaces and special characters.

771. The ls -Q option now inserts escape characters before any special
    characters rather than single-quoting the entire filename.

772. The listreg utility has been added.

773. The shortcut -d (starting directory) option will now be taken as a literal
    rather than expanded to a full path if the first character is a percent
    sign signifying that it's a Windows shell variable, e.g., %USERPROFILE%.

774. The memberi sample script, which does a case-insensitive search to see
    if a given value is a member of a list, has been added and is now used in
    the default login.csh script to determine if the C shell's bin and
    samples directories are already on the search path.

775. The C shell didn't correctly evaluate the path variable if evaluated as
    a typed value in an expression.  It does now.

776. If the C shell is run as administrator on Vista, it prepends
    "Administrator: " to the default title.

777. Cmd.exe has a bug that causes problems running scripts using the /c
    command line option if both the path to the script and at least one
    argument to the script contain spaces.  For example,

      c:\>cat "\Users\Nicole\folder with space\test.cmd"
      echo %1 %2
      
      c:\>"\users\nicole\folder with space\test.cmd" "hello world"
      
      c:\>echo "hello world"
      "hello world"
      
      c:\>cmd /c "\users\nicole\folder with space\test.cmd" "hello world"
      '\users\nicole\folder' is not recognized as an internal or external
      command, operable program or batch file.
      
    This caused problems for the C shell.  But a workaround, which the C shell
    now uses is to paste an extra set of double quotes around the scriptname
    and the arguments:

      c:\>cmd /c ""\users\nicole\folder with space\test.cmd" "hello world""
      
      c:\>echo "hello world"
      "hello world"

778. su required some minor changes for Vista.  The command line argument
    to CreateProcessAsUser cannot be a pointer to a literal or read-only
    memory.  Also, error mode was adjusted to allow popups if the child
    doesn't start properly (which can happen if you try to su a userid
    that's a member of the administrators group but isn't specifically
    =the= administer userid.

779. The timestmp.csh, basename.csh, percentchg.csh and newfiles.csh sample
    scripts now give error messages or sensible results if invoked without
    any arguments.

780. env now waits for the child to finish if it's running in the same
    window.

781. tar no longer quits with an error if it can't read a directory (usually
    because it doesn't have access rights.)  It now just gives a warning and
    continues.

782. A bug in the set statement that could cause it to fail inside a procedure
    as in this example has been fixed:

      1 C% proc foo()
      2 C? set nonomatch = 2
      3 C? end
      4 C% foo
      5 C% foo
      csh(line 2):  The predefined variable 'nonomatch' cannot be a string.
      > in foo( ) defined at line 1
      < called from line 5



Hamilton C shell | Free Demo Software | Win32 Training
Y2K | Customer Testimonials | On-line Hamilton C shell User Guide
Home | Email | Support | Company Profile | Distributors



Copyright © 1998-2009 by Hamilton Laboratories.  All rights reserved.
This page last modified July 30, 2009.