These are the most recent changes, listed chronologically. The complete release notes going back to the first 2.0 release on Windows in July 1992 are also available.
Hamilton C shell(tm) for Windows(R) Release Notes 5.2.g
Copyright (c) 1989-2017 by Hamilton Laboratories. All rights reserved.
Change Summary
Jun 2009 4.0 New 32-bit and 64-bit builds for Windows 7, Vista
and earlier versions of Windows using Microsoft
Visual Studio 2008. New ``...`` line-at-a-time
command substitution.
Jul 2010 4.1 Full Unicode / UTF-8 versions of many of the
utilities, an improved su, support for Windows 7
elevation and code-signing of the .msi install
file and all the .exe files.
Oct 2011 5.0 Better support for Windows conventions regarding
ACLs in mv, cp and chmod. New splitstring and
findinclude samples added. Much improved su
(superuser) utility for Windows 7.
Aug 2012 5.1 Brand new documentation.
Sep 2014 5.2 Improved documentation with better navigation,
additional topics, including using with Cygwin,
and a new random utility.
Fix Level 5.1.a Changes:
851. Login.csh had a huge mistake in trying to set cdpath to include all
the *:\"Program Files" directories. This was very slow if you have
network drives. The default cdpath is now just your home directory
and the desktop directories. The comments in both login.csh and
startup.csh have also been updated.
852. Improvements to the formatting of the user guide including switching
from Palatino (serif) to Verdana (sans serif) font, using bordered text
instead of images for the keys on the keyboard (e.g., in the page
on command line editing), highlighting keywords, command names, etc.,
with a border and a light blue background and using larger fixed pitch
font in many of the tables.
Fix Level 5.1.b Changes:
853. sort now has additional options: -R to normalize line ends,
-s stable sort and -v verbose output from a -c check sort. Check
sorts with -c always reported the input was ordered even if it wasn't;
that's fixed.
854. filebox -h had a typo. Use -i to specify an initial directory, not
-d. Also, the -e option now follows the same syntax as -f and is
automatically added to the head of the list of filters.
855. dirbox now uses the new resizable dialog box, the options have been
reduced to only those that make sense when choosing a file or directory
and the -i initial path option now works. If a non-existent path is
typed into the edit box, the OK button is greyed.
856. Path hashing is now turned on before running startup.csh and login.csh.
This was causing a problem with the default login.csh script, which
saved and restored the state but ended up causing login copies to
run with path hashing turned off.
857. The undocumented -t (text), -b (binary) and -u (unicode) file test
operators added at 2.3.e have been removed.
858. The -x (executable) and -z (zero length) file test operators weren't
thread-safe. They didn't properly setup and release the current
directories when calling Win32 file operations. The could fail if
another thread changed the process directories, e.g.:
cd .. &; calc -x hello.exe
859. New -t (timestamp) and -s (size) file operators have been added.
-t returns a string of the form "YYYY-MM-DD hh:mm:ss", e.g.,
"2012-11-25 14:25:04". If the path doesn't exist or doesn't have
a timestamp (as, e.g., is the case for C:\) -t returns null;
this is not an error. The -t operator allows times to be compared
or pattern-matched. For example
foreach i ( * ) if (-t $i =~ "2012*") echo $i changed in 2012; end
if (-t $a > -t $b) echo $a is newer than $b
-s returns the size in bytes. If the path doesn't exist or is a
directory, -s returns null; this is not an error.
Fix Level 5.1.c Changes:
860. sort didn't parse short records properly. If a key specified a
character offset that was past the end of a particular record,
comparisons of that record were unpredictable. That's fixed.
861. The -l (logging) option for mv, cp and rm had a bug that caused
them to spew garbage ANSI sequences resulting in black on black
characters.
Fix Level 5.2 Changes:
862. The random and xor utilities have been added.
863. The periodic demo version popup appeared when it shouldn't have.
That's fixed.
864. A bug in the code that executes a compiled set indexed variable
to a string literal statement was fixed. It was grabbing the literal
without making its own copy. It worked if the compiled statement was
only executed once, but not if it ever got re-executed, e.g., in a
loop or a compiled procedure. When you later tried to access the
value in the variable, you hit a null pointer. For example:
for i = 1 to 2 do
set x[0] = x
end
echo $x # failed with a null pointer
865. Passing a null string as a parameter to a procedure caused the
shell to hang. During evaluation, the null string caused a linked
list to be built with a loop in it. This is fixed.
proc p( a )
echo $a
end
set x =
@ p( x ) # hung
866. Aliases have been added to the default startup.csh script for vim
and gvim, using env to delete the SHELL variable before starting the
Vim editors. Vim only knows how to use cmd.exe when "shelling out"
using the :! commmands. If the SHELL variable is defined, Vim uses
it, but assumes it points to cmd.exe.
867. Aliases for su and sudo in the default startup.csh script now use
the env utility to delete the LAYER environment variable before
invoking su.exe. This avoids the prompt in the new window appearing
as "[2] 1 C%". Also, the LAYER variable is now defined as all caps
in startup.csh.
868. A bug in the evaluation of indexed variables caused the shell to
misinterpret a binary int as a float, causing this to fail. It's
now fixed.
set v = 1 2
@ v[1] *= 3
869. If the env -N (new screen) option is specified, env no longer waits
for the child unless -w is also specified.
870. The chunk size used by the split utility was calculated as a 32-bit
signed number, meaning the largest chunk size was 2GB. Split now
uses 64-bit unsigned arithmetic, allowing a maximum chunk size of
roughly 17 exabytes. (An exabyte is 10**18 bytes.)
871. The hypertext user guide has been revised with better navigation and
additional topics.
872. An uninitialized variable randomly caused sed to crash in branches
to forward references. That's fixed.
Fix Level 5.2.a Changes:
873. mv now sets the security descriptors on the output via inheritance from
the directory it's moved to.
874. The mouse wheel is now disabled by default in more on startup but can be
toggled with the w command.
875. getopt now preserves switchchars.
876. A bug in the common error message routine that was intended to report a
garbled color specification, e.g., "setenv DIRECTORIES = normal", has
been fixed.
877. sed will now compare \r\n equal to \n.
Fix Level 5.2.b Changes:
878. More wouldn't correctly match anything at the end of a line. That's
fixed.
Fix Level 5.2.c Changes:
879. The C shell allowed UNC (\\machine\resource\path) names on the cdpath
but would crash if you attempted to "cd +c" to one of them. That's fixed.
Fix Level 5.2.d Changes:
880. The vectormath.csh sample script has been added.
881. A bug that caused the C shell to crash randomly when a thread exited,
caused by failing to lock a shared variable, has been fixed.
882. A bug that caused the C shell to crash if an argument to a user-
defined procedure had the same name as a builtin variable has been
fixed.
Fix Level 5.2.e Changes:
881. If a here document (using <<) contained a substitution plus a left
bracket followed immediately by a double quote, the result contained
a spurious circumflex. That's fixed.
Fix Level 5.2.f Changes:
882. The same mistake that caused random crash in thread exit fixed at
one place in the code at 5.2.d also appeared in two other places, now
fixed.
Fix Level 5.2.g Changes:
883. A new -x command line option has been added to the C shell for
compatibility with GNU tcsh and make. The first argument word is
taken as the command, to be parsed as a string. The remaining
arguments are placed in the shell argv variable.
884. Additional work chasing the bug described at 881.
885. Fixed broken links to the User Guide home page in the navigation
panels on the online man pages for the utilities and samples.
|