15949286 update tcsh to 6.18.01
15825527 SUNBT7206801 tcsh tries to autocorrect commands that are correct
16072367 New tcsh changes the value of $HOSTTYPE from i86pc to sun386i
--- a/components/tcsh/Makefile Thu Feb 14 18:44:43 2013 -0800
+++ b/components/tcsh/Makefile Fri Feb 15 08:40:07 2013 -0800
@@ -20,18 +20,19 @@
#
#
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
#
include ../../make-rules/shared-macros.mk
COMPONENT_NAME= tcsh
-COMPONENT_VERSION= 6.17.00
+COMPONENT_VERSION= 6.18.01
+IPS_COMPONENT_VERSION= 6.18.1
COMPONENT_PROJECT_URL= http://www.tcsh.org/
COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH= \
- sha256:575266122bc2bc351c84a7f858020c0e6b6f95a64ad4de3ce95e340f57e4a9a9
+ sha256:d81ca27851f3e8545666399b4bcf25433e602a195113b3f7c73886fef84c9fa8
COMPONENT_ARCHIVE_URL= ftp://ftp.astron.com/pub/tcsh/$(COMPONENT_ARCHIVE)
COMPONENT_BUGDB= utility/tcsh
@@ -45,11 +46,6 @@
COMPONENT_PREP_ACTION = \
(cd $(@D) ; autoconf )
-COMPONENT_POST_BUILD_ACTION = \
- (cd $(@D)/nls ; $(MAKE) all)
-
-CFLAGS += $(CPP_LARGEFILES)
-
LOCALEDIR=$(PROTO_DIR)/$(CONFIGURE_LOCALEDIR)
CONFIGURE_OPTIONS += --localedir=$(CONFIGURE_LOCALEDIR)
--- a/components/tcsh/manpages/tcsh.1 Thu Feb 14 18:44:43 2013 -0800
+++ b/components/tcsh/manpages/tcsh.1 Fri Feb 15 08:40:07 2013 -0800
@@ -75,7 +75,7 @@
.\" modified to reference existing Solaris man pages, to add the Solaris
.\" stability classification, and to add a note about source availability.
.\"
-.TH TCSH 1 "10 July 2009" "Astron 6.17.00"
+.TH TCSH 1 "14 February 2012" "Astron 6.18.01"
.SH NAME
tcsh \- C shell with file name completion and command line editing
.SH SYNOPSIS
@@ -447,6 +447,17 @@
underscores are equivalent. Periods, however, are not equivalent to
hyphens or underscores.
.PP
+If the \fBcomplete\fR shell variable is set to `Enhance', completion
+ignores case and differences between a hyphen and an underscore word
+separator only when the user types a lowercase character or a hyphen.
+Entering an uppercase character or an underscore will not match the
+corresponding lowercase character or hyphen word separator.
+Typing `rm a\-\-file[^D]' in the directory of the previous example would
+still list all three files, but typing `rm A\-\-file' would match only
+`A_silly_file' and typing `rm a__file[^D]' would match just `A_silly_file'
+and `another_silly_file' because the user explicitly used an uppercase
+or an underscore character.
+.PP
Completion and listing are affected by several other shell variables:
\fBrecexact\fR can be set to complete on the shortest possible unique
match, even if more typing might result in a longer match:
@@ -612,7 +623,7 @@
.TP 8
.B expand-line \fR(not bound)
Like \fIexpand-history\fR, but
-expands history substitutions in each word in the input buffer,
+expands history substitutions in each word in the input buffer.
.TP 8
.B expand-variables \fR(^X-$)
Expands the variable to the left of the cursor.
@@ -863,7 +874,7 @@
.PP
The \fIhistory\fR builtin command can print, store in a file, restore
and clear the history list at any time,
-and the \fBsavehist\fR and \fBhistfile\fR shell variables can be can be set to
+and the \fBsavehist\fR and \fBhistfile\fR shell variables can be set to
store the history list automatically on logout and restore it on login.
.PP
History substitutions introduce words from the history list into the input
@@ -1153,7 +1164,7 @@
These can be displayed and changed with \fIprintenv\fR, \fIsetenv\fR and
\fIunsetenv\fR.
.PP
-(+) Variables may be made read-only with `set \-r' (q.v.)
+(+) Variables may be made read-only with `set \-r' (q.v.).
Read-only variables may not be modified or unset;
attempting to do so will cause an error.
Once made read-only, a variable cannot be made writable,
@@ -1331,14 +1342,20 @@
.PP
In matching filenames, the character `.' at the beginning of a filename or
immediately following a `/', as well as the character `/' must be matched
-explicitly. The character `*' matches any string of characters, including the
-null string. The character `?' matches any single character. The sequence
-`[...]' matches any one of the characters enclosed. Within `[...]', a pair of
+explicitly (unless either
+.B globdot
+or
+.B globstar
+or both are set(+)). The character `*' matches any string of characters,
+including the null string. The character `?' matches any single character.
+The sequence `[...]' matches any one of the characters enclosed.
+Within `[...]', a pair of
characters separated by `\-' matches any character lexically between the two.
.PP
(+) Some glob-patterns can be negated:
The sequence `[^...]' matches any single character \fInot\fR specified by the
characters and/or ranges of characters in the braces.
+
.PP
An entire glob-pattern can also be negated with `^':
.IP "" 4
@@ -1384,6 +1401,20 @@
of patterns) which matches nothing is left unchanged rather than causing
an error.
.PP
+The \fBglobstar\fR shell variable can be set to allow `**' or `***' as
+a file glob pattern that matches any string of characters including `/',
+recursively traversing any existing sub-directories. For example,
+`ls **.c' will list all the .c files in the current directory tree.
+If used by itself, it will match match zero or more sub-directories
+(e.g. `ls /usr/include/**/time.h' will list any file named `time.h'
+in the /usr/include directory tree; `ls /usr/include/**time.h' will match
+any file in the /usr/include directory tree ending in `time.h'; and
+`ls /usr/include/**time**.h' will match any .h file with `time' either
+in a subdirectory name or in the filename itself).
+To prevent problems with recursion, the `**' glob-pattern will not
+descend into a symbolic link containing a directory. To override this,
+use `***' (+)
+.PP
The \fBnoglob\fR shell variable can be set to prevent filename substitution,
and the \fIexpand-glob\fR editor command, normally bound to `^X-*', can be
used to interactively expand individual filename substitutions.
@@ -1504,7 +1535,7 @@
.PP
On systems which do not understand the `#!' script interpreter convention
the shell may be compiled to emulate it; see the \fBversion\fR shell
-variable\fR. If so, the shell checks the first line of the file to
+variable. If so, the shell checks the first line of the file to
see if it is of the form `#!\fIinterpreter\fR \fIarg\fR ...'. If it is,
the shell starts \fIinterpreter\fR with the given \fIarg\fRs and feeds the
file to it on standard input.
@@ -1707,7 +1738,7 @@
for a terminal device (+)
.TP 4
.B R
-Has been migrated (convex only) (+)
+Has been migrated (Convex only) (+)
.TP 4
.B L
Applies subsequent operators in a multiple-operator test to a symbolic link
@@ -1733,7 +1764,7 @@
in a multiple-operator test; see below.
.PP
It is possible but not useful, and sometimes misleading, to combine operators
-which expect \fIfile\fR to be a file with operators which do not,
+which expect \fIfile\fR to be a file with operators which do not
(e.g., \fBX\fR and \fBt\fR). Following \fBL\fR with a non-file operator
can lead to particularly strange results.
.PP
@@ -2264,7 +2295,7 @@
.B case \fIlabel\fB:
A label in a \fIswitch\fR statement as discussed below.
.TP 8
-.B cd \fR[\fB\-p\fR] [\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] [\fIname\fR]
+.B cd \fR[\fB\-p\fR] [\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] [\I--\fR] [\fIname\fR]
If a directory \fIname\fR is given, changes the shell's working directory
to \fIname\fR. If not, changes to \fBhome\fR.
If \fIname\fR is `\-' it is interpreted as the previous working directory
@@ -2279,6 +2310,8 @@
With \fB\-p\fR, prints the final directory stack, just like \fIdirs\fR.
The \fB\-l\fR, \fB\-n\fR and \fB\-v\fR flags have the same effect on \fIcd\fR
as on \fIdirs\fR, and they imply \fB\-p\fR. (+)
+Using \fB\-\-\fR forces a break from option processing so the next word
+is taken as the directory \fIname\fR even if it begins with '\-'. (+)
.PP
See also the \fBimplicitcd\fR shell variable.
.RE
@@ -2562,7 +2595,7 @@
.br
\&'n/\-name/f/' 'n/\-newer/f/' 'n/\-{,n}cpio/f/' \e
.br
-\'n/\-exec/c/' 'n/\-ok/c/' 'n/\-user/u/' \e
+\&\'n/\-exec/c/' 'n/\-ok/c/' 'n/\-user/u/' \e
.br
\&'n/\-group/g/' 'n/\-fstype/(nfs 4.2)/' \e
.br
@@ -2814,7 +2847,7 @@
signal and arranges for the shell to send it a hangup signal when the shell
exits.
Note that commands may set their own response to hangups, overriding \fIhup\fR.
-Without an argument (allowed in only a shell script), causes the shell to
+Without an argument, causes the non-interactive shell only to
exit on a hangup for the remainder of the script.
See also \fBSignal handling\fR and the \fInohup\fR builtin command.
.TP 8
@@ -2914,6 +2947,14 @@
the maximum amount of physical memory a process
may have allocated to it at a given time
.TP
+\fIvmemoryuse\fR
+the maximum amount of virtual memory a process
+may have allocated to it at a given time (address space)
+.TP
+\fIvmemoryuse\fR
+the maximum amount of virtual memory a process
+may have allocated to it at a given time
+.TP
\fIheapsize\fR
the maximum amount of memory a process
may allocate per \fIbrk()\fR system call
@@ -2932,15 +2973,40 @@
.TP
\fIsbsize\fR
the maximum size of socket buffer usage for this user
+.TP
+\fIswapsize\fR
+the maximum amount of swap space reserved or used for this user
+.TP
+\fImaxlocks\fR
+the maximum number of locks for this user
+.TP
+\fImaxsignal\fR
+the maximum number of pending signals for this user
+.TP
+\fImaxmessage\fR
+the maximum number of bytes in POSIX mqueues for this user
+.TP
+\fImaxnice\fR
+the maximum nice priority the user is allowed to raise mapped from [19...-20]
+to [0...39] for this user
+.TP
+\fImaxrtprio\fR
+the maximum realtime priority for this user
+\fImaxrttime\fR
+the timeout for RT tasks in microseconds for this user.
.PP
\fImaximum-use\fR may be given as a (floating point or
integer) number followed by a scale factor. For all limits
other than \fIcputime\fR the default scale is `k' or `kilobytes'
-(1024 bytes); a scale factor of `m' or `megabytes' may also
-be used. For \fIcputime\fR the default scaling is `seconds',
+(1024 bytes); a scale factor of `m' or `megabytes' or `g' or `gigabytes'
+may also be used. For \fIcputime\fR the default scaling is `seconds',
while `m' for minutes or `h' for hours, or a time of the
form `mm:ss' giving minutes and seconds may be used.
.PP
+If \fImaximum-use\fR is `unlimited',
+then the limitation on the specified \fIresource\fR
+is removed (this is equivalent to the \fIunlimit\fR builtin command).
+.PP
For both \fIresource\fR names and scale factors, unambiguous
prefixes of the names suffice.
.RE
@@ -3021,7 +3087,7 @@
so `alias ls ls\-F' generally does the right thing.
.PP
The \fBls\-F\fR builtin can list files using different colors depending on the
-filetype or extension. See the \fBcolor\fR \fItcsh\fR variable and the
+filetype or extension. See the \fBcolor\fR shell variable and the
\fBLS_COLORS\fR environment variable.
.RE
.PP
@@ -3037,7 +3103,7 @@
does not like to lose its tty. (TCF only)
.PD
.TP 8
-.B newgrp \fR[\fB\-\fR] \fIgroup\fR (+)
+.B newgrp \fR[\fB\-\fR] \fI[group]\fR (+)
Equivalent to `exec newgrp'; see \fInewgrp\fR(1).
Available only if the shell was so compiled;
see the \fBversion\fR shell variable.
@@ -3055,7 +3121,7 @@
.B nohup \fR[\fIcommand\fR]
With \fIcommand\fR, runs \fIcommand\fR such that it will ignore hangup signals.
Note that commands may set their own response to hangups, overriding \fInohup\fR.
-Without an argument (allowed in only a shell script), causes the shell to
+Without an argument, causes the non-interactive shell only to
ignore hangups for the remainder of the script.
See also \fBSignal handling\fR and the \fIhup\fR builtin command.
.TP 8
@@ -3118,11 +3184,12 @@
.B rehash
Causes the internal hash table of the contents of the
directories in the \fBpath\fR variable to be recomputed. This is
-needed if new commands are added to directories in \fBpath\fR
-while you are logged in. This should be necessary only if
-you add commands to one of your own directories, or if a
-systems programmer changes the contents of one of the
-system directories. Also flushes the cache of home directories
+needed if the \fBautorehash\fR shell variable is not set and new
+commands are added to directories in \fBpath\fR while you are logged
+in. With \fBautorehash\fR, a new command will be found
+automatically, except in the special case where another command of
+the same name which is located in a different directory already
+exists in the hash table. Also flushes the cache of home directories
built by tilde expansion.
.TP 8
.B repeat \fIcount command
@@ -3217,14 +3284,13 @@
The third form sets \fIname\fR to the single \fIword\fR.
The fourth form sets \fIname\fR to the list of words in
\fIwordlist\fR. In all cases the value is command and filename expanded.
-If \-r is specified, the value is set read-only. If \-f or \-l are
-specified, set only unique words keeping their order.
-\-f prefers the first occurrence of a word, and \-l the last.
-The fifth form sets the \fIindex\fR'th component of name to \fIword\fR;
+If \fB\-r\fR is specified, the value is set read-only. If \fB\-f\fR or
+\fB\-l\fR are specified, set only unique words keeping their order.
+\fB\-f\fR prefers the first occurrence of a word, and \fB\-l\fR the last.
+The fifth form sets the \fIindex\fR'th component of \fIname\fR to \fIword\fR;
this component must already exist.
The sixth form lists only the names of all shell variables that are read-only.
The seventh form makes \fIname\fR read-only, whether or not it has a value.
-The second form sets \fIname\fR to the null string.
The eighth form is the same as the third form, but
make \fIname\fR read-only at the same time.
.PD
@@ -3360,7 +3426,7 @@
022, giving read and execute access to the group and others.
Without \fIvalue\fR, prints the current file creation mask.
.TP 8
-.B unalias \fIpattern
+.B unalias \fIpattern\fR
.br
Removes all aliases whose names match \fIpattern\fR.
`unalias *' thus removes all aliases.
@@ -3590,8 +3656,8 @@
The first word is the number of minutes of inactivity before automatic
logout. The optional second word is the number of minutes of inactivity
before automatic locking.
-When the shell automatically logs out,
-it prints `auto-logout', sets the variable logout to `automatic' and exits.
+When the shell automatically logs out, it prints `auto-logout', sets the
+variable \fBlogout\fR to `automatic' and exits.
When the shell automatically locks, the user is required to enter his password
to continue working. Five incorrect attempts result in automatic logout.
Set to `60' (automatic logout after 60 minutes, and no locking) by default
@@ -3601,6 +3667,14 @@
\fBversion\fR shell variable).
See also the \fBafsuser\fR and \fBlogout\fR shell variables.
.TP 8
+.B autorehash \fR(+)
+If set, the internal hash table of the contents of the directories in the
+\fBpath\fR variable will be recomputed if a command is not found in the hash
+table. In addition, the list of available commands will be rebuilt for each
+command completion or spelling correction attempt if set to `complete' or
+`correct' respectively; if set to `always', this will be done for both
+cases.
+.TP 8
.B backslash_quote \fR(+)
If set, backslashes (`\\') always quote `\\', `'', and `"'. This may make
complex quoting tasks easier, but it can cause syntax errors in \fIcsh\fR(1)
@@ -3633,10 +3707,15 @@
\fIcsh\fR.
.TP 8
.B complete \fR(+)
-If set to `enhance', completion 1) ignores case and 2) considers
-periods, hyphens and underscores (`.', `\-' and `_') to be word
-separators and hyphens and underscores to be equivalent. If set to
-`igncase', the completion becomes case insensitive.
+If set to `igncase', the completion becomes case insensitive.
+If set to `enhance', completion ignores case and considers
+hyphens and underscores to be equivalent; it will also treat
+periods, hyphens and underscores (`.', `\-' and `_') as word
+separators.
+If set to `Enhance', completion matches uppercase and underscore
+characters explicitly and matches lowercase and hyphens in a
+case-insensivite manner; it will treat periods, hypens and underscores
+as word separators.
.TP 8
.B continue \fR(+)
If set to a list of commands, the shell will continue the listed
@@ -3683,7 +3762,7 @@
See also the \fBcwd\fR and \fBowd\fR shell variables.
.TP 8
.B dspmbyte \fR(+)
-Has an affect iff 'dspm' is listed as part of the \fBversion\fR shell variable.
+Has an effect iff 'dspm' is listed as part of the \fBversion\fR shell variable.
If set to `euc', it enables display and editing EUC-kanji(Japanese) code.
If set to `sjis', it enables display and editing Shift-JIS(Japanese) code.
If set to `big5', it enables display and editing Big5(Chinese) code.
@@ -3709,12 +3788,12 @@
3 ... used for both the first byte and second byte of a multi-byte character.
.\" SHK: I tried my best to get the following to be grammatically correct.
.\" However, I still don't understand what's going on here. In the
- \" following example, there are three bytes, but the text seems to refer to
- \" each nybble as a character. What's going on here? It this 3-byte code
- \" in the table? The text above seems to imply that there are 256
- \" characters/bytes in the table. If I get some more info on this (perhaps
- \" a complete example), I could fix the text to be grammatically correct.
- \" ([email protected] 1999/09/13)
+.\" following example, there are three bytes, but the text seems to refer to
+.\" each nybble as a character. What's going on here? It this 3-byte code
+.\" in the table? The text above seems to imply that there are 256
+.\" characters/bytes in the table. If I get some more info on this (perhaps
+.\" a complete example), I could fix the text to be grammatically correct.
+.\" ([email protected] 1999/09/13)
.PP
Example:
.br
@@ -3782,6 +3861,12 @@
shell variable) indicate skipped directories with an ellipsis (`...')
instead of `/<skipped>'.
.TP 8
+.B euid \fR(+)
+The user's effective user ID.
+.TP 8
+.B euser \fR(+)
+The first matching passwd entry name corresponding to the effective user ID.
+.TP 8
.B fignore \fR(+)
Lists file name suffixes to be ignored by completion.
.TP 8
@@ -3795,6 +3880,22 @@
.B gid \fR(+)
The user's real group ID.
.TP 8
+.B globdot \fR(+)
+If set, wild-card glob patterns will match files and directories beginning
+with `.' except for `.' and `..'
+.TP 8
+.B globstar \fR(+)
+If set, the `**' and `***' file glob patterns will match any string of
+characters including `/' traversing any existing sub-directories. (e.g.
+`ls **.c' will list all the .c files in the current directory tree).
+If used by itself, it will match match zero or more sub-directories
+(e.g. `ls /usr/include/**/time.h' will list any file named `time.h'
+in the /usr/include directory tree; whereas `ls /usr/include/**time.h'
+will match any file in the /usr/include directory tree ending in `time.h').
+To prevent problems with recursion, the `**' glob-pattern will not
+descend into a symbolic link containing a directory. To override this,
+use `***'
+.TP 8
.B group \fR(+)
The user's group name.
.TP 8
@@ -3802,7 +3903,7 @@
If set, the incremental search match (in \fIi-search-back\fR and
\fIi-search-fwd\fR) and the region between the mark and the cursor are
highlighted in reverse video.
-
+.IP "" 8
Highlighting requires more frequent terminal writes, which introduces extra
overhead. If you care about terminal performance, you may want to leave this
unset.
@@ -3926,13 +4027,12 @@
shell variable.
.TP 8
.B mail
-The names of the files or directories to check for incoming mail,
-separated by whitespace, and optionally preceded by a numeric word.
-Before each prompt, if 10 minutes have passed since the last check, the
-shell checks each file and says `You have new mail.' (or, if \fBmail\fR
-contains multiple files, `You have new mail in \fIname\fR.') if the
-filesize is greater than zero in size and has a modification time
-greater than its access time.
+A list of files and directories to check for incoming mail, optionally
+preceded by a numeric word. Before each prompt, if 10 minutes have
+passed since the last check, the shell checks each file and says `You
+have new mail.' (or, if \fBmail\fR contains multiple files, `You have
+new mail in \fIname\fR.') if the filesize is greater than zero in size
+and has a modification time greater than its access time.
.PP
.RS +8
.PD
@@ -4011,7 +4111,12 @@
.TP 8
.B padhour
If set, enable the printing of padding '0' for hours, in 24 and 12 hour
-formats. E.G.: 07:45:42 vs. 7:45:42
+formats. E.G.: 07:45:42 vs. 7:45:42.
+.TP 8
+.B parseoctal
+To retain compatibily with older versions numeric variables starting with
+0 are not interpreted as octal. Setting this variable enables proper octal
+parsing.
.TP 8
.B path
A list of directories in which to look for executable commands.
@@ -4105,6 +4210,9 @@
%n
The user name.
.TP 4
+%N
+The effective user name.
+.TP 4
%j
The number of jobs.
.TP 4
@@ -4249,7 +4357,14 @@
See also \fBloginsh\fR.
.TP 8
.B status
-The status returned by the last command. If it terminated
+The status returned by the last command, unless the variable
+.B anyerror
+is set, and any error in a pipeline or a backquote expansion will be
+propagated (this is the default
+.B csh
+behavior, and the current
+.B tcsh
+default). If it terminated
abnormally, then 0200 is added to the status. Builtin commands
which fail return exit status `1', all other builtin commands
return status `0'.
@@ -4992,7 +5107,7 @@
variables.
.PP
A new syntax for including useful information in the prompt string
-(see \fBprompt\fR).
+(see \fBprompt\fR),
and special prompts for loops and spelling correction
(see \fBprompt2\fR and \fBprompt3\fR).
.PP
@@ -5017,8 +5132,7 @@
Alias substitution is most often used to clumsily simulate shell procedures;
shell procedures should be provided rather than aliases.
.PP
-Commands within loops are not placed in the history
-list. Control structures should be parsed rather than being recognized as
+Control structures should be parsed rather than being recognized as
built-in commands. This would allow control commands to be placed anywhere,
to be combined with `|', and to be used with `&' and `;' metasyntax.
.PP
@@ -5092,7 +5206,7 @@
malloc(3C), setlocale(3C), tty(7D), a.out(4), terminfo(4), environ(5),
termio(7I), Introduction to the C Shell
.SH VERSION
-This manual documents tcsh 6.17.00 (Astron) 2009-07-10.
+This manual documents tcsh 6.18.01 (Astron) 2012-02-14.
.SH AUTHORS
.PD 0
.TP 2
--- a/components/tcsh/patches/001.config_f.h.patch Thu Feb 14 18:44:43 2013 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-*** tcsh-6.17.00/config_f.h.orig Thu Aug 20 12:31:33 2009
---- tcsh-6.17.00/config_f.h Thu Aug 20 12:31:42 2009
-***************
-*** 131,137 ****
- * variable "mbytemap".
- * (use for multi-byte table check)
- */
-! #undef MBYTEDEBUG
-
- /*
- * NEWGRP Provide a newgrp builtin.
---- 131,137 ----
- * variable "mbytemap".
- * (use for multi-byte table check)
- */
-! #define MBYTEDEBUG
-
- /*
- * NEWGRP Provide a newgrp builtin.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/tcsh/patches/001.gethost.c.patch Fri Feb 15 08:40:07 2013 -0800
@@ -0,0 +1,91 @@
+RCS file: /p/tcsh/cvsroot/tcsh/gethost.c,v
+retrieving revision 1.15
+diff -u -u -r1.15 gethost.c
+--- tcsh-6.18.01/gethost.c.orig 15 Jan 2012 17:14:54 -0000 1.15
++++ tcsh-6.18.01/gethost.c 4 Jan 2013 22:20:19 -0000
+@@ -150,11 +150,17 @@
+ char *r;
+
+ if (len == 0)
+- len = strlen(b);
+- l = strlen(a) + len + 1;
++ len = strlen(b) + 1;
++ if (a)
++ l = strlen(a) + len;
++ else
++ l = len;
+ if ((r = malloc(l)) == NULL)
+ abort();
+- snprintf(r, l, "%s%.*s", a, (int)len, b);
++ if (a)
++ snprintf(r, l, "%s%.*s", a, (int)len, b);
++ else
++ snprintf(r, l, "%.*s", (int)len, b);
+ return r;
+ }
+
+@@ -171,13 +177,15 @@
+ return defs;
+
+ free(buf);
+- buf = strdup("("); /* ) */
++ buf = NULL;
+ for (ptr = defs; (bptr = strstr(ptr, def)) != NULL; ptr = eptr + 1) {
+ if (ptr != bptr)
+ buf = cat(buf, ptr, bptr - ptr);
++ buf = cat(buf, "(", 0); /* ) */
+ if ((eptr = strchr(ptr + sizeof(def) - 1, ')')) == NULL) {
+ (void) fprintf(stderr, "%s: missing close paren `%s'\n",
+ pname, defs);
++ free(buf);
+ return defs;
+ }
+ buf = cat(buf, bptr, eptr - bptr + 1);
+@@ -186,26 +194,29 @@
+ if (len < 1) {
+ (void) fprintf(stderr, "%s: empty define `%s'\n",
+ pname, defs);
++ free(buf);
+ return defs;
+ }
+ if (*name != '_') {
+ char *undername = malloc(len + 10);
+- buf = cat(buf, " || defined(", 0);
++ if (undername == NULL)
++ abort();
++ buf = cat(buf, ") || defined(", 0);
+ snprintf(undername, len + 10, "__%.*s__)", (int)len,
+ name);
+ buf = cat(buf, undername, len + 5);
+- buf = cat(buf, " || defined(", 0);
++ buf = cat(buf, ") || defined(", 0);
+ snprintf(undername, len + 10, "__%.*s)", (int)len,
+ name);
+ buf = cat(buf, undername, len + 3);
+ }
++ buf = cat(buf, "))", 0);
+ }
+ if (!eptr) {
+ (void) fprintf(stderr, "%s: invalid input `%s'\n", pname, defs);
+ return defs;
+ }
+ buf = cat(buf, eptr + 1, 0);
+- buf = cat(buf, ")", 0);
+ return buf;
+ }
+
+
+RCS file: /p/tcsh/cvsroot/tcsh/gethost.c,v
+retrieving revision 1.16
+diff -u -r1.16 gethost.c
+--- tcsh-6.18.01/gethost.c.orig 4 Jan 2013 22:20:37 -0000 1.16
++++ tcsh-6.18.01/gethost.c 5 Jan 2013 01:22:56 -0000
+@@ -180,7 +180,7 @@
+ buf = NULL;
+ for (ptr = defs; (bptr = strstr(ptr, def)) != NULL; ptr = eptr + 1) {
+ if (ptr != bptr)
+- buf = cat(buf, ptr, bptr - ptr);
++ buf = cat(buf, ptr, bptr - ptr + 1);
+ buf = cat(buf, "(", 0); /* ) */
+ if ((eptr = strchr(ptr + sizeof(def) - 1, ')')) == NULL) {
+ (void) fprintf(stderr, "%s: missing close paren `%s'\n",
--- a/components/tcsh/patches/002.sol-8bit.patch Thu Feb 14 18:44:43 2013 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-diff -ru tcsh-6.17.00-orig/sh.c tcsh-6.17.00/sh.c
---- tcsh-6.17.00-orig/sh.c 2009-06-25 23:15:37.000000000 +0200
-+++ tcsh-6.17.00/sh.c 2009-09-10 15:38:50.703642142 +0200
-@@ -336,12 +336,14 @@
- fix_strcoll_bug();
- # endif /* STRCOLLBUG */
-
-- {
-+ if (MB_CUR_MAX == 1) {
- int k;
-
-- for (k = 0200; k <= 0377 && !Isprint(CTL_ESC(k)); k++)
-+ for (k = 0200; k <= 0377 && !isprint(CTL_ESC(k)); k++)
- continue;
-- AsciiOnly = MB_CUR_MAX == 1 && k > 0377;
-+ AsciiOnly = k > 0377;
-+ } else {
-+ AsciiOnly = 0;
- }
- #else
- AsciiOnly = getenv("LANG") == NULL && getenv("LC_CTYPE") == NULL;
--- a/components/tcsh/patches/003.locale.patch Thu Feb 14 18:44:43 2013 -0800
+++ b/components/tcsh/patches/003.locale.patch Fri Feb 15 08:40:07 2013 -0800
@@ -1,97 +1,15 @@
---- tcsh-6.17.00/sh.c.orig Tue Sep 22 13:39:07 2009
-+++ tcsh-6.17.00/sh.c Wed Sep 23 00:46:27 2009
-@@ -160,6 +160,52 @@
-
- int main (int, char **);
+--- tcsh-6.18.01/configure.in.orig Wed Sep 5 11:52:15 2012
++++ tcsh-6.18.01/configure.in Wed Sep 5 11:52:40 2012
+@@ -303,7 +303,6 @@
+ AC_SEARCH_LIBS(gethostbyname, nsl)
+ AC_SEARCH_LIBS(connect, socket)
+ AC_SEARCH_LIBS(catgets, catgets)
+-AM_ICONV
-+#ifndef LOCALEDIR
-+#define LOCALEDIR "/usr/share/locale"
-+#endif
-+
-+static void
-+add_localedir_to_nslpath(char *path)
-+{
-+ char *old = getenv("NLSPATH");
-+ char *new;
-+ int len = 0;
-+
-+ if (path == NULL)
-+ return;
-+
-+ if (old != NULL)
-+ len += strlen(old);
-+
-+#if !defined(HAVE_SETENV)
-+ len += sizeof ("NLSPATH=");
-+#endif
-+
-+ len += (strlen(path) + sizeof ("/%L/LC_MESSAGES/%N.cat"));
-+
-+ if ((new = calloc(len, 1)) == NULL)
-+ return;
-+
-+#if !defined(HAVE_SETENV)
-+ strcpy(new, "NLSPATH=");
-+#endif
-+
-+ if (old != NULL) {
-+ strncat(new, old, len);
-+ strncat(new, ":", len);
-+ }
-+
-+ strncat(new, path, len);
-+ strncat(new, "/%L/LC_MESSAGES/%N.cat", len);
-+
-+#if defined(HAVE_SETENV)
-+ setenv("NLSPATH", new, 1);
-+ free(new);
-+#else
-+ putenv(new);
-+#endif
-+}
-+
- int
- main(int argc, char **argv)
- {
-@@ -192,6 +238,8 @@
- # endif /* LC_CTYPE */
- #endif /* NLS */
-
-+ add_localedir_to_nslpath(LOCALEDIR);
-+
- nlsinit();
-
- #ifdef MALLOC_TRACE
---- tcsh-6.17.00/nls/Makefile.in.orig Wed Oct 7 13:25:44 2009
-+++ tcsh-6.17.00/nls/Makefile.in Wed Oct 7 13:31:57 2009
-@@ -0,0 +1,24 @@
-+# $tcsh: Makefile,v 1.14 2006/03/02 18:46:45 christos Exp $
-+
-+LOCALES= C et finnish french german greek italian ja pl russian \
-+ spanish ukrainian
-+GENCAT= gencat
-+INSTALL= ginstall
-+
-+CATALOGS=$(LOCALES:%=%.cat)
-+INSTALLED=$(LOCALES:%=@localedir@/%/LC_MESSAGES/tcsh.cat)
-+
-+all: $(CATALOGS)
-+
-+install: $(INSTALLED)
-+
-+@localedir@/%/LC_MESSAGES/tcsh.cat: %.cat
-+ mkdir -p $(@D)
-+ $(INSTALL) $< $@
-+
-+%.cat:
-+ $(GENCAT) $@ $(@:%.cat=%)/*set*
-+
-+clean:
-+ $(RM) $(CATALOGS)
-+
-
---- tcsh-6.17.00/Makefile.in.orig Wed Jun 24 15:09:05 2009
-+++ tcsh-6.17.00/Makefile.in Wed Oct 7 14:19:01 2009
+ dnl Checks for header files
+ AC_CHECK_HEADERS([auth.h crypt.h features.h inttypes.h paths.h] dnl
+--- tcsh-6.18.01/Makefile.in.orig Wed Sep 5 11:56:12 2012
++++ tcsh-6.18.01/Makefile.in Wed Sep 5 11:57:51 2012
@@ -12,6 +12,7 @@
BUILD=tcsh$(EXEEXT)
VPATH=@srcdir@
@@ -100,18 +18,15 @@
################################################################
## CFLAGS. For various -D things, see config.h
-@@ -137,8 +138,10 @@
+@@ -145,6 +146,7 @@
#DFLAGS=-D_PATH_TCSHELL='"${DESTBIN}/tcsh"'
## The following is set by autoconf.
DFLAGS = -D_PATH_TCSHELL='"${bindir}/tcsh"' @DFLAGS@ @CPPFLAGS@
+DFLAGS += -DLOCALEDIR='"${localedir}"'
-+
################################################################
- ## LDFLAGS. Define something here if you need to
- ################################################################
-@@ -231,7 +234,7 @@
+@@ -296,7 +298,7 @@
#
EXTRAFLAGS = @HESDEF@ $(AFSDEF)
@@ -120,21 +35,34 @@
---- tcsh-6.17.00/configure.in Fri Jul 10 10:13:56 2009
-+++ tc/configure.in Wed Oct 7 14:21:21 2009
-@@ -281,7 +281,6 @@
- AC_SEARCH_LIBS(tgetent, termlib termcap curses ncurses)
- AC_SEARCH_LIBS(gethostbyname, nsl)
- AC_SEARCH_LIBS(connect, socket)
--AM_ICONV
+--- tcsh-6.18.01/sh.c.orig Thu Nov 15 14:26:18 2012
++++ tcsh-6.18.01/sh.c Thu Nov 15 14:26:37 2012
+@@ -175,17 +175,10 @@
+ size_t len;
+ int add_LOC = 1;
+ int add_lang = 1;
+- char trypath[MAXPATHLEN];
+- struct stat st;
+
+ if (path == NULL)
+ return;
- dnl Checks for header files
- AC_CHECK_HEADERS([auth.h crypt.h inttypes.h shadow.h stdint.h utmp.h utmpx.h])
-@@ -440,5 +440,5 @@
- AC_SUBST(HESDEF)
- AC_SUBST(HESLIB)
+- (void) xsnprintf(trypath, sizeof(trypath), "%s/en/LC_MESSAGES/tcsh.cat",
+- path);
+- if (stat(trypath, &st) == -1)
+- return;
+-
+ if ((old = getenv("NLSPATH")) != NULL)
+ len = strlen(old) + 1; /* don't forget the colon. */
+ else
+--- tcsh-6.18.01/sh.func.c.orig Mon Dec 3 13:09:33 2012
++++ tcsh-6.18.01/sh.func.c Mon Dec 3 13:09:54 2012
+@@ -2627,6 +2627,8 @@
--AC_CONFIG_FILES([Makefile])
-+AC_CONFIG_FILES([Makefile nls/Makefile])
- AC_OUTPUT
-
+ if (adrof(STRcatalog) != NULL)
+ catalog = xasprintf("tcsh.%s", short2str(varval(STRcatalog)));
++/* for compatibility */
++#undef NL_CAT_LOCALE
+ #ifdef NL_CAT_LOCALE /* POSIX-compliant. */
+ /*
+ * Check if LC_MESSAGES is set in the environment and use it, if so.
--- a/components/tcsh/patches/004.tcsh-6.14.00-avoid_null_for_cwd.patch Thu Feb 14 18:44:43 2013 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-diff -up tcsh-6.14.00/sh.proc.c.orig tcsh-6.14.00/sh.proc.c
---- tcsh-6.14.00/sh.proc.c.orig 2010-09-08 10:31:31.000000000 +0200
-+++ tcsh-6.14.00/sh.proc.c 2010-09-08 10:48:07.996573506 +0200
-@@ -396,7 +396,7 @@ found:
- #ifdef notdef
- jobflags & PAEXITED ||
- #endif /* notdef */
-- !eq(dcwd->di_name, fp->p_cwd->di_name))) {
-+ fp->p_cwd == NULL || !eq(dcwd->di_name, fp->p_cwd->di_name))) {
- /* PWP: print a newline after ^C */
- if (jobflags & PINTERRUPTED) {
- #ifdef SHORT_STRINGS
--- a/components/tcsh/tcsh.license Thu Feb 14 18:44:43 2013 -0800
+++ b/components/tcsh/tcsh.license Fri Feb 15 08:40:07 2013 -0800
@@ -1,5 +1,5 @@
----------------
-- tcsh 6.17.00 -
+- tcsh 6.18.01 -
----------------
Oracle Internal Tracking Number 5688