* PATCH: Documentation indexing, prompt expansion doc
@ 2001-07-10 8:39 2% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2001-07-10 8:39 UTC (permalink / raw)
To: zsh-workers
I've long been somewhat annoyed at finding seemingly obvious things missing
from the indices in the zsh manual -- an index entry for prompt expansion
that actually refers to the section on prompt expansion being the one that
set me off on this project -- so this patch is the beginning of an attempt
to improve the situation. It covers only the first 11% of zsh.texi (which
is just enough to get past prompt expansion), so I'll probably be posting
more chunks eventually, unless someone beats me to it.
The addition of the %y prompt escape also convinced me that the ordering of
entries in the prompt expansion section was getting out of hand. To keep
related items grouped together while still making some sense alphabetically,
I've split the list into six subsections; this is the largest part of the
patch below. I also reordered the list of all X for %(X.T.F) conditions.
--------------------------------------------------------------------------
diff -ru ../zsh-forge/current/Doc/Zsh/arith.yo ./Doc/Zsh/arith.yo
--- ../zsh-forge/current/Doc/Zsh/arith.yo Thu Oct 5 01:41:36 2000
+++ ./Doc/Zsh/arith.yo Sat Jul 7 12:45:41 2001
@@ -32,6 +32,7 @@
both assigning the value 3 to the shell variable tt(foo) and returning a
zero status.
+cindex(arithmetic base)
cindex(bases, in arithmetic)
Integers can be in bases other than 10.
A leading `tt(0x)' or `tt(0X)' denotes hexadecimal.
@@ -65,6 +66,15 @@
implicitly typed by the arithmetic evaluation, where it acquires the output
base 8.
+pindex(C_BASES, use of)
+pindex(OCTAL_ZEROES, use of)
+If the tt(C_BASES) option is set, hexadecimal numbers in the standard C
+format, for example tt(0xFF) instead of the usual `tt(16#FF)'. If the
+option tt(OCTAL_ZEROES) is also set (it is not by default), octal numbers
+will be treated similarly and hence appear as `tt(077)' instead of
+`tt(8#77)'. This option has no effect on the output of bases other than
+hexadecimal and octal, and these formats are always understood on input.
+
When an output base is specified using the `tt([#)var(base)tt(])' syntax,
an appropriate base prefix will be output if necessary, so that the value
output is valid syntax for input. If the tt(#) is doubled, for example
@@ -105,8 +115,8 @@
operator is evaluated. Note the precedence of the bitwise AND, OR,
and XOR operators.
-cindex(math functions)
-cindex(functions, math)
+cindex(mathematical functions, use of)
+cindex(functions, math, use of)
Mathematical functions can be called with the syntax
`var(func)tt(LPAR())var(args)tt(RPAR())', where the function decides
if the var(args) is used as a string or a comma-separated list of
diff -ru ../zsh-forge/current/Doc/Zsh/builtins.yo ./Doc/Zsh/builtins.yo
--- ../zsh-forge/current/Doc/Zsh/builtins.yo Wed Jun 27 08:17:38 2001
+++ ./Doc/Zsh/builtins.yo Sat Jun 30 22:28:13 2001
@@ -130,7 +130,8 @@
)
findex(builtin)
item(tt(builtin) var(name) [ var(args) ... ])(
-Executes the builtin var(name), with the given var(args).
+Executes the builtin var(name), with the given var(args), even if that
+builtin has been disabled (see tt(disable)).
)
alias(bye)(exit)
module(cap)(zsh/cap)
diff -ru ../zsh-forge/current/Doc/Zsh/compat.yo ./Doc/Zsh/compat.yo
--- ../zsh-forge/current/Doc/Zsh/compat.yo Mon May 22 08:01:35 2000
+++ ./Doc/Zsh/compat.yo Sat Jun 30 22:10:12 2001
@@ -1,8 +1,8 @@
texinode(Compatibility)(Restricted Shell)()(Invocation)
sect(Compatibility)
cindex(compatibility)
-cindex(sh, compatibility)
-cindex(ksh, compatibility)
+cindex(sh compatibility)
+cindex(ksh compatibility)
Zsh tries to emulate bf(sh) or bf(ksh) when it is invoked as
tt(sh) or tt(ksh) respectively; more precisely, it looks at the first
letter of the name by which it was invoked, excluding any initial `tt(r)'
@@ -33,6 +33,7 @@
tt(status),
tt(watch).
+vindex(ENV, use of)
The usual zsh startup/shutdown scripts are not executed. Login shells
source tt(/etc/profile) followed by tt($HOME/.profile). If the
tt(ENV) environment variable is set on invocation, tt($ENV) is sourced
diff -ru ../zsh-forge/current/Doc/Zsh/files.yo ./Doc/Zsh/files.yo
--- ../zsh-forge/current/Doc/Zsh/files.yo Sat Apr 1 12:43:44 2000
+++ ./Doc/Zsh/files.yo Sat Jun 30 22:16:52 2001
@@ -5,8 +5,12 @@
cindex(startup files)
cindex(files, shutdown)
cindex(shutdown files)
+pindex(RCS, use of)
+pindex(GLOBAL_RCS, use of)
pindex(NO_RCS, use of)
pindex(NO_GLOBAL_RCS, use of)
+vindex(ZDOTDIR, use of)
+@cindex(zshenv)
Commands are first read from tt(/etc/zshenv); this cannot be overridden.
Subsequent behaviour is modified by the tt(RCS) and
tt(GLOBAL_RCS) options; the former affects all startup files, while the
@@ -18,13 +22,17 @@
Commands are then read from tt($ZDOTDIR/.zshenv).
pindex(LOGIN, use of)
+cindex(zprofile)
If the shell is a login shell, commands
are read from tt(/etc/zprofile) and then tt($ZDOTDIR/.zprofile).
+cindex(zshrc)
Then, if the shell is interactive,
commands are read from tt(/etc/zshrc) and then tt($ZDOTDIR/.zshrc).
+cindex(zlogin)
Finally, if the shell is a login shell, tt(/etc/zlogin) and
tt($ZDOTDIR/.zlogin) are read.
+cindex(zlogout)
When a login shell exits, the files tt($ZDOTDIR/.zlogout) and then
tt(/etc/zlogout) are read. This happens with either an explicit exit
via the tt(exit) or tt(logout) commands, or an implicit exit by reading
@@ -35,6 +43,7 @@
i.e. if tt(RCS) is unset when the shell exits, no history file will be
saved.
+vindex(HOME, use of)
If tt(ZDOTDIR) is unset, tt(HOME) is used instead.
Those files listed above as being in tt(/etc) may be in another
directory, depending on the installation.
diff -ru ../zsh-forge/current/Doc/Zsh/func.yo ./Doc/Zsh/func.yo
--- ../zsh-forge/current/Doc/Zsh/func.yo Wed May 30 00:23:56 2001
+++ ./Doc/Zsh/func.yo Mon Jul 2 18:28:27 2001
@@ -4,7 +4,7 @@
sect(Functions)
)\
cindex(functions)
-findex(function)
+findex(function, use of)
Shell functions are defined with the tt(function) reserved word or the
special syntax `var(funcname) tt(())'.
Shell functions are read in and stored internally.
@@ -28,10 +28,11 @@
findex(unfunction, use of)
Functions can be undefined with the tt(unfunction) builtin.
sect(Autoloading Functions)
-findex(autoload, use of)
cindex(autoloading functions)
cindex(functions, autoloading)
+findex(autoload, use of)
+vindex(fpath, use of)
A function can be marked as em(undefined) using the tt(autoload) builtin
(or `tt(functions -u)' or `tt(typeset -fu)'). Such a function has no
body. When the function is first executed, the shell searches for its
@@ -44,6 +45,7 @@
The usual alias expansion during reading will be suppressed if the
tt(autoload) builtin or its equivalent is given the option tt(-U). This is
recommended for the use of functions supplied with the zsh distribution.
+findex(zcompile, use of)
Note that for functions precompiled with the tt(zcompile) builtin command
the flag tt(-U) must be provided when the tt(.zwc) file is created, as the
corresponding information is compiled into the latter.
@@ -135,14 +137,13 @@
myfunc args...)
In fact, the tt(functions) command outputs `tt(builtin autoload -X)' as
-the body of an autoloaded function. A true autoloaded function can be
-identified by the presence of the comment `tt(# undefined)' in the body,
-because all comments are discarded from defined functions. This is done
-so that
+the body of an autoloaded function. This is done so that
example(eval "$(functions)")
-produces a reasonable result.
+produces a reasonable result. A true autoloaded function can be
+identified by the presence of the comment `tt(# undefined)' in the body,
+because all comments are discarded from defined functions.
To load the definition of an autoloaded function tt(myfunc) without
executing tt(myfunc), use:
@@ -178,7 +179,7 @@
actual command that will be executed (including expanded aliases) is
passed in two different forms: the second argument is a single-line,
size-limited version of the command (with things like function bodies
-elided); the third argument contains the full text what what is being
+elided); the third argument contains the full text that is being
executed.
)
item(tt(TRAP)var(NAL))(
@@ -211,6 +212,7 @@
)
enditem()
+findex(trap, use of)
The functions beginning `tt(TRAP)' may alternatively be defined with the
tt(trap) builtin: this may be preferable for some uses, as they are then
run in the environment of the calling process, rather than in their own
diff -ru ../zsh-forge/current/Doc/Zsh/grammar.yo ./Doc/Zsh/grammar.yo
--- ../zsh-forge/current/Doc/Zsh/grammar.yo Thu Jul 5 22:36:10 2001
+++ ./Doc/Zsh/grammar.yo Thu Jul 5 22:36:25 2001
@@ -226,7 +226,7 @@
in the parameter tt(REPLY). var(list) is executed
for each selection until a break or end-of-file is encountered.
)
-cindex(subshells)
+cindex(subshell)
item(tt(LPAR()) var(list) tt(RPAR()))(
Execute var(list) in a subshell. Traps set by the tt(trap) builtin
are reset to their default values while executing var(list).
@@ -234,6 +234,7 @@
item(tt({) var(list) tt(}))(
Execute var(list).
)
+findex(function)
xitem(tt(function) var(word) ... [ tt(()) ] [ var(term) ] tt({) var(list) tt(}))
xitem(var(word) ... tt(()) [ var(term) ] tt({) var(list) tt(}))
item(var(word) ... tt(()) [ var(term) ] var(command))(
@@ -250,6 +251,7 @@
forming a globbing pattern in that case.
)
cindex(timing)
+findex(time)
item(tt(time) [ var(pipeline) ])(
The var(pipeline) is executed, and timing statistics are
reported on the standard error in the form specified
@@ -257,7 +259,8 @@
If var(pipeline) is omitted, print statistics about the
shell process and its children.
)
-cindex(testing conditional expression)
+cindex(conditional expression)
+findex([[)
item(tt([[) var(exp) tt(]]))(
Evaluates the conditional expression var(exp)
and return a zero exit status if it is true.
@@ -314,6 +317,7 @@
item(tt(for LPAR()LPAR()) [var(expr1)] tt(;) [var(expr2)] tt(;) [var(expr3)] tt(RPAR()RPAR()) var(sublist))(
A short form of the arithmetic tt(for) command.
)
+findex(foreach)
item(tt(foreach) var(name) ... tt(LPAR()) var(word) ... tt(RPAR()) var(list) tt(end))(
Another form of tt(for).
)
@@ -394,6 +398,7 @@
entirely quoted. A literal `tt(')' character can be included in the
string by using the `tt(\')' escape.
+@pindex(RC_QUOTES, use of)
All characters enclosed between a pair of single quotes (tt('')) that
is not preceded by a `tt($)' are quoted. A single quote cannot appear
within single quotes unless the option tt(RC_QUOTES) is set, in which case
diff -ru ../zsh-forge/current/Doc/Zsh/intro.yo ./Doc/Zsh/intro.yo
--- ../zsh-forge/current/Doc/Zsh/intro.yo Fri Apr 28 10:13:50 2000
+++ ./Doc/Zsh/intro.yo Sat Jun 30 21:50:28 2001
@@ -1,5 +1,6 @@
texinode(Introduction)(Invocation)(The Z Shell Manual)(Top)
chapter(Introduction)
+cindex(introduction)
ifzman(\
sect(Synopsis)
Because zsh contains many features, the zsh manual has been split into
diff -ru ../zsh-forge/current/Doc/Zsh/invoke.yo ./Doc/Zsh/invoke.yo
--- ../zsh-forge/current/Doc/Zsh/invoke.yo Sun Jul 30 12:18:13 2000
+++ ./Doc/Zsh/invoke.yo Sat Jun 30 21:56:29 2001
@@ -2,8 +2,10 @@
chapter(Invocation)
cindex(invocation)
sect(Invocation Options)
-cindex(flags, shell)
+cindex(shell options)
+cindex(options, shell)
cindex(shell flags)
+cindex(flags, shell)
The following flags are interpreted by the shell when invoked to determine
where the shell will read commands from:
@@ -47,6 +49,7 @@
`tt(-xo shwordsplit)' or `tt(-xoshwordsplit)' is equivalent to
`tt(-x -o shwordsplit)'.
+cindex(long option)
Options may also be specified by name in GNU long option style,
`tt(--)var(option-name)'. When this is done, `tt(-)' characters in the
option name are permitted: they are translated into `tt(_)', and thus ignored.
@@ -58,6 +61,8 @@
any other options, so for example `tt(-x-shwordsplit)' is an error,
rather than being treated like `tt(-x --shwordsplit)'.
+cindex(--version)
+cindex(--help)
The special GNU-style option `tt(--version)' is handled; it sends to standard
output the shell's version information, then exits successfully.
`tt(--help)' is also handled; it sends to standard output a list of options
diff -ru ../zsh-forge/current/Doc/Zsh/jobs.yo ./Doc/Zsh/jobs.yo
--- ../zsh-forge/current/Doc/Zsh/jobs.yo Fri Oct 13 17:14:15 2000
+++ ./Doc/Zsh/jobs.yo Sat Jun 30 23:18:30 2001
@@ -2,6 +2,7 @@
chapter(Jobs & Signals)
sect(Jobs)
cindex(jobs)
+pindex(MONITOR, use of)
If the tt(MONITOR) option is set,
an interactive shell associates a em(job) with each pipeline.
It keeps a table of current jobs, printed by the tt(jobs)
Only in ./Doc/Zsh: manmodmenu.yo
diff -ru ../zsh-forge/current/Doc/Zsh/manual.yo ./Doc/Zsh/manual.yo
--- ../zsh-forge/current/Doc/Zsh/manual.yo Thu Jun 28 21:44:55 2001
+++ ./Doc/Zsh/manual.yo Sat Jun 30 21:47:54 2001
@@ -7,6 +7,7 @@
(shell), which of the standard shells most closely resembles the Korn shell
(ksh), although it is not completely compatible.
+cindex(version)
Version version(), last updated date().
)\
Only in ./Doc/Zsh: modlist.yo
Only in ./Doc/Zsh: modmenu.yo
diff -ru ../zsh-forge/current/Doc/Zsh/params.yo ./Doc/Zsh/params.yo
--- ../zsh-forge/current/Doc/Zsh/params.yo Fri Jun 15 02:41:47 2001
+++ ./Doc/Zsh/params.yo Sat Jun 30 22:06:56 2001
@@ -684,6 +684,14 @@
This is useful with the tt(AUTO_PUSHD) option.
pindex(AUTO_PUSHD, use of)
)
+vindex(ENV)
+item(tt(ENV))(
+If the tt(ENV) environment variable is set when zsh is invoked as tt(sh)
+or tt(ksh), tt($ENV) is sourced after the profile scripts. The value of
+tt(ENV) is subjected to parameter expansion, command substitution, and
+arithmetic expansion before being interpreted as a pathname. Note that
+tt(ENV) is em(not) used unless zsh is emulating bf(sh) or bf(ksh).
+)
vindex(FCEDIT)
item(tt(FCEDIT))(
The default editor for the tt(fc) builtin.
diff -ru ../zsh-forge/current/Doc/Zsh/prompt.yo ./Doc/Zsh/prompt.yo
--- ../zsh-forge/current/Doc/Zsh/prompt.yo Fri Jun 22 19:43:14 2001
+++ ./Doc/Zsh/prompt.yo Tue Jul 3 09:08:33 2001
@@ -3,6 +3,8 @@
ifzman(\
sect(Prompt Expansion)
)\
+cindex(prompt expansion)
+cindex(expansion, prompt)
Prompt sequences undergo a special form of expansion. This type of expansion
is also available using the tt(-P) option to the tt(print) builtin.
@@ -33,6 +35,7 @@
should appear between the `tt(%)' and the next character of the
sequence. The following escape sequences are recognized:
+subsect(Special characters)
startitem()
item(tt(%%))(
A `tt(%)'.
@@ -40,6 +43,53 @@
item(tt(%RPAR()))(
A `tt(RPAR())'.
)
+enditem()
+
+subsect(Login information)
+startitem()
+item(tt(%l))(
+The line (tty) the user is logged in on, without `tt(/dev/)' prefix.
+If the name starts with `tt(/dev/tty)', that prefix is stripped.
+)
+item(tt(%M))(
+The full machine hostname.
+)
+item(tt(%m))(
+The hostname up to the first `tt(.)'.
+An integer may follow the `tt(%)' to specify
+how many components of the hostname are desired. With a negative integer,
+trailing components of the hostname are shown.
+)
+item(tt(%n))(
+tt($USERNAME).
+)
+item(tt(%y))(
+The line (tty) the user is logged in on, without `tt(/dev/)' prefix.
+This does not treat `tt(/dev/tty)' names specially.
+)
+enditem()
+
+subsect(Shell state)
+startitem()
+item(tt(%#))(
+A `tt(#)' if the shell is running with privileges, a `tt(%)' if not.
+Equivalent to `tt(%(!.#.%%))'.
+The definition of `privileged', for these purposes, is that either the
+effective user ID is zero, or, if POSIX.1e capabilities are supported, that
+at least one capability is raised in either the Effective or Inheritable
+capability vectors.
+)
+item(tt(%?))(
+The return code of the last command executed just before the prompt.
+)
+item(tt(%_))(
+The status of the parser, i.e. the shell constructs (like `tt(if)' and
+`tt(for)') that have been started on the command line. If given an integer
+number that many strings will be printed; zero or negative or no integer means
+print as many as there are. This is most useful in prompts tt(PS2) for
+continuation lines and tt(PS4) for debugging with the tt(XTRACE) option; in
+the latter case it will also work non-interactively.
+)
xitem(tt(%d))
item(tt(%/))(
Present working directory (tt($PWD)). If an integer follows the `tt(%)',
@@ -56,61 +106,54 @@
item(tt(%!))(
Current history event number.
)
+item(tt(%i))(
+The line number currently being executed in the script, sourced file, or
+shell function given by tt(%N). This is most useful for debugging as part
+of tt($PS4).
+)
item(tt(%L))(
The current value of tt($SHLVL).
)
-item(tt(%M))(
-The full machine hostname.
-)
-item(tt(%m))(
-The hostname up to the first `tt(.)'.
-An integer may follow the `tt(%)' to specify
-how many components of the hostname are desired. With a negative integer,
-trailing components of the hostname are shown.
+item(tt(%N))(
+The name of the script, sourced file, or shell function that zsh is
+currently executing, whichever was started most recently. If there is
+none, this is equivalent to the parameter tt($0). An integer may follow
+the `tt(%)' to specify a number of trailing path components to show; zero
+means the full path. A negative integer specifies leading components.
)
-item(tt(%S) LPAR()tt(%s)RPAR())(
-Start (stop) standout mode.
+xitem(tt(%c))
+xitem(tt(%.))
+item(tt(%C))(
+Trailing component of tt($PWD).
+An integer may follow the `tt(%)' to get more than one component.
+Unless `tt(%C)' is used, tilde contraction is performed first. These are
+deprecated as tt(%c) and tt(%C) are equivalent to tt(%1~) and tt(%1/),
+respectively, while explicit positive integers have the same effect as for
+the latter two sequences.
)
-item(tt(%U) LPAR()tt(%u)RPAR())(
-Start (stop) underline mode.
+enditem()
+
+subsect(Date and time)
+startitem()
+item(tt(%D))(
+The date in var(yy)tt(-)var(mm)tt(-)var(dd) format.
)
-item(tt(%B) LPAR()tt(%b)RPAR())(
-Start (stop) boldface mode.
+item(tt(%T))(
+Current time of day, in 24-hour format.
)
xitem(tt(%t))
item(tt(%@))(
Current time of day, in 12-hour, am/pm format.
)
-item(tt(%T))(
-Current time of day, in 24-hour format.
-)
item(tt(%*))(
Current time of day in 24-hour format, with seconds.
)
-item(tt(%n))(
-tt($USERNAME).
-)
-item(tt(%N))(
-The name of the script, sourced file, or shell function that zsh is
-currently executing, whichever was started most recently. If there is
-none, this is equivalent to the parameter tt($0). An integer may follow
-the `tt(%)' to specify a number of trailing path components to show; zero
-means the full path. A negative integer specifies leading components.
-)
-item(tt(%i))(
-The line number currently being executed in the script, sourced file, or
-shell function given by tt(%N). This is most useful for debugging as part
-of tt($PS4).
-)
item(tt(%w))(
The date in var(day)tt(-)var(dd) format.
)
item(tt(%W))(
The date in var(mm)tt(/)var(dd)tt(/)var(yy) format.
)
-item(tt(%D))(
-The date in var(yy)tt(-)var(mm)tt(-)var(dd) format.
-)
item(tt(%D{)var(string)tt(}))(
var(string) is formatted using the tt(strftime) function.
See manref(strftime)(3) for more details. Three additional codes are
@@ -119,47 +162,37 @@
tt(%K)/tt(%L) correspond to tt(%k)/tt(%l) for the hour of the day
(24/12 hour clock) in the same way.
)
-item(tt(%l))(
-The line (tty) the user is logged in on without tt(/dev/) prefix.
-If name starts with tt(/dev/tty) this is stripped.
-)
-item(tt(%y))(
-The line (tty) the user is logged in on without tt(/dev/) prefix.
-It does not treat tt(/dev/tty*) specially.
+enditem()
+
+subsect(Visual effects)
+startitem()
+item(tt(%B) LPAR()tt(%b)RPAR())(
+Start (stop) boldface mode.
)
-item(tt(%?))(
-The return code of the last command executed just before the prompt.
+item(tt(%E))(
+Clear to end of line.
)
-item(tt(%_))(
-The status of the parser, i.e. the shell constructs (like `tt(if)' and
-`tt(for)') that have been started on the command line. If given an integer
-number that many strings will be printed; zero or negative or no integer means
-print as many as there are. This is most useful in prompts tt(PS2) for
-continuation lines and tt(PS4) for debugging with the tt(XTRACE) option; in
-the latter case it will also work non-interactively.
+item(tt(%U) LPAR()tt(%u)RPAR())(
+Start (stop) underline mode.
)
-item(tt(%E))(
-Clears to end of line.
+item(tt(%S) LPAR()tt(%s)RPAR())(
+Start (stop) standout mode.
)
-item(tt(%#))(
-A `tt(#)' if the shell is running with privileges, a `tt(%)' if not.
-Equivalent to `tt(%(!.#.%%))'.
-The definition of `privileged', for these purposes, is that either the
-effective user ID is zero, or, if POSIX.1e capabilities are supported, that
-at least one capability is raised in either the Effective or Inheritable
-capability vectors.
+item(tt(%{)...tt(%}))(
+Include a string as a literal escape sequence.
+The string within the braces should not change the cursor
+position. Brace pairs can nest.
)
+enditem()
+
+subsect(Conditional substrings)
+startitem()
item(tt(%v))(
vindex(psvar, use of)
The value of the first element of the tt(psvar) array parameter. Following
the `tt(%)' with an integer gives that element of the array. Negative
integers count from the end of the array.
)
-item(tt(%{)...tt(%}))(
-Include a string as a literal escape sequence.
-The string within the braces should not change the cursor
-position. Brace pairs can nest.
-)
item(tt(%LPAR())var(x.true-text.false-text)tt(RPAR()))(
Specifies a ternary expression. The character following the var(x) is
arbitrary; the same character is used to separate the text for the
@@ -176,26 +209,27 @@
The test character var(x) may be any of the following:
startsitem()
+sitem(tt(!))(True if the shell is running with privileges.)
+sitem(tt(#))(True if the effective uid of the current process is var(n).)
+sitem(tt(?))(True if the exit status of the last command was var(n).)
+sitem(tt(_))(True if at least var(n) shell constructs were started.)
+sxitem(tt(C))
+sitem(tt(/))(True if the current absolute path has at least var(n) elements.)
sxitem(tt(c))
sxitem(tt(.))
-sitem(tt(~))(True if the current path, with prefix replacement, has at least var(n) elements.)
-sxitem(tt(/))
-sitem(tt(C))(True if the current absolute path has at least var(n) elements.)
-sitem(tt(t))(True if the time in minutes is equal to var(n).)
-sitem(tt(T))(True if the time in hours is equal to var(n).)
-sitem(tt(d))(True if the day of the month is equal to var(n).)
+sitem(tt(~))(True if the current path, with prefix replacement, has at
+least var(n) elements.)
sitem(tt(D))(True if the month is equal to var(n) (January = 0).)
-sitem(tt(w))(True if the day of the week is equal to var(n) (Sunday = 0).)
-sitem(tt(?))(True if the exit status of the last command was var(n).)
-sitem(tt(#))(True if the effective uid of the current process is var(n).)
+sitem(tt(d))(True if the day of the month is equal to var(n).)
sitem(tt(g))(True if the effective gid of the current process is var(n).)
+sitem(tt(L))(True if the tt(SHLVL) parameter is at least var(n).)
sitem(tt(l))(True if at least var(n) characters have already been
printed on the current line.)
-sitem(tt(L))(True if the tt(SHLVL) parameter is at least var(n).)
sitem(tt(S))(True if the tt(SECONDS) parameter is at least var(n).)
+sitem(tt(T))(True if the time in hours is equal to var(n).)
+sitem(tt(t))(True if the time in minutes is equal to var(n).)
sitem(tt(v))(True if the array tt(psvar) has at least var(n) elements.)
-sitem(tt(_))(True if at least var(n) shell constructs were started.)
-sitem(tt(!))(True if the shell is running with privileges.)
+sitem(tt(w))(True if the day of the week is equal to var(n) (Sunday = 0).)
endsitem()
)
xitem(tt(%<)var(string)tt(<))
@@ -236,15 +270,5 @@
current directory, followed by a `tt(%)' or `tt(#)', followed by a
space. Without the `tt(%<<)', those two characters would be included
in the string to be truncated.
-)
-xitem(tt(%c))
-xitem(tt(%.))
-item(tt(%C))(
-Trailing component of tt($PWD).
-An integer may follow the `tt(%)' to get more than one component.
-Unless `tt(%C)' is used, tilde contraction is performed first. These are
-deprecated as tt(%c) and tt(%C) are equivalent to tt(%1~) and tt(%1/),
-respectively, while explicit positive integers have the same effect as for
-the latter two sequences.
)
enditem()
diff -ru ../zsh-forge/current/Doc/Zsh/redirect.yo ./Doc/Zsh/redirect.yo
--- ../zsh-forge/current/Doc/Zsh/redirect.yo Sun May 14 15:08:41 2000
+++ ./Doc/Zsh/redirect.yo Sat Jun 30 22:53:13 2001
@@ -139,6 +139,7 @@
with the terminal (assuming file descriptor 1 had been)
and then file descriptor 1 would be associated with file var(fname).
sect(Multios)
+cindex(multios)
pindex(MULTIOS, use of)
If the user tries to open a file descriptor for writing more than once,
the shell opens the file descriptor as a pipe to a process that copies
@@ -196,22 +197,22 @@
when tt(MULTIOS) is unset will truncate bar, and write `tt(foo)' into baz.
sect(Redirections with no command)
-vindex(NULLCMD, use of)
-vindex(READNULLCMD, use of)
-pindex(CSH_NULLCMD, use of)
-pindex(SH_NULLCMD, use of)
When a simple command consists of one or more redirection operators
and zero or more parameter assignments, but no command name, zsh can
behave in several ways.
+vindex(NULLCMD, use of)
+pindex(CSH_NULLCMD, use of)
If the parameter tt(NULLCMD) is not set or the option tt(CSH_NULLCMD) is
set, an error is caused. This is the bf(csh) behavior and tt(CSH_NULLCMD)
is set by default when emulating bf(csh).
+pindex(SH_NULLCMD, use of)
If the option tt(SH_NULLCMD) is set, the builtin `tt(:)' is inserted as a
command with the given redirections. This is the default when emulating
bf(sh) or bf(ksh).
+vindex(READNULLCMD, use of)
Otherwise, if the parameter tt(NULLCMD) is set, its value will be used as a
command with the given redirections. If both tt(NULLCMD) and
tt(READNULLCMD) are set, then the value of the latter will be used instead
^ permalink raw reply [relevance 2%]
* Re: Proposal to standardize the shell
@ 2001-07-10 11:40 5% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2001-07-10 11:40 UTC (permalink / raw)
To: David Korn; +Cc: Zsh hackers list
David Korn wrote:
> I would like to see if it is possible to come up with an enhanced
> shell standard that could be met by at least ksh, bash, and zsh.
>
> If the zsh workers are also interested in this effort let me know.
The effort does sound interesting to me. Your suggested starting points
seem sensible and I'd be keen for there to be input from us so that
current zsh features and incompatibilities can be accounted for in the
process.
> Also, if you know who else should be included, please let me know.
Maybe the pdksh developers but I'm not sure how alive that project is.
Peter Stephenson wrote:
> Quite what degree of compatibility is possible between the more advanced
> features I really don't know, but it's worth thinking about. We've been
> treating ksh93 as a sort of de facto standard for some of the advanced
> features, though there's still quite a lot of that missing and (according
> to my reading of Oliver Kiddle's post to zsh-workers just now) some of it
> appears to be incompatible.
Certainly, there may be problems with some of the more advanced
features but I think there is a fair amount of scope for extensions to
POSIX which wouldn't cause many problems. If I'm not mistaken, there
were quite a few extensions to POSIX that were in ksh88 and these are
fairly well followed by bash and zsh. I think there are also a number of
newer features where we don't have incompatibilities. Process
substitution would be one example.
Can anyone please point me in the direction of the canonical web
location for the POSIX shell definition because my search wasn't very
successful?
> In interactive features, there might be something we do with simple things
> like key binding syntax, for example. I doubt if it'll go much deeper than
I didn't mention ksh93 key binding in my recent post but it is very
different. In short, there is a KEYBD trap which you override to change
keypresses. I expect the zsh/bash bindkey builtin was inspired by tcsh.
There might be other areas of interactive features which can be
standardised on though. Parts of the history mechanism, fc options
maybe.
Oliver
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 5%]
* Re: Re: Proposal to standardize the shell
@ 2001-07-10 15:42 3% David Korn
0 siblings, 0 replies; 200+ results
From: David Korn @ 2001-07-10 15:42 UTC (permalink / raw)
To: opk; +Cc: zsh-workers
> Can anyone please point me in the direction of the canonical web
> location for the POSIX shell definition because my search wasn't very
> successful?
The X/Open specification is at
http://www.opengroup.org/onlinepubs/007908799/toc.htm
and the shelll command language at
http://www.opengroup.org/onlinepubs/007908799/xcu/shellix.html
X/Open is a superset of POSIX.
David Korn
research!dgk
dgk@research.att.com
^ permalink raw reply [relevance 3%]
* long/short options
@ 2001-07-12 16:01 4% Andrej Borsenkow
2001-07-13 8:07 0% ` Sven Wischnowsky
0 siblings, 1 reply; 200+ results
From: Andrej Borsenkow @ 2001-07-12 16:01 UTC (permalink / raw)
To: ZSH Workers Mailing List
mount under Cygwin is simple, but every option has a long and short form.
Using exclusions I can prevent both to be on command line, but listing looks
somewhat ugly:
(tty1)% mount -s --binary
Completing Windows path
Completing option
--binary -- Unix line endings LF
--cygwin-executable -- all files under mountpoint are cygwin executables
--executable -- all files under mountpoint are executables
--force -- be silent
--text -- (default) DOS line endings CR-LF
-X -- all files under mountpoint are cygwin executables
-b -- Unix line endings LF
-f -- be silent
-t -- (default) DOS line endings CR-LF
-x -- all files under mountpoint are executables
What I'd really like is something like
-b, --binary -- Unix line endings
...
Or do I miss something and this is already possible?
Another question is, in case of
'(-c -i --import-old-mounts -p --show-cygdrive-prefix)--change-cygdrive-
prefix[cygdrive prefix]:cygdrive prefix (POSIX path):_files -/'
I get something like
(tty1)% mount --change-cygdrive-prefix --
No matches for: `cygdrive prefix (POSIX path)' or `file'
^^^^^^^^^
How can I prevent the last part (I want description only from option).
Oh, and is _files /*(/) the right way to complete absolute pathnames? :-)
-andrej
^ permalink raw reply [relevance 4%]
* Re: long/short options
2001-07-12 16:01 4% long/short options Andrej Borsenkow
@ 2001-07-13 8:07 0% ` Sven Wischnowsky
0 siblings, 0 replies; 200+ results
From: Sven Wischnowsky @ 2001-07-13 8:07 UTC (permalink / raw)
To: zsh-workers
Andrej Borsenkow wrote:
> ...
>
> What I'd really like is something like
>
> -b, --binary -- Unix line endings
> ...
>
> Or do I miss something and this is already possible?
It isn't. And it's hard to write (but that didn't stop us in the past).
One would have to change the way comparguments stores and reports the
options and one would have to change the code in _describe to list
things differently.
And one would have to handle this correctly with menu selection where
users expect a one-to-one correspondence between matches (in this case:
lines) and strings to insert in the line.
That's more work than I want to invest in it.
> Another question is, in case of
>
> '(-c -i --import-old-mounts -p --show-cygdrive-prefix)--change-cygdrive-
> prefix[cygdrive prefix]:cygdrive prefix (POSIX path):_files -/'
>
> I get something like
>
> (tty1)% mount --change-cygdrive-prefix --
> No matches for: `cygdrive prefix (POSIX path)' or `file'
> ^^^^^^^^^
> How can I prevent the last part (I want description only from option).
I was about to tell you that you can't because it is added by _files in
line 75 which we need for the tag handling.
But then I looked again and maybe the patch is all we need. It makes
_files check if there is a user-supplied description and if so, doesn't
use `file' as its own description (it then uses an empty string which is
basically ignored in _description).
This is a development version. Let's try.
> Oh, and is _files /*(/) the right way to complete absolute pathnames? :-)
The other hunk below is for this one. Somehow I thought `_files -P/ -W "(/)" -/'
would be the best solution. But _path_files had some problems with a
-P-prefix if it was already on the line and there isn't much we can do
about that -- 60% of _path_files is about prefix and suffix handling.
But the patch below duplicates code in the C-code to make _path_files
ignore a -P-prefix on the line.
And with that the call to _files as shown above seems to work.
Bye
Sven
Index: Completion/Unix/Type/_files
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Type/_files,v
retrieving revision 1.3
diff -u -r1.3 _files
--- Completion/Unix/Type/_files 2001/05/07 09:25:05 1.3
+++ Completion/Unix/Type/_files 2001/07/13 07:28:33
@@ -65,7 +65,11 @@
if [[ "$sdef" = *:${tag}:* ]]; then
descr="${(Q)sdef#*:${tag}:}"
else
- descr=file
+ if (( $opts[(I)-X] )); then
+ descr=
+ else
+ descr=file
+ fi
end=yes
fi
Index: Completion/Unix/Type/_path_files
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Type/_path_files,v
retrieving revision 1.7
diff -u -r1.7 _path_files
--- Completion/Unix/Type/_path_files 2001/07/06 10:46:31 1.7
+++ Completion/Unix/Type/_path_files 2001/07/13 07:28:33
@@ -5,7 +5,7 @@
local linepath realpath donepath prepath testpath exppath skips skipped
local tmp1 tmp2 tmp3 tmp4 i orig eorig pre suf tpre tsuf opre osuf cpre
-local pats haspats ignore pfxsfx sopt gopt opt sdirs ignpar cfopt listsfx
+local pats haspats ignore pfx pfxsfx sopt gopt opt sdirs ignpar cfopt listsfx
local nm=$compstate[nmatches] menu matcher mopts sort match mid accex fake
typeset -U prepaths exppaths
@@ -15,7 +15,7 @@
# Get the options.
zparseopts -a mopts \
- 'P:=pfxsfx' 'S:=pfxsfx' 'q=pfxsfx' 'r:=pfxsfx' 'R:=pfxsfx' \
+ 'P:=pfx' 'S:=pfxsfx' 'q=pfxsfx' 'r:=pfxsfx' 'R:=pfxsfx' \
'W:=prepaths' 'F:=ignore' 'M+:=matcher' \
J+: V+: X+: 1: 2: n: 'f=tmp1' '/=tmp1' 'g+:-=tmp1'
@@ -28,6 +28,10 @@
pats=( "${(@)=${(@M)tmp1:#-g*}#-g}" )
fi
pats=( "${(@)pats:# #}" )
+
+if (( $#pfx )); then
+ compset -P "$pfx[2]" || pfxsfx=( "$pfx[@]" "$pfxsfx[@]" )
+fi
if (( $#prepaths )); then
tmp1="${prepaths[2]}"
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
^ permalink raw reply [relevance 0%]
* PATCH: 4.1: cygwin mount
@ 2001-07-13 12:10 6% Andrej Borsenkow
0 siblings, 0 replies; 200+ results
From: Andrej Borsenkow @ 2001-07-13 12:10 UTC (permalink / raw)
To: ZSH Workers Mailing List
[-- Attachment #1: Type: text/plain, Size: 246 bytes --]
This is specialcased because cgwin mount has too little in common with
normal mount. I suppose, we can't currently complete 'Windows path" (that is
exactly what is expected - windows path in form x:\foo\bar\com).
Should it go into 4.0?
-andrej
[-- Attachment #2: zsh-mount-cygwin.diff --]
[-- Type: application/octet-stream, Size: 2985 bytes --]
Index: Completion/Unix/Command/_mount
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_mount,v
retrieving revision 1.4
diff -u -r1.4 _mount
--- Completion/Unix/Command/_mount 2001/06/13 11:05:51 1.4
+++ Completion/Unix/Command/_mount 2001/07/13 12:07:10
@@ -1,5 +1,49 @@
#compdef mount umount
+if [[ "$OSTYPE" == cygwin ]]; then
+ if [[ "$service" == mount ]] ; then
+ _arguments -s \
+ - mount \
+ '(-b -t --text)--binary[Unix line endings LF]' \
+ '(--binary -t --text)-b[Unix line endings LF]' \
+ '(-f)--force[be silent]' \
+ '(--force)-f[be silent]' \
+ '(-s -u --user)--system[system-wide mount point]' \
+ '(--system -u --user)-s[system-wide mount point]' \
+ '(-t -b --binary)--text[(default) DOS line endings CR-LF]' \
+ '(--text -b --binary)-t[(default) DOS line endings CR-LF]' \
+ '(-u -s --system)--user[(default)user private mount point]' \
+ '(--user -s --system)-u[(default)user private mount point]' \
+ '(-x -X --cygwin-executable)--executable[all files under mountpoint are executables]' \
+ '(--executable -X --cygwin-executable)-x[all files under mountpoint are executables]' \
+ '(-X -x --executable)--cygwin-executable[all files under mountpoint are cygwin executables]' \
+ '(--cygwin-executable -x --executable)-X[all files under mountpoint are cygwin executables]' \
+ ':Windows path:' \
+ ':Unix path:_path_files -P/ -W "(/)" -/' \
+ - control \
+ '(-i -p --show-cygdrive-prefix -c --change-cygdrive-prefix)--import-old-mounts[import old mounts]' \
+ '(--import-old-mounts -p --show-cygdrive-prefix -c --change-cygdrive-prefix)-i[import old mounts]' \
+ '(-p -i --import-old-mounts -c --change-cygdrive-prefix)--show-cygdrive-prefix[show cygdrive prefix]' \
+ '(--show-cygdrive-prefix -i --import-old-mounts -c --change-cygdrive-prefix)-p[show cygdrive prefix]' \
+ '(-c -i --import-old-mounts -p --show-cygdrive-prefix)--change-cygdrive-prefix[cygdrive prefix]:cygdrive prefix (POSIX path):_files -P/ -W "(/)" -/' \
+ '(--change-cygdrive-prefix -i --import-old-mounts -p --show-cygdrive-prefix)-c[cygdrive prefix]:cygdrive prefix (POSIX path):_files -P/ -W "(/)" -/'
+
+ return
+ else
+ local line
+ local -a wpaths upaths
+ mount | while read -r line; do
+ [[ $line == ?:\ * ]] && continue
+ wpaths=($wpaths ${line%% on*})
+ upaths=($upaths ${${line##*on }%% type*})
+ done
+ _alternative \
+ 'windowspath:WIndows path:compadd -a wpaths' \
+ 'unixpath:Unix path:compadd -a upaths'
+ return
+ fi
+fi
+
# This is table-driven: the tables for the values for the different
# file system types are directly below. The tables describing the
# arguments for the `mount' command for different operating systems
^ permalink raw reply [relevance 6%]
* a fix for _chown
@ 2001-07-14 7:05 3% Akinori MUSHA
2001-07-17 11:00 0% ` Oliver Kiddle
0 siblings, 1 reply; 200+ results
From: Akinori MUSHA @ 2001-07-14 7:05 UTC (permalink / raw)
To: zsh-workers
Hello,
The following patch fixes the _chown compdef for *BSD.
Recently FreeBSD 5.0-CURRENT dropped the support for the non-POSIX
notation of the "user.group" style. Since all the BSD's have chown(1)
that understands the "user:group" style nowadays, I think this is a
reasonable and safe fix for *BSD.
--- _chown.orig Sat Jul 14 15:58:00 2001
+++ _chown Sat Jul 14 15:58:38 2001
@@ -9,7 +9,7 @@
fi
_groups && return 0
else
- if [[ $OSTYPE = (solaris*|hpux*) ]]; then
+ if [[ $OSTYPE = (solaris*|hpux*|*bsd*) ]]; then
suf=':'
else
suf='.'
Regards,
--
/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp
"Freeze this moment a little bit longer, make each impression
a little bit stronger.. Experience slips away -- Time stand still"
^ permalink raw reply [relevance 3%]
* Re: a fix for _chown
2001-07-14 7:05 3% a fix for _chown Akinori MUSHA
@ 2001-07-17 11:00 0% ` Oliver Kiddle
2001-07-17 23:42 0% ` David Terrell
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2001-07-17 11:00 UTC (permalink / raw)
To: Akinori MUSHA; +Cc: zsh-workers
Akinori MUSHA wrote:
> The following patch fixes the _chown compdef for *BSD.
Seeing as it hasn't yet been, I'll commit this, to both branches.
> Recently FreeBSD 5.0-CURRENT dropped the support for the non-POSIX
> notation of the "user.group" style.
Urgh, do you know why? Surely support for `.' is no more than about two
lines of code and isn't doing any harm. Admittedly, I'm not a FreeBSD
user but having first learnt it as `.' I'd find this quite annoying.
Oliver
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 0%]
* Re: a fix for _chown
2001-07-17 11:00 0% ` Oliver Kiddle
@ 2001-07-17 23:42 0% ` David Terrell
0 siblings, 0 replies; 200+ results
From: David Terrell @ 2001-07-17 23:42 UTC (permalink / raw)
To: Oliver Kiddle; +Cc: Akinori MUSHA, zsh-workers
On Tue, Jul 17, 2001 at 12:00:49PM +0100, Oliver Kiddle wrote:
> > Recently FreeBSD 5.0-CURRENT dropped the support for the non-POSIX
> > notation of the "user.group" style.
>
> Urgh, do you know why? Surely support for `.' is no more than about two
> lines of code and isn't doing any harm. Admittedly, I'm not a FreeBSD
> user but having first learnt it as `.' I'd find this quite annoying.
Probably to support '.' characters in usernames.
--
David Terrell | "And even when states do spring for essay questions, the
dbt@meat.net | testing companies turn over the scoring of these writing
samples to temps making less than $10 an hour. Aren't America's teachers
better prepared to evaluate our kids than some part-time rent-a-readers?"
^ permalink raw reply [relevance 0%]
* Re: Enhanced shell
@ 2001-07-23 11:13 3% ` Oliver Kiddle
2001-07-23 11:38 0% ` Peter Stephenson
2001-07-29 9:53 4% ` Zefram
1 sibling, 1 reply; 200+ results
From: Oliver Kiddle @ 2001-07-23 11:13 UTC (permalink / raw)
To: Zsh hackers list
Peter Stephenson wrote:
>
> David Korn is asking for suggestions for features from the various
> shells to be included in a standard, so I've been jotting possible
> things from zsh down. This is extremely rough at the moment, but before
I had also jotted down a list so I've merged it in with yours and added
a few comments.
> emulate builtin
whence builtin and variants
disown
typeset builtin (yes, it isn't in POSIX). Also, note that bash has
obsoleted `typeset' in favour of `declare' which I think is better.
> ? disable/enable? [bash]
not so useful. they are also common as commands to enable/disable
printers (on AIX and Solaris at least).
> coproc keyword (|& as per csh is already semi-standard and useful)
> ? ZDOTDIR? (or equivalent)
> autoload -U
and various other fpath/autoloading differences
> <<<'word'
multios option (and maybe other redirection extensions)
> precmd, chpwd, periodic
preexec
I'm not too sure about these because of the sort of problems we get
with, for example the prompt themes overwriting the existing functions.
I can think of a few more flexible ways of allowing the same.
> ? [#16]?
possible, not sure
> ${+foo}
yes and some other parameter expansion extensions
> {0..10}, {00..10}
and {a,b} brace expansion
> ? =cmd?
yes
> ? glob qualifiers (perhaps in some standardised NO_BARE_GLOB_QUAL form)
yup.
backreferences (ksh93's possibly being better)
? glob flags
? glob operators: x~y ^x x# x## <x-y>
> ** (both glob and math?)
> CPUTYPE/HOSTYPE/OSTYPE, EGID/GID, EUID/UID, ERRNO, HOST or HOSTNAME (bash)
VENDOR/MACHTYPE, LOGNAME (USER/USERNAME), PWD, OLDPWD, COLUMNS, LINES,
pipestatus [PIPESTATUS in bash], ARGC/ARGV(?), RANDOM(?), SECONDS(?),
SHLVL, TTY
> `ESS_VERSION' (version no. of extended shell standard)
or possibly take that idea further to cover more details. I like
ksh93's use of a .sh namespace
> ? typeset -T? (possible with discipline functions)
that's a good point about the disciplines
> ? typeset etc. -g?
zsh/bash dynamically scoped local variables.
> command [bash]
-, builtin and noglob. I think command is already in the standard.
> suspend [bash
it's a default alias in ksh
> ? pushd?
not too sure about that because it can be done with a couple of scripts
and because autopushd with the ~ completion is more useful.
cd -
two argument form of cd
cd's handling of symbolic links
directory stack, and access with ~num
process substitution
C style for loop syntax
? repeat loop
prompt percent substitutions
[[ ... ]] conditions
? global aliases
some of the default key bindings (e.g tab for completion)
various history features (shared, duplicate removal etc, fc options, datestamps)
the common -L option to many builtins [similar to typeset -p in ksh]
-l option to the shell - I wish bash would accept -l in addition to --login
array subscripts with start and end
subscripts on a scalar variable
? select, let and function statements (all of which I'd leave out)
I'd also leave out nested substitutions and parameter expansion flags.
I've not gone through the list of options so some of them may be useful.
There may be other builtins too.
Oliver
^ permalink raw reply [relevance 3%]
* Re: Enhanced shell
2001-07-23 11:13 3% ` Oliver Kiddle
@ 2001-07-23 11:38 0% ` Peter Stephenson
2001-07-23 18:03 3% ` Bart Schaefer
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2001-07-23 11:38 UTC (permalink / raw)
To: Zsh hackers list
Oliver Kiddle wrote:
> > David Korn is asking for suggestions for features from the various
> > shells to be included in a standard, so I've been jotting possible
> > things from zsh down.
>
> I had also jotted down a list so I've merged it in with yours and added
> a few comments.
>
> typeset builtin (yes, it isn't in POSIX). Also, note that bash has
> obsoleted `typeset' in favour of `declare' which I think is better.
It strikes me as a bit late for that now.
> > ? disable/enable? [bash]
> not so useful. they are also common as commands to enable/disable
> printers (on AIX and Solaris at least).
Yes, I can see it would be silly defining a standard which is known to have
this clash in it.
> multios option (and maybe other redirection extensions)
This is very useful, but it's maybe a bit too much of a hack to
standardise (e.g. the race condition on output multios in the current
implementation, although I hope that's fixable).
> > precmd, chpwd, periodic
> preexec
> I'm not too sure about these because of the sort of problems we get
> with, for example the prompt themes overwriting the existing functions.
> I can think of a few more flexible ways of allowing the same.
In which case, we should probably think about that for our own purposes
before attempting to standardise.
> backreferences (ksh93's possibly being better)
I haven't looked at those at all.
> > `ESS_VERSION' (version no. of extended shell standard)
> or possibly take that idea further to cover more details. I like
> ksh93's use of a .sh namespace
Since namespaces were on David Korn's list, that might be preferable.
> > ? typeset -T? (possible with discipline functions)
> that's a good point about the disciplines
> > ? typeset etc. -g?
> zsh/bash dynamically scoped local variables.
Hmm. I don't know how this will pan out if ksh is going the way of
statically scoped parameters.
> > command [bash]
-, builtin and noglob. I think command is already in the standard.
I hadn't looked at the standard --- this was something I meant to check.
I'm pretty sure builtin is there hence the POSIX_BUILTINS option. noglob
is really for saving typing interactively, so I'm not sure it's what we're
looking for at the moment.
> > suspend [bash
> it's a default alias in ksh
OK, may well be worth standardising
> cd -
> two argument form of cd
> directory stack, and access with ~num
Again, these are really interactive shortcuts; you can (and probably would)
do them in a more verbose way in a script. Standardising handling of
symbolic links in cd might be sensible, though.
> process substitution
That's already in ksh, but it wasn't on David Korn's list, so we could
suggest it.
> C style for loop syntax
I would tend to avoid trying to standardise variant syntax altogether.
> prompt percent substitutions
Interactive shortcut again --- very useful, but less so for scripts. Quite
a sizeable extension if you haven't already got it. It's annoying bash
does this with backslashes.
> [[ ... ]] conditions
I suspect that's already implied.
> some of the default key bindings (e.g tab for completion)
Some of our key bindings have come from ksh, it might indeed be sensible to
keep track of which we want to list as standard.
> array subscripts with start and end
> subscripts on a scalar variable
Apparently this works a different way: ${param:start:offset}, or
something, haven't looked at the details.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Unit 300, Science Park, Milton Road,
Cambridge, CB4 0XL, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 0%]
* Re: Enhanced shell
2001-07-23 11:38 0% ` Peter Stephenson
@ 2001-07-23 18:03 3% ` Bart Schaefer
2001-07-24 13:42 2% ` Oliver Kiddle
0 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2001-07-23 18:03 UTC (permalink / raw)
To: Zsh hackers list
This is a bit choppy because I'm trying not to say myself anything that
Oliver already said.
On Jul 22, 11:47pm, Peter Stephenson wrote:
}
} ? ZDOTDIR? (or equivalent)
This is a slightly twitchy one. It's only really useful if it's imported
from the environment, but it's dangerous for e.g. `su' to read other
people's dotfiles. Maybe ZDOTDIR should be discarded unless ((EGID==GID)).
(Maybe that would also be a good test for whether to import FPATH, which
was another thread of discussion not long ago.)
} autoload -U
And `setopt NO_ALIASES' or the equivalent.
On Jul 23, 12:13pm, Oliver Kiddle wrote:
}
} > precmd, chpwd, periodic
} preexec
} I'm not too sure about these because of the sort of problems we get
} with, for example the prompt themes overwriting the existing functions.
} I can think of a few more flexible ways of allowing the same.
I think these should always have been arrays of function names to be
called, rather than magic function names in their own right. Of course,
we could do both.
} > ${+foo}
} yes and some other parameter expansion extensions
I think where we'll run into problems here, aside from the fact that the
flags syntax used by zsh is a bit baroque, is with field splitting and
whether various extensions apply before or after it happens (I have the
impression that under traditional splitting rules, certain extensions
can't possibly be made to apply after splitting). I see you've suggested
leaving out expansion flags, though.
} > ? glob qualifiers (perhaps in some standardised NO_BARE_GLOB_QUAL form)
} yup.
} backreferences (ksh93's possibly being better)
You didn't mention anything about that in workers/15348. What are the
differences?
} > CPUTYPE/HOSTYPE/OSTYPE, EGID/GID, EUID/UID, ERRNO, HOST or HOSTNAME (bash)
} VENDOR/MACHTYPE, LOGNAME (USER/USERNAME), PWD, OLDPWD, COLUMNS, LINES,
} pipestatus [PIPESTATUS in bash], ARGC/ARGV(?), RANDOM(?), SECONDS(?),
} SHLVL, TTY
ARGC/ARGV are going to be hard to standardize because of the 1-based v.
0-based array indexing issues. In fact, I suspect array indexing is
going to be one of the bigger sticking points in the whole discussion.
} > command [bash]
} -, builtin and noglob. I think command is already in the standard.
Yes, `command' is in POSIX, but it works a bit differently than zsh's.
} > ? pushd?
} not too sure about that because it can be done with a couple of scripts
} and because autopushd with the ~ completion is more useful.
Bash has pushd/popd as builtins. Also:
} directory stack, and access with ~num
You suggest having the directory stack as a special built-in but not the
commands to manipulate it?
} cd -
} two argument form of cd
} cd's handling of symbolic links
That last could stand some clarification even in current zsh. It's been
on my to-do list for ages and I've never gotten to it.
The two-argument form of cd has stopped us doing some other interesting
things with options to the `cd' command. It might not be the best form
to standardize.
} C style for loop syntax
You mean `for ((...))'? I've always been mildly annoyed that it only
works with math expressions and not with more general shell commands.
} ? repeat loop
Yes.
} prompt percent substitutions
Maybe.
} [[ ... ]] conditions
Yes.
} ? global aliases
Not sure.
} the common -L option to many builtins [similar to typeset -p in ksh]
Option letter clashes are another place where we may have trouble. I
think `-L' was a better choice than `-p', but ...
} array subscripts with start and end
More 0-vs-1 problems.
What about subscript flags and pattern subscripts? array[(r)pat]
"Reverse indexing"?
On Jul 23, 12:38pm, Peter Stephenson wrote:
}
} > typeset builtin (yes, it isn't in POSIX). Also, note that bash has
} > obsoleted `typeset' in favour of `declare' which I think is better.
}
} It strikes me as a bit late for that now.
But it could be added as another alias for typeset; ksh93 doesn't have
`local' either (does it?).
} > > ? disable/enable? [bash]
} > not so useful. they are also common as commands to enable/disable
} > printers (on AIX and Solaris at least).
}
} Yes, I can see it would be silly defining a standard which is known to have
} this clash in it.
As has been pointed out, though, the functionality is useful. Rather
than `disable -[afr] ...' maybe we could standardize on an option common
to other commands, e.g. `function -D name' would be `disable -f name',
`alias -D name' would be `disable -a name', etc. The tricky one is
`builtin -D name' which would have to work on both reserved words and
builtin commands, or something.
} > multios option (and maybe other redirection extensions)
}
} This is very useful, but it's maybe a bit too much of a hack to
} standardise (e.g. the race condition on output multios in the current
} implementation, although I hope that's fixable).
It's fixable; the shell just needs to keep track of the forked `tee'-job
and wait for it. That just happens to be a little complicated right now.
} > > ? typeset etc. -g?
} > zsh/bash dynamically scoped local variables.
}
} Hmm. I don't know how this will pan out if ksh is going the way of
} statically scoped parameters.
Another typeset option?
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 3%]
* Re: Enhanced shell
2001-07-23 18:03 3% ` Bart Schaefer
@ 2001-07-24 13:42 2% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2001-07-24 13:42 UTC (permalink / raw)
To: Zsh hackers list
Bart Schaefer wrote:
| On Jul 23, 12:13pm, Oliver Kiddle wrote:
| }
| } > precmd, chpwd, periodic
|
| I think these should always have been arrays of function names to be
| called, rather than magic function names in their own right. Of course,
| we could do both.
Still, I think we should mention them with the point about the
problems. It could possibly also apply with the ERR trap.
| } > ${+foo}
| } yes and some other parameter expansion extensions
|
| I think where we'll run into problems here, aside from the fact that the
| flags syntax used by zsh is a bit baroque, is with field splitting and
| whether various extensions apply before or after it happens (I have the
| impression that under traditional splitting rules, certain extensions
| can't possibly be made to apply after splitting). I see you've suggested
| leaving out expansion flags, though.
That is roughly why I suggested leaving out expansion flags. I was
thinking of some of the simpler things like ${name/pattern/repl} and
${name:#pattern}.
| } backreferences (ksh93's possibly being better)
|
| You didn't mention anything about that in workers/15348. What are the
| differences?
Well, they are very different really. Basically instead of accessing
matched parts of the pattern later with variables, you can refer back
to earler parts of a pattern so, for example, [[ abba = @(?)bb\1 ]]
would return true because \1 will match whatever the first thing in
brackets matched.
workers/15348 was never going to be complete. I've found other things
since like [=c=] in a pattern matches "all characters with the same
primary collation weight as the character c".
| } directory stack, and access with ~num
|
| You suggest having the directory stack as a special built-in but not the
| commands to manipulate it?
Well not really though with autopushd, that is how I use the directory
stack. The directory stack as a whole should probably be left out.
| } prompt percent substitutions
| Maybe.
I hadn't realised that bash used backslashes for this as Peter pointed
out so that'll probably be a problem
| } the common -L option to many builtins [similar to typeset -p in ksh]
|
| Option letter clashes are another place where we may have trouble. I
| think `-L' was a better choice than `-p', but ...
It doesn't help that -L is already used by typeset for left alignment.
| } array subscripts with start and end
|
| More 0-vs-1 problems.
Yes, that's going to be a fairly big problem. We probably have to put
up with the standard following ksh and zsh using the ksharrays option.
| What about subscript flags and pattern subscripts? array[(r)pat]
| "Reverse indexing"?
possibly.
| On Jul 23, 12:38pm, Peter Stephenson wrote:
| }
| } > typeset builtin (yes, it isn't in POSIX). Also, note that bash has
| } > obsoleted `typeset' in favour of `declare' which I think is better.
| }
| } It strikes me as a bit late for that now.
|
| But it could be added as another alias for typeset; ksh93 doesn't have
| `local' either (does it?).
It is already there as another alias for typeset!
ksh93 doesn't have `local'.
| } > > ? disable/enable? [bash]
| } > not so useful. they are also common as commands to enable/disable
| } > printers (on AIX and Solaris at least).
| }
| } Yes, I can see it would be silly defining a standard which is known to have
| } this clash in it.
|
| As has been pointed out, though, the functionality is useful. Rather
Another possibility would be if the functionality was achieved by
modifying special arrays like those in the zsh/parameter module or
ksh93's .sh namespace. Anyway, I suggest we mention the functionality
in our list for David Korn and point out the issues when it comes up in
discussion with him.
| } > > ? typeset etc. -g?
| } > zsh/bash dynamically scoped local variables.
| } Hmm. I don't know how this will pan out if ksh is going the way of
| } statically scoped parameters.
| Another typeset option?
Yes, as I think I mentioned in workers/15348, it is going to have to be
either no local variables or support both types (which is what Perl
does).
Oliver
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 2%]
* Re: Enhanced shell
2001-07-23 11:13 3% ` Oliver Kiddle
@ 2001-07-29 9:53 4% ` Zefram
2001-07-29 22:07 0% ` Peter Stephenson
2001-07-30 2:19 2% ` Bart Schaefer
1 sibling, 2 replies; 200+ results
From: Zefram @ 2001-07-29 9:53 UTC (permalink / raw)
To: Peter Stephenson; +Cc: Zsh hackers list
Peter Stephenson wrote:
>emulate builtin
We should only standardise "emulate posix_v2" as a way of specifying
"this is written for the enhanced shell standard". Then future
revisions of the standard get to add new permitted arguments to emulate.
Without an emulate command in a script, the shell has to behave in a
manner compatible with the original POSIX.
The introduction of explicit specification of the language in which a
script is written makes it possible for us to make incompatible changes
to shell syntax (it's automatically compatibe because of the "emulate").
There's a noticeable problem otherwise, that the POSIX standard doesn't
leave many punctuation characters available for semantically interesting
uses (especially most of our extended glob characters).
Speaking of which, some kind of extended glob pattern syntax should
probably be part of the new standard (with emulate as described above,
the new syntax can be on by default in enhanced mode).
>coproc keyword (|& as per csh is already semi-standard and useful)
I was thinking about this. The existing coproc semantics are rather
limiting ("<&p" only working with the one coprocess) and baroque (magic
fd closures on redirecting). Having a coproc reserved word gives us a
place to put options on the coprocess -- we could have "coproc -i6 -o7"
to connect the coprocess's input to shell fd 6, etc., leaving the "p"
file descriptors alone. We don't really need to standardise the "p"
file descriptors at all.
It's just a pity we can't make coproc a normal command -- it has to be
part of the shell grammar to pick up an entire pipeline, which seems to
be what we want.
>? ZDOTDIR? (or equivalent)
I'm very dubious about this kind of thing. We should mostly ignore the
environment when deciding which dotfiles to execute.
Should we be standardising a larger set of dotfiles? E.g., ".posix_env",
".posix_rc".
>? =cmd?
With cleaned-up semantics, yes. It shouldn't be doing alias expansion.
>? glob qualifiers (perhaps in some standardised NO_BARE_GLOB_QUAL form)
The NO_BARE_GLOB_QUAL form should probably simply be an explicit way of
introducing the qualifier syntax we already have. That was the idea
behind the option -- BARE_GLOB_QUAL makes glob qualifier syntax clash
with glob grouping syntax.
>CPUTYPE/HOSTYPE/OSTYPE, EGID/GID, EUID/UID, ERRNO, HOST or HOSTNAME (bash)
Careful here. My understanding of POSIX is that it has no special
variables (as we understand the term). An assignable EGID, for example,
would add extra semantics to a name that looks like it's in the user's
namespace. Adding special variables with the names we've traditionally
used would be a step backwards.
Instead, we should put all magic variables -- ones that affect the
shell or that the shell fiddles with, other than by explicit command
-- into a sub-namespace. Things like PATH would have to remain where
they are, because they're needed in the environment. But EGID should be
"egid.sh". We can allow arbitrary special semantics of variables in the
".sh" namespace while leaving all names without "." as completely dumb
variables for the user to manage as he sees fit.
>`ESS_VERSION' (version no. of extended shell standard)
Perhaps this should be a magic array, "emulations.sh", listing the values
understood for "emulate". Either way, it's not very useful in scripts.
Other stuff:
How about multios? Pretty simple semantics, not difficult to implement,
though we ought to decide properly when an implicit tee gets waited for.
With the emulate command as described above, we can have multios be on
by default in "posix_v2" mode and (of course) off by default in POSIX
v1 mode. We don't need to standardise "setopt multios", or most other
user-visible options.
<> redirection: is it already in the standard?
&> (and &>>): we should leave >& alone, not standardise the overloading
it gets in zsh.
prompt expansion: not sure if our % sequences should be standard.
However, we could quite nicely have the standard specify that prompts
get $-expanded (and no other special treatment), and then zsh users can
still do PS1='${(%)${:-%n@%m}}'.
modifiers on parameter expansion: the history modifiers could be
standardised for use in parameter expansion a la "${FOO:t}". These seem
useful, and a clean syntax.
Process substitution, at least in the ">>(...)" and "<<(...)" form (where
the effect is merely to create pipes). I'm dubious about standardising
the general >(...).
Brace expansion is already semi-standard.
-zefram
^ permalink raw reply [relevance 4%]
* Re: Enhanced shell
2001-07-29 9:53 4% ` Zefram
@ 2001-07-29 22:07 0% ` Peter Stephenson
2001-07-30 1:34 4% ` Bart Schaefer
2001-07-30 2:19 2% ` Bart Schaefer
1 sibling, 1 reply; 200+ results
From: Peter Stephenson @ 2001-07-29 22:07 UTC (permalink / raw)
To: Zsh hackers list
Zefram wrote:
> Peter Stephenson wrote:
> >emulate builtin
>
> We should only standardise "emulate posix_v2" as a way of specifying
> "this is written for the enhanced shell standard". Then future
> revisions of the standard get to add new permitted arguments to emulate.
> Without an emulate command in a script, the shell has to behave in a
> manner compatible with the original POSIX.
Hmm. Zsh obviously doesn't, you have to trick it some other way.
> >? =cmd?
>
> With cleaned-up semantics, yes. It shouldn't be doing alias expansion.
Yes, I'm not sure how long that's been there, and I don't think it's all
that useful --- using the parameters module for this as for other
similar things strikes me as a better bet. I find it hard to believe
anyone is relying on it, either, given that you can't tell if you're
going to end up with an external command, which are found in preference,
opposite to the normal order of lookup. So I'm very tempted to remove
it or stick it in a deprecated option, off by default.
> >? glob qualifiers (perhaps in some standardised NO_BARE_GLOB_QUAL form)
>
> The NO_BARE_GLOB_QUAL form should probably simply be an explicit way of
> introducing the qualifier syntax we already have. That was the idea
> behind the option -- BARE_GLOB_QUAL makes glob qualifier syntax clash
> with glob grouping syntax.
I suppose you mean any enhanced-shell version should be a separate
option. I can certainly see a point in that.
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
Work: pws@csr.com
Web: http://www.pwstephenson.fsnet.co.uk
^ permalink raw reply [relevance 0%]
* Enhanced shell standard. summary
@ 2001-07-29 22:11 4% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2001-07-29 22:11 UTC (permalink / raw)
To: Zsh hackers list
Before I make a firm suggestion about what we want from zsh in an
enhanced shell, here's a summary of proposals made by me, Oliver, Bart
and Zefram, with a little editorial pruning --- I didn't want to go over
the top, but have included a few things mentioned by other people that
they seemed to be particularly keen on, even if I have doubts they're
suitable for standardisation.
The first section means I haven't yet done my homework about what's
already in Posix or single UNIX, but will do when this finally settles
down.
Reasonably rapid responses --- must-have additions, must-not-have
subtractions --- would be appreciated, I don't want this preliminary
round to drag on much longer since until the people from the other shell
have commented it's a bit of a moot discussion.
check posix
-----------
disown, builtin, suspend
pushd
typeset, declare
[[ ... ]]
parameters LOGNAME or USER or USERNAME
LINENO
COLUMNS/LINES
process substitution, at least <<(...)
basic, already present in more than 1
--------------------------------------
whence
${name/pattern/repl}
{a,b}
** math power operator
parameters:
ERRNO
HOST or HOSTNAME
SHLVL, RANDOM, SECONDS
HOSTTYPE, OSTYPE, MACHTYPE
cd takes care of symlinks, optionally resolves linkso
-l option to shell for login
some form of enhanced pattern matching, e.g. like ksh88.
$-expanion in prompts to be standard
additions
---------
emulate
autoload -U, NO_ALIASES
<<<'word'
functionality of precmd, chpwd, periodic
${+foo} to check whether set
coproc
{0..10}
glob qualifiers, also history-like modifiers on glob patterns.
** recursive search
parameters: CPUTYPE, VENDOR, ERRNO
version of enhanced shell spec, maybe via namespace
functionality associated with disable/enable for builtin --- but name clash
repeat loop (repeat 10; do print hello; done)
standardisation of basic key bindings [need list]
-L options to may builtins to list in form for input to shell
[or make this defined behaviour --- will need option in zsh for
compatibility]
if namespaces, possible magic settable variables, corresponding
to zsh's EGID/GID, EUID/UID (note suitable for standardising as they
are, because the magic behaviour would clash with Posix).
maybe optional
--------------
=cmdname
Hmmm [meaning I don't now much we can really do here...]
----
history commands and parameters
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
Work: pws@csr.com
Web: http://www.pwstephenson.fsnet.co.uk
^ permalink raw reply [relevance 4%]
* Re: Enhanced shell
2001-07-29 22:07 0% ` Peter Stephenson
@ 2001-07-30 1:34 4% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2001-07-30 1:34 UTC (permalink / raw)
To: Peter Stephenson, zsh-workers
On Jul 29, 11:07pm, Peter Stephenson wrote:
} Subject: Re: Enhanced shell
}
} Zefram wrote:
} > Peter Stephenson wrote:
} > >emulate builtin
} >
} > We should only standardise "emulate posix_v2" as a way of specifying
} > "this is written for the enhanced shell standard". Then future
} > revisions of the standard get to add new permitted arguments to emulate.
} > Without an emulate command in a script, the shell has to behave in a
} > manner compatible with the original POSIX.
}
} Hmm. Zsh obviously doesn't, you have to trick it some other way.
I should think that "has to behave in manner compatible with POSIX" would
apply only if the shell actually advertised itself under a standardized
name, e.g., "sh".
Should there be a standardized command-line option that is equivalent to
`emulate posix_v2'? The only one available seems to be -z ... I don't
know if that already has a meaning in ksh; it doesn't yet in bash2.
} > >? =cmd?
} >
} > With cleaned-up semantics, yes. It shouldn't be doing alias expansion.
}
} Yes, I'm not sure how long that's been there, and I don't think it's all
} that useful
It is, occasionally, extremely annoying, as one can't do [[ -x =cmd ]]
without getting syntax errors when cmd happens to be an alias. On the
other hand, if cmd actually isn't found, that's an abortive error too.
Anyway, it appears to have gone in in late 2.4.xxx or sometime in 2.5, as
it is not in the version 2.4 sources I have and it's not mentioned in the
ChangeLog.3.0 file anywhere. 2.5 always was the mutant zsh from outer
space (no offense to those who worked on it; they meant well).
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 4%]
* Re: Enhanced shell
2001-07-29 9:53 4% ` Zefram
2001-07-29 22:07 0% ` Peter Stephenson
@ 2001-07-30 2:19 2% ` Bart Schaefer
1 sibling, 0 replies; 200+ results
From: Bart Schaefer @ 2001-07-30 2:19 UTC (permalink / raw)
To: zsh-workers
On Jul 29, 10:53am, Zefram wrote:
} Subject: Re: Enhanced shell
}
} >coproc keyword (|& as per csh is already semi-standard and useful)
}
} It's just a pity we can't make coproc a normal command -- it has to be
} part of the shell grammar to pick up an entire pipeline, which seems to
} be what we want.
I think the syntax `coproc { LIST }' would be preferable to what we have
now. Ksh has introduced `namespace NAME { LIST }' already. If the LIST
associated with `coproc' were brace-delimited, we could use the regular
redirection operators to specify inputs and outputs, rather than using
options to the coproc pseudo-command. Heck, you could even have coprocs
with multios!
} >? ZDOTDIR? (or equivalent)
}
} I'm very dubious about this kind of thing. We should mostly ignore the
} environment when deciding which dotfiles to execute.
That's why I suggested not importing ZDOTDIR unless geteuid() == getuid().
Seems to be the right balance. (How does ksh deal with ENV ?)
} >CPUTYPE/HOSTYPE/OSTYPE, EGID/GID, EUID/UID, ERRNO, HOST or HOSTNAME (bash)
}
} Instead, we should put all magic variables -- ones that affect the
} shell or that the shell fiddles with, other than by explicit command
} -- into a sub-namespace. Things like PATH would have to remain where
} they are, because they're needed in the environment. But EGID should be
} "egid.sh".
Ksh namespaces are ${.namespace.parameter}, not ${parameter.namespace}.
I think we're probably going to be stuck with that. However, I agree
that most of the "magic" variables should be in a namespace, and futher
I that the magic should be implemented with something like discipline
functions. E.g., there should be a builtin command to change effective
UID, and assigning to .sh.euid should invoke that command.
} With the emulate command as described above, we can have multios be on
} by default in "posix_v2" mode and (of course) off by default in POSIX
} v1 mode. We don't need to standardise "setopt multios", or most other
} user-visible options.
Hmm, perhaps that's true, but should we at least standardize a reserved
name (e.g., a .sh.options parameter) for changing the option settings?
Should we try to do anything at all about the plethora of single-letter
shell-startup command-line options?
} modifiers on parameter expansion: the history modifiers could be
} standardised for use in parameter expansion a la "${FOO:t}". These seem
} useful, and a clean syntax.
The syntax isn't all that clean, really, once you get involved with using
more than one modifier per expansion ... and the semantics of :s/p/r and
:& etc. are rather baroque.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 2%]
* Function syntax
@ 2001-08-03 18:14 4% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2001-08-03 18:14 UTC (permalink / raw)
To: zsh-workers
I don't think changing this to match POSIX would break anything, as at the
moment redirections following a functon definition are pretty much useless.
--- Forwarded mail from David Korn <dgk@research.att.com>
Date: Fri, 3 Aug 2001 14:01:02 -0400 (EDT)
From: David Korn <dgk@research.att.com>
To: shell@research.att.com
--------
> On Aug 3, 10:56am, David Korn wrote:
> }
> } With function definition redirections are processed before the {...}
> } block is entered.
> }
> } foo()
> } {
> } print hello world
> } } > $1
> }
> } will cause
> } foo bar
> } to write 'hello world' into bar.
>
> Ahh, I didn't know that. In zsh redirections outside the braces are
> not considered to be part of the function body.
In section 3.9.5 of the Posix shell standard,
it defines the syntax as
fname() compound-command [io-redirect]
and it says that the option io_redirect shall be performed during the
execution of the function itself.
>
> --
> Bart Schaefer Brass Lantern Enterprises
> http://www.well.com/user/barts http://www.brasslantern.com
>
> Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
> ____________________________________________________________
David Korn
research!dgk
dgk@research.att.com
____________________________________________________________
To unsubscribe from this list, please send the following
two-line message to majordomo@research.att.com, in which
your_email_address should be replaced by the address you
used when you subscribed to the list:
unsubscribe shell your_email_address
end
---End of forwarded mail from David Korn <dgk@research.att.com>
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 4%]
* (Fwd) Re: Value of $0
@ 2001-08-06 14:46 4% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2001-08-06 14:46 UTC (permalink / raw)
To: zsh-workers
Another way zsh doesn't quite emulate ksh, just FYI.
--- Forwarded mail from David Korn <dgk@research.att.com>
Date: Sun, 5 Aug 2001 23:06:41 -0400 (EDT)
From: David Korn <dgk@research.att.com>
To: shell@research.att.com
Subject: Re: Value of $0
POSIX treats functions as macros so it does not redefine $0.
The conform, $0 must remain the name of the shell or script, not
the function name. I had to change ksh93 to conform since ksh88
hade $0 be the function name.
This is one of the reasons that ksh has stuck with the function name()
syntax. These functions have scoping and behave more like shell
scripts than macros. $0 is defined as the name of the function
for function name() functions.
Also, set -x causes each line of a function to be traced with the POSIX
shell. Using function name() in ksh93 does not do this and you
can set the trace attribute individually for each function using
typeset -ft name
David Korn
research!dgk
dgk@research.att.com
____________________________________________________________
To unsubscribe from this list, please send the following
two-line message to majordomo@research.att.com, in which
your_email_address should be replaced by the address you
used when you subscribed to the list:
unsubscribe shell your_email_address
end
---End of forwarded mail from David Korn <dgk@research.att.com>
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 4%]
* RE: Quoted parameter parsing glitch
@ 2001-08-22 16:21 3% ` Borsenkow Andrej
2001-08-22 16:59 4% ` Bart Schaefer
0 siblings, 1 reply; 200+ results
From: Borsenkow Andrej @ 2001-08-22 16:21 UTC (permalink / raw)
To: 'Bart Schaefer', zsh-workers
> schaefer<502> print "${foo:-"}"
> dquote braceparam>
>
> At this point the parser is in an infinite loop. There's nothing you
can
> type (except end-of-file or interrupt) that will free you from the PS2
> prompt.
>
Shell should not hang, but please note it is invalid as per POSIX.
Double-quotes and braces must match. So whatever fix is used, it should
not make the above valid construct (i.e. it should not print `"').
-andrej
^ permalink raw reply [relevance 3%]
* Re: Quoted parameter parsing glitch
2001-08-22 16:21 3% ` Borsenkow Andrej
@ 2001-08-22 16:59 4% ` Bart Schaefer
2001-08-22 18:25 0% ` Borsenkow Andrej
0 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2001-08-22 16:59 UTC (permalink / raw)
To: Borsenkow Andrej, zsh-workers
On Aug 22, 8:21pm, Borsenkow Andrej wrote:
} Subject: RE: Quoted parameter parsing glitch
}
} > schaefer<502> print "${foo:-"}"
} > dquote braceparam>
} >
} > At this point the parser is in an infinite loop.
I'm wrong, it's either more complicated than that example shows or it's
just me. It's possible to get out of that one by just:
schaefer<502> print "${foo:-"}"
dquote braceparam> }
dquote> "
}
schaefer<503>
I'm pretty sure I did manage to get it stuck on a more complicated
substitution, but my attempt to produce a minimal example went astray,
and I haven't reproduced whatever it was I first did.
} Shell should not hang, but please note it is invalid as per POSIX.
} Double-quotes and braces must match.
Zsh 4 (and ksh) is supposed to accept double-quotes inside ${...} inside
double-quotes; the braces act as an extra level of quoting so that the
inner quotes can nest in the outer ones. I don't know what POSIX says
about that.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 4%]
* Re: Quoted parameter parsing glitch
2001-08-22 16:59 4% ` Bart Schaefer
@ 2001-08-22 18:25 0% ` Borsenkow Andrej
0 siblings, 1 reply; 200+ results
From: Borsenkow Andrej @ 2001-08-22 18:25 UTC (permalink / raw)
To: Bart Schaefer; +Cc: zsh-workers
On Wed, 22 Aug 2001, Bart Schaefer wrote:
>
> } Shell should not hang, but please note it is invalid as per POSIX.
> } Double-quotes and braces must match.
>
> Zsh 4 (and ksh) is supposed to accept double-quotes inside ${...} inside
> double-quotes; the braces act as an extra level of quoting so that the
> inner quotes can nest in the outer ones. I don't know what POSIX says
> about that.
>
As I said - they must match. "${foo:-""}" is valid but "${foo:-"}" - not.
Neither is "${foo:-\"}". You cannot quote braces or double quotes in this
case. They must match (opening - closing).
-andrej
^ permalink raw reply [relevance 0%]
* Re: Quoted parameter parsing glitch
@ 2001-08-27 7:22 4% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2001-08-27 7:22 UTC (permalink / raw)
To: zsh-workers
On Aug 26, 9:59pm, Borsenkow Andrej wrote:
}
} Bart Schaefer wrote:
} >
} > The question is whether "${foo:-"}"}" is valid.
}
} No. Pairs of quotes and braces must match.
And is there no way to quote a brace within braces?
In any case, zsh accepts the above, nested like so:
" "
${ }
foo:-" "
}
I don't see any reason to change that in zsh, even if it's not accepted
under the POSIX rules, unless it conflicts with whatever means POSIX
provides for quoting the inner right brace.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 4%]
* Re: PATCH: ztcp
@ 2001-09-09 23:30 4% ` Bart Schaefer
2001-09-10 0:06 0% ` Clint Adams
0 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2001-09-09 23:30 UTC (permalink / raw)
To: Clint Adams; +Cc: zsh-workers
On Sep 9, 6:01pm, Clint Adams wrote:
}
} I don't understand what fd duplication buys you.
It lets you choose a specific fd to which to assign the descriptor, rather
than having to take whatever you get. In POSIX emulation mode, fds > 9
can't [*] be redirected to/from, so it's important to be able to specify
a known-free number.
[*] Actually, it does work, but it's a bug in zsh's POSIX emulation and
shouldn't be relied upon.
Incidentally, I did mention your objection to /dev/tcp/portname on the
shell mailing list, but the response was that several unix variants have
already implemented /dev/tcp/* as special files, so the shell would only
be emulating that interface on platforms that don't support it, much as
zsh already does with /dev/fd/.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 4%]
* Re: PATCH: ztcp
2001-09-09 23:30 4% ` Bart Schaefer
@ 2001-09-10 0:06 0% ` Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2001-09-10 0:06 UTC (permalink / raw)
To: Bart Schaefer; +Cc: zsh-workers
> It lets you choose a specific fd to which to assign the descriptor, rather
> than having to take whatever you get. In POSIX emulation mode, fds > 9
> can't [*] be redirected to/from, so it's important to be able to specify
> a known-free number.
I had imagined that you could do something like 'exec 9<&$REPLY'
if you wanted to pick the fd. Unfortunately this doesn't
update the session table.
> Incidentally, I did mention your objection to /dev/tcp/portname on the
> shell mailing list, but the response was that several unix variants have
> already implemented /dev/tcp/* as special files, so the shell would only
> be emulating that interface on platforms that don't support it, much as
> zsh already does with /dev/fd/.
Hmm. Is there a spec yet, or is bash just the reference implementation?
^ permalink raw reply [relevance 0%]
* PATCH: trap for EXIT doesn't catch exit?
@ 2001-09-19 10:35 2% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2001-09-19 10:35 UTC (permalink / raw)
To: Zsh hackers list
Bart Schaefer wrote:
> I don't think it's sufficient to simulate exiting the scopes, because the
> traps have to execute as if they're in the scope where they were installed.
> It may be necessary to actually unwind the stack; at least it's necessary
> to call endparamscope() and endtrapscope() the correct number of times.
Unwinding the stack is a whole load of code embedded in two separate (C)
functions, but you do need quite a lot of it to make sure the traps get a
consistent environment.
Here's a first go at a simple strategy which I'm not completely convinced
about yet: mark that we need to exit and return from all shell functions
using the normal return code, then exit when we've left the last function.
Comments, particularly in zexit(), will need to be improved. It seems to
do the basics, and to get right the interaction with `stopmsg', which is
one of the things I'm least happy about, partly because that variable is
already scattered through too much of the code.
Another question is whether I should be combining the new exit_pending flag
and the existing in_exit somehow.
By the way, coincidentally I assume, David Korn addressed the issue of the
scope for the EXIT trap on the shell list --- it's part of a set of
compatibility problems with POSIX-style functions.
I tested it with this:
% ./zsh
% fn() { trap 'echo Bar' EXIT; exit 3; print Not reached; }
% fn2() { trap 'echo Again' EXIT; fn; print Not reached; }
% trap 'echo Foo' EXIT
% fn2; print Not reached
Bar
Again
Foo
(and the exit status is 3). This could go in the test suite.
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.53
diff -u -r1.53 builtin.c
--- Src/builtin.c 2001/09/18 17:50:26 1.53
+++ Src/builtin.c 2001/09/19 10:30:52
@@ -3208,6 +3208,10 @@
/**/
int
+exit_pending;
+
+/**/
+int
bin_break(char *name, char **argv, char *ops, int func)
{
int num = lastval, nump = 0;
@@ -3248,10 +3252,16 @@
zerrnam(name, "not login shell", NULL, 0);
return 1;
}
- zexit(num, 0);
- break;
+ /*FALLTHROUGH*/
case BIN_EXIT:
- zexit(num, 0);
+ if (locallevel) {
+ if (stopmsg || (zexit(0,2), !stopmsg)) {
+ retflag = 1;
+ breaks = loops;
+ exit_pending = (num << 1) | 1;
+ }
+ } else
+ zexit(num, 0);
break;
}
return 0;
@@ -3295,11 +3305,11 @@
/**/
mod_export void
-zexit(int val, int from_signal)
+zexit(int val, int from_where)
{
static int in_exit;
- if (isset(MONITOR) && !stopmsg && !from_signal) {
+ if (isset(MONITOR) && !stopmsg && from_where != 1) {
scanjobs(); /* check if jobs need printing */
if (isset(CHECKJOBS))
checkjobs(); /* check if any jobs are running/stopped */
@@ -3308,12 +3318,12 @@
return;
}
}
- if (in_exit++ && from_signal)
+ if (from_where == 2 || (in_exit++ && from_where))
return;
if (isset(MONITOR)) {
/* send SIGHUP to any jobs left running */
- killrunjobs(from_signal);
+ killrunjobs(from_where == 1);
}
if (isset(RCS) && interact) {
if (!nohistsave)
Index: Src/exec.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/exec.c,v
retrieving revision 1.36
diff -u -r1.36 exec.c
--- Src/exec.c 2001/08/19 04:23:46 1.36
+++ Src/exec.c 2001/09/19 10:30:52
@@ -3429,6 +3429,16 @@
if (noreturnval)
lastval = oldlastval;
popheap();
+
+ if (exit_pending) {
+ if (locallevel) {
+ retflag = 1;
+ breaks = loops;
+ } else {
+ stopmsg = 1;
+ zexit(exit_pending >> 1, 0);
+ }
+ }
}
/* This finally executes a shell function and any function wrappers *
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 2%]
* hp/ux terminfo
[not found] ` <20010918155339.20305.qmail@web12504.mail.yahoo.com>
@ 2001-09-19 14:17 0% ` Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2001-09-19 14:17 UTC (permalink / raw)
To: Vincent Lefevre, ee_in_co; +Cc: zsh-workers
> Under HP-UX, the tgetent return codes recently changed so it
> returns OK (0) for success and ERR (-1) for error. Hence the
> changes invalidated the code written with the old assumptions.
>
> I am not sure if HP-UX is following a new POSIX standard or what
> by implementing these changes, but it may be possible that linux
> has made a similar change.
This is actually from X/Open Curses, which doesn't define
specific values for OK and ERR. The tgetent entry
has been marked "to be withdrawn" in Open Group specs
for many years now. I'm not sure if this is because
they intend to deprecate the termcap emulation routines
or because of the possible return value inconsistency.
If HP-UX is actually returning 0 instead of merely
documenting the X/Open behavior and implementing the
traditional behavior, we should check for that
at configure-time.
^ permalink raw reply [relevance 0%]
* PATCH: printf builtin
@ 2001-09-20 19:10 3% Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2001-09-20 19:10 UTC (permalink / raw)
To: zsh-workers
Ksh and bash both have a printf builtin. This adds one to zsh.
I'm inclined to think this should be in a loadable module - it isn't
that useful interactively but then it isn't particularly large either.
Any views on that? If it should be a module, should it be compiled in
by default for a static zsh?
There seems to be a bit of inconsistency over what the \c escape means.
In zsh it cancels a trailing newline but in most other things, it
cancels all following output.
I've not used zstrtol because it doesn't set errno to ERANGE for
overflows. POSIX requires the user to be notified of such errors.
Someone more familiar with the zsh source and with C should maybe have
a quick look through: I'm not sure whether there shouldn't be a free()
or two in there and if so which one. I intend to do a bit more testing
and tidying on it tomorrow anyway. We don't seem to have any tests of
builtins so where in the tests should I stick tests for this?
I have included the bash and ksh %b and %q extensions to the format
which are like %s but interpret posix escapes and shell quote the
argument respectively. Note that you can't specify a width or precision
with %b because I wanted to allow \0 to be used to output a null
character and printf(3) would stop at the null.
I've not included ksh's %H (HTML quoting) or %R/%P (regex/glob
conversion) because I don't think they have any place being there. ksh
also has %(...)T which is like date(1). And, I've not worked out what
ksh's %Z does.
Let me know if you have any other ideas for extensions or any thoughts
on whether I should add the following:
Support for %n would be easily doable taking the argument as the
name of a parameter.
Allow the argument to be specified by writing `%m$' in place of '%'
so '%3$s' will print the third argument. IRIX's printf(1) does
this. It would involve disabling the feature of reusing the format
for remaining arguments to avoid infinite loops.
Oliver
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.53
diff -u -r1.53 builtin.c
--- Src/builtin.c 2001/09/18 17:50:26 1.53
+++ Src/builtin.c 2001/09/20 18:49:33
@@ -92,6 +92,7 @@
BUILTIN("popd", 0, bin_cd, 0, 2, BIN_POPD, NULL, NULL),
BUILTIN("print", BINF_PRINTOPTS, bin_print, 0, -1, BIN_PRINT, "RDPbnrslzNu0123456789pioOcm-", NULL),
+ BUILTIN("printf", 0, bin_printf, 1, -1, 0, NULL, NULL),
BUILTIN("pushd", 0, bin_cd, 0, 2, BIN_PUSHD, NULL, NULL),
BUILTIN("pushln", BINF_PRINTOPTS, bin_print, 0, -1, BIN_PRINT, NULL, "-nz"),
BUILTIN("pwd", 0, bin_pwd, 0, 0, 0, "rLP", NULL),
@@ -3051,6 +3052,176 @@
if (fout != stdout)
fclose(fout);
return 0;
+}
+
+/* printf */
+
+/**/
+int
+bin_printf(char *name, char **args, char *ops, int func)
+{
+ int len, nnl, width, prec, type, ret = 0;
+ char *start, *endptr, *c, *fmt = getkeystring(*args, &len, 0, &nnl);
+ char **first = ++args;
+ char save;
+ union {
+ zlong l;
+ double d;
+ unsigned long u;
+ char *s;
+ int c;
+ } val;
+
+ do {
+
+ for (c = fmt;c-fmt < len;c++) {
+ type = prec = width = -1;
+
+ if (*c != '%') {
+ putchar(*c);
+ continue;
+ }
+
+ start = c++;
+ if (*c == '%') {
+ putchar('%');
+ continue;
+ }
+
+ if (strchr("+- #", *c)) c++;
+
+ if (*c == '*') {
+ width = (*args) ? strtoul(*args++, NULL, 0) : 0;
+ c++;
+ } else {
+ while (idigit(*c)) c++;
+ }
+
+ if (*c == '.') {
+ c++;
+ if (*c == '*') {
+ prec = (*args) ? strtoul(*args++, NULL, 0) : 0;
+ c++;
+ } else {
+ while (idigit(*c)) c++;
+ }
+ }
+
+ if (*c == 'l' || *c == 'L' || *c == 'h') c++;
+
+ switch (*c) {
+ case 'c':
+ if (*args) {
+ if (**args == Meta)
+ val.c = (*args)[1] ^ 32;
+ else
+ val.c = **args;
+ args++;
+ } else
+ val.c = 0;
+ break;
+ case 's':
+ if (*args)
+ val.s = unmetafy(*args++, NULL);
+ else
+ continue;
+ break;
+ case 'b':
+ if (*args) {
+ int l;
+ char *b = getkeystring(*args++, &l, 0, &nnl);
+ fwrite(b, l, 1, stdout);
+ }
+ continue;
+ case 'q':
+ if (*args) {
+ *c = 's';
+ val.s = bslashquote(unmetafy(*args++, NULL), NULL, 0);
+ } else
+ continue;
+ break;
+ case 'd':
+ case 'i':
+ type=1;
+ break;
+ case 'e':
+ case 'E':
+ case 'f':
+ case 'g':
+ case 'G':
+ type=2;
+ break;
+ case 'o':
+ case 'u':
+ case 'x':
+ case 'X':
+ type=3;
+ break;
+ default:
+ if (*c) {
+ save = c[1];
+ c[1] = '\0';
+ }
+ zerrnam(name, "%s: invalid directive", start, 0);
+ if (*c) c[1] = save;
+ ret = 1;
+ continue;
+ }
+
+ if (type > 0) {
+ if (*args && (**args == '\'' || **args == '"' )) {
+ if (type == 2)
+ val.d = (*args)[1];
+ else
+ val.l = (*args)[1];
+ args++;
+ } else {
+ switch (type) {
+ case 1:
+ val.l = (*args) ? strtol(*args, &endptr, 0) : 0;
+ break;
+ case 2:
+ val.d = (*args) ? strtod(*args, &endptr) : 0;
+ break;
+ case 3:
+ val.u = (*args) ? strtoul(*args, &endptr, 0) : 0;
+ }
+ if (*args) {
+ if (errno == ERANGE) {
+ zerrnam(name, "`%s' arithmetic overflow", *args, 0);
+ ret = 1;
+ } else if (**args && endptr == *args) {
+ zerrnam(name, "`%s' expected numeric value", endptr, 0);
+ ret = 1;
+ } else if (*endptr) {
+ zerrnam(name, "`%s' not completely converted", *args, 0);
+ ret = 1;
+ }
+ args++;
+ }
+ }
+ }
+ save = c[1];
+ c[1] = '\0';
+ if (width >= 0) {
+ if (prec >= 0)
+ printf(start, width, prec, val);
+ else
+ printf(start, width, val);
+ } else {
+ if (prec >= 0)
+ printf(start, prec, val);
+ else
+ printf(start, val);
+ }
+ c[1] = save;
+
+ }
+
+ /* if there are remaining args, reuse format string */
+ } while (*args && args != first);
+
+ return ret;
}
/* shift builtin */
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 3%]
* Re: PATCH: printf builtin
@ 2001-09-25 17:17 4% ` Oliver Kiddle
2001-09-25 17:57 0% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2001-09-25 17:17 UTC (permalink / raw)
To: Zsh hackers list
Peter Stephenson wrote:
>
> It does seem to be that, since everything looks OK up to the call to
> printf. As a test, I got it to work with a nasty hack using a void * and
> separate variables for different types.
Could you please send me this `nasty hack'. I'd prefer to get something
which works and has all the features required by POSIX, commit it and
then worry about the many possible improvements as and when I have time
and feel inclined to do them.
> One problem I can see is that val has an element `zlong'. Unfortunately on
> 32-bit machines with the default --enable-lfs, whether or not actual large
> file support is available, that's usually a long long, i.e. 64-bits. This
> will certainly confuse printf with a simple `%d' --- Solaris supports
Right. I should have just used an int then it seems.
> `%lld' but that's unlikely to be completely portable. I'm afraid that's
> another argument for handling the printf codes internally. However, if we
I don't dispute that handling printf codes internally would be a good
thing to be doing eventually but my initial aim was just to have the
POSIX functionality and it shouldn't be necessary for that.
Judging by certain aspects of their behaviour I suspect other printf(1)
implementations are using the underlying printf(3) (with the possible
exception of bash).
> use matheval(), the only basic numeric types we need to handle are doubles
> and zlongs, plus some casting to unsigned: check Src/Builtins/rlimits.c for
Would you then suggest that in the final implementation, `%d' would
format a zlong and that we wouldn't bother with any size modifiers (or
just ignore them). It would seem sensible because C only needs size
modifiers because the parameters can be of various types.
> However, there seems to be another problem, since changing that to long or
> int (which are supposed to be the same here but I'm paranoid --- although
> strictly we should enforce %ld if we pass on a long) doesn't help.
Sorry. Are you saying that it still doesn't work with an int? That
wouldn't make sense.
Oliver
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 4%]
* Re: PATCH: printf builtin
2001-09-25 17:17 4% ` Oliver Kiddle
@ 2001-09-25 17:57 0% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2001-09-25 17:57 UTC (permalink / raw)
To: Zsh hackers list
Oliver Kiddle wrote:
> Peter Stephenson wrote:
> > It does seem to be that, since everything looks OK up to the call to
> > printf. As a test, I got it to work with a nasty hack using a void * and
> > separate variables for different types.
>
> Could you please send me this `nasty hack'. I'd prefer to get something
> which works and has all the features required by POSIX, commit it and
> then worry about the many possible improvements as and when I have time
> and feel inclined to do them.
I've stuck the revised printf below, but I'm sure you can do a lot better
than that. It's not a patch because I don't particularly want people to
apply it.
> Would you then suggest that in the final implementation, `%d' would
> format a zlong and that we wouldn't bother with any size modifiers (or
> just ignore them).
Yes, absolutely. We should use integers and doubles in the internal format
only, and just ignore modifiers --- I don't see any possible effect beyond
confusion in trying to support different sizes. We could in principle cast
to the required size, but this means that a simple %d won't work with the
internal type, which is silly.
The only possible exception is how we handle unsigned values. printf will
normally take the same bits and print them as if they were an unsigned
value. I'm unsure whether this is useful, but don't see another sensible
interpretation of `printf %ud -1'.
> > However, there seems to be another problem, since changing that to long or
> > int (which are supposed to be the same here but I'm paranoid --- although
> > strictly we should enforce %ld if we pass on a long) doesn't help.
>
> Sorry. Are you saying that it still doesn't work with an int? That
> wouldn't make sense.
No, this was still with the union; there's something wrong there apart from
the size of the integer variable. It doesn't affect the version below.
/* printf */
/**/
int
bin_printf(char *name, char **args, char *ops, int func)
{
int len, nnl, width, prec, type, ret = 0;
char *start, *endptr, *c, *fmt = getkeystring(*args, &len, 0, &nnl);
char **first = ++args;
char save;
/* instead of union */
char *stringval;
int intval;
double doubleval;
unsigned int uintval;
void **val;
do {
for (c = fmt;c-fmt < len;c++) {
type = prec = width = -1;
if (*c != '%') {
putchar(*c);
continue;
}
start = c++;
if (*c == '%') {
putchar('%');
continue;
}
if (strchr("+- #", *c)) c++;
if (*c == '*') {
width = (*args) ? strtoul(*args++, NULL, 0) : 0;
c++;
} else {
while (idigit(*c)) c++;
}
if (*c == '.') {
c++;
if (*c == '*') {
prec = (*args) ? strtoul(*args++, NULL, 0) : 0;
c++;
} else {
while (idigit(*c)) c++;
}
}
if (*c == 'l' || *c == 'L' || *c == 'h') c++;
switch (*c) {
case 'c':
type = 1;
if (*args) {
if (**args == Meta)
intval = (*args)[1] ^ 32;
else
intval = **args;
args++;
} else
intval = 0;
break;
case 's':
if (*args)
stringval = unmetafy(*args++, NULL);
else
continue;
break;
case 'b':
if (*args) {
int l;
char *b = getkeystring(*args++, &l, 0, &nnl);
fwrite(b, l, 1, stdout);
}
continue;
case 'q':
if (*args) {
*c = 's';
stringval = bslashquote(unmetafy(*args++, NULL), NULL, 0);
} else
continue;
break;
case 'd':
case 'i':
type=1;
break;
case 'e':
case 'E':
case 'f':
case 'g':
case 'G':
type=2;
break;
case 'o':
case 'u':
case 'x':
case 'X':
type=3;
break;
default:
if (*c) {
save = c[1];
c[1] = '\0';
}
zerrnam(name, "%s: invalid directive", start, 0);
if (*c) c[1] = save;
ret = 1;
continue;
}
if (type > 0) {
if (*args && (**args == '\'' || **args == '"' )) {
if (type == 2)
doubleval = (*args)[1];
else
intval = (*args)[1];
args++;
} else {
switch (type) {
case 1:
intval = (*args) ? strtol(*args, &endptr, 0) : 0;
break;
case 2:
doubleval = (*args) ? strtod(*args, &endptr) : 0;
break;
case 3:
uintval = (*args) ? strtoul(*args, &endptr, 0) : 0;
}
if (*args) {
if (errno == ERANGE) {
zerrnam(name, "`%s' arithmetic overflow", *args, 0);
ret = 1;
} else if (**args && endptr == *args) {
zerrnam(name, "`%s' expected numeric value", endptr, 0);
ret = 1;
} else if (*endptr) {
zerrnam(name, "`%s' not completely converted", *args, 0);
ret = 1;
}
args++;
}
}
}
save = c[1];
c[1] = '\0';
/* yuk */
switch (type) {
case 1:
val = (void *) &intval;
break;
case 2:
val = (void *) &doubleval;
break;
case 3:
val = (void *) &uintval;
break;
default:
val = (void *) &stringval;
break;
}
if (width >= 0) {
if (prec >= 0)
printf(start, width, prec, *val);
else
printf(start, width, *val);
} else {
if (prec >= 0)
printf(start, prec, *val);
else
printf(start, *val);
}
c[1] = save;
}
/* if there are remaining args, reuse format string */
} while (*args && args != first);
return ret;
}
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 0%]
* PATCH: utf8 for _mount -t vfat
@ 2001-10-05 1:35 6% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2001-10-05 1:35 UTC (permalink / raw)
To: zsh-workers
Index: Completion/Unix/Command/_mount
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_mount,v
retrieving revision 1.7
diff -u -r1.7 _mount
--- Completion/Unix/Command/_mount 2001/10/05 01:29:36 1.7
+++ Completion/Unix/Command/_mount 2001/10/05 01:34:21
@@ -374,9 +374,10 @@
_fs_msdos=( "$_fs_fat[@]" )
_fs_umsdos=( "$_fs_fat[@]" )
_fs_vfat=( "$_fs_fat[@]"
- 'uni_xlate[translate unicode to escaped sequences]'
+ '(utf8)uni_xlate[translate unicode to escaped sequences]'
'posix[allow file names only differing in case]'
'nonumtail[try short name before number extension]'
+ '(uni_xlate)utf8[mount the filesystem in UTF8 mode]'
)
_fs_hpfs=(
'uid[specify user ID of all files]:user ID:'
^ permalink raw reply [relevance 6%]
* questions - calling matheval() for printf
@ 2001-10-12 14:03 3% Oliver Kiddle
2001-10-15 12:54 3% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2001-10-12 14:03 UTC (permalink / raw)
To: zsh-workers
I have a few questions related to the use of matheval() for numeric
arguments to printf. According to the POSIX definition (which you can
read at http://www.opengroup.org/onlinepubs/007908799/xcu/printf.html),
with the %d format specification, and assuming 32-bit ints, the
following are the expect results:
argument stdout stderr
5a 5 printf: "5a" not completely converted
9999999999 2147483647 printf: "9999999999" arithmetic overflow
-9999999999 -2147483648 printf: "-9999999999" arithmetic overflow
ABC 0 printf: "ABC" expected numeric value
In the first case, the different error message doesn't worry me but
math evaluation doesn't return `5'. It is conceivable that someone
relies on this in a script, passing a string starting with a number and
redirecting stderr. I could successively chop characters off the right
of the string until matheval returns without an error. This would need
a hack to avoid repeated error messages from matheval(). Any other,
perhaps better suggestions?
Is there any way I can find out when arithmetic overflows have occurred
for the second and third cases? matheval() just allows the numbers to
wrap?
In the last case, we'll just have to be non-compliant (it returns $ABC)
but that doesn't worry me much.
What is going on with this errval and zerr/zwarn stuff? I don't
entirely understand which I should be calling on errors and whether I
am right to zero errval after calling matheval() and reading it?
Can a 64-bit integer be something other than long long? It seems I only
have ZSH_64_BIT_TYPE to check and it might need a different format
specifier for printf(3) if this is something other than long long.
Aside from this, using matheval() works very smoothly and it is
certainly better that we won't lose precision due to converting floats
via ASCII before formatting..
Oliver
^ permalink raw reply [relevance 3%]
* Re: differences between the two branches
@ 2000-10-14 19:02 4% ` Peter Stephenson
2001-10-16 17:08 2% ` Bart Schaefer
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2000-10-14 19:02 UTC (permalink / raw)
To: Zsh hackers list
Bart Schaefer wrote:
> } Hmm, a bit of perl could probably help here.
Thanks. I've just been looking through this, except for a few which
went way before 4.0.2 which I haven't bothered to look at again (some in
the list below still predate 4.0.2). This obviously dupliates Oliver's
selection to a certain extent, but I'm a sucker for a perl script.
Here's a list of things which could go, if it's not too much work, and
those that probably shouldn't.
I will not be moving other people's patches to 4.0 myself, now or ever,
because I'm too lazy and too disorganised. So decide based on the
following, or otherwise. For the same reason, there's a middle category
between `could go' and `probably shouldn't go' called `my brain hurts'
(you have to imagine the knotted handkerchief, tank top and ape-like
posture). Some of the ones in the last category are simply there
because they're new and would actually be entirely harmless to tranfer.
Could go if not too much work
============================
> - * unposted: Completion/compinstall: spotted by Bart: assignments
> - when finding $fpath if not set in current shell were completely
> - garbled.
That's me. That should go across, but I'll have to do it by hand.
> only in current/ChangeLog: 16xxx
> only in branch/ChangeLog: 16018
Oliver: I think these are probably the same, so it's probably gone in
anyway. It fixes compilation for Darwin, which would certainly
be a good idea.
> only in current/ChangeLog: 15812
Bart: doc changes for parameters. Might make sense to copy these over.
> only in current/ChangeLog: 15739
> only in current/ChangeLog: 15740
Clint: compaudit, probably OK, maybe even necessary on Debian.
> only in current/ChangeLog: 15721
Me: LICENCE: Oliver pointed this out and it's now in.
> only in current/ChangeLog: 15713
Wayne: _rpm: probably OK.
> only in current/ChangeLog: 15702
Bart: Doc improvements, probably could go across.
> only in current/ChangeLog: 15676
Bart: minor test tweaks. Might be a good idea since they remove some
unnecessary failures.
> only in current/ChangeLog: 15653
Sven: Restore traditional insert-tab behaviour. This was certainly a
bug in that it disagreed with the doc, so probably ought to be in 4.0.
> only in current/ChangeLog: 15638
Sven: correction with matchers. Definitely a bug, so if this is in 4.0
should go across.
> only in current/ChangeLog: 15596
Wayne: silence compiler, fine if applicable.
> only in current/ChangeLog: 15583
Me: installfns.sh installed CVS stuff, may need to go across.
> only in current/ChangeLog: 15508
Me: _cvs tags didn't work with one command, should go across if not
already there.
> only in current/ChangeLog: 15488
Bart: doc tweaks, probably reasonable to apply these.
> only in current/ChangeLog: 15375
Bart: explain setopt CORRECT, could probably go across.
> only in current/ChangeLog: 15354
Bart: Doc indexing, useful but I don't know how hard this is to transfer.
> only in current/ChangeLog: 15279
Me: expand an expansion description, probably OK to push back.
> only in current/ChangeLog: 15181
Andrej: kpic -> KPIC; I thought this *was* for 4.0.2?
> only in current/ChangeLog: 15180
Andrej: fix AIX configuration, should almost certainly go across if it's
been tested (does sourceforge have AIX?)
> only in current/ChangeLog: 15099
Andrej: test suite handles `unimplemented', be nice to have this in 4.0
but may well need some work.
> only in current/ChangeLog: 15057
Bart: PRINT_EXIT_VALUE: didn't work, so probably this ought to go back.
> only in current/ChangeLog: 15023, 15027
> only in current/ChangeLog: 15038
Bart: fix POSIX `for', looks OK to copy.
Andrej: test POSIX for syntax, depends on fix.
My brain hurts just thinking about it
=====================================
> only in current/ChangeLog: 16002
Sven: Fix expand style with prefix: probably OK, but I don't know if
it's relevant or easy to port.
> only in current/ChangeLog: 15949
> only in current/ChangeLog: 15994
Me: list-suffixes and other stuff in compinstall. I may simply copy the
whole of compinstall across (see above).
> only in current/ChangeLog: 15944
Sven: `suffix' in expand style always respected. Arguably a bug fix,
but arguably not.
> only in current/ChangeLog: 15836
> only in current/ChangeLog: 15806
> only in current/ChangeLog: 15809
Wayne: `r' problem reported by Bart. Dunno if this was in 4.0.
> only in current/ChangeLog: 15650
> only in current/ChangeLog: 15669
Sven: approximation and ~ problems. Dunno, it's too hard to work out
the consequences.
> only in current/ChangeLog: 15615
Sven: complicated matcher thing it would take me half an hour to
understand.
> only in current/ChangeLog: 15584
Sven: zwc problem, dunno if this is relevant.
> only in current/ChangeLog: 15498
Me: Consequent on moving zle builtins to zshzle. Must check if that was
already in 4.0.
> only in current/ChangeLog: 15198
Bart: _tilde return value, OK if applicable, but may well not be.
> only in current/ChangeLog: 15094
Clint: his prompt theme, dunno.
> only in current/ChangeLog: 15060
Bart: A02alias: can't keep track of whether this applies or not.
> only in current/ChangeLog: 15050, 15054
Bart: POSIX exit statuses. Change of behaviour, so not sure.
Probably shouldn't go
=====================
> only in current/ChangeLog: users/4157 (plus workers/15674)
Bart: upgrade to _man, probably too much out of sync with 4.0 by now.
15674 looks like a bug fix in any case.
> only in current/ChangeLog: unposted; based on 14679 (me) and 14693 (Bart)
Andrej: autoconf 2.50 fixes. Not necessary; for consistency, we're
sticking with the the old version for 4.0.
> +2001-09-21 Andrew Main (Zefram) <zefram@zsh.org>
> +
> + * Doc/Zsh/contrib.yo, Functions/Misc/tetris: Tetris game for ZLE.
> +
Not necessary.
> only in current/ChangeLog: 15608
> only in current/ChangeLog: Bart: 15106, small changes in 15152
> only in current/ChangeLog: 15945
Bart: improves _cd. Sven: improve _cd.
I can't actually work out what the combined effect is, but there are
almost certainly too many _cd, _tilde etc. changes.
> only in current/ChangeLog: Back out 15266
Me: That didn't go in anyway.
> only in current/ChangeLog: 16006
Clint: _mailboxes. New style, so doesn't need to be transferred. I'd
prefer all new behaviour like that, unless strictly necessary for
compatibility, to appear in upgrades rather than bug fixes.
> only in current/ChangeLog: 16005
Clint: mount: there's a lot of this, let's not get into this on 4.0, it
may still be dragging on.
> only in current/ChangeLog: 16000
Clint: new _debchange, not necessary but harmless.
> only in current/ChangeLog: 15995
Sven: show directories with globbed files by default. I don't think we
should change this in mid-4.0.
> only in current/ChangeLog: 15991
Sven: file completion display. I'm not worried about this, myself.
> only in current/ChangeLog: 15987
Oliver: tcp.c, irrelevant.
> only in current/ChangeLog: 15980
Me: zcalc, irrelevant.
> only in branch/ChangeLog: 15974
> only in current/ChangeLog: 15931
> only in current/ChangeLog: 15917
> only in current/ChangeLog: 15844
Me: 15974 only on branch because it documents the TRAPEXIT bug which is
fixed in 4.1 by 15844, 15917, 15931, but not necessarily stable, so I'll
leave this.
> only in current/ChangeLog: 15973
Oliver: printf: irrelevant
> only in current/ChangeLog: 15964
Andrej: tcp.c, irrelevant.
> only in current/ChangeLog: 15946
Sven: compresult.c, don't think this is an issue for 4.0
> only in current/ChangeLog: 15919
Clint: tcp.c, irrelevant.
> only in current/ChangeLog: 15895
Bart: zftp has changed too much.
> only in current/ChangeLog: 15886
Clint: tcp.c, irrelevant.
> only in current/ChangeLog: 15851, 15948
Oliver: printf, irrelevant.
> only in current/ChangeLog: 15762
> only in current/ChangeLog: 15763
> only in current/ChangeLog: 15766
> only in current/ChangeLog: 15768
> only in current/ChangeLog: 15770
> only in current/ChangeLog: 15772
> only in current/ChangeLog: 15779
> only in current/ChangeLog: 15780
> only in current/ChangeLog: 15783
Clint: tcp.c, irrelevant.
> only in current/ChangeLog: 15765
Clint: [[:ascii:]], not necessary.
> only in current/ChangeLog: 15734
Zefram: zle user key maps, overdue but too late now for 4.0.
> only in current/ChangeLog: 15722
Me: _sh, not necessary.
> only in current/ChangeLog: 15720
Bart/me: zmv: not necessary.
> only in current/ChangeLog: 15708
Bart: quoted parameter parsing, probably best left alone for 4.0.
> only in current/ChangeLog: 15647
Me: zcalc, irrelevant.
> only in current/ChangeLog: 15606
Oliver: update _dd, depends on new -w argument to _values.
> only in current/ChangeLog: 15597
Sven: _values -w, new option so probably not necessary.
> only in current/ChangeLog: 15586
> only in current/ChangeLog: 15590
Me, Oliver: aliases in = context. Not changed in 4.0.
> only in current/ChangeLog: 15588
Sven: _values stuff which gives me a headache.
> only in current/ChangeLog: 15585
Me: bash functions, not necessary.
> only in current/ChangeLog: 15549
Sven: Y03arguments.ztst resulting from other change only
> only in current/ChangeLog: 15526
Sven: complicated _arguments stuff.
> only in current/ChangeLog: 15511
Me: zcalc, irrelevant.
> only in current/ChangeLog: 15489
> only in current/ChangeLog: 15509
Sven, Bart: _describe technicality.
> only in current/ChangeLog: 15507
Me: zcalc, irrelevant.
> only in current/ChangeLog: 15477
> only in current/ChangeLog: 15482
> only in current/ChangeLog: 15484
> only in current/ChangeLog: 15485
Sven: long/short options thing. Not necessary to backport this.
> only in current/ChangeLog: 15472
Bart: remove doc for change which never happened even on 4.1.
> only in current/ChangeLog: 15468
Sven: improve _ssh, probably not necessary.
> only in current/ChangeLog: 15432
Me: another bash function, not necessary.
> only in current/ChangeLog: 15389
> only in current/ChangeLog: 15407
> only in current/ChangeLog: 15409
> only in current/ChangeLog: 15415
Sven: long/short options complexity (15409 was a core dump), only 4.1.
> only in current/ChangeLog: 15327
> only in current/ChangeLog: 15329
> only in current/ChangeLog: 15334
Me: line numbering, thing we should steer clear of putting this into 4.0.
> only in current/ChangeLog: 15305
Bart: xtrace in zle funcs, probably unnecessary.
> only in current/ChangeLog: 15291, 15292
> only in current/ChangeLog: 15304
Me/Bart: fix `scalar=foo; (( scalar = 0 ))', too complicated to try to
backport.
> only in current/ChangeLog: 15288
Me: bash functions, not necessary.
> only in current/ChangeLog: 15278 (Sven), 15390
Sven: New file completion stuff, not necessary.
> only in current/ChangeLog: 15271
Bart: pcre, not necessary.
> only in current/ChangeLog: 15266
Me: wrong anyway.
> only in current/ChangeLog: 15265
Me: new `for' syntax, not necessary.
> only in current/ChangeLog: 15211
> only in current/ChangeLog: 15234
> only in current/ChangeLog: 15242
> only in current/ChangeLog: 15250
Clint: pcre, not necessary.
> only in current/ChangeLog: 15228
Clint: AC_CHECK_LIB -> AC_SEARCH_LIBS. Best to leave this, I should
think.
> only in current/ChangeLog: 15169
Oliver/Me: I said explicitly I wouldn't put this in 4.0
> only in current/ChangeLog: 15123
Sven: _cd and _tilde, I'm sick of this, either we leave well alone or
copy the current versions straight back to 4.0.
> only in current/ChangeLog: 15087
> only in current/ChangeLog: 15115
Sven: handle disowning stopped jobs, new feature, probably leave out
though I don't think it's really a problem.
> only in current/ChangeLog: 15056
Bart: magic space change, deliberately left out, I believe.
> only in current/ChangeLog: 15030
Me: definitely non-POSIX for, not to go in.
> only in current/ChangeLog: 15029
Sven: _man improvements, probably too complicated.
> only in current/ChangeLog: 14952
Sven: zwc stuff, probably best left out.
> only in current/ChangeLog: 14939
Me: was complete crap.
> only in current/ChangeLog: 14931
Andrej: zftp, prresumably tcp.c-dependent.
> only in current/ChangeLog: 14915
> only in current/ChangeLog: 14929
Me: can't de-readonlify a special; make positional parameter arrays (but
not their elements) readonly. Not to be put into 4.0.
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
Work: pws@csr.com
Web: http://www.pwstephenson.fsnet.co.uk
^ permalink raw reply [relevance 4%]
* PATCH: arithmetic evaluation for printf
@ 2001-10-15 11:20 2% Oliver Kiddle
2001-10-16 11:09 4% ` Oliver Kiddle
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2001-10-15 11:20 UTC (permalink / raw)
To: zsh-workers
This is the next instalment of printf, the main addition being the use
of math evaluation for numeric arguments. Negative widths and
precisions are now properly handled.
I've only been able to test it where a zlong is a long long. Also, the
POSIX compliance related issues I mentioned last week apply. Should I
have used zhalloc for the char spec[11] and int flags[5] variables at
all?
And don't bother pointing out the resulting test failure in B03 - I
forgot the changed test file when I put this on a floppy at home
yesterday.
Oliver
Index: Doc/Zsh/builtins.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/builtins.yo,v
retrieving revision 1.38
diff -u -r1.38 builtins.yo
--- Doc/Zsh/builtins.yo 2001/10/08 10:47:47 1.38
+++ Doc/Zsh/builtins.yo 2001/10/15 11:13:21
@@ -732,8 +732,10 @@
that allows it to be reused as shell input. With the numeric format
specifiers, if the corresponding argument starts with a quote character,
the numeric value of the following character is used as the number to
-print. With `tt(%n)', the corresponding argument is taken as an identifier
-which is created as an integer parameter.
+print otherwise the argument is evaluated as an arithmetic expression. See
+noderef(Arithmetic Evaluation) for a description of arithmetic
+expressions. With `tt(%n)', the corresponding argument is taken as an
+identifier which is created as an integer parameter.
If arguments remain unused after formatting, the format string is reused
until all arguments have been consumed. If more arguments are required by
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.57
diff -u -r1.57 builtin.c
--- Src/builtin.c 2001/10/08 10:47:47 1.57
+++ Src/builtin.c 2001/10/15 11:13:22
@@ -2883,32 +2883,27 @@
/* echo, print, printf, pushln */
#define print_val(VAL) \
- if (width >= 0) { \
- if (prec >= 0) \
- count += fprintf(fout, start, width, prec, VAL); \
- else \
- count += fprintf(fout, start, width, VAL); \
- } else { \
- if (prec >= 0) \
- count += fprintf(fout, start, prec, VAL); \
- else \
- count += fprintf(fout, start, VAL); \
- }
+ if (prec >= 0) \
+ count += fprintf(fout, spec, width, prec, VAL); \
+ else \
+ count += fprintf(fout, spec, width, VAL);
/**/
int
bin_print(char *name, char **args, char *ops, int func)
{
int flen, width, prec, type, argc, n, nnl = 0, ret = 0;
- int *len;
- char *start, *endptr, *c, *fmt = NULL;
- char **first, nullstr = '\0', save = '\0';
+ int flags[5], *len;
+ char *start, *endptr, *c, *d, *flag, spec[11], *fmt = NULL;
+ char **first, *flagch = "0+- #", save, nullstr = '\0';
zlong count = 0;
FILE *fout = stdout;
+ mnumber mnumval;
double doubleval;
int intval;
- unsigned int uintval;
+ zlong zlongval;
+ zulong zulongval;
char *stringval;
if (func == BIN_PRINTF) auxdata = *args++;
@@ -2940,7 +2935,7 @@
len = (int *) hcalloc(argc * sizeof(int));
for(n = 0; n < argc; n++) {
/* first \ sequences */
- if (fmt || !ops['e'] && (ops['R'] || ops['r'] || ops['E']))
+ if (fmt || (!ops['e'] && (ops['R'] || ops['r'] || ops['E'])))
unmetafy(args[n], &len[n]);
else
args[n] = getkeystring(args[n], &len[n], ops['b'] ? 2 :
@@ -3098,6 +3093,7 @@
}
/* printf style output */
+ *spec='%';
do {
for (c = fmt;c-fmt < flen;c++) {
if (*c != '%') {
@@ -3112,34 +3108,48 @@
++count;
continue;
}
- type = prec = width = -1;
- if (strchr("+- #", *c)) c++;
+ type = prec = -1;
+ width = 0;
+ d = spec + 1;
+
+ /* copy only one of each flag as spec has finite size */
+ memset(flags, 0, sizeof(flags));
+ while (flag = strchr(flagch, *c)) {
+ if (!flags[flag - flagch]) {
+ flags[flag - flagch] = 1;
+ *d++ = *c;
+ }
+ c++;
+ }
if (*c == '*') {
- width = (*args) ? strtoul(*args++, NULL, 0) : 0;
+ if (*args) width = (int)mathevali(*args++);
c++;
- } else {
- while (idigit(*c)) c++;
+ } else if (idigit(*c)) {
+ width = strtoul(c, &endptr, 0);
+ c = endptr;
}
+ *d++ = '*';
if (*c == '.') {
c++;
if (*c == '*') {
- prec = (*args) ? strtoul(*args++, NULL, 0) : 0;
+ prec = (*args) ? (int)mathevali(*args++) : 0;
c++;
- } else {
- while (idigit(*c)) c++;
+ } else if (idigit(*c)) {
+ prec = strtoul(c, &endptr, 0);
+ c = endptr;
}
+ if (prec >= 0) *d++ = '.', *d++ = '*';
}
+ /* ignore any size modifier */
if (*c == 'l' || *c == 'L' || *c == 'h') c++;
- if (*c) {
- save = c[1];
- c[1] = '\0';
- }
- switch (*c) {
+ errflag = 0;
+ d[1] = '\0';
+ switch (*d = *c) {
case 'c':
if (*args) {
intval = **args;
@@ -3162,7 +3172,7 @@
break;
case 'q':
stringval = *args ? bslashquote(*args++, NULL, 0) : &nullstr;
- *c = 's';
+ *d = 's';
print_val(stringval);
break;
case 'd':
@@ -3186,50 +3196,65 @@
if (*args) setiparam(*args++, count);
break;
default:
- zerrnam(name, "%s: invalid directive", start, 0);
+ if (*c) {
+ save = c[1];
+ c[1] = '\0';
+ }
+ zwarnnam(name, "%s: invalid directive", start, 0);
ret = 1;
+ if (*c) c[1] = save;
}
if (type > 0) {
if (*args && (**args == '\'' || **args == '"' )) {
if (type == 2) {
- doubleval = (*args)[1];
+ doubleval = (unsigned char)(*args)[1];
print_val(doubleval);
} else {
- intval = (*args)[1];
+ intval = (unsigned char)(*args)[1];
print_val(intval);
}
args++;
} else {
switch (type) {
case 1:
- intval = (*args) ? strtol(*args, &endptr, 0) : 0;
- print_val(intval);
+#ifdef ZSH_64_BIT_TYPE
+ *d++ = 'l';
+#endif
+ *d++ = 'l', *d++ = *c, *d = '\0';
+ zlongval = (*args) ? mathevali(*args++) : 0;
+ if (errflag) {
+ zlongval = 0;
+ errflag = 0;
+ }
+ print_val(zlongval)
break;
case 2:
- doubleval = (*args) ? strtod(*args, &endptr) : 0;
- print_val(doubleval);
+ if (*args) {
+ mnumval = matheval(*args++);
+ doubleval = (mnumval.type & MN_FLOAT) ?
+ mnumval.u.d : (double)mnumval.u.l;
+ } else doubleval = 0;
+ if (errflag) {
+ doubleval = 0;
+ errflag = 0;
+ }
+ print_val(doubleval)
break;
case 3:
- uintval = (*args) ? strtoul(*args, &endptr, 0) : 0;
- print_val(uintval);
- }
- if (*args) {
- if (errno == ERANGE) {
- zerrnam(name, "`%s' arithmetic overflow", *args, 0);
- ret = 1;
- } else if (**args && endptr == *args) {
- zerrnam(name, "`%s' expected numeric value", endptr, 0);
- ret = 1;
- } else if (*endptr) {
- zerrnam(name, "`%s' not completely converted", *args, 0);
- ret = 1;
+#ifdef ZSH_64_BIT_TYPE
+ *d++ = 'l';
+#endif
+ *d++ = 'l', *d++ = *c, *d = '\0';
+ zulongval = (*args) ? mathevali(*args++) : 0;
+ if (errflag) {
+ doubleval = 0;
+ errflag = 0;
}
- args++;
+ print_val(zulongval)
}
}
}
- if (*c) c[1] = save;
}
/* if there are remaining args, reuse format string */
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 2%]
* behaviour of %q format specifier
@ 2001-10-15 11:52 9% Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2001-10-15 11:52 UTC (permalink / raw)
To: zsh-workers
In ksh, the %q printf format specifier will put posix quotes around
strings containing non-printable characters. Bash doesn't. The
following patch would add this to zsh. I'm slightly unsure about this
though - it wouldn't be necessary if the string is then passed through
eval (probably the only use of %q) and it is inconsistent with the q
history modifier and parameter expansion flag.
Any thoughts? Should I apply this or not, or something different?
Oliver
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.58
diff -u -r1.58 builtin.c
--- Src/builtin.c 2001/10/15 11:34:27 1.58
+++ Src/builtin.c 2001/10/15 11:47:48
@@ -3171,7 +3171,7 @@
}
break;
case 'q':
- stringval = *args ? bslashquote(*args++, NULL, 0) : &nullstr;
+ stringval = *args ? bslashquote(*args++, NULL, 4) : &nullstr;
*d = 's';
print_val(stringval);
break;
Index: Src/utils.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/utils.c,v
retrieving revision 1.35
diff -u -r1.35 utils.c
--- Src/utils.c 2001/06/15 23:55:08 1.35
+++ Src/utils.c 2001/10/15 11:47:48
@@ -2929,8 +2929,10 @@
* pointer it points to may point to a position in s and in e the position *
* of the corresponding character in the quoted string is returned. *
* The last argument should be zero if this is to be used outside a string, *
- * one if it is to be quoted for the inside of a single quoted string, and *
- * two if it is for the inside of double quoted string. *
+ * one if it is to be quoted for the inside of a single quoted string, *
+ * two if it is for the inside of double quoted string, and *
+ * three if it is for the inside of a posix quoted string, and *
+ * four if posix quotes should be added if s contains non-printable chars *
* The string may be metafied and contain tokens. */
/**/
@@ -2939,15 +2941,24 @@
{
const char *u, *tt;
char *v;
- char *buf = hcalloc(4 * strlen(s) + 1);
+ char *buf = hcalloc(4 * strlen(s) + 4);
int sf = 0;
+ if (instring == 4) {
+ instring = 0;
+ for (u=s;*u;u++)
+ if (!isprint((*u == Meta) ? *++u ^ 32 : *u)) {
+ instring = 4;
+ buf += 2;
+ break;
+ }
+ }
tt = v = buf;
u = s;
for (; *u; u++) {
if (e && *e == u)
*e = v, sf = 1;
- if (instring == 3) {
+ if (instring >= 3) {
int c = *u;
if (c == Meta) {
c = *++u ^ 32;
@@ -3065,6 +3076,11 @@
if(*u == Meta)
*v++ = *u++;
*v++ = *u;
+ }
+ if (instring == 4) {
+ /* enclose buf in $'...' */
+ *v++ = *--buf = '\'';
+ *--buf = '$';
}
*v = '\0';
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 9%]
* Re: questions - calling matheval() for printf
2001-10-12 14:03 3% questions - calling matheval() for printf Oliver Kiddle
@ 2001-10-15 12:54 3% ` Peter Stephenson
2001-10-15 17:11 2% ` Oliver Kiddle
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2001-10-15 12:54 UTC (permalink / raw)
To: Zsh hackers list
Sorry I didn't reply to this (the bits Bart didn'g) earlier...
Oliver Kiddle wrote:
> argument stdout stderr
> 5a 5 printf: "5a" not completely converted
>
> In the first case, the different error message doesn't worry me but
> math evaluation doesn't return `5'. It is conceivable that someone
> relies on this in a script, passing a string starting with a number and
> redirecting stderr. I could successively chop characters off the right
> of the string until matheval returns without an error. This would need
> a hack to avoid repeated error messages from matheval(). Any other,
> perhaps better suggestions?
If we need this, it would be better to hack matheval to give it an option
to stop and return a pointer to the end, just like strtol(). But I don't
think we need to adhere to POSIX printf semantics that closely. I'd be
more interested in what other shells do.
> Is there any way I can find out when arithmetic overflows have occurred
> for the second and third cases? matheval() just allows the numbers to
> wrap?
Again, this would be more work and I'm not sure it's worth it in a shell.
> Can a 64-bit integer be something other than long long? It seems I only
> have ZSH_64_BIT_TYPE to check and it might need a different format
> specifier for printf(3) if this is something other than long long.
On Alpha, it will normally be long rather than long long. However, I
compiled sizeof(long long) with gcc on the Alpha at Sourceforge, and that
seems to be 64-bit too. I don't think it's a good idea to rely on that,
though --- there's no standard for such things.
Can we make %q do just the same as what ${(q)foo} would do?
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 3%]
* Re: questions - calling matheval() for printf
2001-10-15 12:54 3% ` Peter Stephenson
@ 2001-10-15 17:11 2% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2001-10-15 17:11 UTC (permalink / raw)
To: Zsh hackers list
Peter Stephenson wrote:
>
> Sorry I didn't reply to this (the bits Bart didn'g) earlier...
Thanks. I've got another question here I'm afraid.
> If we need this, it would be better to hack matheval to give it an option
> to stop and return a pointer to the end, just like strtol(). But I don't
> think we need to adhere to POSIX printf semantics that closely. I'd be
> more interested in what other shells do.
Ksh handles things in the way that zsh perhaps ideally should:
$ printf '%d\n' 4a
ksh: printf: 4a: arithmetic syntax error
ksh: printf: warning: invalid argument of type d
4
$ printf '%d\n' 123456789012
ksh: printf: warning: 123456789012: overflow exception
2147483647
(though I see no need for two error messages in the first case)
Bash produces an error in each case though it fails to output 4 and max
int respectively as POSIX stipulates. Note that bash doesn't attempt
arithmetic evaluation here.
> > Can a 64-bit integer be something other than long long? It seems I only
> > have ZSH_64_BIT_TYPE to check and it might need a different format
> > specifier for printf(3) if this is something other than long long.
>
> On Alpha, it will normally be long rather than long long. However, I
> compiled sizeof(long long) with gcc on the Alpha at Sourceforge, and that
I'll do a bit of testing on Sourceforge then. Thanks.
> Can we make %q do just the same as what ${(q)foo} would do?
Yes. That is what it does at the moment so I'll just ditch the patch.
I have below another experimental feature. This allows the argument to
be specified in the format in much the same way as is possible with
printf(3). e.g:
printf '%2$s %s %1$s\n' World Good Morning
will print `Good Morning World'
Note that glibc's printf(3) would print `Good Good World' for this but
it seems to be the exception.
The question is how should this interact with the printf(1) feature of
reusing the format if more arguments remain. The easy answer would be
to not reuse the format if this feature had been used. As an
experiment, I've made it remove all arguments up to the last one used.
This allows interesting things like:
% printf '%2$s %1$s ' 1 2 3 4 5 6 ;echo
2 1 4 3 6 5
I can see this having some uses but I can also see it being a problem
as this is likely to be used for picking out fields where the arguments
are some command in $(...). A possibly quite good option would be an
option to print to disable format reuse (in which case any suggestion
on the choice of option letter?). Any other ideas on this?
Note that there is no ksh precedent here as ksh seg faults if you give
it these argument specifiers (I've got a lot of bug reporting to do
when I finish this).
If you try the patch, be aware that things may go awry if you try
specifying widths and precisions.
Oliver
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.58
diff -u -r1.58 builtin.c
--- Src/builtin.c 2001/10/15 11:34:27 1.58
+++ Src/builtin.c 2001/10/15 16:54:35
@@ -2892,7 +2892,8 @@
int
bin_print(char *name, char **args, char *ops, int func)
{
- int flen, width, prec, type, argc, n, nnl = 0, ret = 0;
+ int flen, width, prec, type, argc, n, gotwidth;
+ int nnl = 0, ret = 0, maxarg = 0;
int flags[5], *len;
char *start, *endptr, *c, *d, *flag, spec[11], *fmt = NULL;
char **first, *flagch = "0+- #", save, nullstr = '\0';
@@ -3095,6 +3096,11 @@
/* printf style output */
*spec='%';
do {
+ if (maxarg) {
+ first += maxarg;
+ argc -= maxarg;
+ maxarg = 0;
+ }
for (c = fmt;c-fmt < flen;c++) {
if (*c != '%') {
putc(*c, fout);
@@ -3110,7 +3116,7 @@
}
type = prec = -1;
- width = 0;
+ width = gotwidth = 0;
d = spec + 1;
/* copy only one of each flag as spec has finite size */
@@ -3123,13 +3129,32 @@
c++;
}
- if (*c == '*') {
- if (*args) width = (int)mathevali(*args++);
- c++;
- } else if (idigit(*c)) {
+ if (idigit(*c)) {
width = strtoul(c, &endptr, 0);
c = endptr;
+ if (*c == '$') {
+ DPUTS(width <= 0, "specified zero or negative arg");
+ if (width > argc) {
+ zwarnnam(name, "%d: argument specifier out of range",
+ 0, width);
+ ret = 1;
+ } else {
+ if (width > maxarg) maxarg = width;
+ args = first + width - 1;
+ }
+ if (idigit(*++c)) {
+ width = strtoul(c, &endptr, 0);
+ c = endptr;
+ gotwidth = 1;
+ } else
+ width = 0;
+ } else
+ gotwidth = 1;
}
+ if (!gotwidth && *c == '*') {
+ if (*args) width = (int)mathevali(*args++);
+ c++;
+ }
*d++ = '*';
if (*c == '.') {
@@ -3224,7 +3249,7 @@
*d++ = 'l', *d++ = *c, *d = '\0';
zlongval = (*args) ? mathevali(*args++) : 0;
if (errflag) {
- zlongval = 0;
+ doubleval = 0;
errflag = 0;
}
print_val(zlongval)
@@ -3255,8 +3280,11 @@
}
}
}
+ if (maxarg && (args - first > maxarg))
+ maxarg = args - first;
}
+ if (maxarg) args = first + maxarg;
/* if there are remaining args, reuse format string */
} while (*args && args != first);
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 2%]
* Re: PATCH: arithmetic evaluation for printf
2001-10-15 11:20 2% PATCH: arithmetic evaluation for printf Oliver Kiddle
@ 2001-10-16 11:09 4% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2001-10-16 11:09 UTC (permalink / raw)
To: zsh-workers
I wrote:
>
> I've only been able to test it where a zlong is a long long.
It is fine where zlong is a long and where long is 64 bits such as the
alpha on sourceforge. Problems might arise if the 64 bit type is
anything else but I can't see anything in zshconfig.ac to indicate that
that is yet the case anywhere (it only tries long and long long).
> And don't bother pointing out the resulting test failure in B03 - I
> forgot the changed test file when I put this on a floppy at home
> yesterday.
The changed test file is below. I also forgot to make it return 1 after
math errors so that fix is also below. The comment above bslashquote()
in utils.c was incomplete so even though I'm ditching the changes to
that function, I'll bring the comment up-to-date.
Oliver
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.58
diff -u -r1.58 builtin.c
--- Src/builtin.c 2001/10/15 11:34:27 1.58
+++ Src/builtin.c 2001/10/16 11:05:32
@@ -3125,6 +3125,10 @@
if (*c == '*') {
if (*args) width = (int)mathevali(*args++);
+ if (errflag) {
+ errflag = 0;
+ ret = 1;
+ }
c++;
} else if (idigit(*c)) {
width = strtoul(c, &endptr, 0);
@@ -3136,6 +3140,10 @@
c++;
if (*c == '*') {
prec = (*args) ? (int)mathevali(*args++) : 0;
+ if (errflag) {
+ errflag = 0;
+ ret = 1;
+ }
c++;
} else if (idigit(*c)) {
prec = strtoul(c, &endptr, 0);
@@ -3147,7 +3155,6 @@
/* ignore any size modifier */
if (*c == 'l' || *c == 'L' || *c == 'h') c++;
- errflag = 0;
d[1] = '\0';
switch (*d = *c) {
case 'c':
@@ -3226,6 +3233,7 @@
if (errflag) {
zlongval = 0;
errflag = 0;
+ ret = 1;
}
print_val(zlongval)
break;
@@ -3238,11 +3246,12 @@
if (errflag) {
doubleval = 0;
errflag = 0;
+ ret = 1;
}
print_val(doubleval)
break;
case 3:
-#ifdef ZSH_64_BIT_TYPE
+#ifdef ZSH_64_BIT_UTYPE
*d++ = 'l';
#endif
*d++ = 'l', *d++ = *c, *d = '\0';
@@ -3250,6 +3259,7 @@
if (errflag) {
doubleval = 0;
errflag = 0;
+ ret = 1;
}
print_val(zulongval)
}
Index: Src/utils.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/utils.c,v
retrieving revision 1.35
diff -u -r1.35 utils.c
--- Src/utils.c 2001/06/15 23:55:08 1.35
+++ Src/utils.c 2001/10/16 11:05:32
@@ -2929,8 +2929,9 @@
* pointer it points to may point to a position in s and in e the position *
* of the corresponding character in the quoted string is returned. *
* The last argument should be zero if this is to be used outside a string, *
- * one if it is to be quoted for the inside of a single quoted string, and *
- * two if it is for the inside of double quoted string. *
+ * one if it is to be quoted for the inside of a single quoted string, *
+ * two if it is for the inside of a double quoted string, and *
+ * three if it is for the inside of a posix quoted string. *
* The string may be metafied and contain tokens. */
/**/
Index: Test/B03print.ztst
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/B03print.ztst,v
retrieving revision 1.1
diff -u -r1.1 B03print.ztst
--- Test/B03print.ztst 2001/10/08 10:47:47 1.1
+++ Test/B03print.ztst 2001/10/16 11:05:32
@@ -78,6 +78,10 @@
0:initial quote to get numeric value of character with double
>6.6E+01
+ printf '%x\n' $(printf '"\xf0')
+0:numeric value of high numbered character
+>f0
+
# code will probably be changed to print the literal `%s' in this case
printf '\x25s\n' arg
0:using \x25 to introduce a format specifier
@@ -95,24 +99,15 @@
0:width/precision specified in arguments
> 10.20
- printf '%d\n' 3000000000
-1d:out of range numeric result
-?(eval):printf:1: `3000000000' arithmetic overflow
-
- printf '%G\n' letters
-1:non numeric argument
-?(eval):printf:1: `letters' expected numeric value
->0
-
- print -f '%d\n' 2e4
-1:letters in numeric argument
-?(eval):print:1: `2e4' not completely converted
->2
-
printf '%z'
-1:test invalid directive
+1:use of invalid directive
?(eval):printf:1: %z: invalid directive
+ printf '%d\n' 3a
+1:bad arithmetic expression
+?(eval):1: bad math expression: operator expected at `a'
+>0
+
print -m -f 'format - %s.\n' 'z' a b c
0:format not printed if no arguments left after -m removal
@@ -133,3 +128,15 @@
>one a:0x1%
>two b:0x2%
>three c:0x3%
+
+ printf '%0+- #-08.5dx\n' 123
+0:maximal length format specification
+>+00123 x
+
+ printf '%*smorning\n' -5 good
+0:negative width specified
+>good morning
+
+ printf '%.*g\n' -1 .1
+0:negative precision specified
+>0.1
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 4%]
* Re: differences between the two branches
2000-10-14 19:02 4% ` Peter Stephenson
@ 2001-10-16 17:08 2% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2001-10-16 17:08 UTC (permalink / raw)
To: zsh-workers
} Could go if not too much work
} ============================
}
} > only in current/ChangeLog: 15812
} > only in current/ChangeLog: 15702
} > only in current/ChangeLog: 15676
} > only in current/ChangeLog: 15488
} > only in current/ChangeLog: 15375
} > only in current/ChangeLog: 15057
} > only in current/ChangeLog: 15023, 15027
} > only in current/ChangeLog: 15038
I've patched in all of these, run "make" and "make check", and fixed up
a few problems (like "ZTST_execchunk" instead of "(eval)" in some of
the tests).
Given the difflog script, which I think I'll commit in Util/ on the trunk
if no one objects, I decided to lump all the log entries under today's
date-stamp; I can spread them around later if we think that's the right
way to go.
I did find a couple of minor problems: Test/Y0* don't abort following
a failure in the %prep section, rather they go on and fail at the first
test. They report a failure of %prep, but don't stop. I haven't done
anything about that yet, but if/when it's fixed, there are couple of
small tweaks needed to Test/Y0*.
} > only in current/ChangeLog: 15354
}
} Bart: Doc indexing, useful but I don't know how hard this is to transfer.
This looks a bit icky because it's so many files. I'll commit what I
have so far and then see if this will apply as a patch; there are too
many files to try using ediff.
} My brain hurts just thinking about it
} =====================================
}
} > only in current/ChangeLog: 15836
} > only in current/ChangeLog: 15806
} > only in current/ChangeLog: 15809
}
} Wayne: `r' problem reported by Bart. Dunno if this was in 4.0.
This was in every version of zsh back to before 2.xx, as I recall. It
should go in if possible.
} > only in current/ChangeLog: 15198
}
} Bart: _tilde return value, OK if applicable, but may well not be.
I put it in, though it had to change very slightly. It's not as important
in 4.0 because _cd doesn't call _tilde, but it was still wrong as it was.
} > only in current/ChangeLog: 15060
}
} Bart: A02alias: can't keep track of whether this applies or not.
There are two entries for 15060:
* 15060: Test/A02alias.ztst: Change expected return value to
account for 15050.
* 15060: Test/Y01completion.ztst, Test/Y02compmatch.ztst,
Test/Y03arguments.ztst, Test/comptest: Abandon the tests during
the %prep section if the zpty module can't be loaded.
The second one applies (it had to, in order for 15676 to apply), but the
first one only applies if:
} > only in current/ChangeLog: 15050, 15054
}
} Bart: POSIX exit statuses. Change of behaviour, so not sure.
These I didn't put in, so I didn't put in the first part of 15060 either.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 2%]
* PATCH: specifying arguments in printf formats
@ 2001-10-18 14:15 2% Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2001-10-18 14:15 UTC (permalink / raw)
To: zsh-workers
This patch now adds the feature I mentioned before where arguments can
be specified with conversion specifications like '%1$*2$.*3$d' instead
of using arguments in order.
You shouldn't mix the two styles of specifying arguments - I recommend
against it in the manual which is the same as the case with printf(3).
If you do mix them, it will work but I may change the exact semantics
if it allows me to improve the code.
Peter Stephenson wrote:
>
> Oliver Kiddle wrote:
> > The question is how should this interact with the printf(1) feature of
> > reusing the format if more arguments remain. The easy answer would be
> > to not reuse the format if this feature had been used. As an
> > experiment, I've made it remove all arguments up to the last one used.
> > This allows interesting things like:
> >
> > % printf '%2$s %1$s ' 1 2 3 4 5 6 ;echo
> > 2 1 4 3 6 5
> >
> > I can see this having some uses but I can also see it being a problem
> > as this is likely to be used for picking out fields where the arguments
> > are some command in $(...).
>
> Even in that case, the problem is really with the reuse of the format,
> rather than the special argument-picking syntax. Maybe it would be best to
> have a command-line option to turn it (the reuse of the format specifier,
> that is) off --- or even on, since it might be regarded as a little florid
> for default behaviour. But I suppose we're going to have to stick with ksh
> if we're trying to match it.
Reuse of arguments is defined in POSIX so it isn't ksh I'm matching
there. And, this new argument specifying feature is not in ksh.
I've decided that an option as Peter suggests is the best way to go
here. It'll have to turn reuse off so that we are keeping to POSIX/ksh
which is a slight pity as the opposite would perhaps be better.
Any good suggestions on the choice of option letter? -r and -R (for
reuse) are both gone but we want to indicate the opposite of that
anyway.
For the moment, you can use -r but I've not documented that and will
change it later. For ksh compatibility, -r can't be used with -f but
I'll probably suggest that be changed on the shell list.
Oliver
Index: Doc/Zsh/builtins.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/builtins.yo,v
retrieving revision 1.39
diff -u -r1.39 builtins.yo
--- Doc/Zsh/builtins.yo 2001/10/15 11:34:27 1.39
+++ Doc/Zsh/builtins.yo 2001/10/18 14:11:41
@@ -725,9 +725,9 @@
item(tt(printf) var(format) [ var(arg) ... ])(
Print the arguments according to the format specification. Formatting
rules are the same as used in C. The same escape sequences as for tt(echo)
-are recognised in the format. All C format specifications ending in one of
-csdiouxXeEfgGn are handled. In addition to this, `tt(%b)' can be used
-instead of `tt(%s)' to cause escape sequences in the argument to be
+are recognised in the format. All C conversion specifications ending in
+one of csdiouxXeEfgGn are handled. In addition to this, `tt(%b)' can be
+used instead of `tt(%s)' to cause escape sequences in the argument to be
recognised and `tt(%q)' can be used to quote the argument in such a way
that allows it to be reused as shell input. With the numeric format
specifiers, if the corresponding argument starts with a quote character,
@@ -736,6 +736,13 @@
noderef(Arithmetic Evaluation) for a description of arithmetic
expressions. With `tt(%n)', the corresponding argument is taken as an
identifier which is created as an integer parameter.
+
+Normally, conversion specifications are applied to each argument in order
+but they can explicitly specify the var(n)th argument is to be used by
+replacing `tt(%)' by `tt(%)var(n)tt($)' and `tt(*)' by `tt(*)var(n)tt($)'.
+It is recommended that you do not mix references of this explicit style
+with the normal style and the handling of such mixed styles may be subject
+to future change.
If arguments remain unused after formatting, the format string is reused
until all arguments have been consumed. If more arguments are required by
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.59
diff -u -r1.59 builtin.c
--- Src/builtin.c 2001/10/16 11:16:11 1.59
+++ Src/builtin.c 2001/10/18 14:11:41
@@ -2892,10 +2892,11 @@
int
bin_print(char *name, char **args, char *ops, int func)
{
- int flen, width, prec, type, argc, n, nnl = 0, ret = 0;
+ int flen, width, prec, type, argc, n, narg;
+ int nnl = 0, ret = 0, maxarg = 0;
int flags[5], *len;
char *start, *endptr, *c, *d, *flag, spec[11], *fmt = NULL;
- char **first, *flagch = "0+- #", save, nullstr = '\0';
+ char **first, *curarg, *flagch = "0+- #", save, nullstr = '\0';
zlong count = 0;
FILE *fout = stdout;
@@ -3095,6 +3096,11 @@
/* printf style output */
*spec='%';
do {
+ if (maxarg) {
+ first += maxarg;
+ argc -= maxarg;
+ maxarg = 0;
+ }
for (c = fmt;c-fmt < flen;c++) {
if (*c != '%') {
putc(*c, fout);
@@ -3111,11 +3117,29 @@
type = prec = -1;
width = 0;
+ curarg = NULL;
d = spec + 1;
+ if (*c >= '1' && *c <= '9') {
+ narg = strtoul(c, &endptr, 0);
+ if (*endptr == '$') {
+ c = endptr + 1;
+ DPUTS(narg <= 0, "specified zero or negative arg");
+ if (narg > argc) {
+ zwarnnam(name, "%d: argument specifier out of range",
+ 0, narg);
+ return 1;
+ } else {
+ if (narg > maxarg) maxarg = narg;
+ curarg = *(first + narg - 1);
+ }
+ }
+ }
+
+
/* copy only one of each flag as spec has finite size */
memset(flags, 0, sizeof(flags));
- while (flag = strchr(flagch, *c)) {
+ while ((flag = strchr(flagch, *c))) {
if (!flags[flag - flagch]) {
flags[flag - flagch] = 1;
*d++ = *c;
@@ -3123,28 +3147,60 @@
c++;
}
- if (*c == '*') {
- if (*args) width = (int)mathevali(*args++);
- if (errflag) {
- errflag = 0;
- ret = 1;
- }
- c++;
- } else if (idigit(*c)) {
+ if (idigit(*c)) {
width = strtoul(c, &endptr, 0);
c = endptr;
+ } else if (*c == '*') {
+ if (idigit(*++c)) {
+ narg = strtoul(c, &endptr, 0);
+ if (*endptr == '$') {
+ c = endptr + 1;
+ if (narg > argc || narg <= 0) {
+ zwarnnam(name,
+ "%d: argument specifier out of range",
+ 0, narg);
+ return 1;
+ } else {
+ if (narg > maxarg) maxarg = narg;
+ args = first + narg - 1;
+ }
+ }
+ }
+ if (*args) {
+ width = (int)mathevali(*args++);
+ if (errflag) {
+ errflag = 0;
+ ret = 1;
+ }
+ }
}
*d++ = '*';
if (*c == '.') {
- c++;
- if (*c == '*') {
- prec = (*args) ? (int)mathevali(*args++) : 0;
- if (errflag) {
- errflag = 0;
- ret = 1;
+ if (*++c == '*') {
+ if (idigit(*++c)) {
+ narg = strtoul(c, &endptr, 0);
+ if (*endptr == '$') {
+ c = endptr + 1;
+ if (narg > argc || narg <= 0) {
+ zwarnnam(name,
+ "%d: argument specifier out of range",
+ 0, narg);
+ return 1;
+ } else {
+ if (narg > maxarg) maxarg = narg;
+ args = first + narg - 1;
+ }
+ }
+ }
+
+ if (*args) {
+ prec = (int)mathevali(*args++);
+ if (errflag) {
+ errflag = 0;
+ ret = 1;
+ }
}
- c++;
} else if (idigit(*c)) {
prec = strtoul(c, &endptr, 0);
c = endptr;
@@ -3155,30 +3211,30 @@
/* ignore any size modifier */
if (*c == 'l' || *c == 'L' || *c == 'h') c++;
+ if (!curarg && *args) curarg = *args++;
d[1] = '\0';
switch (*d = *c) {
case 'c':
- if (*args) {
- intval = **args;
- args++;
+ if (curarg) {
+ intval = *curarg;
} else
intval = 0;
print_val(intval);
break;
case 's':
- stringval = *args ? *args++ : &nullstr;
+ stringval = curarg ? curarg : &nullstr;
print_val(stringval);
break;
case 'b':
- if (*args) {
+ if (curarg) {
int l;
- char *b = getkeystring(*args++, &l, ops['b'] ? 2 : 0, &nnl);
+ char *b = getkeystring(curarg, &l, ops['b'] ? 2 : 0, &nnl);
fwrite(b, l, 1, fout);
count += l;
}
break;
case 'q':
- stringval = *args ? bslashquote(*args++, NULL, 0) : &nullstr;
+ stringval = curarg ? bslashquote(curarg, NULL, 0) : &nullstr;
*d = 's';
print_val(stringval);
break;
@@ -3200,7 +3256,7 @@
type=3;
break;
case 'n':
- if (*args) setiparam(*args++, count);
+ if (curarg) setiparam(curarg, count);
break;
default:
if (*c) {
@@ -3208,20 +3264,21 @@
c[1] = '\0';
}
zwarnnam(name, "%s: invalid directive", start, 0);
- ret = 1;
if (*c) c[1] = save;
+ if (fout != stdout)
+ fclose(fout);
+ return 1;
}
if (type > 0) {
- if (*args && (**args == '\'' || **args == '"' )) {
+ if (curarg && (*curarg == '\'' || *curarg == '"' )) {
if (type == 2) {
- doubleval = (unsigned char)(*args)[1];
+ doubleval = (unsigned char)curarg[1];
print_val(doubleval);
} else {
- intval = (unsigned char)(*args)[1];
+ intval = (unsigned char)curarg[1];
print_val(intval);
}
- args++;
} else {
switch (type) {
case 1:
@@ -3229,7 +3286,7 @@
*d++ = 'l';
#endif
*d++ = 'l', *d++ = *c, *d = '\0';
- zlongval = (*args) ? mathevali(*args++) : 0;
+ zlongval = (curarg) ? mathevali(curarg) : 0;
if (errflag) {
zlongval = 0;
errflag = 0;
@@ -3238,8 +3295,8 @@
print_val(zlongval)
break;
case 2:
- if (*args) {
- mnumval = matheval(*args++);
+ if (curarg) {
+ mnumval = matheval(curarg);
doubleval = (mnumval.type & MN_FLOAT) ?
mnumval.u.d : (double)mnumval.u.l;
} else doubleval = 0;
@@ -3255,9 +3312,9 @@
*d++ = 'l';
#endif
*d++ = 'l', *d++ = *c, *d = '\0';
- zulongval = (*args) ? mathevali(*args++) : 0;
+ zulongval = (curarg) ? mathevali(curarg) : 0;
if (errflag) {
- doubleval = 0;
+ zulongval = 0;
errflag = 0;
ret = 1;
}
@@ -3265,10 +3322,13 @@
}
}
}
+ if (maxarg && (args - first > maxarg))
+ maxarg = args - first;
}
+ if (maxarg) args = first + maxarg;
/* if there are remaining args, reuse format string */
- } while (*args && args != first);
+ } while (*args && args != first && !ops['r']);
if (fout != stdout)
fclose(fout);
Index: Test/B03print.ztst
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/B03print.ztst,v
retrieving revision 1.2
diff -u -r1.2 B03print.ztst
--- Test/B03print.ztst 2001/10/16 11:16:11 1.2
+++ Test/B03print.ztst 2001/10/18 14:11:41
@@ -50,7 +50,9 @@
0:test b format specifier
> \
-# test %q here - it doesn't quite work yet
+ printf '%q\n' '=a=b \ c!'
+0: test q format specifier
+>\=a=b\ \\\ c!
printf '%c\n' char
0:test c format specifier
@@ -108,6 +110,19 @@
?(eval):1: bad math expression: operator expected at `a'
>0
+ printf '%12$s' 1 2 3
+1:out of range argument specifier
+?(eval):printf:1: 12: argument specifier out of range
+
+ printf '%2$s\n' 1 2 3
+1:out of range argument specifier on format reuse
+?(eval):printf:1: 2: argument specifier out of range
+>2
+
+ printf '%*0$d'
+1:out of range argument specifier on width
+?(eval):printf:1: 0: argument specifier out of range
+
print -m -f 'format - %s.\n' 'z' a b c
0:format not printed if no arguments left after -m removal
@@ -129,7 +144,8 @@
>two b:0x2%
>three c:0x3%
- printf '%0+- #-08.5dx\n' 123
+# this should fill spec string with '%0+- #*.*d\0' - 11 characters
+ printf '%1$0+- #-08.5dx\n' 123
0:maximal length format specification
>+00123 x
@@ -140,3 +156,41 @@
printf '%.*g\n' -1 .1
0:negative precision specified
>0.1
+
+ printf '%2$s %1$d\n' 1 2
+0:specify argument to output explicitly
+>2 1
+
+ printf '%3$.*1$d\n' 4 0 3
+0:specify output and precision arguments explicitly
+>0003
+
+ printf '%2$d%1$d\n' 1 2 3 4
+0:reuse format where arguments are explictly specified
+>21
+>43
+
+ printf '%1$*2$d' 1 2 3 4 5 6 7 8 9 10;echo
+0:reuse of specified arguments
+> 1 3 5 7 9
+
+ printf '%1$0+.3d\n' 3
+0:flags mixed with specified argument
+>+003
+
+# The following usage, as stated in the manual, is not recommended and the
+# results are undefined. Tests are here anyway to ensure some form of
+# half-sane behaviour.
+
+ printf '%2$s %s %3$s\n' Morning Good World
+0:mixed style of argument selection
+>Good Morning World
+
+ printf '%*1$.*d\n' 1 2
+0:argument specified for width only
+>00
+
+ print -f '%*.*1$d\n' 1 2 3
+0:argument specified for precision only
+>2
+>000
^ permalink raw reply [relevance 2%]
* Re: unlimited file descripters causes problems for zsh-4.0.2
@ 2001-10-21 20:17 3% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2001-10-21 20:17 UTC (permalink / raw)
To: zsh-workers
On Oct 21, 7:07pm, Bart Schaefer wrote:
}
} } Here's a suggestion: Once, at startup, we scan all the way to zopenmax()
} } looking for open descriptors, and set a global to the largest number we
} } find.
I should point out that it's possible for sysconf(_SC_OPEN_MAX) to return
zero even when the actual descriptor limit is greater than OPEN_MAX. So
there is still potential for zsh to leave high-numbered descriptors open
in closeallelse() et al., should the OS have a particularly brain-damaged
POSIX implementation and someone really wishes to force it.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 3%]
* Make error on Mac OS X 10.1
@ 2001-10-22 11:00 1% Steven Farrier
0 siblings, 0 replies; 200+ results
From: Steven Farrier @ 2001-10-22 11:00 UTC (permalink / raw)
To: zsh-workers
I have been attempting to build zsh on Mac OS X 10.1
I installed dlcompat like the MACHINE file suggested. That failed so I then
tried disabling dynamic modules that didn't seem to help.
Below is the build process. I used the latest 4.1.0 snapshot.
[localhost:~/source/zsh-4.1-20011022] tachys% ./Util/preconfig
cd . && ./.preconfig
[localhost:~/source/zsh-4.1-20011022] tachys% ./configure
creating cache ./config.cache
configuring for zsh 4.1.0-dev-2
checking host system type... powerpc-apple-darwin1.4
checking for gcc... no
checking for cc... cc
checking whether the C compiler (cc ) works... yes
checking whether the C compiler (cc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether cc accepts -g... yes
checking whether large file support needs explicit enabling... no
checking how to run the C preprocessor... cc -E -traditional-cpp
checking whether cc needs -traditional... no
checking for working const... yes
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for executable suffix... no
checking for cc option to accept ANSI C...
checking whether to use prototypes... yes
checking for working alloca.h... no
checking for alloca... yes
checking if the compiler supports union initialisation... yes
checking if signed to unsigned casting is broken... no
checking if the compiler supports variable-length arrays... yes
checking what to set MAXJOB to... 50
checking whether make sets ${MAKE}... yes
checking for a BSD compatible install... /usr/bin/install -c
checking for mawk... no
checking for gawk... no
checking for nawk... no
checking for awk... awk
checking whether ln works... yes
checking for yodl... no
checking for dirent.h that defines DIR... yes
checking for opendir in -ldir... no
checking for ANSI C header files... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether stat file-mode macros are broken... no
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/time.h... yes
checking for sys/times.h... yes
checking for sys/select.h... yes
checking for termcap.h... no
checking for termio.h... no
checking for termios.h... yes
checking for sys/param.h... yes
checking for sys/filio.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for limits.h... yes
checking for fcntl.h... yes
checking for libc.h... yes
checking for sys/utsname.h... yes
checking for sys/resource.h... yes
checking for locale.h... yes
checking for errno.h... yes
checking for stdlib.h... yes
checking for unistd.h... yes
checking for sys/capability.h... no
checking for utmp.h... yes
checking for utmpx.h... no
checking for sys/types.h... yes
checking for pwd.h... yes
checking for grp.h... yes
checking for poll.h... no
checking for sys/mman.h... yes
checking for netinet/in_systm.h... yes
checking for pcre.h... no
checking for dlfcn.h... no
checking for dl.h... no
checking for conflicts in sys/time.h and sys/select.h... no
checking POSIX termios... yes
checking TIOCGWINSZ in termios.h... yes
checking for sys/ptem.h... no
checking for printf in -lc... yes
checking for pow in -lm... yes
checking for library containing tgetent... none required
checking for library containing yp_all... none required
checking for dlopen in -ldl... no
checking for cap_get_proc in -lcap... no
checking for socket in -lsocket... no
checking for library containing pcre_compile... no
checking if an include file defines ospeed... no
checking if you must define ospeed... yes
checking return type of signal handlers... void
checking for pid_t... yes
checking for off_t... yes
checking for ino_t... yes
checking for mode_t... yes
checking for uid_t in sys/types.h... yes
checking for size_t... yes
checking if long is 64 bits... no
checking if off_t is 64 bit... yes
checking if ino_t is 64 bit... no
checking if compiler has a 64 bit type... long long
checking for a corresponding unsigned 64 bit type... unsigned long long
checking for sigset_t... yes
checking for struct timezone... yes
checking for struct utmp... yes
checking for struct utmpx... no
checking for ut_host in struct utmp... yes
checking for ut_host in struct utmpx... no
checking for ut_xtime in struct utmpx... no
checking for ut_tv in struct utmpx... no
checking for d_ino in struct dirent... yes
checking for d_stat in struct dirent... no
checking for d_ino in struct direct... no
checking for d_stat in struct direct... no
checking for sin6_scope_id in struct sockaddr_in6... yes
checking if we need our own h_errno... no
checking for strftime... yes
checking for difftime... yes
checking for gettimeofday... yes
checking for select... yes
checking for poll... no
checking for readlink... yes
checking for faccessx... no
checking for fchdir... yes
checking for ftruncate... yes
checking for fstat... yes
checking for lstat... yes
checking for lchown... no
checking for fseeko... yes
checking for ftello... yes
checking for mkfifo... yes
checking for _mktemp... no
checking for mkstemp... yes
checking for waitpid... yes
checking for wait3... yes
checking for sigaction... yes
checking for sigblock... yes
checking for sighold... no
checking for sigrelse... no
checking for sigsetmask... yes
checking for sigprocmask... yes
checking for killpg... yes
checking for setpgid... yes
checking for setpgrp... yes
checking for tcsetpgrp... yes
checking for tcgetattr... yes
checking for nice... yes
checking for gethostname... yes
checking for gethostbyname2... yes
checking for getipnodebyname... no
checking for inet_aton... yes
checking for inet_pton... no
checking for inet_ntop... no
checking for getlogin... yes
checking for getpwent... yes
checking for getpwnam... yes
checking for getpwuid... yes
checking for getgrgid... yes
checking for getgrnam... yes
checking for initgroups... yes
checking for nis_list... no
checking for setuid... yes
checking for seteuid... yes
checking for setreuid... yes
checking for setresuid... no
checking for setsid... yes
checking for memcpy... yes
checking for memmove... yes
checking for strstr... yes
checking for strerror... yes
checking for cap_get_proc... no
checking for getrlimit... yes
checking for setlocale... yes
checking for uname... yes
checking for signgam... yes
checking for putenv... yes
checking for getenv... yes
checking for brk... yes
checking for sbrk... yes
checking for pathconf... yes
checking for sysconf... yes
checking for tgetent... yes
checking for tigetflag... no
checking for tigetnum... no
checking for tigetstr... no
checking for setupterm... no
checking for pcre_compile... no
checking for pcre_study... no
checking for pcre_exec... no
checking for working strcoll... yes
checking if tgetent accepts NULL... yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking for munmap... yes
checking for msync... yes
checking whether getpgrp takes no argument... yes
checking for dlopen... no
checking for dlerror... no
checking for dlsym... no
checking for dlclose... no
checking for load... no
checking for loadquery... no
checking for loadbind... no
checking for unload... no
checking for shl_load... no
checking for shl_unload... no
checking for shl_findsym... no
checking what style of signals to use... POSIX_SIGNALS
checking where signal.h is located... /usr/include/sys/signal.h
checking where the RLIMIT macros are located...
/usr/include/sys/resource.h
checking if rlim_t is longer than a long... yes
checking if rlim_t is a quad... yes
checking for rlim_t... yes
checking for /dev/fd filesystem... /dev/fd
checking for RFS superroot directory... no
checking whether we should use the native getcwd... no
checking for NIS... no
checking for NIS+... no
checking for utmp file... /var/run/utmp
checking for wtmp file... /var/log/wtmp
checking for utmpx file... no
checking for wtmpx file... no
checking for brk() prototype in <unistd.h>... yes
checking for sbrk() prototype in <unistd.h>... yes
checking for ioctl prototype in <sys/ioctl.h>... yes
checking for mknod prototype in <sys/stat.h>... no
checking if named FIFOs work... yes
checking if echo in /bin/sh interprets escape sequences... no
checking if link() works... yes
checking if kill(pid, 0) returns ESRCH correctly... yes
checking if POSIX sigsuspend() works... yes
checking if tcsetpgrp() actually works... yes
checking if getpwnam() is faked... no
checking base type of the third argument to accept... int
creating ./config.modules
updating cache ./config.cache
creating ./config.status
zsh configuration
-----------------
zsh version : 4.1.0-dev-2
host operating system : powerpc-apple-darwin1.4
source code location : .
compiler : cc
preprocessor flags :
executable compiler flags : -Wall -Wno-implicit -Wmissing-prototypes -O2
executable linker flags : -Wl,-x
library flags : -lm -lc
installation basename : zsh
binary install path : /usr/local/bin
man page install path : /usr/local/man
info install path : /usr/local/info
functions install path : /usr/local/share/zsh/4.1.0-dev-2/functions
See config.modules for installed modules and functions.
creating Config/defs.mk
creating Makefile
creating Doc/Makefile
creating Etc/Makefile
creating Src/Makefile
creating Test/Makefile
creating config.h
[localhost:~/source/zsh-4.1-20011022] tachys% make
cd .. && /bin/sh $top_srcdir/Src/mkmakemod.sh Src Makemod
creating Src/Makemod.in
creating Src/Makemod
echo 'timestamp for *.mdd files' > ../Src/modules.stamp
creating Src/Builtins/Makefile.in
creating Src/Builtins/Makefile
creating Src/Modules/Makefile.in
creating Src/Modules/Makefile
creating Src/Zle/Makefile.in
creating Src/Zle/Makefile
awk -f ./signames1.awk /usr/include/sys/signal.h >sigtmp.c
cc -E -traditional-cpp sigtmp.c >sigtmp.out
awk -f ./signames2.awk sigtmp.out > signames.c
rm -f sigtmp.c sigtmp.out
grep 'define.*SIGCOUNT' signames.c > sigcount.h
Updated `zsh.mdh'.
echo 'timestamp for zsh.mdh against zsh.mdd' > zsh.mdhs
awk -f ../Src/makepro.awk builtin.c Src > builtin.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
builtin.syms) \
> builtin.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
builtin.syms) \
> `echo builtin.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk compat.c Src > compat.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
compat.syms) \
> compat.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
compat.syms) \
> `echo compat.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk cond.c Src > cond.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
cond.syms) \
> cond.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
cond.syms) \
> `echo cond.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk exec.c Src > exec.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
exec.syms) \
> exec.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
exec.syms) \
> `echo exec.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk glob.c Src > glob.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
glob.syms) \
> glob.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
glob.syms) \
> `echo glob.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk hashtable.c Src > hashtable.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
hashtable.syms) \
> hashtable.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
hashtable.syms) \
> `echo hashtable.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk hist.c Src > hist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
hist.syms) \
> hist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
hist.syms) \
> `echo hist.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk init.c Src > init.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
init.syms) \
> init.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
init.syms) \
> `echo init.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk input.c Src > input.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
input.syms) \
> input.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
input.syms) \
> `echo input.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk jobs.c Src > jobs.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
jobs.syms) \
> jobs.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
jobs.syms) \
> `echo jobs.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk lex.c Src > lex.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
lex.syms) \
> lex.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
lex.syms) \
> `echo lex.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk linklist.c Src > linklist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
linklist.syms) \
> linklist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
linklist.syms) \
> `echo linklist.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk loop.c Src > loop.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
loop.syms) \
> loop.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
loop.syms) \
> `echo loop.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk math.c Src > math.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
math.syms) \
> math.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
math.syms) \
> `echo math.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk mem.c Src > mem.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
mem.syms) \
> mem.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
mem.syms) \
> `echo mem.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk module.c Src > module.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
module.syms) \
> module.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
module.syms) \
> `echo module.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk options.c Src > options.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
options.syms) \
> options.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
options.syms) \
> `echo options.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk params.c Src > params.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
params.syms) \
> params.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
params.syms) \
> `echo params.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk parse.c Src > parse.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
parse.syms) \
> parse.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
parse.syms) \
> `echo parse.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk pattern.c Src > pattern.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
pattern.syms) \
> pattern.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
pattern.syms) \
> `echo pattern.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk prompt.c Src > prompt.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
prompt.syms) \
> prompt.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
prompt.syms) \
> `echo prompt.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk signals.c Src > signals.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
signals.syms) \
> signals.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
signals.syms) \
> `echo signals.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk signames.c Src > signames.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
signames.syms) \
> signames.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
signames.syms) \
> `echo signames.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk string.c Src > string.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
string.syms) \
> string.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
string.syms) \
> `echo string.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk subst.c Src > subst.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
subst.syms) \
> subst.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
subst.syms) \
> `echo subst.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk text.c Src > text.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
text.syms) \
> text.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
text.syms) \
> `echo text.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk utils.c Src > utils.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
utils.syms) \
> utils.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
utils.syms) \
> `echo utils.epro | sed 's/\.epro$/.pro/'`
awk -f ../Src/makepro.awk watch.c Src > watch.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
watch.syms) \
> watch.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
watch.syms) \
> `echo watch.epro | sed 's/\.epro$/.pro/'`
Updated `zsh.mdh'.
Updated `rlimits.mdh'.
echo 'timestamp for rlimits.mdh against rlimits.mdd' > rlimits.mdhs
awk -f ../../Src/makepro.awk rlimits.c Src/Builtins > rlimits.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
rlimits.syms) \
> rlimits.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
rlimits.syms) \
> `echo rlimits.epro | sed 's/\.epro$/.pro/'`
Updated `rlimits.mdh'.
Updated `sched.mdh'.
echo 'timestamp for sched.mdh against sched.mdd' > sched.mdhs
awk -f ../../Src/makepro.awk sched.c Src/Builtins > sched.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
sched.syms) \
> sched.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
sched.syms) \
> `echo sched.epro | sed 's/\.epro$/.pro/'`
Updated `sched.mdh'.
Updated `parameter.mdh'.
echo 'timestamp for parameter.mdh against parameter.mdd' > parameter.mdhs
awk -f ../../Src/makepro.awk parameter.c Src/Modules > parameter.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
parameter.syms) \
> parameter.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
parameter.syms) \
> `echo parameter.epro | sed 's/\.epro$/.pro/'`
Updated `parameter.mdh'.
Updated `termcap.mdh'.
echo 'timestamp for termcap.mdh against termcap.mdd' > termcap.mdhs
awk -f ../../Src/makepro.awk termcap.c Src/Modules > termcap.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
termcap.syms) \
> termcap.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
termcap.syms) \
> `echo termcap.epro | sed 's/\.epro$/.pro/'`
Updated `termcap.mdh'.
Updated `terminfo.mdh'.
echo 'timestamp for terminfo.mdh against terminfo.mdd' > terminfo.mdhs
awk -f ../../Src/makepro.awk terminfo.c Src/Modules > terminfo.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
terminfo.syms) \
> terminfo.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
terminfo.syms) \
> `echo terminfo.epro | sed 's/\.epro$/.pro/'`
Updated `terminfo.mdh'.
( \
echo '/** thingies.list **/'; \
echo '/** thingy structures for the known thingies **/'; \
echo; \
echo '/* format: T("name", TH_FLAGS, w_widget, t_nextthingy) */'; \
echo; \
sed -e 's/#.*//; /^$/d; s/" *,.*/"/' \
-e 's/^"/T("/; s/$/, 0,/; h' \
-e 's/-//g; s/^.*"\(.*\)".*/w_\1, t_D\1)/' \
-e 'H; g; s/\n/ /' \
< ./iwidgets.list; \
sed -e 's/#.*//; /^$/d; s/" *,.*/"/' \
-e 's/^"/T("./; s/$/, TH_IMMORTAL,/; h' \
-e 's/-//g; s/^.*"\.\(.*\)".*/w_\1, t_\1)/' \
-e 'H; g; s/\n/ /' \
< ./iwidgets.list; \
) > thingies.list
( \
echo '/** zle_things.h **/'; \
echo '/** indices of and pointers to known thingies **/'; \
echo; \
echo 'enum {'; \
sed -n -f ./zle_things.sed < thingies.list; \
echo ' ZLE_BUILTIN_THINGY_COUNT'; \
echo '};'; \
) > zle_things.h
Updated `zle.mdh'.
echo 'timestamp for zle.mdh against zle.mdd' > zle.mdhs
awk -f ../../Src/makepro.awk zle_bindings.c Src/Zle > zle_bindings.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_bindings.syms) \
> zle_bindings.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_bindings.syms) \
> `echo zle_bindings.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_hist.c Src/Zle > zle_hist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_hist.syms) \
> zle_hist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_hist.syms) \
> `echo zle_hist.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_keymap.c Src/Zle > zle_keymap.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_keymap.syms) \
> zle_keymap.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_keymap.syms) \
> `echo zle_keymap.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_main.c Src/Zle > zle_main.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_main.syms) \
> zle_main.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_main.syms) \
> `echo zle_main.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_misc.c Src/Zle > zle_misc.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_misc.syms) \
> zle_misc.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_misc.syms) \
> `echo zle_misc.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_move.c Src/Zle > zle_move.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_move.syms) \
> zle_move.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_move.syms) \
> `echo zle_move.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_params.c Src/Zle > zle_params.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_params.syms) \
> zle_params.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_params.syms) \
> `echo zle_params.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_refresh.c Src/Zle > zle_refresh.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_refresh.syms) \
> zle_refresh.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_refresh.syms) \
> `echo zle_refresh.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_thingy.c Src/Zle > zle_thingy.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_thingy.syms) \
> zle_thingy.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_thingy.syms) \
> `echo zle_thingy.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_tricky.c Src/Zle > zle_tricky.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_tricky.syms) \
> zle_tricky.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_tricky.syms) \
> `echo zle_tricky.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_utils.c Src/Zle > zle_utils.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_utils.syms) \
> zle_utils.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_utils.syms) \
> `echo zle_utils.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_vi.c Src/Zle > zle_vi.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_vi.syms) \
> zle_vi.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_vi.syms) \
> `echo zle_vi.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk zle_word.c Src/Zle > zle_word.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zle_word.syms) \
> zle_word.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zle_word.syms) \
> `echo zle_word.epro | sed 's/\.epro$/.pro/'`
Updated `zle.mdh'.
Updated `complete.mdh'.
echo 'timestamp for complete.mdh against complete.mdd' > complete.mdhs
awk -f ../../Src/makepro.awk complete.c Src/Zle > complete.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
complete.syms) \
> complete.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
complete.syms) \
> `echo complete.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk compcore.c Src/Zle > compcore.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
compcore.syms) \
> compcore.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
compcore.syms) \
> `echo compcore.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk compmatch.c Src/Zle > compmatch.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
compmatch.syms) \
> compmatch.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
compmatch.syms) \
> `echo compmatch.epro | sed 's/\.epro$/.pro/'`
awk -f ../../Src/makepro.awk compresult.c Src/Zle > compresult.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
compresult.syms) \
> compresult.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
compresult.syms) \
> `echo compresult.epro | sed 's/\.epro$/.pro/'`
Updated `complete.mdh'.
Updated `zutil.mdh'.
echo 'timestamp for zutil.mdh against zutil.mdd' > zutil.mdhs
awk -f ../../Src/makepro.awk zutil.c Src/Modules > zutil.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zutil.syms) \
> zutil.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zutil.syms) \
> `echo zutil.epro | sed 's/\.epro$/.pro/'`
Updated `zutil.mdh'.
Updated `compctl.mdh'.
echo 'timestamp for compctl.mdh against compctl.mdd' > compctl.mdhs
awk -f ../../Src/makepro.awk compctl.c Src/Zle > compctl.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
compctl.syms) \
> compctl.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
compctl.syms) \
> `echo compctl.epro | sed 's/\.epro$/.pro/'`
Updated `compctl.mdh'.
Updated `complist.mdh'.
echo 'timestamp for complist.mdh against complist.mdd' > complist.mdhs
awk -f ../../Src/makepro.awk complist.c Src/Zle > complist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
complist.syms) \
> complist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
complist.syms) \
> `echo complist.epro | sed 's/\.epro$/.pro/'`
Updated `complist.mdh'.
Updated `computil.mdh'.
echo 'timestamp for computil.mdh against computil.mdd' > computil.mdhs
awk -f ../../Src/makepro.awk computil.c Src/Zle > computil.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
computil.syms) \
> computil.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
computil.syms) \
> `echo computil.epro | sed 's/\.epro$/.pro/'`
Updated `computil.mdh'.
Updated `zleparameter.mdh'.
echo 'timestamp for zleparameter.mdh against zleparameter.mdd' >
zleparameter.mdhs
awk -f ../../Src/makepro.awk zleparameter.c Src/Zle > zleparameter.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
zleparameter.syms) \
> zleparameter.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
zleparameter.syms) \
> `echo zleparameter.epro | sed 's/\.epro$/.pro/'`
Updated `zleparameter.mdh'.
rm -f stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o builtin.o builtin.c
builtin.c: In function `bin_print':
builtin.c:2899: warning: `save' might be used uninitialized in this
function
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o compat.o compat.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o cond.o cond.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o exec.o exec.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o glob.o glob.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o hashtable.o hashtable.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o hist.o hist.c
srcdir='.' CFMOD='../config.modules' \
/bin/sh ./mkbltnmlst.sh bltinmods.list
Updated `zshpaths.h'.
Creating `zshxmods.h'.
echo '#define ZSH_VERSION "'4.1.0-dev-2'"' > version.h
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o init.o init.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o input.o input.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o jobs.o jobs.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o lex.o lex.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o linklist.o linklist.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o loop.o loop.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o math.o math.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o mem.o mem.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o module.o module.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o options.o options.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o params.o params.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o parse.o parse.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o pattern.o pattern.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o prompt.o prompt.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o signals.o signals.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o signames.o signames.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o string.o string.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o subst.o subst.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o text.o text.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o utils.o utils.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o watch.o watch.c
echo '' builtin.o compat.o cond.o exec.o glob.o hashtable.o hist.o
init.o input.o jobs.o lex.o linklist.o loop.o math.o mem.o module.o
options.o params.o parse.o pattern.o prompt.o signals.o signames.o
string.o subst.o text.o utils.o watch.o >> ../Src/stamp-modobjs.tmp
awk -f ./rlimits.awk /usr/include/sys/resource.h /dev/null > rlimits.h
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o rlimits.o rlimits.c
echo '' rlimits.o | sed 's" " Builtins/"g' >> ../../Src/stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o sched.o sched.c
echo '' sched.o | sed 's" " Builtins/"g' >> ../../Src/stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o parameter.o parameter.c
echo '' parameter.o | sed 's" " Modules/"g' >> ../../Src/stamp-
modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o termcap.o termcap.c
echo '' termcap.o | sed 's" " Modules/"g' >> ../../Src/stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o terminfo.o terminfo.c
echo '' terminfo.o | sed 's" " Modules/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: `complete.mdh' is up to date.
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zutil.o zutil.c
echo '' zutil.o | sed 's" " Modules/"g' >> ../../Src/stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o compctl.o compctl.c
echo '' compctl.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o complete.o complete.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o compcore.o compcore.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o compmatch.o compmatch.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o compresult.o compresult.c
echo '' complete.o compcore.o compmatch.o compresult.o | sed 's" "
Zle/"g' >> ../../Src/stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o complist.o complist.c
echo '' complist.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o computil.o computil.c
echo '' computil.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
( \
echo '/** widgets.list **/'; \
echo '/** widget structures for the internal widgets **/'; \
echo; \
echo '/* format: W(ZLE_FLAGS, t_firstname, functionname) */'; \
echo; \
sed -e 's/#.*//; /^$/d; s/-//g' \
-e 's/^"\(.*\)" *, *\([^ ]*\) *, *\(.*\)/W(\3, t_\1, \2)/' \
< ./iwidgets.list; \
) > widgets.list
( \
echo '/** zle_widget.h **/'; \
echo '/** indices of and pointers to internal widgets **/'; \
echo; \
echo 'enum {'; \
sed -n -f ./zle_widget.sed < widgets.list; \
echo ' ZLE_BUILTIN_WIDGET_COUNT'; \
echo '};'; \
) > zle_widget.h
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_bindings.o zle_bindings.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_hist.o zle_hist.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_keymap.o zle_keymap.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_main.o zle_main.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_misc.o zle_misc.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_move.o zle_move.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_params.o zle_params.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_refresh.o zle_refresh.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_thingy.o zle_thingy.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_tricky.o zle_tricky.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_utils.o zle_utils.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_vi.o zle_vi.c
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zle_word.o zle_word.c
echo '' zle_bindings.o zle_hist.o zle_keymap.o zle_main.o zle_misc.o
zle_move.o zle_params.o zle_refresh.o zle_thingy.o zle_tricky.o
zle_utils.o zle_vi.o zle_word.o | sed 's" " Zle/"g' >>
../../Src/stamp-modobjs.tmp
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o zleparameter.o zleparameter.c
echo '' zleparameter.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
Updated `stamp-modobjs'.
awk -f ../Src/makepro.awk main.c Src > main.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' <
main.syms) \
> main.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' <
main.syms) \
> `echo main.epro | sed 's/\.epro$/.pro/'`
cc -c -I. -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2
-o main.o ./main.c
( echo '#!'; cat builtin.syms compat.syms cond.syms exec.syms glob.syms
hashtable.syms hist.syms init.syms input.syms jobs.syms lex.syms
linklist.syms loop.syms math.syms mem.syms module.syms options.syms
params.syms parse.syms pattern.syms prompt.syms signals.syms
signames.syms string.syms subst.syms text.syms utils.syms watch.syms |
sed -n '/^X/{s/^X//;p;}' | sort -u ) > zsh.export
rm -f zsh
cc -Wl,-x -o zsh main.o `cat stamp-modobjs` -lm -lc
( \
echo 'STARTDEF()'; \
echo 'def(version)(0)('4.1.0-dev-2')'; \
echo 'def(date)(0)(''September 27, 2001'')'; \
echo 'ENDDEF()#' | tr '#' '\\'; \
) > ./version.yo
case zsh.1 in \
*/*) target=zsh.1 ;; \
*) target=./zsh.1 ;; \
esac; \
case ': yodl' in :*) ;; *) \
: yodl -I. -w zman.yo version.yo zsh.yo | sed -e '1s/\\-/-/g' -e
'/^\.'\''/d' > $target \
;; esac; \
test -f $target
make[1]: *** [zsh.1] Error 1
make: *** [all] Error 1
[localhost:~/source/zsh-4.1-20011022] tachys%
^ permalink raw reply [relevance 1%]
* Mac OS X /bin/sh was zsh, to be replaced with bash
@ 2001-10-25 17:20 4% Jos Backus
2001-10-25 17:40 0% ` Peter Stephenson
2001-10-25 18:09 3% ` Oliver Kiddle
0 siblings, 2 replies; 200+ results
From: Jos Backus @ 2001-10-25 17:20 UTC (permalink / raw)
To: zsh-workers
Yesterday I attended the local Bay Area Next user group meeting at Apple in
Cupertino, at which an Apple employee (sorry, can't remember his name right
now) mentioned that there are plans to replace /bin/sh, currently zsh
3.0.something, with bash. The primary reason he stated was zsh's lack of POSIX
conformance that they kept having problems with. Unfortunately he did/could
not go into any detail. He also said that as far as he knew no attempt had
been made to contact the zsh maintainers about this.
Now I could ask Jordan Hubbard at Apple if he would be willing to refer me to
somebody to talk to about this issue, and ask this person what exactly these
POSIX compatibility issues are they are having problems with. Maybe these
issues can be addressed; they will never be fixed unless the developers are
aware of them.
Comments?
--
Jos Backus _/ _/_/_/ Santa Clara, CA
_/ _/ _/
_/ _/_/_/
_/ _/ _/ _/
josb@cncdsl.com _/_/ _/_/_/ use Std::Disclaimer;
^ permalink raw reply [relevance 4%]
* Re: Mac OS X /bin/sh was zsh, to be replaced with bash
2001-10-25 17:20 4% Mac OS X /bin/sh was zsh, to be replaced with bash Jos Backus
@ 2001-10-25 17:40 0% ` Peter Stephenson
2001-10-25 18:09 3% ` Oliver Kiddle
1 sibling, 0 replies; 200+ results
From: Peter Stephenson @ 2001-10-25 17:40 UTC (permalink / raw)
To: Zsh hackers list
Jos Backus wrote:
> Now I could ask Jordan Hubbard at Apple if he would be willing to refer me to
> somebody to talk to about this issue, and ask this person what exactly these
> POSIX compatibility issues are they are having problems with. Maybe these
> issues can be addressed; they will never be fixed unless the developers are
> aware of them.
>
> Comments?
We'd certainly be interested in getting more details.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 0%]
* Re: Mac OS X /bin/sh was zsh, to be replaced with bash
2001-10-25 17:20 4% Mac OS X /bin/sh was zsh, to be replaced with bash Jos Backus
2001-10-25 17:40 0% ` Peter Stephenson
@ 2001-10-25 18:09 3% ` Oliver Kiddle
1 sibling, 1 reply; 200+ results
From: Oliver Kiddle @ 2001-10-25 18:09 UTC (permalink / raw)
To: Jos Backus; +Cc: zsh-workers
Jos Backus wrote:
>
> Yesterday I attended the local Bay Area Next user group meeting at Apple in
> Cupertino, at which an Apple employee (sorry, can't remember his name right
> now) mentioned that there are plans to replace /bin/sh, currently zsh
> 3.0.something, with bash. The primary reason he stated was zsh's lack of POSIX
> conformance that they kept having problems with. Unfortunately he did/could
> not go into any detail. He also said that as far as he knew no attempt had
> been made to contact the zsh maintainers about this.
This would be a pity. I thought it had never been bash because they were
concerned that the shell was too fundamental a part of the OS and hence
they might be violating the GPL.
I did recently look through the Darwin bug archives for anything zsh
related and found one real issue which as far as I could tell has been
fixed since 3.0. I have a suspicion that there are some misinformed
people who think bash is more compliant than zsh (which it isn't
particularly). David Korn's slashdot article a while back mentioned that
using zsh as /bin/sh would be dangerous. I think this was said to be
because of some of zsh's differences such as the word splitting despite
the fact that zsh would correctly emulate this if installed as /bin/sh.
This was mentioned on the darwin-development mailing list several months
ago - I saw it when looking through the archives.
The only areas where I know zsh not to be POSIX compliant is the lack of
export's -p option and the arguments to the command command and a couple
of minor things like that. These could probably be added very easily and
quickly.
> Now I could ask Jordan Hubbard at Apple if he would be willing to refer me to
> somebody to talk to about this issue, and ask this person what exactly these
> POSIX compatibility issues are they are having problems with. Maybe these
> issues can be addressed; they will never be fixed unless the developers are
> aware of them.
It would definitely be a good idea to try to establish some form of
dialogue with Apple on this. I can think of arguments against bash from
a number of perspectives - technical, licencing and otherwise. No
disrespect to their many positive achievements but the FSF have a
reputation for trying to hold too tight a grip on official GNU software
making it in some respects less open. If we can find out exactly where
they have had issues with zsh we could address those issues directly.
If you manage to make contact with apple, please keep us informed.
Oliver
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 3%]
* Re: Mac OS X /bin/sh was zsh, to be replaced with bash
@ 2001-10-25 19:00 4% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2001-10-25 19:00 UTC (permalink / raw)
To: Jos Backus; +Cc: zsh-workers
Jos Backus wrote:
>
> On Thu, Oct 25, 2001 at 07:09:39PM +0100, Oliver Kiddle wrote:
> > If you manage to make contact with apple, please keep us informed.
>
> You make some good points there.
If you're giving points to folk at Apple then I can suggest plenty more,
including:
The loadable modules in zsh 4.x make zsh much smaller and more
efficient as a non-interactive shell which is the typical use
of /bin/sh.
With the future POSIX standard we have been discussing with
David Korn (ksh author) and Chet Ramey (bash author), zsh will
likely be a long way ahead of bash. Not that anything is
going to happen with that anytime soon.
bash's GPL licence would leave Apple with less flexibility.
They might for example want to write a shell module for GUI
interaction. With bash, it'd have to be contributed back as GPL
code. With zsh, it could be APSL, closed source, zsh licence or
any other licence. I might discourage the closed approach but
from Apple's perspective they'd be keeping their options open.
The explicit emulate command in zsh actually allows zsh to go
much further than bash in emulating POSIX. Extra reserved words
can be disabled etc. The only way that bash is more compatible
is that it adds fewer additional features.
The only argument in favour of bash is that more people are familiar
with it from Linux but then bash is largely a subset of zsh anyway.
And, I expect that ksh93 would require them to pay a lot of money to
AT&T.
> I just sent an e-mail to Jordan, I'll let you know when I hear from him.
Thanks. If we don't hear anything we should try other channels. It
would be a pity if they adopted bash. I've been very impressed with
much of what Apple has done with Mac OS X. Two years ago, if someone
had suggested I buy a Mac, I'd have made facetious remarks about one
button mice. Today I'd be extremely tempted.
Oliver
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
^ permalink raw reply [relevance 4%]
* 4.1.0-dev-3
@ 2001-11-15 19:10 1% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2001-11-15 19:10 UTC (permalink / raw)
To: Zsh hackers list
I've uploaded ftp://ftp.zsh.org/pub/development/zsh-4.1.0-dev-3.tar.gz and
.bz2. Here's the list of changes.
2001-11-15 Peter Stephenson <pws@csr.com>
* unposted: Config/version.mk, Etc/.distfiles, Util/.distfiles,
Completion/Mandrake/.distfiles,
Completion/Mandrake/Command/.distfiles: version 4.1.0-dev-3 plus
associated tidying of distribution.
* 16255: Function/Misc/zcalc: allow -#base or -## base to
specify default output base.
* 16254: Completion/Unix/Command/_yp: allow completion of map
names after ypmatch.
2001-11-15 Chmouel Boudjnah <chmouel@mandrakesoft.com>
* 16253: Src/Zle/complete.mdd: Add Mandrake completion directory to
install.
2001-11-15 Peter Stephenson <pws@csr.com>
* 16241: zshconfig.ac, Src/Modules/mathfunc.c,
Doc/Zsh/mod_mathfunc.yo: new rand48(param) math function calls
erand48(3), storing seed as hex string in $param.
2001-11-14 Andrej Borsenkow <bor@zsh.org>
* 16247: Completion/Mandrake/Command/_urpmi: completion
for Mandrake urpmi command suit.
2001-11-09 Oliver Kiddle <opk@zsh.org>
* 16228: Src/builtin.c, Doc/Zsh/builtins.yo: allow widths
and precisions to work with printf's %b format specifier
2001-11-06 Oliver Kiddle <opk@zsh.org>
* unposted: Functions/Misc/mere: fix for IRIX
* 16224: Src/jobs.c, Doc/Zsh/builtins.yo,
Completion/Unix/Type/_signals, Completion/Zsh/Command/_kill,
Completion/Zsh/Command/_jobs_builtin: add -n option to kill
builtin and use _arguments in _kill to complete options
2001-11-03 Bart Schaefer <schaefer@zsh.org>
* 16215: Src/subst.c: save and restore mult_isarr in singsub()
in case of nested substitution via getoutput().
* 16201: Src/params.c, Src/utils.c, Src/zsh.h: introduce the
PM_NAMEDDIR flag to mark parameters for which a value change
should be reflected in the named directory table.
* 16158: Src/utils.c: interpret TAB as "yes" only in spckword(),
not in getquery() which is also used by other callers.
* 16094: Src/compat.c: zopenmax() shouldn't return the true limit
on the number of descriptors, as that might be a very large number
and we really only care about the highest-numbered descriptor that
is already open.
2001-11-02 Oliver Kiddle <opk@zsh.org>
* unposted: Functions/Prompts/prompt_oliver_setup,
Doc/Zsh/prompt.yo: documentation and example for 16198
* 16198: Src/prompt.c: add %j prompt expansion and j test
character for putting the number of jobs in the prompt
* 16177: Completion/Unix/Type/_time_zone: also look in
/usr/lib/locale/TZ for time zones
2001-11-01 Bart Schaefer <schaefer@zsh.org>
* 16197: Completion/Zsh/Command/.distfiles,
Completion/Zsh/Command/_limit, Completion/Zsh/Type/_limits,
Src/Builtins/rlimits.c: `limit' accepts `unlimited' as a value.
2001-10-26 Wayne Davison <wayned@users.sourceforge.net>
* 16184: Src/hist.c: Improved readhistline() to reject binary data
better.
2001-10-26 Peter Stephenson <pws@csr.com>
* 16176: Src/Modules/tcp.c, Src/Modules/zftp.c: after fdclose(),
TCP control fd is no longer valid, but we still need to remove
the session cleanly.
2001-10-26 Oliver Kiddle <opk@zsh.org>
* 16174: Completion/Unix/Command/_zdump,
Completion/Unix/Type/_time_zone, Completion/Zsh/Context/_value,
Completion/Unix/Type/.distfiles: complete value of $TZ
2001-10-26 Peter Stephenson <pws@csr.com>
* 16172: Src/Modules/tcp.c, Src/Modules/zftp.c: rename
freehostent() to zfreehostent() to avoid clash with Solaris libnsl.
* 16171: Doc/Zsh/zftpsys.yo: minor changes of phrasing.
* 15793: Src/Modules/zftp.c: require zsh/net/tcp explicitly from
setup_ function for zftp.
2001-10-25 Peter Stephenson <pws@csr.com>
* 16145: Src/Builtins/rlimits.c: try to handle both RLIMITS_VMEM
and RLIMITS_RSS, even if they are the same value (c.f. 16033).
2001-10-24 Peter Stephenson <pws@csr.com>
* 16130: Doc/.cvsignore, Doc/Zsh/manual.yo: Fix for texi2html
1.64.
2001-10-24 Geoff Wing <gcw@zsh.org>
* 16063: Src/zsh.h, Src/options.c, Src/Zle/zle_main.c,
Src/Zle/zle_refresh.c, Doc/Zsh/options.yo: add transientrprompt
option to remove right prompt from display when accepting commands
2001-10-23 Bart Schaefer <schaefer@zsh.org>
* 16124: Src/loop.c: Fix infinite loop on `case' with xtrace
(bug introduced by 16041).
2001-10-23 Oliver Kiddle <opk@zsh.org>
* 16122: Src/builtin.c, Test/B03print.ztst: only count value
returned by %n in printf since last format reuse
2001-10-22 Peter Stephenson <pws@csr.com>
* 16033: Pavel Roskin <proski@gnu.org>:
Src/Builtins/rlimits.c: Undefine RLIMIT_RSS if it's equal to
RLIMIT_VMEM to avoid duplicate case value.
aczsh.m4 (zsh_LARGE_FILE_SUPPORT): Ignore output of getconf
if it returns "undefined".
2001-10-22 Bart Schaefer <schaefer@zsh.org>
* 16111: Src/Builtins/rlimits.c: Report error on attempt to set
limit to a string that is not a decimal number.
2001-10-22 Adam Spiers <adam@spiers.net>
* 16092: Completion/Unix/Command/_mysql_utils: don't override
settings in ~/.my.cnf
2001-10-20 Bart Schaefer <schaefer@zsh.org>
* Adapted from Stefan Dalibor, 16043: Src/utils.c: checkrmall()
must not print to shout when shout's not valid.
2001-10-19 Sven Wischnowsky <wischnow@zsh.org>
* 16085: Completion/Base/Utility/_describe,
Completion/Zsh/Context/_condition,
Completion/Zsh/Type/_file_descriptors: fix: make _describe
handle (...) arguments correctly; use _file_descriptors after
-t in conditions; don't display empty descriptions in
_file_descriptors
2001-10-18 Oliver Kiddle <opk@zsh.org>
* 16080: Src/builtin.c, Doc/Zsh/builtins.yo, Test/B03print.ztst:
allow arguments to be specified in printf format specifications
2001-10-17 Clint Adams <clint@zsh.org>
* 16078: Completion/Unix/Command/_zip:
add -r, change description for -R.
2001-10-17 Sven Wischnowsky <wischnow@zsh.org>
* 16076: Completion/Unix/Type/_path_files: don't use
_comp_ignore while building paths, only at end
2001-10-16 Peter Stephenson <pws@csr.com>
* 16065: Doc/Zsh/metafaq.yo: sourceforge.
2001-10-16 Oliver Kiddle <opk@zsh.org>
* 16064: Src/builtin.c, Src/utils.c, Test/B03print.ztst:
fix return code of printf after math errors, incomplete comment
in utils.c and tests of printf now that math evaluation is used
2001-10-16 Clint Adams <clint@zsh.org>
* 16062: Src/Modules/zftp.c: use O_EXCL
when opening a temporary file.
2001-10-15 Wayne Davison <wayned@users.sourceforge.net>
* 16059: Src/hist.c: Fix HIST_NO_SPACE when
INTERACTIVE_COMMENTS is set and we get a comment.
2001-10-15 Oliver Kiddle <opk@zsh.org>
* 16042: Src/builtin.c, Doc/Zsh/builtins.yo: use arithmetic
evaluation for numeric arguments to printf
2001-10-15 Sven Wischnowsky <wischnow@zsh.org>
* Bart: 16038 and 16041: Src/cond.c, Src/loop.c: for caching of
compiled patterns: remember that singsub() might modify the string
it gets, compare with unmodified string
2001-10-14 Bart Schaefer <schaefer@zsh.org>
* 16031: Src/Modules/tcp.c: Don't need <arpa/telnet.h>; misc.
inconsequential reformatting.
* 16030: Completion/Unix/Command/_mount: Fix minor typos in option
descriptions.
2001-10-11 Bart Schaefer <schaefer@zsh.org>
* 16013: Src/exec.c: Properly save/restore state around the
DEBUG trap, so that its return value does not alter the return
value of current command (among other things).
2001-10-11 Sven Wischnowsky <wischnow@zsh.org>
* 16002: Completion/Unix/Type/_path_files: use expanded paths
(expand style with value prefix) only when we are at the last
matcher spec
2001-10-10 Clint Adams <clint@zsh.org>
* 16006: Completion/Unix/Type/_mailboxes, Doc/Zsh/compsys.yo:
use styles for mail directory, pine directory,
and muttrc.
* 16005: Completion/Unix/Command/_mount:
check /etc/filesystems under Linux.
2001-10-10 Oliver Kiddle <opk@zsh.org>
* 16018: acconfig.h, zshconfig.ac, Etc/MACHINES,
Test/C02cond.ztst: allow dynamic loading to work on MacOS X
if the dlcompat library is installed.
2001-10-10 Clint Adams <clint@zsh.org>
* 16000: Completion/Debian/Command/.distfiles,
Completion/Debian/Command/_debchange:
completion for debchange (dch).
2001-10-09 Sven Wischnowsky <wischnow@zsh.org>
* 15995: Completion/Unix/Type/_files, Doc/Zsh/compsys.yo:
change file completion default to offer globbed files and
directories on first try
2001-10-09 Peter Stephenson <pws@csr.com>
* 15994: Completion/compinstall: handle list-suffixes; make
prompts at end of function more transparent.
2001-10-09 Sven Wischnowsky <wischnow@zsh.org>
* 15991: Src/Zle/compcore.c: hide all but one match with the
same string in the list even for unsorted groups
2001-10-08 Oliver Kiddle <opk@zsh.org>
* 15987: Src/Modules/tcp.c: remove includes duplicated from tcp.h
which caused problems on IRIX 5.3.
* 15983: Completion/Unix/Command/_wget, Completion/Unix/Type/_urls,
Completion/Unix/Command/_user_admin, Completion/Unix/Command/_sysctl,
Completion/Unix/Command/_webbrowser: update for wget 1.7, darwin
support in _sysctl, complete files for galeon
2001-10-08 Peter Stephenson <pws@csr.com>
* 15980: Functions/Misc/zcalc: '[#16] 2000' ignored the base.
* 15721: LICENCE: wording change from ages ago.
2001-10-08 Oliver Kiddle <opk@zsh.org>
* 15973: Completion/Zsh/Command/_print, Doc/Zsh/builtins.yo,
Src/builtin.c, Src/hashtable.h, Test/.distfiles, Test/B03print.ztst:
merge bin_printf and bin_print to allow print -f option and add
%n format specifier and tests
2001-10-08 Peter Stephenson <pws@csr.com>
* 15965: Src/exec.c, Src/glob.c, Src/subst.c: rename glob() to
zglob() to avoid clashes with library function.
* 15931: Src/builtin.c, Src/exec.c: make EXIT traps work in
subshells the way they used to before 15844: react to explicit
`exit' but not falling off end of list.
2001-10-08 Andrej Borsenkow <bor@zsh.org>
* 15964: Src/Modules/tcp.c: use SOCKLEN_T
2001-10-06 Clint Adams <clint@zsh.org>
* Norbert Koch: 15954: Doc/Zsh/arith.yo:
fix inconsistency of variable name in example.
2001-10-05 Peter Stephenson <pws@csr.com>
* 15949: Completion/compinstall: add handling for expand style.
2001-10-05 Oliver Kiddle <opk@zsh.org>
* 15851, 15948: Src/builtin.c, Doc/Zsh/builtins.yo: add printf
builtin with basic POSIX functionality
2001-10-05 Sven Wischnowsky <wischnow@zsh.org>
* 15946: Src/Zle/compresult.c: fix calculation of number of
columns needed with list_packed
* 15945: Completion/Zsh/Command/_cd: make _cd use only one call
to _alternative, including completions from _tilde (using the
named-directories tag)
* 15944: Completion/Unix/Type/_path_files, Doc/Zsh/compsys.yo:
make expand style (file completion) work again; no more special
behaviour with menu completion; try to make docs clearer
2001-10-05 Geoff Wing <gcw@zsh.org>
* unposted: Doc/Zsh/options.yo: typo
2001-10-05 Clint Adams <clint@zsh.org>
* 15941: Completion/Unix/Command/_mount:
complete reiserfs mount options.
* 15940: Completion/Unix/Command/_mount:
complete -o utf8 for mount -t vfat.
* 15939: Completion/Unix/Command/_mount:
complete xfs mount options (for Linux).
* 15938: Completion/Unix/Command/_mount:
complete ext3 mount options.
2001-10-02 Clint Adams <clint@zsh.org>
* 15919: Src/linklist.c, Src/Modules/tcp.c, Src/Modules/tcp.h:
use LinkLists in tcp module rather than somewhat equivalent code.
2001-10-01 Peter Stephenson <pws@csr.com>
* 15917: Test/C03traps.ztst: test for EXIT trap fix in 15844.
2001-09-30 Clint Adams <clint@zsh.org>
* 15915: Completion/Debian/Command/_bts:
completion for bts script in devscripts.
2001-09-28 Bart Schaefer <schaefer@zsh.org>
* 15895: Src/Modules/zftp.c: Control-connection management sanity
in conjunction with the new zsh/net/tcp module.
* 15889: Test/V01zmodload.ztst: Compute module dependencies for
external modules so that they can be unloaded in the right order.
2001-09-27 Oliver Kiddle <opk@zsh.org>
* 15882: zshconfig.ac, Etc/MACHINES, Test/C02cond.ztst: fix
build and test problems on MacOS X (Darwin).
2001-09-27 Clint Adams <clint@zsh.org>
* 15886: Src/Modules/tcp.c: use select if poll
is not available, or complain if neither are
available.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 1%]
* Re: PATCH: += parameter assignments
@ 2002-01-16 14:43 3% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2002-01-16 14:43 UTC (permalink / raw)
To: Bart Schaefer, zsh-workers
Bart wrote:
> } > About the closest thing I can come up with is that all
assignments
> } > in (( )) should force the parameter type to change to numeric
> } > (integer or float), but that has its own set of potential
gotchas.
> }
> } This would seem sensible to me but is it too late to be changing
> that?
> } If you think it is an option then can you elaborate on the
"gotchas"?
>
> You pointed one of them out yourself:
>
> ((s+=5))
> s=foo
>
> produces s=0, which could be surprising if `s' was previously a
scalar.
Yes, unless assignments outside (( )) were always scalar as I think
they should be.
> I'd actually forgotten about that effect of assignment to integers.
Having remembered it, would you now agree that the current += behaviour
of doing arithmetic for numerics is at least consistent with normal
assignments?
> } > Better might be if += outside of (( )) always converted numerics
> } > to strings and then did an append.
> }
> } This is perhaps worth considering. I did actually consider it at
the
> } time but didn't do it because of ksh compatibility. To be
consistent
> } with assignments inside (( )), it would have the convert the result
> of
> } the appending back to a numeric type afterwards (which would limit
> the
> } usefulness of it).
>
> It'd also be impossible; following
>
> integer s=5
> s+=four
>
> how would one convert `5four' back to an integer? If the type
> were going to change to scalar, that change would have to stick.
Convert it back to an integer with math evaluation resulting (for
this example) in a bad math expression error. It wouldn't be much use
and would allow some really nasty tricks to be done. My point being
that assignments inside (( )) converting results back to a scalar is
not a good idea in my opinion.
> } But you can't look at s=foo and know what it is going to do because
> if
> } s is an integer, you end up with s being 0 (or whatever foo
> } arithmetically evaluates to). I think it would be better if this
was
> a
> } scalar assignment but it isn't.
>
> I agree that would be better. A function that wants to create `s' as
a
> global scalar probably *doesn't* have a `typeset -g s=' in it. If
`s'
> already exists as an integer, strange things are going to happen.
That's bad!
Basically, I can't see a solution that only involves changes to +=
without either leaving inconsistencies with normal assignments or worse
problems.
In summary, I think the ideal would be to make all assignments depend
on context only. So:
((a=5)) would always result in a being of integer type and
a=5 would always result in a being of scalar type
Any scalars used in integer context would still have to be converted to
be numeric first and vice versa. Using typeset to declare a variable as
an integer would only be useful if initialising the variable.
The trouble with this is it would be a big incompatibility and of
minimal use interactively. An option maybe?
> That whole mailing list has been silent for a long time -- or at
least
True but the list probably still works. Unless I missed it, POSIX
doesn't have assignments in arithmetic context or numeric variables.
> I
> haven't received any messages from it. (In a related note, Austin
> Group
> just got their spec through another hurdle and are accepting errata.)
Have you looked at it recently? The last time I looked, there was very
little change to the shell spec, all the changes being in other areas.
> Really? I'd say truncation was the reverse of appending.
Well, at least sort of. Enough that with =+ not being an option, it
seemed like a reasonable idea. I couldn't see us ever wanting -= for
truncation as you can already use subscripts to do truncation (and %=
would be more likely). I quite often do things like `fpath=(~+ $fpath)'
so I thought it'd be useful (though I can use a subscript of [1,0]).
Oliver
__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com
^ permalink raw reply [relevance 3%]
* [tbm@cyrius.com: Bug#130817: zsh's echo doesn't error if device is full]
@ 2002-01-27 20:21 3% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2002-01-27 20:21 UTC (permalink / raw)
To: zsh-workers
I tried putting some error-checking in bin_print, but it didn't seem to
make much difference.
----- Forwarded message from Martin Michlmayr <tbm@cyrius.com> -----
zsh's echo should print an error when it fails because the device is
full.
1250:tbm@fisch: ~] /bin/echo foo > b
/bin/echo: write error: No space left on device
zsh: exit 1 /bin/echo foo > b
1251:tbm@fisch: ~] echo foo > b
-- System Information
Debian Release: 3.0
Architecture: i386
Kernel: Linux fisch 2.4.16 #6 Wed Dec 26 15:44:54 CET 2001 i686
Locale: LANG=en_US, LC_CTYPE=en_US
Versions of packages zsh depends on:
ii libc6 2.2.4-7 GNU C Library: Shared libraries an
ii libcap1 1:1.10-12 support for getting/setting POSIX.
ii libncurses5 5.2.20010318-3 Shared libraries for terminal hand
--
Martin Michlmayr
tbm@cyrius.com
----- End forwarded message -----
^ permalink raw reply [relevance 3%]
* [goswin.brederlow@student.uni-tuebingen.de: Bug#131063: zsh: read -r removes \ in \\]
@ 2002-01-27 20:24 3% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2002-01-27 20:24 UTC (permalink / raw)
To: zsh-workers
----- Forwarded message from Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de> -----
~% echo "\\"
\
~% echo "\\" | read -r i; echo "$i"
\
~% echo "\\\\\\\\"
\\
~% echo "\\\\\\\\" | read -r i; echo "$i"
\
The manpage says read -r does not remove \.
Also echo removes \:
~% echo "\\\\"
\
bash will print \\ as intendet. Any reason? (ksh/pdksh print \ I was
told).
MfG
Goswin
-- System Information
Debian Release: 3.0
Architecture: i386
Kernel: Linux dual 2.4.16 #9 SMP Sat Jan 26 16:39:53 CET 2002 i686
Locale: LANG=C, LC_CTYPE=de_DE
Versions of packages zsh depends on:
ii libc6 2.2.5-1 GNU C Library: Shared libraries an
ii libcap1 1:1.10-12 support for getting/setting POSIX.
ii libncurses5 5.2.20020112a-3 Shared libraries for terminal hand
----- End forwarded message -----
^ permalink raw reply [relevance 3%]
* Andrew Josey: Press Release
@ 2002-01-30 10:26 3% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2002-01-30 10:26 UTC (permalink / raw)
To: Zsh hackers list
This is of some interest since you can now see the latest POSIX (IEEE Std
1003.1-2001) and Single Unix shell standard, along with the rest of the
UNIX spec, online by registering.
pws
------- Forwarded Message
Date: Wed, 30 Jan 2002 05:34:35 GMT
From: Andrew Josey <ajosey@rdg.opengroup.org>
Subject: Press Release
All
The press release announcement from The Open Group regarding
completion of the joint revision and the availability of the
html version of the specification are now online
at http://www.unix-systems.org/version3/
best regards
Andrew
- -----
Andrew Josey The Open Group
Austin Group Chair Apex Plaza,Forbury Road,
Email: a.josey@opengroup.org Reading,Berks.RG1 1AX,England
Tel: +44 118 9508311 ext 2250 Fax: +44 118 9500110
------- End of Forwarded Message
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 3%]
* problems with RANDOM in subshells
@ 2002-01-31 3:20 3% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2002-01-31 3:20 UTC (permalink / raw)
To: zsh-workers; +Cc: 131337-forwarded
One can work around the problem described below by doing
: $RANDOM ; (echo $RANDOM) | cat
Should the random-seeding behavior be changed for subshells?
----- Forwarded message from Falk Hueffner <falk@debian.org> -----
For each subshell, $RANDOM gets initialized to the same value, which
leads to the same sequence of random numbers. This makes
e. g. playlist shuffling functions way boring, and is generally not
what one would expect.
falk@borkum:~% (echo $RANDOM) | cat
12042
falk@borkum:~% (echo $RANDOM) | cat
12042
falk@borkum:~% (echo $RANDOM) | cat
12042
Falk
-- System Information
Debian Release: 3.0
Architecture: alpha
Kernel: Linux borkum 2.4.16 #1 Sat Dec 1 23:02:59 CET 2001 alpha
Locale: LANG=C, LC_CTYPE=de_DE
Versions of packages zsh depends on:
ii libc6.1 2.2.4-7 GNU C Library: Shared libraries an
ii libcap1 1:1.10-12 support for getting/setting POSIX.
ii libncurses5 5.2.20020112a-2 Shared libraries for terminal hand
----- End forwarded message -----
^ permalink raw reply [relevance 3%]
* Re: problems with RANDOM in subshells
@ 2002-01-31 11:07 3% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2002-01-31 11:07 UTC (permalink / raw)
To: Zsh hackers list
Zefram wrote:
> Clint Adams wrote:
> >Should the random-seeding behavior be changed for subshells?
>
> No. We define $RANDOM to be a PRNG; zshparam(1) speaks of seeding it
> (by writing to $RANDOM). Opening a subshell should not interfere with
> the PRNG sequence, which one might be relying on to be reproducible.
bash has the zsh behaviour, but ksh 88 handles subshells specially.
POSIX/SUS doesn't defined RANDOM, but we probably ought to get this
specified for David Korn's enhanced shell proposal, given that all three
shells under discussion already have RANDOM.
It does seem to me that it's unnecessarily hard for a user to take avoiding
action in a subshell. At least providing the PID of the subshell process
as separate parameter might give them the start, e.g. make $ZSH_REALPID map
directly to getpid() --- obviously not with a very high degree of
randomness, but I don't think that was a problem in this case. (The
advantage over providing a real `random' number is that it takes a minute
to write instead of a day.)
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 3%]
* PATCH: Re: zsh: can't find terminal definition on vt100
@ 2002-02-12 16:55 4% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2002-02-12 16:55 UTC (permalink / raw)
To: rangarao.ragavendran, zsh-workers
[I meant to respond to some of this stuff a while ago, but then started
having trouble with my ISP again, so I couldn't use my mail from home.]
On Feb 5, 1:01pm, rangarao.ragavendran@abbott.com wrote:
}
} I am running zsh on HPUX 11.0 and when I execute
} export TERM=vt100
}
} I get the following error:
}
} zsh: can't find terminal definition on vt100
The short answer was given on zsh-users a few weeks ago:
On Jan 22, 5:07pm, a normal guy wrote:
} Subject: Re: zsh 4.0.4 on HP-UX?
}
} I fought this problem too, and the fix was similar. In HP-UX
} 11.00, they redefined the output values of tgetent to 0 (OK) and
} -1 (ERR). 0 used to mean there was no such term capability.
}
} The old tgetent is still available in the libHcurses library.
} Putting LDFLAGS='-lHcurses' fixed the problem for me.
}
} Scott
The long answer is that we need to change configure to detect this.
Here's a potential patch (against current 4.1.x from CVS, but I think
it'll apply to 4.0.4). I don't have access to HP-UX 11 to test it,
but it works for the "normal" tgetent() on my RedHat Linux box.
Index: acconfig.h
===================================================================
diff -u -r1.8 acconfig.h
--- acconfig.h 2001/10/17 14:38:20 1.8
+++ acconfig.h 2002/02/12 16:36:41
@@ -187,6 +187,9 @@
/* Define to 1 if tgetent() accepts NULL as a buffer */
#undef TGETENT_ACCEPTS_NULL
+/* Define to 1 if tgetent() returns 0 on success (HP-UX X/Open curses) */
+#undef TGETENT_ZERO_SUCCESS
+
/* Define to 1 if you use POSIX style signal handling */
#undef POSIX_SIGNALS
Index: zshconfig.ac
===================================================================
diff -u -r1.11 zshconfig.ac
--- zshconfig.ac 2002/01/07 15:18:18 1.11
+++ zshconfig.ac 2002/02/12 16:34:38
@@ -963,14 +963,16 @@
[AC_TRY_RUN([
main()
{
- int i = tgetent((char*)0,"vt100");
- if (i > 0) {
- char tbuf[1024], *u;
- u = tbuf;
+ char buf[4096];
+ int r1 = tgetent(buf, "vt100");
+ int r2 = tgetent((char*)0,"vt100");
+ if (r1 >= 0 && r1 == r2) {
+ char tbuf[1024], *u;
+ u = tbuf;
tgetstr("cl", &u);
creat("conftest.tgetent", 0640);
}
- exit(!i || i == -1);
+ exit((r1 != r2) || r2 == -1);
}
],
if test -f conftest.tgetent; then
@@ -982,6 +984,33 @@
zsh_cv_func_tgetent_accepts_null=no)])
if test $zsh_cv_func_tgetent_accepts_null = yes; then
AC_DEFINE(TGETENT_ACCEPTS_NULL)
+fi
+AC_CACHE_CHECK(if tgetent returns 0 on success,
+zsh_cv_func_tgetent_zero_success,
+[AC_TRY_RUN([
+main()
+{
+ char buf[4096];
+ int r1 = tgetent(buf, "!@#$%^&*");
+ int r2 = tgetent(buf, "vt100");
+ if (r1 < 0 && r2 == 0) {
+ char tbuf[1024], *u;
+ u = tbuf;
+ tgetstr("cl", &u);
+ creat("conftest.tgetent0", 0640);
+ }
+ exit(r1 == r2);
+}
+],
+ if test -f conftest.tgetent0; then
+ zsh_cv_func_tgetent_zero_success=yes
+ else
+ zsh_cv_func_tgetent_zero_success=no
+ fi,
+ zsh_cv_func_tgetent_zero_success=no,
+ zsh_cv_func_tgetent_zero_success=no)])
+if test $zsh_cv_func_tgetent_zero_success = yes; then
+ AC_DEFINE(TGETENT_ZERO_SUCCESS)
fi
AC_FUNC_MMAP
Index: Src/init.c
===================================================================
diff -u -r1.7 Src/init.c
--- Src/init.c 2001/10/22 17:03:58 1.7
+++ Src/init.c 2002/02/12 16:40:47
@@ -535,11 +535,15 @@
#ifdef TGETENT_ACCEPTS_NULL
/* If possible, we let tgetent allocate its own termcap buffer */
- if (tgetent(NULL, term) != 1) {
+# ifdef TGETENT_ZERO_SUCCESS
+ if (tgetent(NULL, term) != 0)
+# else
+ if (tgetent(NULL, term) != 1)
+# endif
#else
- if (tgetent(termbuf, term) != 1) {
+ if (tgetent(termbuf, term) != 1)
#endif
-
+ {
if (isset(INTERACTIVE))
zerr("can't find terminal definition for %s", term, 0);
errflag = 0;
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 4%]
* RE: Help with compile problem
[not found] <Pine.BSF.4.40.0202122237320.98397-100000@brasslantern.com>
@ 2002-02-13 22:35 1% ` Ken Moorley
0 siblings, 0 replies; 200+ results
From: Ken Moorley @ 2002-02-13 22:35 UTC (permalink / raw)
To: zsh Users, zsh-workers
[-- Attachment #1: Type: text/plain, Size: 1528 bytes --]
I successfully installed GNU gawk and sed but get the same errors on compile
of zsh 4.0.4 using gcc 3.0.3
I was able to compile zsh 4.0.4 using gcc 2.9.5.2, is there any thing unique
about 3.0.3 that would cause the problem although gawk and sed compiled OK
with gcc 3.0.3
I am also able to successfully compile zsh 3.1.9 using gcc 3.0.3
I have attached the configure and make output text for both versions which
might give some one a clue.
Thanks for you help
Ken
> -----Original Message-----
> From: lantern@brasslantern.com [mailto:lantern@brasslantern.com]On
> Behalf Of Bart Schaefer
> Sent: Wednesday, 13 February 2002 9:47 am
> To: Ken Moorley
> Subject: RE: Help with compile problem
>
>
> On Wed, 13 Feb 2002, Ken Moorley wrote:
>
> > Tried from scratch, tried make distclean all with the same result!
>
> What we (please send to zsh-workers@sunsite.dk, not just to me; I don't
> have a SCO system but someone else might) need to see is the "make" output
> from that clean build. Some things were obviously not getting rebuilt
> before, but it's hard to tell why during what may be an incremental
> compilation.
>
> A possible cause of the problem is that configure is finding nawk as the
> awk-equivalent on your system; it might be mishandling the awk scripts
> that are used to construct some of the Makefiles. It'd be best if you
> could get GNU awk (or make sure it's first in your $PATH if you already
> have it).
>
> It's also possible that your sed is not working the way the zsh Makefiles
> expect.
>
[-- Attachment #2: configv4.0.4.txt --]
[-- Type: text/plain, Size: 9078 bytes --]
creating cache ./config.cache
configuring for zsh 4.0.4
checking host system type... i686-pc-sco3.2v5.0.5
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether large file support needs explicit enabling... no
checking how to run the C preprocessor... gcc -E
checking whether gcc needs -traditional... no
checking for working const... yes
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for executable suffix... no
checking for gcc option to accept ANSI C...
checking whether to use prototypes... yes
checking for working alloca.h... no
checking for alloca... yes
checking if the compiler supports union initialisation... yes
checking if signed to unsigned casting is broken... no
checking if the compiler supports variable-length arrays... yes
checking what to set MAXJOB to... 50
checking whether make sets ${MAKE}... yes
checking for a BSD compatible install... ./install-sh -c
checking for mawk... no
checking for gawk... gawk
checking whether ln works... yes
checking for yodl... yodl
checking for dirent.h that defines DIR... yes
checking for opendir in -ldir... no
checking for ANSI C header files... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether stat file-mode macros are broken... no
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/time.h... yes
checking for sys/times.h... yes
checking for sys/select.h... yes
checking for termcap.h... no
checking for termio.h... yes
checking for termios.h... yes
checking for sys/param.h... yes
checking for sys/filio.h... no
checking for string.h... yes
checking for memory.h... yes
checking for limits.h... yes
checking for fcntl.h... yes
checking for libc.h... no
checking for sys/utsname.h... yes
checking for sys/resource.h... yes
checking for locale.h... yes
checking for errno.h... yes
checking for stdlib.h... yes
checking for unistd.h... yes
checking for sys/capability.h... no
checking for utmp.h... yes
checking for utmpx.h... yes
checking for sys/types.h... yes
checking for pwd.h... yes
checking for grp.h... yes
checking for poll.h... yes
checking for sys/mman.h... yes
checking for netinet/in_systm.h... yes
checking for dlfcn.h... yes
checking for dl.h... no
checking for conflicts in sys/time.h and sys/select.h... no
checking POSIX termios... yes
checking TIOCGWINSZ in termios.h... yes
checking for sys/ptem.h... yes
checking for printf in -lc... yes
checking for pow in -lm... yes
checking for library containing tgetent... -ltermcap
checking for library containing yp_all... no
checking for dlopen in -ldl... yes
checking for cap_get_proc in -lcap... no
checking for socket in -lsocket... yes
checking if an include file defines ospeed... no
checking if you must define ospeed... yes
checking return type of signal handlers... void
checking for pid_t... yes
checking for off_t... yes
checking for ino_t... yes
checking for mode_t... yes
checking for uid_t in sys/types.h... yes
checking for size_t... yes
checking if long is 64 bits... no
checking if off_t is 64 bit... no
checking if ino_t is 64 bit... no
checking if compiler has a 64 bit type... long long
checking for a corresponding unsigned 64 bit type... unsigned long long
checking for sigset_t... yes
checking for struct timezone... yes
checking for struct utmp... yes
checking for struct utmpx... yes
checking for ut_host in struct utmp... no
checking for ut_host in struct utmpx... yes
checking for ut_xtime in struct utmpx... yes
checking for ut_tv in struct utmpx... yes
checking for d_ino in struct dirent... yes
checking for d_stat in struct dirent... no
checking for d_ino in struct direct... no
checking for d_stat in struct direct... no
checking for sin6_scope_id in struct sockaddr_in6... no
checking if we need our own h_errno... no
checking for strftime... yes
checking for difftime... yes
checking for gettimeofday... yes
checking for select... yes
checking for poll... yes
checking for readlink... yes
checking for lstat... yes
checking for lchown... yes
checking for faccessx... no
checking for fchdir... yes
checking for ftruncate... yes
checking for fseeko... no
checking for ftello... no
checking for mkfifo... yes
checking for _mktemp... yes
checking for waitpid... yes
checking for wait3... yes
checking for sigaction... yes
checking for sigblock... no
checking for sighold... yes
checking for sigrelse... yes
checking for sigsetmask... no
checking for sigprocmask... yes
checking for killpg... yes
checking for setpgid... yes
checking for setpgrp... yes
checking for tcsetpgrp... yes
checking for tcgetattr... yes
checking for nice... yes
checking for gethostname... yes
checking for gethostbyname2... no
checking for getipnodebyname... no
checking for inet_aton... yes
checking for inet_pton... yes
checking for inet_ntop... yes
checking for getlogin... yes
checking for getpwent... yes
checking for getpwnam... yes
checking for getpwuid... yes
checking for getgrgid... yes
checking for getgrnam... yes
checking for initgroups... yes
checking for nis_list... no
checking for setuid... yes
checking for seteuid... yes
checking for setreuid... yes
checking for setresuid... no
checking for setsid... yes
checking for memcpy... yes
checking for memmove... yes
checking for strstr... yes
checking for strerror... yes
checking for cap_get_proc... no
checking for getrlimit... yes
checking for setlocale... yes
checking for uname... yes
checking for signgam... yes
checking for putenv... yes
checking for getenv... yes
checking for brk... yes
checking for sbrk... yes
checking for pathconf... yes
checking for sysconf... yes
checking for tgetent... yes
checking for tigetflag... no
checking for tigetnum... no
checking for tigetstr... no
checking for setupterm... no
checking for working strcoll... yes
checking if tgetent accepts NULL... no
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... no
checking whether getpgrp takes no argument... yes
checking for dlopen... yes
checking for dlerror... yes
checking for dlsym... yes
checking for dlclose... yes
checking for load... no
checking for loadquery... no
checking for loadbind... no
checking for unload... no
checking for shl_load... no
checking for shl_unload... no
checking for shl_findsym... no
checking what style of signals to use... POSIX_SIGNALS
checking where signal.h is located... /usr/local/lib/gcc-lib/i686-pc-sco3.2v5.0.5/3.0.3/include/sys/signal.h
checking where the RLIMIT macros are located... /usr/include/sys/resource.h
checking if rlim_t is longer than a long... no
checking if the rlim_t is unsigned... yes
checking for rlim_t... yes
checking for /dev/fd filesystem... /dev/fd
checking for RFS superroot directory... no
checking whether we should use the native getcwd... no
checking for NIS... no
checking for NIS+... no
checking for utmp file... /etc/utmp
checking for wtmp file... /etc/wtmp
checking for utmpx file... /etc/utmpx
checking for wtmpx file... /etc/wtmpx
checking for brk() prototype in <unistd.h>... yes
checking for sbrk() prototype in <unistd.h>... yes
checking for ioctl prototype in <sys/ioctl.h>... no
checking for mknod prototype in <sys/stat.h>... yes
checking if named FIFOs work... yes
checking if echo in /bin/sh interprets escape sequences... yes
checking if link() works... yes
checking if kill(pid, 0) returns ESRCH correctly... yes
checking if POSIX sigsuspend() works... yes
checking if tcsetpgrp() actually works... yes
checking if getpwnam() is faked... no
checking base type of the third argument to accept... int
checking if your system uses ELF binaries... yes
checking if your dlsym() needs a leading underscore...
checking if environ is available in shared libraries... no
checking if tgetent is available in shared libraries... no
creating ./config.modules
updating cache ./config.cache
creating ./config.status
zsh configuration
-----------------
zsh version : 4.0.4
host operating system : i686-pc-sco3.2v5.0.5
source code location : .
compiler : gcc
preprocessor flags :
executable compiler flags : -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2
executable linker flags : -s
library flags : -lsocket -ldl -ltermcap -lm -lc
installation basename : zsh
binary install path : /usr/local/bin
man page install path : /usr/local/man
info install path : /usr/local/info
functions install path : /usr/local/share/zsh/4.0.4/functions
See config.modules for installed modules and functions.
creating Config/defs.mk
creating Makefile
creating Doc/Makefile
creating Etc/Makefile
creating Src/Makefile
creating Test/Makefile
creating config.h
[-- Attachment #3: makev4.0.4.txt --]
[-- Type: text/plain, Size: 74258 bytes --]
make[1]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
cd .. && /bin/sh $top_srcdir/Src/mkmakemod.sh Src Makemod
creating Src/Makemod.in
creating Src/Makemod
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
echo 'timestamp for *.mdd files' > ../Src/modules.stamp
creating Src/Builtins/Makefile.in
creating Src/Builtins/Makefile
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
creating Src/Modules/Makefile.in
creating Src/Modules/Makefile
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
creating Src/Zle/Makefile.in
creating Src/Zle/Makefile
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
Updated `zsh.mdh'.
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
Updated `rlimits.mdh'.
echo 'timestamp for rlimits.mdh against rlimits.mdd' > rlimits.mdhs
gawk -f ../../Src/makepro.awk rlimits.c Src/Builtins > rlimits.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < rlimits.syms) \
> rlimits.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < rlimits.syms) \
> `echo rlimits.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
Updated `rlimits.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
Updated `sched.mdh'.
echo 'timestamp for sched.mdh against sched.mdd' > sched.mdhs
gawk -f ../../Src/makepro.awk sched.c Src/Builtins > sched.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < sched.syms) \
> sched.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < sched.syms) \
> `echo sched.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
Updated `sched.mdh'.
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Builtins'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
Updated `parameter.mdh'.
echo 'timestamp for parameter.mdh against parameter.mdd' > parameter.mdhs
gawk -f ../../Src/makepro.awk parameter.c Src/Modules > parameter.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < parameter.syms) \
> parameter.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < parameter.syms) \
> `echo parameter.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
Updated `parameter.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
Updated `termcap.mdh'.
echo 'timestamp for termcap.mdh against termcap.mdd' > termcap.mdhs
gawk -f ../../Src/makepro.awk termcap.c Src/Modules > termcap.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < termcap.syms) \
> termcap.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < termcap.syms) \
> `echo termcap.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
Updated `termcap.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
Updated `terminfo.mdh'.
echo 'timestamp for terminfo.mdh against terminfo.mdd' > terminfo.mdhs
gawk -f ../../Src/makepro.awk terminfo.c Src/Modules > terminfo.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < terminfo.syms) \
> terminfo.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < terminfo.syms) \
> `echo terminfo.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
Updated `terminfo.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
( \
echo '/** thingies.list **/'; \
echo '/** thingy structures for the known thingies **/'; \
echo; \
echo '/* format: T("name", TH_FLAGS, w_widget, t_nextthingy) */'; \
echo; \
sed -e 's/#.*//; /^$/d; s/" *,.*/"/' \
-e 's/^"/T("/; s/$/, 0,/; h' \
-e 's/-//g; s/^.*"\(.*\)".*/w_\1, t_D\1)/' \
-e 'H; g; s/\n/ /' \
< ./iwidgets.list; \
sed -e 's/#.*//; /^$/d; s/" *,.*/"/' \
-e 's/^"/T("./; s/$/, TH_IMMORTAL,/; h' \
-e 's/-//g; s/^.*"\.\(.*\)".*/w_\1, t_\1)/' \
-e 'H; g; s/\n/ /' \
< ./iwidgets.list; \
) > thingies.list
( \
echo '/** zle_things.h **/'; \
echo '/** indices of and pointers to known thingies **/'; \
echo; \
echo 'enum {'; \
sed -n -f ./zle_things.sed < thingies.list; \
echo ' ZLE_BUILTIN_THINGY_COUNT'; \
echo '};'; \
) > zle_things.h
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `zle.mdh'.
echo 'timestamp for zle.mdh against zle.mdd' > zle.mdhs
gawk -f ../../Src/makepro.awk zle_bindings.c Src/Zle > zle_bindings.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_bindings.syms) \
> zle_bindings.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_bindings.syms) \
> `echo zle_bindings.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_hist.c Src/Zle > zle_hist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_hist.syms) \
> zle_hist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_hist.syms) \
> `echo zle_hist.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_keymap.c Src/Zle > zle_keymap.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_keymap.syms) \
> zle_keymap.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_keymap.syms) \
> `echo zle_keymap.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_main.c Src/Zle > zle_main.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_main.syms) \
> zle_main.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_main.syms) \
> `echo zle_main.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_misc.c Src/Zle > zle_misc.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_misc.syms) \
> zle_misc.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_misc.syms) \
> `echo zle_misc.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_move.c Src/Zle > zle_move.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_move.syms) \
> zle_move.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_move.syms) \
> `echo zle_move.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_params.c Src/Zle > zle_params.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_params.syms) \
> zle_params.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_params.syms) \
> `echo zle_params.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_refresh.c Src/Zle > zle_refresh.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_refresh.syms) \
> zle_refresh.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_refresh.syms) \
> `echo zle_refresh.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_thingy.c Src/Zle > zle_thingy.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_thingy.syms) \
> zle_thingy.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_thingy.syms) \
> `echo zle_thingy.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_tricky.c Src/Zle > zle_tricky.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_tricky.syms) \
> zle_tricky.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_tricky.syms) \
> `echo zle_tricky.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_utils.c Src/Zle > zle_utils.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_utils.syms) \
> zle_utils.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_utils.syms) \
> `echo zle_utils.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_vi.c Src/Zle > zle_vi.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_vi.syms) \
> zle_vi.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_vi.syms) \
> `echo zle_vi.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_word.c Src/Zle > zle_word.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_word.syms) \
> zle_word.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_word.syms) \
> `echo zle_word.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `zle.mdh'.
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `complete.mdh'.
echo 'timestamp for complete.mdh against complete.mdd' > complete.mdhs
gawk -f ../../Src/makepro.awk complete.c Src/Zle > complete.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < complete.syms) \
> complete.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < complete.syms) \
> `echo complete.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk compcore.c Src/Zle > compcore.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compcore.syms) \
> compcore.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compcore.syms) \
> `echo compcore.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk compmatch.c Src/Zle > compmatch.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compmatch.syms) \
> compmatch.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compmatch.syms) \
> `echo compmatch.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk compresult.c Src/Zle > compresult.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compresult.syms) \
> compresult.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compresult.syms) \
> `echo compresult.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `complete.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
Updated `zutil.mdh'.
echo 'timestamp for zutil.mdh against zutil.mdd' > zutil.mdhs
gawk -f ../../Src/makepro.awk zutil.c Src/Modules > zutil.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zutil.syms) \
> zutil.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zutil.syms) \
> `echo zutil.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
Updated `zutil.mdh'.
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Modules'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `compctl.mdh'.
echo 'timestamp for compctl.mdh against compctl.mdd' > compctl.mdhs
gawk -f ../../Src/makepro.awk compctl.c Src/Zle > compctl.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compctl.syms) \
> compctl.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compctl.syms) \
> `echo compctl.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `compctl.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `complist.mdh'.
echo 'timestamp for complist.mdh against complist.mdd' > complist.mdhs
gawk -f ../../Src/makepro.awk complist.c Src/Zle > complist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < complist.syms) \
> complist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < complist.syms) \
> `echo complist.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `complist.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `computil.mdh'.
echo 'timestamp for computil.mdh against computil.mdd' > computil.mdhs
gawk -f ../../Src/makepro.awk computil.c Src/Zle > computil.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < computil.syms) \
> computil.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < computil.syms) \
> `echo computil.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `computil.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `zleparameter.mdh'.
echo 'timestamp for zleparameter.mdh against zleparameter.mdd' > zleparameter.mdhs
gawk -f ../../Src/makepro.awk zleparameter.c Src/Zle > zleparameter.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zleparameter.syms) \
> zleparameter.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zleparameter.syms) \
> `echo zleparameter.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
Updated `zleparameter.mdh'.
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src/Zle'
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
rm -f stamp-modobjs.tmp
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o builtin.o builtin.c
In file included from builtin.c:30:
zsh.mdh:15:25: ./sigcount.h: No such file or directory
In file included from builtin.c:30:
zsh.mdh:30:25: builtin.epro: No such file or directory
zsh.mdh:31:24: compat.epro: No such file or directory
zsh.mdh:32:22: cond.epro: No such file or directory
zsh.mdh:33:22: exec.epro: No such file or directory
zsh.mdh:34:22: glob.epro: No such file or directory
zsh.mdh:35:27: hashtable.epro: No such file or directory
zsh.mdh:36:22: hist.epro: No such file or directory
zsh.mdh:37:22: init.epro: No such file or directory
zsh.mdh:38:23: input.epro: No such file or directory
zsh.mdh:39:22: jobs.epro: No such file or directory
zsh.mdh:40:21: lex.epro: No such file or directory
zsh.mdh:41:26: linklist.epro: No such file or directory
zsh.mdh:42:22: loop.epro: No such file or directory
zsh.mdh:43:22: math.epro: No such file or directory
zsh.mdh:44:21: mem.epro: No such file or directory
zsh.mdh:45:24: module.epro: No such file or directory
zsh.mdh:46:25: options.epro: No such file or directory
zsh.mdh:47:24: params.epro: No such file or directory
zsh.mdh:48:23: parse.epro: No such file or directory
zsh.mdh:49:25: pattern.epro: No such file or directory
zsh.mdh:50:24: prompt.epro: No such file or directory
zsh.mdh:51:25: signals.epro: No such file or directory
zsh.mdh:52:26: signames.epro: No such file or directory
zsh.mdh:53:24: string.epro: No such file or directory
zsh.mdh:54:23: subst.epro: No such file or directory
zsh.mdh:55:22: text.epro: No such file or directory
zsh.mdh:56:23: utils.epro: No such file or directory
zsh.mdh:57:23: watch.epro: No such file or directory
builtin.c:31:23: builtin.pro: No such file or directory
builtin.c:42: `bin_test' undeclared here (not in a function)
builtin.c:42: initializer element is not constant
builtin.c:42: (near initialization for `builtins[5].handlerfunc')
builtin.c:42: initializer element is not constant
builtin.c:42: (near initialization for `builtins[5]')
builtin.c:43: `bin_dot' undeclared here (not in a function)
builtin.c:43: initializer element is not constant
builtin.c:43: (near initialization for `builtins[6].handlerfunc')
builtin.c:43: initializer element is not constant
builtin.c:43: (near initialization for `builtins[6]')
builtin.c:44: `bin_true' undeclared here (not in a function)
builtin.c:44: initializer element is not constant
builtin.c:44: (near initialization for `builtins[7].handlerfunc')
builtin.c:44: initializer element is not constant
builtin.c:44: (near initialization for `builtins[7]')
builtin.c:45: `bin_alias' undeclared here (not in a function)
builtin.c:45: initializer element is not constant
builtin.c:45: (near initialization for `builtins[8].handlerfunc')
builtin.c:45: initializer element is not constant
builtin.c:45: (near initialization for `builtins[8]')
builtin.c:46: `bin_functions' undeclared here (not in a function)
builtin.c:46: initializer element is not constant
builtin.c:46: (near initialization for `builtins[9].handlerfunc')
builtin.c:46: initializer element is not constant
builtin.c:46: (near initialization for `builtins[9]')
builtin.c:47: `bin_fg' undeclared here (not in a function)
builtin.c:47: initializer element is not constant
builtin.c:47: (near initialization for `builtins[10].handlerfunc')
builtin.c:47: initializer element is not constant
builtin.c:47: (near initialization for `builtins[10]')
builtin.c:48: `bin_break' undeclared here (not in a function)
builtin.c:48: initializer element is not constant
builtin.c:48: (near initialization for `builtins[11].handlerfunc')
builtin.c:48: initializer element is not constant
builtin.c:48: (near initialization for `builtins[11]')
builtin.c:49: `bin_break' undeclared here (not in a function)
builtin.c:49: initializer element is not constant
builtin.c:49: (near initialization for `builtins[12].handlerfunc')
builtin.c:49: initializer element is not constant
builtin.c:49: (near initialization for `builtins[12]')
builtin.c:50: `bin_cd' undeclared here (not in a function)
builtin.c:50: initializer element is not constant
builtin.c:50: (near initialization for `builtins[13].handlerfunc')
builtin.c:50: initializer element is not constant
builtin.c:50: (near initialization for `builtins[13]')
builtin.c:51: `bin_cd' undeclared here (not in a function)
builtin.c:51: initializer element is not constant
builtin.c:51: (near initialization for `builtins[14].handlerfunc')
builtin.c:51: initializer element is not constant
builtin.c:51: (near initialization for `builtins[14]')
builtin.c:52: `bin_break' undeclared here (not in a function)
builtin.c:52: initializer element is not constant
builtin.c:52: (near initialization for `builtins[15].handlerfunc')
builtin.c:52: initializer element is not constant
builtin.c:52: (near initialization for `builtins[15]')
builtin.c:53: `bin_typeset' undeclared here (not in a function)
builtin.c:53: initializer element is not constant
builtin.c:53: (near initialization for `builtins[16].handlerfunc')
builtin.c:53: initializer element is not constant
builtin.c:53: (near initialization for `builtins[16]')
builtin.c:54: `bin_dirs' undeclared here (not in a function)
builtin.c:54: initializer element is not constant
builtin.c:54: (near initialization for `builtins[17].handlerfunc')
builtin.c:54: initializer element is not constant
builtin.c:54: (near initialization for `builtins[17]')
builtin.c:55: `bin_enable' undeclared here (not in a function)
builtin.c:55: initializer element is not constant
builtin.c:55: (near initialization for `builtins[18].handlerfunc')
builtin.c:55: initializer element is not constant
builtin.c:55: (near initialization for `builtins[18]')
builtin.c:56: `bin_fg' undeclared here (not in a function)
builtin.c:56: initializer element is not constant
builtin.c:56: (near initialization for `builtins[19].handlerfunc')
builtin.c:56: initializer element is not constant
builtin.c:56: (near initialization for `builtins[19]')
builtin.c:57: `bin_print' undeclared here (not in a function)
builtin.c:57: initializer element is not constant
builtin.c:57: (near initialization for `builtins[20].handlerfunc')
builtin.c:57: initializer element is not constant
builtin.c:57: (near initialization for `builtins[20]')
builtin.c:58: `bin_emulate' undeclared here (not in a function)
builtin.c:58: initializer element is not constant
builtin.c:58: (near initialization for `builtins[21].handlerfunc')
builtin.c:58: initializer element is not constant
builtin.c:58: (near initialization for `builtins[21]')
builtin.c:59: `bin_enable' undeclared here (not in a function)
builtin.c:59: initializer element is not constant
builtin.c:59: (near initialization for `builtins[22].handlerfunc')
builtin.c:59: initializer element is not constant
builtin.c:59: (near initialization for `builtins[22]')
builtin.c:60: `bin_eval' undeclared here (not in a function)
builtin.c:60: initializer element is not constant
builtin.c:60: (near initialization for `builtins[23].handlerfunc')
builtin.c:60: initializer element is not constant
builtin.c:60: (near initialization for `builtins[23]')
builtin.c:61: `bin_break' undeclared here (not in a function)
builtin.c:61: initializer element is not constant
builtin.c:61: (near initialization for `builtins[24].handlerfunc')
builtin.c:61: initializer element is not constant
builtin.c:61: (near initialization for `builtins[24]')
builtin.c:62: `bin_typeset' undeclared here (not in a function)
builtin.c:62: initializer element is not constant
builtin.c:62: (near initialization for `builtins[25].handlerfunc')
builtin.c:62: initializer element is not constant
builtin.c:62: (near initialization for `builtins[25]')
builtin.c:63: `bin_false' undeclared here (not in a function)
builtin.c:63: initializer element is not constant
builtin.c:63: (near initialization for `builtins[26].handlerfunc')
builtin.c:63: initializer element is not constant
builtin.c:63: (near initialization for `builtins[26]')
builtin.c:64: `bin_fc' undeclared here (not in a function)
builtin.c:64: initializer element is not constant
builtin.c:64: (near initialization for `builtins[27].handlerfunc')
builtin.c:64: initializer element is not constant
builtin.c:64: (near initialization for `builtins[27]')
builtin.c:65: `bin_fg' undeclared here (not in a function)
builtin.c:65: initializer element is not constant
builtin.c:65: (near initialization for `builtins[28].handlerfunc')
builtin.c:65: initializer element is not constant
builtin.c:65: (near initialization for `builtins[28]')
builtin.c:66: `bin_typeset' undeclared here (not in a function)
builtin.c:66: initializer element is not constant
builtin.c:66: (near initialization for `builtins[29].handlerfunc')
builtin.c:66: initializer element is not constant
builtin.c:66: (near initialization for `builtins[29]')
builtin.c:67: `bin_functions' undeclared here (not in a function)
builtin.c:67: initializer element is not constant
builtin.c:67: (near initialization for `builtins[30].handlerfunc')
builtin.c:67: initializer element is not constant
builtin.c:67: (near initialization for `builtins[30]')
builtin.c:68: `bin_read' undeclared here (not in a function)
builtin.c:68: initializer element is not constant
builtin.c:68: (near initialization for `builtins[31].handlerfunc')
builtin.c:68: initializer element is not constant
builtin.c:68: (near initialization for `builtins[31]')
builtin.c:69: `bin_getopts' undeclared here (not in a function)
builtin.c:69: initializer element is not constant
builtin.c:69: (near initialization for `builtins[32].handlerfunc')
builtin.c:69: initializer element is not constant
builtin.c:69: (near initialization for `builtins[32]')
builtin.c:70: `bin_hash' undeclared here (not in a function)
builtin.c:70: initializer element is not constant
builtin.c:70: (near initialization for `builtins[33].handlerfunc')
builtin.c:70: initializer element is not constant
builtin.c:70: (near initialization for `builtins[33]')
builtin.c:76: `bin_fc' undeclared here (not in a function)
builtin.c:76: initializer element is not constant
builtin.c:76: (near initialization for `builtins[34].handlerfunc')
builtin.c:76: initializer element is not constant
builtin.c:76: (near initialization for `builtins[34]')
builtin.c:77: `bin_typeset' undeclared here (not in a function)
builtin.c:77: initializer element is not constant
builtin.c:77: (near initialization for `builtins[35].handlerfunc')
builtin.c:77: initializer element is not constant
builtin.c:77: (near initialization for `builtins[35]')
builtin.c:78: `bin_fg' undeclared here (not in a function)
builtin.c:78: initializer element is not constant
builtin.c:78: (near initialization for `builtins[36].handlerfunc')
builtin.c:78: initializer element is not constant
builtin.c:78: (near initialization for `builtins[36]')
builtin.c:79: `bin_kill' undeclared here (not in a function)
builtin.c:79: initializer element is not constant
builtin.c:79: (near initialization for `builtins[37].handlerfunc')
builtin.c:79: initializer element is not constant
builtin.c:79: (near initialization for `builtins[37]')
builtin.c:80: `bin_let' undeclared here (not in a function)
builtin.c:80: initializer element is not constant
builtin.c:80: (near initialization for `builtins[38].handlerfunc')
builtin.c:80: initializer element is not constant
builtin.c:80: (near initialization for `builtins[38]')
builtin.c:81: `bin_typeset' undeclared here (not in a function)
builtin.c:81: initializer element is not constant
builtin.c:81: (near initialization for `builtins[39].handlerfunc')
builtin.c:81: initializer element is not constant
builtin.c:81: (near initialization for `builtins[39]')
builtin.c:82: `bin_log' undeclared here (not in a function)
builtin.c:82: initializer element is not constant
builtin.c:82: (near initialization for `builtins[40].handlerfunc')
builtin.c:82: initializer element is not constant
builtin.c:82: (near initialization for `builtins[40]')
builtin.c:83: `bin_break' undeclared here (not in a function)
builtin.c:83: initializer element is not constant
builtin.c:83: (near initialization for `builtins[41].handlerfunc')
builtin.c:83: initializer element is not constant
builtin.c:83: (near initialization for `builtins[41]')
builtin.c:93: `bin_cd' undeclared here (not in a function)
builtin.c:93: initializer element is not constant
builtin.c:93: (near initialization for `builtins[42].handlerfunc')
builtin.c:93: initializer element is not constant
builtin.c:93: (near initialization for `builtins[42]')
builtin.c:94: `bin_print' undeclared here (not in a function)
builtin.c:94: initializer element is not constant
builtin.c:94: (near initialization for `builtins[43].handlerfunc')
builtin.c:94: initializer element is not constant
builtin.c:94: (near initialization for `builtins[43]')
builtin.c:95: `bin_cd' undeclared here (not in a function)
builtin.c:95: initializer element is not constant
builtin.c:95: (near initialization for `builtins[44].handlerfunc')
builtin.c:95: initializer element is not constant
builtin.c:95: (near initialization for `builtins[44]')
builtin.c:96: `bin_print' undeclared here (not in a function)
builtin.c:96: initializer element is not constant
builtin.c:96: (near initialization for `builtins[45].handlerfunc')
builtin.c:96: initializer element is not constant
builtin.c:96: (near initialization for `builtins[45]')
builtin.c:97: `bin_pwd' undeclared here (not in a function)
builtin.c:97: initializer element is not constant
builtin.c:97: (near initialization for `builtins[46].handlerfunc')
builtin.c:97: initializer element is not constant
builtin.c:97: (near initialization for `builtins[46]')
builtin.c:98: `bin_fc' undeclared here (not in a function)
builtin.c:98: initializer element is not constant
builtin.c:98: (near initialization for `builtins[47].handlerfunc')
builtin.c:98: initializer element is not constant
builtin.c:98: (near initialization for `builtins[47]')
builtin.c:99: `bin_read' undeclared here (not in a function)
builtin.c:99: initializer element is not constant
builtin.c:99: (near initialization for `builtins[48].handlerfunc')
builtin.c:99: initializer element is not constant
builtin.c:99: (near initialization for `builtins[48]')
builtin.c:100: `bin_typeset' undeclared here (not in a function)
builtin.c:100: initializer element is not constant
builtin.c:100: (near initialization for `builtins[49].handlerfunc')
builtin.c:100: initializer element is not constant
builtin.c:100: (near initialization for `builtins[49]')
builtin.c:101: `bin_hash' undeclared here (not in a function)
builtin.c:101: initializer element is not constant
builtin.c:101: (near initialization for `builtins[50].handlerfunc')
builtin.c:101: initializer element is not constant
builtin.c:101: (near initialization for `builtins[50]')
builtin.c:102: `bin_break' undeclared here (not in a function)
builtin.c:102: initializer element is not constant
builtin.c:102: (near initialization for `builtins[51].handlerfunc')
builtin.c:102: initializer element is not constant
builtin.c:102: (near initialization for `builtins[51]')
builtin.c:103: `bin_set' undeclared here (not in a function)
builtin.c:103: initializer element is not constant
builtin.c:103: (near initialization for `builtins[52].handlerfunc')
builtin.c:103: initializer element is not constant
builtin.c:103: (near initialization for `builtins[52]')
builtin.c:104: `bin_setopt' undeclared here (not in a function)
builtin.c:104: initializer element is not constant
builtin.c:104: (near initialization for `builtins[53].handlerfunc')
builtin.c:104: initializer element is not constant
builtin.c:104: (near initialization for `builtins[53]')
builtin.c:105: `bin_shift' undeclared here (not in a function)
builtin.c:105: initializer element is not constant
builtin.c:105: (near initialization for `builtins[54].handlerfunc')
builtin.c:105: initializer element is not constant
builtin.c:105: (near initialization for `builtins[54]')
builtin.c:106: `bin_dot' undeclared here (not in a function)
builtin.c:106: initializer element is not constant
builtin.c:106: (near initialization for `builtins[55].handlerfunc')
builtin.c:106: initializer element is not constant
builtin.c:106: (near initialization for `builtins[55]')
builtin.c:107: `bin_suspend' undeclared here (not in a function)
builtin.c:107: initializer element is not constant
builtin.c:107: (near initialization for `builtins[56].handlerfunc')
builtin.c:107: initializer element is not constant
builtin.c:107: (near initialization for `builtins[56]')
builtin.c:108: `bin_test' undeclared here (not in a function)
builtin.c:108: initializer element is not constant
builtin.c:108: (near initialization for `builtins[57].handlerfunc')
builtin.c:108: initializer element is not constant
builtin.c:108: (near initialization for `builtins[57]')
builtin.c:109: `bin_ttyctl' undeclared here (not in a function)
builtin.c:109: initializer element is not constant
builtin.c:109: (near initialization for `builtins[58].handlerfunc')
builtin.c:109: initializer element is not constant
builtin.c:109: (near initialization for `builtins[58]')
builtin.c:110: `bin_times' undeclared here (not in a function)
builtin.c:110: initializer element is not constant
builtin.c:110: (near initialization for `builtins[59].handlerfunc')
builtin.c:110: initializer element is not constant
builtin.c:110: (near initialization for `builtins[59]')
builtin.c:111: `bin_trap' undeclared here (not in a function)
builtin.c:111: initializer element is not constant
builtin.c:111: (near initialization for `builtins[60].handlerfunc')
builtin.c:111: initializer element is not constant
builtin.c:111: (near initialization for `builtins[60]')
builtin.c:112: `bin_true' undeclared here (not in a function)
builtin.c:112: initializer element is not constant
builtin.c:112: (near initialization for `builtins[61].handlerfunc')
builtin.c:112: initializer element is not constant
builtin.c:112: (near initialization for `builtins[61]')
builtin.c:113: `bin_whence' undeclared here (not in a function)
builtin.c:113: initializer element is not constant
builtin.c:113: (near initialization for `builtins[62].handlerfunc')
builtin.c:113: initializer element is not constant
builtin.c:113: (near initialization for `builtins[62]')
builtin.c:114: `bin_typeset' undeclared here (not in a function)
builtin.c:114: initializer element is not constant
builtin.c:114: (near initialization for `builtins[63].handlerfunc')
builtin.c:114: initializer element is not constant
builtin.c:114: (near initialization for `builtins[63]')
builtin.c:115: `bin_umask' undeclared here (not in a function)
builtin.c:115: initializer element is not constant
builtin.c:115: (near initialization for `builtins[64].handlerfunc')
builtin.c:115: initializer element is not constant
builtin.c:115: (near initialization for `builtins[64]')
builtin.c:116: `bin_unhash' undeclared here (not in a function)
builtin.c:116: initializer element is not constant
builtin.c:116: (near initialization for `builtins[65].handlerfunc')
builtin.c:116: initializer element is not constant
builtin.c:116: (near initialization for `builtins[65]')
builtin.c:117: `bin_unhash' undeclared here (not in a function)
builtin.c:117: initializer element is not constant
builtin.c:117: (near initialization for `builtins[66].handlerfunc')
builtin.c:117: initializer element is not constant
builtin.c:117: (near initialization for `builtins[66]')
builtin.c:118: `bin_unhash' undeclared here (not in a function)
builtin.c:118: initializer element is not constant
builtin.c:118: (near initialization for `builtins[67].handlerfunc')
builtin.c:118: initializer element is not constant
builtin.c:118: (near initialization for `builtins[67]')
builtin.c:119: `bin_unset' undeclared here (not in a function)
builtin.c:119: initializer element is not constant
builtin.c:119: (near initialization for `builtins[68].handlerfunc')
builtin.c:119: initializer element is not constant
builtin.c:119: (near initialization for `builtins[68]')
builtin.c:120: `bin_setopt' undeclared here (not in a function)
builtin.c:120: initializer element is not constant
builtin.c:120: (near initialization for `builtins[69].handlerfunc')
builtin.c:120: initializer element is not constant
builtin.c:120: (near initialization for `builtins[69]')
builtin.c:121: `bin_fg' undeclared here (not in a function)
builtin.c:121: initializer element is not constant
builtin.c:121: (near initialization for `builtins[70].handlerfunc')
builtin.c:121: initializer element is not constant
builtin.c:121: (near initialization for `builtins[70]')
builtin.c:122: `bin_whence' undeclared here (not in a function)
builtin.c:122: initializer element is not constant
builtin.c:122: (near initialization for `builtins[71].handlerfunc')
builtin.c:122: initializer element is not constant
builtin.c:122: (near initialization for `builtins[71]')
builtin.c:123: `bin_whence' undeclared here (not in a function)
builtin.c:123: initializer element is not constant
builtin.c:123: (near initialization for `builtins[72].handlerfunc')
builtin.c:123: initializer element is not constant
builtin.c:123: (near initialization for `builtins[72]')
builtin.c:124: `bin_whence' undeclared here (not in a function)
builtin.c:124: initializer element is not constant
builtin.c:124: (near initialization for `builtins[73].handlerfunc')
builtin.c:124: initializer element is not constant
builtin.c:124: (near initialization for `builtins[73]')
builtin.c:125: `bin_zmodload' undeclared here (not in a function)
builtin.c:125: initializer element is not constant
builtin.c:125: (near initialization for `builtins[74].handlerfunc')
builtin.c:125: initializer element is not constant
builtin.c:125: (near initialization for `builtins[74]')
builtin.c:126: `bin_zcompile' undeclared here (not in a function)
builtin.c:126: initializer element is not constant
builtin.c:126: (near initialization for `builtins[75].handlerfunc')
builtin.c:126: initializer element is not constant
builtin.c:126: (near initialization for `builtins[75]')
builtin.c:141: warning: no previous prototype for `createbuiltintable'
builtin.c: In function `createbuiltintable':
builtin.c:142: warning: assignment makes pointer from integer without a cast
builtin.c:144: `hasher' undeclared (first use in this function)
builtin.c:144: (Each undeclared identifier is reported only once
builtin.c:144: for each function it appears in.)
builtin.c:148: `addhashnode' undeclared (first use in this function)
builtin.c:149: `gethashnode' undeclared (first use in this function)
builtin.c:150: `gethashnode2' undeclared (first use in this function)
builtin.c:151: `removehashnode' undeclared (first use in this function)
builtin.c:152: `disablehashnode' undeclared (first use in this function)
builtin.c:153: `enablehashnode' undeclared (first use in this function)
builtin.c:154: `freebuiltinnode' undeclared (first use in this function)
builtin.c:155: `printbuiltinnode' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:165: `printbuiltinnode' used prior to declaration
builtin.c:190: `freebuiltinnode' used prior to declaration
builtin.c:210: warning: no previous prototype for `execbuiltin'
builtin.c: In function `execbuiltin':
builtin.c:215: `opts' undeclared (first use in this function)
builtin.c:257: warning: assignment makes pointer from integer without a cast
builtin.c:264: warning: assignment makes pointer from integer without a cast
builtin.c:285: `typtab' undeclared (first use in this function)
builtin.c:343: `errflag' undeclared (first use in this function)
builtin.c:358: `xtrerr' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:378: warning: no previous prototype for `bin_enable'
builtin.c: In function `bin_enable':
builtin.c:388: `shfunctab' undeclared (first use in this function)
builtin.c:390: `reswdtab' undeclared (first use in this function)
builtin.c:392: `aliastab' undeclared (first use in this function)
builtin.c:410: `queueing_enabled' undeclared (first use in this function)
builtin.c:412: `queue_front' undeclared (first use in this function)
builtin.c:412: `queue_rear' undeclared (first use in this function)
builtin.c:412: `signal_mask_queue' undeclared (first use in this function)
builtin.c:412: `signal_queue' undeclared (first use in this function)
builtin.c:421: warning: assignment makes pointer from integer without a cast
builtin.c:379: warning: `ht' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:458: warning: no previous prototype for `bin_set'
builtin.c: In function `bin_set':
builtin.c:521: `queueing_enabled' undeclared (first use in this function)
builtin.c:523: `paramtab' undeclared (first use in this function)
builtin.c:532: `queue_front' undeclared (first use in this function)
builtin.c:532: `queue_rear' undeclared (first use in this function)
builtin.c:532: `signal_mask_queue' undeclared (first use in this function)
builtin.c:532: `signal_queue' undeclared (first use in this function)
builtin.c:539: `strpcmp' undeclared (first use in this function)
builtin.c:539: `invstrpcmp' undeclared (first use in this function)
builtin.c:545: warning: assignment makes pointer from integer without a cast
builtin.c:551: warning: assignment makes pointer from integer without a cast
builtin.c:554: warning: assignment makes pointer from integer without a cast
builtin.c:560: `pparams' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:577: warning: no previous prototype for `bin_pwd'
builtin.c: In function `bin_pwd':
builtin.c:578: `opts' undeclared (first use in this function)
builtin.c:579: warning: format argument is not a pointer (arg 2)
builtin.c:581: `pwd' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:597: warning: no previous prototype for `bin_dirs'
builtin.c: In function `bin_dirs':
builtin.c:602: `queueing_enabled' undeclared (first use in this function)
builtin.c:608: `pwd' undeclared (first use in this function)
builtin.c:614: `queue_front' undeclared (first use in this function)
builtin.c:614: `queue_rear' undeclared (first use in this function)
builtin.c:614: `signal_mask_queue' undeclared (first use in this function)
builtin.c:614: `signal_queue' undeclared (first use in this function)
builtin.c:624: warning: assignment makes pointer from integer without a cast
builtin.c:628: `freestr' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:640: warning: no previous prototype for `set_pwd_env'
builtin.c: In function `set_pwd_env':
builtin.c:645: `paramtab' undeclared (first use in this function)
builtin.c:657: `pwd' undeclared (first use in this function)
builtin.c:658: `oldpwd' undeclared (first use in this function)
builtin.c:663: warning: assignment makes pointer from integer without a cast
builtin.c:668: warning: assignment makes pointer from integer without a cast
builtin.c:641: warning: `pm' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:684: warning: no previous prototype for `bin_cd'
builtin.c: In function `bin_cd':
builtin.c:688: `opts' undeclared (first use in this function)
builtin.c:711: `queueing_enabled' undeclared (first use in this function)
builtin.c:712: `pwd' undeclared (first use in this function)
builtin.c:713: warning: assignment makes pointer from integer without a cast
builtin.c:715: `queue_front' undeclared (first use in this function)
builtin.c:715: `queue_rear' undeclared (first use in this function)
builtin.c:715: `signal_mask_queue' undeclared (first use in this function)
builtin.c:715: `signal_queue' undeclared (first use in this function)
builtin.c:720: warning: passing arg 1 of `stat' makes pointer from integer without a cast
builtin.c:725: warning: passing arg 1 of `chdir' makes pointer from integer without a cast
builtin.c:732: warning: passing arg 1 of `chdir' makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:744: warning: `cd_get_dest' was used with no prototype before its definition
builtin.c:744: warning: `cd_get_dest' was declared implicitly `extern' and later `static'
builtin.c:713: warning: previous declaration of `cd_get_dest'
builtin.c:744: warning: type mismatch with previous implicit declaration
builtin.c:713: warning: previous implicit declaration of `cd_get_dest'
builtin.c:744: warning: `cd_get_dest' was previously implicitly declared to return `int'
builtin.c: In function `cd_get_dest':
builtin.c:754: `opts' undeclared (first use in this function)
builtin.c:759: `home' undeclared (first use in this function)
builtin.c:780: `oldpwd' undeclared (first use in this function)
builtin.c:786: `pwd' undeclared (first use in this function)
builtin.c:813: warning: assignment makes pointer from integer without a cast
builtin.c:784: warning: `len3' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:836: warning: `cd_do_chdir' was used with no prototype before its definition
builtin.c:836: warning: `cd_do_chdir' was declared implicitly `extern' and later `static'
builtin.c:813: warning: previous declaration of `cd_do_chdir'
builtin.c:836: warning: type mismatch with previous implicit declaration
builtin.c:813: warning: previous implicit declaration of `cd_do_chdir'
builtin.c:836: warning: `cd_do_chdir' was previously implicitly declared to return `int'
builtin.c: In function `cd_do_chdir':
builtin.c:865: warning: assignment makes pointer from integer without a cast
builtin.c:873: `cdpath' undeclared (first use in this function)
builtin.c:879: warning: assignment makes pointer from integer without a cast
builtin.c:888: warning: assignment makes pointer from integer without a cast
builtin.c:899: warning: assignment makes pointer from integer without a cast
builtin.c:900: warning: assignment makes pointer from integer without a cast
builtin.c:837: warning: `pp' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:921: warning: no previous prototype for `cd_able_vars'
builtin.c:921: warning: type mismatch with previous implicit declaration
builtin.c:899: warning: previous implicit declaration of `cd_able_vars'
builtin.c:921: warning: `cd_able_vars' was previously implicitly declared to return `int'
builtin.c: In function `cd_able_vars':
builtin.c:924: `opts' undeclared (first use in this function)
builtin.c:928: warning: assignment makes pointer from integer without a cast
builtin.c:932: warning: assignment makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:949: warning: `cd_try_chdir' was used with no prototype before its definition
builtin.c:949: warning: `cd_try_chdir' was declared implicitly `extern' and later `static'
builtin.c:900: warning: previous declaration of `cd_try_chdir'
builtin.c:949: warning: type mismatch with previous implicit declaration
builtin.c:900: warning: previous implicit declaration of `cd_try_chdir'
builtin.c:949: warning: `cd_try_chdir' was previously implicitly declared to return `int'
builtin.c: In function `cd_try_chdir':
builtin.c:956: warning: assignment makes pointer from integer without a cast
builtin.c:959: `pwd' undeclared (first use in this function)
builtin.c:961: warning: assignment makes pointer from integer without a cast
builtin.c:969: warning: assignment makes pointer from integer without a cast
builtin.c:974: warning: assignment makes pointer from integer without a cast
builtin.c:999: warning: return makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:1007: warning: `cd_new_pwd' was used with no prototype before its definition
builtin.c:1007: warning: `cd_new_pwd' was declared implicitly `extern' and later `static'
builtin.c:718: warning: previous declaration of `cd_new_pwd'
builtin.c:1007: warning: type mismatch with previous implicit declaration
builtin.c:718: warning: previous implicit declaration of `cd_new_pwd'
builtin.c:1007: warning: `cd_new_pwd' was previously implicitly declared to return `int'
builtin.c: In function `cd_new_pwd':
builtin.c:1014: warning: assignment makes pointer from integer without a cast
builtin.c:1018: warning: assignment makes pointer from integer without a cast
builtin.c:1019: `opts' undeclared (first use in this function)
builtin.c:1024: warning: assignment makes pointer from integer without a cast
builtin.c:1039: `oldpwd' undeclared (first use in this function)
builtin.c:1040: `pwd' undeclared (first use in this function)
builtin.c:1053: warning: assignment makes pointer from integer without a cast
builtin.c:1053: `dummy_eprog' undeclared (first use in this function)
builtin.c:1054: `sfcontext' undeclared (first use in this function)
builtin.c:1008: warning: `prog' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:1078: warning: `printdirstack' was used with no prototype before its definition
builtin.c:1078: warning: `printdirstack' was declared implicitly `extern' and later `static'
builtin.c:1046: warning: previous declaration of `printdirstack'
builtin.c:1078: warning: type mismatch with previous implicit declaration
builtin.c:1046: warning: previous implicit declaration of `printdirstack'
builtin.c:1078: warning: `printdirstack' was previously implicitly declared to return `int'
builtin.c: In function `printdirstack':
builtin.c:1081: `pwd' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:1098: warning: no previous prototype for `fixdir'
builtin.c: In function `fixdir':
builtin.c:1139: `opts' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:1183: warning: no previous prototype for `printqt'
builtin.c: In function `printqt':
builtin.c:1187: `opts' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:1195: warning: no previous prototype for `printif'
builtin.c:1210: warning: no previous prototype for `bin_fc'
builtin.c: In function `bin_fc':
builtin.c:1217: `opts' undeclared (first use in this function)
builtin.c:1225: warning: assignment makes pointer from integer without a cast
builtin.c:1230: `queueing_enabled' undeclared (first use in this function)
builtin.c:1234: `queue_front' undeclared (first use in this function)
builtin.c:1234: `queue_rear' undeclared (first use in this function)
builtin.c:1234: `signal_mask_queue' undeclared (first use in this function)
builtin.c:1234: `signal_queue' undeclared (first use in this function)
builtin.c:1295: `curline' undeclared (first use in this function)
builtin.c:1300: `hist_ring' undeclared (first use in this function)
builtin.c:1300: `curhist' undeclared (first use in this function)
builtin.c:1320: warning: assignment makes pointer from integer without a cast
builtin.c:1330: warning: pointer/integer type mismatch in conditional expression
builtin.c:1340: `lastval' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:1362: warning: `fcgetcomm' was used with no prototype before its definition
builtin.c:1362: warning: `fcgetcomm' was declared implicitly `extern' and later `static'
builtin.c:1279: warning: previous declaration of `fcgetcomm'
builtin.c: In function `fcgetcomm':
builtin.c:1369: `curline' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:1429: warning: `fclist' was used with no prototype before its definition
builtin.c:1429: warning: `fclist' was declared implicitly `extern' and later `static'
builtin.c:1327: warning: previous declaration of `fclist'
builtin.c: In function `fclist':
builtin.c:1444: warning: assignment makes pointer from integer without a cast
builtin.c:1454: warning: assignment makes pointer from integer without a cast
builtin.c:1503: warning: assignment makes pointer from integer without a cast
builtin.c:1507: warning: assignment makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:1527: warning: `fcedit' was used with no prototype before its definition
builtin.c:1527: warning: `fcedit' was declared implicitly `extern' and later `static'
builtin.c:1335: warning: previous declaration of `fcedit'
builtin.c: In function `fcedit':
builtin.c:1533: warning: assignment makes pointer from integer without a cast
builtin.c:1537: `lastval' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:1584: warning: no previous prototype for `typeset_single'
builtin.c: In function `typeset_single':
builtin.c:1609: `locallevel' undeclared (first use in this function)
builtin.c:1657: `paramtab' undeclared (first use in this function)
builtin.c:1660: `opts' undeclared (first use in this function)
builtin.c:1690: warning: assignment makes pointer from integer without a cast
builtin.c:1695: warning: assignment makes pointer from integer without a cast
builtin.c:1726: warning: assignment makes pointer from integer without a cast
builtin.c:1728: warning: assignment makes pointer from integer without a cast
builtin.c:1794: `realparamtab' undeclared (first use in this function)
builtin.c:1795: `gethashnode2' used prior to declaration
builtin.c:1811: warning: assignment makes pointer from integer without a cast
builtin.c:1826: warning: assignment makes pointer from integer without a cast
builtin.c:1840: `colonarrsetfn' undeclared (first use in this function)
builtin.c:1841: `colonarrgetfn' undeclared (first use in this function)
builtin.c:1851: warning: assignment makes pointer from integer without a cast
builtin.c:1865: warning: passing arg 2 of pointer to function makes pointer from integer without a cast
builtin.c:1875: warning: passing arg 2 of pointer to function makes pointer from integer without a cast
builtin.c:1878: warning: passing arg 2 of pointer to function makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:1898: warning: no previous prototype for `bin_typeset'
builtin.c: In function `bin_typeset':
builtin.c:1951: `queueing_enabled' undeclared (first use in this function)
builtin.c:1959: `paramtab' undeclared (first use in this function)
builtin.c:1960: `queue_front' undeclared (first use in this function)
builtin.c:1960: `queue_rear' undeclared (first use in this function)
builtin.c:1960: `signal_mask_queue' undeclared (first use in this function)
builtin.c:1960: `signal_queue' undeclared (first use in this function)
builtin.c:1965: `opts' undeclared (first use in this function)
builtin.c:2010: `locallevel' undeclared (first use in this function)
builtin.c:2012: warning: assignment makes pointer from integer without a cast
builtin.c:2043: warning: assignment makes pointer from integer without a cast
builtin.c:2044: warning: assignment makes pointer from integer without a cast
builtin.c:2064: warning: initialization makes pointer from integer without a cast
builtin.c:2068: warning: assignment makes pointer from integer without a cast
builtin.c:2111: `realparamtab' undeclared (first use in this function)
builtin.c:2112: `gethashnode2' used prior to declaration
builtin.c:1899: warning: `pm' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:2126: warning: no previous prototype for `eval_autoload'
builtin.c: In function `eval_autoload':
builtin.c:2132: `dummy_eprog' undeclared (first use in this function)
builtin.c:2139: warning: assignment makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:2153: warning: no previous prototype for `bin_functions'
builtin.c: In function `bin_functions':
builtin.c:2175: `scriptname' undeclared (first use in this function)
builtin.c:2189: `queueing_enabled' undeclared (first use in this function)
builtin.c:2191: `shfunctab' undeclared (first use in this function)
builtin.c:2206: `queue_front' undeclared (first use in this function)
builtin.c:2206: `queue_rear' undeclared (first use in this function)
builtin.c:2206: `signal_mask_queue' undeclared (first use in this function)
builtin.c:2206: `signal_queue' undeclared (first use in this function)
builtin.c:2216: warning: assignment makes pointer from integer without a cast
builtin.c:2268: warning: assignment makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:2282: warning: no previous prototype for `mkautofn'
builtin.c:2282: warning: type mismatch with previous implicit declaration
builtin.c:2268: warning: previous implicit declaration of `mkautofn'
builtin.c:2282: warning: `mkautofn' was previously implicitly declared to return `int'
builtin.c:2309: warning: no previous prototype for `bin_unset'
builtin.c: In function `bin_unset':
builtin.c:2325: warning: assignment makes pointer from integer without a cast
builtin.c:2327: `queueing_enabled' undeclared (first use in this function)
builtin.c:2328: `paramtab' undeclared (first use in this function)
builtin.c:2333: `opts' undeclared (first use in this function)
builtin.c:2340: `queue_front' undeclared (first use in this function)
builtin.c:2340: `queue_rear' undeclared (first use in this function)
builtin.c:2340: `signal_mask_queue' undeclared (first use in this function)
builtin.c:2340: `signal_queue' undeclared (first use in this function)
builtin.c:2366: `realparamtab' undeclared (first use in this function)
builtin.c:2367: `gethashnode2' used prior to declaration
builtin.c:2310: warning: `pm' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:2401: warning: no previous prototype for `bin_whence'
builtin.c: In function `bin_whence':
builtin.c:2432: warning: assignment makes pointer from integer without a cast
builtin.c:2438: `queueing_enabled' undeclared (first use in this function)
builtin.c:2444: `aliastab' undeclared (first use in this function)
builtin.c:2448: `reswdtab' undeclared (first use in this function)
builtin.c:2452: `shfunctab' undeclared (first use in this function)
builtin.c:2461: `cmdnamtab' undeclared (first use in this function)
builtin.c:2465: `queue_front' undeclared (first use in this function)
builtin.c:2465: `queue_rear' undeclared (first use in this function)
builtin.c:2465: `signal_mask_queue' undeclared (first use in this function)
builtin.c:2465: `signal_queue' undeclared (first use in this function)
builtin.c:2520: `path' undeclared (first use in this function)
builtin.c:2522: warning: assignment makes pointer from integer without a cast
builtin.c:2523: warning: assignment makes pointer from integer without a cast
builtin.c:2545: warning: assignment makes pointer from integer without a cast
builtin.c:2517: warning: `pp' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:2591: warning: no previous prototype for `bin_hash'
builtin.c: In function `bin_hash':
builtin.c:2599: `nameddirtab' undeclared (first use in this function)
builtin.c:2601: `cmdnamtab' undeclared (first use in this function)
builtin.c:2625: `queueing_enabled' undeclared (first use in this function)
builtin.c:2627: `queue_front' undeclared (first use in this function)
builtin.c:2627: `queue_rear' undeclared (first use in this function)
builtin.c:2627: `signal_mask_queue' undeclared (first use in this function)
builtin.c:2627: `signal_queue' undeclared (first use in this function)
builtin.c:2637: warning: assignment makes pointer from integer without a cast
builtin.c:2646: `opts' undeclared (first use in this function)
builtin.c:2653: warning: assignment makes pointer from integer without a cast
builtin.c:2655: warning: assignment makes pointer from integer without a cast
builtin.c:2657: warning: assignment makes pointer from integer without a cast
builtin.c:2659: warning: assignment makes pointer from integer without a cast
builtin.c:2661: warning: passing arg 2 of pointer to function makes pointer from integer without a cast
builtin.c:2674: `path' undeclared (first use in this function)
builtin.c:2592: warning: `ht' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:2694: warning: no previous prototype for `bin_unhash'
builtin.c: In function `bin_unhash':
builtin.c:2703: `nameddirtab' undeclared (first use in this function)
builtin.c:2705: `shfunctab' undeclared (first use in this function)
builtin.c:2707: `aliastab' undeclared (first use in this function)
builtin.c:2709: `cmdnamtab' undeclared (first use in this function)
builtin.c:2717: warning: assignment makes pointer from integer without a cast
builtin.c:2719: `queueing_enabled' undeclared (first use in this function)
builtin.c:2730: `queue_front' undeclared (first use in this function)
builtin.c:2730: `queue_rear' undeclared (first use in this function)
builtin.c:2730: `signal_mask_queue' undeclared (first use in this function)
builtin.c:2730: `signal_queue' undeclared (first use in this function)
builtin.c:2695: warning: `ht' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:2764: warning: no previous prototype for `bin_alias'
builtin.c: In function `bin_alias':
builtin.c:2793: `queueing_enabled' undeclared (first use in this function)
builtin.c:2794: `aliastab' undeclared (first use in this function)
builtin.c:2795: `queue_front' undeclared (first use in this function)
builtin.c:2795: `queue_rear' undeclared (first use in this function)
builtin.c:2795: `signal_mask_queue' undeclared (first use in this function)
builtin.c:2795: `signal_queue' undeclared (first use in this function)
builtin.c:2804: warning: assignment makes pointer from integer without a cast
builtin.c:2765: warning: `a' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:2848: warning: no previous prototype for `bin_true'
builtin.c:2857: warning: no previous prototype for `bin_false'
builtin.c:2871: warning: no previous prototype for `bin_print'
builtin.c: In function `bin_print':
builtin.c:2884: warning: assignment makes pointer from integer without a cast
builtin.c:2902: warning: assignment makes pointer from integer without a cast
builtin.c:2911: warning: initialization makes pointer from integer without a cast
builtin.c:2912: warning: assignment makes pointer from integer without a cast
builtin.c:2919: `queueing_enabled' undeclared (first use in this function)
builtin.c:2920: warning: assignment makes pointer from integer without a cast
builtin.c:2922: warning: initialization makes pointer from integer without a cast
builtin.c:2928: `queue_front' undeclared (first use in this function)
builtin.c:2928: `queue_rear' undeclared (first use in this function)
builtin.c:2928: `signal_mask_queue' undeclared (first use in this function)
builtin.c:2928: `signal_queue' undeclared (first use in this function)
builtin.c:2945: warning: assignment makes pointer from integer without a cast
builtin.c:2959: warning: assignment makes pointer from integer without a cast
builtin.c:2962: `histtab' undeclared (first use in this function)
builtin.c:2975: `coprocout' undeclared (first use in this function)
builtin.c:2989: `cstrpcmp' undeclared (first use in this function)
builtin.c:2992: `strpcmp' undeclared (first use in this function)
builtin.c:2995: `invcstrpcmp' undeclared (first use in this function)
builtin.c:2998: `invstrpcmp' undeclared (first use in this function)
builtin.c:3015: `columns' undeclared (first use in this function)
builtin.c:2872: warning: `fd' might be used uninitialized in this function
builtin.c:3007: warning: `nc' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:3054: warning: no previous prototype for `bin_shift'
builtin.c: In function `bin_shift':
builtin.c:3059: `queueing_enabled' undeclared (first use in this function)
builtin.c:3064: `queue_front' undeclared (first use in this function)
builtin.c:3064: `queue_rear' undeclared (first use in this function)
builtin.c:3064: `signal_mask_queue' undeclared (first use in this function)
builtin.c:3064: `signal_queue' undeclared (first use in this function)
builtin.c:3071: warning: assignment makes pointer from integer without a cast
builtin.c:3077: warning: assignment makes pointer from integer without a cast
builtin.c:3081: `pparams' undeclared (first use in this function)
builtin.c:3085: warning: assignment makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:3105: warning: no previous prototype for `bin_getopts'
builtin.c: In function `bin_getopts':
builtin.c:3107: warning: initialization makes pointer from integer without a cast
builtin.c:3108: `pparams' undeclared (first use in this function)
builtin.c:3113: `zoptind' undeclared (first use in this function)
builtin.c:3128: warning: assignment makes pointer from integer without a cast
builtin.c:3133: warning: assignment makes pointer from integer without a cast
builtin.c:3156: `zoptarg' undeclared (first use in this function)
builtin.c:3175: warning: assignment makes pointer from integer without a cast
builtin.c:3177: warning: assignment makes pointer from integer without a cast
builtin.c: At top level:
builtin.c:3205: warning: no previous prototype for `bin_break'
builtin.c: In function `bin_break':
builtin.c:3206: `lastval' undeclared (first use in this function)
builtin.c:3216: `loops' undeclared (first use in this function)
builtin.c:3220: `contflag' undeclared (first use in this function)
builtin.c:3226: `breaks' undeclared (first use in this function)
builtin.c:3229: `opts' undeclared (first use in this function)
builtin.c:3229: `locallevel' undeclared (first use in this function)
builtin.c:3229: `sourcelevel' undeclared (first use in this function)
builtin.c:3230: `retflag' undeclared (first use in this function)
builtin.c:3233: `trapreturn' undeclared (first use in this function)
builtin.c: In function `checkjobs':
builtin.c:3267: `thisjob' undeclared (first use in this function)
builtin.c:3267: `jobtab' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:3292: warning: no previous prototype for `zexit'
builtin.c:3292: warning: type mismatch with previous implicit declaration
builtin.c:3237: warning: previous implicit declaration of `zexit'
builtin.c:3292: warning: `zexit' was previously implicitly declared to return `int'
builtin.c: In function `zexit':
builtin.c:3295: `opts' undeclared (first use in this function)
builtin.c:3312: `nohistsave' undeclared (first use in this function)
builtin.c:3314: `subsh' undeclared (first use in this function)
builtin.c:3322: `sigtrapped' undeclared (first use in this function)
builtin.c:3324: `zshhooks' undeclared (first use in this function)
builtin.c:3325: `mypid' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:3336: warning: no previous prototype for `bin_dot'
builtin.c: In function `bin_dot':
builtin.c:3344: `pparams' undeclared (first use in this function)
builtin.c:3349: warning: assignment makes pointer from integer without a cast
builtin.c:3350: `opts' undeclared (first use in this function)
builtin.c:3351: `argzero' undeclared (first use in this function)
builtin.c:3354: warning: assignment makes pointer from integer without a cast
builtin.c:3379: `path' undeclared (first use in this function)
builtin.c:3384: warning: assignment makes pointer from integer without a cast
builtin.c:3386: warning: assignment makes pointer from integer without a cast
builtin.c:3388: warning: assignment makes pointer from integer without a cast
builtin.c:3408: `lastval' undeclared (first use in this function)
builtin.c:3409: warning: control reaches end of non-void function
builtin.c:3339: warning: `t' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:3414: warning: no previous prototype for `bin_emulate'
builtin.c: In function `bin_emulate':
builtin.c:3417: `opts' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:3426: warning: no previous prototype for `bin_eval'
builtin.c: In function `bin_eval':
builtin.c:3429: warning: assignment makes pointer from integer without a cast
builtin.c:3431: `errflag' undeclared (first use in this function)
builtin.c:3436: `lastval' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:3457: warning: no previous prototype for `bin_read'
builtin.c: In function `bin_read':
builtin.c:3461: `term' undeclared (first use in this function)
builtin.c:3461: `zleactive' undeclared (first use in this function)
builtin.c:3461: `getkeyptr' undeclared (first use in this function)
builtin.c:3463: warning: initialization makes pointer from integer without a cast
builtin.c:3469: `typtab' undeclared (first use in this function)
builtin.c:3490: `SHTTY' undeclared (first use in this function)
builtin.c:3494: `shout' undeclared (first use in this function)
builtin.c:3508: `opts' undeclared (first use in this function)
builtin.c:3509: `shttyinfo' undeclared (first use in this function)
builtin.c:3511: `mypgrp' undeclared (first use in this function)
builtin.c:3523: `coprocin' undeclared (first use in this function)
builtin.c:3559: `getkeyptr' used prior to declaration
builtin.c:3611: `getkeyptr' used prior to declaration
builtin.c:3638: warning: pointer/integer type mismatch in conditional expression
builtin.c:3642: `dummy_sigset1' undeclared (first use in this function)
builtin.c:3642: `sigchld_mask' undeclared (first use in this function)
builtin.c:3642: `dummy_sigset2' undeclared (first use in this function)
builtin.c:3642: warning: left-hand operand of comma expression has no effect
builtin.c:3713: `coprocout' undeclared (first use in this function)
builtin.c:3745: warning: left-hand operand of comma expression has no effect
builtin.c: At top level:
builtin.c:3814: warning: `zread' was used with no prototype before its definition
builtin.c:3814: warning: `zread' was declared implicitly `extern' and later `static'
builtin.c:3747: warning: previous declaration of `zread'
builtin.c: In function `zread':
builtin.c:3819: `getkeyptr' used prior to declaration
builtin.c:3862: `errflag' undeclared (first use in this function)
builtin.c:3862: `retflag' undeclared (first use in this function)
builtin.c:3862: `breaks' undeclared (first use in this function)
builtin.c:3862: `contflag' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:3879: warning: no previous prototype for `testlex'
builtin.c: In function `testlex':
builtin.c:3880: `tok' undeclared (first use in this function)
builtin.c:3883: `tokstr' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:3906: warning: no previous prototype for `bin_test'
builtin.c: In function `bin_test':
builtin.c:3926: `tok' undeclared (first use in this function)
builtin.c:3927: `condlex' undeclared (first use in this function)
builtin.c:3929: warning: assignment makes pointer from integer without a cast
builtin.c:3930: `yylex' undeclared (first use in this function)
builtin.c:3932: `errflag' undeclared (first use in this function)
builtin.c:3938: `tokstr' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:3961: warning: no previous prototype for `bin_times'
builtin.c:3983: warning: no previous prototype for `bin_trap'
builtin.c: In function `bin_trap':
builtin.c:3993: `queueing_enabled' undeclared (first use in this function)
builtin.c:3994: `SIGCOUNT' undeclared (first use in this function)
builtin.c:3995: `sigtrapped' undeclared (first use in this function)
builtin.c:3999: `sigs' undeclared (first use in this function)
builtin.c:4000: `shfunctab' undeclared (first use in this function)
builtin.c:4004: `sigfuncs' undeclared (first use in this function)
builtin.c:4007: warning: assignment makes pointer from integer without a cast
builtin.c:4015: `queue_front' undeclared (first use in this function)
builtin.c:4015: `queue_rear' undeclared (first use in this function)
builtin.c:4015: `signal_mask_queue' undeclared (first use in this function)
builtin.c:4015: `signal_queue' undeclared (first use in this function)
builtin.c:4034: `dummy_eprog' undeclared (first use in this function)
builtin.c:4035: warning: assignment makes pointer from integer without a cast
builtin.c:4049: warning: assignment makes pointer from integer without a cast
builtin.c:3984: warning: `prog' might be used uninitialized in this function
builtin.c: At top level:
builtin.c:4059: warning: no previous prototype for `bin_ttyctl'
builtin.c: In function `bin_ttyctl':
builtin.c:4061: `ttyfrozen' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:4074: warning: no previous prototype for `bin_let'
builtin.c: In function `bin_let':
builtin.c:4080: `errflag' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:4092: warning: no previous prototype for `bin_umask'
builtin.c: In function `bin_umask':
builtin.c:4123: `typtab' undeclared (first use in this function)
builtin.c: At top level:
builtin.c:4203: warning: no previous prototype for `bin_notavail'
builtin.c:165: warning: `printbuiltinnode' defined but not used
builtin.c:190: warning: `freebuiltinnode' defined but not used
make[2]: *** [builtin.o] Error 1
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
make[1]: *** [modobjs] Error 2
make[1]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-4.0.4/Src'
make: *** [all] Error 1
[-- Attachment #4: configv3.1.9.txt --]
[-- Type: text/plain, Size: 8666 bytes --]
creating cache ./config.cache
configuring for zsh 3.1.9
checking host system type... i386-pc-sco3.2v5.0.5
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether large file support needs explicit enabling... no
checking how to run the C preprocessor... gcc -E
checking whether gcc needs -traditional... no
checking for working const... yes
checking for Cygwin environment... no
no
checking for executable suffix... no
checking for gcc option to accept ANSI C...
checking whether to use prototypes... yes
checking for working alloca.h... no
checking for alloca... yes
checking if the compiler supports union initialisation... yes
checking if signed to unsigned casting is broken... no
checking if the compiler supports variable-length arrays... yes
checking whether make sets ${MAKE}... yes
checking for a BSD compatible install... ./install-sh -c
checking for gawk... gawk
checking whether ln works... yes
checking for yodl... yodl
checking for dirent.h that defines DIR... yes
checking for opendir in -ldir... no
checking for ANSI C header files... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether stat file-mode macros are broken... no
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/time.h... yes
checking for sys/times.h... yes
checking for sys/select.h... yes
checking for termcap.h... no
checking for termio.h... yes
checking for termios.h... yes
checking for sys/param.h... yes
checking for sys/filio.h... no
checking for string.h... yes
checking for memory.h... yes
checking for limits.h... yes
checking for fcntl.h... yes
checking for libc.h... no
checking for sys/utsname.h... yes
checking for sys/resource.h... yes
checking for locale.h... yes
checking for errno.h... yes
checking for stdlib.h... yes
checking for unistd.h... yes
checking for sys/capability.h... no
checking for utmp.h... yes
checking for utmpx.h... yes
checking for sys/types.h... yes
checking for pwd.h... yes
checking for grp.h... yes
checking for poll.h... yes
checking for sys/mman.h... yes
checking for linux/tasks.h... no
checking for netinet/in_systm.h... yes
checking for dlfcn.h... yes
checking for dl.h... no
checking for conflicts in sys/time.h and sys/select.h... no
checking POSIX termios... yes
checking TIOCGWINSZ in termios.h... yes
checking for sys/ptem.h... yes
checking for printf in -lc... yes
checking for pow in -lm... yes
checking for tgetent in -ltermcap... yes
checking for yp_all... no
checking for yp_all in -lnsl... no
checking for dlopen in -ldl... yes
checking for cap_get_proc in -lcap... no
checking for socket in -lsocket... yes
checking if an include file defines ospeed... no
checking if you must define ospeed... yes
checking if tgetent accepts NULL... no
checking return type of signal handlers... void
checking for pid_t... yes
checking for off_t... yes
checking for ino_t... yes
checking for mode_t... yes
checking for uid_t in sys/types.h... yes
checking for size_t... yes
checking if long is 64 bits... no
checking if off_t is 64 bit... no
checking if ino_t is 64 bit... no
checking if compiler has a 64 bit type... long long
checking for a corresponding unsigned 64 bit type... unsigned long long
checking for sigset_t... yes
checking for struct timezone... yes
checking for struct utmp... yes
checking for struct utmpx... yes
checking for ut_host in struct utmp... no
checking for ut_host in struct utmpx... yes
checking for ut_xtime in struct utmpx... yes
checking for ut_tv in struct utmpx... yes
checking for d_ino in struct dirent... yes
checking for d_stat in struct dirent... no
checking for d_ino in struct direct... no
checking for d_stat in struct direct... no
checking for sin6_scope_id in struct sockaddr_in6... no
checking for strftime... yes
checking for difftime... yes
checking for gettimeofday... yes
checking for select... yes
checking for poll... yes
checking for readlink... yes
checking for lstat... yes
checking for lchown... yes
checking for faccessx... no
checking for fchdir... yes
checking for ftruncate... yes
checking for fseeko... no
checking for ftello... no
checking for mkfifo... yes
checking for _mktemp... yes
checking for waitpid... yes
checking for wait3... yes
checking for sigaction... yes
checking for sigblock... no
checking for sighold... yes
checking for sigrelse... yes
checking for sigsetmask... no
checking for sigprocmask... yes
checking for killpg... yes
checking for setpgid... yes
checking for setpgrp... yes
checking for tcsetpgrp... yes
checking for tcgetattr... yes
checking for nice... yes
checking for gethostname... yes
checking for gethostbyname2... no
checking for getipnodebyname... no
checking for inet_aton... yes
checking for inet_pton... yes
checking for inet_ntop... yes
checking for getlogin... yes
checking for getpwent... yes
checking for getpwnam... yes
checking for getpwuid... yes
checking for getgrgid... yes
checking for getgrnam... yes
checking for initgroups... yes
checking for nis_list... no
checking for setuid... yes
checking for seteuid... yes
checking for setreuid... yes
checking for setresuid... no
checking for setsid... yes
checking for memcpy... yes
checking for memmove... yes
checking for strstr... yes
checking for strerror... yes
checking for mmap... yes
checking for munmap... yes
checking for msync... yes
checking for cap_get_proc... no
checking for getrlimit... yes
checking for setlocale... yes
checking for uname... yes
checking for signgam... yes
checking for working strcoll... yes
checking whether getpgrp takes no argument... yes
checking for dlopen... yes
checking for dlerror... yes
checking for dlsym... yes
checking for dlclose... yes
checking for load... no
checking for loadquery... no
checking for loadbind... no
checking for unload... no
checking for shl_load... no
checking for shl_unload... no
checking for shl_findsym... no
checking what style of signals to use... POSIX_SIGNALS
checking where signal.h is located... /usr/local/lib/gcc-lib/i686-pc-sco3.2v5.0.5/3.0.3/include/sys/signal.h
checking where the RLIMIT macros are located... /usr/include/sys/resource.h
checking if rlim_t is longer than a long... no
checking if the rlim_t is unsigned... yes
checking for rlim_t... yes
checking for /dev/fd filesystem... /dev/fd
checking for RFS superroot directory... no
checking whether we should use the native getcwd... no
checking for NIS... no
checking for NIS+... no
checking for utmp file... /etc/utmp
checking for wtmp file... /etc/wtmp
checking for utmpx file... /etc/utmpx
checking for wtmpx file... /etc/wtmpx
checking for brk() prototype in <unistd.h>... yes
checking for sbrk() prototype in <unistd.h>... yes
checking for ioctl prototype in <sys/ioctl.h>... no
checking for mknod prototype in <sys/stat.h>... yes
checking if named FIFOs work... yes
checking if echo in /bin/sh interprets escape sequences... yes
checking if link() works... yes
checking if kill(pid, 0) returns ESRCH correctly... yes
checking if POSIX sigsuspend() works... yes
checking if tcsetpgrp() actually works... yes
checking if getpwnam() is faked... no
checking what to set MAXJOB to... 50
checking if your system use ELF binaries... yes
checking if your dlsym() needs a leading underscore...
checking if static/shared library linking is broken... yes
updating cache ./config.cache
creating ./config.status
creating Config/defs.mk
creating Makefile
creating Doc/Makefile
creating Etc/Makefile
creating Src/Makefile
creating Test/Makefile
creating Completion/Makefile
creating Functions/Makefile
creating config.h
zsh configuration
-----------------
zsh version : 3.1.9
host operating system : i386-pc-sco3.2v5.0.5
source code location : .
compiler : gcc
preprocessor flags :
executable compiler flags : -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2
executable linker flags : -s
library flags : -lsocket -ldl -ltermcap -lm -lc
installation basename : zsh
binary install path : /usr/local/bin
man page install path : /usr/local/man
info install path : /usr/local/info
functions install path : /usr/local/share/zsh/3.1.9/functions
installed functions : Core/* Base/* Builtins/* User/* Commands/* Debian/* Linux/* Bsd/* AIX/* X/* Zle/* Prompts/* Misc/* Zftp/*
[-- Attachment #5: makev3.1.9.txt --]
[-- Type: text/plain, Size: 48144 bytes --]
make[1]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
Linking with the standard modules.
if test -f mymods.conf; then \
cat mymods.conf > modules-bltin; \
elif test N = N; then \
sed -n '/L.* /{s/^.* //;p;}' < ./xmods.conf > modules-bltin; \
else \
echo > modules-bltin; \
fi
( cd .. && OMIT_MODULES="" \
/bin/sh Src/mkmodindex.sh Src ) \
> modules.index.tmp
Updated `modules.index'.
cd .. && /bin/sh $top_srcdir/Src/mkmakemod.sh Src Makemod
creating Src/Makemod.in
creating Src/Makemod
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
echo 'timestamp for *.mdd files' > ../Src/modules.stamp
creating Src/Aliases/Makefile.in
creating Src/Aliases/Makefile
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
creating Src/Builtins/Makefile.in
creating Src/Builtins/Makefile
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
creating Src/Modules/Makefile.in
creating Src/Modules/Makefile
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
creating Src/Zle/Makefile.in
creating Src/Zle/Makefile
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
gawk -f ./signames1.awk /usr/local/lib/gcc-lib/i686-pc-sco3.2v5.0.5/3.0.3/include/sys/signal.h >sigtmp.c
gcc -E sigtmp.c >sigtmp.out
gawk -f ./signames2.awk sigtmp.out > signames.c
rm -f sigtmp.c sigtmp.out
grep 'define.*SIGCOUNT' signames.c > sigcount.h
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
Updated `zsh.mdh'.
echo 'timestamp for zsh.mdh against zsh.mdd' > zsh.mdhs
gawk -f ../Src/makepro.awk builtin.c Src > builtin.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < builtin.syms) \
> builtin.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < builtin.syms) \
> `echo builtin.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk compat.c Src > compat.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compat.syms) \
> compat.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compat.syms) \
> `echo compat.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk cond.c Src > cond.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < cond.syms) \
> cond.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < cond.syms) \
> `echo cond.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk exec.c Src > exec.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < exec.syms) \
> exec.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < exec.syms) \
> `echo exec.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk glob.c Src > glob.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < glob.syms) \
> glob.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < glob.syms) \
> `echo glob.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk hashtable.c Src > hashtable.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < hashtable.syms) \
> hashtable.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < hashtable.syms) \
> `echo hashtable.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk hist.c Src > hist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < hist.syms) \
> hist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < hist.syms) \
> `echo hist.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk init.c Src > init.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < init.syms) \
> init.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < init.syms) \
> `echo init.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk input.c Src > input.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < input.syms) \
> input.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < input.syms) \
> `echo input.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk jobs.c Src > jobs.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < jobs.syms) \
> jobs.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < jobs.syms) \
> `echo jobs.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk lex.c Src > lex.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < lex.syms) \
> lex.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < lex.syms) \
> `echo lex.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk linklist.c Src > linklist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < linklist.syms) \
> linklist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < linklist.syms) \
> `echo linklist.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk loop.c Src > loop.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < loop.syms) \
> loop.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < loop.syms) \
> `echo loop.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk math.c Src > math.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < math.syms) \
> math.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < math.syms) \
> `echo math.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk mem.c Src > mem.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < mem.syms) \
> mem.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < mem.syms) \
> `echo mem.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk module.c Src > module.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < module.syms) \
> module.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < module.syms) \
> `echo module.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk options.c Src > options.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < options.syms) \
> options.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < options.syms) \
> `echo options.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk params.c Src > params.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < params.syms) \
> params.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < params.syms) \
> `echo params.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk parse.c Src > parse.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < parse.syms) \
> parse.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < parse.syms) \
> `echo parse.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk pattern.c Src > pattern.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < pattern.syms) \
> pattern.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < pattern.syms) \
> `echo pattern.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk prompt.c Src > prompt.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < prompt.syms) \
> prompt.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < prompt.syms) \
> `echo prompt.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk signals.c Src > signals.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < signals.syms) \
> signals.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < signals.syms) \
> `echo signals.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk signames.c Src > signames.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < signames.syms) \
> signames.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < signames.syms) \
> `echo signames.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk subst.c Src > subst.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < subst.syms) \
> subst.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < subst.syms) \
> `echo subst.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk text.c Src > text.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < text.syms) \
> text.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < text.syms) \
> `echo text.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk utils.c Src > utils.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < utils.syms) \
> utils.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < utils.syms) \
> `echo utils.epro | sed 's/\.epro$/.pro/'`
gawk -f ../Src/makepro.awk watch.c Src > watch.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < watch.syms) \
> watch.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < watch.syms) \
> `echo watch.epro | sed 's/\.epro$/.pro/'`
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
Updated `zsh.mdh'.
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
( \
echo '/** thingies.list **/'; \
echo '/** thingy structures for the known thingies **/'; \
echo; \
echo '/* format: T("name", TH_FLAGS, w_widget, t_nextthingy) */'; \
echo; \
sed -e 's/#.*//; /^$/d; s/" *,.*/"/' \
-e 's/^"/T("/; s/$/, 0,/; h' \
-e 's/-//g; s/^.*"\(.*\)".*/w_\1, t_D\1)/' \
-e 'H; g; s/\n/ /' \
< ./iwidgets.list; \
sed -e 's/#.*//; /^$/d; s/" *,.*/"/' \
-e 's/^"/T("./; s/$/, TH_IMMORTAL,/; h' \
-e 's/-//g; s/^.*"\.\(.*\)".*/w_\1, t_\1)/' \
-e 'H; g; s/\n/ /' \
< ./iwidgets.list; \
) > thingies.list
( \
echo '/** zle_things.h **/'; \
echo '/** indices of and pointers to known thingies **/'; \
echo; \
echo 'enum {'; \
sed -n -f ./zle_things.sed < thingies.list; \
echo ' ZLE_BUILTIN_THINGY_COUNT'; \
echo '};'; \
) > zle_things.h
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `zle.mdh'.
echo 'timestamp for zle.mdh against zle.mdd' > zle.mdhs
gawk -f ../../Src/makepro.awk zle_bindings.c Src/Zle > zle_bindings.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_bindings.syms) \
> zle_bindings.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_bindings.syms) \
> `echo zle_bindings.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_hist.c Src/Zle > zle_hist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_hist.syms) \
> zle_hist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_hist.syms) \
> `echo zle_hist.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_keymap.c Src/Zle > zle_keymap.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_keymap.syms) \
> zle_keymap.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_keymap.syms) \
> `echo zle_keymap.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_main.c Src/Zle > zle_main.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_main.syms) \
> zle_main.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_main.syms) \
> `echo zle_main.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_misc.c Src/Zle > zle_misc.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_misc.syms) \
> zle_misc.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_misc.syms) \
> `echo zle_misc.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_move.c Src/Zle > zle_move.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_move.syms) \
> zle_move.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_move.syms) \
> `echo zle_move.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_params.c Src/Zle > zle_params.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_params.syms) \
> zle_params.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_params.syms) \
> `echo zle_params.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_refresh.c Src/Zle > zle_refresh.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_refresh.syms) \
> zle_refresh.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_refresh.syms) \
> `echo zle_refresh.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_thingy.c Src/Zle > zle_thingy.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_thingy.syms) \
> zle_thingy.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_thingy.syms) \
> `echo zle_thingy.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_tricky.c Src/Zle > zle_tricky.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_tricky.syms) \
> zle_tricky.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_tricky.syms) \
> `echo zle_tricky.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_utils.c Src/Zle > zle_utils.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_utils.syms) \
> zle_utils.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_utils.syms) \
> `echo zle_utils.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_vi.c Src/Zle > zle_vi.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_vi.syms) \
> zle_vi.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_vi.syms) \
> `echo zle_vi.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk zle_word.c Src/Zle > zle_word.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle_word.syms) \
> zle_word.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle_word.syms) \
> `echo zle_word.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `zle.mdh'.
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `complete.mdh'.
echo 'timestamp for complete.mdh against complete.mdd' > complete.mdhs
gawk -f ../../Src/makepro.awk complete.c Src/Zle > complete.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < complete.syms) \
> complete.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < complete.syms) \
> `echo complete.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk compcore.c Src/Zle > compcore.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compcore.syms) \
> compcore.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compcore.syms) \
> `echo compcore.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk compmatch.c Src/Zle > compmatch.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compmatch.syms) \
> compmatch.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compmatch.syms) \
> `echo compmatch.epro | sed 's/\.epro$/.pro/'`
gawk -f ../../Src/makepro.awk compresult.c Src/Zle > compresult.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compresult.syms) \
> compresult.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compresult.syms) \
> `echo compresult.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `complete.mdh'.
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `compctl.mdh'.
echo 'timestamp for compctl.mdh against compctl.mdd' > compctl.mdhs
gawk -f ../../Src/makepro.awk compctl.c Src/Zle > compctl.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compctl.syms) \
> compctl.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compctl.syms) \
> `echo compctl.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `compctl.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `compctl.mdh'.
echo 'timestamp for compctl.mdh against compctl.mdd' > compctl.mdhs
sed 's,@NAME@,compctl,g' < ./alias.c.in > compctl.c
gawk -f ../../Src/makepro.awk compctl.c Src/Aliases > compctl.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < compctl.syms) \
> compctl.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < compctl.syms) \
> `echo compctl.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `compctl.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `complete.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `complete.mdh'.
echo 'timestamp for complete.mdh against complete.mdd' > complete.mdhs
sed 's,@NAME@,complete,g' < ./alias.c.in > complete.c
gawk -f ../../Src/makepro.awk complete.c Src/Aliases > complete.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < complete.syms) \
> complete.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < complete.syms) \
> `echo complete.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `complete.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `complist.mdh'.
echo 'timestamp for complist.mdh against complist.mdd' > complist.mdhs
gawk -f ../../Src/makepro.awk complist.c Src/Zle > complist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < complist.syms) \
> complist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < complist.syms) \
> `echo complist.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `complist.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `complist.mdh'.
echo 'timestamp for complist.mdh against complist.mdd' > complist.mdhs
sed 's,@NAME@,complist,g' < ./alias.c.in > complist.c
gawk -f ../../Src/makepro.awk complist.c Src/Aliases > complist.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < complist.syms) \
> complist.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < complist.syms) \
> `echo complist.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `complist.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `computil.mdh'.
echo 'timestamp for computil.mdh against computil.mdd' > computil.mdhs
gawk -f ../../Src/makepro.awk computil.c Src/Zle > computil.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < computil.syms) \
> computil.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < computil.syms) \
> `echo computil.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `computil.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `computil.mdh'.
echo 'timestamp for computil.mdh against computil.mdd' > computil.mdhs
sed 's,@NAME@,computil,g' < ./alias.c.in > computil.c
gawk -f ../../Src/makepro.awk computil.c Src/Aliases > computil.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < computil.syms) \
> computil.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < computil.syms) \
> `echo computil.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `computil.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
Updated `parameter.mdh'.
echo 'timestamp for parameter.mdh against parameter.mdd' > parameter.mdhs
gawk -f ../../Src/makepro.awk parameter.c Src/Modules > parameter.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < parameter.syms) \
> parameter.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < parameter.syms) \
> `echo parameter.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
Updated `parameter.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `parameter.mdh'.
echo 'timestamp for parameter.mdh against parameter.mdd' > parameter.mdhs
sed 's,@NAME@,parameter,g' < ./alias.c.in > parameter.c
gawk -f ../../Src/makepro.awk parameter.c Src/Aliases > parameter.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < parameter.syms) \
> parameter.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < parameter.syms) \
> `echo parameter.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `parameter.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
Updated `rlimits.mdh'.
echo 'timestamp for rlimits.mdh against rlimits.mdd' > rlimits.mdhs
gawk -f ../../Src/makepro.awk rlimits.c Src/Builtins > rlimits.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < rlimits.syms) \
> rlimits.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < rlimits.syms) \
> `echo rlimits.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
Updated `rlimits.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `rlimits.mdh'.
echo 'timestamp for rlimits.mdh against rlimits.mdd' > rlimits.mdhs
sed 's,@NAME@,rlimits,g' < ./alias.c.in > rlimits.c
gawk -f ../../Src/makepro.awk rlimits.c Src/Aliases > rlimits.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < rlimits.syms) \
> rlimits.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < rlimits.syms) \
> `echo rlimits.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `rlimits.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
Updated `sched.mdh'.
echo 'timestamp for sched.mdh against sched.mdd' > sched.mdhs
gawk -f ../../Src/makepro.awk sched.c Src/Builtins > sched.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < sched.syms) \
> sched.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < sched.syms) \
> `echo sched.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
Updated `sched.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `sched.mdh'.
echo 'timestamp for sched.mdh against sched.mdd' > sched.mdhs
sed 's,@NAME@,sched,g' < ./alias.c.in > sched.c
gawk -f ../../Src/makepro.awk sched.c Src/Aliases > sched.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < sched.syms) \
> sched.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < sched.syms) \
> `echo sched.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `sched.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `zle.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `zle.mdh'.
echo 'timestamp for zle.mdh against zle.mdd' > zle.mdhs
sed 's,@NAME@,zle,g' < ./alias.c.in > zle.c
gawk -f ../../Src/makepro.awk zle.c Src/Aliases > zle.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zle.syms) \
> zle.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zle.syms) \
> `echo zle.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `zle.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `zleparameter.mdh'.
echo 'timestamp for zleparameter.mdh against zleparameter.mdd' > zleparameter.mdhs
gawk -f ../../Src/makepro.awk zleparameter.c Src/Zle > zleparameter.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zleparameter.syms) \
> zleparameter.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zleparameter.syms) \
> `echo zleparameter.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
Updated `zleparameter.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `zleparameter.mdh'.
echo 'timestamp for zleparameter.mdh against zleparameter.mdd' > zleparameter.mdhs
sed 's,@NAME@,zleparameter,g' < ./alias.c.in > zleparameter.c
gawk -f ../../Src/makepro.awk zleparameter.c Src/Aliases > zleparameter.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zleparameter.syms) \
> zleparameter.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zleparameter.syms) \
> `echo zleparameter.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `zleparameter.mdh'.
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: `complete.mdh' is up to date.
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
Updated `zutil.mdh'.
echo 'timestamp for zutil.mdh against zutil.mdd' > zutil.mdhs
gawk -f ../../Src/makepro.awk zutil.c Src/Modules > zutil.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zutil.syms) \
> zutil.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zutil.syms) \
> `echo zutil.epro | sed 's/\.epro$/.pro/'`
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
Updated `zutil.mdh'.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `zutil.mdh'.
echo 'timestamp for zutil.mdh against zutil.mdd' > zutil.mdhs
sed 's,@NAME@,zutil,g' < ./alias.c.in > zutil.c
gawk -f ../../Src/makepro.awk zutil.c Src/Aliases > zutil.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < zutil.syms) \
> zutil.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < zutil.syms) \
> `echo zutil.epro | sed 's/\.epro$/.pro/'`
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
Updated `zutil.mdh'.
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `complete.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
rm -f stamp-modobjs.tmp
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o builtin.o builtin.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o compat.o compat.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o cond.o cond.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o exec.o exec.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o glob.o glob.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o hashtable.o hashtable.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o hist.o hist.c
srcdir='.' MODBINS='modules-bltin' \
XMODCF='./xmods.conf' /bin/sh ./mkbltnmlst.sh bltinmods.list
Updated `zshpaths.h'.
Creating `zshxmods.h'.
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o init.o init.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o input.o input.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o jobs.o jobs.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o lex.o lex.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o linklist.o linklist.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o loop.o loop.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o math.o math.c
math.c: In function `zzlex':
math.c:369: warning: operation on `ptr' may be undefined
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o mem.o mem.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o module.o module.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o options.o options.c
echo '#define ZSH_VERSION "'3.1.9'"' > version.h
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o params.o params.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o parse.o parse.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o pattern.o pattern.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o prompt.o prompt.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o signals.o signals.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o signames.o signames.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o subst.o subst.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o text.o text.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o utils.o utils.c
utils.c: In function `noquery':
utils.c:1324: warning: unused variable `c'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o watch.o watch.c
echo '' builtin.o compat.o cond.o exec.o glob.o hashtable.o hist.o init.o input.o jobs.o lex.o linklist.o loop.o math.o mem.o module.o options.o params.o parse.o pattern.o prompt.o signals.o signames.o subst.o text.o utils.o watch.o >> ../Src/stamp-modobjs.tmp
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `compctl.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o compctl.o compctl.c
echo '' compctl.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `complete.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o complete.o complete.c
echo '' complete.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `complist.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o complist.o complist.c
echo '' complist.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `computil.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o computil.o computil.c
echo '' computil.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[4]: `parameter.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o parameter.o parameter.c
echo '' parameter.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[4]: `rlimits.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o rlimits.o rlimits.c
echo '' rlimits.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[4]: `sched.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o sched.o sched.c
echo '' sched.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `zle.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle.o zle.c
echo '' zle.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `zleparameter.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zleparameter.o zleparameter.c
echo '' zleparameter.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[5]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[5]: `complete.mdh' is up to date.
make[5]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zutil.o zutil.c
echo '' zutil.o | sed 's" " Aliases/"g' >> ../../Src/stamp-modobjs.tmp
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
gawk -f ./rlimits.awk /usr/include/sys/resource.h > rlimits.h
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o rlimits.o rlimits.c
echo '' rlimits.o | sed 's" " Builtins/"g' >> ../../Src/stamp-modobjs.tmp
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o sched.o sched.c
echo '' sched.o | sed 's" " Builtins/"g' >> ../../Src/stamp-modobjs.tmp
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o parameter.o parameter.c
echo '' parameter.o | sed 's" " Modules/"g' >> ../../Src/stamp-modobjs.tmp
make[4]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[4]: `complete.mdh' is up to date.
make[4]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zutil.o zutil.c
echo '' zutil.o | sed 's" " Modules/"g' >> ../../Src/stamp-modobjs.tmp
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o compctl.o compctl.c
echo '' compctl.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o complete.o complete.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o compcore.o compcore.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o compmatch.o compmatch.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o compresult.o compresult.c
echo '' complete.o compcore.o compmatch.o compresult.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o complist.o complist.c
echo '' complist.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o computil.o computil.c
echo '' computil.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
( \
echo '/** widgets.list **/'; \
echo '/** widget structures for the internal widgets **/'; \
echo; \
echo '/* format: W(ZLE_FLAGS, t_firstname, functionname) */'; \
echo; \
sed -e 's/#.*//; /^$/d; s/-//g' \
-e 's/^"\(.*\)" *, *\([^ ]*\) *, *\(.*\)/W(\3, t_\1, \2)/' \
< ./iwidgets.list; \
) > widgets.list
( \
echo '/** zle_widget.h **/'; \
echo '/** indices of and pointers to internal widgets **/'; \
echo; \
echo 'enum {'; \
sed -n -f ./zle_widget.sed < widgets.list; \
echo ' ZLE_BUILTIN_WIDGET_COUNT'; \
echo '};'; \
) > zle_widget.h
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_bindings.o zle_bindings.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_hist.o zle_hist.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_keymap.o zle_keymap.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_main.o zle_main.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_misc.o zle_misc.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_move.o zle_move.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_params.o zle_params.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_refresh.o zle_refresh.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_thingy.o zle_thingy.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_tricky.o zle_tricky.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_utils.o zle_utils.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_vi.o zle_vi.c
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zle_word.o zle_word.c
echo '' zle_bindings.o zle_hist.o zle_keymap.o zle_main.o zle_misc.o zle_move.o zle_params.o zle_refresh.o zle_thingy.o zle_tricky.o zle_utils.o zle_vi.o zle_word.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o zleparameter.o zleparameter.c
echo '' zleparameter.o | sed 's" " Zle/"g' >> ../../Src/stamp-modobjs.tmp
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
Updated `stamp-modobjs'.
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
gawk -f ../Src/makepro.awk main.c Src > main.syms
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < main.syms) \
> main.epro
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < main.syms) \
> `echo main.epro | sed 's/\.epro$/.pro/'`
gcc -c -I. -DHAVE_CONFIG_H -D__sco -Wall -Wno-implicit -Wmissing-prototypes -O2 -o main.o ./main.c
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
( echo '#!'; cat builtin.syms compat.syms cond.syms exec.syms glob.syms hashtable.syms hist.syms init.syms input.syms jobs.syms lex.syms linklist.syms loop.syms math.syms mem.syms module.syms options.syms params.syms parse.syms pattern.syms prompt.syms signals.syms signames.syms subst.syms text.syms utils.syms watch.syms | sed -n '/^X/{s/^X//;p;}' | sort -u ) > zsh.export
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
rm -f zsh
gcc -s -o zsh main.o `cat stamp-modobjs` -lsocket -ldl -ltermcap -lm -lc
make[2]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Aliases'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Builtins'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Modules'
make[3]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[3]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src/Zle'
make[2]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
make[1]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Src'
make[1]: Entering directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Doc'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/data2/u2/work/ken/src/zsh/zsh-3.1.9/Doc'
^ permalink raw reply [relevance 1%]
* Re: About 'test' compatibility
@ 2002-02-26 22:17 3% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2002-02-26 22:17 UTC (permalink / raw)
To: DervishD; +Cc: zsh-workers
On Tue, 26 Feb 2002, DervishD wrote:
> >No, it's the -d in $DEFAULT that's confusing it. When $DEFAULT is
> >-d, zsh is treating the above as "if there is a directory named `='
> >..."
>
> Just curiosity: why BASH doesn't fail here too? The 'test'
> builtin of the Bourne shell has the '-d' too.
It appears that bash gives the infix '=' higher precedence than the prefix
'-d' or the infix '-a':
bash2-2.03$ mkdir '='
bash2-2.03$ if [ "-d" = ]; then echo There is a directory; fi
There is a directory
bash2-2.03$ if [ -d = -x ]; then echo There is a directory; fi
bash2-2.03$ if [ -d = -a x ]; then echo There is a directory; fi
[: too many arguments
bash2-2.03$ if [ -d . -a x ]; then echo There is a directory; fi
There is a directory
I haven't checked whether e.g. POSIX says anything about this.
^ permalink raw reply [relevance 3%]
* Re: Zsh 3 and ${1+"$@"} (Was: [GNU Autoconf 2.53] testsuite.log: 126 failures)
@ 2002-04-10 15:52 8% ` Akim Demaille
0 siblings, 1 reply; 200+ results
From: Akim Demaille @ 2002-04-10 15:52 UTC (permalink / raw)
To: Peter Stephenson; +Cc: zsh-workers, ab, bug-autoconf, APatche
[-- Attachment #1: Type: text/plain, Size: 418 bytes --]
Thanks to you all for the help!
I'm installing the following patch on Autoconf (I have left its side
effects, such as on configure, so that people can look at its impact).
Feel free to fix my words about Zsh.
Allen, I'll wrap a tarball, once the test suite finished (err... a
couple of hours I guess), will you be able to re-run the test suite on
that tarball? I expect much less than 126 failures on 163 tests :)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: diffs.patch --]
[-- Type: text/x-patch, Size: 49563 bytes --]
Index: ChangeLog
from Akim Demaille <akim@epita.fr>
* lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Install the Zsh
workaround for ${1+"$@"}.
* doc/autoconf.texi (Shell Substitutions): Explain it.
From Oliver Kiddle and Peter Stephenson.
Have M4sh perform minimal shell sanitizing.
* lib/m4sugar/m4sh.at (AS_SHELL_SANITIZE): Split the `_AS_PREPARE_*'
part into...
(_AS_PREPARE): this new macro.
(AS_PREPARE): New.
(AS_INIT): Invoke AS_SHELL_SANITIZE.
* tests/m4sh.at (AT_DATA_LINENO): Use _AS_PREPARE.
Adjust Autoconf and Autotest.
* lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Don't invoke
AS_SHELL_SANITIZE, AS_INIT did it, but invoke AS_PREPARE.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
Invoke _AS_PREPARE (not AS_PREPARE) in addition to
AS_SHELL_SANITIZE.
Use this M4sh to generate Autoconf's shell scripts.
* tests/wrapsh.as: New, precursor of wrapsh.in.
* tests/Makefile.am: Include lib/freeze.mk to get the dependencies
on Autotest and M4sh.
($(TESTSUITE)): Use $(autotest_m4f_dependencies).
(wrapsh.in): New target.
* bin/autoconf.as: New, precursor of autoconf.in.
(autoconf.in): New target.
Index: NEWS
===================================================================
RCS file: /cvsroot/autoconf/autoconf/NEWS,v
retrieving revision 1.229
diff -u -u -r1.229 NEWS
--- NEWS 9 Apr 2002 20:37:10 -0000 1.229
+++ NEWS 10 Apr 2002 15:51:27 -0000
@@ -8,6 +8,16 @@
- AC_PROG_CC_STDC is integrated into AC_PROG_CC.
+** Bug fixes
+
+- Spurious complaints from `m4_bmatch' about invalid regular
+ expressions are suppressed.
+
+** Improved Zsh portability
+ Both Autoconf the package, and the scripts it produces, should run
+ more reliably with Zsh. Bear in mind it is the default Bourne shell
+ on Darwin.
+
** Documentation
- Limitations of Make
Index: THANKS
===================================================================
RCS file: /cvsroot/autoconf/autoconf/THANKS,v
retrieving revision 1.85
diff -u -u -r1.85 THANKS
--- THANKS 19 Mar 2002 15:20:58 -0000 1.85
+++ THANKS 10 Apr 2002 15:51:27 -0000
@@ -126,6 +126,7 @@
Nishio Futoshi fut_nis@d3.dion.ne.jp
Noah Elliott elliott@hera.llnl.gov
Noah Friedman friedman@gnu.ai.mit.edu
+Oliver Kiddle okiddle@totalise.co.uk
Olly Betts olly@survex.com
Ossama Othman ossama@debian.org
Patrick Tullmann tullmann@cs.utah.edu
@@ -137,6 +138,7 @@
Pavel Roskin pavel_roskin@geocities.com
Peter Eisentraut peter_e@gmx.net
Peter Simons simons@research.cys.de
+Peter Stephenson pws@csr.com
Philipp Thomas kthomas@gwdg.de
Rainer Orth ro@TechFak.Uni-Bielefeld.DE
Raja R Harinath harinath@cs.umn.edu
Index: configure
===================================================================
RCS file: /cvsroot/autoconf/autoconf/configure,v
retrieving revision 1.206
diff -u -u -r1.206 configure
--- configure 13 Mar 2002 09:58:41 -0000 1.206
+++ configure 10 Apr 2002 15:51:27 -0000
@@ -8,14 +8,6 @@
# Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-
-
## --------------------- ##
## M4sh Initialization. ##
## --------------------- ##
@@ -24,6 +16,9 @@
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
+ # Zsh performs word splitting on ${1+"$@"}, which is contrary to
+ # our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
@@ -62,8 +57,22 @@
{ LC_MESSAGES=C; export LC_MESSAGES; }
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
# Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
+as_me=`$as_basename "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)$' \| \
@@ -74,13 +83,6 @@
/^X\/\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
@@ -95,92 +97,6 @@
rm -f conftest.sh
fi
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
*c*,-n*) ECHO_N= ECHO_C='
' ECHO_T=' ' ;;
@@ -188,48 +104,8 @@
*) ECHO_N= ECHO_C='\c' ECHO_T= ;;
esac
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
as_executable_p="test -f"
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
-
# Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
@@ -1159,7 +1035,7 @@
ac_config_sub="$SHELL $ac_aux_dir/config.sub"
ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-ac_config_files="$ac_config_files config/Makefile"
+ ac_config_files="$ac_config_files config/Makefile"
am__api_version="1.6a"
@@ -1519,24 +1395,24 @@
# Initialize the test suite and build position independent wrappers.
-ac_config_commands="$ac_config_commands tests/atconfig"
+ ac_config_commands="$ac_config_commands tests/atconfig"
-ac_config_files="$ac_config_files tests/Makefile tests/atlocal"
+ ac_config_files="$ac_config_files tests/Makefile tests/atlocal"
-ac_config_files="$ac_config_files tests/autoconf:tests/wrapsh.in"
+ ac_config_files="$ac_config_files tests/autoconf:tests/wrapsh.in"
-ac_config_files="$ac_config_files tests/autoheader:tests/wrappl.in"
+ ac_config_files="$ac_config_files tests/autoheader:tests/wrappl.in"
-ac_config_files="$ac_config_files tests/autom4te:tests/wrappl.in"
+ ac_config_files="$ac_config_files tests/autom4te:tests/wrappl.in"
-ac_config_files="$ac_config_files tests/autoreconf:tests/wrappl.in"
+ ac_config_files="$ac_config_files tests/autoreconf:tests/wrappl.in"
-ac_config_files="$ac_config_files tests/autoscan:tests/wrappl.in"
+ ac_config_files="$ac_config_files tests/autoscan:tests/wrappl.in"
-ac_config_files="$ac_config_files tests/autoupdate:tests/wrappl.in"
+ ac_config_files="$ac_config_files tests/autoupdate:tests/wrappl.in"
-ac_config_files="$ac_config_files tests/ifnames:tests/wrappl.in"
+ ac_config_files="$ac_config_files tests/ifnames:tests/wrappl.in"
# Extract the first word of "expr", so it can be a program name with args.
set dummy expr; ac_word=$2
@@ -1649,7 +1525,7 @@
fi
# Man pages.
-ac_config_files="$ac_config_files man/Makefile"
+ ac_config_files="$ac_config_files man/Makefile"
HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"}
@@ -1708,7 +1584,7 @@
}
# Emacs modes.
-ac_config_files="$ac_config_files lib/emacs/Makefile"
+ ac_config_files="$ac_config_files lib/emacs/Makefile"
test x"$EMACS" = xt && EMACS=
for ac_prog in emacs xemacs
@@ -1845,7 +1721,7 @@
-ac_config_files="$ac_config_files Makefile doc/Makefile lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile lib/m4sugar/Makefile lib/autoconf/Makefile lib/autotest/Makefile bin/Makefile"
+ ac_config_files="$ac_config_files Makefile doc/Makefile lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile lib/m4sugar/Makefile lib/autoconf/Makefile lib/autotest/Makefile bin/Makefile"
cat >confcache <<\_ACEOF
@@ -1973,7 +1849,6 @@
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF
-
## --------------------- ##
## M4sh Initialization. ##
## --------------------- ##
@@ -1982,6 +1857,9 @@
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
+ # Zsh performs word splitting on ${1+"$@"}, which is contrary to
+ # our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
@@ -2020,8 +1898,22 @@
{ LC_MESSAGES=C; export LC_MESSAGES; }
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
# Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
+as_me=`$as_basename "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)$' \| \
@@ -2032,6 +1924,7 @@
/^X\/\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
+
# PATH needs CR, and LINENO needs CR and PATH.
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
@@ -2099,6 +1992,8 @@
as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
test "x$as_lineno_1" != "x$as_lineno_2" &&
test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
CONFIG_SHELL=$as_dir/$as_base
export CONFIG_SHELL
exec "$CONFIG_SHELL" "$0" ${1+"$@"}
@@ -2172,6 +2067,12 @@
fi
rm -f conf$$ conf$$.exe conf$$.file
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ as_mkdir_p=false
+fi
+
as_executable_p="test -f"
# Sed expression to map a string onto a valid CPP name.
@@ -2544,25 +2445,30 @@
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
- { case "$ac_dir" in
- [\\/]* | ?:[\\/]* ) as_incr_dir=;;
- *) as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
- case $as_mkdir_dir in
- # Skip DOS drivespec
- ?:) as_incr_dir=$as_mkdir_dir ;;
- *)
- as_incr_dir=$as_incr_dir/$as_mkdir_dir
- test -d "$as_incr_dir" ||
- mkdir "$as_incr_dir" ||
- { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-done; }
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
ac_builddir=.
Index: bin/Makefile.am
===================================================================
RCS file: /cvsroot/autoconf/autoconf/bin/Makefile.am,v
retrieving revision 1.4
diff -u -u -r1.4 Makefile.am
--- bin/Makefile.am 23 Sep 2001 17:16:43 -0000 1.4
+++ bin/Makefile.am 10 Apr 2002 15:51:27 -0000
@@ -1,7 +1,7 @@
## Process this file with automake to create Makefile.in. -*-Makefile-*-
## Makefile for Autoconf.
-## Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+## Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,8 @@
autoconf autoheader autoreconf ifnames autoscan autoupdate
EXTRA_DIST = autoconf.in autoheader.in autoreconf.in autoupdate.in ifnames.in \
- autoscan.in autom4te.in
+ autoscan.in autom4te.in \
+ autoconf.as
# Files that should be removed, but which Automake does not know.
CLEANFILES = $(bin_SCRIPTS)
@@ -46,9 +47,15 @@
-e 's,@VERSION\@,$(VERSION),g' \
-e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g'
+# autoconf is written in M4sh.
+AUTOM4SH = $(top_builddir)/tests/autom4te --language M4sh
+$(srcdir)/autoconf.in: $(srcdir)/autoconf.as $(m4sh_m4f_dependencies)
+ $(AUTOM4SH) $(srcdir)/autoconf.as -o $@
+
## All the files below depend on configure.ac so that they are rebuilt
## when the Autoconf version changes. Unfortunately, suffix rules cannot
## have additional dependencies, so we have to use explicit rules.
+
autoconf: $(srcdir)/autoconf.in $(top_srcdir)/configure.ac
rm -f autoconf autoconf.tmp
Index: bin/Makefile.in
===================================================================
RCS file: /cvsroot/autoconf/autoconf/bin/Makefile.in,v
retrieving revision 1.10
diff -u -u -r1.10 Makefile.in
--- bin/Makefile.in 8 Mar 2002 12:44:46 -0000 1.10
+++ bin/Makefile.in 10 Apr 2002 15:51:27 -0000
@@ -85,7 +85,8 @@
EXTRA_DIST = autoconf.in autoheader.in autoreconf.in autoupdate.in ifnames.in \
- autoscan.in autom4te.in
+ autoscan.in autom4te.in \
+ autoconf.as
# Files that should be removed, but which Automake does not know.
@@ -106,6 +107,9 @@
-e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g'
+# autoconf is written in M4sh.
+AUTOM4SH = $(top_builddir)/tests/autom4te --language M4sh
+
TAGS_DEPENDENCIES = $(EXTRA_DIST)
letters = abcdefghijklmnopqrstuvwxyz
@@ -294,6 +298,8 @@
maintainer-clean-generic mostlyclean mostlyclean-generic tags \
uninstall uninstall-am uninstall-binSCRIPTS uninstall-info-am
+$(srcdir)/autoconf.in: $(srcdir)/autoconf.as $(m4sh_m4f_dependencies)
+ $(AUTOM4SH) $(srcdir)/autoconf.as -o $@
autoconf: $(srcdir)/autoconf.in $(top_srcdir)/configure.ac
rm -f autoconf autoconf.tmp
Index: bin/autoconf.as
===================================================================
RCS file: bin/autoconf.as
diff -N bin/autoconf.as
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ bin/autoconf.as 10 Apr 2002 15:51:27 -0000
@@ -0,0 +1,191 @@
+AS_INIT[]dnl -*- shell-script -*-
+# autoconf -- create `configure' using m4 macros
+# Copyright (C) 1992, 1993, 1994, 1996, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+usage=["\
+Usage: $0 [OPTION] ... [TEMPLATE-FILE]
+
+Generate a configuration script from a TEMPLATE-FILE if given, or
+\`configure.ac' if present, or else \`configure.in'. Output is sent
+to the standard output if TEMPLATE-FILE is given, else into
+\`configure'.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -v, --verbose verbosely report processing
+ -d, --debug don't remove temporary files
+ -I, --include=DIR look for input files in DIR (cumulative)
+ -f, --force consider all files obsolete
+ -o, --output=FILE save output in FILE (stdout is the default)
+ -W, --warnings=CATEGORY report the warnings falling in CATEGORY [syntax]
+
+Warning categories include:
+ \`cross' cross compilation issues
+ \`obsolete' obsolete constructs
+ \`syntax' dubious syntactic constructs
+ \`all' all the warnings
+ \`no-CATEGORY' turn off the warnings on CATEGORY
+ \`none' turn off all the warnings
+ \`error' warnings are error
+
+The environment variable \`WARNINGS' is honored.
+
+Tracing:
+ -t, --trace=MACRO report the list of calls to MACRO
+ -i, --initialization also trace Autoconf's initialization process
+
+In tracing mode, no configuration script is created.
+
+Report bugs to <bug-autoconf@gnu.org>."]
+
+version=["\
+autoconf (@PACKAGE_NAME@) @VERSION@
+Written by David J. MacKenzie and Akim Demaille.
+
+Copyright 2002 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."]
+
+me=`AS_BASENAME([$0])`
+
+help="\
+Try \`$me --help' for more information."
+
+exit_missing_arg="\
+echo \"$me: option \\\`\$1' requires an argument\" >&2
+echo \"\$help\" >&2
+exit 1"
+
+# Variables.
+: ${AUTOM4TE=@autom4te-name@}
+dir=`AS_DIRNAME([$0])`
+outfile=
+verbose=:
+
+# Parse command line.
+while test $# -gt 0 ; do
+ option=[`expr "x$1" : 'x\(--[^=]*\)' \| \
+ "x$1" : 'x\(-.\)'`]
+ optarg=[`expr "x$1" : 'x--[^=]*=\(.*\)' \| \
+ "x$1" : 'x-.\(.*\)'`]
+ case $1 in
+ --version | -V )
+ echo "$version" ; exit 0 ;;
+ --help | -h )
+ echo "$usage"; exit 0 ;;
+
+ --verbose | -v )
+ verbose=echo
+ AUTOM4TE="$AUTOM4TE $1"; shift ;;
+
+ # Arguments passed as is to autom4te.
+ --debug | -d | \
+ --force | -f | \
+ --include=* | -I?* | \
+ --warnings=* | -W?* )
+ AUTOM4TE="$AUTOM4TE $1"; shift ;;
+
+ # Options with separated arg passed as is to autom4te.
+ --include | -I | \
+ --warnings | -W )
+ test $# = 1 && eval "$exit_missing_arg"
+ AUTOM4TE="$AUTOM4TE $option $2"
+ shift 2 ;;
+
+ # Obsolete options.
+ --localdir=* | -l?* | --autoconf-dir=* | -A?* | --macrodir=* | -m?* )
+ echo "$me: warning: $option is obsolete, use --include" >&2
+ AUTOM4TE="$AUTOM4TE --include=$optarg"
+ shift ;;
+ --localdir | -l | --autoconf-dir | -A | --macrodir | -m )
+ echo "$me: warning: $option is obsolete, use --include" >&2
+ test $# = 1 && eval "$exit_missing_arg"
+ shift
+ AUTOM4TE="$AUTOM4TE --include=$1"
+ shift ;;
+
+ --trace=* | -t?* )
+ traces="$traces --trace='"`echo "$optarg" | sed "s/'/'\\\\\\\\''/g"`"'"
+ shift ;;
+ --trace | -t )
+ test $# = 1 && eval "$exit_missing_arg"
+ shift
+ traces="$traces --trace='"`echo "$1" | sed "s/'/'\\\\\\\\''/g"`"'"
+ shift ;;
+ --initialization | -i )
+ AUTOM4TE="$AUTOM4TE --melt"
+ shift;;
+
+ --output=* | -o?* )
+ outfile=$optarg
+ shift ;;
+ --output | -o )
+ test $# = 1 && eval "$exit_missing_arg"
+ shift
+ outfile=$1
+ shift ;;
+
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ exec >&2
+ echo "$me: invalid option $1"
+ echo "$help"
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+# Find the input file.
+case $# in
+ 0)
+ case `ls configure.ac configure.in 2>/dev/null` in
+ *ac*in )
+ echo "$me: warning: both \`configure.ac' and \`configure.in' are present." >&2
+ echo "$me: warning: proceeding with \`configure.ac'." >&2
+ infile=configure.ac;;
+ *ac ) infile=configure.ac;;
+ *in ) infile=configure.in;;
+ * )
+ echo "$me: no input file" >&2
+ exit 1;;
+ esac
+ test -z "$traces" && test -z "$outfile" && outfile=configure;;
+ 1) # autom4te doesn't like `-'.
+ test "x$1" != "x-" && infile=$1 ;;
+ *) exec >&2
+ echo "$me: invalid number of arguments."
+ echo "$help"
+ (exit 1); exit 1 ;;
+esac
+
+# Unless specified, the output is stdout.
+test -z "$outfile" && outfile=-
+
+# Running autom4te.
+run_autom4te="$AUTOM4TE --language=autoconf --output=$outfile"
+# Autom4te expansion.
+eval set dummy "$traces"
+shift
+$verbose "$me: running $run_autom4te "${1+"$@"}" $infile" >&2
+exec $run_autom4te ${1+"$@"} $infile
Index: bin/autoconf.in
===================================================================
RCS file: /cvsroot/autoconf/autoconf/bin/autoconf.in,v
retrieving revision 1.144
diff -u -u -r1.144 autoconf.in
--- bin/autoconf.in 8 Mar 2002 11:46:31 -0000 1.144
+++ bin/autoconf.in 10 Apr 2002 15:51:27 -0000
@@ -1,7 +1,29 @@
-#! @SHELL@
-# -*- shell-script -*-
+#! /bin/sh
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh performs word splitting on ${1+""}, which is contrary to
+ # our usage. Disable this feature.
+ alias -g '${1+""}'='""'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
# autoconf -- create `configure' using m4 macros
-# Copyright 1992, 1993, 1994, 1996, 1999, 2000, 2001
+# Copyright (C) 1992, 1993, 1994, 1996, 1999, 2000, 2001, 2002
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
@@ -19,8 +41,6 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-me=`echo "$0" | sed -e 's,.*[\\/],,'`
-
usage="\
Usage: $0 [OPTION] ... [TEMPLATE-FILE]
@@ -66,6 +86,17 @@
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+me=`$as_basename $0 ||
+$as_expr X/$0 : '.*/\([^/][^/]*\)/*$' \| \
+ X$0 : 'X\(//\)$' \| \
+ X$0 : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/$0 |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
help="\
Try \`$me --help' for more information."
@@ -74,15 +105,20 @@
echo \"\$help\" >&2
exit 1"
-# NLS nuisances.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-
# Variables.
: ${AUTOM4TE=@autom4te-name@}
-dir=`echo "$0" | sed -e 's,[^\\/]*$,,'`
+dir=`(dirname $0) 2>/dev/null ||
+$as_expr X$0 : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X$0 : 'X\(//\)[^/]' \| \
+ X$0 : 'X\(//\)$' \| \
+ X$0 : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X$0 |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
outfile=
verbose=:
Index: doc/autoconf.texi
===================================================================
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.608
diff -u -u -r1.608 autoconf.texi
--- doc/autoconf.texi 9 Apr 2002 20:37:11 -0000 1.608
+++ doc/autoconf.texi 10 Apr 2002 15:51:28 -0000
@@ -7412,6 +7412,9 @@
@c FIXME: Eventually will become a chapter, as it is not related to
@c programming in M4 per se.
+M4sh is aiming at producing portable Bourne shell scripts. For the time
+being, it is not mature enough to be widely used.
+
M4sh provides portable alternatives for some common shell constructs
that unfortunately are not portable in practice.
@@ -8460,6 +8463,35 @@
Unix 4.0 and 5.0, will then replace it with an empty argument. To be
portable, use @samp{$@{1+"$@@"@}}.
+But that's not the end of the story. Zsh (3.x and 4.x), when emulating
+the Bourne shell, does perform word splitting on @samp{$@{1+"$@@"@}}...
+
+@example
+zsh $ @kbd{emulate sh}
+zsh $ @kbd{for i in "$@"; do echo $i; done}
+Hello World
+!
+zsh $ @kbd{for i in $@{1+"$@@"@}; do echo $i; done}
+Hello
+World
+!
+@end example
+
+@noindent
+It is not clear whether this is a violation of the Bourne shell
+standard, nevertheless, in this regard Zsh is different from all the
+other shells. Of course Zsh handles @samp{"$@@"} properly, but we can't
+use it portably...
+
+Fortunately, there is a workaround which relies on Zsh's ``global
+aliases'': let it convert @samp{$@{1+"$@@"@}} into @samp{"$@@"} by
+itself:
+
+@example
+test -n "$@{ZSH_VERSION+set@}" = set && alias -g '$@{1+"$@@"@}'='"$@@"'
+@end example
+
+
@item $@{@var{var}:-@var{value}@}
@c Info cannot handle `:' in index entries.
@c @cindex $@{@var{var}:-@var{value}@}
@@ -8478,6 +8510,8 @@
otherwise some shells, such as on Digital Unix V 5.0, will die because
of a ``bad substitution''.
+@sp 1
+
Solaris' @command{/bin/sh} has a frightening bug in its interpretation
of this. Imagine you need set a variable to a string containing
@samp{@}}. This @samp{@}} character confuses Solaris' @command{/bin/sh}
@@ -9132,6 +9166,12 @@
echo "$arg"
done
@end example
+
+@noindent
+But keep in mind that Zsh, even in Bourne shell emulation mode, performs
+word splitting on @samp{$@{1+"$@@"@}}, see @ref{Shell Substitutions},
+item @samp{$@@}, for more.
+
@item @command{if}
@c ---------------
Index: lib/autoconf/autoconf.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/autoconf.m4,v
retrieving revision 1.40
diff -u -u -r1.40 autoconf.m4
--- lib/autoconf/autoconf.m4 5 Feb 2002 08:12:46 -0000 1.40
+++ lib/autoconf/autoconf.m4 10 Apr 2002 15:51:28 -0000
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Driver that loads the Autoconf macro files.
-# Copyright 1994, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.792
diff -u -u -r1.792 general.m4
--- lib/autoconf/general.m4 4 Mar 2002 15:09:21 -0000 1.792
+++ lib/autoconf/general.m4 10 Apr 2002 15:51:28 -0000
@@ -432,8 +432,6 @@
m4_define([_AC_INIT_DEFAULTS],
[m4_divert_push([DEFAULTS])dnl
-AS_SHELL_SANITIZE
-
# Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
# so uname gets run too.
@@ -1252,6 +1250,7 @@
# Actually reserved by M4sh.
m4_pattern_allow([^AS_FLAGS$])
AS_INIT
+AS_PREPARE
m4_ifval([$2], [_AC_INIT_PACKAGE($@)])
_AC_INIT_DEFAULTS
_AC_INIT_PARSE_ARGS
@@ -1754,9 +1753,9 @@
# ------------------------------------------
# The name of shell var CACHE-ID must contain `_cv_' in order to get saved.
# Should be dnl'ed. Try to catch common mistakes.
-m4_define([AC_CACHE_VAL],
+m4_defun([AC_CACHE_VAL],
[m4_bmatch([$2], [AC_DEFINE],
- [AC_DIAGNOSE(syntax,
+ [AC_DIAGNOSE(syntax,
[$0($1, ...): suspicious presence of an AC_DEFINE in the second argument, ]dnl
[where no actions should be taken])])dnl
AS_VAR_SET_IF([$1],
@@ -1767,7 +1766,7 @@
# AC_CACHE_CHECK(MESSAGE, CACHE-ID, COMMANDS)
# -------------------------------------------
# Do not call this macro with a dnl right behind.
-m4_define([AC_CACHE_CHECK],
+m4_defun([AC_CACHE_CHECK],
[AC_MSG_CHECKING([$1])
AC_CACHE_VAL([$2], [$3])dnl
AC_MSG_RESULT_UNQUOTED([AS_VAR_GET([$2])])])
Index: lib/autoconf/status.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/status.m4,v
retrieving revision 1.21
diff -u -u -r1.21 status.m4
--- lib/autoconf/status.m4 9 Apr 2002 11:15:33 -0000 1.21
+++ lib/autoconf/status.m4 10 Apr 2002 15:51:28 -0000
@@ -1261,6 +1261,10 @@
cat >>$CONFIG_STATUS <<\_ACEOF
AS_SHELL_SANITIZE
+dnl Watch out, this is directly the initializations, do not use
+dnl AS_PREPARE, otherwise you'd get it output in the initialization
+dnl of configure, not config.status.
+_AS_PREPARE
exec AS_MESSAGE_FD>&1
# Open the log real soon, to keep \$[0] and so on meaningful, and to
Index: lib/autotest/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autotest/general.m4,v
retrieving revision 1.129
diff -u -u -r1.129 general.m4
--- lib/autotest/general.m4 19 Mar 2002 06:43:17 -0000 1.129
+++ lib/autotest/general.m4 10 Apr 2002 15:51:28 -0000
@@ -94,9 +94,10 @@
m4_define([AT_ordinal], 0)
m4_define([AT_banner_ordinal], 0)
AS_INIT
+AS_PREPARE
m4_divert_push([DEFAULT])dnl
-AS_SHELL_SANITIZE
+AS_PREPARE
SHELL=${CONFIG_SHELL-/bin/sh}
# How were we run?
Index: lib/m4sugar/m4sh.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/m4sugar/m4sh.m4,v
retrieving revision 1.81
diff -u -u -r1.81 m4sh.m4
--- lib/m4sugar/m4sh.m4 4 Apr 2002 13:35:05 -0000 1.81
+++ lib/m4sugar/m4sh.m4 10 Apr 2002 15:51:28 -0000
@@ -137,20 +137,8 @@
# AS_SHELL_SANITIZE
# -----------------
# Try to be as Bourne and/or POSIX as possible.
-#
-# This macro has a very special status. Normal use of M4sh relies
-# heavily on AS_REQUIRE, so that needed initiatizations (such as
-# _AS_TEST_PREPARE) are performed on need, not on demand. But
-# Autoconf is the first client of M4sh, and for two reasons: configure
-# and config.status. Relying on AS_REQUIRE is of course fine for
-# configure, but fails for config.status (which is created by
-# configure). So we need a means to force the inclusion of the
-# various _AS_PREPARE_* on top of config.status. That's basically why
-# there are so many _AS_PREPARE_* below, and that's also why it is
-# important not to forget some: config.status needs them.
m4_defun([AS_SHELL_SANITIZE],
-[
-## --------------------- ##
+[## --------------------- ##
## M4sh Initialization. ##
## --------------------- ##
@@ -158,6 +146,9 @@
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
+ [#] Zsh performs word splitting on ${1+"$[@]"}, which is contrary to
+ # our usage. Disable this feature.
+ alias -g '${1+"$[@]"}'='"$[@]"'
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
@@ -172,11 +163,30 @@
{ _AS_var=C; export _AS_var; }
])
-# Name of the executable.
+# Required to use basename.
+_AS_EXPR_PREPARE
_AS_BASENAME_PREPARE
+
+# Name of the executable.
as_me=`AS_BASENAME("$[0]")`
-# PATH needs CR, and LINENO needs CR and PATH.
+])
+
+
+# _AS_PREPARE
+# -----------
+# This macro has a very special status. Normal use of M4sh relies
+# heavily on AS_REQUIRE, so that needed initiatizations (such as
+# _AS_TEST_PREPARE) are performed on need, not on demand. But
+# Autoconf is the first client of M4sh, and for two reasons: configure
+# and config.status. Relying on AS_REQUIRE is of course fine for
+# configure, but fails for config.status (which is created by
+# configure). So we need a means to force the inclusion of the
+# various _AS_PREPARE_* on top of config.status. That's basically why
+# there are so many _AS_PREPARE_* below, and that's also why it is
+# important not to forget some: config.status needs them.
+m4_defun([_AS_PREPARE],
+[# PATH needs CR, and LINENO needs CR and PATH.
_AS_CR_PREPARE
_AS_PATH_SEPARATOR_PREPARE
_AS_LINENO_PREPARE
@@ -200,6 +210,14 @@
])
+# AS_PREPARE
+# ----------
+# Output all the M4sh possible initialization into the initialization
+# diversion.
+m4_defun([AS_PREPARE],
+[m4_divert_text([M4SH-INIT], [_AS_PREPARE])])
+
+
## ----------------------------- ##
## 2. Wrappers around builtins. ##
## ----------------------------- ##
@@ -508,7 +526,8 @@
# configure) you'd compare LINENO wrt config.status vs. _oline_ vs
# configure.
m4_define([_AS_LINENO_PREPARE],
-[_AS_LINENO_WORKS || {
+[AS_REQUIRE([_AS_CR_PREPARE])dnl
+_AS_LINENO_WORKS || {
# Find who we are. Look in the path if we contain no path at all
# relative or not.
case $[0] in
@@ -1017,8 +1036,9 @@
# Forbidden tokens and exceptions.
m4_pattern_forbid([^_?AS_])
-# Bangshe.
+# Bangshe and minimal initialization.
m4_divert_text([BINSH], [@%:@! /bin/sh])
+m4_divert_text([M4SH-INIT], [AS_SHELL_SANITIZE])
# Let's go!
m4_wrap([m4_divert_pop([BODY])[]])
Index: man/autoconf.1
===================================================================
RCS file: /cvsroot/autoconf/autoconf/man/autoconf.1,v
retrieving revision 1.62
diff -u -u -r1.62 autoconf.1
--- man/autoconf.1 11 Mar 2002 14:39:00 -0000 1.62
+++ man/autoconf.1 10 Apr 2002 15:51:28 -0000
@@ -1,5 +1,5 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.26.
-.TH AUTOCONF "1" "March 2002" "autoconf 2.53a" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.27.
+.TH AUTOCONF "1" "April 2002" "autoconf 2.53a" "User Commands"
.SH NAME
autoconf \- Generate configuration scripts
.SH SYNOPSIS
Index: man/config.guess.1
===================================================================
RCS file: /cvsroot/autoconf/autoconf/man/config.guess.1,v
retrieving revision 1.13
diff -u -u -r1.13 config.guess.1
--- man/config.guess.1 5 Mar 2002 08:43:46 -0000 1.13
+++ man/config.guess.1 10 Apr 2002 15:51:28 -0000
@@ -1,5 +1,5 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.25.
-.TH CONFIG.GUESS "1" "March 2002" "config.guess (2002-03-04)" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.27.
+.TH CONFIG.GUESS "1" "April 2002" "config.guess (2002-03-20)" "User Commands"
.SH NAME
config.guess \- guess the build system triplet
.SH SYNOPSIS
Index: tests/Makefile.am
===================================================================
RCS file: /cvsroot/autoconf/autoconf/tests/Makefile.am,v
retrieving revision 1.79
diff -u -u -r1.79 Makefile.am
--- tests/Makefile.am 5 Feb 2002 08:28:08 -0000 1.79
+++ tests/Makefile.am 10 Apr 2002 15:51:28 -0000
@@ -1,7 +1,7 @@
## Process this file with automake to create Makefile.in. -*-Makefile-*-
## Makefile for Autoconf testsuite.
-## Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
+## Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -21,14 +21,17 @@
# We don't actually distribute the testsuite, since one only
# needs m4 to build it, m4 being required anyway to install Autoconf.
EXTRA_DIST = $(TESTSUITE_AT) atspecific.m4 mktests.sh \
- atlocal.in package.m4
+ atlocal.in package.m4 wrapsh.as
# Running the uninstalled scripts.
check_SCRIPTS = autoconf autoheader autoreconf autom4te autoscan autoupdate ifnames
-# FIXME: Why doesn't Automake clean these?
DISTCLEANFILES = atconfig atlocal $(TESTSUITE) $(check_SCRIPTS)
+# Import the dependencies on Autotest and M4sh.
+include ../lib/freeze.mk
+
+
## ------------ ##
## package.m4. ##
## ------------ ##
@@ -45,6 +48,14 @@
+## ---------- ##
+## Wrappers. ##
+## ---------- ##
+
+$(srcdir)/wrapsh.in: $(srcdir)/wrapsh.as $(m4sh_m4f_dependencies)
+ ./autom4te --language=M4sh $(srcdir)/wrapsh.as -o $@
+
+
## ------------ ##
## Test suite. ##
## ------------ ##
@@ -71,13 +82,10 @@
# Don't use AUTOM4TE since `make alpha' makes it unavailable although
# we are allowed to use it (since we ship it).
AUTOTEST = ./autom4te --language=autotest
-$(TESTSUITE): $(top_srcdir)/lib/m4sugar/m4sugar.m4 \
- $(top_srcdir)/lib/m4sugar/m4sh.m4 \
- $(top_srcdir)/lib/autotest/autotest.m4 \
- $(top_srcdir)/lib/autotest/general.m4 \
- $(srcdir)/package.m4 \
- atspecific.m4 \
- $(TESTSUITE_AT)
+$(TESTSUITE): $(srcdir)/package.m4 \
+ atspecific.m4 \
+ $(TESTSUITE_AT) \
+ $(autotest_m4f_dependencies)
$(AUTOTEST) -I $(srcdir) suite.at -o $@.tmp
mv $@.tmp $@
Index: tests/Makefile.in
===================================================================
RCS file: /cvsroot/autoconf/autoconf/tests/Makefile.in,v
retrieving revision 1.112
diff -u -u -r1.112 Makefile.in
--- tests/Makefile.in 8 Mar 2002 12:44:47 -0000 1.112
+++ tests/Makefile.in 10 Apr 2002 15:51:28 -0000
@@ -83,15 +83,69 @@
# We don't actually distribute the testsuite, since one only
# needs m4 to build it, m4 being required anyway to install Autoconf.
EXTRA_DIST = $(TESTSUITE_AT) atspecific.m4 mktests.sh \
- atlocal.in package.m4
+ atlocal.in package.m4 wrapsh.as
# Running the uninstalled scripts.
check_SCRIPTS = autoconf autoheader autoreconf autom4te autoscan autoupdate ifnames
-# FIXME: Why doesn't Automake clean these?
DISTCLEANFILES = atconfig atlocal $(TESTSUITE) $(check_SCRIPTS)
+SUFFIXES = .m4 .m4f
+
+# Do not use AUTOM4TE here, since Makefile.maint (my-distcheck)
+# checks if we are independant of Autoconf by defining AUTOM4TE (and
+# others) to `false'. But we _ship_ tests/autom4te, so it doesn't
+# apply to us.
+MY_AUTOM4TE = $(top_builddir)/tests/autom4te
+
+AUTOM4TE_CFG = $(top_builddir)/lib/autom4te.cfg
+
+# Factor the dependencies between all the frozen files.
+# Some day we should explain to Automake how to use autom4te to compute
+# the dependencies...
+src_libdir = $(top_srcdir)/lib
+build_libdir = $(top_builddir)/lib
+
+m4f_dependencies = $(MY_AUTOM4TE) $(AUTOM4TE_CFG)
+
+m4sugar_m4f_dependencies = \
+ $(m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sugar.m4 \
+ $(build_libdir)/m4sugar/version.m4
+
+
+m4sh_m4f_dependencies = \
+ $(m4sugar_m4f_dependencies) \
+ $(src_libdir)/m4sugar/m4sh.m4
+
+
+autotest_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autotest/autotest.m4 \
+ $(src_libdir)/autotest/general.m4
+
+
+autoconf_m4f_dependencies = \
+ $(m4sh_m4f_dependencies) \
+ $(src_libdir)/autoconf/general.m4 \
+ $(src_libdir)/autoconf/autoheader.m4 \
+ $(src_libdir)/autoconf/autoupdate.m4 \
+ $(src_libdir)/autoconf/autotest.m4 \
+ $(src_libdir)/autoconf/status.m4 \
+ $(src_libdir)/autoconf/oldnames.m4 \
+ $(src_libdir)/autoconf/specific.m4 \
+ $(src_libdir)/autoconf/lang.m4 \
+ $(src_libdir)/autoconf/c.m4 \
+ $(src_libdir)/autoconf/fortran.m4 \
+ $(src_libdir)/autoconf/functions.m4 \
+ $(src_libdir)/autoconf/headers.m4 \
+ $(src_libdir)/autoconf/types.m4 \
+ $(src_libdir)/autoconf/libs.m4 \
+ $(src_libdir)/autoconf/programs.m4 \
+ $(src_libdir)/autoconf/autoconf.m4
+
+
TESTSUITE_GENERATED_AT = \
aclang.at acc.at acfortran.at \
acgeneral.at acstatus.at \
@@ -149,7 +203,8 @@
all: all-am
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+.SUFFIXES: .m4 .m4f
+$(srcdir)/Makefile.in: Makefile.am $(srcdir)/../lib/freeze.mk $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu tests/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@@ -278,6 +333,30 @@
maintainer-clean-generic mostlyclean mostlyclean-generic \
uninstall uninstall-am uninstall-info-am
+$(MY_AUTOM4TE):
+ cd $(top_builddir)/tests && $(MAKE) $(AM_MAKEFLAGS) autom4te
+$(AUTOM4TE_CFG):
+ cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) autom4te.cfg
+
+# When processing the file with diversion disabled, there must be no
+# output but comments and empty lines.
+# If freezing produces output, something went wrong: a bad `divert',
+# or an improper paren etc.
+# It may happen that the output does not end with a end of line, hence
+# force an end of line when reporting errors.
+.m4.m4f:
+ $(MY_AUTOM4TE) \
+ --language=$* \
+ --freeze \
+ --include=$(srcdir)/.. \
+ --include=.. \
+ --output=$@
+
+# For parallel builds.
+$(build_libdir)/m4sugar/version.m4:
+ cd $(build_libdir)/m4sugar && $(MAKE) $(AM_MAKEFLAGS) version.m4
+
+# Import the dependencies on Autotest and M4sh.
$(srcdir)/package.m4: $(top_srcdir)/configure.ac
{ \
@@ -288,13 +367,13 @@
echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \
echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
} >$(srcdir)/package.m4
-$(TESTSUITE): $(top_srcdir)/lib/m4sugar/m4sugar.m4 \
- $(top_srcdir)/lib/m4sugar/m4sh.m4 \
- $(top_srcdir)/lib/autotest/autotest.m4 \
- $(top_srcdir)/lib/autotest/general.m4 \
- $(srcdir)/package.m4 \
- atspecific.m4 \
- $(TESTSUITE_AT)
+
+$(srcdir)/wrapsh.in: $(srcdir)/wrapsh.as $(m4sh_m4f_dependencies)
+ ./autom4te --language=M4sh $(srcdir)/wrapsh.as -o $@
+$(TESTSUITE): $(srcdir)/package.m4 \
+ atspecific.m4 \
+ $(TESTSUITE_AT) \
+ $(autotest_m4f_dependencies)
$(AUTOTEST) -I $(srcdir) suite.at -o $@.tmp
mv $@.tmp $@
Index: tests/m4sh.at
===================================================================
RCS file: /cvsroot/autoconf/autoconf/tests/m4sh.at,v
retrieving revision 1.28
diff -u -u -r1.28 m4sh.at
--- tests/m4sh.at 25 Mar 2002 22:02:24 -0000 1.28
+++ tests/m4sh.at 10 Apr 2002 15:51:29 -0000
@@ -2,7 +2,7 @@
AT_BANNER([M4sh.])
-# Copyright 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@
if $2; then
AS@&t@_UNSET([LINENO])
fi
-AS@&t@_SHELL_SANITIZE
+_AS@&t@_PREPARE
echo "Line: $3"
grep 'Line: .*$4' $[0] >/dev/null ||
AS@&t@_ERROR([cannot find original script])
Index: tests/wrapsh.as
===================================================================
RCS file: tests/wrapsh.as
diff -N tests/wrapsh.as
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/wrapsh.as 10 Apr 2002 15:51:29 -0000
@@ -0,0 +1,5 @@
+AS_INIT
+# Running `$0' as if it were installed.
+me=`echo "$0" | sed -e 's,.*[\\/],,'`
+
+exec @abs_top_builddir@/bin/$me --include @abs_top_builddir@/lib ${1+"$@"}
Index: tests/wrapsh.in
===================================================================
RCS file: /cvsroot/autoconf/autoconf/tests/wrapsh.in,v
retrieving revision 1.2
diff -u -u -r1.2 wrapsh.in
--- tests/wrapsh.in 14 Dec 2001 17:57:29 -0000 1.2
+++ tests/wrapsh.in 10 Apr 2002 15:51:29 -0000
@@ -1,6 +1,82 @@
#! /bin/sh
-# Running `$0' as if it were installed.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh performs word splitting on ${1+"$@"}, which is contrary to
+ # our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# NLS nuisances.
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
+ { $as_unset LANG || test "${LANG+set}" != set; } ||
+ { LANG=C; export LANG; }
+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
+ { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
+ { LC_ALL=C; export LC_ALL; }
+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
+ { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
+ { LC_TIME=C; export LC_TIME; }
+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
+ { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
+ { LC_CTYPE=C; export LC_CTYPE; }
+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
+ { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
+ { LANGUAGE=C; export LANGUAGE; }
+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
+ { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
+ { LC_COLLATE=C; export LC_COLLATE; }
+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
+ { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
+ { LC_NUMERIC=C; export LC_NUMERIC; }
+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
+ { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
+ { LC_MESSAGES=C; export LC_MESSAGES; }
+
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
-me=`echo "$0" | sed -e 's,.*[\\/],,'`
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+
+# Running `$0' as if it were installed.
+me=`echo "$0" | sed -e 's,.*\\/,,'`
exec @abs_top_builddir@/bin/$me --include @abs_top_builddir@/lib ${1+"$@"}
^ permalink raw reply [relevance 8%]
* Re: Zsh 3 and ${1+"$@"} (Was: [GNU Autoconf 2.53] testsuite.log: 126 failures)
@ 2002-04-10 17:32 13% ` Akim Demaille
0 siblings, 0 replies; 200+ results
From: Akim Demaille @ 2002-04-10 17:32 UTC (permalink / raw)
To: Paul Eggert; +Cc: pws, zsh-workers, ab, bug-autoconf, autoconf-patches
>>>>> "Paul" == Paul Eggert <eggert@twinsun.com> writes:
Paul> This line seems incorrect to me. Shouldn't it be:
>> + alias -g '${1+"$@"}'='"$@"'
Paul> ?
Yep, thanks! Well, rm it, make, and cvs diff below. Was not
regenerated at some point :(
Index: bin/autoconf.in
===================================================================
RCS file: /cvsroot/autoconf/autoconf/bin/autoconf.in,v
retrieving revision 1.145
diff -u -u -r1.145 autoconf.in
--- bin/autoconf.in 10 Apr 2002 15:58:19 -0000 1.145
+++ bin/autoconf.in 10 Apr 2002 17:31:42 -0000
@@ -1,26 +1,79 @@
#! /bin/sh
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh performs word splitting on ${1+"$@"}, which is contrary to
+ # our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# NLS nuisances.
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
else
- as_basename=false
+ as_unset=false
fi
+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
+ { $as_unset LANG || test "${LANG+set}" != set; } ||
+ { LANG=C; export LANG; }
+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
+ { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
+ { LC_ALL=C; export LC_ALL; }
+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
+ { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
+ { LC_TIME=C; export LC_TIME; }
+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
+ { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
+ { LC_CTYPE=C; export LC_CTYPE; }
+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
+ { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
+ { LANGUAGE=C; export LANGUAGE; }
+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
+ { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
+ { LC_COLLATE=C; export LC_COLLATE; }
+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
+ { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
+ { LC_NUMERIC=C; export LC_NUMERIC; }
+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
+ { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
+ { LC_MESSAGES=C; export LC_MESSAGES; }
+
+
+# Required to use basename.
if expr a : '\(a\)' >/dev/null 2>&1; then
as_expr=expr
else
as_expr=false
fi
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh performs word splitting on ${1+""}, which is contrary to
- # our usage. Disable this feature.
- alias -g '${1+""}'='""'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
# autoconf -- create `configure' using m4 macros
# Copyright (C) 1992, 1993, 1994, 1996, 1999, 2000, 2001, 2002
^ permalink raw reply [relevance 13%]
* RE: PATCH: zselect builtin.
@ 2002-05-08 5:36 5% ` Borsenkow Andrej
2002-05-08 9:59 3% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Borsenkow Andrej @ 2002-05-08 5:36 UTC (permalink / raw)
To: 'Peter Stephenson', 'Zsh hackers list'
>
> Any comments before I commit this?
>
If we start adding low-level system interface I really wish that we
- put it in separate module (like Perl POSIX)
- or at least under own hierarchy (like zsh/POSIX/select)
I do not know if POSIX is right here; may be just "system" or just "sys"
would be O.K. meaning zsh/sys/select
In which case it would be nice (as Bart already suggested) to have
standard name pattern; posix_select or sys_select (depending upon level
of system independency we are aiming at).
Aso you probably can't fully utilize select without non-blocking I/O.
The simplest way to add it is using fcntl. Which implies yet another
module (or at least builtin). Non-blocking I/O could be used just fine
currently; just use read-kN and test how much has been read; read should
return 0 if anything has been read, non-zero otherwise.
Hmm ... there does not currently seem to be any way to find out how much
has been written ... sys_write/sys_read?
Otherwise as Bart alrady suggested I prefer has as return with keys FD
numbers.
-andrej
^ permalink raw reply [relevance 5%]
* Re: PATCH: zselect builtin.
2002-05-08 5:36 5% ` Borsenkow Andrej
@ 2002-05-08 9:59 3% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2002-05-08 9:59 UTC (permalink / raw)
To: Zsh hackers list
Borsenkow Andrej wrote:
> If we start adding low-level system interface I really wish that we
>
> - put it in separate module (like Perl POSIX)
> - or at least under own hierarchy (like zsh/POSIX/select)
>
> In which case it would be nice (as Bart already suggested) to have
> standard name pattern; posix_select or sys_select (depending upon level
> of system independency we are aiming at).
It's too late: we have stat, the files module, and various other bits
which talk to the system in other ways like TCP. Unless we want to move
everything around now, I don't see a good reason for putting this
anywhere special. (`stat' already clashes with various external
commands which do a similar job, unfortunately.) Until then, separate
modules for each separate interface seems to me the cleanest way
forward.
Why is `posix_select' or `sys_select' an improvement over our current
mini-convention with the `z', which also covers things which aren't
strictly tied to system calls? To me, anyway, it implies a greater
tie-in to the underlying system call than you get with the shell builtin
--- no fd sets, no maximum fd, no errno handling. This is a distinct
difference from perl, which tries to emulate the POSIX interface as
closely as possible in such cases.
(By the way, there was an interesting note on the Austin group list today
that the `error' fd's in the select call are really for exceptions, and
the only one currently defined is out-of-band data on a socket. I may
point this out, since most select manual pages don't.)
> Aso you probably can't fully utilize select without non-blocking I/O.
I don't see this; you can already poll a blocking fd using a zero
timeout. But some fcntl interface is certainly a possibility.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 3%]
* PATCH: gethostbyaddr() argument in tcp.c
@ 2002-05-14 17:44 3% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2002-05-14 17:44 UTC (permalink / raw)
To: Zsh hackers list
This one is entirely cosmetic. The latest POSIX/SUS/ISO specification
says the first argument is `const void *', which wouldn't cause a
warning; however, solaris uses `const char *', which does. Converting
explicitly to `const void *' should keep everybody happy, I hope.
Index: Src/Modules/tcp.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Modules/tcp.c,v
retrieving revision 1.26
diff -u -r1.26 tcp.c
--- Src/Modules/tcp.c 14 May 2002 17:29:53 -0000 1.26
+++ Src/Modules/tcp.c 14 May 2002 17:38:59 -0000
@@ -565,12 +565,12 @@
if (sess->fd != -1)
{
- zthost = gethostbyaddr(&(sess->sock.in.sin_addr), sizeof(struct sockaddr_in), AF_INET);
+ zthost = gethostbyaddr((const void *)&(sess->sock.in.sin_addr), sizeof(struct sockaddr_in), AF_INET);
if (zthost)
localname = zthost->h_name;
else
localname = ztrdup(inet_ntoa(sess->sock.in.sin_addr));
- ztpeer = gethostbyaddr(&(sess->peer.in.sin_addr), sizeof(struct sockaddr_in), AF_INET);
+ ztpeer = gethostbyaddr((const void *)&(sess->peer.in.sin_addr), sizeof(struct sockaddr_in), AF_INET);
if (ztpeer)
remotename = ztpeer->h_name;
else
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 3%]
* command substitution gets confused by case parens
@ 2002-05-21 5:48 3% Clint Adams
2002-05-21 15:07 3% ` Bart Schaefer
0 siblings, 1 reply; 200+ results
From: Clint Adams @ 2002-05-21 5:48 UTC (permalink / raw)
To: zsh-workers
According to POSIX, I think, the following should work.
print $(case $TEST in
abc)
echo a
;;
def)
echo b
;;
esac)
zsh: parse error near `;;'
^ permalink raw reply [relevance 3%]
* Re: command substitution gets confused by case parens
2002-05-21 5:48 3% command substitution gets confused by case parens Clint Adams
@ 2002-05-21 15:07 3% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2002-05-21 15:07 UTC (permalink / raw)
To: Clint Adams, zsh-workers
On May 21, 1:48am, Clint Adams wrote:
} Subject: command substitution gets confused by case parens
}
} According to POSIX, I think, the following should work.
Bash2 chokes on it as well:
bash2: command substitution: line 2: syntax error near unexpected token `abc'
bash2: command substitution: line 2: ` abc'
The following works in both shells, and is the reason that the fully-
parenthesized case conditions were introduced, IIRC.
echo $(case $TEST in
(abc)
echo a
;;
(def)
echo b
;;
esac)
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 3%]
* "command -v"
@ 2002-05-25 23:32 4% Bruce Stephens
2002-05-26 2:46 0% ` Clint Adams
0 siblings, 1 reply; 200+ results
From: Bruce Stephens @ 2002-05-25 23:32 UTC (permalink / raw)
To: zsh-workers
There's a discussion on debian-devel about a bunch of packages using
"command -v" in their scripts, which all debian POSIX shells support,
with the exception of zsh. ("command -v" isn't in POSIX, apparently,
but it's in other standards.)
Anyway, probably zsh ought to support it, whatever it does.
^ permalink raw reply [relevance 4%]
* Re: "command -v"
2002-05-25 23:32 4% "command -v" Bruce Stephens
@ 2002-05-26 2:46 0% ` Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2002-05-26 2:46 UTC (permalink / raw)
To: Bruce Stephens; +Cc: zsh-workers
> There's a discussion on debian-devel about a bunch of packages using
> "command -v" in their scripts, which all debian POSIX shells support,
> with the exception of zsh. ("command -v" isn't in POSIX, apparently,
> but it's in other standards.)
>
> Anyway, probably zsh ought to support it, whatever it does.
This might do in a pinch:
command() { case "$1" in -v) shift; whence "$@" ;; *) builtin command
"$@";; esac }
^ permalink raw reply [relevance 0%]
* Re: PATCH: function parsing
@ 2002-06-04 16:33 3% ` Bart Schaefer
2002-06-05 10:56 0% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2002-06-04 16:33 UTC (permalink / raw)
To: Peter Stephenson; +Cc: Zsh hackers list
On Tue, 4 Jun 2002, Peter Stephenson wrote:
> % zsh -c 'function func { } this fails to cause a parse error'
> zsh: parse error near `this'
> % zsh -c 'func() { } this fails to cause a parse error'
> %
>
> I'm assuming the first is correct, since the second certainly isn't as
> the text is simply ignored.
While you're at it, any chance you can "fix" redirections following a
function definition? E.g. per ksh (and possibly per posix) this:
func() { less } < /etc/termcap
should be equivalent to this:
func() { { less } < /etc/termcap }
rather than the current zsh equivalent:
{ func() { less } } < /etc/termcap
Note that:
func() less < /etc/termcap
is already equivalent to:
func() { less < /etc/termcap }
so the first case above must be only a small matter of parsing.
^ permalink raw reply [relevance 3%]
* Re: PATCH: function parsing
2002-06-04 16:33 3% ` Bart Schaefer
@ 2002-06-05 10:56 0% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2002-06-05 10:56 UTC (permalink / raw)
To: Zsh hackers list
Bart Schaefer wrote:
> While you're at it, any chance you can "fix" redirections following a
> function definition? E.g. per ksh (and possibly per posix) this:
>
> func() { less } < /etc/termcap
>
> should be equivalent to this:
>
> func() { { less } < /etc/termcap }
I've played with it for a little without success.
I've come to the conclusion the only way to do it will be to rewrite it
internally exactly how you've shown it --- i.e. insert a current-shell
construct (the normal effect of braces) inside the list construct and
attach the redirection to that, but it's a bit of a mess unless we
always parse functions as a current-shell construct.
Maybe later.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 0%]
* The sh substitution problem.
@ 2002-06-10 12:05 2% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2002-06-10 12:05 UTC (permalink / raw)
To: Zsh hackers list
namely ${1+"$@"} when using `sh' word-spliting makes a scalar out of "$@"
and splits it later on, with consequent undesirable effects.
I thought I had a way of doing the important cases (i.e. the ones
required for POSIX) simply but it turns out it doesn't work. We just
have a completely different notion of how a command line word is formed
(because ours is more logical :-)). So I've given that up.
I have a vague plan for doing it `properly' but it doesn't fill me with
delight:
- When calling prefork() from multsub(), don't remove nulls (hence
preserving information about quotes, which are retained as Snull,
Dnull and Bnull).
- In multsub(), handle arrays properly, i.e. stick the results in what
is currently its second argument. This will have knock-on effects
since paramsubst() messes around with val and aval all the time. The
way mult_isarr has been hacked in to avoid the calling sequence may
make this more difficult. (Ideally we would replace mult_isarr by
making multsub() always return arrays. This is probably even harder,
but I don't understand the details of mult_isarr, which handles
nested substitutions, well enough to say.)
[It might be possible to keep val and aval as a pair in a structure,
a sort of pseudo-parameter, and only convert between scalar and array
when really necessary with a `forcescalar' or `forcearray'
function/macro.]
- Avoid joining words before splitting them (unless it is a forced
join with a given string). This changes the current rules but is
inevitable for getting this to work at all. This probably also means
handling certain types of scalar result by joining arrays at this point
instead of before (even if they are not going to be split). This is
also probably tricky because there are umpteen different ways of
ending up with a scalar. This is probably where we would have to do
any joining due to letting multsub() always return an array. I used
the word `probably' three times in that paragraph.
- When splitting, handle a loop over multiple array elements and
keep track of quotes. This also fixes:
% ARGV0=sh zsh
$ set word
$ print -l ${1+'this should not be split'}
this
should
not
be
split
This is tricky and I have no idea of its detailed feasibility. If
anyone wants to try they should. Otherwise just make comments.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 2%]
* typeset verbosity
@ 2002-06-12 13:42 3% Peter Stephenson
2002-06-12 14:51 3% ` Oliver Kiddle
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2002-06-12 13:42 UTC (permalink / raw)
To: Zsh hackers list
Instead of thinking about hard problems for once, I'd like to get rid of
this annoyance from `typeset' or friends on an existing parameter:
% fn() { local foo; local foo; }
% fn
foo=''
%
How?
(1) Make the display behaviour optional. If so, decide when to unset
the option by default, e.g any sh-style emulation.
(2) Make the display behaviour not work inside functions. (Making it
not work on local parameters isn't good enough because of the -g
flag.)
(3) Make it only work with typeset, or at least not work with local.
(4) Some combination of (1) with the others.
Only (1) can ensure POSIX compatibility. We could add a flag to display
listed parameters instead.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 392070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 3%]
* Re: typeset verbosity
2002-06-12 13:42 3% typeset verbosity Peter Stephenson
@ 2002-06-12 14:51 3% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2002-06-12 14:51 UTC (permalink / raw)
To: Peter Stephenson; +Cc: zsh-workers
On 12 Jun, Peter wrote:
> (1) Make the display behaviour optional. If so, decide when to unset
> the option by default, e.g any sh-style emulation.
> (2) Make the display behaviour not work inside functions. (Making it
> not work on local parameters isn't good enough because of the -g
> flag.)
> (3) Make it only work with typeset, or at least not work with local.
> (4) Some combination of (1) with the others.
>
> Only (1) can ensure POSIX compatibility. We could add a flag to display
> listed parameters instead.
For POSIX, we really ought to be accepting the -p flag which displays
the listed parameters but in a different format (in the form of a
typeset command). This typically being -L in zsh has probably been
significant in this not being done before. It might actually be a good
idea to add -p as an alternate form of -L across many builtins.
One possibility which is an extension of (3) would be to make it only
work on typeset but not for all the other typeset variants and then follow
bash in changing the documentation so declare is the recommended version
of the command (it's a better name anyway in my opinion). The
KSH_TYPESET option could be extended to make typeset also work that way
for ksh compatibility. Additionally, we could perhaps add a flag to
typeset and variants which could explicity control whether set parameters
are listed.
A related annoyance - autoload being a sort of typeset variant - is that
autoload ~/.zfunc/*(N) will not end silently if there are no files in
~/.zfunc. Changing this could perhaps be a part of whatever solution is
chosen.
Oliver
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
^ permalink raw reply [relevance 3%]
* posix compliance
@ 2002-06-18 22:58 9% Clint Adams
2002-06-20 18:05 9% ` Jos Backus
0 siblings, 1 reply; 200+ results
From: Clint Adams @ 2002-06-18 22:58 UTC (permalink / raw)
To: zsh-workers
The beginnings of a POSIX-compliance test suite are at
http://people.debian.org/~schizo/ , if anyone's interested.
Currently zsh performs better than Debian's ash.
^ permalink raw reply [relevance 9%]
* Re: posix compliance
2002-06-18 22:58 9% posix compliance Clint Adams
@ 2002-06-20 18:05 9% ` Jos Backus
2002-06-20 18:13 10% ` Bart Schaefer
` (2 more replies)
0 siblings, 3 replies; 200+ results
From: Jos Backus @ 2002-06-20 18:05 UTC (permalink / raw)
To: Clint Adams; +Cc: zsh-workers
A quick report from UseNIX: One thing Jordan Hubbard of Apple mentioned was
that our positional parameters ($1, $2, etc.) are assignable whereas they are
not in bash (Chet Ramey, who was also present, confirmed this). The bash
behavior is apparently what POSIX specifies. This was one of the things which
kept Apple from keeping zsh as their /bin/sh, according to him. Personally I
thought his defense was rather weak: they tested with 3.0.8 and didn't bother
to give the zsh developers any feedback. He also again complained about
executable size and footprint (zsh vs. bash), which I think was addressed
earlier without them giving us any feedback.
Otoh, the next version of OS X will have an updated zsh 4.0.4.
--
Jos Backus _/ _/_/_/ Santa Clara, CA
_/ _/ _/
_/ _/_/_/
_/ _/ _/ _/
jos@catnook.com _/_/ _/_/_/ require 'std/disclaimer'
^ permalink raw reply [relevance 9%]
* Re: posix compliance
2002-06-20 18:05 9% ` Jos Backus
@ 2002-06-20 18:13 10% ` Bart Schaefer
2002-06-20 19:17 5% ` Jos Backus
2002-06-21 5:19 9% ` Borsenkow Andrej
2002-06-21 11:35 5% ` Oliver Kiddle
2 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2002-06-20 18:13 UTC (permalink / raw)
To: Jos Backus; +Cc: zsh-workers
On Thu, 20 Jun 2002, Jos Backus wrote:
> A quick report from UseNIX: One thing Jordan Hubbard of Apple mentioned was
> that our positional parameters ($1, $2, etc.) are assignable whereas they are
> not in bash (Chet Ramey, who was also present, confirmed this). The bash
> behavior is apparently what POSIX specifies.
Assignable positional parameters are an intentional feature. There's no
way they can cause a problem, because a POSIX conforming shell script must
not even attempt it. (Even in POSIX the positional parameters can be
replaced with the `set' builtin, so claiming that they should be read-only
does not hold water.)
> He also again complained about executable size and footprint (zsh vs.
> bash), which I think was addressed earlier
I don't have an immediate answer to that, although having looked briefly
at the bash2 web site the other day and it's possible that it now has even
more of its "builtins" as loadable modules than zsh does.
^ permalink raw reply [relevance 10%]
* Re: posix compliance
2002-06-20 18:13 10% ` Bart Schaefer
@ 2002-06-20 19:17 5% ` Jos Backus
2002-06-20 21:31 10% ` Dan Nelson
0 siblings, 1 reply; 200+ results
From: Jos Backus @ 2002-06-20 19:17 UTC (permalink / raw)
To: zsh-workers
On Thu, Jun 20, 2002 at 11:13:43AM -0700, Bart Schaefer wrote:
> Assignable positional parameters are an intentional feature. There's no
> way they can cause a problem, because a POSIX conforming shell script must
> not even attempt it. (Even in POSIX the positional parameters can be
> replaced with the `set' builtin, so claiming that they should be read-only
> does not hold water.)
Indeed, his argument that things like these were causing them lots of problems
with zsh point to poorly written scripts in the first place. But of course
he's not going to admit that, least of all in public with the bash maintainer
standing next to him.
--
Jos Backus _/ _/_/_/ Santa Clara, CA
_/ _/ _/
_/ _/_/_/
_/ _/ _/ _/
jos@catnook.com _/_/ _/_/_/ require 'std/disclaimer'
^ permalink raw reply [relevance 5%]
* Re: posix compliance
@ 2002-06-20 21:19 5% Chet Ramey
2002-06-21 4:30 5% ` Jos Backus
0 siblings, 1 reply; 200+ results
From: Chet Ramey @ 2002-06-20 21:19 UTC (permalink / raw)
To: jos; +Cc: zsh-workers
> Indeed, his argument that things like these were causing them lots of problems
> with zsh point to poorly written scripts in the first place. But of course
> he's not going to admit that, least of all in public with the bash maintainer
> standing next to him.
Oh, I wouldn't have minded. There's a lot of crap out there, and shell
scripts are no exception.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
( ``Discere est Dolere'' -- chet)
Chet Ramey, CWRU chet@po.CWRU.Edu http://cnswww.cns.cwru.edu/~chet/
^ permalink raw reply [relevance 5%]
* Re: posix compliance
2002-06-20 19:17 5% ` Jos Backus
@ 2002-06-20 21:31 10% ` Dan Nelson
0 siblings, 0 replies; 200+ results
From: Dan Nelson @ 2002-06-20 21:31 UTC (permalink / raw)
To: zsh-workers
In the last episode (Jun 20), Jos Backus said:
> On Thu, Jun 20, 2002 at 11:13:43AM -0700, Bart Schaefer wrote:
> > Assignable positional parameters are an intentional feature.
> > There's no way they can cause a problem, because a POSIX conforming
> > shell script must not even attempt it. (Even in POSIX the
> > positional parameters can be replaced with the `set' builtin, so
> > claiming that they should be read-only does not hold water.)
>
> Indeed, his argument that things like these were causing them lots of
> problems with zsh point to poorly written scripts in the first place.
> But of course he's not going to admit that, least of all in public
> with the bash maintainer standing next to him.
The only reason I can think of to disallow non-POSIX-sanctioned
behvaiour is to prevent the rampant use of such features, as has
already happened in the Linux "sh == bash" world. You could even make
the case that zsh in sh emulation mode should allow only what POSIX
says it can do and nothing more.
If we're talking about zsh mode, then I lean the other way and say zsh
can do whatever it wants, as long as what POSIX mandates it does a
certain way, it does.
--
Dan Nelson
dnelson@allantgroup.com
^ permalink raw reply [relevance 10%]
* Re: posix compliance
2002-06-20 21:19 5% Chet Ramey
@ 2002-06-21 4:30 5% ` Jos Backus
0 siblings, 0 replies; 200+ results
From: Jos Backus @ 2002-06-21 4:30 UTC (permalink / raw)
To: Chet Ramey; +Cc: zsh-workers
Hi Chet,
[T'was nice to meet you, btw.]
On Thu, Jun 20, 2002 at 05:19:24PM -0400, Chet Ramey wrote:
> > Indeed, his argument that things like these were causing them lots of
> > problems with zsh point to poorly written scripts in the first place. But
> > of course he's not going to admit that, least of all in public with the
> > bash maintainer standing next to him.
>
> Oh, I wouldn't have minded. There's a lot of crap out there, and shell
> scripts are no exception.
Absolutely. I just wish that he had been interested in discussing the real
problems they were undoubtedly having with zsh so they can be fixed; that's
how progress is made.
> ( ``Discere est Dolere'' -- chet)
"Learning is suffering"? My Latin is rusty.
--
Jos Backus _/ _/_/_/ Santa Clara, CA
_/ _/ _/
_/ _/_/_/
_/ _/ _/ _/
jos@catnook.com _/_/ _/_/_/ require 'std/disclaimer'
^ permalink raw reply [relevance 5%]
* RE: posix compliance
2002-06-20 18:05 9% ` Jos Backus
2002-06-20 18:13 10% ` Bart Schaefer
@ 2002-06-21 5:19 9% ` Borsenkow Andrej
2002-06-21 11:35 5% ` Oliver Kiddle
2 siblings, 0 replies; 200+ results
From: Borsenkow Andrej @ 2002-06-21 5:19 UTC (permalink / raw)
To: jos, 'Clint Adams'; +Cc: zsh-workers
> A quick report from UseNIX: One thing Jordan Hubbard of Apple
mentioned was
> that our positional parameters ($1, $2, etc.) are assignable whereas
they
> are
> not in bash (Chet Ramey, who was also present, confirmed this). The
bash
> behavior is apparently what POSIX specifies.
It depends.
SUS V3 (which I hope is quite reliable representation of POSIX) says
that interpretation of
WORD1=WORD2
where WORD1 is not a name is implementation defined. It may be legally
interpreted as assignment.
You are correct that in case of ${WORD1=WORD2} it is prohibited:
${parameter:=word}
Assign Default Values. If parameter is unset or null, the expansion of
word shall be assigned to parameter. In all cases, the final value of
parameter shall be substituted. Only variables, not positional
parameters or special parameters, can be assigned in this way.
In case of read built-in it is unclear. There are no explicit
restrictions; one may infer that special parameters are invalid only
from this line:
var
The name of an existing or nonexisting shell variable.
and only due to usage of "name" here.
-andrej
^ permalink raw reply [relevance 9%]
* Re: posix compliance
2002-06-20 18:05 9% ` Jos Backus
2002-06-20 18:13 10% ` Bart Schaefer
2002-06-21 5:19 9% ` Borsenkow Andrej
@ 2002-06-21 11:35 5% ` Oliver Kiddle
2002-06-23 17:53 8% ` Bart Schaefer
2 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2002-06-21 11:35 UTC (permalink / raw)
To: Zsh workers
On 20 Jun, you wrote:
> A quick report from UseNIX: One thing Jordan Hubbard of Apple mentioned was
Thanks for the update.
> Otoh, the next version of OS X will have an updated zsh 4.0.4.
I wonder if the issue I mentioned in 16853 is going to be a problem for
them then. We ought to come up with a quick fix for 4.0. I'm off on
holiday midway through next week and have a lot of work to finish before
so I can't do anything quick.
I'll be interested to see what these updates are. I'm guessing that
they've cut out a few modules and completion stuff.
Oliver
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
^ permalink raw reply [relevance 5%]
* Re: posix compliance
2002-06-21 11:35 5% ` Oliver Kiddle
@ 2002-06-23 17:53 8% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2002-06-23 17:53 UTC (permalink / raw)
To: Oliver Kiddle, Zsh workers
On Jun 21, 12:35pm, Oliver Kiddle wrote:
} Subject: Re: posix compliance
}
} I wonder if the issue I mentioned in 16853 is going to be a problem for
} them then. We ought to come up with a quick fix for 4.0.
This seems to handle it nicely: only add all the predefined autoloads
when starting up in zsh emulation. Everything works as usual for any
explicit autoloads set up with zmodload.
Index: Src/mkbltnmlst.sh
===================================================================
RCS file: /extra/cvsroot/zsh/zsh-4.0/Src/mkbltnmlst.sh,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mkbltnmlst.sh
--- Src/mkbltnmlst.sh 9 Apr 2001 20:14:12 -0000 1.1.1.1
+++ Src/mkbltnmlst.sh 23 Jun 2002 17:43:19 -0000
@@ -20,6 +20,7 @@
exec > $1
+echo " if (emulation == EMULATE_ZSH) {"
for x_mod in $x_mods; do
modfile="`grep '^name='$x_mod' ' $CFMOD | sed -e 's/^.* modfile=//' \
-e 's/ .*//'`"
@@ -60,6 +61,7 @@
done
test "x$linked" = xno && echo "#endif"
done
+echo " }"
echo
done_mods=" "
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [relevance 8%]
* Re: zsh 4.0.5/4.1.0 release soon?
[not found] <19337.1028540626@csr.com>
@ 2002-08-05 12:31 2% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2002-08-05 12:31 UTC (permalink / raw)
To: Zsh workers
[-- Attachment #1: Type: text/plain, Size: 1942 bytes --]
On 5 Aug, Peter wrote:
>
> 4.0.5 has been imminent for some time now, but every time I say I'm
> thinking about releasing it, people say, hang on here's a list of other
> patches to look at. It looks like no-one has. I think it's perfectly
> releasable in it's present form, however, so I may be able to sneak it
> out while everyone's on holiday.
I can't see much by way of patches that could go across to 4.0.5. A
quick search for new completion functions which aren't on the 4.0 branch
gives me this list:
_apt-show-versions _debchange _larch _mysqldiff _texinfo _valgrind _limit
I'll apply _texinfo across unless Andrej says otherwise.
Also, we should perhaps either move _mondo out of Completion/Linux or
move _modutils and _valgrind in to join it.
Also, I had lying about patches against both the documentation and
comments in the source code to fix some typos, spellings and poor
wordings. I've attached these below. I'll only change documentation
files on the 4.0 branch though.
> The target for 4.1.0 was to have the parameter support tidied up.
> However, that seems to be receeding into the background, too. We
> really need to draw up a more limited set of goals since at the moment
> it looks like nobody's got the time for large scale new code. There's
> plenty of new stuff there in modules and the odd builtin.
Sorry, I've not had much time to look at the parameter stuff. It'd
perhaps be best to put out 4.1.x releases without any single big change.
As you say there is plenty of new stuff.
Oliver
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
[-- Attachment #2: patch against doc files --]
[-- Type: text/plain, Size: 8695 bytes --]
Index: Doc/Zsh/builtins.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/builtins.yo,v
retrieving revision 1.46
diff -u -r1.46 builtins.yo
--- Doc/Zsh/builtins.yo 20 Jun 2002 16:39:58 -0000 1.46
+++ Doc/Zsh/builtins.yo 5 Aug 2002 11:40:02 -0000
@@ -656,7 +656,7 @@
findex(print)
item(tt(print) [ tt(-bnrslzpNDPoOicm) ] [ tt(-u)var(n) ] [ tt(-f) var(format) ] [ tt(-R) [ tt(-en) ]] [ var(arg) ... ])(
With the `tt(-f)' option the arguments are printed as described by tt(printf).
-With no flags or with flag `tt(-)', the arguments are printed on
+With no flags or with the flag `tt(-)', the arguments are printed on
the standard output as described by tt(echo), with the following differences:
the escape sequence `tt(\M-)var(x)' metafies the character
var(x) (sets the highest bit),
Index: Doc/Zsh/compsys.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/compsys.yo,v
retrieving revision 1.159
diff -u -r1.159 compsys.yo
--- Doc/Zsh/compsys.yo 1 Jul 2002 08:25:17 -0000 1.159
+++ Doc/Zsh/compsys.yo 5 Aug 2002 11:40:02 -0000
@@ -274,10 +274,10 @@
The var(function) may actually be a string containing any shell code
and that string will be executed via the tt(eval) builtin command.
-This allows to easily define completions for commands that need to call
-one of the completion functions with arguments. For example to make
-files ending in `tt(.h)' be completed as arguments to the command
-tt(foo), one would use:
+This allows for the easy definition of completions for commands that
+need to call one of the completion functions with arguments. For
+example to make files ending in `tt(.h)' be completed as arguments to
+the command tt(foo), one would use:
example(compdef '_files -g "*.h"' foo)
@@ -568,7 +568,7 @@
kindex(characters, completion tag)
item(tt(characters))(
used for commands like tt(stty) when completing characters; also used
-when completing character classes after a opening bracket
+when completing character classes after an opening bracket
)
kindex(colormapids, completion tag)
item(tt(colormapids))(
@@ -3090,7 +3090,7 @@
completion is being performed. The description is given as arguments to
this function, with each var(spec) describing one option or normal
argument of the command. To separate these var(spec)s from the
-options given to tt(_arguments) itself, they can be preceeded by an
+options given to tt(_arguments) itself, they can be preceded by an
argument containing a single colon. The forms of var(spec)
understood are:
@@ -4274,7 +4274,7 @@
value whose argument is to be completed.
Note also that tt(_values) normally adds the character used as the
-separator between values as a auto-removable suffix so that users don't
+separator between values as an auto-removable suffix so that users don't
have to type it themselves. But when using a `tt(->)var(string)' action
tt(_values) can't do that because the matches for the argument will be
generated by the calling function. To get the usual behaviour, the
Index: Doc/Zsh/contrib.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/contrib.yo,v
retrieving revision 1.21
diff -u -r1.21 contrib.yo
--- Doc/Zsh/contrib.yo 5 Jul 2002 10:49:47 -0000 1.21
+++ Doc/Zsh/contrib.yo 5 Aug 2002 11:40:02 -0000
@@ -438,7 +438,7 @@
down within the buffer, otherwise they search for a history line matching
the start of the current line. In this case, however, they search for
a line which matches the current line up to the current cursor position, in
-the manner of tt(history-begining-search-backward) and tt(-forward), rather
+the manner of tt(history-beginning-search-backward) and tt(-forward), rather
than the first word on the line.
)
tindex(incarg)
@@ -909,7 +909,7 @@
Each line typed is evaluated as an expression. The prompt shows a number,
which corresponds to a positional parameter where the result of that
calculation is stored. For example, the result of the calculation on the
-line preceeded by `tt(4> )' is available as tt($4). Full command line
+line preceded by `tt(4> )' is available as tt($4). Full command line
editing, including the history of previous calculations, is available; the
history is saved in the file tt(~/.zcalc_history). To exit, enter a blank
line or type `tt(q)' on its own.
@@ -923,7 +923,7 @@
into the global namespace.
An extra facility is provided for changing the default output base. Use,
-for example, `tt([#16])' to display hexadecimal output preceeded by an
+for example, `tt([#16])' to display hexadecimal output preceded by an
indication of the base, or `tt([##16])' just to display the raw number in
the given base. Bases themselves are always specified in decimal.
`tt([#])' restores the normal output format.
Index: Doc/Zsh/expn.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/expn.yo,v
retrieving revision 1.42
diff -u -r1.42 expn.yo
--- Doc/Zsh/expn.yo 22 Feb 2002 17:28:05 -0000 1.42
+++ Doc/Zsh/expn.yo 5 Aug 2002 11:40:03 -0000
@@ -1680,11 +1680,11 @@
up to the next matching character (`tt([)', `tt({)', and `tt(<)' match
`tt(])', `tt(})', and `tt(>)' respectively, any other character
matches itself) is taken as a list of comma-separated
-var(sub-spec)s. Each var(sub-spec) may be either a octal number as
+var(sub-spec)s. Each var(sub-spec) may be either an octal number as
described above or a list of any of the characters `tt(u)', `tt(g)',
`tt(o)', and `tt(a)', followed by a `tt(=)', a `tt(PLUS())', or a
`tt(-)', followed by a list of any of the characters `tt(r)', `tt(w)',
-`tt(x)', `tt(s)', and `tt(t)', or a octal digit. The first list of
+`tt(x)', `tt(s)', and `tt(t)', or an octal digit. The first list of
characters specify which access rights are to be checked. If a `tt(u)'
is given, those for the owner of the file are used, if a `tt(g)' is
given, those of the group are checked, a `tt(o)' means to test those
@@ -1886,5 +1886,5 @@
demonstrates how colon modifiers and other qualifiers may be chained
together. The ordinary qualifier `tt(.)' is applied first, then the colon
modifiers in order from left to right. So if tt(EXTENDED_GLOB) is set and
-the base battern matches the regular file tt(builtin.pro), the shell will
+the base pattern matches the regular file tt(builtin.pro), the shell will
print `tt(shmiltin.shmo)'.
Index: Doc/Zsh/files.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/files.yo,v
retrieving revision 1.3
diff -u -r1.3 files.yo
--- Doc/Zsh/files.yo 10 Jul 2001 08:59:18 -0000 1.3
+++ Doc/Zsh/files.yo 5 Aug 2002 11:40:03 -0000
@@ -10,7 +10,7 @@
pindex(NO_RCS, use of)
pindex(NO_GLOBAL_RCS, use of)
vindex(ZDOTDIR, use of)
-@cindex(zshenv)
+cindex(zshenv)
Commands are first read from tt(/etc/zshenv); this cannot be overridden.
Subsequent behaviour is modified by the tt(RCS) and
tt(GLOBAL_RCS) options; the former affects all startup files, while the
Index: Doc/Zsh/params.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/params.yo,v
retrieving revision 1.15
diff -u -r1.15 params.yo
--- Doc/Zsh/params.yo 21 Feb 2002 13:43:00 -0000 1.15
+++ Doc/Zsh/params.yo 5 Aug 2002 11:40:03 -0000
@@ -707,9 +707,8 @@
item(tt(fignore) <S> <Z> (tt(FIGNORE) <S>))(
An array (colon separated list)
containing the suffixes of files to be ignored
-during filename completion. However, if the completion generates only files
-which would match if this variable would be ignored, than these files are
-completed anyway.
+during filename completion. However, if completion only generates files
+with suffixes in this list, then these files are completed anyway.
)
vindex(fpath)
vindex(FPATH)
Index: Doc/Zsh/zle.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/zle.yo,v
retrieving revision 1.25
diff -u -r1.25 zle.yo
--- Doc/Zsh/zle.yo 4 Jul 2002 10:13:39 -0000 1.25
+++ Doc/Zsh/zle.yo 5 Aug 2002 11:40:03 -0000
@@ -1045,7 +1045,7 @@
the default behaviour is used, while if it is 1, successive calls will move
forwards through the history. The value 0 can be used to indicate that the
history line examined by the previous execution of the command will be
-reexamined. Note that negative numbers should be preceeded with a
+reexamined. Note that negative numbers should be preceded with a
`tt(-)tt(-)' argument to avoid confusing them with options.
If two arguments are given, the second specifies the word on the command
[-- Attachment #3: patch against src files --]
[-- Type: text/plain, Size: 16988 bytes --]
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.79
diff -u -r1.79 builtin.c
--- Src/builtin.c 1 Aug 2002 15:50:07 -0000 1.79
+++ Src/builtin.c 5 Aug 2002 11:40:03 -0000
@@ -477,8 +477,8 @@
hadplus = 0, hadend = 0, sort = 0;
char **x;
- /* Obsolecent sh compatibility: set - is the same as set +xv *
- * and set - args is the same as set +xv -- args */
+ /* Obsolescent sh compatibility: set - is the same as set +xv *
+ * and set - args is the same as set +xv -- args */
if (*args && **args == '-' && !args[0][1]) {
dosetopt(VERBOSE, 0, 0);
dosetopt(XTRACE, 0, 0);
@@ -699,7 +699,7 @@
/* The main pwd changing function. The real work is done by other *
* functions. cd_get_dest() does the initial argument processing; *
* cd_do_chdir() actually changes directory, if possible; cd_new_pwd() *
- * does the ancilliary processing associated with actually changing *
+ * does the ancillary processing associated with actually changing *
* directory. */
/**/
@@ -1409,7 +1409,7 @@
return cmd;
}
-/* Perform old=new substituions. Uses the asgment structure from zsh.h, *
+/* Perform old=new substitutions. Uses the asgment structure from zsh.h, *
* which is essentially a linked list of string,replacement pairs. */
/**/
@@ -1643,7 +1643,7 @@
* If the original parameter was special and we're creating
* a new one, we need to keep it special.
*
- * The -h (hide) flags prevents an existing special being made
+ * The -h (hide) flag prevents an existing special being made
* local. It can be applied either to the special or in the
* typeset/local statement for the local variable.
*/
@@ -1965,7 +1965,7 @@
off |= bit;
roff = off;
- /* Sanity checks on the options. Remove conficting options. */
+ /* Sanity checks on the options. Remove conflicting options. */
if (on & PM_FFLOAT) {
off |= PM_RIGHT_B | PM_LEFT | PM_RIGHT_Z | PM_UPPER | PM_ARRAY |
PM_HASHED | PM_INTEGER | PM_EFLOAT;
Index: Src/compat.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/compat.c,v
retrieving revision 1.11
diff -u -r1.11 compat.c
--- Src/compat.c 3 Nov 2001 23:39:11 -0000 1.11
+++ Src/compat.c 5 Aug 2002 11:40:03 -0000
@@ -1,5 +1,5 @@
/*
- * compat.c - compatibiltiy routines for the deprived
+ * compat.c - compatibility routines for the deprived
*
* This file is part of zsh, the Z shell.
*
@@ -377,7 +377,7 @@
}
/* chdir with arbitrary long pathname. Returns 0 on success, 0 on normal *
- * faliliure and -2 when chdir failed and the current directory is lost. */
+ * failure and -2 when chdir failed and the current directory is lost. */
/**/
mod_export int
Index: Src/exec.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/exec.c,v
retrieving revision 1.44
diff -u -r1.44 exec.c
--- Src/exec.c 1 Aug 2002 15:06:27 -0000 1.44
+++ Src/exec.c 5 Aug 2002 11:40:03 -0000
@@ -2372,7 +2372,7 @@
execute((Cmdnam) hn, cflags & BINF_DASH);
} else { /* ( ... ) */
DPUTS(varspc,
- "BUG: assigment before complex command");
+ "BUG: assignment before complex command");
list_pipe = 0;
if (subsh_close >= 0)
zclose(subsh_close);
Index: Src/glob.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/glob.c,v
retrieving revision 1.27
diff -u -r1.27 glob.c
--- Src/glob.c 6 May 2002 14:46:11 -0000 1.27
+++ Src/glob.c 5 Aug 2002 11:40:03 -0000
@@ -355,7 +355,7 @@
while (!inserts || (news = dupstring(*inserts++))) {
if (colonmod) {
- /* Handle the remainder of the qualifer: e.g. (:r:s/foo/bar/). */
+ /* Handle the remainder of the qualifier: e.g. (:r:s/foo/bar/). */
s = colonmod;
modify(&news, &s);
}
@@ -685,7 +685,7 @@
/* parse single path component */
if (!(p1 = patcompile(instr, compflags|PAT_FILET, &instr)))
return NULL;
- /* then do the remaining path compoents */
+ /* then do the remaining path components */
if (*instr == '/' || !*instr) {
int ef = *instr == '/';
Index: Src/hashtable.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/hashtable.c,v
retrieving revision 1.11
diff -u -r1.11 hashtable.c
--- Src/hashtable.c 5 Jul 2001 11:43:11 -0000 1.11
+++ Src/hashtable.c 5 Aug 2002 11:40:03 -0000
@@ -156,7 +156,7 @@
ht->freenode(oldnode);
}
-/* Add a node to a hash table, returning the old node on replacment. */
+/* Add a node to a hash table, returning the old node on replacement. */
/**/
HashNode
Index: Src/init.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/init.c,v
retrieving revision 1.24
diff -u -r1.24 init.c
--- Src/init.c 7 Jun 2002 14:44:25 -0000 1.24
+++ Src/init.c 5 Aug 2002 11:40:03 -0000
@@ -805,7 +805,7 @@
createshfunctable(); /* create hash table for shell functions */
createbuiltintable(); /* create hash table for builtin commands */
createnameddirtable(); /* create hash table for named directories */
- createparamtable(); /* create paramater hash table */
+ createparamtable(); /* create parameter hash table */
condtab = NULL;
wrappers = NULL;
Index: Src/lex.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/lex.c,v
retrieving revision 1.22
diff -u -r1.22 lex.c
--- Src/lex.c 8 Jan 2002 15:33:23 -0000 1.22
+++ Src/lex.c 5 Aug 2002 11:40:03 -0000
@@ -122,7 +122,7 @@
/**/
mod_export int nocomments;
-/* text of puctuation tokens */
+/* text of punctuation tokens */
/**/
mod_export char *tokstrings[WHILE + 1] = {
Index: Src/math.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/math.c,v
retrieving revision 1.14
diff -u -r1.14 math.c
--- Src/math.c 17 May 2002 15:14:05 -0000 1.14
+++ Src/math.c 5 Aug 2002 11:40:03 -0000
@@ -648,7 +648,7 @@
(a.type != MN_UNSET || what != EQ)) {
/*
* Different types, so coerce to float.
- * It may happen during an assigment that the LHS
+ * It may happen during an assignment that the LHS
* variable is actually an integer, but there's still
* no harm in doing the arithmetic in floating point;
* the assignment will do the correct conversion.
Index: Src/mem.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/mem.c,v
retrieving revision 1.5
diff -u -r1.5 mem.c
--- Src/mem.c 7 Mar 2001 12:58:41 -0000 1.5
+++ Src/mem.c 5 Aug 2002 11:40:03 -0000
@@ -693,7 +693,7 @@
size of the small blocks held in a memory block, given a pointer to the
header of it. M_SBLEN() gives the size of a memory block that can hold
an array of small blocks, given the size of these small blocks. M_BSLEN()
- caculates the size of the small blocks held in a memory block, given the
+ calculates the size of the small blocks held in a memory block, given the
length of that block (including the header of the memory block. M_NSMALL
is the number of possible block sizes that small blocks should be used
for. */
@@ -1286,7 +1286,7 @@
printf("\nThe list of memory blocks. For each block the following\n");
printf("information is shown:\n\n");
printf("num\tthe number of this block\n");
- printf("tnum\tlike num but counted separatedly for used and free\n");
+ printf("tnum\tlike num but counted separately for used and free\n");
printf("\tblocks\n");
printf("addr\tthe address of this block\n");
printf("len\tthe length of the block\n");
@@ -1295,7 +1295,7 @@
printf("\t free\tthis block is free\n");
printf("\t small\tthis block is used for an array of small blocks\n");
printf("cum\tthe accumulated sizes of the blocks, counted\n");
- printf("\tseparatedly for used and free blocks\n");
+ printf("\tseparately for used and free blocks\n");
printf("\nFor blocks holding small blocks the number of free\n");
printf("blocks, the number of used blocks and the size of the\n");
printf("blocks is shown. For otherwise used blocks the first few\n");
Index: Src/module.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/module.c,v
retrieving revision 1.9
diff -u -r1.9 module.c
--- Src/module.c 18 May 2001 15:23:09 -0000 1.9
+++ Src/module.c 5 Aug 2002 11:40:03 -0000
@@ -903,7 +903,7 @@
* If we were passed an alias, we must resolve it to a final
* module name (and maybe add the corresponding struct), since otherwise
* we would need to check all modules to see if they happen
- * to be aliased to the same thing to implement depencies properly.
+ * to be aliased to the same thing to implement dependencies properly.
*
* This should mean that an attempt to add an alias which would
* have the same name as a module which has dependencies is correctly
Index: Src/params.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/params.c,v
retrieving revision 1.64
diff -u -r1.64 params.c
--- Src/params.c 20 Jun 2002 16:39:58 -0000 1.64
+++ Src/params.c 5 Aug 2002 11:40:03 -0000
@@ -225,7 +225,7 @@
{NULL, NULL},
#define IPDEF10(A,B,C) {NULL,A,PM_ARRAY|PM_SPECIAL,BR(NULL),SFN(C),GFN(B),stdunsetfn,10,NULL,NULL,NULL,0}
-/* The following parameters are not avaible in sh/ksh compatibility *
+/* The following parameters are not available in sh/ksh compatibility *
* mode. All of these have sh compatible equivalents. */
IPDEF1("ARGC", poundgetfn, nullintsetfn, PM_READONLY),
IPDEF2("HISTCHARS", histcharsgetfn, histcharssetfn, PM_DONTIMPORT),
@@ -678,7 +678,7 @@
paramtab->getnode(paramtab, name));
DPUTS(oldpm && oldpm->level > locallevel,
- "BUG: old local parameter not deleteed");
+ "BUG: old local parameter not deleted");
if (oldpm && (oldpm->level == locallevel || !(flags & PM_LOCAL))) {
if (!(oldpm->flags & PM_UNSET) || (oldpm->flags & PM_SPECIAL)) {
oldpm->flags &= ~PM_UNSET;
@@ -1205,7 +1205,7 @@
*s++ = '[';
s = parse_subscript(s, dq); /* Error handled after untokenizing */
- /* Now we untokenize everthing except INULL() markers so we can check *
+ /* Now we untokenize everything except INULL() markers so we can check *
* for the '*' and '@' special subscripts. The INULL()s are removed *
* in getarg() after we know whether we're doing reverse indexing. */
for (tbrack = *pptr + 1; *tbrack && tbrack != s; tbrack++) {
@@ -2269,7 +2269,7 @@
/*
* Re-export the old value which we removed in typeset_single().
* I don't think we need to test for ALL_EXPORT here, since if
- * it was used to export the parameter originally the parmeter
+ * it was used to export the parameter originally the parameter
* should still have the PM_EXPORTED flag.
*/
export_param(oldpm);
Index: Src/parse.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/parse.c,v
retrieving revision 1.36
diff -u -r1.36 parse.c
--- Src/parse.c 7 Jun 2002 14:44:25 -0000 1.36
+++ Src/parse.c 5 Aug 2002 11:40:03 -0000
@@ -93,7 +93,7 @@
*
* WC_LIST
* - data contains type (sync, ...)
- * - follwed by code for this list
+ * - followed by code for this list
* - if not (type & Z_END), followed by next WC_LIST
*
* WC_SUBLIST
@@ -139,7 +139,7 @@
* - followed by offset to first string
* - followed by length of string table
* - followed by number of patterns for body
- * - follwoed by codes for body
+ * - followed by codes for body
* - followed by strings for body
*
* WC_FOR
Index: Src/pattern.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/pattern.c,v
retrieving revision 1.11
diff -u -r1.11 pattern.c
--- Src/pattern.c 22 Jan 2002 12:40:26 -0000 1.11
+++ Src/pattern.c 5 Aug 2002 11:40:03 -0000
@@ -70,7 +70,7 @@
#include "pattern.pro"
-/* Number of active parenthesised expressions allowed in backreferencing */
+/* Number of active parenthesized expressions allowed in backreferencing */
#define NSUBEXP 9
/* definition number opnd? meaning */
@@ -119,7 +119,7 @@
*
* P_ANY, P_ANYOF: the operand is a null terminated
* string. Normal characters match as expected. Characters
- * in the range Meta+PP_ALPHA..Meta+PP_UNKNWN do the approprate
+ * in the range Meta+PP_ALPHA..Meta+PP_UNKNWN do the appropriate
* Posix range tests. This relies on imeta returning true for these
* characters. We treat unknown POSIX ranges as never matching.
* PP_RANGE means the next two (possibly metafied) characters form
@@ -448,7 +448,7 @@
}
/*
- * Main body or parenthesised subexpression in pattern
+ * Main body or parenthesized subexpression in pattern
* Parenthesis (and any ksh_glob gubbins) will have been removed.
*/
@@ -830,7 +830,7 @@
for (;;) {
/*
* Check if we have a string. First, we need to make sure
- * the string doesn't introduce a ksh-like parenthesised expression.
+ * the string doesn't introduce a ksh-like parenthesized expression.
*/
kshchar = '\0';
if (isset(KSHGLOB) && *patparse && patparse[1] == Inpar) {
@@ -1972,7 +1972,7 @@
* This is just simple cases, matching one character.
* With approximations, we still handle * this way, since
* no approximation is ever necessary, but other closures
- * are handled by the more compicated branching method
+ * are handled by the more complicated branching method
*/
op = P_OP(scan);
/* Note that no counts possibly metafied characters */
Index: Src/prompt.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/prompt.c,v
retrieving revision 1.9
diff -u -r1.9 prompt.c
--- Src/prompt.c 31 Jan 2002 15:13:27 -0000 1.9
+++ Src/prompt.c 5 Aug 2002 11:40:03 -0000
@@ -75,7 +75,7 @@
static char *bufline;
-/* bp1 is an auxilliary pointer into the buffer, which when non-NULL is *
+/* bp1 is an auxiliary pointer into the buffer, which when non-NULL is *
* moved whenever the buffer is reallocated. It is used when data is *
* being temporarily held in the buffer. */
Index: Src/utils.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/utils.c,v
retrieving revision 1.40
diff -u -r1.40 utils.c
--- Src/utils.c 21 May 2002 11:10:16 -0000 1.40
+++ Src/utils.c 5 Aug 2002 11:40:03 -0000
@@ -2553,7 +2553,7 @@
/* Escape tokens and null characters. Buf is the string which should be *
* escaped. len is the length of the string. If len is -1, buf should be *
- * null terminated. If len is non-negative and the third paramerer is not *
+ * null terminated. If len is non-negative and the third parameter is not *
* META_DUP, buf should point to an at least len+1 long memory area. The *
* return value points to the quoted string. If the given string does not *
* contain any special character which should be quoted and the third *
Index: Src/zsh.h
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/zsh.h,v
retrieving revision 1.39
diff -u -r1.39 zsh.h
--- Src/zsh.h 1 Jul 2002 08:25:17 -0000 1.39
+++ Src/zsh.h 5 Aug 2002 11:40:04 -0000
@@ -476,7 +476,7 @@
#define MAX_ARRLEN 262144
/********************************************/
-/* Defintions for word code */
+/* Definitions for word code */
/********************************************/
typedef unsigned int wordcode;
@@ -680,7 +680,7 @@
#define WCB_AUTOFN() wc_bld(WC_AUTOFN, 0)
/********************************************/
-/* Defintions for job table and job control */
+/* Definitions for job table and job control */
/********************************************/
#ifdef NEED_LINUX_TASKS_H
@@ -1181,7 +1181,7 @@
* could a lot of other things.
*/
-#define SUB_END 0x0001 /* match end instead of begining, % or %% */
+#define SUB_END 0x0001 /* match end instead of beginning, % or %% */
#define SUB_LONG 0x0002 /* % or # doubled, get longest match */
#define SUB_SUBSTR 0x0004 /* match a substring */
#define SUB_MATCH 0x0008 /* include the matched portion */
@@ -1486,7 +1486,7 @@
#define islogin (isset(LOGINSHELL))
/***********************************************/
-/* Defintions for terminal and display control */
+/* Definitions for terminal and display control */
/***********************************************/
/* tty state structure */
^ permalink raw reply [relevance 2%]
* Re: Non-patch: Option arguments
@ 2002-08-27 11:36 3% ` Oliver Kiddle
2002-08-27 16:27 0% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2002-08-27 11:36 UTC (permalink / raw)
To: Peter Stephenson; +Cc: Zsh hackers list
On 27 Aug, you wrote:
> I've rewritten the option handling for builtins to improve the currently
> woeful handling of arguments to options. As I didn't see fit to
> maintain compatibility with the current broken form, this changes
> everything involving options. So the patch is huge and unless anyone
> screams I will commit it without posting it from home, where I've been
> writing it, in the next couple of days.
That all sounds good.
A couple of points which you may or may not have thought of.
Will there now be an easier way for precommand modifiers to take
options. We could particularly do with this for command where a couple
of the options (-v was it) should be accepted by the posix definition
but it would also be useful in a couple of other cases for bash/ksh
compatibility (exec perhaps). I forget what the problem was previously
with this.
We may need a bit of care over how `-' and `--' options are handled.
Taking Chet Ramey's recent message on -users, I was wondering whether
printf (to take a particular example but it may be applicable to others)
should ignore an initial `--' argument.
Oliver
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
^ permalink raw reply [relevance 3%]
* Re: Non-patch: Option arguments
2002-08-27 11:36 3% ` Oliver Kiddle
@ 2002-08-27 16:27 0% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2002-08-27 16:27 UTC (permalink / raw)
To: Zsh hackers list
Oliver Kiddle wrote:
> A couple of points which you may or may not have thought of.
> Will there now be an easier way for precommand modifiers to take
> options. We could particularly do with this for command where a couple
> of the options (-v was it) should be accepted by the posix definition
> but it would also be useful in a couple of other cases for bash/ksh
> compatibility (exec perhaps). I forget what the problem was previously
> with this.
I think this is a different issue, but actually I'm not sure this is
that difficult.
> We may need a bit of care over how `-' and `--' options are handled.
> Taking Chet Ramey's recent message on -users, I was wondering whether
> printf (to take a particular example but it may be applicable to others)
> should ignore an initial `--' argument.
Yes, this is a bit like cd. Various things like this will need tidying
up later. There's no code at the moment to handle `--' even if other
arguments looking like options are being passed straight through is
arguments.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 0%]
* PATCH: printf --
@ 2002-09-16 11:44 4% Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2002-09-16 11:44 UTC (permalink / raw)
To: Zsh workers
Reluctantly, I here add removal of an inital `--' to printf to satisfy
POSIX.
Except for cd, command (which we knew anyway) and possibly ulimit, I
think we have it right for other standard commands. I'm not sure in the
case of fg, bg and wait. If my understanding of the POSIX standard is
correct, the builtins which should not ignore an initial `--' are:
break, dot, eval, shift, exec, exit, return, test/[ and continue. Zsh
gets all these right. Also, having noticed that `ARGV0=whatever exec
command' is clever enough to change the command name for the command
and not for exec, I don't think we should follow bash and ksh93 in
giving exec arguments. Though zsh can't easily do the -c functionality
which passes an empty environment.
--- Src/builtin.c 2002-08-28 08:22:23.000000000 +0100
+++ Src/builtin.c 2002-09-15 18:52:11.000000000 +0100
@@ -3024,9 +3024,15 @@
zulong zulongval;
char *stringval;
- if (func == BIN_PRINTF)
+ if (func == BIN_PRINTF) {
+ if (!strcmp(*args, "--")) {
+ if (!*++args) {
+ zwarnnam(name, "not enough arguments", NULL, 0);
+ return 1;
+ }
+ }
fmt = *args++;
- else if (OPT_HASARG(ops,'f'))
+ } else if (OPT_HASARG(ops,'f'))
fmt = OPT_ARG(ops,'f');
if (fmt)
fmt = getkeystring(fmt, &flen, OPT_ISSET(ops,'b') ? 2 : 0, &nnl);
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
^ permalink raw reply [relevance 4%]
* Recursion and shell functions
@ 2002-10-10 19:41 3% DervishD
0 siblings, 1 reply; 200+ results
From: DervishD @ 2002-10-10 19:41 UTC (permalink / raw)
To: Zsh
Hi all :))
First of all, please excuse this a-bit-off-topic question, but I
need to know if a feature available in zsh is portable.
I need to do recursion in a directory tree and have two options;
first one is doing a 'for' loop recursively calling the shell
function which performs the actions:
function () {
for item
do
if [ -d $item ]
then
do_some_action
chmod u+w $item
cd $item
function <-- Overwrites 'item', of course
chmod u-w $item <-- Oh-oh... $item is not as before...
...
fi
fi
...
}
Second is using 'find' to do the proper operations, although I
don't want the piece of software dependent on 'find'. The problem is
if I can do recursion safely (well, portably), if it is supported by
POSIX (I can't find a word about it in SuSv3) or at least if it is
common practice: don't want to find a tiny non-interactive shell
failing because of this...
Just in case you can help me, I need to copy a hierarchy from one
place to another (where some files can be already present) setting
permissions in the process. Other solution I'm considering is doing a
'cp -fpR' over the tree and after that the recursion above for
setting the permissions. This may seems unreasonable (two
recursions...) but it's necessary since the recursive function call
overwrites local variables, and I *cannot* set them as local, since
'local' is not a portable keyword :((( I need
Suggestions welcome and thanks in advance :))
Raúl
^ permalink raw reply [relevance 3%]
* Re: Recursion and shell functions
@ 2002-10-10 21:15 3% ` DervishD
0 siblings, 0 replies; 200+ results
From: DervishD @ 2002-10-10 21:15 UTC (permalink / raw)
To: Jason Price; +Cc: Zsh
Hi Jason :)
> > First of all, please excuse this a-bit-off-topic question, but I
> > need to know if a feature available in zsh is portable.
> You could re-invent the wheel, but why?
> (cd <your source dir> ; tar -cpvf - .) | ( cd <your dest dir> ; tar -xpf -)
Thanks for your answer, Jason, but I don't want to make the
software dependent on 'tar'. In fact I don't have tar on my system! I
use 'pax' instead ;))
The aim is to depend only on the shell and POSIX utilities (like
'cp', 'rm, etc... you know.). I want to impose little or no
dependencies. 'tar' is not a good solution for me, I prefer 'pax',
although is not as extended by now, 'rsync' seems to big for copying
a few bunch of files, and 'ssh'... well...
Thanks again.
Raúl
^ permalink raw reply [relevance 3%]
* PATCH: cap leak
@ 2002-10-11 1:04 3% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2002-10-11 1:04 UTC (permalink / raw)
To: zsh-workers
This patch is from Martin Waitz, who noticed that caps wouldn't be freed
if(val).
--- Src/utils.c.orig 2002-10-10 23:59:28.000000000 +0200
+++ Src/utils.c 2002-10-11 00:00:55.000000000 +0200
@@ -3670,7 +3670,10 @@ privasserted(void)
cap_flag_value_t val;
cap_value_t n;
for(n = 0; !cap_get_flag(caps, n, CAP_EFFECTIVE, &val); n++)
- if(val) return 1;
+ if(val) {
+ cap_free(caps);
+ return 1;
+ }
cap_free(caps);
}
}
-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux pergament 2.4.19-pergament0 #1 Son Aug 25 17:07:17 CEST 2002 i686
Locale: LANG=C, LC_CTYPE=de_DE@euro
Versions of packages zsh depends on:
ii debconf 1.2.10 Debian configuration management sy
ii libc6 2.2.5-15 GNU C Library: Shared libraries an
ii libcap1 1:1.10-12 support for getting/setting POSIX.
ii libncurses5 5.2.20020112a-8 Shared libraries for terminal hand
-- debconf information excluded
----- End forwarded message -----
^ permalink raw reply [relevance 3%]
* Linux 2.5 and Zsh bug
@ 2002-10-18 20:59 4% Stephen Hemminger
2002-10-18 21:50 0% ` Clint Adams
0 siblings, 1 reply; 200+ results
From: Stephen Hemminger @ 2002-10-18 20:59 UTC (permalink / raw)
To: zsh-workers, zsh-workers, zsh-workers, zsh-workers, lkml
When running zsh on a Linux 2.5 kernel, the prompt always has a hash
sign '#' rather than the normal user '$'. This probably happens because
the shell function privasserted() is returning true for all users. I
know nothing about Posix capabilities but the zsh code for this looks
suspicious.
Code in question:
------------------------------------------------------------
/* isolate zsh bug */
#include <stdio.h>
#include <sys/capability.h>
int
privasserted(void)
{
if(!geteuid()) {
printf("geteuid() is root\n");
return 1;
}
else {
cap_t caps = cap_get_proc();
if(caps) {
printf("caps = %p\n", caps);
/* POSIX doesn't define a way to test whether a capability set *
* is empty or not. Typical. I hope this is
conforming... */
cap_flag_value_t val;
cap_value_t n;
for(n = 0; !cap_get_flag(caps, n, CAP_EFFECTIVE, &val); n++) {
if(val) {
printf("capability %#x is %d\n", n, val);
cap_free(caps); /* missing in original zsh code
memory leak */
return 1;
}
}
printf("last capability %#x\n", n);
cap_free(caps);
}
}
return 0;
}
int main(int argc, const char **argv) {
printf("%s privledged\n", privasserted() ? "Is" : "Not");
}
------------------------------------------------
On 2.4.18
caps = 0x8049844
last capability 0x1d
Not privledged
On 2.5.43
caps = 0x804a00c
capability 0 is 1
Is privledged
^ permalink raw reply [relevance 4%]
* Re: Linux 2.5 and Zsh bug
2002-10-18 20:59 4% Linux 2.5 and Zsh bug Stephen Hemminger
@ 2002-10-18 21:50 0% ` Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2002-10-18 21:50 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: zsh-workers, lkml
> When running zsh on a Linux 2.5 kernel, the prompt always has a hash
> sign '#' rather than the normal user '$'. This probably happens because
> the shell function privasserted() is returning true for all users. I
> know nothing about Posix capabilities but the zsh code for this looks
> suspicious.
See this for more info:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=163008&repeatmerged=yes
^ permalink raw reply [relevance 0%]
* Inconsistent signal handling?
@ 2002-10-26 3:22 3% Philippe Troin
0 siblings, 0 replies; 200+ results
From: Philippe Troin @ 2002-10-26 3:22 UTC (permalink / raw)
To: zsh-workers
[-- Attachment #1: Type: text/plain, Size: 2508 bytes --]
In init.c, init_signals() says:
void
init_signals(void)
{
sigchld_mask = signal_mask(SIGCHLD);
intr();
#ifndef QDEBUG
signal_ignore(SIGQUIT);
#endif
install_handler(SIGHUP);
install_handler(SIGCHLD);
#ifdef SIGWINCH
install_handler(SIGWINCH);
#endif
if (interact) {
install_handler(SIGALRM);
[1] signal_ignore(SIGTERM);
}
if (jobbing) {
[2] long ttypgrp;
[2]
[2] while ((ttypgrp = gettygrp()) != -1 && ttypgrp != mypgrp)
[2] kill(0, SIGTTIN);
[2] if (ttypgrp == -1) {
[2] opts[MONITOR] = 0;
[2] } else {
[2] signal_ignore(SIGTTOU);
[2] signal_ignore(SIGTSTP);
[2] signal_ignore(SIGTTIN);
[2] attachtty(mypgrp);
[2] }
}
[3] if (islogin) {
[4] signal_setmask(signal_mask(0));
} else if (interact) {
sigset_t set;
sigemptyset(&set);
sigaddset(&set, SIGINT);
sigaddset(&set, SIGQUIT);
signal_unblock(set);
}
}
My remarks:
[1] Why do we ignore SIGTERM on interactive sessions? That sounds
like a bad idea to me.
[2] See my previous mail <87bs5hc31h.fsf@ceramic.fifi.org>
[3] Why do we only clean-up the signal mask on login shells? It
should happen on interactive shells (there can be login
non-interactive shells, eg. for X11 startup).
[4] This is not enough to clean-up all inherited signal
properties. If some signals have been ignored (with
signal(SIG_IGN)) before zsh was exec()ed, then they are still
ignored by zsh. exec*() only resets the disposition of signals
which have a signal handler to SIG_DFL, but leaves SIG_IGNored
signals as is (this is a POSIX requirement).
I'd suggest changing init_signals to:
void
init_signals(void)
{
if (interact) {
int i;
signal_setmask(signal_mask(0));
for (i=0; i<NSIG; ++i)
signal_default(i);
}
sigchld_mask = signal_mask(SIGCHLD);
intr();
#ifndef QDEBUG
signal_ignore(SIGQUIT);
#endif
install_handler(SIGHUP);
install_handler(SIGCHLD);
#ifdef SIGWINCH
install_handler(SIGWINCH);
#endif
if (interact) {
install_handler(SIGALRM);
}
if (jobbing) {
signal_ignore(SIGTTOU);
signal_ignore(SIGTSTP);
signal_ignore(SIGTTIN);
}
}
Patch against 4.0.6 attached.
Phil.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: zsh-4.0.6-signals.patch --]
[-- Type: text/x-patch, Size: 1304 bytes --]
diff -rc zsh-4.0.6.orig/Src/init.c zsh-4.0.6/Src/init.c
*** zsh-4.0.6.orig/Src/init.c Fri Oct 25 19:43:15 2002
--- zsh-4.0.6/Src/init.c Fri Oct 25 20:19:02 2002
***************
*** 842,847 ****
--- 842,853 ----
void
init_signals(void)
{
+ if (interact) {
+ int i;
+ signal_setmask(signal_mask(0));
+ for (i=0; i<NSIG; ++i)
+ signal_default(i);
+ }
sigchld_mask = signal_mask(SIGCHLD);
intr();
***************
*** 857,887 ****
#endif
if (interact) {
install_handler(SIGALRM);
- signal_ignore(SIGTERM);
}
if (jobbing) {
! long ttypgrp;
!
! while ((ttypgrp = gettygrp()) != -1 && ttypgrp != mypgrp)
! kill(0, SIGTTIN);
! if (ttypgrp == -1) {
! opts[MONITOR] = 0;
! } else {
! signal_ignore(SIGTTOU);
! signal_ignore(SIGTSTP);
! signal_ignore(SIGTTIN);
! attachtty(mypgrp);
! }
! }
! if (islogin) {
! signal_setmask(signal_mask(0));
! } else if (interact) {
! sigset_t set;
!
! sigemptyset(&set);
! sigaddset(&set, SIGINT);
! sigaddset(&set, SIGQUIT);
! signal_unblock(set);
}
}
--- 863,873 ----
#endif
if (interact) {
install_handler(SIGALRM);
}
if (jobbing) {
! signal_ignore(SIGTTOU);
! signal_ignore(SIGTSTP);
! signal_ignore(SIGTTIN);
}
}
^ permalink raw reply [relevance 3%]
* What can we do with the drunken libc?
@ 2002-12-19 16:34 3% DervishD
0 siblings, 0 replies; 200+ results
From: DervishD @ 2002-12-19 16:34 UTC (permalink / raw)
To: Zsh
Hi all :))
Excuse the subject, it's just that I'm starting to be pissed off
by GNUisms... Let's go to the matter. In the GNU libc 'ldd' script,
we can see something like:
echo $"Usage: ldd [OPTION]... FILE..."
Obviously, zsh prints '$Usage: ....', but bash prints just
'Usage: ...'. Why? Well, because as the bash documentation says, a
doubled quoted string preceeded by a dollar sign, will cause the
string to be translated according to the current locale. There are a
couple of shell variables involved, too, TEXTDOMAIN and TEXTDOMAINDIR.
Well. What can we, zsh users, do? First thing is to use bash as
our '/bin/sh' so all that crappy GNUist scripts work as expected
(there are more bashisms). Other thing is making zsh support those
bashist features. And the most difficult, trying to convince the GNU
people to write portable shell scripts that work with any POSIX or
SUSv3 compatible shell...
In the interim, GNU people gives me the freedom to use bash, bash
or even bash as my /bin/sh if I run GNU libc. That's freedom.
Just my 0.02 EUR
Raúl
^ permalink raw reply [relevance 3%]
* printf and POSIX compliance
@ 2003-02-04 15:44 10% Stephane CHAZELAS
2003-02-04 18:26 10% ` DervishD
2003-02-11 8:29 8% ` Oliver Kiddle
0 siblings, 2 replies; 200+ results
From: Stephane CHAZELAS @ 2003-02-04 15:44 UTC (permalink / raw)
To: zsh-workers
Hello all, and thank you for the very good job
I read at
http://www.opengroup.org/onlinepubs/007904975/utilities/printf.html
that, according to POSIX:
3- In addition to the escape sequences shown in the Base
Definitions volume of IEEE Std 1003.1-2001, Chapter 5, File
Format Notation ( '\\' , '\a' , '\b' , '\f' , '\n' , '\r' ,
'\t' , '\v' ), "\ddd" , where ddd is a one, two, or
three-digit octal number, shall be written as a byte with the
numeric value specified by the octal number.
So
printf '\377\0377' | od -c
should return:
0000000 377 037 7
0000003
zsh printf gives:
0000000 \ 3 7 7 377
0000005
zsh man pages says that sames sequences as for echo are
recognized. That's not what POSIX requires.
Note that neither bash nor GNU printf behave better.
The "printf '%b' '\0ooo'" is OK though.
--
Stéphane
^ permalink raw reply [relevance 10%]
* Re: printf and POSIX compliance
2003-02-04 15:44 10% printf and POSIX compliance Stephane CHAZELAS
@ 2003-02-04 18:26 10% ` DervishD
2003-02-05 13:10 9% ` Stephane CHAZELAS
2003-02-11 8:29 8% ` Oliver Kiddle
1 sibling, 1 reply; 200+ results
From: DervishD @ 2003-02-04 18:26 UTC (permalink / raw)
To: Stephane CHAZELAS; +Cc: zsh-workers
Hi Stephane :)
> http://www.opengroup.org/onlinepubs/007904975/utilities/printf.html
> that, according to POSIX:
That is Single Unix Specification, not POSIX, am I wrong?
> 3- In addition to the escape sequences shown in the Base
Oh, additional sequences, not POSIX ones. Ok, then :)
> Note that neither bash nor GNU printf behave better.
The GNU printf says in its info manual that '\0ooo' is
interpreted as an octal number, but doesn's say anything about \ooo
where the 'o' are octal digits. It barfs in your example saying that
'\3' is not a valid escape sequence :(( I notified and got fixed a
bug about GNU printf argument handling a time ago, for not being SuS
compliant. Don't know the current status of SuS compliance that GNU
shell utilities have :??? Wait for GNU coreutils.
BTW, as far as I know, zsh has not a printf builtin.
Raúl
^ permalink raw reply [relevance 10%]
* Re: printf and POSIX compliance
2003-02-04 18:26 10% ` DervishD
@ 2003-02-05 13:10 9% ` Stephane CHAZELAS
2003-02-05 13:42 5% ` Peter Stephenson
2003-02-05 14:41 10% ` printf and POSIX compliance DervishD
0 siblings, 2 replies; 200+ results
From: Stephane CHAZELAS @ 2003-02-05 13:10 UTC (permalink / raw)
To: zsh-workers
On Tue, Feb 04, 2003 at 07:26:11PM +0100, DervishD wrote:
> > http://www.opengroup.org/onlinepubs/007904975/utilities/printf.html
> > that, according to POSIX:
>
> That is Single Unix Specification, not POSIX, am I wrong?
I must confess I've not understood all of this imbroglio of
obscure specifications, but had the rough idea this SUS was a
step forward after POSIX. Well, it's also an IEEE (or maybe Open
Group registered at IEEE???) document and it's publicly
available.
> > 3- In addition to the escape sequences shown in the Base
>
> Oh, additional sequences, not POSIX ones. Ok, then :)
No, you misunderstood that point. Read at:
http://www.opengroup.org/onlinepubs/007904975/utilities/printf.html
These are additional sequences over those defined at:
http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap05.html
> > Note that neither bash nor GNU printf behave better.
>
[...]
> BTW, as far as I know, zsh has not a printf builtin.
I was actually speaking of printf builtin in zsh developpement
series (4.1.1-dev-x), aka "print -f"
zsh ChangeLog:
2001-10-05 Oliver Kiddle <opk@zsh.org>
* 15851, 15948: Src/builtin.c, Doc/Zsh/builtins.yo: add printf
builtin with basic POSIX functionality
Actually, the only portable (as far as I know) way to display my
first name with any printf (and ascii chars only) is:
printf '%b' 'St\0351phane'
printf 'St\351phane'
will break GNU and zsh ones (not bash)
printf 'St\0351phane'
will break POSIX (or whatever standard is used in recent unices)
ones (such as HPUX's one) (not bash, GNU nor zsh). I don't know
about ksh93's one.
So, that doesn't really matter if zsh printf adopts one syntax
or another, but it may be wise to pick the one that is more
likely to eventually become standard one day. Maybe the bash
behavior (\351 and \0351 both expanding to é) is the least
worst...
--
Stéphane
^ permalink raw reply [relevance 9%]
* Re: printf and POSIX compliance
2003-02-05 13:10 9% ` Stephane CHAZELAS
@ 2003-02-05 13:42 5% ` Peter Stephenson
2003-02-11 12:09 4% ` PATCH: unset -v (was Re: printf and POSIX compliance) Oliver Kiddle
2003-02-05 14:41 10% ` printf and POSIX compliance DervishD
1 sibling, 1 reply; 200+ results
From: Peter Stephenson @ 2003-02-05 13:42 UTC (permalink / raw)
To: zsh-workers
Stephane CHAZELAS wrote:
> On Tue, Feb 04, 2003 at 07:26:11PM +0100, DervishD wrote:
> > > http://www.opengroup.org/onlinepubs/007904975/utilities/printf.html
> > > that, according to POSIX:
> >
> > That is Single Unix Specification, not POSIX, am I wrong?
>
> I must confess I've not understood all of this imbroglio of
> obscure specifications, but had the rough idea this SUS was a
> step forward after POSIX. Well, it's also an IEEE (or maybe Open
> Group registered at IEEE???) document and it's publicly
> available.
The Austin Group which is revising the standard is steering it through
IEEE, SUS and ISO procedures. If I've followed the developments
correctly, the 2002 version available at the Open Group site is now
approved by all relevant bodies, with identical wording.
Unfortunately we're a bit erratic at following it; nobody's really got
the time to keep track of it in detail.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 5%]
* Re: printf and POSIX compliance
2003-02-05 13:10 9% ` Stephane CHAZELAS
2003-02-05 13:42 5% ` Peter Stephenson
@ 2003-02-05 14:41 10% ` DervishD
1 sibling, 0 replies; 200+ results
From: DervishD @ 2003-02-05 14:41 UTC (permalink / raw)
To: zsh-workers
Hi Stephane :)
> > That is Single Unix Specification, not POSIX, am I wrong?
> I must confess I've not understood all of this imbroglio of
> obscure specifications
Neither have I O:)) And the number of specs seems to grow on a
daily basis...
> > > Note that neither bash nor GNU printf behave better.
> [...]
> > BTW, as far as I know, zsh has not a printf builtin.
> I was actually speaking of printf builtin in zsh developpement
> series (4.1.1-dev-x), aka "print -f"
Oh, sorry, didn't know that the development branch of zsh
implements a printf builtin O:)
> So, that doesn't really matter if zsh printf adopts one syntax or
> another, but it may be wise to pick the one that is more likely to
> eventually become standard one day. Maybe the bash behavior (\351
> and \0351 both expanding to é) is the least worst...
I think that is better to stuck to an standard, being that POSIX
or SuS. Since SuS gives its spec freely (I mean, you don't have to
pay for giving free software to the community that is SuS compliant)
I prefer that standard over the rest, but obviously is a personal
choice ;)))
Being bash-compliant is, IMHO, just a way of standardize bad
behaviour. If GNU printf is broken, non POSIX or SuS compliant, then
submit a bug report. The shellutils developers care about standard
compliance, I've submitted such bug reports in the past.
Bye :)
Raúl
^ permalink raw reply [relevance 10%]
* Re: printf and POSIX compliance
2003-02-04 15:44 10% printf and POSIX compliance Stephane CHAZELAS
2003-02-04 18:26 10% ` DervishD
@ 2003-02-11 8:29 8% ` Oliver Kiddle
1 sibling, 0 replies; 200+ results
From: Oliver Kiddle @ 2003-02-11 8:29 UTC (permalink / raw)
To: Stephane CHAZELAS; +Cc: zsh-workers
On 4 Feb, you wrote:
> Hello all, and thank you for the very good job
>
> I read at
> http://www.opengroup.org/onlinepubs/007904975/utilities/printf.html
> that, according to POSIX:
>
> 3- In addition to the escape sequences shown in the Base
> Definitions volume of IEEE Std 1003.1-2001, Chapter 5, File
> Format Notation ( '\\' , '\a' , '\b' , '\f' , '\n' , '\r' ,
> '\t' , '\v' ), "\ddd" , where ddd is a one, two, or
> three-digit octal number, shall be written as a byte with the
> numeric value specified by the octal number.
>
> So
>
> printf '\377\0377' | od -c
>
> should return:
> 0000000 377 037 7
> 0000003
Okay, that's what printf(3) and ksh93's printf do.
> zsh man pages says that sames sequences as for echo are
> recognized. That's not what POSIX requires.
It uses the same code as for echo and $'...' and doing otherwise would
seem a bit unpleasant to me. That said, it seems to be what ksh93 does.
In ksh, $'...' and printf work that way while print does something
different.
Note also that the behaviour of \c should probably be to cancel further
output in printf but it isn't (again because I used the same function
as is used by echo).
It's an easy enough thing to change though. Should I? And what should
it do for print and for posix quotes?
Oliver
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
^ permalink raw reply [relevance 8%]
* PATCH: unset -v (was Re: printf and POSIX compliance)
2003-02-05 13:42 5% ` Peter Stephenson
@ 2003-02-11 12:09 4% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2003-02-11 12:09 UTC (permalink / raw)
To: zsh-workers
On 5 Feb, Peter wrote:
>
> The Austin Group which is revising the standard is steering it through
> IEEE, SUS and ISO procedures. If I've followed the developments
> correctly, the 2002 version available at the Open Group site is now
> approved by all relevant bodies, with identical wording.
>
> Unfortunately we're a bit erratic at following it; nobody's really got
> the time to keep track of it in detail.
It seems from it that one of the things it defines is that unset should
take a -v flag to specify that variables are being unset. If neither -f
nor -v is specified, it unsets variables. bash breaks this last
condition (probably because older versions of the standard didn't define
that) so unset -v is used a bit in bash scripts.
Anyway, all we need to do is ignore any -v option to unset. Unless anyone
says otherwise I'll commit this to 4.0 too because it is sufficiently tiny.
Oliver
diff -ur zsh-4.1-20030211/Doc/Zsh/builtins.yo zsh.new/Doc/Zsh/builtins.yo
--- zsh-4.1-20030211/Doc/Zsh/builtins.yo Fri Feb 7 18:05:39 2003
+++ zsh.new/Doc/Zsh/builtins.yo Tue Feb 11 12:04:41 2003
@@ -1391,7 +1391,7 @@
)
findex(unset)
cindex(parameters, unsetting)
-item(tt(unset) [ tt(-fm) ] var(name) ...)(
+item(tt(unset) [ tt(-fmv) ] var(name) ...)(
Each named parameter is unset.
Local parameters remain local even if unset; they appear unset within scope,
but the previous value will still reappear when the scope ends.
@@ -1404,6 +1404,9 @@
be quoted) and all parameters with matching names are unset. Note that this
cannot be used when unsetting associative array elements, as the subscript
will be treated as part of the pattern.
+
+The tt(-v) flag specifies that var(name) refers to parameters. This is the
+default behaviour.
tt(unset -f) is equivalent to tt(unfunction).
)
diff -ur zsh-4.1-20030211/Src/builtin.c zsh.new/Src/builtin.c
--- zsh-4.1-20030211/Src/builtin.c Fri Feb 7 18:05:41 2003
+++ zsh.new/Src/builtin.c Tue Feb 11 11:53:43 2003
@@ -126,7 +126,7 @@
BUILTIN("unalias", 0, bin_unhash, 1, -1, 0, "m", "a"),
BUILTIN("unfunction", 0, bin_unhash, 1, -1, 0, "m", "f"),
BUILTIN("unhash", 0, bin_unhash, 1, -1, 0, "adfm", NULL),
- BUILTIN("unset", BINF_PSPECIAL, bin_unset, 1, -1, 0, "fm", NULL),
+ BUILTIN("unset", BINF_PSPECIAL, bin_unset, 1, -1, 0, "fmv", NULL),
BUILTIN("unsetopt", 0, bin_setopt, 0, -1, BIN_UNSETOPT, NULL, NULL),
BUILTIN("wait", 0, bin_fg, 0, -1, BIN_WAIT, NULL, NULL),
BUILTIN("whence", 0, bin_whence, 0, -1, 0, "acmpvfsw", NULL),
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
^ permalink raw reply [relevance 4%]
* PATCH: usage of test(1) in zshconfig.ac
@ 2003-02-26 18:09 7% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2003-02-26 18:09 UTC (permalink / raw)
To: zsh-workers
Things like "test $ac_cv_func_tcsetpgrp=yes" will always evaluate to
true, so this patch adds the necessary spaces around the equals sign.
I also went and replaced occurences of -a as a binary operator with the
more portable "&& test".
Index: zshconfig.ac
===================================================================
RCS file: /cvsroot/zsh/zsh/zshconfig.ac,v
retrieving revision 1.31
diff -u -r1.31 zshconfig.ac
--- zshconfig.ac 14 Feb 2003 15:56:35 -0000 1.31
+++ zshconfig.ac 26 Feb 2003 18:06:21 -0000
@@ -235,8 +235,8 @@
AC_ARG_ENABLE(function-subdirs,
[ --enable-function-subdirs install functions in subdirectories])
-if test "x${enable_function_subdirs}" != x -a \
- "x${enable_function_subdirs}" != xno; then
+if test "x${enable_function_subdirs}" != x &&
+ test "x${enable_function_subdirs}" != xno; then
FUNCTIONS_SUBDIRS=yes
else
FUNCTIONS_SUBDIRS=no
@@ -279,7 +279,7 @@
dnl Gross hack for ReliantUNIX - GCC does not understand getconf options
dnl For now just disable LFS in this case
dnl Any takers?
- if test "$host" = mips-sni-sysv4 -a -n "$GCC"; then
+ if test "$host" = mips-sni-sysv4 && test -n "$GCC"; then
:
else
zsh_LARGE_FILE_SUPPORT
@@ -501,7 +501,7 @@
fi
dnl Some SCO systems cannot include both sys/time.h and sys/select.h
-if test $ac_cv_header_sys_time_h = yes -a $ac_cv_header_sys_select_h = yes; then
+if test $ac_cv_header_sys_time_h = yes && test $ac_cv_header_sys_select_h = yes; then
AC_CACHE_CHECK(for conflicts in sys/time.h and sys/select.h,
zsh_cv_header_time_h_select_h_conflicts,
[AC_TRY_COMPILE([#include <sys/time.h>
@@ -753,7 +753,7 @@
if test $lfs != no -o $zsh_cv_off_t_is_64_bit = yes \
-o $zsh_cv_ino_t_is_64_bit = yes; then
AC_CACHE_CHECK(if compiler has a 64 bit type, zsh_cv_64_bit_type,
- [if test $lfs != yes -a $lfs != no; then
+ [if test $lfs != yes && test $lfs != no; then
zsh_64_BIT_TYPE(${lfs}, zsh_cv_64_bit_type, force)
else
zsh_64_BIT_TYPE(long long, zsh_cv_64_bit_type)
@@ -766,8 +766,8 @@
dnl As a last resort, if we know off_t has 64 bits, use that as
dnl the 64-bit integer type. I don't dare try ino_t since there's
dnl probably nothing to stop that being unsigned.
- if test "$zsh_cv_64_bit_type" = no -a \
- "$zsh_cv_off_t_is_64_bit" = yes; then
+ if test "$zsh_cv_64_bit_type" = no &&
+ test "$zsh_cv_off_t_is_64_bit" = yes; then
zsh_64_BIT_TYPE(off_t, zsh_cv_64_bit_type)
fi
fi])
@@ -1051,13 +1051,13 @@
dnl -------------
dnl What style of signal do you have (POSIX, BSD, or SYSV)?
AC_MSG_CHECKING(what style of signals to use)
-if test $ac_cv_func_sigaction = yes -a $ac_cv_func_sigprocmask = yes; then
+if test $ac_cv_func_sigaction = yes && test $ac_cv_func_sigprocmask = yes; then
signals_style=POSIX_SIGNALS
AC_DEFINE(POSIX_SIGNALS)
-elif test $ac_cv_func_sigblock = yes -a $ac_cv_func_sigsetmask = yes; then
+elif test $ac_cv_func_sigblock = yes && test $ac_cv_func_sigsetmask = yes; then
signals_style=BSD_SIGNALS
AC_DEFINE(BSD_SIGNALS)
-elif test $ac_cv_func_sighold = yes -a $ac_cv_func_sigrelse = yes; then
+elif test $ac_cv_func_sighold = yes && test $ac_cv_func_sigrelse = yes; then
signals_style=SYSV_SIGNALS
AC_DEFINE(SYSV_SIGNALS)
else
@@ -1132,7 +1132,7 @@
break
done
zsh_cv_path_rlimit_h=$RESOURCE_H
-if test $RESOURCE_H = "/dev/null" -a $ac_cv_func_getrlimit = yes; then
+if test $RESOURCE_H = "/dev/null" && test $ac_cv_func_getrlimit = yes; then
AC_MSG_WARN(RLIMIT MACROS NOT FOUND: please report to developers)
fi])
RLIMITS_INC_H=$zsh_cv_path_rlimit_h
@@ -1451,7 +1451,7 @@
dnl if POSIX, test for working sigsuspend().
dnl for instance, BeOS R4.51 is broken.
dnl -----------
-if test $signals_style=POSIX_SIGNALS; then
+if test $signals_style = POSIX_SIGNALS; then
AC_CACHE_CHECK(if POSIX sigsuspend() works,
zsh_cv_sys_sigsuspend,
[AC_TRY_RUN([
@@ -1492,7 +1492,7 @@
dnl if found tcsetpgrp, test to see if it actually works
dnl for instance, BeOS R4.51 does not support it yet
dnl -----------
-if test -t 0 -a $ac_cv_func_tcsetpgrp=yes; then
+if test -t 0 && test $ac_cv_func_tcsetpgrp = yes; then
AC_CACHE_CHECK(if tcsetpgrp() actually works,
zsh_cv_sys_tcsetpgrp,
[AC_TRY_RUN([
@@ -1517,7 +1517,7 @@
dnl for instance, BeOS R4.51 is not multiuser yet, and fakes getpwnam()
dnl test by looking up two usernames that shouldn't succeed, and compare entry
dnl -----------
-if test $ac_cv_func_getpwnam=yes; then
+if test $ac_cv_func_getpwnam = yes; then
AC_CACHE_CHECK(if getpwnam() is faked,
zsh_cv_sys_getpwnam_faked,
[AC_TRY_RUN([
@@ -1946,7 +1946,7 @@
load=
functions=
. ${srcdir}/$modfile
- if test x$name != x -a x"$link" != x; then
+ if test x$name != x && test x"$link" != x; then
case "$userlist" in
*" $name "*) # not autogenerated, keep original
grep "^name=$name " ${CONFIG_MODULES}.old
^ permalink raw reply [relevance 7%]
* Re: LC_NUMERIC=fr_FR and floating point arithmetics
@ 2003-03-10 8:58 8% ` Oliver Kiddle
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2003-03-10 8:58 UTC (permalink / raw)
To: Stephane CHAZELAS; +Cc: Zsh hackers list
On 24 Feb, Stephane CHAZELAS wrote:
> $ LC_NUMERIC=fr_FR ksh93 -c 'float a=1; echo $(( a / 3 ))'
> 0,333333333333
> $ LC_NUMERIC=fr_FR zsh -c 'float a=1; echo $(( a / 3 ))'
> 0,33333333333333331.
>
> zsh seems to assume that "." is the decimal separator which is
> not correct in a french locale.
>
> I agree this is confusing. A ksh93 script such as
> echo $(( 1. / 3 ))
>
> won't work under french locale.
> (must be echo $(( 1, / 3 )) )
Which is worse in my opinion. $(( 1.1 )) really ought to be interpreted
as a 1 point 1 regardless of locale - it is otherwise impossible to use
decimals in portable shell scripts.
If we didn't have backward and ksh compatibility to consider, I would
be inclined to say that $a for floats and $(( ... )) should always use
the C locale and anyone wanting locale specific output could use printf
(see below) (implementing this is easy; just save the LC_NUMERIC locale
in convfloat()).
But keeping locale handling in output means that scalar parameters
can't be reused in a calculation. And making math evaluation accept
either `.' or whatever the locale dictates is not easy when you
consider that a comma in math evaluation is used as a separator:
(( a=1, 3.4 ))
Also, because we allow this:
% a='3 + 4'
% echo $(( a ))
7
you can't just interpret the comma in a parameter expansion. So I can't
think of any solution except limiting math evaluation to the C locale.
So what can we do?
I did a grep for mon_decimal_point in /usr/share/i18n/locales to see
if any other characters are used as decimal separators. It indicates
that Portugal use `$' as their decimal separator. Seems weird. Apart
from that it is , or . for the rest of the world except Burkina Faso
who apparently use something outside the normal ASCII range.
Currently, a bug prevents locale handling for printf (on at least some
platforms). The bug causing this is in math.c where it does:
prev_locale = setlocale(LC_NUMERIC, NULL);
setlocale(LC_NUMERIC, "POSIX");
The second setlocale call clobbers prev_locale - we have to use
dupstring(). The patch fixes this.
Oliver
diff -ur zsh-latest/Src/math.c localeprob2/Src/math.c
--- zsh-latest/Src/math.c 2002-12-19 10:58:19.000000000 +0000
+++ localeprob2/Src/math.c 2003-03-09 01:13:18.000000000 +0000
@@ -399,12 +399,12 @@
/* it's a float */
yyval.type = MN_FLOAT;
#ifdef USE_LOCALE
- prev_locale = setlocale(LC_NUMERIC, NULL);
+ prev_locale = dupstring(setlocale(LC_NUMERIC, NULL));
setlocale(LC_NUMERIC, "POSIX");
#endif
yyval.u.d = strtod(ptr, &nptr);
#ifdef USE_LOCALE
- setlocale(LC_NUMERIC, prev_locale);
+ if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
#endif
if (ptr == nptr || *nptr == '.') {
zerr("bad floating point constant", NULL, 0);
^ permalink raw reply [relevance 8%]
* Re: LC_NUMERIC=fr_FR and floating point arithmetics
@ 2003-03-11 10:35 5% ` Oliver Kiddle
2003-03-12 3:32 0% ` Philippe Troin
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2003-03-11 10:35 UTC (permalink / raw)
To: Zsh workers
Zefram wrote:
>
> Numeric output should by default be in the input format (C locale)
> so that it can be reused in the expected manner.
Okay, this patch makes it do that.
> If printf is not
> sufficient for rendering numbers in human format, we could add an
> output-using-locale flag to the output format specification syntax of
> $(()) -- there's already syntax to select the radix to use on output.
It would possibly be more useful for $a than $(()) because that is where
all the typeset -F/-E stuff applies. I'll wait and see if there is
demand and if so, a parameter expansion flag could also be added (L and
l are gone along with most of the rest of the alphabet so we'd need to
think of a suitable free letter). If ksh keeps it's current behaviour, a
KSH_something option could perhaps be used.
I consider this patch a bug fix which would imply that I should apply it
to 4.0 but 4.0 doesn't have printf and hence has no way to output floats
in the current locale. I could backport printf, leave the patch out of
4.0 or do something else. Any thoughts?
Note also, that there is no way to input numbers with locale
conventions. If there is demand for a way to do this, we could perhaps
add an option to read so that typeset -F num; read num would do this but
lose math evaluation. Or perhaps add the facility somewhere else.
Oliver
Index: Src/params.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/params.c,v
retrieving revision 1.69
diff -u -r1.69 params.c
--- Src/params.c 31 Oct 2002 18:32:40 -0000 1.69
+++ Src/params.c 11 Mar 2003 10:00:10 -0000
@@ -3417,6 +3417,7 @@
convfloat(double dval, int digits, int flags, FILE *fout)
{
char fmt[] = "%.*e";
+ char *prev_locale, *ret;
/*
* The difficulty with the buffer size is that a %f conversion
@@ -3451,16 +3452,24 @@
digits--;
}
}
+#ifdef USE_LOCALE
+ prev_locale = dupstring(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "POSIX");
+#endif
if (fout) {
fprintf(fout, fmt, digits, dval);
- return NULL;
+ ret = NULL;
} else {
VARARR(char, buf, 512 + digits);
sprintf(buf, fmt, digits, dval);
if (!strchr(buf, 'e') && !strchr(buf, '.'))
strcat(buf, ".");
- return dupstring(buf);
+ ret = dupstring(buf);
}
+#ifdef USE_LOCALE
+ if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
+#endif
+ return ret;
}
/* Start a parameter scope */
^ permalink raw reply [relevance 5%]
* Re: LC_NUMERIC=fr_FR and floating point arithmetics
2003-03-11 10:35 5% ` Oliver Kiddle
@ 2003-03-12 3:32 0% ` Philippe Troin
0 siblings, 0 replies; 200+ results
From: Philippe Troin @ 2003-03-12 3:32 UTC (permalink / raw)
To: Oliver Kiddle; +Cc: Zsh workers
Oliver Kiddle <okiddle@yahoo.co.uk> writes:
> Index: Src/params.c
> ===================================================================
> RCS file: /cvsroot/zsh/zsh/Src/params.c,v
> retrieving revision 1.69
> diff -u -r1.69 params.c
> --- Src/params.c 31 Oct 2002 18:32:40 -0000 1.69
> +++ Src/params.c 11 Mar 2003 10:00:10 -0000
> @@ -3417,6 +3417,7 @@
> convfloat(double dval, int digits, int flags, FILE *fout)
> {
> char fmt[] = "%.*e";
> + char *prev_locale, *ret;
>
> /*
> * The difficulty with the buffer size is that a %f conversion
> @@ -3451,16 +3452,24 @@
> digits--;
> }
> }
> +#ifdef USE_LOCALE
> + prev_locale = dupstring(setlocale(LC_NUMERIC, NULL));
> + setlocale(LC_NUMERIC, "POSIX");
> +#endif
> if (fout) {
> fprintf(fout, fmt, digits, dval);
> - return NULL;
> + ret = NULL;
> } else {
> VARARR(char, buf, 512 + digits);
> sprintf(buf, fmt, digits, dval);
> if (!strchr(buf, 'e') && !strchr(buf, '.'))
> strcat(buf, ".");
> - return dupstring(buf);
> + ret = dupstring(buf);
> }
> +#ifdef USE_LOCALE
> + if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
> +#endif
> + return ret;
> }
>
> /* Start a parameter scope */
Aren't you leaking a copy of the current locale (via dupstring())
every time?
Phil.
^ permalink raw reply [relevance 0%]
* bug in read builtin and Re: PATCH: extra loop tests
@ 2003-03-26 17:24 3% ` Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2003-03-26 17:24 UTC (permalink / raw)
To: Zsh hackers list
Peter wrote:
> Tests for the enhanced `for' syntax as well as `select' which is now
I've just added a few tests too. In adding tests for read (to cover the
new read -d), I found that read -t 1 -p causes a seg fault:
#0 0x080bb323 in read_poll (fd=-1, readchar=0xbffff0fc, polltty=0,
microseconds=1000000) at utils.c:1398
#1 0x0805eec7 in bin_read (name=0x40020248 "read", args=0xbffff170,
ops=0xbffff1b0, func=0) at builtin.c:4215
#2 0x08052545 in execbuiltin (args=0x40020210, bn=0x80cbab4) at builtin.c:440
> Extra tests gratefully received, as Felix reminded us, particularly for
> interactive stuff (zle, completion) which I will not be attempting
> myself.
I've not attempted anything for interactive stuff either I'm afraid.
I've also not done anything for \u or the math locale problem because it
would be dependant on the local environment and the test system sets
LANG=C anyway.
> When we finally get the multiple defined limits problem fixed, I will
> produce a test version of 4.1.1. If tests continue to trickle in, so
> much the better.
Also one of 17797 or 17820 should be committed before a release. I don't
have access to cygwin so can't test 17820.
There have been enough changes to warrant a 4.0.7 before too long.
Any suggestions on stuff which can be merged back from 4.1?
Oliver
Index: Test/.distfiles
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/.distfiles,v
retrieving revision 1.14
diff -u -r1.14 .distfiles
--- Test/.distfiles 17 Dec 2001 17:17:38 -0000 1.14
+++ Test/.distfiles 26 Mar 2003 17:05:03 -0000
@@ -8,6 +8,6 @@
A04redirect.ztst D01prompt.ztst V02zregexparse.ztst
A05execution.ztst D02glob.ztst Y01completion.ztst
D06subscript.ztst V01zmodload.ztst E01options.ztst
-B02typeset.ztst B03print.ztst A06assign.ztst
+B02typeset.ztst B03print.ztst A06assign.ztst B04read.ztst
README
'
Index: Test/B03print.ztst
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/B03print.ztst,v
retrieving revision 1.5
diff -u -r1.5 B03print.ztst
--- Test/B03print.ztst 27 Aug 2002 21:11:44 -0000 1.5
+++ Test/B03print.ztst 26 Mar 2003 17:05:03 -0000
@@ -199,3 +199,7 @@
0:argument specified for precision only
>2
>000
+
+ printf -- '%s\n' str
+0:initial `--' ignored to satisfy POSIX
+>str
Index: Test/B04read.ztst
===================================================================
RCS file: Test/B04read.ztst
diff -N Test/B04read.ztst
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ Test/B04read.ztst 26 Mar 2003 17:05:03 -0000
@@ -0,0 +1,65 @@
+# Tests for the read builtin
+
+# Tested elsewhere:
+# reading from a coprocess A01grammar, A04redirect
+
+# Not tested:
+# -c/-l/-n (options for compctl functions)
+# -q/-s (needs a tty)
+
+%test
+
+ read <<<'hello world'
+ print $REPLY
+0:basic read command
+>hello world
+
+ read -A <<<'hello world'
+ print $reply[2]
+0:array read
+>world
+
+ read -k3 -u0 <<<foo:bar
+ print $REPLY
+0:read specified number of chars
+>foo
+
+ read -d: <<<foo:bar
+ print $REPLY
+0:read up to delimiter
+>foo
+
+ print foo:bar|IFS=: read -A
+ print $reply
+0:use different, IFS separator to array
+>foo bar
+
+ print -z hello world; read -z
+ print $REPLY
+0:read from editor buffer stack
+>hello world
+
+ unset REPLY
+ read -E <<<hello
+ print $REPLY
+0:read with echoing and assigning
+>hello
+>hello
+
+ unset REPLY
+ read -e <<<hello
+ print $REPLY
+0:read with echoing but assigning disabled
+>hello
+>
+
+ read -e -t <<<hello
+0:read with test first
+>hello
+
+ SECONDS=0
+ read -e -t 5 <<<hello
+ print $SECONDS
+0:read with timeout (no waiting should occur)
+>hello
+>0
Index: Test/C01arith.ztst
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/C01arith.ztst,v
retrieving revision 1.5
diff -u -r1.5 C01arith.ztst
--- Test/C01arith.ztst 23 Jan 2002 16:28:17 -0000 1.5
+++ Test/C01arith.ztst 26 Mar 2003 17:05:03 -0000
@@ -98,3 +98,7 @@
print $x
0:assigning to scalar which contains non-math string
>32
+
+ print $(( ))
+0:empty math parse e.g. $(( )) acts like a zero
+>0
Index: Test/D02glob.ztst
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/D02glob.ztst,v
retrieving revision 1.1
diff -u -r1.1 D02glob.ztst
--- Test/D02glob.ztst 2 Apr 2001 12:33:33 -0000 1.1
+++ Test/D02glob.ztst 26 Mar 2003 17:05:03 -0000
@@ -16,7 +16,7 @@
setopt nonullglob nomatch
print glob.tmp/**/*~(.)#
}
-
+
%test
globtest globtests
@@ -265,3 +265,28 @@
0:exclusions regression test
>
>glob.tmp/a glob.tmp/b glob.tmp/c glob.tmp/dir1 glob.tmp/dir1/a glob.tmp/dir1/b glob.tmp/dir1/c glob.tmp/dir2 glob.tmp/dir2/a glob.tmp/dir2/b glob.tmp/dir2/c
+
+ print glob.tmp/*(/)
+0:Just directories
+>glob.tmp/dir1 glob.tmp/dir2
+
+ print glob.tmp/*(.)
+0:Just files
+>glob.tmp/a glob.tmp/b glob.tmp/c
+
+ print glob.tmp/*(.e^'reply=( glob.tmp/*/${REPLY:t} )'^:t)
+0:Globbing used recursively (inside e glob qualifier)
+>a a b b c c
+
+ print glob.tmp/**/(:h)
+0:Head modifier
+>. glob.tmp glob.tmp
+
+ print glob.tmp(:r)
+0:Remove extension modifier
+>glob
+
+ print glob.tmp/*(:s/./_/)
+0:Substitute modifier
+>glob_tmp/a glob_tmp/b glob_tmp/c glob_tmp/dir1 glob_tmp/dir2
+
^ permalink raw reply [relevance 3%]
* PATCH: distribution documentation files
@ 2003-04-04 13:06 2% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2003-04-04 13:06 UTC (permalink / raw)
To: Zsh hackers list
Patches for information files in the distribution for 4.1. I couldn't
think of any obvious incompatibilities with 4.0, can anyone?
The main documentation probably needs a read through again. In fact, I
suspect the completion documentation still needs a write through.
Index: INSTALL
===================================================================
RCS file: /cvsroot/zsh/zsh/INSTALL,v
retrieving revision 1.11
diff -u -r1.11 INSTALL
--- INSTALL 31 May 2001 11:12:59 -0000 1.11
+++ INSTALL 4 Apr 2003 13:02:39 -0000
@@ -181,7 +181,7 @@
install the zsh binary, execute the command:
make install.bin
Any previous copy of zsh will be renamed "zsh.old"
-
+
To install the dynamically-loadable modules, execute the command:
make install.modules
Note that this is required for the shell to operate properly if dynamic
Index: README
===================================================================
RCS file: /cvsroot/zsh/zsh/README,v
retrieving revision 1.9
diff -u -r1.9 README
--- README 28 Jun 2001 17:02:57 -0000 1.9
+++ README 4 Apr 2003 13:02:39 -0000
@@ -5,7 +5,9 @@
Version
-------
-This is zsh version 4.0. This is a stable release.
+This is zsh version 4.1. This is a development release. However, it has
+been in use over a long period by many people and it is believed to be
+fairly stable.
Installing Zsh
--------------
@@ -24,38 +26,14 @@
Possible incompatibilities
---------------------------
-Some particular differences you may notice between version 3.0 and 4.0
-(mostly based on 3.0.8; there are other differences from earlier versions):
+Some particular differences you may notice since version 4.0:
- o The options ALWAYS_LAST_PROMPT (return to the line you were
- editing after displaying completion lists) and LIST_AMBIGUOUS
- (don't do AUTO_LIST if there was an unambiguous prefix that could be
- inserted, i.e. only list if it is ambiguous what to insert next) are
- now set by default. This is in response to complaints that too many
- zsh features are never noticed by many users. To turn them off,
- just put `unsetopt alwayslastprompt listambiguous' in your
- .zshrc file.
- o The editor commands history-search-{forward,backward} are implemented
- slightly differently, as are {up,down}-line-or-search. You may
- well not notice this, however.
- o Cursor keys are now usually bound in both vi command and insert
- mode. In the latter case, this may result in a slight delay after
- hitting ESCAPE to exit insert mode. Purists who object to this can
- unbind the appropriate key sequences (see zshzle(1)). Most beginning
- users of zsh apparently find the current behaviour preferable.
- o History file format is incompatible with versions older than 3.0.6,
- but this should only affect people who try to share history files
- between the two versions -- 4.0 can read the old format, 3.0.6 and
- later can read the new format. Just beware of INC_APPEND_HISTORY,
- which could conceivably mix the two.
- o Default compctl completions have been removed for some builtin
- commands. Either use the new compinit-derived system, use the
- improved compctls from Misc/compctl-examples, or restore these
- equivalents yourself:
- compctl -b bindkey
- compctl -v export typeset vared
- compctl -o setopt unsetopt
- compctl -c which
+The bash-compatibility zle functions described in the zshcontrib manual
+page have been removed as a more configurable set of editing widgets for
+dealing with words have been added. The following code in .zshrc will set
+up for bash-style word handling:
+ autoload -U select-word-style
+ select-word-style bash
Documentation
-------------
Index: Etc/CONTRIBUTORS
===================================================================
RCS file: /cvsroot/zsh/zsh/Etc/CONTRIBUTORS,v
retrieving revision 1.9
diff -u -r1.9 CONTRIBUTORS
--- Etc/CONTRIBUTORS 12 Mar 2001 17:39:24 -0000 1.9
+++ Etc/CONTRIBUTORS 4 Apr 2003 13:02:39 -0000
@@ -15,6 +15,52 @@
been unfairly omitted from this list please mail the current maintainer
at <coordinator@zsh.org>.
+Version 4.1.1
+-------------
+
+Clint Adams <clint@zsh.org>: termcap/terminfo, completion, configuration,
+various modules, networking, prompts
+
+Andrej Borsenkow <bor@zsh.org>: configuration, completion functions, cygwin
+support
+
+Chmouel Bodjnah <chmouel@mandrakesoft.com>: Linux completion support
+
+Wayne Davison <wayned@users.sourceforge.net>: shell history mechanism,
+arithmetic
+
+Zvi Har'El <rl@math.technion.ac.il>: completion functions
+
+Doug Kearns <djkea2@mugca.its.monash.edu.au>: completion functions
+
+Oliver Kiddle <opk@zsh.org>: builtins, completion, parameters, prompts,
+standards support, tests
+
+Andrew Main <zefram@zsh.org>: zle keymaps, games
+
+Akinori Musha: BSD completion support
+
+Felix Rosencrantz <f_rosenkrantz@yahoo.com>: completion, zle
+
+Bart Schaefer <schaefer@zsh.org>: configuration, parameters, prompts,
+signals, syntax, tests, functions, sanity checking
+
+Adam Spiers <adam@spiers.net>: completion and other functions
+
+Peter Stephenson <pws@zsh.org>: configuration, zle, networking, syntax,
+completion
+
+Tanaka Akira <akr@zsh.org>: completion functions
+
+Philippe Troin <phil@fifi.org>: signals, process groups.
+
+Geoff Wing <gcw@zsh.org>: archiving and distribution network, line editor
+display, configuration
+
+Sven Wischnowsky <wischnow@zsh.org>: internal completion mechanism and
+low-level functions, line editor internals, syntax, wordcode mechanism,
+
+
Version 4.0.1
-------------
Index: Etc/NEWS
===================================================================
RCS file: /cvsroot/zsh/zsh/Etc/NEWS,v
retrieving revision 1.7
diff -u -r1.7 NEWS
--- Etc/NEWS 4 Mar 2001 18:37:03 -0000 1.7
+++ Etc/NEWS 4 Apr 2003 13:02:39 -0000
@@ -1,7 +1,75 @@
-------------------------------------
CHANGES FROM PREVIOUS VERSIONS OF ZSH
-------------------------------------
-
+
+New features between zsh versions 4.0 and 4.1
+---------------------------------------------
+
+Configuration:
+- upgraded to use autoconf post-2.50
+- improved compatibility with other shells through shell options,
+ builtin arguments and improved builtin option parsing
+
+Syntax and builtins:
+- new printf builtin
+- `+=' to append to parameters which works for scalars, arrays and (with
+ pairs) associative arrays.
+- enhanced multiple parameter `for' loops:
+ for key value in key1 value1 key2 value2 ...
+ maintaining full compatibility with POSIX syntax
+
+Add-on modules and functions:
+- zsh/net/tcp module provides builtin interface to TCP through ztcp
+ builtin. Function suite for interactive and script use with expect-style
+ pattern matching.
+- zsh/net/socket module provides zsocket builtin.
+- zcalc calculator function with full line editing.
+- builtin interface to pcre library
+- zsh/zselect module provides zselect builtin as interface to select
+ system call
+
+Completion system:
+- general improvements to command and context support, low-level functions,
+ display code.
+- in verbose mode, matches with the same description are grouped
+- highly configurable completions for values of specific parameters,
+ specific redirections for specific commands
+- support for bash completion functions (typically zsh native functions are
+ more powerful where available)
+- New completions provided for (some of these may be in later 4.0
+ releases): valgrind, tidy, texinfo, infocmp, Java classes, larch, limit,
+ locale parameters, netcat, mysqldiff, mt, lsof, elinks, ant, debchange
+ (dch), email addresses, file system types, Perforce, xsltproc.
+
+Line editor:
+- special parameters $PREDISPLAY, $POSTDISPLAY available in function
+ widgets to configure uneditable text (for narrowing)
+- recursive editing
+- supplied widgets read-from-minibuffer, replace-string use these features
+ (more intuitive prompting and argument reading than 4.0)
+- access to killed text vai $CUTBUFFER and $killring
+- supplied highly configurable word widgets forward-word-match etc., can
+ set what constitutes a word interactively or in startup script
+ (implement bash-style behaviour, replacing previous bash-* word widgets)
+- interface to increment search via $LASTSEARCH
+- better handling of keymaps in zle and widgets
+- better support for output from user-defined widgets while zle is active
+- tetris game which runs entirely in zle
+
+Local internal improvements:
+- disowned jobs are automatically restarted
+- line numbers in error messages and $PS4 output are more consistent
+- `=prog' expands only paths, no longer aliases for consistency
+- job display in prompts; `jobs' command output can be piped
+- prompts: new $RPROMPT2, %^, %y, enhanced %{, %}, %_.
+- rand48() function for better randomness in arithmetic
+ (if the corresponding math library function is present)
+- $SECONDS parameter can be made floating point via `typeset -F SECONDS'
+ for better accuracy
+- improvements to command line history mechanism
+- many bugfixes
+
+
New features in zsh version 4.0.1
---------------------------------
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 2%]
* (Fwd) Re: getopts question
@ 2003-04-15 22:01 0% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2003-04-15 22:01 UTC (permalink / raw)
To: zsh-workers
The latest zsh 4.1.x from CVS, and 4.0.x, both print "1" for the test script
quoted below. Apparently they should print "2". Commentary?
--- Forwarded mail from David Korn <dgk@research.att.com>
Date: Tue, 15 Apr 2003 16:03:11 -0400 (EDT)
From: David Korn <dgk@research.att.com>
To: shell@research.att.com
Subject: Re: getopts question
Subject: Re: getopts question
--------
> What is the following script supposed to print if invoked as `foo -a'?
>
> --- snip ---
> #!/bin/sh
>
> while getopts : f
> do
> case "$f" in
> \?) break;;
> esac
> done
>
> echo $OPTIND
> --- snip ---
>
> On every version of bash but the most recent it printed 1.
>
> On ash and pdksh it prints 1.
>
> Chet tells me that 2 is the right thing to print, since recent
> versions of att-ksh print 2 and the posix manual says so.
>
> This breaks historical practice and is a pain to detect. What's
> the rationale behind the change? I would assume since getopts
> actually did not parse something successfully, it should not
> increment $OPTIND?
>
> christos
>
This came up in 1995 when shell conformance tests were being
run on ksh, and I was forced to change the behavior then.
I tried to argue that the behavior was not specified, but they
disputed my claim. I have included some e-mail below.
It looks like we are stuck with 2 being the correct behavior.
>> getopts:
>>
>> A while back I had mentioned that some VSC getopts tests failed because
>> OPTIND wasn't incremented after reading a non-option. The test writers
>> disputed my argument (based on your mail) that the behavior wasn't well
>> specified for error conditions. They cited POSIX 4.27.2, lines 4631-4633
>> among the evidence that the behavior is specified. After several exchanges
>> I was convinced by their arguments and made the following change to
>> optget() in libast/misc/optget.c:
Lines 4631-4633 state.
"Each time it is invoked, the getopts utility shall place the value of
the next option in the shell variable specified by the name operand and
the index of the next argument to be processed in the shell variable
OPTIND."
David Korn
research!dgk
dgk@research.att.com
____________________________________________________________
To unsubscribe from this list, please send the following
two-line message to majordomo@research.att.com, in which
your_email_address should be replaced by the address you
used when you subscribed to the list:
unsubscribe shell your_email_address
end
---End of forwarded mail from David Korn <dgk@research.att.com>
^ permalink raw reply [relevance 0%]
* PATCH: listing options with set -o/+o
@ 2003-05-14 10:14 2% Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2003-05-14 10:14 UTC (permalink / raw)
To: Zsh workers
The most recent POSIX shell definition, states that `set -o' should
"write the current settings of the options to standard output in an
unspecified format" and `set +o' should "write the current option
settings to standard output in a format that is suitable for reinput to
the shell as commands that achieve the same options settings"
There are a few possibilities with respect to the exact format the
output should take. I've done what I think is best but it is very easy
to change so feel free to make other suggestions.
For set -o, I've duplicated what you get from setopt with the
kshoptionprint option.
For set +o, it only prints those options that are in their non-default
state (which is what ksh93 and pdksh do but not bash).
Oliver
Index: Doc/Zsh/builtins.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/builtins.yo,v
retrieving revision 1.60
diff -u -r1.60 builtins.yo
--- Doc/Zsh/builtins.yo 3 Apr 2003 09:55:48 -0000 1.60
+++ Doc/Zsh/builtins.yo 14 May 2003 10:11:09 -0000
@@ -973,7 +973,7 @@
cindex(parameters, setting array)
cindex(array parameters, setting)
pindex(KSH_ARRAYS, use of)
-item(tt(set) [ {tt(PLUS())|tt(-)}var(options) | {tt(PLUS())|tt(-)}tt(o) var(option_name) ] ... [ {tt(PLUS())|tt(-)}tt(A) [ var(name) ] ] [ var(arg) ... ])(
+item(tt(set) [ {tt(PLUS())|tt(-)}var(options) | {tt(PLUS())|tt(-)}tt(o) [ var(option_name) ] ] ... [ {tt(PLUS())|tt(-)}tt(A) [ var(name) ] ] [ var(arg) ... ])(
Set the options for the shell and/or set the positional parameters, or
declare and set an array. If the tt(-s) option is given, it causes the
specified arguments to be sorted before assigning them to the positional
@@ -981,7 +981,10 @@
sort arguments in descending order. For the meaning of the other flags, see
ifzman(zmanref(zshoptions))\
ifnzman(noderef(Options))\
-. Flags may be specified by name using the tt(-o) option.
+. Flags may be specified by name using the tt(-o) option. If no option
+name is supplied with tt(-o), the current option states are printed.
+With tt(PLUS()o) they are printed in a form that can be used as input
+to the shell.
If the tt(-A) flag is specified, var(name) is set to an array containing
the given var(arg)s; if no var(name) is specified, all arrays are printed
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.100
diff -u -r1.100 builtin.c
--- Src/builtin.c 4 Apr 2003 16:47:02 -0000 1.100
+++ Src/builtin.c 14 May 2003 10:11:10 -0000
@@ -562,9 +562,9 @@
if (!*++*args)
args++;
if (!*args) {
- zwarnnam(nam, "string expected after -o", NULL, 0);
+ printoptionstates(hadplus);
inittyptab();
- return 1;
+ return 0;
}
if(!(optno = optlookup(*args)))
zwarnnam(nam, "no such option: %s", *args, 0);
Index: Src/options.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/options.c,v
retrieving revision 1.14
diff -u -r1.14 options.c
--- Src/options.c 4 Dec 2002 13:57:51 -0000 1.14
+++ Src/options.c 14 May 2003 10:11:10 -0000
@@ -705,6 +705,33 @@
return buf;
}
+/* print options for set -o/+o */
+
+/**/
+void
+printoptionstates(int hadplus)
+{
+ scanhashtable(optiontab, 1, 0, OPT_ALIAS, printoptionnodestate, hadplus);
+}
+
+/**/
+static void
+printoptionnodestate(HashNode hn, int hadplus)
+{
+ Optname on = (Optname) hn;
+ int optno = on->optno;
+
+ if (hadplus) {
+ if (defset(on) != isset(optno))
+ printf("set -o %s%s\n", defset(on) ? "no" : "", on->nam);
+ } else {
+ if (defset(on))
+ printf("no%-19s %s\n", on->nam, isset(optno) ? "off" : "on");
+ else
+ printf("%-21s %s\n", on->nam, isset(optno) ? "on" : "off");
+ }
+}
+
/* Print option list for --help */
/**/
^ permalink raw reply [relevance 2%]
* Re: Bug#190948: Violation against The Single UNIX ? Specification, Version 2
@ 2003-05-14 12:57 5% ` Zefram
2003-05-14 14:14 0% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Zefram @ 2003-05-14 12:57 UTC (permalink / raw)
To: Peter Stephenson; +Cc: zsh-workers
Peter Stephenson wrote:
>Exactly, it's completely meaningless in zsh. It is ridiculous for the
>standard to specify how the shell handles line editing,
Yet the standard does. A vi command line editing mode is defined
by POSIX. An Emacs mode would also have been in the standard, but the
committee couldn't reach agreement on the details. (ISTR seeing RMS
named in the credits, I wonder what really went on.) I think Zle's vi
mode behaviour is incompatible with POSIX on some points, but I really
don't care, because we did better there.
I think we should, at least, arrange that "set -o vi" in an interactive
zsh with zle loaded has the effect of "bindkey -v". That perserves
the intent of the standard -- that "set -o vi" is the portable way for
a user to select vi-style command line editing -- and we don't have to
go ridiculously out of our way to achieve it.
I suggest having a hook to execute on "set -o vi"; Zle would hook this
when it is loaded, just like the other things it already hooks. To be
nice to everyone that knows that, despite POSIX, interactive shells do
actually have an Emacs mode too, it would be good to hook "set -o emacs"
as well. Only these two are required.
-zefram
^ permalink raw reply [relevance 5%]
* Re: Bug#190948: Violation against The Single UNIX ? Specification, Version 2
2003-05-14 12:57 5% ` Bug#190948: Violation against The Single UNIX ? " Zefram
@ 2003-05-14 14:14 0% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2003-05-14 14:14 UTC (permalink / raw)
To: zsh-workers
Zefram wrote:
> I suggest having a hook to execute on "set -o vi"; Zle would hook this
> when it is loaded, just like the other things it already hooks. To be
> nice to everyone that knows that, despite POSIX, interactive shells do
> actually have an Emacs mode too, it would be good to hook "set -o emacs"
> as well. Only these two are required.
>
> -zefram
Gives us something to spit at.
Index: Doc/Zsh/options.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/options.yo,v
retrieving revision 1.27
diff -u -r1.27 options.yo
--- Doc/Zsh/options.yo 4 Dec 2002 13:57:52 -0000 1.27
+++ Doc/Zsh/options.yo 14 May 2003 14:10:42 -0000
@@ -367,6 +367,14 @@
for examining spelling mistakes for the tt(CORRECT) and tt(CORRECT_ALL)
options and the tt(spell-word) editor command.
)
+pindex(EMACS)
+item(tt(EMACS))(
+If ZLE is loaded, turning on this option has the equivalent effect
+of `tt(bindkey -e)'. In addition, the VI option is unset.
+Turning it off has no effect. The option setting is
+not guaranteed to reflect the current keymap. This option is
+provided for compatibility; tt(bindkey) is the recommended interface.
+)
pindex(EQUALS)
cindex(filename expansion, =)
item(tt(EQUALS) <Z>)(
@@ -1192,6 +1200,14 @@
cindex(input, tracing)
item(tt(VERBOSE) (tt(-v), ksh: tt(-v)))(
Print shell input lines as they are read.
+)
+pindex(VI)
+item(tt(VI))(
+If ZLE is loaded, turning on this option has the equivalent effect
+of `tt(bindkey -v)'. In addition, the EMACS option is unset.
+Turning it off has no effect. The option setting is
+not guaranteed to reflect the current keymap. This option is
+provided for compatibility; tt(bindkey) is the recommended interface.
)
pindex(XTRACE)
cindex(tracing, of commands)
Index: Src/init.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/init.c,v
retrieving revision 1.32
diff -u -r1.32 init.c
--- Src/init.c 23 Apr 2003 18:04:48 -0000 1.32
+++ Src/init.c 14 May 2003 14:10:42 -0000
@@ -1112,6 +1112,8 @@
mod_export ZleVoidIntFn spaceinlineptr = noop_function_int;
/**/
mod_export ZleReadFn zlereadptr = autoload_zleread;
+/**/
+mod_export ZleVoidIntFn zlesetkeymapptr = noop_function_int;
#else /* !LINKED_XMOD_zshQszle */
@@ -1124,6 +1126,7 @@
mod_export ZleReadFn zlereadptr = fallback_zleread;
# endif /* !UNLINKED_XMOD_zshQszle */
+mod_export ZleVoidIntFn zlesetkeymapptr = noop_function_int;
#endif /* !LINKED_XMOD_zshQszle */
/**/
Index: Src/options.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/options.c,v
retrieving revision 1.14
diff -u -r1.14 options.c
--- Src/options.c 4 Dec 2002 13:57:51 -0000 1.14
+++ Src/options.c 14 May 2003 14:10:42 -0000
@@ -107,6 +107,7 @@
{NULL, "cshjunkiequotes", OPT_EMULATE|OPT_CSH, CSHJUNKIEQUOTES},
{NULL, "cshnullcmd", OPT_EMULATE|OPT_CSH, CSHNULLCMD},
{NULL, "cshnullglob", OPT_EMULATE|OPT_CSH, CSHNULLGLOB},
+{NULL, "emacs", 0, EMACSMODE},
{NULL, "equals", OPT_EMULATE|OPT_ZSH, EQUALS},
{NULL, "errexit", OPT_EMULATE, ERREXIT},
{NULL, "errreturn", OPT_EMULATE, ERRRETURN},
@@ -204,6 +205,7 @@
{NULL, "typesetsilent", OPT_EMULATE|OPT_BOURNE, TYPESETSILENT},
{NULL, "unset", OPT_EMULATE|OPT_BSHELL, UNSET},
{NULL, "verbose", 0, VERBOSE},
+{NULL, "vi", 0, VIMODE},
{NULL, "xtrace", 0, XTRACE},
{NULL, "zle", OPT_SPECIAL, USEZLE},
{NULL, "braceexpand", OPT_ALIAS, /* ksh/bash */ -IGNOREBRACES},
@@ -679,6 +681,9 @@
} else if(optno == CDABLEVARS && value) {
return -1;
#endif /* GETPWNAM_FAKED */
+ } else if ((optno == EMACSMODE || optno == VIMODE) && value) {
+ (*zlesetkeymapptr)(optno);
+ opts[(optno == EMACSMODE) ? VIMODE : EMACSMODE] = 0;
}
opts[optno] = value;
if (optno == BANGHIST || optno == SHINSTDIN)
Index: Src/zsh.h
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/zsh.h,v
retrieving revision 1.46
diff -u -r1.46 zsh.h
--- Src/zsh.h 2 May 2003 10:25:33 -0000 1.46
+++ Src/zsh.h 14 May 2003 14:10:42 -0000
@@ -1418,6 +1418,7 @@
CSHJUNKIEQUOTES,
CSHNULLCMD,
CSHNULLGLOB,
+ EMACSMODE,
EQUALS,
ERREXIT,
ERRRETURN,
@@ -1515,6 +1516,7 @@
TYPESETSILENT,
UNSET,
VERBOSE,
+ VIMODE,
XTRACE,
USEZLE,
DVORAK,
Index: Src/Zle/zle_keymap.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/zle_keymap.c,v
retrieving revision 1.9
diff -u -r1.9 zle_keymap.c
--- Src/Zle/zle_keymap.c 27 Aug 2002 21:10:34 -0000 1.9
+++ Src/Zle/zle_keymap.c 14 May 2003 14:10:43 -0000
@@ -1370,3 +1370,13 @@
func = lastnamed;
return func;
}
+
+/**/
+mod_export void
+zlesetkeymap(int mode)
+{
+ Keymap km = openkeymap((mode == VIMODE) ? "viins" : "emacs");
+ if (!km)
+ return;
+ linkkeymap(km, "main", 0);
+}
Index: Src/Zle/zle_main.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/zle_main.c,v
retrieving revision 1.31
diff -u -r1.31 zle_main.c
--- Src/Zle/zle_main.c 17 Feb 2003 14:07:12 -0000 1.31
+++ Src/Zle/zle_main.c 14 May 2003 14:10:43 -0000
@@ -1363,6 +1363,7 @@
refreshptr = zrefresh;
spaceinlineptr = spaceinline;
zlereadptr = zleread;
+ zlesetkeymapptr = zlesetkeymap;
getkeyptr = getkey;
@@ -1446,6 +1447,7 @@
refreshptr = noop_function;
spaceinlineptr = noop_function_int;
zlereadptr = fallback_zleread;
+ zlesetkeymapptr= noop_function_int;
getkeyptr = NULL;
Index: Src/Zle/zle_vi.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/zle_vi.c,v
retrieving revision 1.1.1.9
diff -u -r1.1.1.9 zle_vi.c
--- Src/Zle/zle_vi.c 3 Jul 1999 13:18:04 -0000 1.1.1.9
+++ Src/Zle/zle_vi.c 14 May 2003 14:10:43 -0000
@@ -89,7 +89,7 @@
startvitext(int im)
{
startvichange(im);
- selectkeymap("main", 1);
+ selectkeymap("viins", 1);
undoing = 0;
viinsbegin = cs;
}
@@ -98,7 +98,7 @@
int
vigetkey(void)
{
- Keymap mn = openkeymap("main");
+ Keymap mn = openkeymap("viins");
char m[3], *str;
Thingy cmd;
@@ -351,7 +351,7 @@
if ((c2 = getvirange(1)) != -1) {
ret = 0;
forekill(c2 - cs, 0);
- selectkeymap("main", 1);
+ selectkeymap("viins", 1);
viinsbegin = cs;
undoing = 0;
}
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 0%]
* Re: local variable assignment and pipelines?
@ 2003-07-21 9:59 3% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2003-07-21 9:59 UTC (permalink / raw)
To: zsh-workers
Dan Nelson wrote:
> a=1 | echo $a -> prints "1" on zsh, prints nothing on ash,pdksh,bash
It's an inevitable but unintended side effect of the way some
substitutions are done by the shell before it forks. The list given in
subst.c is this one.
/* Do substitutions before fork. These are:
* - Process substitution: <(...), >(...), =(...)
* - Parameter substitution
* - Command substitution
* Followed by
* - Quote removal
* - Brace expansion
* - Tilde and equals substitution
*/
My guess is this is left undefined by POSIX etc. The stuff on pipelines
is fairly terse, but there might be something elsewhere since I didn't
look all that closely.
Where you would not want this to happen, and it doesn't, is if the
assignment immediately precedes a command.
pws
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 3%]
* [PATCH] make clone try to acquire a controlling tty
@ 2003-07-23 1:12 2% Philippe Troin
0 siblings, 0 replies; 200+ results
From: Philippe Troin @ 2003-07-23 1:12 UTC (permalink / raw)
To: zsh-workers
[-- Attachment #1: Type: text/plain, Size: 2684 bytes --]
The enclosed patch makes clone try to acquire a controlling tty. This
makes clone more useful because it enables job control in cloned
sessions.
The patch applies on current cvs head.
Notes about the patch:
- We don't call TIOCNOTTY if HAVE_SETSID: setsid() automatically
detaches from the current controlling tty.
- The logic for dup'ing the newly opened tty is changed for a better
one.
- Once the dup'ing of the newly opened tty is done, we try to acquire
the newly opened tty as a controlling tty. We print a message if
this fails.
- We have to reset mypgrp to zero so that init_io() can get its job
done correctly.
Notes about controlling ttys:
- Due to the way job control works, it is impossible for a process to
acquire a controlling tty if another process already acquired it
since:
* POSIX mandates that if a session leader dies, all the processes
in the session loose their controlling tty.
* Most terminal emulator programs (including screen, but see note
about screen) acquire a controlling tty before exec'ing their
target process.
- This means that the following won't work (the cloned zsh will run,
but will not have a controlling tty (-> no job control)):
* Open a new xterm.
* Run tty in xterm.
* Run in the xterm:
exec zsh -c 'trap "" INT QUIT TSTP; while :; do sleep 100000; done'
* Do a clone in the xterm's tty.
- However this will work (the cloned zsh will have a controlling tty
and job control will work):
* clone /dev/tty<n> or clone /dev/vc/<n> on linux
* zsh will be able to open cloned shells with job control in a
screen session as long as the screen "setsid off" command is in
effect in the screen:
+ Run screen. You're now in screen #0.
+ Enter "setsid off": this is done by typing in:
^A : setsid off <RETURN>
+ Create a new screen. You're now in screen #1.
+ The shell in screen 1 has job control disabled (it has no
controlling tty).
+ In screen #1, run:
tty && exec sleep 1000000
+ Switch back to screen #0: ^A 0
+ Run clone on the tty that was printed in screen #1.
+ Switch back to screen #1: ^A 1
+ You now have a cloned zsh with job control active.
Tested to work OK on Linux (with TIOCNOTTY/TIOCSCTTY controlling tty
acquiring method) and Solaris (with SvR4's O_NOCTTY controlling tty
acquiring method).
Phil.
Changelog entry:
2003-07-22 Philippe Troin <phil@fifi.org>
* Src/Modules/clone.c (bin_clone): Try to acquire a controlling
tty when possible. Report failures. Cleanup.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: zsh-clone-ctty.patch --]
[-- Type: text/x-patch, Size: 1833 bytes --]
Index: clone.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Modules/clone.c,v
retrieving revision 1.3
diff -b -u -r1.3 clone.c
--- clone.c 27 Aug 2002 21:10:34 -0000 1.3
+++ clone.c 23 Jul 2003 01:07:48 -0000
@@ -43,7 +43,7 @@
static int
bin_clone(char *nam, char **args, Options ops, int func)
{
- int ttyfd, pid;
+ int ttyfd, pid, cttyfd;
unmetafy(*args, NULL);
ttyfd = open(*args, O_RDWR|O_NOCTTY);
@@ -57,29 +57,42 @@
ppid = getppid();
mypid = getpid();
#ifdef HAVE_SETSID
- if (setsid() != mypid) {
+ if (setsid() != mypid)
zwarnnam(nam, "failed to create new session: %e", NULL, errno);
-#endif
-#ifdef TIOCNOTTY
+#elif defined(TIOCNOTTY)
if (ioctl(SHTTY, TIOCNOTTY, 0))
- zwarnnam(nam, "%e", NULL, errno);
+ zwarnnam(*args, "%e", NULL, errno);
setpgrp(0L, mypid);
#endif
-#ifdef HAVE_SETSID
- }
-#endif
- if (ttyfd) {
- close(0);
- dup(ttyfd);
- } else
- ttyfd = -1;
- close(1);
- close(2);
- dup(0);
- dup(0);
+ dup2(ttyfd,0);
+ dup2(ttyfd,1);
+ dup2(ttyfd,2);
+ if (ttyfd > 2)
+ close(ttyfd);
closem(0);
close(coprocin);
close(coprocout);
+ /* Acquire a controlling terminal */
+ cttyfd = open(*args, O_RDWR);
+ if (cttyfd == -1)
+ zwarnnam(nam, "%e", NULL, errno);
+ else {
+#ifdef TIOCSCTTY
+ ioctl(cttyfd, TIOCSCTTY, 0);
+#endif
+ close(cttyfd);
+ }
+ /* check if we acquired the tty successfully */
+ cttyfd = open("/dev/tty", O_RDWR);
+ if (cttyfd == -1)
+ zwarnnam(nam, "could not make %s my controlling tty, job control "
+ "disabled", *args, 0);
+ else
+ close(cttyfd);
+
+ /* Clear mygrp so that acquire_pgrp() gets the new process group.
+ * (acquire_pgrp() is called from init_io()) */
+ mypgrp = 0;
init_io();
setsparam("TTY", ztrdup(ttystrname));
}
^ permalink raw reply [relevance 2%]
* Re: Segfault in completion code
@ 2003-08-01 10:58 2% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2003-08-01 10:58 UTC (permalink / raw)
To: zsh-workers
Haakon Riiser wrote:
> But, there are still problems when SH_WORD_SPLIT is set. Here's an
> example that should not depend on my local zsh configuration
> (assuming that "zsh -f" only tries to load /etc/zshenv, which
> does not exist on my system):
>
> % /path/to/patched/zsh -f
> % unset IFS
> % setopt SH_WORD_SPLIT
> % autoload -U compinit
> % compinit
> % <press completion key>
> (eval):setopt:1: no such option: globbareglobqualnullglobrcexpand\
> paramextendedglobunsetNO_markdirsNO_globsubstNO_shwordsplitNO_shglob\
> NO_kshglobNO_ksharraysNO_cshnullglobNO_allexportNO_aliasesNO_errexit\
> NO_octalzeroes
The combined effect of shwordsplit and unsetting IFS causes the values
in the list of options to be joined together with no spaces between.
It looks harmless to put it back (IFS might be anything).
However, my patch last night was wrong --- I've checked SUS/Posix 2003
and it says:
IFS (Input Field Separators.) A string treated as a list of characters
that is used for field splitting and to split lines into fields with
the read command. If IFS is not set, the shell shall behave as if
the value of IFS is <space>, <tab>, and <newline>; see Field
Splitting . Implementations may ignore the value of IFS in the
environment at the time the shell is invoked, treating IFS as if it
were not set.
so we should use space to join words. I don't know why it doesn't allow
you to use no separator, but it doesn't. This is already handled
correctly in other parts of the shell --- we use a default IFS. That
fixes the immediate problem above, but as I said IFS might be something
else, so I've still supplied the other hunk. The following patch
applies on top of last night's fix (now committed).
Index: Src/utils.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/utils.c,v
retrieving revision 1.52
diff -u -r1.52 utils.c
--- Src/utils.c 1 Aug 2003 09:55:41 -0000 1.52
+++ Src/utils.c 1 Aug 2003 10:56:54 -0000
@@ -2058,6 +2058,8 @@
if (ifs) {
*p++ = *ifs;
*p++ = *ifs == Meta ? ifs[1] ^ 32 : '\0';
+ } else {
+ *p++ = ' ';
}
*p = '\0';
}
Index: Completion/Base/Core/_main_complete
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Base/Core/_main_complete,v
retrieving revision 1.7
diff -u -r1.7 _main_complete
--- Completion/Base/Core/_main_complete 26 Feb 2003 16:36:06 -0000 1.7
+++ Completion/Base/Core/_main_complete 1 Aug 2003 10:45:31 -0000
@@ -3,6 +3,8 @@
# The main loop of the completion code. This is what is called when
# completion is attempted from the command line.
+# In case non-standard separators are in use.
+local IFS=$' \t\n\0'
# If you want to complete only set or unset options for the unsetopt
# and setopt builtin, un-comment these lines:
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential
and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is
prohibited.
If you received this in error, please contact the sender and
delete the material from any computer.
**********************************************************************
^ permalink raw reply [relevance 2%]
* PATCH: options to command builtin
@ 2003-09-10 20:23 2% Oliver Kiddle
0 siblings, 0 replies; 200+ results
From: Oliver Kiddle @ 2003-09-10 20:23 UTC (permalink / raw)
To: Zsh workers
This long overdue patch adds support for the various flags to the
command builtin required by posix.
-v and -V are similar to what whence already does. -p uses a default
path to search for commands instead of $path.
Oliver
diff -urw zsh/acconfig.h command-v/acconfig.h
--- zsh/acconfig.h 2003-04-04 15:27:42.000000000 +0200
+++ command-v/acconfig.h 2003-09-10 20:48:49.000000000 +0200
@@ -52,6 +52,9 @@
* anything */
#undef GLOBAL_ZLOGOUT
+/* The default path; used when running commands with command -p */
+#undef DEFAULT_PATH
+
/* Define to 1 if compiler could initialise a union */
#undef HAVE_UNION_INIT
diff -urw zsh/Doc/Zsh/builtins.yo command-v/Doc/Zsh/builtins.yo
--- zsh/Doc/Zsh/builtins.yo 2003-09-03 13:19:05.000000000 +0200
+++ command-v/Doc/Zsh/builtins.yo 2003-09-10 22:15:50.000000000 +0200
@@ -194,7 +194,18 @@
)
alias(chdir)(cd)
module(clone)(zsh/clone)
-prefix(command)
+findex(command)
+item(tt(command) [ tt(-pvV) ] var(simple command))(
+The simple command argument is taken as an external command instead of
+a function or builtin and is executed. If the tt(POSIX_BUILTINS) option
+is set, builtins will also be executed but certain special properties
+of them are suppressed. The tt(-p) flag causes a default path to be
+searched instead of that in tt($path). With the tt(-v) flag, tt(command)
+is similar to tt(whence) and with tt(-V), it is equivalent to tt(whence
+-v).
+
+See also noderef(Precommand Modifiers).
+)
module(comparguments)(zsh/computil)
module(compcall)(zsh/compctl)
module(compctl)(zsh/compctl)
diff -urw zsh/Src/builtin.c command-v/Src/builtin.c
--- zsh/Src/builtin.c 2003-09-03 13:19:08.000000000 +0200
+++ command-v/Src/builtin.c 2003-09-10 20:48:31.000000000 +0200
@@ -2593,7 +2593,7 @@
return returnval;
}
-/* type, whence, which */
+/* type, whence, which, command */
/**/
int
@@ -2603,6 +2603,7 @@
Patprog pprog;
int returnval = 0;
int printflags = 0;
+ int aliasflags;
int csh, all, v, wd;
int informed;
char *cnam;
@@ -2624,6 +2625,18 @@
if (OPT_ISSET(ops,'f'))
printflags |= PRINT_WHENCE_FUNCDEF;
+ if (func == BIN_COMMAND)
+ if (OPT_ISSET(ops,'V')) {
+ printflags = aliasflags = PRINT_WHENCE_VERBOSE;
+ v = 1;
+ } else {
+ aliasflags = PRINT_LIST;
+ printflags = PRINT_WHENCE_SIMPLE;
+ v = 0;
+ }
+ else
+ aliasflags = printflags;
+
/* With -m option -- treat arguments as a glob patterns */
if (OPT_ISSET(ops,'m')) {
for (; *argv; argv++) {
@@ -2677,7 +2690,7 @@
/* Look for alias */
if ((hn = aliastab->getnode(aliastab, *argv))) {
- aliastab->printnode(hn, printflags);
+ aliastab->printnode(hn, aliasflags);
if (!all)
continue;
informed = 1;
diff -urw zsh/Src/exec.c command-v/Src/exec.c
--- zsh/Src/exec.c 2003-07-04 11:43:18.000000000 +0200
+++ command-v/Src/exec.c 2003-09-10 22:20:41.000000000 +0200
@@ -143,6 +143,10 @@
execarith, execautofn
};
+/* structure for command builtin for when it is used with -v or -V */
+static struct builtin commandbn =
+ BUILTIN(0, 0, bin_whence, 0, -1, BIN_COMMAND, "vV", NULL);
+
/* parse string into a list */
/**/
@@ -243,7 +247,7 @@
* In zsh this traditionally executes the loop in the current shell, which
* is nice to have if the loop does something to change the shell, like
* setting parameters or calling builtins.
- * Putting the loop in a sub-shell makes live easy, because the shell only
+ * Putting the loop in a sub-shell makes life easy, because the shell only
* has to put it into the job-structure and then treats it as a normal
* process. Suspending and interrupting is no problem then.
* Some years ago, zsh either couldn't suspend such things at all, or
@@ -257,7 +261,7 @@
* execlist->execpline->execcmd->execwhile->execlist->execpline
*
* (when waiting for the grep, ignoring execpline2 for now). At this time,
- * zsh has build two job-table entries for it: one for the cat and one for
+ * zsh has built two job-table entries for it: one for the cat and one for
* the grep. If the user hits ^Z at this point (and jobbing is used), the
* shell is notified that the grep was suspended. The list_pipe flag is
* used to tell the execpline where it was waiting that it was in a pipeline
@@ -442,7 +446,7 @@
/**/
void
-execute(Cmdnam not_used_yet, int dash)
+execute(Cmdnam not_used_yet, int dash, int defpath)
{
Cmdnam cn;
char buf[MAXCMDLEN], buf2[MAXCMDLEN];
@@ -451,7 +455,7 @@
int eno = 0, ee;
arg0 = (char *) peekfirst(args);
- if (isset(RESTRICTED) && strchr(arg0, '/')) {
+ if (isset(RESTRICTED) && (strchr(arg0, '/') || defpath)) {
zerr("%s: restricted", arg0, 0);
_exit(1);
}
@@ -474,8 +478,6 @@
zsfree(s);
}
- cn = (Cmdnam) cmdnamtab->getnode(cmdnamtab, arg0);
-
/* If ARGV0 is in the commands environment, we use *
* that as argv[0] for this external command */
if (unset(RESTRICTED) && (z = zgetenv("ARGV0"))) {
@@ -507,7 +509,43 @@
break;
}
- if (cn) {
+ /* for command -p, search the default path */
+ if (defpath) {
+ char *s, pbuf[PATH_MAX];
+ char *dptr, *pe, *ps = DEFAULT_PATH;
+
+ for(;ps;ps = pe ? pe+1 : NULL) {
+ pe = strchr(ps, ':');
+ if (*ps == '/') {
+ s = pbuf;
+ if (pe)
+ struncpy(&s, ps, pe-ps);
+ else
+ strucpy(&s, ps);
+ *s++ = '/';
+ if ((s - pbuf) + strlen(arg0) >= PATH_MAX)
+ continue;
+ strucpy(&s, arg0);
+ if (iscom(pbuf))
+ break;
+ }
+ }
+
+ if (!ps) {
+ zerr("command not found: %s", arg0, 0);
+ _exit(127);
+ }
+
+ ee = zexecve(pbuf, argv);
+
+ if ((dptr = strrchr(pbuf, '/')))
+ *dptr = '\0';
+ if (isgooderr(ee, *pbuf ? pbuf : "/"))
+ eno = ee;
+
+ } else {
+
+ if ((cn = (Cmdnam) cmdnamtab->getnode(cmdnamtab, arg0))) {
char nn[PATH_MAX], *dptr;
if (cn->flags & HASHED)
@@ -552,6 +590,8 @@
if (isgooderr(ee, *pp))
eno = ee;
}
+ }
+
if (eno)
zerr("%e: %s", arg0, eno);
else
@@ -1692,7 +1732,7 @@
int save[10];
int fil, dfil, is_cursh, type, do_exec = 0, i, htok = 0;
int nullexec = 0, assign = 0, forked = 0;
- int is_shfunc = 0, is_builtin = 0, is_exec = 0;
+ int is_shfunc = 0, is_builtin = 0, is_exec = 0, use_defpath = 0;
/* Various flags to the command. */
int cflags = 0, checked = 0, oautocont = opts[AUTOCONTINUE];
LinkList redir;
@@ -1782,9 +1822,30 @@
}
cflags &= ~BINF_BUILTIN & ~BINF_COMMAND;
cflags |= hn->flags;
+ checked = 0;
+ if (cflags & BINF_COMMAND && nextnode(firstnode(args))) {
+ // check for options to command builtin
+ char *next = (char *) getdata(nextnode(firstnode(args)));
+ char *cmdopt;
+ if (next && *next == '-' && strlen(next) == 2 &&
+ (cmdopt = strchr("pvV", next[1])))
+ {
+ if (*cmdopt == 'p') {
+ uremnode(args, firstnode(args));
+ use_defpath = 1;
+ if (nextnode(firstnode(args)))
+ next = (char *) getdata(nextnode(firstnode(args)));
+ } else {
+ hn = (HashNode)&commandbn;
+ is_builtin = 1;
+ break;
+ }
+ }
+ if (!strcmp(next, "--"))
+ uremnode(args, firstnode(args));
+ }
uremnode(args, firstnode(args));
hn = NULL;
- checked = 0;
if ((cflags & BINF_COMMAND) && unset(POSIXBUILTINS))
break;
}
@@ -2401,7 +2462,7 @@
zsfree(STTYval);
STTYval = 0;
}
- execute((Cmdnam) hn, cflags & BINF_DASH);
+ execute((Cmdnam) hn, cflags & BINF_DASH, use_defpath);
} else { /* ( ... ) */
DPUTS(varspc,
"BUG: assignment before complex command");
diff -urw zsh/Src/hashtable.h command-v/Src/hashtable.h
--- zsh/Src/hashtable.h 2002-08-27 23:10:34.000000000 +0200
+++ command-v/Src/hashtable.h 2003-09-10 20:48:31.000000000 +0200
@@ -58,6 +58,7 @@
#define BIN_DISABLE 24
#define BIN_ENABLE 25
#define BIN_PRINTF 26
+#define BIN_COMMAND 27
/* These currently depend on being 0 and 1. */
#define BIN_SETOPT 0
diff -urw zsh/zshconfig.ac command-v/zshconfig.ac
--- zsh/zshconfig.ac 2003-08-31 11:41:10.000000000 +0200
+++ command-v/zshconfig.ac 2003-09-10 20:48:49.000000000 +0200
@@ -1323,6 +1323,20 @@
fi
+dnl --------------------------------------------
+dnl CHECK FOR DEFAULT PATH (used for command -p)
+dnl --------------------------------------------
+AC_CACHE_VAL(zsh_cv_cs_path,
+[if getconf _CS_PATH >/dev/null 2>&1; then
+ zsh_cv_cs_path=`getconf _CS_PATH`
+elif getconf CS_PATH >/dev/null 2>&1; then
+ zsh_cv_cs_path=`getconf CS_PATH`
+else
+ zsh_cv_cs_path="/bin:/usr/bin"
+fi])
+AC_DEFINE_UNQUOTED(DEFAULT_PATH, "$zsh_cv_cs_path")
+
+
dnl ----------------------------
dnl CHECK FOR /dev/fd FILESYSTEM
dnl ----------------------------
^ permalink raw reply [relevance 2%]
* NSS LDAP/TLS crashing
@ 2003-10-28 13:02 1% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2003-10-28 13:02 UTC (permalink / raw)
To: zsh-workers; +Cc: 217915-forwarded, Frédéric Gobry
Is there something that zsh is doing that would make zlib or GNUTLS
unhappy somehow?
(4.0.7-5) was nearly identical to 4.0 branch on July 13.
----- Forwarded message from Frédéric Gobry <frederic.gobry@smartdata.ch> -----
Date: Tue, 28 Oct 2003 09:41:37 +0100
From: Frédéric Gobry <frederic.gobry@smartdata.ch>
Subject: Bug#217915: zsh: crash when accessing homedirs provided by LDAP with TLS
Package: zsh
Version: 4.0.7-5
Severity: normal
First of all, I don't know for sure if this problem is in zsh proper,
but it is the only place where it occurs.
I have an LDAP server which contains unix account information. When I
type:
cd ~user
where user is resolved via LDAP, zsh crashes. This is the stack dump:
#0 0x410893c9 in mallopt () from /lib/libc.so.6
#1 0x410885d3 in malloc () from /lib/libc.so.6
#2 0x0807b2ef in zcalloc ()
#3 0x404f3933 in deflateInit2_ () from /usr/lib/libz.so.1
#4 0x4048731a in _gnutls_comp_init () from /usr/lib/libgnutls.so.7
#5 0x4048d3bf in _gnutls_write_connection_state_init () from /usr/lib/libgnutls.so.7
#6 0x4048429e in _gnutls_get_adv_version () from /usr/lib/libgnutls.so.7
#7 0x40483571 in _gnutls_handshake_common () from /usr/lib/libgnutls.so.7
#8 0x40482f78 in gnutls_handshake () from /usr/lib/libgnutls.so.7
#9 0x4035b8ba in gnutls_SSL_free () from /usr/lib/libldap.so.2
#10 0x4035b9eb in gnutls_SSL_connect () from /usr/lib/libldap.so.2
#11 0x40359a8d in ldap_pvt_tls_init_def_ctx () from /usr/lib/libldap.so.2
#12 0x4035ab13 in ldap_int_tls_start () from /usr/lib/libldap.so.2
#13 0x4035af20 in ldap_start_tls_s () from /usr/lib/libldap.so.2
#14 0x40318e5a in _fini () from /lib/libnss_ldap.so.2
#15 0x40319fca in _fini () from /lib/libnss_ldap.so.2
#16 0x4031a525 in _fini () from /lib/libnss_ldap.so.2
#17 0x4031b649 in _nss_ldap_getpwnam_r () from /lib/libnss_ldap.so.2
#18 0x410be755 in getpwnam_r () from /lib/libc.so.6
#19 0x410be22f in getpwnam () from /lib/libc.so.6
#20 0x080980f5 in getnameddir ()
#21 0x08091ab5 in filesubstr ()
#22 0x08091763 in filesub ()
#23 0x08090f01 in prefork ()
#24 0x08060e9b in execsubst ()
#25 0x0805e809 in execlist ()
#26 0x0805dfc7 in execlist ()
#27 0x0805dd60 in execlist ()
#28 0x0805d8d7 in execode ()
#29 0x0806dd0a in loop ()
#30 0x080701c3 in zsh_main ()
#31 0x08051477 in main ()
#32 0x4102ce3e in __libc_start_main () from /lib/libc.so.6
It seems to occur in the TLS layer, which is part of GNU TLS I
guess. When configuring LDAP not to use TLS, zsh does not crash.
What makes me think that it might be zsh related is that everything
works with bash, and a simple test program that invokes getpwnam works
also. I've run zsh under valgrind, and it detected some access
violations that could lead to unexpected issues like this one.
The (long) valgrind log is appended below. I hope this might be
useful. I can easily perform additional tests if required.
==20890== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux.
==20890== Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward.
==20890== Using valgrind-20030725, a program supervision framework for x86-linux.
==20890== Copyright (C) 2000-2003, and GNU GPL'd, by Julian Seward.
==20890== Estimated CPU clock rate is 598 MHz
==20890== For more details, rerun with: -v
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x41008ABA: _dl_relocate_object_internal (in /lib/ld-2.3.2.so)
==20890== by 0x4111DD70: (within /lib/libc-2.3.2.so)
==20890== by 0x4100B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so)
==20890== by 0x4111DFDB: _dl_open (in /lib/libc-2.3.2.so)
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x41008B05: _dl_relocate_object_internal (in /lib/ld-2.3.2.so)
==20890== by 0x4111DD70: (within /lib/libc-2.3.2.so)
==20890== by 0x4100B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so)
==20890== by 0x4111DFDB: _dl_open (in /lib/libc-2.3.2.so)
==20891==
==20891== Invalid write of size 4
==20891== at 0x805CC10: (within /bin/zsh4)
==20891== by 0x805D0B2: execute (in /bin/zsh4)
==20891== by 0x8060013: (within /bin/zsh4)
==20891== by 0x805E808: (within /bin/zsh4)
==20891== Address 0x40CAC124 is 0 bytes after a block of size 176 alloc'd
==20891== at 0x40015CE9: realloc (vg_replace_malloc.c:299)
==20891== by 0x4104258C: (within /lib/libc-2.3.2.so)
==20891== by 0x410424B7: putenv (in /lib/libc-2.3.2.so)
==20891== by 0x8084608: addenv (in /bin/zsh4)
==20892==
==20892== Invalid write of size 4
==20892== at 0x805CC10: (within /bin/zsh4)
==20892== by 0x805D0B2: execute (in /bin/zsh4)
==20892== by 0x8060013: (within /bin/zsh4)
==20892== by 0x805E808: (within /bin/zsh4)
==20892== Address 0x40CAC124 is 0 bytes after a block of size 176 alloc'd
==20892== at 0x40015CE9: realloc (vg_replace_malloc.c:299)
==20892== by 0x4104258C: (within /lib/libc-2.3.2.so)
==20892== by 0x410424B7: putenv (in /lib/libc-2.3.2.so)
==20892== by 0x8084608: addenv (in /bin/zsh4)
==20894==
==20894== Invalid write of size 4
==20894== at 0x805CC10: (within /bin/zsh4)
==20894== by 0x805D0B2: execute (in /bin/zsh4)
==20894== by 0x8060013: (within /bin/zsh4)
==20894== by 0x805E808: (within /bin/zsh4)
==20894== Address 0x40CAC124 is 0 bytes after a block of size 176 alloc'd
==20894== at 0x40015CE9: realloc (vg_replace_malloc.c:299)
==20894== by 0x4104258C: (within /lib/libc-2.3.2.so)
==20894== by 0x410424B7: putenv (in /lib/libc-2.3.2.so)
==20894== by 0x8084608: addenv (in /bin/zsh4)
==20896== discard syms in /lib/libnss_compat-2.3.2.so due to munmap()
==20896== discard syms in /lib/libnss_nis-2.3.2.so due to munmap()
==20896== discard syms in /lib/libnss_files-2.3.2.so due to munmap()
==20896==
==20896== ERROR SUMMARY: 14 errors from 2 contexts (suppressed: 0 from 0)
==20896== malloc/free: in use at exit: 241480 bytes in 10216 blocks.
==20896== malloc/free: 15821 allocs, 5605 frees, 1865477 bytes allocated.
==20896== For a detailed leak analysis, rerun with: --leak-check=yes
==20896== For counts of detected errors, rerun with: -v
==20897==
==20897== Invalid write of size 4
==20897== at 0x805CC10: (within /bin/zsh4)
==20897== by 0x805D0B2: execute (in /bin/zsh4)
==20897== by 0x8060013: (within /bin/zsh4)
==20897== by 0x805E808: (within /bin/zsh4)
==20897== Address 0x40CAC124 is 0 bytes after a block of size 176 alloc'd
==20897== at 0x40015CE9: realloc (vg_replace_malloc.c:299)
==20897== by 0x4104258C: (within /lib/libc-2.3.2.so)
==20897== by 0x410424B7: putenv (in /lib/libc-2.3.2.so)
==20897== by 0x8084608: addenv (in /bin/zsh4)
==20898==
==20898== Invalid write of size 4
==20898== at 0x805CC10: (within /bin/zsh4)
==20898== by 0x805D0B2: execute (in /bin/zsh4)
==20898== by 0x8060013: (within /bin/zsh4)
==20898== by 0x805E808: (within /bin/zsh4)
==20898== Address 0x40CAC124 is 0 bytes after a block of size 176 alloc'd
==20898== at 0x40015CE9: realloc (vg_replace_malloc.c:299)
==20898== by 0x4104258C: (within /lib/libc-2.3.2.so)
==20898== by 0x410424B7: putenv (in /lib/libc-2.3.2.so)
==20898== by 0x8084608: addenv (in /bin/zsh4)
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x4211F154: __memp_fopen_int_4001 (in /usr/lib/libdb-4.1.so)
==20890== by 0x4211EB93: (within /usr/lib/libdb-4.1.so)
==20890== by 0x420D83D3: __db_dbenv_setup_4001 (in /usr/lib/libdb-4.1.so)
==20890== by 0x420E7E8F: __db_dbopen_4001 (in /usr/lib/libdb-4.1.so)
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x4100896A: _dl_relocate_object_internal (in /lib/ld-2.3.2.so)
==20890== by 0x4111DD70: (within /lib/libc-2.3.2.so)
==20890== by 0x4100B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so)
==20890== by 0x4111DFDB: _dl_open (in /lib/libc-2.3.2.so)
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x41008976: _dl_relocate_object_internal (in /lib/ld-2.3.2.so)
==20890== by 0x4111DD70: (within /lib/libc-2.3.2.so)
==20890== by 0x4100B115: _dl_catch_error_internal (in /lib/ld-2.3.2.so)
==20890== by 0x4111DFDB: _dl_open (in /lib/libc-2.3.2.so)
==20890==
==20890== Syscall param open(pathname) contains uninitialised or unaddressable byte(s)
==20890== at 0x410E1778: __libc_open (in /lib/libc-2.3.2.so)
==20890== by 0x41081207: _IO_file_fopen (in /lib/libc-2.3.2.so)
==20890== by 0x4107745C: (within /lib/libc-2.3.2.so)
==20890== by 0x410774BD: _IO_fopen (in /lib/libc-2.3.2.so)
==20890== Address 0x0 is not stack'd, malloc'd or free'd
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x423CF008: gcry_mpi_print (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423A7982: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423A7D7E: gcry_sexp_build (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231FA14: (within /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x423CF008: gcry_mpi_print (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423A7982: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423A7D7E: gcry_sexp_build (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231FA34: (within /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x423CF008: gcry_mpi_print (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423A7982: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423A7D7E: gcry_sexp_build (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423AE3C2: gcry_pk_encrypt (in /usr/lib/libgcrypt.so.1.5.1)
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x423CEF6C: gcry_mpi_print (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231F29C: _gnutls_mpi_print (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4232EF1B: _gnutls_gen_dh_common_client_kx (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231AF2B: _gnutls_send_client_kx_message (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A8D3: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01478 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A8D9: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01460 is 0 bytes inside a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A8B3: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A8DB: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01488 is 16 bytes before a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A8E5: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01484 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A8EC: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C0148C is 12 bytes before a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A8F7: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014A8 is 10 bytes after a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A8FE: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014A4 is 6 bytes after a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A907: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014AC is 14 bytes after a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A917: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014B0 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242A923: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01484 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A93B: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01490 is 8 bytes before a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242A942: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01484 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242A961: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014A4 is 6 bytes after a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A977: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C0149C is 4 bytes inside a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A984: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02AF4 is 168 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242A993: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02AF4 is 168 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242A9AB: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02AF4 is 168 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A9B1: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01468 is 7 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A8B3: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A9BA: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C0146C is 11 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A8B3: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242A9BD: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01490 is 8 bytes before a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Conditional jump or move depends on uninitialised value(s)
==20890== at 0x4242A9D0: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A9E2: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02AFC is 176 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A9F4: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014DC is 11 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242A9FA: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02AF0 is 164 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 1
==20890== at 0x4242AA00: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C0147D is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242AA04: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231929D: (within /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014E0 is 15 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242ABF7: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01468 is 7 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A8B3: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242ABFA: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01478 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242AC14: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01474 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242AC1B: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01470 is 15 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A8B3: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242AC2C: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01480 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242AC3D: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423223BE: _gnutls_write_connection_state_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01464 is 3 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A8B3: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C707: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01F70 is 4 bytes before a block of size 128 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B057C: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C713: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01F78 is 4 bytes inside a block of size 128 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B057C: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C71F: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01F7C is 8 bytes inside a block of size 128 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B057C: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C72B: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01F84 is 16 bytes inside a block of size 128 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B057C: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C737: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01F88 is 20 bytes inside a block of size 128 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B057C: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C745: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01F90 is 28 bytes inside a block of size 128 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B057C: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 2
==20890== at 0x4242C74D: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02B10 is 196 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C759: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02B14 is 200 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== More than 50 errors detected. Subsequent errors
==20890== will still be recorded, but in less detail than before.
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C75F: _tr_init (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02B0C is 192 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 2
==20890== at 0x4242C782: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014EC is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 2
==20890== at 0x4242C7A2: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01DE0 is 708 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0A07: gcry_md_ctl (in /usr/lib/libgcrypt.so.1.5.1)
==20890==
==20890== Invalid write of size 2
==20890== at 0x4242C7B4: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01ED4 is 952 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0A07: gcry_md_ctl (in /usr/lib/libgcrypt.so.1.5.1)
==20890==
==20890== Invalid write of size 2
==20890== at 0x4242C7C9: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C018EC is 552 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C7D2: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02B04 is 184 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C7DA: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02B00 is 180 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C7E2: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02B08 is 188 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242C7E8: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC47: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C02AF8 is 172 bytes inside a block of size 1064 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x423A6019: gcry_free (in /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x423B0584: (within /usr/lib/libgcrypt.so.1.5.1)
==20890== by 0x4231BB93: _gnutls_hmac_deinit (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242B586: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01484 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242B589: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014A4 is 6 bytes after a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B58E: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C01494 is 4 bytes before a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Use of uninitialised value of size 4
==20890== at 0x4242B598: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 2
==20890== at 0x4242B598: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C1C1BE is 2458 bytes inside a block of size 4096 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x8065790: zglob (in /bin/zsh4)
==20890== by 0x809154E: globlist (in /bin/zsh4)
==20890== by 0x805F0C5: (within /bin/zsh4)
==20890==
==20890== Use of uninitialised value of size 4
==20890== at 0x4108EAEB: memset (in /lib/libc-2.3.2.so)
==20890== by 0x4242B5B0: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4108EAEB: memset (in /lib/libc-2.3.2.so)
==20890== by 0x4242B5B0: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== Address 0x41C0C1C0 is 0 bytes inside a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A970: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 1
==20890== at 0x4108EAF2: memset (in /lib/libc-2.3.2.so)
==20890== by 0x4242B5B0: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== Address 0x41C1C1BC is 2456 bytes inside a block of size 4096 free'd
==20890== at 0x400159D1: free (vg_replace_malloc.c:220)
==20890== by 0x8065790: zglob (in /bin/zsh4)
==20890== by 0x809154E: globlist (in /bin/zsh4)
==20890== by 0x805F0C5: (within /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5B1: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014C4 is 12 bytes before a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid read of size 4
==20890== at 0x4242B5B8: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014DC is 11 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5C1: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014B4 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5C8: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014CC is 4 bytes before a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5DA: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014D0 is 0 bytes inside a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5E1: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014B8 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5E8: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014C0 is 16 bytes before a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5EF: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014D8 is 7 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5F6: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014A0 is 2 bytes after a block of size 6 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B1CE: zalloc (in /bin/zsh4)
==20890== by 0x809097E: ztrdup (in /bin/zsh4)
==20890== by 0x807FF27: copyparam (in /bin/zsh4)
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B5FD: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014E4 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B608: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014E8 is not stack'd, malloc'd or free'd
==20890==
==20890== Invalid write of size 4
==20890== at 0x4242B613: (within /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AC4F: deflateReset (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4242AA11: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
==20890== Address 0x41C014D4 is 3 bytes after a block of size 1 alloc'd
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x807B2EE: zcalloc (in /bin/zsh4)
==20890== by 0x4242A932: deflateInit2_ (in /usr/lib/libz.so.1.1.4)
==20890== by 0x4231C319: _gnutls_comp_init (in /usr/lib/libgnutls.so.7.0.9)
valgrind: vg_malloc2.c:312 (mk_plain_bszW): Assertion `bszW != 0' failed.
sched status:
Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0
==20890== at 0x400156F1: malloc (vg_replace_malloc.c:153)
==20890== by 0x4231B92D: _gnutls_hash_copy (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x4231719E: _gnutls_finished (in /usr/lib/libgnutls.so.7.0.9)
==20890== by 0x423175C8: _gnutls_send_finished (in /usr/lib/libgnutls.so.7.0.9)
Note: see also the FAQ.txt in the source distribution.
It contains workarounds to several common problems.
If that doesn't help, please report this bug to: jseward@acm.org
In the bug report, send all the above text, the valgrind
version, and what Linux distro you are using. Thanks.
-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux rhin 2.4.22 #1 Wed Aug 27 11:35:06 CEST 2003 i686
Locale: LANG=en_US.ISO8859-1, LC_CTYPE=en_US.ISO8859-1
Versions of packages zsh depends on:
ii debconf 1.3.15 Debian configuration management sy
ii libc6 2.3.2-7 GNU C Library: Shared libraries an
ii libcap1 1:1.10-12 support for getting/setting POSIX.
ii libncurses5 5.3.20030719-1 Shared libraries for terminal hand
-- debconf information:
* zsh/rcmove:
----- End forwarded message -----
^ permalink raw reply [relevance 1%]
* Freebsd configure misses <curses.h> and <term.h>
@ 2003-11-19 1:30 1% Peter Whaite
0 siblings, 0 replies; 200+ results
From: Peter Whaite @ 2003-11-19 1:30 UTC (permalink / raw)
To: zsh-workers
[-- Attachment #1: Type: text/plain, Size: 1382 bytes --]
For some time now I have been trying to compile CVS zsh on a freebsd
machine. It fails on Src/Modules/terminfo.c
gcc -c -I. -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H
-DMODULE -Wall -Wmissing-prototypes -O2 -fPIC -o terminfo..o terminfo.c
terminfo.c: In function `bin_echoti':
terminfo.c:74: warning: implicit declaration of function `tigetnum'
terminfo.c:79: warning: implicit declaration of function `tigetflag'
terminfo.c:91: warning: implicit declaration of function `tigetstr'
terminfo.c:117: warning: implicit declaration of function `putp'
terminfo.c:119: warning: implicit declaration of function `tparm'
terminfo.c: In function `boot_':
terminfo.c:381: warning: implicit declaration of function `setupterm'
terminfo.c:381: `ERR' undeclared (first use in this function)
terminfo.c:381: (Each undeclared identifier is reported only once
terminfo.c:381: for each function it appears in.)
*** Error code 1
Stop in /usr/home/peta/src/zsh/Src/Modules.
I find config.h has #defined neither HAVE_CURSES_H nor HAVE_TERM_H, but
both these header files are in /usr/include, and both contain the
missing declarations. If I #define HAVE_CURSES_H manually then it
compiles and tests OK.
% uname -a
FreeBSD whaite.com 4.6-RELEASE FreeBSD 4.6-RELEASE #1: Wed Aug 28
15:22:40 EST 2002 root@whaite.com:/usr/src/sys/compile/WHAITE i386
config.log attached.
[-- Attachment #2: config.log --]
[-- Type: text/plain, Size: 137763 bytes --]
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.53. Invocation command line was
$ ./configure
## --------- ##
## Platform. ##
## --------- ##
hostname = whaite.com
uname -m = i386
uname -r = 2.4.2
uname -s = Linux
uname -v = FreeBSD 4.6-RELEASE #1: Wed Aug 28 15:22:40 EST 2002
root@wh
/usr/bin/uname -p = i386
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: .
PATH: /home/peta/bin
PATH: /usr/local/bin
PATH: /sbin
PATH: /bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /usr/games
PATH: /usr/local/sbin
PATH: /usr/X11R6/bin
PATH: /usr/compat/linux/usr/bin
PATH: /usr/compat/linux/bin
PATH: /usr/compat/linux/sbin
PATH: /home/peta/usr/bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:1263: checking build system type
configure:1281: result: i386-pc-linux-gnulibc1
configure:1289: checking host system type
configure:1303: result: i386-pc-linux-gnulibc1
configure:1759: checking for gcc
configure:1759: found /usr/bin/gcc
configure:1759: result: gcc
configure:1994: checking for C compiler version
configure:2000: gcc --version </dev/null >&5
2.95.3
configure:2000: $? = 0
configure:2005: gcc -v </dev/null >&5
Using builtin specs.
gcc version 2.95.3 20010315 (release) [FreeBSD]
configure:2005: $? = 0
configure:2010: gcc -V </dev/null >&5
gcc: argument to `-V' is missing
configure:2010: $? = 1
configure:2035: checking for C compiler default output
configure:2071: gcc conftest.c >&5
configure:2071: $? = 0
configure:2074: result: a.out
configure:2079: checking whether the C compiler works
configure:2102: ./a.out
configure:2102: $? = 0
configure:2103: result: yes
configure:2110: checking whether we are cross compiling
configure:2112: result: no
configure:2115: checking for suffix of executables
configure:2139: gcc -o conftest conftest.c >&5
configure:2139: $? = 0
configure:2142: result:
configure:2148: checking for suffix of object files
configure:2193: gcc -c conftest.c >&5
configure:2193: $? = 0
configure:2194: result: o
configure:2198: checking whether we are using the GNU C compiler
configure:2245: gcc -c conftest.c >&5
configure:2245: $? = 0
configure:2245: test -s conftest.o
configure:2245: $? = 0
configure:2246: result: yes
configure:2252: checking whether gcc accepts -g
configure:2294: gcc -c -g conftest.c >&5
configure:2294: $? = 0
configure:2294: test -s conftest.o
configure:2294: $? = 0
configure:2295: result: yes
configure:2427: gcc -c conftest.c >&5
conftest.c:2: syntax error before `me'
configure:2427: $? = 1
configure: failed program was:
#ifndef __cplusplus
choke me
#endif
configure:2486: checking whether large file support needs explicit enabling
configure:2486: result: yes
configure:2548: checking how to run the C preprocessor
configure:2649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:2649: $? = 0
configure:2649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:2650: ac_nonexistent.h: No such file or directory
configure:2649: $? = 1
configure: failed program was:
#line 2649 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
configure:2650: result: gcc -E
configure:2726: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:2726: $? = 0
configure:2726: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:2727: ac_nonexistent.h: No such file or directory
configure:2726: $? = 1
configure: failed program was:
#line 2726 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
configure:2786: checking whether gcc needs -traditional
configure:2787: termio.h: No such file or directory
configure:2786: result: no
configure:2787: checking for gcc option to accept ANSI C
configure:2872: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:2872: $? = 0
configure:2872: test -s conftest.o
configure:2872: $? = 0
configure:2882: result: none needed
configure:2884: checking for an ANSI C-conforming const
configure:2972: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:3006: warning: unused variable `s'
configure:3026: warning: unused variable `foo'
configure:2993: warning: unused variable `zero'
configure:2987: warning: unused variable `x'
configure:3005: warning: `t' might be used uninitialized in this function
configure:3023: warning: `b' might be used uninitialized in this function
configure:2972: $? = 0
configure:2972: test -s conftest.o
configure:2972: $? = 0
configure:2973: result: yes
configure:2989: checking for gcc option to accept ANSI C
configure:3052: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:3052: $? = 0
configure:3052: test -s conftest.o
configure:3052: $? = 0
configure:3053: result:
configure:3060: checking whether to use prototypes
configure:3084: result: yes
configure:3089: checking for working alloca.h
configure:3131: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:3132: alloca.h: No such file or directory
configure:3131: $? = 1
configure: failed program was:
#line 3131 "configure"
#include "confdefs.h"
#include <alloca.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
char *p = (char *) alloca (2 * sizeof (int));
;
return 0;
}
configure:3132: result: no
configure:3142: checking for alloca
configure:3204: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:3235: warning: unused variable `p'
configure:3204: $? = 0
configure:3204: test -s conftest
configure:3204: $? = 0
configure:3205: result: yes
configure:3395: checking if the compiler supports union initialisation
configure:3437: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:3437: $? = 0
configure:3437: test -s conftest.o
configure:3437: $? = 0
configure:3438: result: yes
configure:3447: checking if signed to unsigned casting is broken
configure:3481: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:3482: warning: return-type defaults to `int'
configure:3481: $? = 0
configure:3481: ./conftest
configure:3481: $? = 1
configure: program exited with status 1
configure: failed program was:
#line 3481 "configure"
#include "confdefs.h"
main(){return((int)(unsigned char)((char) -1) == 255);}
configure:3482: result: no
configure:3491: checking if the compiler supports variable-length arrays
configure:3533: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:3544: size of array `a' is too large
configure:3544: warning: unused variable `a'
configure:3544: warning: unused variable `i'
configure:3533: $? = 1
configure: failed program was:
#line 3533 "configure"
#include "confdefs.h"
int foo(), n;
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
int i[foo()], a[n+1];
;
return 0;
}
configure:3534: result: no
configure:3543: checking whether make sets ${MAKE}
configure:3570: result: yes
configure:3583: checking for a BSD-compatible install
configure:3637: result: /usr/bin/install -c
configure:3685: checking for gawk
configure:3685: result: no
configure:3685: checking for mawk
configure:3685: result: no
configure:3685: checking for nawk
configure:3685: result: no
configure:3685: checking for awk
configure:3685: found /usr/bin/awk
configure:3685: result: awk
configure:3686: checking whether ln works
configure:3709: result: yes
configure:3748: checking for yodl
configure:3748: found /home/peta/usr/bin/yodl
configure:3748: result: yodl
configure:3789: checking for ansi2knr
configure:3789: result: no
configure:3867: checking for dirent.h that defines DIR
configure:3867: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:3867: $? = 0
configure:3867: test -s conftest.o
configure:3867: $? = 0
configure:3867: result: yes
configure:4087: checking for library containing opendir
configure:4087: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4087: $? = 0
configure:4087: test -s conftest
configure:4087: $? = 0
configure:4087: result: none required
configure:4089: checking for ANSI C header files
configure:4215: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4215: $? = 0
configure:4215: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4215: $? = 0
configure:4215: ./conftest
configure:4215: $? = 0
configure:4216: result: yes
configure:4226: checking whether time.h and sys/time.h may both be included
configure:4272: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4272: $? = 0
configure:4272: test -s conftest.o
configure:4272: $? = 0
configure:4273: result: yes
configure:4283: checking whether stat file-mode macros are broken
configure:4328: result: no
configure:4338: checking for sys/wait.h that is POSIX.1 compatible
configure:4390: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4390: $? = 0
configure:4390: test -s conftest.o
configure:4390: $? = 0
configure:4391: result: yes
configure:4405: checking for pcre-config
configure:4436: result: no
configure:4497: checking for sys/types.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4497: $? = 0
configure:4497: test -s conftest.o
configure:4497: $? = 0
configure:4497: result: yes
configure:4497: checking for sys/stat.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4497: $? = 0
configure:4497: test -s conftest.o
configure:4497: $? = 0
configure:4497: result: yes
configure:4497: checking for stdlib.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4497: $? = 0
configure:4497: test -s conftest.o
configure:4497: $? = 0
configure:4497: result: yes
configure:4497: checking for string.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4497: $? = 0
configure:4497: test -s conftest.o
configure:4497: $? = 0
configure:4497: result: yes
configure:4497: checking for memory.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4497: $? = 0
configure:4497: test -s conftest.o
configure:4497: $? = 0
configure:4497: result: yes
configure:4497: checking for strings.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4497: $? = 0
configure:4497: test -s conftest.o
configure:4497: $? = 0
configure:4497: result: yes
configure:4497: checking for inttypes.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4497: $? = 0
configure:4497: test -s conftest.o
configure:4497: $? = 0
configure:4497: result: yes
configure:4497: checking for stdint.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4533: stdint.h: No such file or directory
configure:4497: $? = 1
configure: failed program was:
#line 4497 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <stdint.h>
configure:4497: result: no
configure:4497: checking for unistd.h
configure:4497: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4497: $? = 0
configure:4497: test -s conftest.o
configure:4497: $? = 0
configure:4497: result: yes
configure:4649: checking sys/time.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking sys/time.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for sys/time.h
configure:4649: result: yes
configure:4649: checking sys/times.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking sys/times.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for sys/times.h
configure:4649: result: yes
configure:4649: checking sys/select.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking sys/select.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for sys/select.h
configure:4649: result: yes
configure:4649: checking termcap.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking termcap.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for termcap.h
configure:4649: result: yes
configure:4649: checking termio.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4684: termio.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <termio.h>
configure:4649: result: no
configure:4649: checking termio.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4650: termio.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <termio.h>
configure:4649: result: no
configure:4649: checking for termio.h
configure:4649: result: no
configure:4649: checking termios.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking termios.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for termios.h
configure:4649: result: yes
configure:4649: checking sys/param.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking sys/param.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for sys/param.h
configure:4649: result: yes
configure:4649: checking sys/filio.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking sys/filio.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for sys/filio.h
configure:4649: result: yes
configure:4649: checking for string.h
configure:4649: result: yes
configure:4649: checking for memory.h
configure:4649: result: yes
configure:4649: checking limits.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking limits.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for limits.h
configure:4649: result: yes
configure:4649: checking fcntl.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking fcntl.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for fcntl.h
configure:4649: result: yes
configure:4649: checking libc.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4684: libc.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <libc.h>
configure:4649: result: no
configure:4649: checking libc.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4650: libc.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <libc.h>
configure:4649: result: no
configure:4649: checking for libc.h
configure:4649: result: no
configure:4649: checking sys/utsname.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking sys/utsname.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for sys/utsname.h
configure:4649: result: yes
configure:4649: checking sys/resource.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking sys/resource.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for sys/resource.h
configure:4649: result: yes
configure:4649: checking locale.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking locale.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for locale.h
configure:4649: result: yes
configure:4649: checking errno.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking errno.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for errno.h
configure:4649: result: yes
configure:4649: checking stdio.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking stdio.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for stdio.h
configure:4649: result: yes
configure:4649: checking for stdlib.h
configure:4649: result: yes
configure:4649: checking for unistd.h
configure:4649: result: yes
configure:4649: checking sys/capability.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4684: sys/capability.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <sys/capability.h>
configure:4649: result: no
configure:4649: checking sys/capability.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4650: sys/capability.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <sys/capability.h>
configure:4649: result: no
configure:4649: checking for sys/capability.h
configure:4649: result: no
configure:4649: checking utmp.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking utmp.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for utmp.h
configure:4649: result: yes
configure:4649: checking utmpx.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4684: utmpx.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <utmpx.h>
configure:4649: result: no
configure:4649: checking utmpx.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4650: utmpx.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <utmpx.h>
configure:4649: result: no
configure:4649: checking for utmpx.h
configure:4649: result: no
configure:4649: checking for sys/types.h
configure:4649: result: yes
configure:4649: checking pwd.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking pwd.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for pwd.h
configure:4649: result: yes
configure:4649: checking grp.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking grp.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for grp.h
configure:4649: result: yes
configure:4649: checking poll.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking poll.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for poll.h
configure:4649: result: yes
configure:4649: checking sys/mman.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking sys/mman.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for sys/mman.h
configure:4649: result: yes
configure:4649: checking netinet/in_systm.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking netinet/in_systm.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for netinet/in_systm.h
configure:4649: result: yes
configure:4649: checking pcre.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4684: pcre.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <pcre.h>
configure:4649: result: no
configure:4649: checking pcre.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4650: pcre.h: No such file or directory
configure:4649: $? = 1
configure: failed program was:
#line 4649 "configure"
#include "confdefs.h"
#include <pcre.h>
configure:4649: result: no
configure:4649: checking for pcre.h
configure:4649: result: no
configure:4649: checking langinfo.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking langinfo.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for langinfo.h
configure:4649: result: yes
configure:4649: checking wchar.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking wchar.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for wchar.h
configure:4649: result: yes
configure:4649: checking stddef.h usability
configure:4649: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4649: $? = 0
configure:4649: test -s conftest.o
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking stddef.h presence
configure:4649: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4649: $? = 0
configure:4649: result: yes
configure:4649: checking for stddef.h
configure:4649: result: yes
configure:4880: checking dlfcn.h usability
configure:4880: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4880: $? = 0
configure:4880: test -s conftest.o
configure:4880: $? = 0
configure:4880: result: yes
configure:4880: checking dlfcn.h presence
configure:4880: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4880: $? = 0
configure:4880: result: yes
configure:4880: checking for dlfcn.h
configure:4880: result: yes
configure:4880: checking dl.h usability
configure:4880: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4915: dl.h: No such file or directory
configure:4880: $? = 1
configure: failed program was:
#line 4880 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <dl.h>
configure:4880: result: no
configure:4880: checking dl.h presence
configure:4880: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:4881: dl.h: No such file or directory
configure:4880: $? = 1
configure: failed program was:
#line 4880 "configure"
#include "confdefs.h"
#include <dl.h>
configure:4880: result: no
configure:4880: checking for dl.h
configure:4880: result: no
configure:4935: checking for conflicts in sys/time.h and sys/select.h
configure:4935: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:4947: warning: unused variable `i'
configure:4935: $? = 0
configure:4935: test -s conftest.o
configure:4935: $? = 0
configure:4935: result: no
configure:4937: checking POSIX termios
configure:4982: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:4982: $? = 0
configure:4982: test -s conftest
configure:4982: $? = 0
configure:4983: result: yes
configure:5035: checking TIOCGWINSZ in termios.h
configure:5035: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:5047: warning: unused variable `x'
configure:5035: $? = 0
configure:5035: test -s conftest
configure:5035: $? = 0
configure:5035: result: yes
configure:5192: checking sys/ptem.h usability
configure:5192: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:5227: sys/ptem.h: No such file or directory
configure:5192: $? = 1
configure: failed program was:
#line 5192 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <sys/ptem.h>
configure:5192: result: no
configure:5192: checking sys/ptem.h presence
configure:5192: gcc -E -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c
configure:5193: sys/ptem.h: No such file or directory
configure:5192: $? = 1
configure: failed program was:
#line 5192 "configure"
#include "confdefs.h"
#include <sys/ptem.h>
configure:5192: result: no
configure:5192: checking for sys/ptem.h
configure:5192: result: no
configure:5203: checking for printf in -lc
configure:5255: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lc >&5
configure:5255: $? = 0
configure:5255: test -s conftest
configure:5255: $? = 0
configure:5256: result: yes
configure:5264: checking for pow in -lm
configure:5316: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lm -lc >&5
configure:5316: $? = 0
configure:5316: test -s conftest
configure:5316: $? = 0
configure:5317: result: yes
configure:5453: checking for library containing tgetent
configure:5553: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lm -lc >&5
/tmp/ccnnSsSV.o: In function `main':
/tmp/ccnnSsSV.o(.text+0x7): undefined reference to `tgetent'
configure:5553: $? = 1
configure: failed program was:
#line 5553 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char tgetent ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
tgetent ();
;
return 0;
}
configure:5553: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:5553: $? = 0
configure:5553: test -s conftest
configure:5553: $? = 0
configure:5554: result: -ltinfo
configure:6214: checking for library containing yp_all
configure:6314: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:6314: $? = 0
configure:6314: test -s conftest
configure:6314: $? = 0
configure:6315: result: none required
configure:6393: checking for dlopen in -ldl
configure:6393: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ldl -ltinfo -lm -lc >&5
/usr/libexec/elf/ld: cannot find -ldl
configure:6393: $? = 1
configure: failed program was:
#line 6393 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char dlopen ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
dlopen ();
;
return 0;
}
configure:6393: result: no
configure:6396: checking for cap_get_proc in -lcap
configure:6448: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lcap -ltinfo -lm -lc >&5
/usr/libexec/elf/ld: cannot find -lcap
configure:6448: $? = 1
configure: failed program was:
#line 6448 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char cap_get_proc ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
cap_get_proc ();
;
return 0;
}
configure:6449: result: no
configure:6462: checking for socket in -lsocket
configure:6514: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lsocket -ltinfo -lm -lc >&5
/usr/libexec/elf/ld: cannot find -lsocket
configure:6514: $? = 1
configure: failed program was:
#line 6514 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char socket ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
socket ();
;
return 0;
}
configure:6515: result: no
configure:6528: checking for iconv in -liconv
configure:6580: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -liconv -ltinfo -lm -lc >&5
/usr/libexec/elf/ld: cannot find -liconv
configure:6580: $? = 1
configure: failed program was:
#line 6580 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char iconv ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
iconv ();
;
return 0;
}
configure:6581: result: no
configure:6593: checking for library containing pcre_compile
configure:6693: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccLJRVbg.o: In function `main':
/tmp/ccLJRVbg.o(.text+0x7): undefined reference to `pcre_compile'
configure:6693: $? = 1
configure: failed program was:
#line 6693 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char pcre_compile ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
pcre_compile ();
;
return 0;
}
configure:6693: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lpcre -ltinfo -lm -lc >&5
/usr/libexec/elf/ld: cannot find -lpcre
configure:6693: $? = 1
configure: failed program was:
#line 6693 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char pcre_compile ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
pcre_compile ();
;
return 0;
}
configure:6694: result: no
configure:6702: checking if an include file defines ospeed
configure:6750: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:6750: $? = 0
configure:6750: test -s conftest
configure:6750: $? = 0
configure:6751: result: yes
configure:6819: checking return type of signal handlers
configure:6871: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:6892: warning: unused variable `i'
configure:6871: $? = 0
configure:6871: test -s conftest.o
configure:6871: $? = 0
configure:6872: result: void
configure:6880: checking for pid_t
configure:6925: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:6925: $? = 0
configure:6925: test -s conftest.o
configure:6925: $? = 0
configure:6926: result: yes
configure:6938: checking for off_t
configure:6983: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:6983: $? = 0
configure:6983: test -s conftest.o
configure:6983: $? = 0
configure:6984: result: yes
configure:6996: checking for ino_t
configure:7041: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:7041: $? = 0
configure:7041: test -s conftest.o
configure:7041: $? = 0
configure:7042: result: yes
configure:7054: checking for mode_t
configure:7099: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:7099: $? = 0
configure:7099: test -s conftest.o
configure:7099: $? = 0
configure:7100: result: yes
configure:7112: checking for uid_t in sys/types.h
configure:7132: result: yes
configure:7147: checking for size_t
configure:7192: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:7192: $? = 0
configure:7192: test -s conftest.o
configure:7192: $? = 0
configure:7193: result: yes
configure:7206: checking if long is 64 bits
configure:7240: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:7240: $? = 0
configure:7240: ./conftest
configure:7240: $? = 1
configure: program exited with status 1
configure: failed program was:
#line 7240 "configure"
#include "confdefs.h"
int main() { return sizeof(long) < 8; }
configure:7241: result: no
configure:7705: checking if off_t is 64 bit
configure:7705: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:7709: warning: return-type defaults to `int'
configure:7705: $? = 0
configure:7705: ./conftest
configure:7705: $? = 0
configure:7705: result: yes
configure:7705: checking if ino_t is 64 bit
configure:7705: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:7709: warning: return-type defaults to `int'
configure:7705: $? = 0
configure:7705: ./conftest
configure:7705: $? = 1
configure: program exited with status 1
configure: failed program was:
#line 7705 "configure"
#include "confdefs.h"
#include <sys/types.h>
main() { return sizeof(ino_t) < 8; }
configure:7705: result: no
configure:7705: checking if compiler has a 64 bit type
configure:7705: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:7712: warning: return-type defaults to `int'
configure: In function `main':
configure:7714: warning: unused variable `bar'
configure:7705: $? = 0
configure:7705: ./conftest
configure:7705: $? = 0
configure:7705: result: long long
configure:7705: checking for a corresponding unsigned 64 bit type
configure:7705: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:7712: warning: return-type defaults to `int'
configure: In function `main':
configure:7714: warning: unused variable `bar'
configure:7705: $? = 0
configure:7705: ./conftest
configure:7705: $? = 0
configure:7705: result: unsigned long long
configure:7707: checking for sigset_t
configure:7750: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:7762: warning: unused variable `tempsigset'
configure:7750: $? = 0
configure:7750: test -s conftest.o
configure:7750: $? = 0
configure:7751: result: yes
configure:7760: checking for struct timezone
configure:7807: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:7822: warning: unused variable `testvar'
configure:7807: $? = 0
configure:7807: test -s conftest.o
configure:7807: $? = 0
configure:7808: result: yes
configure:7818: checking for struct utmp
configure:7868: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:7886: warning: unused variable `testvar'
configure:7868: $? = 0
configure:7868: test -s conftest.o
configure:7868: $? = 0
configure:7869: result: yes
configure:7878: checking for struct utmpx
configure:7928: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:7946: storage size of `testvar' isn't known
configure:7946: warning: unused variable `testvar'
configure:7928: $? = 1
configure: failed program was:
#line 7928 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_UTMPX_H
# include <utmpx.h>
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
struct utmpx testvar;
;
return 0;
}
configure:7929: result: no
configure:7939: checking for ut_host in struct utmp
configure:7989: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8007: warning: statement with no effect
configure:7989: $? = 0
configure:7989: test -s conftest.o
configure:7989: $? = 0
configure:7990: result: yes
configure:7999: checking for ut_host in struct utmpx
configure:8049: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8067: storage size of `testvar' isn't known
configure:8067: warning: unused variable `testvar'
configure:8049: $? = 1
configure: failed program was:
#line 8049 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_UTMPX_H
# include <utmpx.h>
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
struct utmpx testvar; testvar.ut_host;
;
return 0;
}
configure:8050: result: no
configure:8059: checking for ut_xtime in struct utmpx
configure:8109: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8127: storage size of `testvar' isn't known
configure:8127: warning: unused variable `testvar'
configure:8109: $? = 1
configure: failed program was:
#line 8109 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_UTMPX_H
# include <utmpx.h>
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
struct utmpx testvar; testvar.ut_xtime;
;
return 0;
}
configure:8110: result: no
configure:8119: checking for ut_tv in struct utmpx
configure:8169: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8187: storage size of `testvar' isn't known
configure:8187: warning: unused variable `testvar'
configure:8169: $? = 1
configure: failed program was:
#line 8169 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_UTMPX_H
# include <utmpx.h>
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
struct utmpx testvar; testvar.ut_tv;
;
return 0;
}
configure:8170: result: no
configure:8180: checking for d_ino in struct dirent
configure:8230: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8248: warning: statement with no effect
configure:8230: $? = 0
configure:8230: test -s conftest.o
configure:8230: $? = 0
configure:8231: result: yes
configure:8240: checking for d_stat in struct dirent
configure:8290: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8308: structure has no member named `d_stat'
configure:8290: $? = 1
configure: failed program was:
#line 8290 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_DIRENT_H
# include <dirent.h>
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
struct dirent testvar; testvar.d_stat;
;
return 0;
}
configure:8291: result: no
configure:8300: checking for d_ino in struct direct
configure:8356: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8380: storage size of `testvar' isn't known
configure:8380: warning: unused variable `testvar'
configure:8356: $? = 1
configure: failed program was:
#line 8356 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_NDIR_H
# include <sys/ndir.h>
#endif
#ifdef HAVE_SYS_DIR_H
# include <sys/dir.h>
#endif
#ifdef HAVE_NDIR_H
# include <ndir.h>
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
struct direct testvar; testvar.d_ino;
;
return 0;
}
configure:8357: result: no
configure:8366: checking for d_stat in struct direct
configure:8422: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8446: storage size of `testvar' isn't known
configure:8446: warning: unused variable `testvar'
configure:8422: $? = 1
configure: failed program was:
#line 8422 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_NDIR_H
# include <sys/ndir.h>
#endif
#ifdef HAVE_SYS_DIR_H
# include <sys/dir.h>
#endif
#ifdef HAVE_NDIR_H
# include <ndir.h>
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
struct direct testvar; testvar.d_stat;
;
return 0;
}
configure:8423: result: no
configure:8433: checking for sin6_scope_id in struct sockaddr_in6
configure:8481: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:8497: warning: statement with no effect
configure:8481: $? = 0
configure:8481: test -s conftest.o
configure:8481: $? = 0
configure:8482: result: yes
configure:8492: checking if we need our own h_errno
configure:8534: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8534: $? = 0
configure:8534: test -s conftest
configure:8534: $? = 0
configure:8535: result: no
configure:8725: checking for strftime
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for difftime
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for gettimeofday
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for select
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for poll
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for readlink
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for faccessx
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/cc1Wii99.o: In function `main':
/tmp/cc1Wii99.o(.text+0x9): undefined reference to `faccessx'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char faccessx (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char faccessx ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_faccessx) || defined (__stub___faccessx)
choke me
#else
f = faccessx;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for fchdir
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for ftruncate
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for fstat
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for lstat
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for lchown
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for fseeko
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for ftello
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for mkfifo
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for _mktemp
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for mkstemp
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for waitpid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for wait3
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for sigaction
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for sigblock
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for sighold
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccpdHMsK.o: In function `main':
/tmp/ccpdHMsK.o(.text+0x9): undefined reference to `sighold'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char sighold (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char sighold ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_sighold) || defined (__stub___sighold)
choke me
#else
f = sighold;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for sigrelse
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccTJGaqo.o: In function `main':
/tmp/ccTJGaqo.o(.text+0x9): undefined reference to `sigrelse'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char sigrelse (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char sigrelse ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_sigrelse) || defined (__stub___sigrelse)
choke me
#else
f = sigrelse;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for sigsetmask
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for sigprocmask
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for killpg
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for setpgid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for setpgrp
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for tcsetpgrp
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for tcgetattr
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for nice
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for gethostname
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for gethostbyname2
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for getipnodebyname
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for inet_aton
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for inet_pton
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for inet_ntop
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for getlogin
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for getpwent
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for getpwnam
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for getpwuid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for getgrgid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for getgrnam
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for initgroups
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for nis_list
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccsYgESM.o: In function `main':
/tmp/ccsYgESM.o(.text+0x9): undefined reference to `nis_list'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char nis_list (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char nis_list ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_nis_list) || defined (__stub___nis_list)
choke me
#else
f = nis_list;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for setuid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for seteuid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for setreuid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for setresuid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for setsid
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for memcpy
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8735: warning: conflicting types for built-in function `memcpy'
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for memmove
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for strstr
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for strerror
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for cap_get_proc
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccb11OwO.o: In function `main':
/tmp/ccb11OwO.o(.text+0x9): undefined reference to `cap_get_proc'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char cap_get_proc (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char cap_get_proc ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_cap_get_proc) || defined (__stub___cap_get_proc)
choke me
#else
f = cap_get_proc;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for getrlimit
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for setlocale
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for uname
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for signgam
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for putenv
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for getenv
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for brk
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for sbrk
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for pathconf
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for sysconf
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for tgetent
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for tigetflag
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for tigetnum
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for tigetstr
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for setupterm
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for pcre_compile
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccPTpwFH.o: In function `main':
/tmp/ccPTpwFH.o(.text+0x9): undefined reference to `pcre_compile'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char pcre_compile (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char pcre_compile ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_pcre_compile) || defined (__stub___pcre_compile)
choke me
#else
f = pcre_compile;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for pcre_study
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/cchdQDsX.o: In function `main':
/tmp/cchdQDsX.o(.text+0x9): undefined reference to `pcre_study'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char pcre_study (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char pcre_study ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_pcre_study) || defined (__stub___pcre_study)
choke me
#else
f = pcre_study;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for pcre_exec
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/cczRVrKb.o: In function `main':
/tmp/cczRVrKb.o(.text+0x9): undefined reference to `pcre_exec'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char pcre_exec (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char pcre_exec ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_pcre_exec) || defined (__stub___pcre_exec)
choke me
#else
f = pcre_exec;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for nl_langinfo
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for erand48
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for open_memstream
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccFqZGpe.o: In function `main':
/tmp/ccFqZGpe.o(.text+0x9): undefined reference to `open_memstream'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char open_memstream (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char open_memstream ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_open_memstream) || defined (__stub___open_memstream)
choke me
#else
f = open_memstream;
#endif
;
return 0;
}
configure:8725: result: no
configure:8725: checking for wctomb
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8725: $? = 0
configure:8725: test -s conftest
configure:8725: $? = 0
configure:8725: result: yes
configure:8725: checking for iconv
configure:8725: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccp3mq0a.o: In function `main':
/tmp/ccp3mq0a.o(.text+0x9): undefined reference to `iconv'
configure:8725: $? = 1
configure: failed program was:
#line 8725 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char iconv (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char iconv ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_iconv) || defined (__stub___iconv)
choke me
#else
f = iconv;
#endif
;
return 0;
}
configure:8725: result: no
configure:8727: checking for working strcoll
configure:8776: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8776: $? = 0
configure:8776: ./conftest
configure:8776: $? = 0
configure:8777: result: yes
configure:8788: checking if tgetent accepts NULL
configure:8840: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8843: warning: return-type defaults to `int'
configure: In function `main':
configure:8845: warning: implicit declaration of function `tgetent'
configure:8850: warning: implicit declaration of function `tgetstr'
configure:8851: warning: implicit declaration of function `creat'
configure:8840: $? = 0
configure:8840: ./conftest
configure:8840: $? = 0
configure:8841: result: yes
configure:8849: checking if tgetent returns 0 on success
configure:8901: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:8904: warning: return-type defaults to `int'
configure: In function `main':
configure:8906: warning: implicit declaration of function `tgetent'
configure:8911: warning: implicit declaration of function `tgetstr'
configure:8912: warning: implicit declaration of function `creat'
configure:8901: $? = 0
configure:8901: ./conftest
configure:8901: $? = 0
configure:8902: result: no
configure:9029: checking for stdlib.h
configure:9029: result: yes
configure:9029: checking for unistd.h
configure:9029: result: yes
configure:9105: checking for getpagesize
configure:9105: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9105: $? = 0
configure:9105: test -s conftest
configure:9105: $? = 0
configure:9105: result: yes
configure:9107: checking for working mmap
configure:9266: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9266: $? = 0
configure:9266: ./conftest
configure:9266: $? = 0
configure:9267: result: yes
configure:9356: checking for munmap
configure:9356: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9356: $? = 0
configure:9356: test -s conftest
configure:9356: $? = 0
configure:9356: result: yes
configure:9356: checking for msync
configure:9356: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9356: $? = 0
configure:9356: test -s conftest
configure:9356: $? = 0
configure:9356: result: yes
configure:9420: checking whether getpgrp requires zero arguments
configure:9420: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:9464: too many arguments to function `getpgrp'
configure:9420: $? = 1
configure: failed program was:
#line 9420 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
getpgrp (0);
;
return 0;
}
configure:9420: result: yes
configure:9510: checking for dlopen
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9510: $? = 0
configure:9510: test -s conftest
configure:9510: $? = 0
configure:9510: result: yes
configure:9510: checking for dlerror
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9510: $? = 0
configure:9510: test -s conftest
configure:9510: $? = 0
configure:9510: result: yes
configure:9510: checking for dlsym
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9510: $? = 0
configure:9510: test -s conftest
configure:9510: $? = 0
configure:9510: result: yes
configure:9510: checking for dlclose
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9510: $? = 0
configure:9510: test -s conftest
configure:9510: $? = 0
configure:9510: result: yes
configure:9510: checking for load
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccYorOvk.o: In function `main':
/tmp/ccYorOvk.o(.text+0x9): undefined reference to `load'
configure:9510: $? = 1
configure: failed program was:
#line 9510 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char load (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char load ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_load) || defined (__stub___load)
choke me
#else
f = load;
#endif
;
return 0;
}
configure:9510: result: no
configure:9510: checking for loadquery
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/cc6YKifp.o: In function `main':
/tmp/cc6YKifp.o(.text+0x9): undefined reference to `loadquery'
configure:9510: $? = 1
configure: failed program was:
#line 9510 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char loadquery (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char loadquery ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_loadquery) || defined (__stub___loadquery)
choke me
#else
f = loadquery;
#endif
;
return 0;
}
configure:9510: result: no
configure:9510: checking for loadbind
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/cchkWUCe.o: In function `main':
/tmp/cchkWUCe.o(.text+0x9): undefined reference to `loadbind'
configure:9510: $? = 1
configure: failed program was:
#line 9510 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char loadbind (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char loadbind ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_loadbind) || defined (__stub___loadbind)
choke me
#else
f = loadbind;
#endif
;
return 0;
}
configure:9510: result: no
configure:9510: checking for unload
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccisyjpF.o: In function `main':
/tmp/ccisyjpF.o(.text+0x9): undefined reference to `unload'
configure:9510: $? = 1
configure: failed program was:
#line 9510 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char unload (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char unload ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_unload) || defined (__stub___unload)
choke me
#else
f = unload;
#endif
;
return 0;
}
configure:9510: result: no
configure:9510: checking for shl_load
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/cco9Cvo6.o: In function `main':
/tmp/cco9Cvo6.o(.text+0x9): undefined reference to `shl_load'
configure:9510: $? = 1
configure: failed program was:
#line 9510 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shl_load (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char shl_load ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_shl_load) || defined (__stub___shl_load)
choke me
#else
f = shl_load;
#endif
;
return 0;
}
configure:9510: result: no
configure:9510: checking for shl_unload
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccIi65mr.o: In function `main':
/tmp/ccIi65mr.o(.text+0x9): undefined reference to `shl_unload'
configure:9510: $? = 1
configure: failed program was:
#line 9510 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shl_unload (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char shl_unload ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_shl_unload) || defined (__stub___shl_unload)
choke me
#else
f = shl_unload;
#endif
;
return 0;
}
configure:9510: result: no
configure:9510: checking for shl_findsym
configure:9510: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
/tmp/ccPPRaUd.o: In function `main':
/tmp/ccPPRaUd.o(.text+0x9): undefined reference to `shl_findsym'
configure:9510: $? = 1
configure: failed program was:
#line 9510 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shl_findsym (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char shl_findsym ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_shl_findsym) || defined (__stub___shl_findsym)
choke me
#else
f = shl_findsym;
#endif
;
return 0;
}
configure:9510: result: no
configure:9513: checking what style of signals to use
configure:9544: result: POSIX_SIGNALS
configure:9547: checking where signal.h is located
configure:9586: result: /usr/include/sys/signal.h
configure:9590: checking where error names are located
configure:9618: result: /usr/include/errno.h
configure:9622: checking where the RLIMIT macros are located
configure:9639: result: /usr/include/sys/resource.h
configure:9647: checking if rlim_t is longer than a long
configure:9686: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9692: warning: return-type defaults to `int'
configure:9686: $? = 0
configure:9686: ./conftest
configure:9686: $? = 0
configure:9687: result: yes
configure:9802: checking if rlim_t is a quad
configure:9802: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:9809: warning: return-type defaults to `int'
configure:9802: $? = 0
configure:9802: ./conftest
configure:9802: $? = 0
configure:9802: result: yes
configure:9804: checking for rlim_t
configure:9851: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:9867: warning: unused variable `l'
configure:9851: $? = 0
configure:9851: test -s conftest.o
configure:9851: $? = 0
configure:9852: result: yes
configure:9863: checking for limit RLIMIT_AIO_MEM
configure:9910: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:9927: `RLIMIT_AIO_MEM' undeclared (first use in this function)
configure:9927: (Each undeclared identifier is reported only once
configure:9927: for each function it appears in.)
configure:9910: $? = 1
configure: failed program was:
#line 9910 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
RLIMIT_AIO_MEM
;
return 0;
}
configure:9911: result: no
configure:9920: checking for limit RLIMIT_AIO_OPS
configure:9967: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:9984: `RLIMIT_AIO_OPS' undeclared (first use in this function)
configure:9984: (Each undeclared identifier is reported only once
configure:9984: for each function it appears in.)
configure:9967: $? = 1
configure: failed program was:
#line 9967 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
RLIMIT_AIO_OPS
;
return 0;
}
configure:9968: result: no
configure:9977: checking for limit RLIMIT_AS
configure:10024: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10041: `RLIMIT_AS' undeclared (first use in this function)
configure:10041: (Each undeclared identifier is reported only once
configure:10041: for each function it appears in.)
configure:10024: $? = 1
configure: failed program was:
#line 10024 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
RLIMIT_AS
;
return 0;
}
configure:10025: result: no
configure:10034: checking for limit RLIMIT_LOCKS
configure:10081: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10098: `RLIMIT_LOCKS' undeclared (first use in this function)
configure:10098: (Each undeclared identifier is reported only once
configure:10098: for each function it appears in.)
configure:10081: $? = 1
configure: failed program was:
#line 10081 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
RLIMIT_LOCKS
;
return 0;
}
configure:10082: result: no
configure:10091: checking for limit RLIMIT_MEMLOCK
configure:10138: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10154: warning: statement with no effect
configure:10138: $? = 0
configure:10138: test -s conftest.o
configure:10138: $? = 0
configure:10139: result: yes
configure:10148: checking for limit RLIMIT_NPROC
configure:10195: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10211: warning: statement with no effect
configure:10195: $? = 0
configure:10195: test -s conftest.o
configure:10195: $? = 0
configure:10196: result: yes
configure:10205: checking for limit RLIMIT_NOFILE
configure:10252: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10268: warning: statement with no effect
configure:10252: $? = 0
configure:10252: test -s conftest.o
configure:10252: $? = 0
configure:10253: result: yes
configure:10262: checking for limit RLIMIT_PTHREAD
configure:10309: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10326: `RLIMIT_PTHREAD' undeclared (first use in this function)
configure:10326: (Each undeclared identifier is reported only once
configure:10326: for each function it appears in.)
configure:10309: $? = 1
configure: failed program was:
#line 10309 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
RLIMIT_PTHREAD
;
return 0;
}
configure:10310: result: no
configure:10319: checking for limit RLIMIT_RSS
configure:10366: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10382: warning: statement with no effect
configure:10366: $? = 0
configure:10366: test -s conftest.o
configure:10366: $? = 0
configure:10367: result: yes
configure:10376: checking for limit RLIMIT_SBSIZE
configure:10423: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10439: warning: statement with no effect
configure:10423: $? = 0
configure:10423: test -s conftest.o
configure:10423: $? = 0
configure:10424: result: yes
configure:10433: checking for limit RLIMIT_TCACHE
configure:10480: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10497: `RLIMIT_TCACHE' undeclared (first use in this function)
configure:10497: (Each undeclared identifier is reported only once
configure:10497: for each function it appears in.)
configure:10480: $? = 1
configure: failed program was:
#line 10480 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
RLIMIT_TCACHE
;
return 0;
}
configure:10481: result: no
configure:10490: checking for limit RLIMIT_VMEM
configure:10537: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:10554: `RLIMIT_VMEM' undeclared (first use in this function)
configure:10554: (Each undeclared identifier is reported only once
configure:10554: for each function it appears in.)
configure:10537: $? = 1
configure: failed program was:
#line 10537 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
RLIMIT_VMEM
;
return 0;
}
configure:10538: result: no
configure:10548: checking if RLIMIT_VMEM and RLIMIT_RSS are the same
configure:10595: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:10595: $? = 0
configure:10595: ./conftest
configure:10595: $? = 1
configure: program exited with status 1
configure: failed program was:
#line 10595 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
int main()
{
int ret = 1;
#if defined(HAVE_RLIMIT_VMEM) && defined(HAVE_RLIMIT_RSS)
if (RLIMIT_RSS == RLIMIT_VMEM) ret = 0;
#endif
return ret;
}
configure:10596: result: no
configure:10607: checking if RLIMIT_VMEM and RLIMIT_AS are the same
configure:10654: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:10654: $? = 0
configure:10654: ./conftest
configure:10654: $? = 1
configure: program exited with status 1
configure: failed program was:
#line 10654 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/resource.h>
int main()
{
int ret = 1;
#if defined(HAVE_RLIMIT_VMEM) && defined(HAVE_RLIMIT_AS)
if (RLIMIT_AS == RLIMIT_VMEM) ret = 0;
#endif
return ret;
}
configure:10655: result: no
configure:10684: checking for /dev/fd filesystem
configure:10693: result: /dev/fd
configure:10702: checking for RFS superroot directory
configure:10709: result: no
configure:10718: checking whether we should use the native getcwd
configure:10728: result: no
configure:10737: checking for NIS
configure:10745: result: no
configure:10754: checking for NIS+
configure:10763: result: no
configure:10772: checking for utmp file
configure:10784: result: /var/run/utmp
configure:10793: checking for wtmp file
configure:10805: result: /var/log/wtmp
configure:10814: checking for utmpx file
configure:10826: result: no
configure:10835: checking for wtmpx file
configure:10847: result: no
configure:10857: checking for brk() prototype in <unistd.h>
configure:10900: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:10902: conflicting types for `brk'
/usr/include/unistd.h:120: previous declaration of `brk'
configure: In function `main':
configure:10912: warning: unused variable `i'
configure:10900: $? = 1
configure: failed program was:
#line 10900 "configure"
#include "confdefs.h"
#include <unistd.h>
double brk();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
int i;
;
return 0;
}
configure:10901: result: yes
configure:10910: checking for sbrk() prototype in <unistd.h>
configure:10953: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:10955: conflicting types for `sbrk'
/usr/include/unistd.h:188: previous declaration of `sbrk'
configure: In function `main':
configure:10965: warning: unused variable `i'
configure:10953: $? = 1
configure: failed program was:
#line 10953 "configure"
#include "confdefs.h"
#include <unistd.h>
double sbrk();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
int i;
;
return 0;
}
configure:10954: result: yes
configure:11069: checking for ioctl prototype in <sys/ioctl.h>
configure:11069: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:11071: conflicting types for `ioctl'
/usr/include/sys/ioccom.h:70: previous declaration of `ioctl'
configure: In function `main':
configure:11081: warning: unused variable `i'
configure:11069: $? = 1
configure: failed program was:
#line 11069 "configure"
#include "confdefs.h"
#include <sys/ioctl.h>
int ioctl(double x);
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
int i;
;
return 0;
}
configure:11069: result: yes
configure:11069: checking for mknod prototype in <sys/stat.h>
configure:11069: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure: In function `main':
configure:11081: warning: unused variable `i'
configure:11069: $? = 0
configure:11069: test -s conftest.o
configure:11069: $? = 0
configure:11069: result: no
configure:11125: checking if named FIFOs work
configure:11186: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:11191: warning: return-type defaults to `int'
configure: In function `main':
configure:11195: warning: implicit declaration of function `unlink'
configure:11197: warning: implicit declaration of function `mkfifo'
configure:11202: warning: implicit declaration of function `fork'
configure:11207: warning: implicit declaration of function `read'
configure:11210: warning: implicit declaration of function `write'
configure:11186: $? = 0
configure:11186: ./conftest
configure:11186: $? = 0
configure:11187: result: yes
configure:11195: checking if echo in /bin/sh interprets escape sequences
configure:11206: result: no
configure:11215: checking if link() works
configure:11267: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:11272: warning: return-type defaults to `int'
configure:11267: $? = 0
configure:11267: ./conftest
configure:11267: $? = 0
configure:11268: result: yes
configure:11277: checking if kill(pid, 0) returns ESRCH correctly
configure:11321: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:11327: warning: return-type defaults to `int'
configure:11321: $? = 0
configure:11321: ./conftest
configure:11321: $? = 0
configure:11322: result: yes
configure:11400: checking if POSIX sigsuspend() works
configure:11400: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:11406: warning: no previous prototype for `handler'
configure:11408: warning: return-type defaults to `int'
configure: In function `main':
configure:11425: warning: control reaches end of non-void function
configure:11400: $? = 0
configure:11400: ./conftest
configure:11400: $? = 0
configure:11400: result: yes
configure:11454: checking if tcsetpgrp() actually works
configure:11454: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:11458: warning: return-type defaults to `int'
configure:11454: $? = 0
configure:11454: ./conftest
configure:11454: $? = 0
configure:11454: result: yes
configure:11512: checking if getpwnam() is faked
configure:11512: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:11515: warning: return-type defaults to `int'
configure: In function `main':
configure:11518: warning: implicit declaration of function `sprintf'
configure:11518: warning: implicit declaration of function `getpid'
configure:11518: warning: implicit declaration of function `rand'
configure:11512: $? = 0
configure:11512: ./conftest
configure:11512: $? = 0
configure:11512: result: no
configure:11517: checking base type of the third argument to accept
configure:11568: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
configure:11568: $? = 0
configure:11568: test -s conftest.o
configure:11568: $? = 0
configure:11569: result: socklen_t
configure:11916: checking if your system uses ELF binaries
configure:11916: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:11921: warning: return-type defaults to `int'
configure: In function `main':
configure:11928: warning: implicit declaration of function `read'
configure:11916: $? = 0
configure:11916: ./conftest
configure:11916: $? = 0
configure:11916: result: yes
configure:11916: checking if your dlsym() needs a leading underscore
configure:11916: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest.c 1>&5
conftest.c:1: warning: return-type defaults to `int'
conftest.c:1: warning: no previous prototype for `fred'
conftest.c: In function `fred':
conftest.c:1: warning: control reaches end of non-void function
configure:11916: $? = 0
configure:11916: gcc -shared -o conftest.so conftest.o 1>&5
configure:11916: $? = 0
configure:11916: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:11946: warning: return-type defaults to `int'
configure:11916: $? = 0
configure:11916: ./conftest
configure:11916: $? = 0
configure:11916: result: no
configure:12329: checking if environ is available in shared libraries
configure:12329: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest1.c 1>&5
conftest1.c:3: warning: no previous prototype for `zsh_getaddr1'
configure:12329: $? = 0
configure:12329: gcc -o conftest1.so -shared conftest1.o -ltinfo -lm -lc 1>&5
configure:12329: $? = 0
configure:12329: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest2.c 1>&5
conftest2.c:3: warning: no previous prototype for `zsh_getaddr2'
configure:12329: $? = 0
configure:12329: gcc -o conftest2.so -shared conftest2.o -ltinfo -lm -lc 1>&5
configure:12329: $? = 0
configure:12329: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:12359: warning: return-type defaults to `int'
configure:12329: $? = 0
configure:12329: ./conftest
configure:12329: $? = 0
configure:12329: result: yes
configure:12329: checking if tgetent is available in shared libraries
configure:12329: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest1.c 1>&5
conftest1.c:3: warning: no previous prototype for `zsh_getaddr1'
configure:12329: $? = 0
configure:12329: gcc -o conftest1.so -shared conftest1.o -ltinfo -lm -lc 1>&5
configure:12329: $? = 0
configure:12329: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest2.c 1>&5
conftest2.c:3: warning: no previous prototype for `zsh_getaddr2'
configure:12329: $? = 0
configure:12329: gcc -o conftest2.so -shared conftest2.o -ltinfo -lm -lc 1>&5
configure:12329: $? = 0
configure:12329: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:12359: warning: return-type defaults to `int'
configure:12329: $? = 0
configure:12329: ./conftest
configure:12329: $? = 0
configure:12329: result: yes
configure:12329: checking if tigetstr is available in shared libraries
configure:12329: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest1.c 1>&5
conftest1.c:3: warning: no previous prototype for `zsh_getaddr1'
configure:12329: $? = 0
configure:12329: gcc -o conftest1.so -shared conftest1.o -ltinfo -lm -lc 1>&5
configure:12329: $? = 0
configure:12329: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest2.c 1>&5
conftest2.c:3: warning: no previous prototype for `zsh_getaddr2'
configure:12329: $? = 0
configure:12329: gcc -o conftest2.so -shared conftest2.o -ltinfo -lm -lc 1>&5
configure:12329: $? = 0
configure:12329: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:12359: warning: return-type defaults to `int'
configure:12329: $? = 0
configure:12329: ./conftest
configure:12329: $? = 0
configure:12329: result: yes
configure:12897: checking if name clashes in shared objects are OK
configure:12897: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest1.c 1>&5
conftest1.c:1: warning: no previous prototype for `fred'
configure:12897: $? = 0
configure:12897: gcc -o conftest1.so -shared conftest1.o -ltinfo -lm -lc 1>&5
configure:12897: $? = 0
configure:12897: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest2.c 1>&5
conftest2.c:1: warning: no previous prototype for `fred'
configure:12897: $? = 0
configure:12897: gcc -o conftest2.so -shared conftest2.o -ltinfo -lm -lc 1>&5
configure:12897: $? = 0
configure:12897: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:12928: warning: return-type defaults to `int'
configure:12897: $? = 0
configure:12897: ./conftest
configure:12897: $? = 0
configure:12897: result: yes
configure:12897: checking for working RTLD_GLOBAL
configure:12897: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest1.c 1>&5
conftest1.c:1: warning: no previous prototype for `fred'
configure:12897: $? = 0
configure:12897: gcc -o conftest1.so -shared conftest1.o -ltinfo -lm -lc 1>&5
configure:12897: $? = 0
configure:12897: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest2.c 1>&5
conftest2.c:1: warning: no previous prototype for `barney'
configure:12897: $? = 0
configure:12897: gcc -o conftest2.so -shared conftest2.o -ltinfo -lm -lc 1>&5
configure:12897: $? = 0
configure:12897: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:12927: warning: return-type defaults to `int'
configure:12897: $? = 0
configure:12897: ./conftest
configure:12897: $? = 0
configure:12897: result: yes
configure:12897: checking whether symbols in the executable are available
configure:12897: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest1.c 1>&5
conftest1.c:1: warning: no previous prototype for `barney'
configure:12897: $? = 0
configure:12897: gcc -o conftest1.so -shared conftest1.o -ltinfo -lm -lc 1>&5
configure:12897: $? = 0
configure:12897: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -rdynamic conftest.c -ltinfo -lm -lc >&5
configure:12927: warning: return-type defaults to `int'
configure:12937: warning: no previous prototype for `fred'
configure:12897: $? = 0
configure:12897: ./conftest
configure:12897: $? = 0
configure:12897: result: yes
configure:12897: checking whether executables can be stripped
configure:12897: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest1.c 1>&5
conftest1.c:1: warning: no previous prototype for `barney'
configure:12897: $? = 0
configure:12897: gcc -o conftest1.so -shared conftest1.o -ltinfo -lm -lc 1>&5
configure:12897: $? = 0
configure:12897: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -rdynamic -s conftest.c -ltinfo -lm -lc >&5
configure:12927: warning: return-type defaults to `int'
configure:12937: warning: no previous prototype for `fred'
configure:12897: $? = 0
configure:12897: ./conftest
configure:12897: $? = 0
configure:12897: result: yes
configure:12897: checking whether libraries can be stripped
configure:12897: gcc -c -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC conftest1.c 1>&5
conftest1.c:1: warning: no previous prototype for `fred'
configure:12897: $? = 0
configure:12897: gcc -o conftest1.so -shared -s conftest1.o -ltinfo -lm -lc 1>&5
configure:12897: $? = 0
configure:12897: gcc -o conftest -Wall -Wmissing-prototypes -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -ltinfo -lm -lc >&5
configure:12927: warning: return-type defaults to `int'
configure:12897: $? = 0
configure:12897: ./conftest
configure:12897: $? = 0
configure:12897: result: yes
configure:13125: creating ./config.status
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by config.status, which was
generated by GNU Autoconf 2.53. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on whaite.com
config.status:804: creating Config/defs.mk
config.status:804: creating Makefile
config.status:804: creating Doc/Makefile
config.status:804: creating Etc/Makefile
config.status:804: creating Src/Makefile
config.status:804: creating Test/Makefile
config.status:1367: creating config.h
config.status:1426: executing default-1 commands
config.status:1426: executing default commands
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build='i386-pc-linux-gnulibc1'
ac_cv_build_alias='i386-pc-linux-gnulibc1'
ac_cv_c_compiler_gnu='yes'
ac_cv_c_const='yes'
ac_cv_env_CC_set=''
ac_cv_env_CC_value=''
ac_cv_env_CFLAGS_set=''
ac_cv_env_CFLAGS_value=''
ac_cv_env_CPPFLAGS_set=''
ac_cv_env_CPPFLAGS_value=''
ac_cv_env_CPP_set=''
ac_cv_env_CPP_value=''
ac_cv_env_LDFLAGS_set=''
ac_cv_env_LDFLAGS_value=''
ac_cv_env_build_alias_set=''
ac_cv_env_build_alias_value=''
ac_cv_env_host_alias_set=''
ac_cv_env_host_alias_value=''
ac_cv_env_target_alias_set=''
ac_cv_env_target_alias_value=''
ac_cv_exeext=''
ac_cv_func__mktemp='yes'
ac_cv_func_alloca_works='yes'
ac_cv_func_brk='yes'
ac_cv_func_cap_get_proc='no'
ac_cv_func_difftime='yes'
ac_cv_func_dlclose='yes'
ac_cv_func_dlerror='yes'
ac_cv_func_dlopen='yes'
ac_cv_func_dlsym='yes'
ac_cv_func_erand48='yes'
ac_cv_func_faccessx='no'
ac_cv_func_fchdir='yes'
ac_cv_func_fseeko='yes'
ac_cv_func_fstat='yes'
ac_cv_func_ftello='yes'
ac_cv_func_ftruncate='yes'
ac_cv_func_getenv='yes'
ac_cv_func_getgrgid='yes'
ac_cv_func_getgrnam='yes'
ac_cv_func_gethostbyname2='yes'
ac_cv_func_gethostname='yes'
ac_cv_func_getipnodebyname='yes'
ac_cv_func_getlogin='yes'
ac_cv_func_getpagesize='yes'
ac_cv_func_getpgrp_void='yes'
ac_cv_func_getpwent='yes'
ac_cv_func_getpwnam='yes'
ac_cv_func_getpwuid='yes'
ac_cv_func_getrlimit='yes'
ac_cv_func_gettimeofday='yes'
ac_cv_func_iconv='no'
ac_cv_func_inet_aton='yes'
ac_cv_func_inet_ntop='yes'
ac_cv_func_inet_pton='yes'
ac_cv_func_initgroups='yes'
ac_cv_func_killpg='yes'
ac_cv_func_lchown='yes'
ac_cv_func_load='no'
ac_cv_func_loadbind='no'
ac_cv_func_loadquery='no'
ac_cv_func_lstat='yes'
ac_cv_func_memcpy='yes'
ac_cv_func_memmove='yes'
ac_cv_func_mkfifo='yes'
ac_cv_func_mkstemp='yes'
ac_cv_func_mmap_fixed_mapped='yes'
ac_cv_func_msync='yes'
ac_cv_func_munmap='yes'
ac_cv_func_nice='yes'
ac_cv_func_nis_list='no'
ac_cv_func_nl_langinfo='yes'
ac_cv_func_open_memstream='no'
ac_cv_func_pathconf='yes'
ac_cv_func_pcre_compile='no'
ac_cv_func_pcre_exec='no'
ac_cv_func_pcre_study='no'
ac_cv_func_poll='yes'
ac_cv_func_putenv='yes'
ac_cv_func_readlink='yes'
ac_cv_func_sbrk='yes'
ac_cv_func_select='yes'
ac_cv_func_seteuid='yes'
ac_cv_func_setlocale='yes'
ac_cv_func_setpgid='yes'
ac_cv_func_setpgrp='yes'
ac_cv_func_setresuid='yes'
ac_cv_func_setreuid='yes'
ac_cv_func_setsid='yes'
ac_cv_func_setuid='yes'
ac_cv_func_setupterm='yes'
ac_cv_func_shl_findsym='no'
ac_cv_func_shl_load='no'
ac_cv_func_shl_unload='no'
ac_cv_func_sigaction='yes'
ac_cv_func_sigblock='yes'
ac_cv_func_sighold='no'
ac_cv_func_signgam='yes'
ac_cv_func_sigprocmask='yes'
ac_cv_func_sigrelse='no'
ac_cv_func_sigsetmask='yes'
ac_cv_func_strcoll_works='yes'
ac_cv_func_strerror='yes'
ac_cv_func_strftime='yes'
ac_cv_func_strstr='yes'
ac_cv_func_sysconf='yes'
ac_cv_func_tcgetattr='yes'
ac_cv_func_tcsetpgrp='yes'
ac_cv_func_tgetent='yes'
ac_cv_func_tigetflag='yes'
ac_cv_func_tigetnum='yes'
ac_cv_func_tigetstr='yes'
ac_cv_func_uname='yes'
ac_cv_func_unload='no'
ac_cv_func_wait3='yes'
ac_cv_func_waitpid='yes'
ac_cv_func_wctomb='yes'
ac_cv_header_dirent_dirent_h='yes'
ac_cv_header_dl_h='no'
ac_cv_header_dlfcn_h='yes'
ac_cv_header_errno_h='yes'
ac_cv_header_fcntl_h='yes'
ac_cv_header_grp_h='yes'
ac_cv_header_inttypes_h='yes'
ac_cv_header_langinfo_h='yes'
ac_cv_header_libc_h='no'
ac_cv_header_limits_h='yes'
ac_cv_header_locale_h='yes'
ac_cv_header_memory_h='yes'
ac_cv_header_netinet_in_systm_h='yes'
ac_cv_header_pcre_h='no'
ac_cv_header_poll_h='yes'
ac_cv_header_pwd_h='yes'
ac_cv_header_stat_broken='no'
ac_cv_header_stdc='yes'
ac_cv_header_stddef_h='yes'
ac_cv_header_stdint_h='no'
ac_cv_header_stdio_h='yes'
ac_cv_header_stdlib_h='yes'
ac_cv_header_string_h='yes'
ac_cv_header_strings_h='yes'
ac_cv_header_sys_capability_h='no'
ac_cv_header_sys_filio_h='yes'
ac_cv_header_sys_mman_h='yes'
ac_cv_header_sys_param_h='yes'
ac_cv_header_sys_ptem_h='no'
ac_cv_header_sys_resource_h='yes'
ac_cv_header_sys_select_h='yes'
ac_cv_header_sys_stat_h='yes'
ac_cv_header_sys_time_h='yes'
ac_cv_header_sys_times_h='yes'
ac_cv_header_sys_types_h='yes'
ac_cv_header_sys_utsname_h='yes'
ac_cv_header_sys_wait_h='yes'
ac_cv_header_termcap_h='yes'
ac_cv_header_termio_h='no'
ac_cv_header_termios_h='yes'
ac_cv_header_time='yes'
ac_cv_header_unistd_h='yes'
ac_cv_header_utmp_h='yes'
ac_cv_header_utmpx_h='no'
ac_cv_header_wchar_h='yes'
ac_cv_host='i386-pc-linux-gnulibc1'
ac_cv_host_alias='i386-pc-linux-gnulibc1'
ac_cv_lib_c_printf='yes'
ac_cv_lib_cap_cap_get_proc='no'
ac_cv_lib_dl_dlopen='no'
ac_cv_lib_iconv_iconv='no'
ac_cv_lib_m_pow='yes'
ac_cv_lib_socket_socket='no'
ac_cv_objext='o'
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AWK='awk'
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_LN='ln'
ac_cv_prog_YODL='yodl'
ac_cv_prog_ac_ct_CC='gcc'
ac_cv_prog_cc_g='yes'
ac_cv_prog_cc_stdc=''
ac_cv_prog_gcc_traditional='no'
ac_cv_prog_make_make_set='yes'
ac_cv_search_opendir='none required'
ac_cv_search_pcre_compile='no'
ac_cv_search_tgetent='-ltinfo'
ac_cv_search_yp_all='none required'
ac_cv_type_ino_t='yes'
ac_cv_type_mode_t='yes'
ac_cv_type_off_t='yes'
ac_cv_type_pid_t='yes'
ac_cv_type_signal='void'
ac_cv_type_size_t='yes'
ac_cv_type_uid_t='yes'
ac_cv_working_alloca_h='no'
fp_cv_prog_cc_stdc=''
zsh_cv_64_bit_type='long long'
zsh_cv_64_bit_utype='unsigned long long'
zsh_cv_c_broken_signed_to_unsigned_casting='no'
zsh_cv_c_have_union_init='yes'
zsh_cv_c_variable_length_arrays='no'
zsh_cv_cs_path='/bin:/usr/bin'
zsh_cv_decl_h_errno_use_local='no'
zsh_cv_decl_ospeed_include_defines='yes'
zsh_cv_func_dlsym_needs_underscore='no'
zsh_cv_func_tgetent_accepts_null='yes'
zsh_cv_func_tgetent_zero_success='no'
zsh_cv_have_RLIMIT_AIO_MEM='no'
zsh_cv_have_RLIMIT_AIO_OPS='no'
zsh_cv_have_RLIMIT_AS='no'
zsh_cv_have_RLIMIT_LOCKS='no'
zsh_cv_have_RLIMIT_MEMLOCK='yes'
zsh_cv_have_RLIMIT_NOFILE='yes'
zsh_cv_have_RLIMIT_NPROC='yes'
zsh_cv_have_RLIMIT_PTHREAD='no'
zsh_cv_have_RLIMIT_RSS='yes'
zsh_cv_have_RLIMIT_SBSIZE='yes'
zsh_cv_have_RLIMIT_TCACHE='no'
zsh_cv_have_RLIMIT_VMEM='no'
zsh_cv_header_sys_ioctl_h_ioctl_proto='yes'
zsh_cv_header_sys_stat_h_mknod_proto='no'
zsh_cv_header_termios_h_tiocgwinsz='yes'
zsh_cv_header_time_h_select_h_conflicts='no'
zsh_cv_header_unistd_h_brk_proto='yes'
zsh_cv_header_unistd_h_sbrk_proto='yes'
zsh_cv_ino_t_is_64_bit='no'
zsh_cv_long_is_64_bit='no'
zsh_cv_off_t_is_64_bit='yes'
zsh_cv_path_errno_h='/usr/include/errno.h'
zsh_cv_path_rlimit_h='/usr/include/sys/resource.h'
zsh_cv_path_signal_h='/usr/include/sys/signal.h'
zsh_cv_path_utmp='/var/run/utmp'
zsh_cv_path_utmpx='no'
zsh_cv_path_wtmp='/var/log/wtmp'
zsh_cv_path_wtmpx='no'
zsh_cv_prog_sh_echo_escape='no'
zsh_cv_rlim_t_is_longer='yes'
zsh_cv_rlim_t_is_quad_t='yes'
zsh_cv_rlimit_vmem_is_as='no'
zsh_cv_rlimit_vmem_is_rss='no'
zsh_cv_shared_environ='yes'
zsh_cv_shared_tgetent='yes'
zsh_cv_shared_tigetstr='yes'
zsh_cv_struct_member_struct_direct_d_ino='no'
zsh_cv_struct_member_struct_direct_d_stat='no'
zsh_cv_struct_member_struct_dirent_d_ino='yes'
zsh_cv_struct_member_struct_dirent_d_stat='no'
zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id='yes'
zsh_cv_struct_member_struct_utmp_ut_host='yes'
zsh_cv_struct_member_struct_utmpx_ut_host='no'
zsh_cv_struct_member_struct_utmpx_ut_tv='no'
zsh_cv_struct_member_struct_utmpx_ut_xtime='no'
zsh_cv_sys_dynamic_clash_ok='yes'
zsh_cv_sys_dynamic_execsyms='yes'
zsh_cv_sys_dynamic_rtld_global='yes'
zsh_cv_sys_dynamic_strip_exe='yes'
zsh_cv_sys_dynamic_strip_lib='yes'
zsh_cv_sys_elf='yes'
zsh_cv_sys_fifo='yes'
zsh_cv_sys_getpwnam_faked='no'
zsh_cv_sys_killesrch='yes'
zsh_cv_sys_link='yes'
zsh_cv_sys_nis='no'
zsh_cv_sys_nis_plus='no'
zsh_cv_sys_path_dev_fd='/dev/fd'
zsh_cv_sys_posix_termios='yes'
zsh_cv_sys_sigsuspend='yes'
zsh_cv_sys_superroot='no'
zsh_cv_sys_tcsetpgrp='yes'
zsh_cv_type_exists_struct_timezone='yes'
zsh_cv_type_exists_struct_utmp='yes'
zsh_cv_type_exists_struct_utmpx='no'
zsh_cv_type_rlim_t='yes'
zsh_cv_type_sigset_t='yes'
zsh_cv_type_socklen_t='socklen_t'
zsh_cv_use_getcwd='no'
## ----------- ##
## confdefs.h. ##
## ----------- ##
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define MACHTYPE "i386"
#define VENDOR "pc"
#define OSTYPE "linux-gnulibc1"
#define GLOBAL_ZSHENV "/etc/zshenv"
#define GLOBAL_ZSHRC "/etc/zshrc"
#define GLOBAL_ZPROFILE "/etc/zprofile"
#define GLOBAL_ZLOGIN "/etc/zlogin"
#define GLOBAL_ZLOGOUT "/etc/zlogout"
#define RESTRICTED_R 1
#define CONFIG_LOCALE 1
#define PROTOTYPES 1
#define HAVE_ALLOCA 1
#define HAVE_UNION_INIT 1
#define HAVE_DIRENT_H 1
#define STDC_HEADERS 1
#define TIME_WITH_SYS_TIME 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_UNISTD_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TIMES_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_TERMCAP_H 1
#define HAVE_TERMIOS_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_SYS_FILIO_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_LIMITS_H 1
#define HAVE_FCNTL_H 1
#define HAVE_SYS_UTSNAME_H 1
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_LOCALE_H 1
#define HAVE_ERRNO_H 1
#define HAVE_STDIO_H 1
#define HAVE_STDLIB_H 1
#define HAVE_UNISTD_H 1
#define HAVE_UTMP_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_PWD_H 1
#define HAVE_GRP_H 1
#define HAVE_POLL_H 1
#define HAVE_SYS_MMAN_H 1
#define HAVE_NETINET_IN_SYSTM_H 1
#define HAVE_LANGINFO_H 1
#define HAVE_WCHAR_H 1
#define HAVE_STDDEF_H 1
#define HAVE_DLFCN_H 1
#define HAVE_LIBM 1
#define HAVE_OSPEED 1
#define RETSIGTYPE void
#define OFF_T_IS_64_BIT 1
#define ZSH_64_BIT_TYPE long long
#define ZSH_64_BIT_UTYPE unsigned long long
#define HAVE_STRUCT_TIMEZONE 1
#define HAVE_STRUCT_UTMP 1
#define HAVE_STRUCT_UTMP_UT_HOST 1
#define HAVE_STRUCT_DIRENT_D_INO 1
#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
#define HAVE_STRFTIME 1
#define HAVE_DIFFTIME 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_SELECT 1
#define HAVE_POLL 1
#define HAVE_READLINK 1
#define HAVE_FCHDIR 1
#define HAVE_FTRUNCATE 1
#define HAVE_FSTAT 1
#define HAVE_LSTAT 1
#define HAVE_LCHOWN 1
#define HAVE_FSEEKO 1
#define HAVE_FTELLO 1
#define HAVE_MKFIFO 1
#define HAVE__MKTEMP 1
#define HAVE_MKSTEMP 1
#define HAVE_WAITPID 1
#define HAVE_WAIT3 1
#define HAVE_SIGACTION 1
#define HAVE_SIGBLOCK 1
#define HAVE_SIGSETMASK 1
#define HAVE_SIGPROCMASK 1
#define HAVE_KILLPG 1
#define HAVE_SETPGID 1
#define HAVE_SETPGRP 1
#define HAVE_TCSETPGRP 1
#define HAVE_TCGETATTR 1
#define HAVE_NICE 1
#define HAVE_GETHOSTNAME 1
#define HAVE_GETHOSTBYNAME2 1
#define HAVE_GETIPNODEBYNAME 1
#define HAVE_INET_ATON 1
#define HAVE_INET_PTON 1
#define HAVE_INET_NTOP 1
#define HAVE_GETLOGIN 1
#define HAVE_GETPWENT 1
#define HAVE_GETPWNAM 1
#define HAVE_GETPWUID 1
#define HAVE_GETGRGID 1
#define HAVE_GETGRNAM 1
#define HAVE_INITGROUPS 1
#define HAVE_SETUID 1
#define HAVE_SETEUID 1
#define HAVE_SETREUID 1
#define HAVE_SETRESUID 1
#define HAVE_SETSID 1
#define HAVE_MEMCPY 1
#define HAVE_MEMMOVE 1
#define HAVE_STRSTR 1
#define HAVE_STRERROR 1
#define HAVE_GETRLIMIT 1
#define HAVE_SETLOCALE 1
#define HAVE_UNAME 1
#define HAVE_SIGNGAM 1
#define HAVE_PUTENV 1
#define HAVE_GETENV 1
#define HAVE_BRK 1
#define HAVE_SBRK 1
#define HAVE_PATHCONF 1
#define HAVE_SYSCONF 1
#define HAVE_TGETENT 1
#define HAVE_TIGETFLAG 1
#define HAVE_TIGETNUM 1
#define HAVE_TIGETSTR 1
#define HAVE_SETUPTERM 1
#define HAVE_NL_LANGINFO 1
#define HAVE_ERAND48 1
#define HAVE_WCTOMB 1
#define HAVE_STRCOLL 1
#define TGETENT_ACCEPTS_NULL 1
#define TGETENT_SUCCESS 1
#define HAVE_STDLIB_H 1
#define HAVE_UNISTD_H 1
#define HAVE_GETPAGESIZE 1
#define HAVE_MMAP 1
#define HAVE_MUNMAP 1
#define HAVE_MSYNC 1
#define GETPGRP_VOID 1
#define HAVE_DLOPEN 1
#define HAVE_DLERROR 1
#define HAVE_DLSYM 1
#define HAVE_DLCLOSE 1
#define POSIX_SIGNALS 1
#define POSIX_SIGNALS 1
#define RLIM_T_IS_QUAD_T 1
#define HAVE_RLIMIT_MEMLOCK 1
#define HAVE_RLIMIT_NPROC 1
#define HAVE_RLIMIT_NOFILE 1
#define HAVE_RLIMIT_RSS 1
#define HAVE_RLIMIT_SBSIZE 1
#define DEFAULT_PATH "/bin:/usr/bin"
#define PATH_DEV_FD "/dev/fd"
#define PATH_UTMP_FILE "/var/run/utmp"
#define PATH_WTMP_FILE "/var/log/wtmp"
#define HAVE_BRK_PROTO 1
#define HAVE_SBRK_PROTO 1
#define HAVE_IOCTL_PROTO 1
#define HAVE_FIFOS 1
#define SH_USE_BSD_ECHO 1
#define HAVE_LINK 1
#define SOCKLEN_T socklen_t
#define DYNAMIC_NAME_CLASH_OK 1
#define DYNAMIC 1
#define DL_EXT "so"
configure: exit 0
^ permalink raw reply [relevance 1%]
* Re: 4.0.8 stills thinks Linux hasn't /dev/ptmx
@ 2003-12-18 17:52 3% ` Peter Stephenson
2003-12-18 20:59 0% ` DervishD
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2003-12-18 17:52 UTC (permalink / raw)
To: Zsh Workers
DervishD wrote:
> I've downloaded Zsh 4.0.8 and in Src/Modules/zpty.c, /dev/ptmx is
> only used if one of __SVR4, sinix or __CYGWIN__ is defined.
This isn't something we'd fix on 4.0.8, anyway, which is now being
declared dead. (At least, if 4.0.8 compiles; I'm on holiday after
tomorrow, so it would be a good idea to tell me before.)
It's certainly a possibility for 4.1. It will required testing for
grantpt, unlockpt and ptsname, which seem to be present but undocumented
(anywhere that I can see), thought chances are they're basically
POSIX-compatible. So ideally it should be done by someone who knows
what they're doing.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 3%]
* Re: 4.0.8 stills thinks Linux hasn't /dev/ptmx
2003-12-18 17:52 3% ` Peter Stephenson
@ 2003-12-18 20:59 0% ` DervishD
0 siblings, 0 replies; 200+ results
From: DervishD @ 2003-12-18 20:59 UTC (permalink / raw)
To: Peter Stephenson; +Cc: Zsh Workers
Hi Peter :)
* Peter Stephenson <pws@csr.com> dixit:
> > I've downloaded Zsh 4.0.8 and in Src/Modules/zpty.c, /dev/ptmx is
> > only used if one of __SVR4, sinix or __CYGWIN__ is defined.
> This isn't something we'd fix on 4.0.8, anyway, which is now being
> declared dead. (At least, if 4.0.8 compiles; I'm on holiday after
> tomorrow, so it would be a good idea to tell me before.)
OK, don't worry because this is not urgent, at least I have the
old mechanism working on Linux (on any Linux, I suppose). This
definitely can wait.
I haven't build 4.0.8 yet, so I cannot tell if it builds, but
certainly this problem didn't prevent it from building in the past,
so no reason for failing exist now, neither.
> It's certainly a possibility for 4.1. It will required testing for
> grantpt, unlockpt and ptsname, which seem to be present but undocumented
> (anywhere that I can see), thought chances are they're basically
> POSIX-compatible. So ideally it should be done by someone who knows
> what they're doing.
I'm not able to write the autoconf recipes, sorry, and I'm not an
ptmx expert O:), but if I can lend a hand, just tell me.
Happy holidays :)
Raúl Núñez de Arenas Coronado
--
Linux Registered User 88736
http://www.pleyades.net & http://raul.pleyades.net/
^ permalink raw reply [relevance 0%]
* Thread developing on austin-group about LINES/COLUMNS
@ 2003-12-19 0:55 2% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2003-12-19 0:55 UTC (permalink / raw)
To: zsh-workers
I read it that this suggests that zsh is currently not POSIX-compliant
with respect to LINES/COLUMNS. The proposed change to the standard would
be closer to zsh's behavior, but would require those variables to lose
their auto-update behavior in the event that they are explicitly assigned,
which I do not believe zsh presently provides for.
---------- Forwarded message ----------
Date: Thu, 18 Dec 2003 16:34:15 -0800
From: Jason Zions <jasonzio@winse.microsoft.com>
To: Paul Eggert <eggert@twinsun.com>, David Korn <dgk@research.att.com>
Cc: austin-group-l@opengroup.org
Subject: RE: LINES and COLUMNS variables
Resent-Date: 19 Dec 2003 00:34:45 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
Bummer. I seem to recall this is pretty common (and useful) behavior.
-----Original Message-----
From: Paul Eggert [mailto:eggert@twinsun.com]
Sent: Thursday, December 18, 2003 4:17 PM
To: David Korn
Cc: austin-group-l@opengroup.org
Subject: Re: LINES and COLUMNS variables
At Thu, 18 Dec 2003 09:59:20 -0500 (EST), David Korn
<dgk@research.att.com> writes:
> Is a shell that changes the value of LINES and/or COLUMNS when the
> window size changes a conforming shell?
I'd say no.
<http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap08.html#
tag_08>
says "The implementation adds or changes environment variables named in
IEEE Std 1003.1-2001 only as specified in IEEE Std 1003.1-2001."
The standard doesn't say that the shell changes the value of LINES
and/or COLUMNS, so a conforming shell cannot change them.
---------- Forwarded message ----------
Date: Thu, 18 Dec 2003 16:45:08 -0800
From: Bruce Korb <bkorb@veritas.com>
To: Paul Eggert <eggert@twinsun.com>
Cc: David Korn <dgk@research.att.com>, austin-group-l@opengroup.org
Subject: Re: LINES and COLUMNS variables
Resent-Date: 19 Dec 2003 00:47:35 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
Paul Eggert wrote:
>
> At Thu, 18 Dec 2003 09:59:20 -0500 (EST), David Korn <dgk@research.att.com> writes:
>
> > Is a shell that changes the value of LINES and/or COLUMNS when
> > the window size changes a conforming shell?
>
> I'd say no.
> <http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap08.html#tag_08>
> says "The implementation adds or changes environment variables named
> in IEEE Std 1003.1-2001 only as specified in IEEE Std 1003.1-2001."
> The standard doesn't say that the shell changes the value of LINES
> and/or COLUMNS, so a conforming shell cannot change them.
Cool. Let's change the standard. The primary purpose of the standard
is to specify a workable set of requirements that conform to most current
implementations. The whole idea behind the LINES and COLUMNS is to make it
possible work with text screens of sizes that differ from 24X80.
Now, that said, it can be reasonably argued that if someone says,
``COLUMNS=132'' then the shell should not willy-nilly go changing it
automatically. There are already some variables that are in some sense
magical and they lose their magic when they are explicitly assigned to.
Treating these two as magical would make sense: a conforming implementation
ought to be able to set and alter them until somebody goes and makes
an explicit assignment. Making it necessary for users to know how to
configure functions to handle resizing automatically puts too much of
a burden on them. I hate it when vi thinks my screen size is different
from what it is. Dynamic LINES and COLUMNS is better for a human
usable interface perspective.
Regards, Bruce
^ permalink raw reply [relevance 2%]
* Re: Possible bug in zsh
[not found] <20040103230931.GA63684@quark.localdomain>
@ 2004-01-04 17:43 0% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-01-04 17:43 UTC (permalink / raw)
To: zsh-workers
Vincent Stemen wrote:
> -T trapsasync
>
> When waiting for a child, execute traps immediately. If this option
> is not set, traps are executed after the child exits, as specified in
> IEEE Std 1003.2 (``POSIX.2'') This nonstandard option is useful for
> putting guarding shells around children that block signals. The
> surrounding shell may kill the child or it may just return control to
> the tty and leave the child alone, like this:
>
> sh -T -c "trap 'exit 1' 2 ; some-blocking-program"
Does it mean that when the shell gets SIGINT while waiting for a
programme it normally doesn't execute the trap until the wait has finally
returned succesfully, but with this option it does? Isn't there a race
in any case?
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
Work: pws@csr.com
Web: http://www.pwstephenson.fsnet.co.uk
^ permalink raw reply [relevance 0%]
* PATCH: fix configure good and proper.
@ 2004-02-14 18:43 2% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-02-14 18:43 UTC (permalink / raw)
To: Zsh hackers list
I've spent my afternoon updating configure to fit better with the latest
features. I will commit the changes immediately --- it's only been
tried on Debian and Mandrake, so expect a certain amount of pain
elsewhere. However, the changes went a lot smoother than I expected.
(Plus Bluetooth means I can write this on the sofa. No, I don't want
your stinking 802.11 :-).) (I did try in a directory separate from the
source directory, however.)
The main change is for config.modules. Autoconf now allows files
generated by commands to be treated in the same way as files generated
by substitution, so config.modules is much less of an exception. The
file is still generated by building and running config.modules.sh; this
is now always run from config.status. However, that has been changed so
that the information gleaned from configure is built into it. Its only
job is to see if the user has set `auto=no'. otherwise it simply outputs
the string which was stored when configure was run. This is basically
what Oliver suggested.
Together with this patch, acconfig.h needs to be deleted.
I have not reapplied the changes to attempt to improve terminfo
configuration. That will need rewriting; also, we need to avoid a
problem with checking term.h before we know it compiles.
I have also not looked at an ordering problem with sys/ptem.h which will
need investigating; it doesn't exist here. There is probably a
prerequisite header.
--- /pwshome/zsh/sourceforge/zsh/Config/config.mk Sun May 20 23:24:30 2001
+++ Config/config.mk Sat Feb 14 18:03:38 2004
@@ -35,8 +35,8 @@
Makefile: Makefile.in $(dir_top)/config.status $(CONFIG_INCS)
cd $(dir_top) && \
- CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+ $(SHELL) ./config.status `echo $(subdir)/$@ | sed 's%^./%%'`
$(dir_top)/Config/defs.mk: $(sdir_top)/Config/defs.mk.in $(dir_top)/config.status
cd $(dir_top) && \
- CONFIG_FILES=Config/defs.mk CONFIG_HEADERS= $(SHELL) ./config.status
+ $(SHELL) ./config.status Config/defs.mk
--- /pwshome/zsh/sourceforge/zsh/Makefile.in Sat Jan 17 17:41:35 2004
+++ Makefile.in Sat Feb 14 18:04:20 2004
@@ -117,7 +117,7 @@
@CLEAN_MK@
distclean-here:
- rm -f Makefile config.h config.status config.log config.cache config.modules stamp-h Config/defs.mk
+ rm -f Makefile config.h config.status config.log config.cache config.modules config.modules.sh stamp-h Config/defs.mk
realclean-here:
cd $(sdir) && rm -f config.h.in stamp-h.in configure
@@ -134,13 +134,11 @@
$(sdir)/configure: $(sdir)/aclocal.m4 $(sdir)/aczsh.m4 $(sdir)/configure.ac
cd $(sdir) && autoconf
-config.h: stamp-h
-stamp-h: $(sdir)/config.h.in config.status
- cd $(dir_top) && \
- CONFIG_FILES= CONFIG_HEADERS=$(subdir)/config.h $(SHELL) ./config.status
+config.h config.modules: $(sdir)/config.h.in config.status
+ cd $(dir_top) && $(SHELL) ./config.status $@
$(sdir)/config.h.in: $(sdir)/stamp-h.in
-$(sdir)/stamp-h.in: $(sdir)/configure.ac $(sdir)/acconfig.h \
+$(sdir)/stamp-h.in: $(sdir)/configure.ac \
$(sdir)/aclocal.m4 $(sdir)/aczsh.m4
cd $(sdir) && autoheader
echo > $(sdir)/stamp-h.in
--- /pwshome/zsh/sourceforge/zsh/Src/Modules/system.mdd Sat Aug 30 18:56:18 2003
+++ Src/Modules/system.mdd Sat Feb 14 18:14:23 2004
@@ -23,5 +23,9 @@
errcount.h: errnames.c
grep 'define.*ERRCOUNT' errnames.c > $@
+
+clean-here: clean.system
+clean.system:
+ rm -f errcount.h errnames.c
Make
--- /pwshome/zsh/sourceforge/zsh/Src/mkmakemod.sh Sat Jun 9 01:04:26 2001
+++ Src/mkmakemod.sh Sat Feb 14 16:25:30 2004
@@ -466,21 +466,11 @@
fi
if $second_stage ; then
- if grep 'Hack for autoconf-2.13' ./config.status > /dev/null 2>&1 ; then
- bang=\!
- else
- bang=
- fi
-
trap "rm -f $the_subdir/${the_makefile}" 1 2 15
- # The standard config.status requires the pathname for the .in file to
- # be relative to the top of the source tree. As we have it in the build
- # tree, this is a problem. zsh's configure script edits config.status,
- # adding the feature that an input filename starting with "!" has the
- # "!" removed and is not mangled further.
- CONFIG_FILES=$the_subdir/${the_makefile}:$bang$the_subdir/${the_makefile}.in CONFIG_HEADERS= ${CONFIG_SHELL-/bin/sh} ./config.status
-
+ ${CONFIG_SHELL-/bin/sh} ./config.status \
+ --file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in ||
+ return 1
fi
exit 0
--- /pwshome/zsh/sourceforge/zsh/aczsh.m4 Sat Apr 5 19:17:37 2003
+++ aczsh.m4 Sat Feb 14 17:54:58 2004
@@ -594,8 +594,11 @@
zsh_cv_path_$1=no
done
])
+AH_TEMPLATE([PATH_]translit($1, [a-z], [A-Z])[_FILE],
+[Define to be location of ]$1[ file.])
if test $zsh_cv_path_$1 != no; then
- AC_DEFINE_UNQUOTED(PATH_[]translit($1, [a-z], [A-Z])[]_FILE, "$zsh_cv_path_$1")
+ AC_DEFINE_UNQUOTED([PATH_]translit($1, [a-z], [A-Z])[_FILE],
+ "$zsh_cv_path_$1")
fi
])
@@ -610,8 +613,10 @@
[zsh_cv_type_exists_[]translit($2, [ ], [_])=yes],
[zsh_cv_type_exists_[]translit($2, [ ], [_])=no])
])
+AH_TEMPLATE([HAVE_]translit($2, [ a-z], [_A-Z]),
+[Define to 1 if ]$2[ is defined by a system header])
if test $zsh_cv_type_exists_[]translit($2, [ ], [_]) = yes; then
- AC_DEFINE(HAVE_[]translit($2, [ a-z], [_A-Z]))
+ AC_DEFINE([HAVE_]translit($2, [ a-z], [_A-Z]))
fi
])
@@ -627,8 +632,10 @@
[zsh_cv_struct_member_[]translit($2, [ ], [_])_$3=yes],
[zsh_cv_struct_member_[]translit($2, [ ], [_])_$3=no])
])
+AH_TEMPLATE([HAVE_]translit($2_$3, [ a-z], [_A-Z]),
+[Define if your system's ]$2[ has a member named ]$3[.])
if test $zsh_cv_struct_member_[]translit($2, [ ], [_])_$3 = yes; then
- AC_DEFINE(HAVE_[]translit($2_$3, [ a-z], [_A-Z]))
+ AC_DEFINE([HAVE_]translit($2_$3, [ a-z], [_A-Z]))
fi
])
@@ -707,12 +714,15 @@
zsh_cv_type_socklen_t=int
fi]
)
- AC_DEFINE_UNQUOTED([SOCKLEN_T], [$zsh_cv_type_socklen_t])]
+ AC_DEFINE_UNQUOTED([SOCKLEN_T], [$zsh_cv_type_socklen_t],
+ [Define to the base type of the third argument of accept])]
)
dnl Check for limit $1 e.g. RLIMIT_RSS.
AC_DEFUN(zsh_LIMIT_PRESENT,
-[AC_CACHE_CHECK([for limit $1],
+[AH_TEMPLATE([HAVE_]$1,
+[Define to 1 if ]$1[ is present (whether or not as a macro).])
+AC_CACHE_CHECK([for limit $1],
zsh_cv_have_$1,
[AC_TRY_COMPILE([
#include <sys/types.h>
--- /pwshome/zsh/sourceforge/zsh/configure.ac Sat Jan 17 17:41:40 2004
+++ configure.ac Sat Feb 14 17:56:55 2004
@@ -39,9 +39,12 @@
dnl Find out machine type, vendor, and operating system
dnl What type of host is this?
AC_CANONICAL_HOST
-AC_DEFINE_UNQUOTED(MACHTYPE, "$host_cpu")
-AC_DEFINE_UNQUOTED(VENDOR, "$host_vendor")
-AC_DEFINE_UNQUOTED(OSTYPE, "$host_os")
+AC_DEFINE_UNQUOTED(MACHTYPE, "$host_cpu",
+[Define to be the machine type (microprocessor class or machine model).])
+AC_DEFINE_UNQUOTED(VENDOR, "$host_vendor",
+[Define to be a string corresponding the vendor of the machine.])
+AC_DEFINE_UNQUOTED(OSTYPE, "$host_os",
+[Define to be the name of the operating system.])
dnl -----------------------------
dnl CHECKING COMMAND LINE OPTIONS
@@ -54,6 +57,8 @@
dnl Do you want to debug zsh?
ifdef([zsh-debug],[undefine([zsh-debug])])dnl
+AH_TEMPLATE([DEBUG],
+[Define to 1 if you want to debug zsh.])
AC_ARG_ENABLE(zsh-debug,
[ --enable-zsh-debug compile with debug code and debugger symbols],
[if test x$enableval = xyes; then
@@ -62,6 +67,8 @@
dnl Do you want zsh memory allocation routines.
ifdef([zsh-mem],[undefine([zsh-mem])])dnl
+AH_TEMPLATE([ZSH_MEM],
+[Define to 1 if you want to use zsh's own memory allocation routines])
AC_ARG_ENABLE(zsh-mem,
[ --enable-zsh-mem compile with zsh memory allocation routines],
[if test x$enableval = xyes; then
@@ -70,6 +77,8 @@
dnl Do you want to debug zsh memory allocation routines.
ifdef([zsh-mem-debug],[undefine([zsh-mem-debug])])dnl
+AH_TEMPLATE([ZSH_MEM_DEBUG],
+[Define to 1 if you want to debug zsh memory allocation routines.])
AC_ARG_ENABLE(zsh-mem-debug,
[ --enable-zsh-mem-debug debug zsh memory allocation routines],
[if test x$enableval = xyes; then
@@ -77,6 +86,8 @@
fi])
dnl Do you want to print warnings when errors in memory allocation.
+AH_TEMPLATE([ZSH_MEM_WARNING],
+[Define to 1 if you want to turn on warnings of memory allocation errors])
ifdef([zsh-mem-warning],[undefine([zsh-mem-warning])])dnl
AC_ARG_ENABLE(zsh-mem-warning,
[ --enable-zsh-mem-warning print warnings for errors in memory allocation],
@@ -86,6 +97,8 @@
dnl Do you want to turn on error checking for free().
ifdef([zsh-secure-free],[undefine([zsh-secure-free])])dnl
+AH_TEMPLATE([ZSH_SECURE_FREE],
+[Define to 1 if you want to turn on memory checking for free().])
AC_ARG_ENABLE(zsh-secure-free,
[ --enable-zsh-secure-free turn on error checking for free()],
[if test x$enableval = xyes; then
@@ -95,6 +108,9 @@
dnl Do you want debugging information on internal hash tables.
dnl This turns on the `hashinfo' builtin command.
ifdef([zsh-hash-debug],[undefine([zsh-hash-debug])])dnl
+AH_TEMPLATE([ZSH_HASH_DEBUG],
+[Define to 1 if you want to get debugging information on internal
+ hash tables. This turns on the `hashinfo' builtin.])
AC_ARG_ENABLE(zsh-hash-debug,
[ --enable-zsh-hash-debug turn on debugging of internal hash tables],
[if test x$enableval = xyes; then
@@ -116,6 +132,9 @@
else
zshenv="$etcdir/zshenv"
fi])
+AH_TEMPLATE([GLOBAL_ZSHENV],
+[The global file to source absolutely first whenever zsh is run;
+ if undefined, don't source anything.])
if test "x$zshenv" != xno; then
AC_DEFINE_UNQUOTED(GLOBAL_ZSHENV, "$zshenv")
fi
@@ -129,6 +148,9 @@
else
zshrc="$etcdir/zshrc"
fi])
+AH_TEMPLATE([GLOBAL_ZSHRC],
+[The global file to source whenever zsh is run;
+ if undefined, don't source anything])
if test "x$zshrc" != xno; then
AC_DEFINE_UNQUOTED(GLOBAL_ZSHRC, "$zshrc")
fi
@@ -142,6 +164,9 @@
else
zprofile="$etcdir/zprofile"
fi])
+AH_TEMPLATE([GLOBAL_ZPROFILE],
+[The global file to source whenever zsh is run as a login shell,
+ before zshrc is read; if undefined, don't source anything.])
if test "x$zprofile" != xno; then
AC_DEFINE_UNQUOTED(GLOBAL_ZPROFILE, "$zprofile")
fi
@@ -155,6 +180,9 @@
else
zlogin="$etcdir/zlogin"
fi])
+AH_TEMPLATE([GLOBAL_ZLOGIN],
+[The global file to source whenever zsh is run as a login shell;
+ if undefined, don't source anything])
if test "x$zlogin" != xno; then
AC_DEFINE_UNQUOTED(GLOBAL_ZLOGIN, "$zlogin")
fi
@@ -168,6 +196,10 @@
else
zlogout="$etcdir/zlogout"
fi])
+AH_TEMPLATE([GLOBAL_ZLOGOUT],
+[The global file to source whenever zsh was run as a login shell.
+ This is sourced right before exiting. If undefined, don't source
+ anything.])
if test "x$zlogout" != xno; then
AC_DEFINE_UNQUOTED(GLOBAL_ZLOGOUT, "$zlogout")
fi
@@ -192,6 +224,10 @@
dnl Do you want to disable restricted on r* commands
ifdef([restricted-r],[undefine([restricted-r])])dnl
+AH_TEMPLATE([RESTRICTED_R],
+[Undefine this if you don't want to get a restricted shell
+ when zsh is exec'd with basename that starts with r.
+ By default this is defined.])
AC_ARG_ENABLE(restricted-r,
[ --disable-restricted-r turn off r* invocation for restricted shell],
[if test x$enableval = xyes; then
@@ -201,6 +237,8 @@
)
dnl Do you want to disable use of locale functions
+AH_TEMPLATE([CONFIG_LOCALE],
+[Undefine if you don't want local features. By default this is defined.])
AC_ARG_ENABLE([locale],
[ --disable-locale turn off locale features],
[if test x$enableval = xyes; then
@@ -250,6 +288,8 @@
dnl Do you want maildir support?
ifdef([maildir_support],[undefine([maildir_support])])dnl
+AH_TEMPLATE([MAILDIR_SUPPORT],
+[Define for Maildir support])
AC_ARG_ENABLE(maildir-support,
[ --enable-maildir-support enable maildir support in MAIL and MAILPATH],
[if test x$enableval = xyes; then
@@ -258,6 +298,8 @@
dnl Do you want to set a maximum function depth?
ifdef([max_function_depth],[undefine([max_function_depth])])dnl
+AH_TEMPLATE([MAX_FUNCTION_DEPTH],
+[Define for function depth limits])
AC_ARG_ENABLE(max-function-depth,
[ --enable-max-function-depth=MAX limit function depth to MAX],
[if test x$enableval = xyes; then
@@ -360,10 +402,6 @@
AC_PROG_GCC_TRADITIONAL dnl Do we need -traditional flag for gcc.
AC_C_CONST dnl Does compiler support `const'.
-AC_CYGWIN dnl Check for cygwin environment
-
-AC_EXEEXT dnl Check for executable extension, e.g. .exe
-
fp_PROG_CC_STDC
AC_MSG_CHECKING([whether to use prototypes])
if test ."$ansi2knr" = .yes || test ."$ansi2knr" = .no; then
@@ -376,6 +414,8 @@
ansi2knr=no
fi
fi
+AH_TEMPLATE([PROTOTYPES],
+[Define to 1 if ANSI function prototypes are usable.])
if test "$ansi2knr" = yes; then
AC_MSG_RESULT(${msg}no)
U=_
@@ -394,6 +434,8 @@
[AC_TRY_COMPILE([union{void *p;long l;}u={0};], [u.l=1;],
zsh_cv_c_have_union_init=yes,
zsh_cv_c_have_union_init=no)])
+AH_TEMPLATE([HAVE_UNION_INIT],
+[Define to 1 if the compiler can initialise a union.])
if test $zsh_cv_c_have_union_init = yes; then
AC_DEFINE(HAVE_UNION_INIT)
fi
@@ -405,6 +447,8 @@
zsh_cv_c_broken_signed_to_unsigned_casting=yes,
zsh_cv_c_broken_signed_to_unsigned_casting=no,
zsh_cv_c_broken_signed_to_unsigned_casting=no)])
+AH_TEMPLATE([BROKEN_SIGNED_TO_UNSIGNED_CASTING],
+[Define to 1 if compiler incorrectly cast signed to unsigned.])
if test $zsh_cv_c_broken_signed_to_unsigned_casting = yes; then
AC_DEFINE(BROKEN_SIGNED_TO_UNSIGNED_CASTING)
fi
@@ -415,6 +459,8 @@
[AC_TRY_COMPILE([int foo(), n;], [int i[foo()], a[n+1];],
zsh_cv_c_variable_length_arrays=yes,
zsh_cv_c_variable_length_arrays=no)])
+AH_TEMPLATE([HAVE_VARIABLE_LENGTH_ARRAYS],
+[Define to 1 if compiler supports variable-length arrays])
if test $zsh_cv_c_variable_length_arrays = yes; then
AC_DEFINE(HAVE_VARIABLE_LENGTH_ARRAYS)
fi
@@ -466,6 +512,8 @@
fi
dnl Some SCO systems cannot include both sys/time.h and sys/select.h
+AH_TEMPLATE([TIME_H_SELECT_H_CONFLICTS],
+[Define if sys/time.h and sys/select.h cannot be both included.])
if test $ac_cv_header_sys_time_h = yes && test $ac_cv_header_sys_select_h = yes; then
AC_CACHE_CHECK(for conflicts in sys/time.h and sys/select.h,
zsh_cv_header_time_h_select_h_conflicts,
@@ -498,6 +546,8 @@
zsh_cv_header_termios_h_tiocgwinsz=no
fi
+AH_TEMPLATE([GWINSZ_IN_SYS_IOCTL],
+[Define if your system defines TIOCGWINSZ in sys/ioctl.h.])
if test $zsh_cv_header_termios_h_tiocgwinsz = no; then
AC_CACHE_CHECK(TIOCGWINSZ in sys/ioctl.h,
zsh_cv_header_sys_ioctl_h_tiocgwinsz,
@@ -511,6 +561,8 @@
fi
fi
+AH_TEMPLATE([WINSIZE_IN_PTEM],
+[Define if your system defines `struct winsize' in sys/ptem.h.])
AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM))
dnl -------------------
@@ -543,6 +595,20 @@
*) termcap_curses_order="tinfo termcap curses ncurses" ;;
esac])dnl
+AH_TEMPLATE([HAVE_BOOLCODES],
+[Define if you have the termcap boolcodes symbol.])
+AH_TEMPLATE([HAVE_NUMCODES],
+[Define if you have the termcap numcodes symbol.])
+AH_TEMPLATE([HAVE_STRCODES],
+[Define if you have the termcap strcodes symbol.])
+AH_TEMPLATE([HAVE_BOOLNAMES],
+[Define if you have the terminfo boolnames symbol.])
+AH_TEMPLATE([HAVE_NUMNAMES],
+[Define if you have the terminfo numnames symbol.])
+AH_TEMPLATE([HAVE_STRNAMES],
+[Define if you have the terminfo strnames symbol.])
+AH_TEMPLATE([TERM_H_NEEDS_CURSES_H],
+[Define if term.h chokes without curses.h.])
AC_SEARCH_LIBS(tgetent, [$termcap_curses_order])
case "$LIBS" in
*curses*)
@@ -658,6 +724,10 @@
zsh_cv_decl_ospeed_must_define=no)])
fi
+AH_TEMPLATE([HAVE_OSPEED],
+[Define to 1 if your termcap library has the ospeed variable])
+AH_TEMPLATE([MUST_DEFINE_OSPEED],
+[Define to 1 if you have ospeed, but it is not defined in termcap.h])
if test $zsh_cv_decl_ospeed_include_defines = yes; then
AC_DEFINE(HAVE_OSPEED)
elif test $zsh_cv_decl_ospeed_must_define = yes; then
@@ -688,6 +758,25 @@
zsh_cv_long_is_64_bit=no,
zsh_cv_long_is_64_bit=no)])
+AH_TEMPLATE([ino_t],
+[Define to `unsigned long' if <sys/types.h> doesn't define.])
+AH_TEMPLATE([LONG_IS_64_BIT],
+[Definitions used when a long is less than eight byte, to try to
+ provide some support for eight byte operations.
+
+ Note that ZSH_64_BIT_TYPE, OFF_T_IS_64_BIT, INO_T_IS_64_BIT do *not* get
+ defined if long is already 64 bits, since in that case no special handling
+ is required.
+
+ Define to 1 if long is 64 bits])
+AH_TEMPLATE([ZSH_64_BIT_TYPE],
+[Define to a 64 bit integer type if there is one, but long is shorter.])
+AH_TEMPLATE([ZSH_64_BIT_UTYPE],
+[Define to an unsigned variant of ZSH_64_BIT_TYPE if that is defined.])
+AH_TEMPLATE([OFF_T_IS_64_BIT],
+[Define to 1 if off_t is 64 bit (for large file support)])
+AH_TEMPLATE([INO_T_IS_64_BIT],
+[Define to 1 if ino_t is 64 bit (for large file support).])
if test $zsh_cv_long_is_64_bit = yes; then
AC_DEFINE(LONG_IS_64_BIT)
else
@@ -765,6 +854,8 @@
[#include <sys/types.h>
#include <signal.h>], [sigset_t tempsigset;],
zsh_cv_type_sigset_t=yes, zsh_cv_type_sigset_t=no)])
+AH_TEMPLATE([sigset_t],
+[Define to `unsigned int' if <sys/types.h> or <signal.h> doesn't define])
if test $zsh_cv_type_sigset_t = no; then
AC_DEFINE(sigset_t, unsigned int)
fi
@@ -883,6 +974,8 @@
], struct sockaddr_in6, sin6_scope_id)
dnl Check for h_errno external variable
+AH_TEMPLATE([USE_LOCAL_H_ERRNO],
+[Define to 1 if h_errno is not defined by the system.])
AC_CACHE_CHECK(if we need our own h_errno,
zsh_cv_decl_h_errno_use_local,
[AC_TRY_LINK( ,[extern int h_errno; h_errno = 0;],
@@ -935,6 +1028,8 @@
dnl in tgetstr().
dnl Under Cygwin test program crashes but exit code is still 0. So,
dnl we test for a file that porgram should create
+AH_TEMPLATE([TGETENT_ACCEPTS_NULL],
+[Define to 1 if tgetent() accepts NULL as a buffer.])
AC_CACHE_CHECK(if tgetent accepts NULL,
zsh_cv_func_tgetent_accepts_null,
[AC_TRY_RUN([
@@ -986,6 +1081,8 @@
fi,
zsh_cv_func_tgetent_zero_success=no,
zsh_cv_func_tgetent_zero_success=no)])
+AH_TEMPLATE([TGETENT_SUCCESS],
+[Define to what tgetent() returns on success (0 on HP-UX X/Open curses).])
if test $zsh_cv_func_tgetent_zero_success = yes; then
AC_DEFINE(TGETENT_SUCCESS, 0)
else
@@ -1018,6 +1115,14 @@
dnl CHECK SIGNALS
dnl -------------
dnl What style of signal do you have (POSIX, BSD, or SYSV)?
+AH_TEMPLATE([POSIX_SIGNALS],
+[Define to 1 if you use POSIX style signal handling.])
+AH_TEMPLATE([BSD_SIGNALS],
+[Define to 1 if you use BSD style signal handling (and can block signals).])
+AH_TEMPLATE([SYSV_SIGNALS],
+[Define to 1 if you use SYS style signal handling (and can block signals).])
+AH_TEMPLATE([NO_SIGNAL_BLOCKING],
+[Define to 1 if you have no signal blocking at all (bummer).])
AC_MSG_CHECKING(what style of signals to use)
if test $ac_cv_func_sigaction = yes && test $ac_cv_func_sigprocmask = yes; then
signals_style=POSIX_SIGNALS
@@ -1151,6 +1256,14 @@
dnl ------------------
dnl rlimit type checks
dnl ------------------
+AH_TEMPLATE([RLIM_T_IS_QUAD_T],
+[Define to 1 if struct rlimit uses quad_t.])
+AH_TEMPLATE([RLIM_T_IS_LONG_LONG],
+[Define to 1 if struct rlimit uses long long])
+AH_TEMPLATE([RLIM_T_IS_UNSIGNED],
+[Define to 1 if struct rlimit uses unsigned.])
+AH_TEMPLATE([rlim_t],
+[Define to the type used in struct rlimit.])
DEFAULT_RLIM_T=long
AC_CACHE_CHECK(if rlim_t is longer than a long,
zsh_cv_rlim_t_is_longer,
@@ -1240,6 +1353,8 @@
zsh_LIMIT_PRESENT(RLIMIT_TCACHE)
zsh_LIMIT_PRESENT(RLIMIT_VMEM)
+AH_TEMPLATE([RLIMIT_VMEM_IS_RSS],
+[Define to 1 if RLIMIT_VMEM and RLIMIT_RSS both exist and are equal.])
AC_CACHE_CHECK(if RLIMIT_VMEM and RLIMIT_RSS are the same,
zsh_cv_rlimit_vmem_is_rss,
[AC_TRY_RUN([
@@ -1265,6 +1380,8 @@
fi
+AH_TEMPLATE([RLIMIT_VMEM_IS_AS],
+[Define to 1 if RLIMIT_VMEM and RLIMIT_AS both exist and are equal.])
AC_CACHE_CHECK(if RLIMIT_VMEM and RLIMIT_AS are the same,
zsh_cv_rlimit_vmem_is_as,
[AC_TRY_RUN([
@@ -1301,12 +1418,15 @@
else
zsh_cv_cs_path="/bin:/usr/bin"
fi])
-AC_DEFINE_UNQUOTED(DEFAULT_PATH, "$zsh_cv_cs_path")
+AC_DEFINE_UNQUOTED(DEFAULT_PATH, "$zsh_cv_cs_path",
+[The default path; used when running commands with command -p])
dnl ----------------------------
dnl CHECK FOR /dev/fd FILESYSTEM
dnl ----------------------------
+AH_TEMPLATE([PATH_DEV_FD],
+[Define to the path of the /dev/fd filesystem.])
AC_CACHE_CHECK(for /dev/fd filesystem, zsh_cv_sys_path_dev_fd,
[for zsh_cv_sys_path_dev_fd in /proc/self/fd /dev/fd no; do
test x`echo ok|cat $zsh_cv_sys_path_dev_fd/0 2>/dev/null` = xok && break
@@ -1320,6 +1440,8 @@
dnl ---------------------------------
AC_CACHE_CHECK(for RFS superroot directory, zsh_cv_sys_superroot,
[test -d /../.LOCALROOT && zsh_cv_sys_superroot=yes || zsh_cv_sys_superroot=no])
+AH_TEMPLATE([HAVE_SUPERROOT],
+[Define to 1 if you have RFS superroot directory.])
if test $zsh_cv_sys_superroot = yes; then
AC_DEFINE(HAVE_SUPERROOT)
fi
@@ -1331,6 +1453,8 @@
*QNX*) zsh_cv_use_getcwd=yes ;;
*) zsh_cv_use_getcwd=no ;;
esac])
+AH_TEMPLATE([USE_GETCWD],
+[Define to 1 if you need to use the native getcwd.])
if test $zsh_cv_use_getcwd = yes; then
AC_DEFINE(USE_GETCWD)
fi
@@ -1338,6 +1462,8 @@
dnl -------------
dnl CHECK FOR NIS
dnl -------------
+AH_TEMPLATE([HAVE_NIS],
+[Define to 1 if you have NIS.])
AC_CACHE_CHECK(for NIS, zsh_cv_sys_nis,
[test -f /usr/bin/ypcat && /usr/bin/ypcat passwd.byname > /dev/null 2>&1 && \
zsh_cv_sys_nis=yes || zsh_cv_sys_nis=no])
@@ -1348,6 +1474,8 @@
dnl -----------------
dnl CHECK FOR NISPLUS
dnl -----------------
+AH_TEMPLATE([HAVE_NIS_PLUS],
+[Define to 1 if you have NISPLUS.])
AC_CACHE_CHECK(for NIS+, zsh_cv_sys_nis_plus,
[test $ac_cv_func_nis_list = yes && test -f /usr/bin/nisls && \
/usr/bin/nisls > /dev/null 2>&1 && \
@@ -1372,6 +1500,8 @@
[AC_TRY_COMPILE([#include <unistd.h>
double brk();], [int i;],
zsh_cv_header_unistd_h_brk_proto=no, zsh_cv_header_unistd_h_brk_proto=yes)])
+AH_TEMPLATE([HAVE_BRK_PROTO],
+[Define to 1 if there is a prototype defined for brk() on your system.])
if test $zsh_cv_header_unistd_h_brk_proto = yes; then
AC_DEFINE(HAVE_BRK_PROTO)
fi
@@ -1381,6 +1511,8 @@
[AC_TRY_COMPILE([#include <unistd.h>
double sbrk();], [int i;],
zsh_cv_header_unistd_h_sbrk_proto=no, zsh_cv_header_unistd_h_sbrk_proto=yes)])
+AH_TEMPLATE([HAVE_SBRK_PROTO],
+[Define to 1 if there is a prototype defined for sbrk() on your system.])
if test $zsh_cv_header_unistd_h_sbrk_proto = yes; then
AC_DEFINE(HAVE_SBRK_PROTO)
fi
@@ -1389,6 +1521,10 @@
dnl ioctl and mknod prototypes for OSF
dnl ----------------------------------
+AH_TEMPLATE([HAVE_IOCTL_PROTO],
+[Define to 1 if there is a prototype defined for ioctl() on your system])
+AH_TEMPLATE([HAVE_MKNOD_PROTO],
+[Define to 1 if there is a prototype defined for mknod() on your system])
if test "$ac_cv_prog_cc_stdc" != no; then
AC_CACHE_CHECK(for ioctl prototype in <sys/ioctl.h>,
zsh_cv_header_sys_ioctl_h_ioctl_proto,
@@ -1413,6 +1549,8 @@
dnl -------------------
dnl select() defined in <sys/socket.h>, ie BeOS R4.51
dnl -------------------
+AH_TEMPLATE([SELECT_IN_SYS_SOCKET_H],
+[Define to 1 if select() is defined in <sys/socket.h>, ie BeOS R4.51])
if test $ac_cv_header_sys_select_h != yes; then
AC_CACHE_CHECK(for select() in <sys/socket.h>,
zsh_cv_header_socket_h_select_proto,
@@ -1460,6 +1598,8 @@
zsh_cv_sys_fifo=yes,
zsh_cv_sys_fifo=no,
zsh_cv_sys_fifo=yes)])
+AH_TEMPLATE([HAVE_FIFOS],
+[Define to 1 if system has working FIFOs.])
if test $zsh_cv_sys_fifo = yes; then
AC_DEFINE(HAVE_FIFOS)
fi
@@ -1473,6 +1613,8 @@
else
zsh_cv_prog_sh_echo_escape=yes
fi])
+AH_TEMPLATE([SH_USE_BSD_ECHO],
+[Define to 1 if /bin/sh does not interpret \ escape sequences.])
if test $zsh_cv_prog_sh_echo_escape = no; then
AC_DEFINE(SH_USE_BSD_ECHO)
fi
@@ -1505,6 +1647,8 @@
zsh_cv_sys_link=yes,
zsh_cv_sys_link=no,
zsh_cv_sys_link=yes)])
+AH_TEMPLATE([HAVE_LINK],
+[Define to 1 if system has working link().])
if test $zsh_cv_sys_link = yes; then
AC_DEFINE(HAVE_LINK)
fi
@@ -1529,6 +1673,8 @@
zsh_cv_sys_killesrch=yes,
zsh_cv_sys_killesrch=no,
zsh_cv_sys_killesrch=yes)])
+AH_TEMPLATE([BROKEN_KILL_ESRCH],
+[Define to 1 if kill(pid, 0) doesn't return ESRCH, ie BeOS R4.51.])
if test $zsh_cv_sys_killesrch = no; then
AC_DEFINE(BROKEN_KILL_ESRCH)
fi
@@ -1537,6 +1683,8 @@
dnl if POSIX, test for working sigsuspend().
dnl for instance, BeOS R4.51 is broken.
dnl -----------
+AH_TEMPLATE([BROKEN_POSIX_SIGSUSPEND],
+Define to 1 if sigsuspend() is broken, ie BeOS R4.51.])
if test $signals_style = POSIX_SIGNALS; then
AC_CACHE_CHECK(if POSIX sigsuspend() works,
zsh_cv_sys_sigsuspend,
@@ -1578,6 +1726,8 @@
dnl if found tcsetpgrp, test to see if it actually works
dnl for instance, BeOS R4.51 does not support it yet
dnl -----------
+AH_TEMPLATE([BROKEN_TCSETPGRP],
+[Define to 1 if tcsetpgrp() doesn't work, ie BeOS R4.51.])
if test -t 0 && test $ac_cv_func_tcsetpgrp = yes; then
AC_CACHE_CHECK(if tcsetpgrp() actually works,
zsh_cv_sys_tcsetpgrp,
@@ -1603,6 +1753,8 @@
dnl for instance, BeOS R4.51 is not multiuser yet, and fakes getpwnam()
dnl test by looking up two usernames that shouldn't succeed, and compare entry
dnl -----------
+AH_TEMPLATE([GETPWNAM_FAKED],
+[Define to 1 if getpwnam() is faked, ie BeOS R4.51.])
if test $ac_cv_func_getpwnam = yes; then
AC_CACHE_CHECK(if getpwnam() is faked,
zsh_cv_sys_getpwnam_faked,
@@ -1637,6 +1789,8 @@
dnl ---------------
dnl dynamic loading
dnl ---------------
+AH_TEMPLATE([HPUXDYNAMIC],
+[Define to 1 if you want to use dynamically loaded modules on HPUX 10.])
L=N
INSTLIB="install.bin-\$(L)"
UNINSTLIB="uninstall.bin-\$(L)"
@@ -1674,6 +1828,10 @@
test -n "$GCC" && LDARG=-Wl,
+AH_TEMPLATE([DLSYM_NEEDS_UNDERSCORE],
+[Define to 1 if an underscore has to be prepended to dlsym() argument.])
+AH_TEMPLATE([DYNAMIC_NAME_CLASH_OK],
+[Define to 1 if multiple modules defining the same symbol are OK.])
if test "x$aixdynamic" = xyes; then
DL_EXT="${DL_EXT=so}"
DLLD="${DLLD=$CC}"
@@ -1943,6 +2101,8 @@
RTLD_GLOBAL_OK=no
fi
+AH_TEMPLATE([DYNAMIC],
+[Define to 1 if you want to use dynamically loaded modules.])
if test "x$dynamic" = xyes; then
D=D
AC_DEFINE(DYNAMIC)dnl
@@ -1950,6 +2110,8 @@
D=N
fi
+AH_TEMPLATE([AIXDYNAMIC],
+[Define to 1 if you want to use dynamically loaded modules on AIX.])
if test "x$aixdynamic" = xyes; then
E=E
AC_DEFINE(AIXDYNAMIC)dnl
@@ -1971,7 +2133,8 @@
EXTRAZSHOBJS="$EXTRAZSHOBJS zsh.res.o"
fi
-AC_DEFINE_UNQUOTED(DL_EXT, "$DL_EXT")dnl
+AC_DEFINE_UNQUOTED(DL_EXT, "$DL_EXT",
+[The extension used for dynamically loaded modules.])dnl
AC_SUBST(D)dnl
AC_SUBST(DL_EXT)dnl
AC_SUBST(DLLD)dnl
@@ -2004,6 +2167,9 @@
userlist="`sed -e '/^#/d' -e '/auto=y/d' -e 's/ .*/ /' -e 's/^name=/ /' \
${CONFIG_MODULES}`"
mv ${CONFIG_MODULES} ${CONFIG_MODULES}.old
+else
+ # Save testing for existence each time.
+ echo > ${CONFIG_MODULES}.old
fi
(echo "# Edit this file to change the way modules are loaded."
echo "# The format is strict; do not break lines or add extra spaces."
@@ -2032,65 +2198,106 @@
echo "#"
echo "# You should not change the values for the pseudo-module zsh/main,"
echo "# which is the main shell (apart from the functions entry)."
+EOM
+dnl The autoconf macros are only available in configure, not
+dnl config.status, and only change when configure is rerun.
+dnl So we need to run the autoconf tests here and store the results.
+dnl We then generate config.modules, preserving any user-generated
+dnl information, from config.status.
for modfile in `cd ${srcdir}; echo */*.mdd */*/*.mdd`; do
name=
link=
load=
functions=
+ result=
. ${srcdir}/$modfile
if test x$name != x && test x"$link" != x; then
- case "$userlist" in
- *" $name "*) # not autogenerated, keep original
- grep "^name=$name " ${CONFIG_MODULES}.old
- ;;
- *) case "$link" in
- *\ *) eval "link=\`$link\`"
- ;;
- esac
- case "${load}" in
- y*) load=" load=yes"
+ case "$link" in
+ *\ *) eval "link=\`$link\`"
;;
- *) load=" load=no"
- ;;
- esac
- if test "x$functions" != x; then
- # N.B. no additional quotes
- f=" functions=$functions"
- else
- f=
- fi
- case "$link" in
- static) echo "name=$name modfile=$modfile link=static auto=yes${load}$f"
- ;;
- dynamic) if test $dynamic != no; then
- echo "name=$name modfile=$modfile link=dynamic\
+ esac
+ case "${load}" in
+ y*) load=" load=yes"
+ ;;
+ *) load=" load=no"
+ ;;
+ esac
+ if test "x$functions" != x; then
+ # N.B. no additional quotes
+ f=" functions=$functions"
+ else
+ f=
+ fi
+ case "$link" in
+ static) result="name=$name modfile=$modfile link=static auto=yes${load}$f"
+ ;;
+ dynamic) if test $dynamic != no; then
+ result="name=$name modfile=$modfile link=dynamic\
auto=yes${load}$f"
- else
- echo "name=$name modfile=$modfile link=no\
+ else
+ result="name=$name modfile=$modfile link=no\
auto=yes load=no$f"
- fi
- ;;
- either) if test $dynamic != no; then
- echo "name=$name modfile=$modfile link=dynamic\
+ fi
+ ;;
+ either) if test $dynamic != no; then
+ result="name=$name modfile=$modfile link=dynamic\
auto=yes${load}$f"
- else
- echo "name=$name modfile=$modfile link=static\
+ else
+ result="name=$name modfile=$modfile link=static\
auto=yes${load}$f"
- fi
- ;;
- *) echo "name=$name modfile=$modfile link=no auto=yes load=no$f"
- ;;
- esac
- ;;
+ fi
+ ;;
+ *) result="name=$name modfile=$modfile link=no auto=yes load=no$f"
+ ;;
esac
+dnl $result is the default output for config.modules. We generate
+dnl code to check if we should use this.
+cat <<EOM >> ${CONFIG_MODULES}.sh
+case "\$userlist" in
+ *" $name "*) grep "^name=$name " \${CONFIG_MODULES}.old;;
+ *) echo "$result";;
+esac
+EOM
fi
-done) >${CONFIG_MODULES}
+done
+cat <<\EOM >> ${CONFIG_MODULES}.sh
+) >${CONFIG_MODULES}
rm -f ${CONFIG_MODULES}.old
EOM
-AC_OUTPUT_COMMANDS(,[if test -z "\$CONFIG_FILES\$CONFIG_HEADERS"; then
-`cat ./${CONFIG_MODULES}.sh && rm -f ./${CONFIG_MODULES}.sh`
-fi])
-. ./${CONFIG_MODULES}.sh
+
+dnl AH_TOP replaces the code which used to appear at the top
+dnl of acconfig.h.
+AH_TOP([/***** begin user configuration section *****/
+
+/* Define this to be the location of your password file */
+#define PASSWD_FILE "/etc/passwd"
+
+/* Define this to be the name of your NIS/YP password *
+ * map (if applicable) */
+#define PASSWD_MAP "passwd.byname"
+
+/* Define to 1 if you want user names to be cached */
+#define CACHE_USERNAMES 1
+
+/* Define to 1 if system supports job control */
+#define JOB_CONTROL 1
+
+/* Define this if you use "suspended" instead of "stopped" */
+#define USE_SUSPENDED 1
+
+/* The default history buffer size in lines */
+#define DEFAULT_HISTSIZE 30
+
+/* The default editor for the fc builtin */
+#define DEFAULT_FCEDIT "vi"
+
+/* The default prefix for temporary files */
+#define DEFAULT_TMPPREFIX "/tmp/zsh"
+
+/***** end of user configuration section *****/
+/***** shouldn't have to change anything below here *****/
+
+])
CLEAN_MK="${srcdir}/Config/clean.mk"
CONFIG_MK="${srcdir}/Config/config.mk"
@@ -2103,9 +2310,11 @@
AC_SUBST_FILE(DEFS_MK)dnl
AC_SUBST_FILE(VERSION_MK)dnl
-AC_OUTPUT(Config/defs.mk Makefile Doc/Makefile Etc/Makefile Src/Makefile \
-Test/Makefile,
-[test -z "$CONFIG_HEADERS" || echo > stamp-h])
+AC_CONFIG_FILES(Config/defs.mk Makefile Doc/Makefile Etc/Makefile \
+Src/Makefile Test/Makefile)
+AC_CONFIG_COMMANDS([config.modules], [. config.modules.sh])
+
+AC_OUTPUT
eval "zshbin1=${bindir}"
eval "zshbin2=${zshbin1}"
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
Work: pws@csr.com
Web: http://www.pwstephenson.fsnet.co.uk
^ permalink raw reply [relevance 2%]
* PATCH: ptmx part 2
@ 2004-02-20 15:21 8% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-02-20 15:21 UTC (permalink / raw)
To: Zsh hackers list
Peter Stephenson wrote:
> One course of action:
>
> - Define _GNU_SOURCE for Linux only --- we've got enough testers to make
> it fairly painless to find out if this causes compilation problems.
> (Defining _XOPEN_SOURCE directly is harder since you've got to work
> out the version number.)
> - Check for the function definitions, particularly ptsname(), to make
> sure.
> - Only let the streams stuff cause havoc on Solaris.
This works on RedHat 9 and Solaris 8.
The check for the ptsname() prototype is a bit of a hack, since I don't
know how to do this properly. I declare it as int ptsname(), i.e. the
same as the implicit definition, and if that causes an error I assume it
was properly prototyped.
Index: configure.ac
===================================================================
RCS file: /cvsroot/zsh/zsh/configure.ac,v
retrieving revision 1.7
diff -u -r1.7 configure.ac
--- configure.ac 18 Feb 2004 13:33:08 -0000 1.7
+++ configure.ac 20 Feb 2004 14:47:48 -0000
@@ -1802,8 +1802,6 @@
dnl We need to open it read/write, so make sure it is writeable.
dnl Yet another test which won't work when cross-compiling.
dnl ---------------
-AH_TEMPLATE([HAVE_DEV_PTMX],
-[Define to 1 if your system can use /dev/ptmx for creating ptys.])
AC_CACHE_CHECK(if your system has /dev/ptmx,
ac_cv_have_dev_ptmx,
[if test -w /dev/ptmx; then
@@ -1811,10 +1809,38 @@
else
ac_cv_have_dev_ptmx=no
fi])
-if test $ac_cv_have_dev_ptmx = yes; then
- AC_DEFINE(HAVE_DEV_PTMX)
+
+dnl --------
+dnl Check if the ptmx functions are usable.
+dnl We need to be able to find the prototypes, which may
+dnl require non-POSIX source definitions. So test to see
+dnl if ptsname is correctly recognised as returning a char *.
+dnl We do this by making sure a program where ptsname() is declared
+dnl as returning int does *not* compile.
+dnl On Linux we need the XOPEN extensions. The easiest way to get
+dnl these is by defining _GNU_SOURCE.
+dnl -------
+AH_TEMPLATE([USE_DEV_PTMX],
+[Define to 1 if all the kit for using /dev/ptmx for ptys is available.])
+if test $ac_cv_have_dev_ptmx = yes && \
+ test $ac_cv_func_grantpt = yes && \
+ test $ac_cv_func_unlockpt = yes && \
+ test $ac_cv_func_ptsname = yes; then
+ AC_CACHE_CHECK([if /dev/ptmx is usable],
+ ac_cv_use_dev_ptmx,
+ [AC_TRY_COMPILE([#ifdef __linux
+#define _GNU_SOURCE 1
+#endif
+#include <stdlib.h>
+int ptsname();], ,
+ ac_cv_use_dev_ptmx=no,
+ ac_cv_use_dev_ptmx=yes)])
+ if test $ac_cv_use_dev_ptmx = yes; then
+ AC_DEFINE(USE_DEV_PTMX)
+ fi
fi
+
dnl ---------------
dnl dynamic loading
dnl ---------------
Index: Src/system.h
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/system.h,v
retrieving revision 1.17
diff -u -r1.17 system.h
--- Src/system.h 25 Jun 2003 14:48:38 -0000 1.17
+++ Src/system.h 20 Feb 2004 14:47:49 -0000
@@ -37,6 +37,14 @@
#endif
#endif
+#ifdef __linux
+/*
+ * Turn on numerous extensions.
+ * This is in order to get the functions for manipulating /dev/ptmx.
+ */
+#define _GNU_SOURCE 1
+#endif
+
/* NeXT has half-implemented POSIX support *
* which currently fools configure */
#ifdef __NeXT__
Index: Src/Modules/zpty.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Modules/zpty.c,v
retrieving revision 1.28
diff -u -r1.28 zpty.c
--- Src/Modules/zpty.c 17 Feb 2004 13:53:40 -0000 1.28
+++ Src/Modules/zpty.c 20 Feb 2004 14:47:49 -0000
@@ -154,8 +154,7 @@
return NULL;
}
-#if defined(HAVE_DEV_PTMX) && defined(HAVE_GRANTPT) && \
- defined(HAVE_PTSNAME) && defined(HAVE_UNLOCKPT)
+#ifdef USE_DEV_PTMX
#ifdef HAVE_SYS_STROPTS_H
#include <sys/stropts.h>
@@ -190,7 +189,7 @@
close(mfd);
return 1;
}
-#if defined(I_FIND) && defined(I_PUSH)
+#if defined(I_FIND) && defined(I_PUSH) && defined(__SVR4)
/*
* Use if STREAMS is available. The test is probably OK,
* but we could use e.g. the sys/stropts.h test.
Index: Src/Zle/iwidgets.list
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/iwidgets.list,v
retrieving revision 1.4
diff -u -r1.4 iwidgets.list
--- Src/Zle/iwidgets.list 1 Jul 2002 09:54:48 -0000 1.4
+++ Src/Zle/iwidgets.list 20 Feb 2004 14:47:49 -0000
@@ -56,7 +56,7 @@
"expand-word", expandword, 0
"forward-char", forwardchar, 0
"forward-word", forwardword, 0
-"get-line", getline, 0
+"get-line", zgetline, 0
"gosmacs-transpose-chars", gosmacstransposechars, 0
"history-beginning-search-backward", historybeginningsearchbackward, 0
"history-beginning-search-forward", historybeginningsearchforward, 0
Index: Src/Zle/zle_hist.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/zle_hist.c,v
retrieving revision 1.9
diff -u -r1.9 zle_hist.c
--- Src/Zle/zle_hist.c 6 Dec 2002 23:24:07 -0000 1.9
+++ Src/Zle/zle_hist.c 20 Feb 2004 14:47:49 -0000
@@ -660,9 +660,10 @@
return ret;
}
+/* Renamed to avoid clash with library function */
/**/
int
-getline(char **args)
+zgetline(char **args)
{
char *s = (char *)getlinknode(bufstack);
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 8%]
* Re: 4.2.0-pre-2
@ 2004-03-04 13:59 5% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-03-04 13:59 UTC (permalink / raw)
To: Zsh hackers list, Ibraheem Umaru-Mohammed
Ibraheem Umaru-Mohammed wrote:
> Ok. I have included the capabilities.h which seems to have the "opaque"
> definition for cap_t. Below is the result of running grep through
> /usr/include:
Thanks for the info... The important thing is if you managed to get
it to compile. I don't see a prototype for cap_get_proc there.
The only thing I can see is to add the flag I suggested earlier.
If anyone has the ability to fix this properly, please do.
I've just noticed that the `term.h' problem hasn't gone away.
It looks like configure should test for curses.h first, then see if
it can include term.h using
#ifdef HAVE_CURSES_H
#include <curses.h>
#endif
#include <term.h>
and if that works unconditionally use term.h, so getting rid of the
current `needs curses.h' flag.
It would be great if someone else had a chance to do that. I only have
limited time for all these endless configuration changes.
Index: configure.ac
===================================================================
RCS file: /cvsroot/zsh/zsh/configure.ac,v
retrieving revision 1.12
diff -u -r1.12 configure.ac
--- configure.ac 3 Mar 2004 19:38:00 -0000 1.12
+++ configure.ac 4 Mar 2004 13:47:44 -0000
@@ -313,6 +313,11 @@
AC_HELP_STRING([--enable-pcre],
[enable the search for the pcre library (may create run-time library dependencies)]))
+dnl Do you want to look for capability support?
+AC_ARG_ENABLE(cap,
+AC_HELP_STRING([--enable-cap],
+[enable the search for POSIX capabilities (may require additional headers to be added by hand)]))
+
dnl ------------------
dnl CHECK THE COMPILER
dnl ------------------
@@ -709,7 +714,9 @@
AC_CHECK_LIB(dl, dlopen)
fi
-AC_CHECK_LIB(cap, cap_get_proc)
+if test x$enable_cap = xyes; then
+ AC_CHECK_LIB(cap, cap_get_proc)
+fi
AC_CHECK_LIB(socket, socket)
@@ -1029,7 +1036,6 @@
initgroups nis_list \
setuid seteuid setreuid setresuid setsid \
memcpy memmove strstr strerror \
- cap_get_proc \
getrlimit \
setlocale \
uname \
@@ -1045,6 +1051,10 @@
grantpt unlockpt ptsname)
AC_FUNC_STRCOLL
+if test x$enable_cap = xyes; then
+ AC_CHECK_FUNCS(cap_get_proc)
+fi
+
dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
dnl Some termcaps reportedly accept a zero buffer, but then dump core
dnl in tgetstr().
Index: INSTALL
===================================================================
RCS file: /cvsroot/zsh/zsh/INSTALL,v
retrieving revision 1.13
diff -u -r1.13 INSTALL
--- INSTALL 1 Mar 2004 17:58:53 -0000 1.13
+++ INSTALL 4 Mar 2004 13:47:44 -0000
@@ -359,20 +359,32 @@
None of this is relevant for 64-bit systems; zsh should compile and run
without problems if (sizeof(long) == 8).
-Searching for `pcre'
---------------------
+Searching for additional features
+---------------------------------
+
+Various additional features are turned off by default to avoid
+compatibility problems.
+
+--enable-pcre:
Zsh has a module which allows the pcre regular expression library to be
used via shell builtins. Compiling this library into the shell with
dynamic loading (the default where available) produces a dependency on the
library libpcre.so. This is a problem on systems where zsh needs to be
-available at boot before the directory containing libpcre.so (for
-example /usr/lib or /usr/local/lib) is mounted. For this reason,
-pcre support will only be searched for if the option --enable-pcre
-is passed to configure.
+available at boot before the directory containing libpcre.so (for example
+/usr/lib or /usr/local/lib) is mounted. For this reason, pcre support will
+only be searched for if the option --enable-pcre is passed to configure.
(Future versions of the shell may have a better fix for this problem.)
+--enable-cap:
+
+This searches for POSIX capabilities; if found, the `cap' library
+is available and the shell will use these to determine if the
+shell is running in some privileged mode. This is turned off by
+default as on some systems non-standard headers (in particular AIX) are
+required. A direct fix for that problem would be appreciated.
+
Options For Configure
---------------------
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 5%]
* Re: PATCH: case-insensitive globbing
@ 2004-03-08 13:49 3% ` James Devenish
2004-03-08 16:36 0% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: James Devenish @ 2004-03-08 13:49 UTC (permalink / raw)
To: Zsh hackers list
In message <20040308124027.GA15505@mail.guild.uwa.edu.au>
on Mon, Mar 08, 2004 at 08:40:27PM +0800, James Devenish wrote:
> In message <5792.1078749261@csr.com>
> on Mon, Mar 08, 2004 at 12:34:21PM +0000, Peter Stephenson wrote:
> > > % ls /tmp/blah
> > > DATE
> > > % rehash
> > > % where date
> > > /tmp/blah/date
> > > /bin/date
But, now I note:
% where DATE
/tmp/blah/DATE
/bin/DATE
So...fair enough. An odd experience, but does make sense. For all I
know, this might even be an Apply kludge to make ported POSIX software
work in a case-insensitive environment (I haven't looked at how zsh
queries the OS for these files). [BTW: I received your reply after I
had already written this e-mail.] On a related note:
% ls -l =date
-r-xr-xr-x 1 root wheel 19276 24 Sep 14:51 /bin/date*
% ls -l =DATE
-r-xr-xr-x 1 admin wheel 19276 24 Sep 14:51 /tmp/blah/DATE*
Not complaining about this -- just pointing it out so that everyone's
aware of it. I don't know how this and other such letter-case issues are
handled in Cygwin. Perhaps there could be a footnote to the caseglob
^ permalink raw reply [relevance 3%]
* [frederik@ugcs.caltech.edu: Bug#236748: zsh: associative array documentation reference broken]
@ 2004-03-08 15:23 3% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-03-08 15:23 UTC (permalink / raw)
To: zsh-workers; +Cc: 236748-forwarded
The wording is different in >= 4.0.9, but "Subscript Flags" is still the
reference. The entire thread is available at
http://bugs.debian.org/236748
----- Forwarded message from Frederik Eaton <frederik@ugcs.caltech.edu> -----
Date: Sun, 07 Mar 2004 18:44:50 -0800
From: Frederik Eaton <frederik@ugcs.caltech.edu>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: Bug#236748: zsh: associative array documentation reference broken
Package: zsh
Version: 4.0.8-1
Severity: minor
The zshparam man page says:
For associative arrays, `[*]' or `[@]' evaluate to all the values
(not the keys, but see Subscript Flags below), in no particular
order.
There is nothing relevant to this syntax under Subscript Flags. My
guess is that something was moved from Subscript Flags in this page to
Parameter Expansion Flags in zshexpn. Also, it would be helpful if the
reference told the reader where to look in the referred-to section,
rather than making him read all of the entries.
The above sentence should probably read:
For associative arrays, `[*]' or `[@]' evaluate to all the values
(not the keys, but see the documentation for the 'k' flag under
Parameter Expansion Flags in zshexpn(1)), in no particular order.
Thanks.
-- System Information:
Debian Release: testing/unstable
Architecture: powerpc
Kernel: Linux a5.repetae.net 2.4.22-powerpc #1 jeu déc 18 10:17:34 CET 2003 ppc
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8
Versions of packages zsh depends on:
ii debconf 1.2.35 Debian configuration management sy
ii libc6 2.3.2.ds1-11 GNU C Library: Shared libraries an
ii libcap1 1:1.10-12 support for getting/setting POSIX.
ii libncurses5 5.3.20030719-4 Shared libraries for terminal hand
ii passwd 1:4.0.3-16 Change and administer password and
-- debconf information:
* zsh/rcmove:
----- End forwarded message -----
^ permalink raw reply [relevance 3%]
* Re: PATCH: case-insensitive globbing
2004-03-08 13:49 3% ` James Devenish
@ 2004-03-08 16:36 0% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-03-08 16:36 UTC (permalink / raw)
To: James Devenish, Zsh hackers list
James Devenish wrote:
> In message <20040308124027.GA15505@mail.guild.uwa.edu.au>
> on Mon, Mar 08, 2004 at 08:40:27PM +0800, James Devenish wrote:
> > In message <5792.1078749261@csr.com>
> > on Mon, Mar 08, 2004 at 12:34:21PM +0000, Peter Stephenson wrote:
> > > > % ls /tmp/blah
> > > > DATE
> > > > % rehash
> > > > % where date
> > > > /tmp/blah/date
> > > > /bin/date
>
> But, now I note:
>
> % where DATE
> /tmp/blah/DATE
> /bin/DATE
>
> So...fair enough. An odd experience, but does make sense. For all I
> know, this might even be an Apply kludge to make ported POSIX software
> work in a case-insensitive environment (I haven't looked at how zsh
> queries the OS for these files). [BTW: I received your reply after I
> had already written this e-mail.] On a related note:
>
> % ls -l =date
> -r-xr-xr-x 1 root wheel 19276 24 Sep 14:51 /bin/date*
> % ls -l =DATE
> -r-xr-xr-x 1 admin wheel 19276 24 Sep 14:51 /tmp/blah/DATE*
>
> Not complaining about this -- just pointing it out so that everyone's
> aware of it. I don't know how this and other such letter-case issues are
> handled in Cygwin. Perhaps there could be a footnote to the caseglob
The difference is that `where' is looking for all occurrence, so is
explicitly searching for either /path/to/date or /path/to/DATE. If that
matches, it will not try to normalise the name. This is the only
arguable bug; I know you're not arguing it is a bug, but it's the only
candidate for any change that I can see. However, it requires special
knowledge about the filing system.
On the other hand, `=' is just looking at the hash table for where
either date or DATE lives. This gets created once and for all the first
time it searches the directory or when you do `rehash'. In this case it
browses the directory, so gets the canonical name.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 0%]
* Re: PATCH: terminfo configuration redux
@ 2004-03-09 6:18 3% ` Felix Rosencrantz
0 siblings, 0 replies; 200+ results
From: Felix Rosencrantz @ 2004-03-09 6:18 UTC (permalink / raw)
To: Peter Stephenson, Zsh hackers list
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=us-ascii, Size: 1012 bytes --]
Here is the output of configure pulling out lines containing term|curses:
checking termcap.h usability... yes
checking termcap.h presence... yes
checking for termcap.h... yes
checking termio.h usability... yes
checking termio.h presence... yes
checking for termio.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking POSIX termios... yes
checking TIOCGWINSZ in termios.h... no
checking for library containing tgetent... -ltermcap
checking for library containing tigetflag... -lcurses
checking curses.h usability... no
checking curses.h presence... no
checking for curses.h... no
checking for Solaris 8 curses.h mistake... no
checking term.h usability... no
checking term.h presence... no
checking for term.h... no
checking for setupterm... yes
library flags : -ldl -lnsl -lcurses -ltermcap -lm -lc
-FR.
__________________________________
Do you Yahoo!?
Yahoo! Search - Find what youre looking for faster
http://search.yahoo.com
^ permalink raw reply [relevance 3%]
* Re: Bug#239070: zsh: scp completion expands * too soon (patch)
[not found] <200403201750.i2KHo83C009843@soup.in.ql.org>
@ 2004-03-20 21:42 0% ` Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-03-20 21:42 UTC (permalink / raw)
To: Jay Berkenbilt, 239070; +Cc: zsh-workers
I think the tmda-like thing on the zsh lists probably blocked your
message, so I'm just going to quote your entire report in reply.
On Sat, Mar 20, 2004 at 12:50:08PM -0500, Jay Berkenbilt wrote:
> Package: zsh
> Version: 4.1.1-11
> Severity: normal
> Tags: patch
>
> This bug is present in the current zsh in CVS as well, so I have cc'ed
> zsh-workers@sunsite.dk. I hope that works. I am not a subscriber to
> that list.
>
> In a recent upgrade to zsh, completion for scp broke when resolving
> remote files. There are two problems: wildcards are expanded too
> soon, and completion through symbolic links to directories doesn't
> work right (no trailing slash is provided). These should rightfully
> be reported as two separate bug reports, but the two bugs are caused
> by the same line of code, which makes it hard to send two separate
> patches. :-)
>
> I have verified that both of these bugs are reproducible with a
> generic vanilla uncustomized account whose sole zsh initialization is
>
> autoload -U compinit
> compinit
>
> These problems are not caused by anything special about my
> environment.
>
> I have a machine "apex" that is (at the moment) a Red Hat Linux
> machine, and my local machine is running sid. If I do
>
> ssh apex:/ [TAB]
>
> I see a list of all the files and directories that are common to the
> two machines. The "apex" machine has the directory /shares, but my
> local machine does not. If I do
>
> ssh apex:/shares/ [TAB]
>
> zsh generously appends "./" to the commandline.
>
> This trace excerpt clearly shows what's happening. The _remote_files
> function in /usr/share/zsh/4.1.1/functions/Completion/Unix/_ssh calls
> _call_program
> (/usr/share/zsh/4.1.1/functions/Completion/Base/_call_program) which
> ultimately ends up doing eval "$argv[2,-1]" which causes all the wild
> cards to be expanded. It appears that _call_program is not providing
> any advantage here because the zstyle check that it makes will
> probably always be false here, but my understanding of zstyle is
> murky. (If I am reading this right, then the zstyle check is seeing
> whether the user has configured completion so that this should be
> completed as a command instead of as files. Or something close to
> that.) In any case, using it clearly causes problems and fixing
> _call_function to prevent wildcard expansion could have any number of
> unanticipated side effects.
>
> Here's the trace excerpt from ssh apex:/ [TAB]:
>
> +_ssh:238> compset -P '*:'
> +_ssh:239> _remote_files
> +_remote_files:2> local expl remfiles remdispf remdispd args suf 'ret=1'
> +_remote_files:4> zstyle -T :completion::complete:scp:argument-rest:files remote-access
> +_remote_files:5> zparseopts -D -E -a args p: 1 2 4 6 F:
> +_remote_files:6> remfiles=+_remote_files:1> _call_program files ssh -a -x apex ls -d1F '/*'
> +_call_program:3> local tmp
> +_call_program:5> zstyle -s :completion::complete:scp:argument-rest:files command tmp
> +_call_program:12> eval 'ssh -a -x apex ls -d1F /*'
> +(eval):1> ssh -a -x apex ls -d1F /bin /boot /cdrom /cdrom0 /dark /dark2 /dev /etc /fc1 /floppy /home /initrd /initrd.img /initrd.img.old /lib /lost+found /mnt /opt /proc /projects /.rnd /root /sbin /smb /sys /systems /tmp /tmp-Xhack /u1 /u2 /usr /var /vmlinuz /vmlinuz.old
> +_remote_files:6> remfiles=( bin/ boot/ dev/ etc/ home@ initrd/ lib/ lost+found/ mnt/ opt/ proc/ projects@ root/ sbin/ smb/ systems/ tmp/ usr/ var/ )
>
> This patch corrects this problem by simply removing the call to
> _call_program.
>
> The other problem (symbolically linked directories) is easily resolved
> by adding the "L" flag to "ls" in addition to the -d1F flags. This
> results in symbolic links to directories being treated like normal
> directories which is what you want when completing.
>
> Here's the patch.
>
> ------8<------
> --- _ssh.qdist 2004-03-13 16:32:00.000000000 -0500
> +++ _ssh 2004-03-20 12:16:50.000000000 -0500
> @@ -6,7 +6,7 @@
>
> if zstyle -T ":completion:${curcontext}:files" remote-access; then
> zparseopts -D -E -a args p: 1 2 4 6 F:
> - remfiles=(${(M)${(f)"$(_call_program files ssh $args -a -x ${IPREFIX%:} ls -d1F ${(Q)PREFIX%%[^./][^/]#}\* 2>/dev/null)"}%%[^/]#(|/)})
> + remfiles=(${(M)${(f)"$(ssh $args -a -x ${IPREFIX%:} ls -d1FL ${(Q)PREFIX%%[^./][^/]#}\* 2>/dev/null)"}%%[^/]#(|/)})
> compset -P '*/'
> compset -S '/*' || suf='remote file'
>
> ------8<------
>
> In CVS, this bug was introduced between revision 1.20 and 1.21 of the
> _ssh file. There is no explanation as to why this change was made.
> Hopefully this fix can make it into zsh before 4.2.0 and into Debian
> one way or another.
>
>
> -- System Information:
> Debian Release: testing/unstable
> APT prefers unstable
> APT policy: (500, 'unstable')
> Architecture: i386 (i686)
> Kernel: Linux 2.4.25-q
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8
>
> Versions of packages zsh depends on:
> ii debconf 1.4.16 Debian configuration management sy
> ii libc6 2.3.2.ds1-11 GNU C Library: Shared libraries an
> ii libcap1 1:1.10-13 support for getting/setting POSIX.
> ii libncurses5 5.4-2 Shared libraries for terminal hand
> ii passwd 1:4.0.3-21 Change and administer password and
>
> -- debconf information:
> zsh/rcmove:
> --- _ssh.qdist 2004-03-13 16:32:00.000000000 -0500
> +++ _ssh 2004-03-20 12:16:50.000000000 -0500
> @@ -6,7 +6,7 @@
>
> if zstyle -T ":completion:${curcontext}:files" remote-access; then
> zparseopts -D -E -a args p: 1 2 4 6 F:
> - remfiles=(${(M)${(f)"$(_call_program files ssh $args -a -x ${IPREFIX%:} ls -d1F ${(Q)PREFIX%%[^./][^/]#}\* 2>/dev/null)"}%%[^/]#(|/)})
> + remfiles=(${(M)${(f)"$(ssh $args -a -x ${IPREFIX%:} ls -d1FL ${(Q)PREFIX%%[^./][^/]#}\* 2>/dev/null)"}%%[^/]#(|/)})
> compset -P '*/'
> compset -S '/*' || suf='remote file'
>
^ permalink raw reply [relevance 0%]
* zsh-4.1.1 and trap '...' DEBUG: a bug or a feature?
@ 2004-03-23 17:54 2% Nelson H. F. Beebe
2004-03-23 18:20 3% ` Wayne Davison
0 siblings, 1 reply; 200+ results
From: Nelson H. F. Beebe @ 2004-03-23 17:54 UTC (permalink / raw)
To: zsh-workers; +Cc: beebe
We are finishing up a book on shell programming, and in the course of
documenting the handling of DEBUG traps, I found unexpected behavior
in zsh-4.1.1, which I have installed on about 20 flavors of Unix at my
site.
Consider the following test file:
% cat debug-trap
trap 'echo This is an EXIT trap' EXIT
trap 'echo This is a DEBUG trap' DEBUG
pwd
pwd
pwd
pwd
Now watch this behavior (recorded on an IA-64 system, unless otherwise
noted).
First, bash:
% /local/build/icc/bash-2.05b.p7/bash --version
GNU bash, version 2.05b.0(1)-release (ia64-unknown-linux-gnu)
# That is the latest bash version 2.05b with all 7 released patches installed
% /local/build/icc/bash-2.05b.p7/bash debug-trap
This is a DEBUG trap
/tmp
This is a DEBUG trap
/tmp
This is a DEBUG trap
/tmp
This is a DEBUG trap
/tmp
This is a DEBUG trap
This is an EXIT trap
Tests showed that the bash behavior depends critically on the patch
level; I'm in the process of upgrading my systems to have 2.05b with
all 7 patches.
Next zsh-4.1.1 (the latest):
% zsh debug-trap
This is a DEBUG trap
/tmp
This is a DEBUG trap
/tmp
This is a DEBUG trap
/tmp
This is a DEBUG trap
/tmp
This is a DEBUG trap
This is an EXIT trap
This is a DEBUG trap
Notice that zsh takes one final DEBUG trap that bash does not. That
seems undesirable, because the EXIT trap code is documented in sh and
ksh to be the last code executed, and is invoked in response to either
normal termination, or an explicit exit statement.
Is this a bug, or a feature?
>From the zsh manual in the info system, I found this paragraph:
If SIG is ZERR then ARG will be executed after each command with a
nonzero exit status. If SIG is DEBUG then ARG will be executed
after each command. If SIG is 0 or EXIT and the trap statement is
executed inside the body of a function, then the command ARG is
executed after the function completes. If SIG is 0 or EXIT and
the trap statement is not executed inside the body of a function,
then the command ARG is executed when the shell terminates.
The last sentence implies that it is a feature, but perhaps it should
be reconsidered, and made to do what bash and ksh93 do, or else an
explanation should be offered in the manual of why a different choice
was made. Remember, unnecessary implementation differences create
portability headaches, and make life hard for documenters and authors
who have to explain, or even defend, the differences to their readers.
I checked that the extra invocation of the DEBUG trap does not spoil
the intended exit code:
% cat exit.sh
#! /bin/sh
trap "ls -l $0; echo 'Check the exit status: it should be 49.'" EXIT
trap "echo This is a DEBUG trap" DEBUG
echo Leaving $0 with exit code 49
exit 49
% zsh ./exit.sh
This is a DEBUG trap
Leaving ./exit.sh with exit code 49
This is a DEBUG trap
-rwxrwxr-x 1 beebe staff 162 Mar 23 10:44 ./exit.sh
This is a DEBUG trap
Check the exit status: it should be 49.
This is a DEBUG trap
% echo $?
49
POSIX (IEEE Std 1003.1-2001) does not include the DEBUG trap, so there
is no independent guidance there.
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah FAX: +1 801 581 4148 -
- Department of Mathematics, 110 LCB Internet e-mail: beebe@math.utah.edu -
- 155 S 1400 E RM 233 beebe@acm.org beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe -
-------------------------------------------------------------------------------
^ permalink raw reply [relevance 2%]
* Re: zsh-4.1.1 and trap '...' DEBUG: a bug or a feature?
2004-03-23 17:54 2% zsh-4.1.1 and trap '...' DEBUG: a bug or a feature? Nelson H. F. Beebe
@ 2004-03-23 18:20 3% ` Wayne Davison
0 siblings, 0 replies; 200+ results
From: Wayne Davison @ 2004-03-23 18:20 UTC (permalink / raw)
To: Nelson H. F. Beebe; +Cc: zsh-workers
On Tue, Mar 23, 2004 at 10:54:22AM -0700, Nelson H. F. Beebe wrote:
> Notice that zsh takes one final DEBUG trap that bash does not.
This is because your EXIT trap had one command in it. If it had two
commands, you would have seen two final DEBUG trap executions. One
way to avoid this is to turn off DEBUG in the exit trap:
trap 'trap - DEBUG; echo This is an EXIT trap' EXIT
trap 'echo This is a DEBUG trap' DEBUG
pwd
pwd
pwd
pwd
That would duplicate the bash behavior you saw. However, I don't know
if this is proper POSIX behavior or not.
..wayne..
^ permalink raw reply [relevance 3%]
* Re: (Fwd) printf for converting numbers to letters, bug?
@ 2004-03-26 17:00 3% ` Clint Adams
2004-03-27 23:53 3% ` Bart Schaefer
0 siblings, 1 reply; 200+ results
From: Clint Adams @ 2004-03-26 17:00 UTC (permalink / raw)
To: Bart Schaefer; +Cc: zsh-workers
> Looks like "%c" is interpreting the argument as a string and printing
> the first character thereof. It should work more like %d, shouldn't it?
Not according to POSIX; the argument to %b, %c, or %s is to be
interpreted as a string.
If we had octal brace expansion, he could do something like
printf "%b\n" \\0{101..145}
^ permalink raw reply [relevance 3%]
* Re: printf for converting numbers to letters, bug?
2004-03-26 17:00 3% ` Clint Adams
@ 2004-03-27 23:53 3% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2004-03-27 23:53 UTC (permalink / raw)
To: zsh-workers
On Mar 26, 12:00pm, Clint Adams wrote:
} Subject: Re: (Fwd) printf for converting numbers to letters, bug?
}
} > Looks like "%c" is interpreting the argument as a string and printing
} > the first character thereof. It should work more like %d, shouldn't it?
}
} Not according to POSIX; the argument to %b, %c, or %s is to be
} interpreted as a string.
Just to clarify my earlier comment:
Zsh is (as of 4.2.0) behaving such that, given x='101',
printf "%c" $x
and
print -r $x[1]
produce the same output. That behavior is nearly useless. (It is how
/usr/bin/printf on Linux works, though, so I guess it can be interpreted
as a compatibility issue.)
} If we had octal brace expansion, he could do something like
} printf "%b\n" \\0{101..145}
If %b interprets the string \0101 as an octal number and prints the
corresponding character, why shouldn't %c interpret the string 101 as a
decimal number and print the corresponding character?
I've just been looking at
http://www.opengroup.org/onlinepubs/007904975/utilities/printf.html
I notice that although it mentions %b, there's NO definition of %b on any
of the pages it cross-references:
http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap05.html
http://www.opengroup.org/onlinepubs/007904975/functions/printf.html
Where is %b defined?
^ permalink raw reply [relevance 3%]
* (Fwd) [shell] posix conformance for special built-ins
@ 2004-03-30 0:04 9% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2004-03-30 0:04 UTC (permalink / raw)
To: zsh-workers
--- Forwarded mail from David Korn <dgk@research.att.com>
Date: Mon, 29 Mar 2004 10:00:27 -0500 (EST)
From: David Korn <dgk@research.att.com>
To: shell@research.att.com
Subject: [shell] posix conformance for special built-ins
Subject: posix conformance for special built-ins
--------
Here is an excerpt from mail from a user that shows different results
for different shells.
>
> In two places, I have a construct like this:
>
> . foo || source foo || true
>
> To my surprise, in testing I found that ksh bails out with an error if
> foo does not exist, rather than simply succeeding because of the true
> at the end of the conditional. Here is what I found for various shells:
>
> $ ksh88
> $ . foo || source foo || true
> /bin/ksh: foo: not found
> $ echo $?
> 1
>
> $ ksh93
> $ . foo || source foo || true
> /bin/ksh: foo: not found
> $ echo $?
> 1
>
> $ bash
> $ . foo || source foo || true
> bash: foo: No such file or directory
> bash: foo: No such file or directory
> $ echo $?
> 0
>
> $ zsh
> % . foo || source foo || true
> .: no such file or directory: foo
> source: no such file or directory: foo
> % echo $?
> 0
>
> % /bin/sh
> $ . foo || source foo || true
> foo: not found
> $ echo $?
> 1
>
> % pdksh
> $ . foo || source foo || true
> pdksh: .: foo: not found
> $ echo $?
> 1
>
> $ csh
> . foo || source foo || true
> /usr/local/bin/.: Permission denied.
> foo: No such file or directory
> echo $status
> 1
>
> $ tcsh
> % . foo || source foo || true
> /usr/local/bin/.: Permission denied.
> foo: No such file or directory.
> % echo $status
> 1
>
> So, is the behavior of ksh88 and ksh93 in ". foo || source foo || true"
> a bug or a feature?
>
> -----------------------------------------------------------------------------
> - Nelson H. F. Beebe Tel: +1 801 581 5254
> - University of Utah FAX: +1 801 581 4148
> - Department of Mathematics, 110 LCB Internet e-mail: beebe@math.utah.edu
> - 155 S 1400 E RM 233 beebe@acm.org beebe@computer.org
> - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe
> -----------------------------------------------------------------------------
>
This behavior is required by the POSIX and X/Open standards. In section
section 2.8.1 of the 1003.1-2001 standard it states,
"For a non-interactive shell, an error condition encountered by a
special built-in shall cause the shell to write a diagnostic message
to standard error and exit as shown in the following table:"
In the following table, it lists Dot script not found, "Shall Exit".
While I don't like this behavior, it was inherited from the Bourne shell.
The standard added 'command' to get around this behavior, so that
command . foo || source foo || true
would give you the behavior that you want.
So unless we can get the standard changed we are stuck with this behavior.
Thus, bash and zsh are non-conforming. It would be nice to say that
the shell only bails out in cases for which set -e would have caused
it to exit, but this would require a change to the standard.
David Korn
dgk@research.att.com
_______________________________________________
shell mailing list
shell@research.att.com
https://mailman.research.att.com/mailman/listinfo/shell
---End of forwarded mail from David Korn <dgk@research.att.com>
--- Forwarded mail from chet@po.cwru.edu
Date: Mon, 29 Mar 2004 11:37:35 -0500
From: Chet Ramey <chet@caleb.ins.cwru.edu>
To: dgk@research.att.com
Subject: Re: [shell] posix conformance for special built-ins
Cc: shell@research.att.com
Reply-To: chet@po.cwru.edu
> This behavior is required by the POSIX and X/Open standards. In section
> section 2.8.1 of the 1003.1-2001 standard it states,
> "For a non-interactive shell, an error condition encountered by a
> special built-in shall cause the shell to write a diagnostic message
> to standard error and exit as shown in the following table:"
> In the following table, it lists Dot script not found, "Shall Exit".
>
> While I don't like this behavior, it was inherited from the Bourne shell.
> The standard added 'command' to get around this behavior, so that
> command . foo || source foo || true
> would give you the behavior that you want.
>
> So unless we can get the standard changed we are stuck with this behavior.
> Thus, bash and zsh are non-conforming. It would be nice to say that
> the shell only bails out in cases for which set -e would have caused
> it to exit, but this would require a change to the standard.
This is one of the things bash enables in `posix mode'.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
( ``Discere est Dolere'' -- chet )
Live...Laugh...Love
Chet Ramey, ITS, CWRU chet@po.cwru.edu http://tiswww.tis.cwru.edu/~chet/
_______________________________________________
shell mailing list
shell@research.att.com
https://mailman.research.att.com/mailman/listinfo/shell
---End of forwarded mail from chet@po.cwru.edu
^ permalink raw reply [relevance 9%]
* RE: zsh and line breaks
@ 2004-04-02 9:49 3% ` Dave Korn
2004-04-02 16:59 3% ` Peter A. Castro
0 siblings, 1 reply; 200+ results
From: Dave Korn @ 2004-04-02 9:49 UTC (permalink / raw)
To: zsh-workers, cygwin
> -----Original Message-----
> From: cygwin-owner On Behalf Of Peter A. Castro
> Sent: 01 April 2004 22:21
> In system.h I've added a #define in the #ifdef
> __CYGWIN__ section of:
> #define ORO_TEXT | O_TEXT
> And for the #else case:
> #define ORO_TEXT
>
> Then in code which needs it I have modified it to look like this:
>
> if ((fd = open(name, O_RDONLY ORO_TEXT)) < 0) {
>
> It's really just utilizing the macro ability of the compiler,
> and it's a
> style judgement call. I don't have a problem with it, obviously, but
> others might look at it and wonder how it could possible
> compile if they
> didn't look in system.h first. If you think that might present
> confusion, then I'll change it to be explicitly "| OR_TEXT" and have
> #define O_TEXT to be 0 if not defined at all.
>
> Any thoughts on this?
It's pretty reasonable but as you say could be confusing. Here's another
approach that might seem nicer because it's kind of function-like:
#ifdef __CYGWIN__
#define MAYBE_ADD_O_TEXT_FLAG(x) (O_TEXT | (x))
#else
#define MAYBE_ADD_O_TEXT_FLAG(x) (x)
#endif
Then say
if ((fd = open(name, MAYBE_ADD_O_TEXT_FLAG(O_RDONLY))) < 0) {
You might well want to choose a better name for the function-like macro than
that, but I think the pattern is slightly clearer.
> The primary problem is with running scripts with CR/LFs.
> That gets fixed
> with adding O_TEXT everywhere. A secondary problem is with redirected
> input and/or output which is processed by the shell.
>
> I've been reviewing this problem and I think maybe I've been
> attacking it
> incorrectly. I had though that adding O_TEXT everywhere
> would solve this
> problem. However, the environment is complicating things :)
>
> Here's the deal:
> So where the file located in the filesystem
> determines
> the default handling of translation when opened as a text file.
> This is for normal unix style coding of opens without any O_TEXT or
> O_BINARY cruft.
>
> Now, adding an explicit O_TEXT or O_BINARY forces one mode or
> the other,
> ignoring the filesystem mount attributes. The problem is, I
> don't want
> to force the mode,
>
> Thanks for listening. Any suggestions are welcome.
Doesn't the POSIX standard specify something about shells should open
stdin, stdout and stderr in textmode? IOW, aren't you obliged to force the
mode?
cheers,
DaveK
--
Can't think of a witty .sigline today....
^ permalink raw reply [relevance 3%]
* RE: zsh and line breaks
2004-04-02 9:49 3% ` Dave Korn
@ 2004-04-02 16:59 3% ` Peter A. Castro
0 siblings, 0 replies; 200+ results
From: Peter A. Castro @ 2004-04-02 16:59 UTC (permalink / raw)
To: Dave Korn; +Cc: zsh-workers, cygwin
On Fri, 2 Apr 2004, Dave Korn wrote:
Hi Dave,
> > -----Original Message-----
> > From: cygwin-owner On Behalf Of Peter A. Castro
> > Sent: 01 April 2004 22:21
>
> > In system.h I've added a #define in the #ifdef
> > __CYGWIN__ section of:
> > #define ORO_TEXT | O_TEXT
> > And for the #else case:
> > #define ORO_TEXT
> >
> > Then in code which needs it I have modified it to look like this:
> >
> > if ((fd = open(name, O_RDONLY ORO_TEXT)) < 0) {
> >
> > It's really just utilizing the macro ability of the compiler,
> > and it's a
> > style judgement call. I don't have a problem with it, obviously, but
> > others might look at it and wonder how it could possible
> > compile if they
> > didn't look in system.h first. If you think that might present
> > confusion, then I'll change it to be explicitly "| OR_TEXT" and have
> > #define O_TEXT to be 0 if not defined at all.
> >
> > Any thoughts on this?
>
> It's pretty reasonable but as you say could be confusing. Here's another
> approach that might seem nicer because it's kind of function-like:
>
> #ifdef __CYGWIN__
> #define MAYBE_ADD_O_TEXT_FLAG(x) (O_TEXT | (x))
> #else
> #define MAYBE_ADD_O_TEXT_FLAG(x) (x)
> #endif
>
> Then say
>
> if ((fd = open(name, MAYBE_ADD_O_TEXT_FLAG(O_RDONLY))) < 0) {
>
> You might well want to choose a better name for the function-like macro than
> that, but I think the pattern is slightly clearer.
It's always interesting to see how people solve the same problem using a
different style. Yes, I'd though of using a wrapper macro, but decided I
didn't want to change mainline code that much. I'm really looking for
something that's pretty non-intrusive. Corinna just emailed a possible
solution, which may be the best yet because it works at a lower level and
wouldn't require all of those 43 open calls to be changed!
> > The primary problem is with running scripts with CR/LFs.
> > That gets fixed
> > with adding O_TEXT everywhere. A secondary problem is with redirected
> > input and/or output which is processed by the shell.
> >
> > I've been reviewing this problem and I think maybe I've been
> > attacking it
> > incorrectly. I had though that adding O_TEXT everywhere
> > would solve this
> > problem. However, the environment is complicating things :)
> >
> > Here's the deal:
>
> > So where the file located in the filesystem
> > determines
> > the default handling of translation when opened as a text file.
> > This is for normal unix style coding of opens without any O_TEXT or
> > O_BINARY cruft.
> >
> > Now, adding an explicit O_TEXT or O_BINARY forces one mode or
> > the other,
> > ignoring the filesystem mount attributes. The problem is, I
> > don't want
> > to force the mode,
> >
> > Thanks for listening. Any suggestions are welcome.
>
> Doesn't the POSIX standard specify something about shells should open
> stdin, stdout and stderr in textmode? IOW, aren't you obliged to force the
> mode?
The posix standard specifies a textmode should be used, but says nothing
about what really constitues a "textmode". Textmode means adding line
termination according to the platform definitions. However, in the case
of Cygwin, I believe we are supposed to honor the mode of the filesystem
as much as possible, which means sometimes line termination has CRs and
sometimes it doesn't. One thing is for sure: reading script files
directly must remove CRs. Everthing else is up for discussion :)
I'm going to experiment with Corinna's idea and see what happens first.
If that doesn't work, I'll have to continue my analysis of what the code
does with those opened files.
> cheers,
> DaveK
--
Peter A. Castro <doctor@fruitbat.org> or <Peter.Castro@oracle.com>
"Cats are just autistic Dogs" -- Dr. Tony Attwood
^ permalink raw reply [relevance 3%]
* [ejb@ql.org: Bug#243385: zsh: rsync completion expands * too soon]
@ 2004-04-13 1:21 2% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-04-13 1:21 UTC (permalink / raw)
To: zsh-workers; +Cc: 243385-forwarded, ejb
I assume that this is a quoting issue again.
----- Forwarded message from Jay Berkenbilt <ejb@ql.org> -----
Date: Mon, 12 Apr 2004 15:59:30 -0400
From: Jay Berkenbilt <ejb@ql.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: Bug#243385: zsh: rsync completion expands * too soon
Package: zsh
Version: 4.1.1-14
Severity: normal
Tags: patch
(Unless zsh-workers has been reconfigured since my last bug report,
the X-Debbugs-CC to zsh-workers will fail and this bug will not have
been reported upstream.)
This is essentially identical to what I reported in Debian bug 239070
for scp: the same bug existed with rsync's completion function. The
attached patch removes "_call_program files" from the ssh line used to
generate remote files and also adds the -L flag to ls, just like my
earlier patch to _ssh. I have dispensed with a lengthy explanation
because it is essentially identical to the one I included in bug
239070, the fix to which appears to have been accepted upstream.
This patch is to /usr/share/zsh/4.1.1/functions/Completion/Unix/_rsync.
-------8<--------
--- _rsync~ 2004-03-25 13:29:33.000000000 -0500
+++ _rsync 2004-04-09 18:14:08.000000000 -0400
@@ -37,7 +37,7 @@
if zstyle -T ":completion:${curcontext}:" remote-access; then
slash=/
- remfiles=(${(f)"$(_call_program files ssh -a -x ${words[CURRENT]%:*} ls -d1F ${${${words[CURRENT
+ remfiles=(${(f)"$(ssh -a -x ${words[CURRENT]%:*} ls -d1FL ${${${words[CURRENT
]#*:}:h}/${slash}(#e)/}/\* 2>/dev/null)"})
remdispf=(${remfiles:#*/})
-------8<--------
This patch causes rsync completion to work properly for remote files
when you have ssh access to the remote system. It still doesn't
behave quite as well as scp completion (rsync host:/path/ TAB doesn't
show alternatives unless you type at least one character after the /),
but at least it behaves as well as it did before the _call_program
function call was added.
A grep for '_call_program files ssh' suggests that this may be the
only place left that has this particular bug. Too bad I didn't think
to do that last time. :-)
Please let me know if additional information is required or if I
should have repeated the information to substantiate this patch.
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.4.25-1-686-smp
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8
Versions of packages zsh depends on:
ii debconf 1.4.16 Debian configuration management sy
ii libc6 2.3.2.ds1-11 GNU C Library: Shared libraries an
ii libcap1 1:1.10-13 support for getting/setting POSIX.
ii libncurses5 5.4-2 Shared libraries for terminal hand
ii passwd 1:4.0.3-21 Change and administer password and
-- debconf information:
zsh/rcmove:
--- _rsync~ 2004-03-25 13:29:33.000000000 -0500
+++ _rsync 2004-04-09 18:14:08.000000000 -0400
@@ -37,7 +37,7 @@
if zstyle -T ":completion:${curcontext}:" remote-access; then
slash=/
- remfiles=(${(f)"$(_call_program files ssh -a -x ${words[CURRENT]%:*} ls -d1F ${${${words[CURRENT
+ remfiles=(${(f)"$(ssh -a -x ${words[CURRENT]%:*} ls -d1FL ${${${words[CURRENT
]#*:}:h}/${slash}(#e)/}/\* 2>/dev/null)"})
remdispf=(${remfiles:#*/})
----- End forwarded message -----
^ permalink raw reply [relevance 2%]
* Re: FreeBSD compatability feature request
[not found] ` <21533.1082374109@csr.com>
@ 2004-04-21 8:21 0% ` Vincent Stemen
2004-04-21 11:05 2% ` PATCH: (2) " Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Vincent Stemen @ 2004-04-21 8:21 UTC (permalink / raw)
To: zsh-workers
On Mon, Apr 19, 2004 at 12:28:29PM +0100, Peter Stephenson wrote:
> Vincent Stemen wrote:
> > Here is the FreeBSD manual entry:
> >
> > -T trapsasync
> > When waiting for a child, execute traps immediately. If this
> > option is not set, traps are executed after the child exits,
> > as specified in IEEE Std 1003.2 (``POSIX.2'') This nonstandard
> > option is useful for putting guarding shells around children
> > that block signals. The surrounding shell may kill the child
> > or it may just return control to the tty and leave the child
> > alone, like this:
> >
> > sh -T -c "trap 'exit 1' 2 ; some-blocking-program"
>
> Good(ish) news...
>
> Just tried this out, and it looks like the `trapsasync' behaviour
> is the standard (and only) one in zsh. Hence it doesn't conform to
> POSIX (which isn't likely to be an earth-shattering revelation to zsh
> regulars).
>
> This means that almost everything we need for both behaviours is already
> there. It remains to add the option TRAPS_ASYNC, turned on by default
> in non-Bourne mode for compatibility, and make sure we can still handle
> SIGCHLD when the option is unset.
>
> Someone already had the foresight to handle sh options separately, so -T
> does the right thing in sh or ksh emulation and the example you gave
> should now work as expected.
>
> Further follow-ups should probably go to zsh-workers.
>
Ok, I applied the patch to zsh-4.2.0 and tested under
FreeBSD-5.2.1-RELEASE. It seems to work just fine. I did not test the
actual signal handling but FreeBSD was able to boot without getting errors
from the init scripts that use "set -T". I was also pleased to find that
the other problem is fixed in 4.2.0 where eval was returning the result of
the last run command if eval was given a null argument. Previously, that
had caused eval to return false in one of the scripts causing the rootfs
to stay mounted read only, which of course caused many other errors.
After replacing /bin/sh with zsh, it was able to fully boot up and
initialize the system except for one other problem, which appears to be a
different bug in sh emulation mode. It hangs when running the nfsd init
script. If I <cntl>c out of it, the rest of the system comes up, but
without NFS.
I finally isolated the problem. Below is a small script, called t, that
reproduces it.
# cat t
_find_processes()
{
ps | while read pid command
do
echo "pid=$pid $command"
done >&2
echo "xxx Exited loop xxxxxxxxxxxxxxxxxxxxxxx" >&2
}
xxx=$(_find_processes)
#--- end of script -------
If I run it by calling zsh as sh, it hangs on the read command after the
last line of output from ps and I have to break out of it.
root@quark # ./sh t
pid=PID TT STAT TIME COMMAND
pid=24781 p0 I 0:00.02 su
pid=24782 p0 I 0:00.23 su (zsh)
..
..
pid=578 v6 IWs+ 0:00.00 /usr/libexec/getty Pc ttyv6
pid=579 v7 IWs+ 0:00.00 /usr/libexec/getty Pc ttyv7
^C
root@quark #
If I run it as zsh, it works properly.
root@quark # ./zsh t
pid=PID TT STAT TIME COMMAND
pid=24781 p0 I 0:00.02 su
pid=24782 p0 I 0:00.23 su (zsh)
..
..
pid=578 v6 IWs+ 0:00.00 /usr/libexec/getty Pc ttyv6
pid=579 v7 IWs+ 0:00.00 /usr/libexec/getty Pc ttyv7
xxx Exited loop xxxxxxxxxxxxxxxxxxxxxxx
root@quark #
It only hangs when the function is called from inside of $() or back
ticks. Calling it outside of that worked correctly.
Regards,
Vincent
--
Vincent Stemen
Avoid the VeriSign/Network Solutions domain registration trap!
http://www.InetAddresses.net
^ permalink raw reply [relevance 0%]
* PATCH: (2) Re: FreeBSD compatability feature request
2004-04-21 8:21 0% ` FreeBSD compatability feature request Vincent Stemen
@ 2004-04-21 11:05 2% ` Peter Stephenson
2004-04-22 8:59 0% ` Vincent Stemen
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2004-04-21 11:05 UTC (permalink / raw)
To: Vincent Stemen, Zsh hackers list
OK, plan B.
I am now frightened about what happens when any signals are blocked
while we are waiting for a child. So instead of doing that, I propose
queuing traps separately from signals. This can't cause any races,
since no extra signal or process handling is involved. The code is a
bit more verbose, but should be much safer. This patches on top of the
other one.
Again, this should be exactly equivalent to 4.2.0 unless TRAPS_ASYNC is
unset (POSIX compatibility mode).
This ought to fix the hang.
Index: Src/jobs.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/jobs.c,v
retrieving revision 1.26
diff -u -r1.26 jobs.c
--- Src/jobs.c 19 Apr 2004 16:02:22 -0000 1.26
+++ Src/jobs.c 21 Apr 2004 10:40:30 -0000
@@ -994,11 +994,8 @@
int q = queue_signal_level();
Job jn = jobtab + job;
- queue_not_sigchld++;
- if (isset(TRAPSASYNC))
- dont_queue_signals();
- else
- queue_signals();
+ dont_queue_signals();
+ queue_traps();
child_block(); /* unblocked during child_suspend() */
if (jn->procs || jn->auxprocs) { /* if any forks were done */
jn->stat |= STAT_LOCKED;
@@ -1029,10 +1026,8 @@
numpipestats = 1;
}
child_unblock();
+ dont_queue_traps();
restore_queue_signals(q);
- if (!queueing_enabled)
- run_queued_signals();
- queue_not_sigchld--;
}
/* wait for running job to finish */
Index: Src/signals.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/signals.c,v
retrieving revision 1.26
diff -u -r1.26 signals.c
--- Src/signals.c 19 Apr 2004 16:02:22 -0000 1.26
+++ Src/signals.c 21 Apr 2004 10:40:30 -0000
@@ -49,12 +49,19 @@
/* Variables used by signal queueing */
/**/
-mod_export int queueing_enabled, queue_front, queue_rear, queue_not_sigchld;
+mod_export int queueing_enabled, queue_front, queue_rear;
/**/
mod_export int signal_queue[MAX_QUEUE_SIZE];
/**/
mod_export sigset_t signal_mask_queue[MAX_QUEUE_SIZE];
+/* Variables used by trap queueing */
+
+/**/
+mod_export int trap_queueing_enabled, trap_queue_front, trap_queue_rear;
+/**/
+mod_export int trap_queue[MAX_QUEUE_SIZE];
+
/* This is only used on machines that don't understand signal sets. *
* On SYSV machines this will represent the signals that are blocked *
* (held) using sighold. On machines which can't block signals at *
@@ -426,7 +433,7 @@
#endif
/* Are we queueing signals now? */
- if (queueing_enabled && (sig != SIGCHLD || !queue_not_sigchld)) {
+ if (queueing_enabled) {
int temp_rear = ++queue_rear % MAX_QUEUE_SIZE;
DPUTS(temp_rear == queue_front, "BUG: signal queue full");
@@ -1058,5 +1065,17 @@
if ((sigtrapped[sig] & ZSIG_IGNORED) || !sigfuncs[sig] || errflag)
return;
+ /* Adapted from signal queueing in zhandler */
+ if (trap_queueing_enabled && !isset(TRAPSASYNC)) {
+ int temp_rear = ++trap_queue_rear % MAX_QUEUE_SIZE;
+
+ DPUTS(temp_rear == trap_queue_front, "BUG: trap queue full");
+ if (temp_rear != trap_queue_front) {
+ trap_queue_rear = temp_rear;
+ trap_queue[trap_queue_rear] = sig;
+ }
+ return;
+ }
+
dotrapargs(sig, sigtrapped+sig, sigfuncs[sig]);
}
Index: Src/signals.h
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/signals.h,v
retrieving revision 1.4
diff -u -r1.4 signals.h
--- Src/signals.h 18 Jun 2001 07:24:23 -0000 1.4
+++ Src/signals.h 21 Apr 2004 10:40:30 -0000
@@ -101,6 +101,23 @@
#define restore_queue_signals(q) (queueing_enabled = (q))
+/*
+ * Similar (but simpler) mechanism used for queueing traps.
+ * Only needed if NO_TRAPS_ASYNC is set.
+ */
+#define queue_traps() (trap_queueing_enabled++)
+
+#define run_queued_traps() do { \
+ while (trap_queue_front != trap_queue_rear) { /* while traps in queue */ \
+ trap_queue_front = (trap_queue_front + 1) % MAX_QUEUE_SIZE; \
+ dotrap(trap_queue[trap_queue_front]); /* handle queued trap */ \
+ } \
+} while (0)
+
+#define dont_queue_traps() do { \
+ trap_queueing_enabled = 0; \
+ run_queued_traps(); \
+} while (0)
/* Make some signal functions faster. */
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 2%]
* Re: PATCH: (2) Re: FreeBSD compatability feature request
2004-04-21 11:05 2% ` PATCH: (2) " Peter Stephenson
@ 2004-04-22 8:59 0% ` Vincent Stemen
2004-04-22 9:59 4% ` Peter Stephenson
2004-04-30 21:26 2% ` PATCH: (3) " Peter Stephenson
0 siblings, 2 replies; 200+ results
From: Vincent Stemen @ 2004-04-22 8:59 UTC (permalink / raw)
To: Zsh hackers list
On Wed, Apr 21, 2004 at 12:05:00PM +0100, Peter Stephenson wrote:
> OK, plan B.
>
> I am now frightened about what happens when any signals are blocked
> while we are waiting for a child. So instead of doing that, I propose
> queuing traps separately from signals. This can't cause any races,
> since no extra signal or process handling is involved. The code is a
> bit more verbose, but should be much safer. This patches on top of the
> other one.
>
> Again, this should be exactly equivalent to 4.2.0 unless TRAPS_ASYNC is
> unset (POSIX compatibility mode).
>
> This ought to fix the hang.
Hi Peter.
I applied the patch. It definitely fixed the hanging problem. I can
now plug it in place of /bin/sh on FreeBSD and all the init scripts
seem to run properly without errors when booting the system.
However, I actually tested the signal handling this time and, unless I
am not understanding the trapsasync mode enough to test properly, I
don't think it is working. If I understand it correctly, with "set -T"
shouldn't the parent process immediately get any signals it has trapped
even if a child process it is waiting on has disabled the signals?
With that in mind, I tested it with two scripts, sigtrap and sigblock.
quark # cat sigtrap
echo "sigtrap: trapping SIGINT and calling sigblock"
set -T
trap 'echo Got signal. Exiting.; exit' 2
./sigblock
echo "sigtrap: Exiting normally"
quark # cat sigblock
echo "sigblock: blocking SIGINT and sleeping"
trap '' 2
sleep 5
quark # ./sh sigtrap
sigtrap: trapping SIGINT and calling sigblock
sigblock: blocking SIGINT and sleeping
^C^Csigblock: exiting
Got signal. Exiting.
quark #
After hitting <cntl>c, it completed the 5 second delay before printing
"sigblock: exiting". It behaved the same whether I had the "set -T" in
the script or not. I was expecting sigtrap to immediately print "Got
signal. Exiting." when I hit <cntl>c with trapsasync set.
Be aware if you test this under Linux that Linux, at least as of the
2.4.x kernels about a year ago the last time I tested it, does not pass
signals on to the parent process like FreeBSD does. So you may not see
the "Got signal" message from the parent sigtrap process. In the past,
I always had to check for a 130 return code from every child process
(which was a pain) to know if the user hit <cntl>c so I can call my
signal handling routine. I was not able to have dependable signal traps
in my scripts because you could not always depend on the child returning
130 when it got interrupted.
--
Vincent Stemen
Avoid the VeriSign/Network Solutions domain registration trap!
Read how Network Solutions (NSI) was involved in stealing our domain name.
http://www.InetAddresses.net
^ permalink raw reply [relevance 0%]
* Re: PATCH: (2) Re: FreeBSD compatability feature request
2004-04-22 8:59 0% ` Vincent Stemen
@ 2004-04-22 9:59 4% ` Peter Stephenson
2004-04-22 10:17 4% ` Peter Stephenson
2004-04-30 21:26 2% ` PATCH: (3) " Peter Stephenson
1 sibling, 1 reply; 200+ results
From: Peter Stephenson @ 2004-04-22 9:59 UTC (permalink / raw)
To: Vincent Stemen; +Cc: Zsh hackers list
Vincent Stemen wrote:
> However, I actually tested the signal handling this time and, unless I
> am not understanding the trapsasync mode enough to test properly, I
> don't think it is working. If I understand it correctly, with "set -T"
> shouldn't the parent process immediately get any signals it has trapped
> even if a child process it is waiting on has disabled the signals?
I think you're right. I didn't do anything with basic signal handling
(which I don't know much about), just rewrote the way traps are queued.
It looks like it will need someone to rewire the signal handling not to
block other signals in this case. The function is signal_suspend() in
signals.c which calls sigfillset() then removes SIGCHLD from the blocked
set.
However, that now gives us three different modes: the original zsh one,
POSIX where all traps are deferred, and this mode where signals are
delivered straight through. So one option isn't enough. Presumably
TRAPS_ASYNC should be off for the standard zsh behaviour, on for the new
behaviour, and we need another option for POSIX which will be overridden
if TRAPS_ASYNC is set. Yuk.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 4%]
* Re: PATCH: (2) Re: FreeBSD compatability feature request
2004-04-22 9:59 4% ` Peter Stephenson
@ 2004-04-22 10:17 4% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-04-22 10:17 UTC (permalink / raw)
To: Vincent Stemen, Zsh hackers list
Peter Stephenson wrote:
> However, that now gives us three different modes: the original zsh one,
> POSIX where all traps are deferred, and this mode where signals are
> delivered straight through. So one option isn't enough. Presumably
> TRAPS_ASYNC should be off for the standard zsh behaviour, on for the new
> behaviour, and we need another option for POSIX which will be overridden
> if TRAPS_ASYNC is set. Yuk.
Actually (sorry to generate all the traffic) it's possible I was getting
confused...
Zsh will usually block other signals while waiting for SIGCHLD. This
may be all that POSIX requires. What it doesn't do (and why I was able
to get asynchronous traps working) is ensure that traps don't run if it
stops waiting, for example because a different process exited. I
originally tested this by running a background functions which exited,
generating a SIGCHLD, which caused all queued signals to be delivered.
Hence it's possible that the queueing traps thing is a red herring, that
zsh is sufficiently POSIX compliant by default, and all we need is the
ability to receive signals other than SIGCHLD while waiting for a child.
(It's a bit late to back out now.)
If anybody actually knows anything about all this, their views would be
especially welcome.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 4%]
* [stevenk@debian.org: Bug#246306: zsh: completion file for apt-move]
@ 2004-04-28 13:10 3% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-04-28 13:10 UTC (permalink / raw)
To: zsh-workers; +Cc: stevenk, 246306
----- Forwarded message from Steve Kowalik <stevenk@debian.org> -----
Date: Wed, 28 Apr 2004 20:48:48 +1000
From: Steve Kowalik <stevenk@debian.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: Bug#246306: zsh: completion file for apt-move
Package: zsh
Version: 4.2.0-5
Severity: wishlist
Hi,
I have written a completion function for apt-move.
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.5-1-k7-smp
Locale: LANG=C, LC_CTYPE=C
Versions of packages zsh depends on:
ii debconf 1.4.24 Debian configuration management sy
ii libc6 2.3.2.ds1-12 GNU C Library: Shared libraries an
ii libcap1 1:1.10-14 support for getting/setting POSIX.
ii libncurses5 5.4-3 Shared libraries for terminal hand
ii passwd 1:4.0.3-26 Change and administer password and
-- debconf information:
zsh/rcmove:
--
Steve
"Why does everyone say 'Relax' when they're about to do something terrible?"
- Ensign Harry Kim, USS Voyager
#compdef apt-move
local state line
_arguments \
'-c[Specify an alternative configuration file]' \
'-d[Override the DIST setting]' \
'-f[Override the MAXDELETE setting]' \
'-q[Be quiet; suppress normal output]' \
'-t[Show what apt-move would do, but do not actually do anything]' \
'1: :->cmds' \
'*: :->args' && return 0
case $state in
cmds)
cmds=('get:update your master files from local apt' \
'getlocal:alias of get' \
'fsck:fix broken repositories' \
'move:move cache files into mirror tree' \
'movefile:move files into the repository' \
'delete:delete obsolete packages' \
'packages:create new local Packages files' \
'update:alias for: get move delete packages' \
'local:alias for: move delete packages' \
'localupdate:alias for: getlocal move delete packages' \
'mirror:update your local mirror from remote rsync site' \
'sync:same as mirror, but only gets packages that you currently have installed on your system' \
'exclude:prints a list of all packages EXCLUDED from the mirror by the .exclude file' \
'listbin:prints lists of packages which can serve as the input to mirrorbin(mirror,sync,repo)' \
'listsrc:same as listbin, but lists source packages' \
'mirrorbin:same as mirror, but gets the packages specified on stdin' \
'mirrorsrc:same as mirrorbin, but gets source packages')
_describe -t commands 'apt-move command' cmds && return 0
;;
args)
case $line[1] in
get|getlocal)
# A directory or nothing
_files -/
;;
movefile)
# A .dsc or a .deb
_files -g "*.d{sc,eb}"
;;
esac
;;
esac
return 1
----- End forwarded message -----
^ permalink raw reply [relevance 3%]
* PATCH: (3) Re: FreeBSD compatability feature request
2004-04-22 8:59 0% ` Vincent Stemen
2004-04-22 9:59 4% ` Peter Stephenson
@ 2004-04-30 21:26 2% ` Peter Stephenson
2004-05-01 1:45 0% ` Vincent Stemen
2004-05-04 7:17 0% ` PATCH: (3) - FreeBSD compatability issue resolved Vincent Stemen
1 sibling, 2 replies; 200+ results
From: Peter Stephenson @ 2004-04-30 21:26 UTC (permalink / raw)
To: Vincent Stemen, Zsh hackers list
Patch to apply on top of previous goes to attempt to handle TRAPS_ASYNC
the way I think is intended. It's basically an `if' with a
sigemptyset() inside it, hope no one was expecting anything sophisticated.
It doesn't fix the behaviour I noted, that without the option any child
exiting, not just the one the shell is currently expecting, causes traps
to be run. Probably that's not a big issue; I should really check the
wording of POSIX.
So I think that's it... Vincent?
Index: Doc/Zsh/options.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/options.yo,v
retrieving revision 1.31
diff -u -r1.31 options.yo
--- Doc/Zsh/options.yo 19 Apr 2004 16:02:22 -0000 1.31
+++ Doc/Zsh/options.yo 30 Apr 2004 21:15:10 -0000
@@ -1191,11 +1191,11 @@
)
pindex(TRAPS_ASYNC)
cindex(traps, asynchronous)
-item(tt(TRAPS_ASYNC) <C> <Z>)(
-While waiting for a program to exit, run traps immediately. Otherwise
-the trap is run after the program has exited. Note this does not affect
-the point at which traps are run for any case other than when the shell is
-waiting for a child process.
+item(tt(TRAPS_ASYNC))(
+While waiting for a program to exit, handle signals and run traps
+immediately. Otherwise the trap is run after a child process has exited.
+Note this does not affect the point at which traps are run for any case
+other than when the shell is waiting for a child process.
)
pindex(TYPESET_SILENT)
item(tt(TYPESET_SILENT))(
Index: Src/jobs.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/jobs.c,v
retrieving revision 1.27
diff -u -r1.27 jobs.c
--- Src/jobs.c 21 Apr 2004 11:21:24 -0000 1.27
+++ Src/jobs.c 30 Apr 2004 21:15:19 -0000
@@ -971,14 +971,14 @@
/* child_block() around this loop in case #ifndef WNOHANG */
dont_queue_signals();
- child_block(); /* unblocked in child_suspend() */
+ child_block(); /* unblocked in signal_suspend() */
while (!errflag && (kill(pid, 0) >= 0 || errno != ESRCH)) {
if (first)
first = 0;
else
kill(pid, SIGCONT);
- child_suspend(SIGINT);
+ signal_suspend(SIGCHLD, SIGINT);
child_block();
}
child_unblock();
@@ -995,8 +995,7 @@
Job jn = jobtab + job;
dont_queue_signals();
- queue_traps();
- child_block(); /* unblocked during child_suspend() */
+ child_block(); /* unblocked during signal_suspend() */
if (jn->procs || jn->auxprocs) { /* if any forks were done */
jn->stat |= STAT_LOCKED;
if (jn->stat & STAT_CHANGED)
@@ -1004,7 +1003,7 @@
while (!errflag && jn->stat &&
!(jn->stat & STAT_DONE) &&
!(interact && (jn->stat & STAT_STOPPED))) {
- child_suspend(sig);
+ signal_suspend(SIGCHLD, sig);
/* Commenting this out makes ^C-ing a job started by a function
stop the whole function again. But I guess it will stop
something else from working properly, we have to find out
@@ -1026,7 +1025,6 @@
numpipestats = 1;
}
child_unblock();
- dont_queue_traps();
restore_queue_signals(q);
}
Index: Src/options.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/options.c,v
retrieving revision 1.18
diff -u -r1.18 options.c
--- Src/options.c 19 Apr 2004 16:02:22 -0000 1.18
+++ Src/options.c 30 Apr 2004 21:15:22 -0000
@@ -203,7 +203,7 @@
{NULL, "singlelinezle", OPT_KSH, SINGLELINEZLE},
{NULL, "sunkeyboardhack", 0, SUNKEYBOARDHACK},
{NULL, "transientrprompt", 0, TRANSIENTRPROMPT},
-{NULL, "trapsasync", OPT_EMULATE|OPT_NONBOURNE, TRAPSASYNC},
+{NULL, "trapsasync", 0, TRAPSASYNC},
{NULL, "typesetsilent", OPT_EMULATE|OPT_BOURNE, TYPESETSILENT},
{NULL, "unset", OPT_EMULATE|OPT_BSHELL, UNSET},
{NULL, "verbose", 0, VERBOSE},
Index: Src/signals.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/signals.c,v
retrieving revision 1.27
diff -u -r1.27 signals.c
--- Src/signals.c 21 Apr 2004 11:21:34 -0000 1.27
+++ Src/signals.c 30 Apr 2004 21:15:24 -0000
@@ -350,11 +350,15 @@
sigset_t oset;
#endif /* BROKEN_POSIX_SIGSUSPEND */
- sigfillset(&set);
- sigdelset(&set, sig);
- sigdelset(&set, SIGHUP); /* still don't know why we add this? */
- if (sig2)
- sigdelset(&set, sig2);
+ if (isset(TRAPSASYNC)) {
+ sigemptyset(&set);
+ } else {
+ sigfillset(&set);
+ sigdelset(&set, sig);
+ sigdelset(&set, SIGHUP); /* still don't know why we add this? */
+ if (sig2)
+ sigdelset(&set, sig2);
+ }
#ifdef BROKEN_POSIX_SIGSUSPEND
sigprocmask(SIG_SETMASK, &set, &oset);
pause();
@@ -366,11 +370,15 @@
# ifdef BSD_SIGNALS
sigset_t set;
- sigfillset(&set);
- sigdelset(&set, sig);
- if (sig2)
- sigdelset(&set, sig2);
- ret = sigpause(set);
+ if (isset(TRAPSASYNC)) {
+ sigemptyset(&set);
+ } else {
+ sigfillset(&set);
+ sigdelset(&set, sig);
+ if (sig2)
+ sigdelset(&set, sig2);
+ ret = sigpause(set);
+ }
# else
# ifdef SYSV_SIGNALS
ret = sigpause(sig);
@@ -426,7 +434,7 @@
do_jump = suspend_longjmp; /* do we need to longjmp to signal_suspend */
suspend_longjmp = 0; /* In case a SIGCHLD somehow arrives */
- if (sig == SIGCHLD) { /* Traps can cause nested child_suspend() */
+ if (sig == SIGCHLD) { /* Traps can cause nested signal_suspend() */
if (do_jump)
jump_to = suspend_jmp_buf; /* Copy suspend_jmp_buf */
}
@@ -1065,17 +1073,5 @@
if ((sigtrapped[sig] & ZSIG_IGNORED) || !sigfuncs[sig] || errflag)
return;
- /* Adapted from signal queueing in zhandler */
- if (trap_queueing_enabled && !isset(TRAPSASYNC)) {
- int temp_rear = ++trap_queue_rear % MAX_QUEUE_SIZE;
-
- DPUTS(temp_rear == trap_queue_front, "BUG: trap queue full");
- if (temp_rear != trap_queue_front) {
- trap_queue_rear = temp_rear;
- trap_queue[trap_queue_rear] = sig;
- }
- return;
- }
-
dotrapargs(sig, sigtrapped+sig, sigfuncs[sig]);
}
Index: Src/signals.h
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/signals.h,v
retrieving revision 1.5
diff -u -r1.5 signals.h
--- Src/signals.h 21 Apr 2004 11:21:34 -0000 1.5
+++ Src/signals.h 30 Apr 2004 21:15:24 -0000
@@ -58,7 +58,6 @@
#define child_block() signal_block(sigchld_mask)
#define child_unblock() signal_unblock(sigchld_mask)
-#define child_suspend(S) signal_suspend(SIGCHLD, S)
/* ignore a signal */
#define signal_ignore(S) signal(S, SIG_IGN)
@@ -101,24 +100,6 @@
#define restore_queue_signals(q) (queueing_enabled = (q))
-/*
- * Similar (but simpler) mechanism used for queueing traps.
- * Only needed if NO_TRAPS_ASYNC is set.
- */
-#define queue_traps() (trap_queueing_enabled++)
-
-#define run_queued_traps() do { \
- while (trap_queue_front != trap_queue_rear) { /* while traps in queue */ \
- trap_queue_front = (trap_queue_front + 1) % MAX_QUEUE_SIZE; \
- dotrap(trap_queue[trap_queue_front]); /* handle queued trap */ \
- } \
-} while (0)
-
-#define dont_queue_traps() do { \
- trap_queueing_enabled = 0; \
- run_queued_traps(); \
-} while (0)
-
/* Make some signal functions faster. */
#ifdef POSIX_SIGNALS
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
Work: pws@csr.com
Web: http://www.pwstephenson.fsnet.co.uk
^ permalink raw reply [relevance 2%]
* Re: PATCH: (3) Re: FreeBSD compatability feature request
2004-04-30 21:26 2% ` PATCH: (3) " Peter Stephenson
@ 2004-05-01 1:45 0% ` Vincent Stemen
2004-05-01 2:23 0% ` Vincent Stemen
2004-05-04 7:17 0% ` PATCH: (3) - FreeBSD compatability issue resolved Vincent Stemen
1 sibling, 1 reply; 200+ results
From: Vincent Stemen @ 2004-05-01 1:45 UTC (permalink / raw)
To: Zsh hackers list
On Fri, Apr 30, 2004 at 10:26:24PM +0100, Peter Stephenson wrote:
> Patch to apply on top of previous goes to attempt to handle TRAPS_ASYNC
> the way I think is intended. It's basically an `if' with a
> sigemptyset() inside it, hope no one was expecting anything sophisticated.
>
> It doesn't fix the behaviour I noted, that without the option any child
> exiting, not just the one the shell is currently expecting, causes traps
> to be run. Probably that's not a big issue; I should really check the
> wording of POSIX.
>
> So I think that's it... Vincent?
Hi Peter.
I applied the patch and, unfortunately, it did not seem to change the
behavior at all under FreeBSD. It still waits for the child to exit
before processing the signal in the parent even though "set -T" is
used. Does your patch work under Linux using the two small test
scripts, sigtrap, and sigblock, that I posted the other day?
Vincent
--
Vincent Stemen
Avoid the VeriSign/Network Solutions domain registration trap!
Read how Network Solutions (NSI) was involved in stealing our domain name.
http://www.InetAddresses.net
^ permalink raw reply [relevance 0%]
* Re: PATCH: (3) Re: FreeBSD compatability feature request
2004-05-01 1:45 0% ` Vincent Stemen
@ 2004-05-01 2:23 0% ` Vincent Stemen
0 siblings, 0 replies; 200+ results
From: Vincent Stemen @ 2004-05-01 2:23 UTC (permalink / raw)
To: Zsh hackers list
On Fri, Apr 30, 2004 at 08:45:30PM -0500, Vincent Stemen wrote:
> On Fri, Apr 30, 2004 at 10:26:24PM +0100, Peter Stephenson wrote:
> > Patch to apply on top of previous goes to attempt to handle TRAPS_ASYNC
> > the way I think is intended. It's basically an `if' with a
> > sigemptyset() inside it, hope no one was expecting anything sophisticated.
> >
> > It doesn't fix the behaviour I noted, that without the option any child
> > exiting, not just the one the shell is currently expecting, causes traps
> > to be run. Probably that's not a big issue; I should really check the
> > wording of POSIX.
> >
> > So I think that's it... Vincent?
>
> Hi Peter.
>
> I applied the patch and, unfortunately, it did not seem to change the
> behavior at all under FreeBSD. It still waits for the child to exit
> before processing the signal in the parent even though "set -T" is
> used. Does your patch work under Linux using the two small test
> scripts, sigtrap, and sigblock, that I posted the other day?
I take that back. My mistake. I accidently tested it running as zsh
so it was not in sh compatibility mode. It does appear to work
correctly. Thank you very much. I will do some more testing with the
FreeBSD init scripts and let you know if I encounter any other
problems.
Regards,
Vincent
--
Vincent Stemen
Avoid the VeriSign/Network Solutions domain registration trap!
Read how Network Solutions (NSI) was involved in stealing our domain name.
http://www.InetAddresses.net
^ permalink raw reply [relevance 0%]
* Re: PATCH: (3) - FreeBSD compatability issue resolved
2004-04-30 21:26 2% ` PATCH: (3) " Peter Stephenson
2004-05-01 1:45 0% ` Vincent Stemen
@ 2004-05-04 7:17 0% ` Vincent Stemen
1 sibling, 0 replies; 200+ results
From: Vincent Stemen @ 2004-05-04 7:17 UTC (permalink / raw)
To: Zsh hackers list
On Fri, Apr 30, 2004 at 10:26:24PM +0100, Peter Stephenson wrote:
> Patch to apply on top of previous goes to attempt to handle TRAPS_ASYNC
> the way I think is intended. It's basically an `if' with a
> sigemptyset() inside it, hope no one was expecting anything sophisticated.
>
> It doesn't fix the behaviour I noted, that without the option any child
> exiting, not just the one the shell is currently expecting, causes traps
> to be run. Probably that's not a big issue; I should really check the
> wording of POSIX.
>
> So I think that's it... Vincent?
Just following up with a status report. I did further testing, running the
FreeBSD boot and shutdown scripts and, so far as I can tell, everything is
working great as a plug in replacement for /bin/sh now. Nice work!
The only minor thing I noticed is some warnings I get when I compile:
parameter.c: In function `scanpmparameters':
parameter.c:191: warning: dereferencing type-punned pointer will break strict-aliasing rules
parameter.c: In function `scanpmcommands':
parameter.c:330: warning: dereferencing type-punned pointer will break strict-aliasing rules
...etc, etc.
I saw in the list archive, that you discussed this back in February. I did
not know the status of it so I thought I would mention it in case you were
unaware these warnings were still being produced under FreeBSD. I am
compiling with gcc-3.2.2.
Thanks again, Peter, for quickly addressing the FreeBSD sh compatibility
signal issue.
Best regards,
Vincent
--
Vincent Stemen
Avoid the VeriSign/Network Solutions domain registration trap!
Read how Network Solutions (NSI) was involved in stealing our domain name.
http://www.InetAddresses.net
^ permalink raw reply [relevance 0%]
* Discussion of POSIX "cd" changes from austin-group
@ 2004-05-11 14:47 2% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2004-05-11 14:47 UTC (permalink / raw)
To: zsh-workers
I don't know if anyone else is following this stuff any more, but this is
probably relevant to zsh. I *think* zsh already has the behavior of first
trying to cd based on $PWD and then trying again with a literal path if
that fails, so it avoids the bug noted by Andries Brouwer -- but not in
the way that the proposed aardvark would require.
Visit the austin-group archives for the full thread, this is just the tail
of the thread so far. I'm pointing this out now rather than wait for the
actual aardvark because I'll be away from email for a while starting the
end of this week.
I guess it's just as well I've never gotten around to rewriting the guts
of bin_cd().
---------- Forwarded message ----------
Date: Mon, 10 May 2004 17:21:05 +0100
From: Geoff Clare <gwc@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Re: cd, relative paths, and PATH_MAX
Resent-Date: 10 May 2004 16:21:33 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
Based on the discussion so far, I have made a first attempt at some
editing instructions to go in an aardvark. They include a fix for the
problem that Chet identified in step 8.
Any comments?
Action:
Replace step 7 with the following:
"7. If the -P option is in effect, proceed to step 9."
(Note that most of the old step 7 text reappears in the new step 10
below.)
Replace step 8b with the following:
"b. For each dot-dot component, if there is a preceding component
and it is neither root nor dot-dot, then:
i. If the preceding component does not refer (in the
context of pathname resolution with symbolic links followed)
to a directory, then the cd utility shall display an
appropriate error message and no further steps shall be
taken.
ii. The preceding component, all slashes separating the
preceding component from dot-dot, dot-dot and all slashes
separating dot-dot from the following component (if any)
shall be deleted."
Insert a new step 9:
"9. If curpath is longer than {PATH_MAX} bytes (including the
terminating null) and the directory operand was not longer
than {PATH_MAX} bytes (including the terminating null), then
curpath shall be converted from an absolute pathname to an
equivalent relative pathname if possible. This conversion
shall always be considered possible if the value of PWD is
an initial substring of curpath. Whether or not it is
considered possible under other circumstances is
implementation-dependent."
Replace the old step 9 with the following:
"10. The cd utility shall then perform actions equivalent to the
chdir() function called with curpath as the path argument.
If these actions fail for any reason, the cd utility shall
display an appropriate error message and the remainder of
this step shall not be executed. If the -P option is not in
effect, the PWD environment variable shall be set to the
value that curpath had on entry to step 9 (i.e. before
conversion to a relative pathname). If the -P option is in
effect, the PWD environment variable shall be set to an
absolute pathname for the current working directory and shall
not contain filename components that, in the context of
pathname resolution, refer to a file of type symbolic link.
If there is insufficient permission on the new directory, or
on any parent of that directory, to determine the current
working directory, the value of the PWD environment variable
is unspecified."
--
Geoff Clare <g.clare@opengroup.org>
The Open Group, Apex Plaza, Forbury Road, Reading, RG1 1AX, England
---------- Forwarded message ----------
Date: Tue, 11 May 2004 10:10:21 +0100
From: Geoff Clare <gwc@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Re: cd, relative paths, and PATH_MAX
Resent-Date: 11 May 2004 09:10:44 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
Seeds, Glen <Glen.Seeds@Cognos.COM> wrote, on 10 May 2004:
>
> "Whether or not it is considered possible under other circumstances is
> implementation-dependent."
>
> Available options here are "implementation defined" or "unspecified".
Thanks. On re-reading step 9 I see that there is a problem with the
"substring" condition. It would require conversion if, for example,
PWD is "/home/user1" and curpath is "/home/user12345/something".
I have also realised that just saying it can be considered possible
does not affect the length condition in the way that I had intended.
I have changed "implementation-dependent" to "unspecified", fixed
the substring condition, and added a new sentence on the end about
the length condition. The new step 9 in full is:
"9. If curpath is longer than {PATH_MAX} bytes (including the
terminating null) and the directory operand was not longer
than {PATH_MAX} bytes (including the terminating null), then
curpath shall be converted from an absolute pathname to an
equivalent relative pathname if possible. This conversion
shall always be considered possible if the value of PWD, with
a trailing slash added if it does not already have one, is an
initial substring of curpath. Whether or not it is
considered possible under other circumstances is unspecified.
Implementations may also apply this conversion if curpath is
not longer than {PATH_MAX} bytes or the directory operand was
longer than {PATH_MAX} bytes."
--
Geoff Clare <g.clare@opengroup.org>
The Open Group, Apex Plaza, Forbury Road, Reading, RG1 1AX, England
---------- Forwarded message ----------
Date: Tue, 11 May 2004 14:49:27 +0100
From: Geoff Clare <gwc@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Re: cd, relative paths, and PATH_MAX
Resent-Date: 11 May 2004 13:49:47 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
Andries Brouwer <Andries.Brouwer@cwi.nl> wrote, on 11 May 2004:
>
> > > Suppose the current working directory has a subdirectory abc,
> > > and I want to change the current working directory there, what do I do?
[snip]
> > use "cd ./abc" and make sure that you don't ever set PWD directly
> > (or unset it).
>
> No, that is not the right answer.
> What sometimes happens is that some directory lower in the tree
> gets renamed. So I do not touch PWD, and the inode that is my
> current working directory does not change, but PWD no longer
> is a pathname that points to it.
Okay, I see the problem now.
Since cd's logical directory handling is fundamentally dependent on
PWD, I think the answer you want ought to be "cd -P ./abc". However,
the spec doesn't currently require that to work. (Nor would my
proposed modified text, in its current form.)
The simplest fix would be for the new step 9 to require that
conversion back to a relative path is always done if the -P option
is in effect. A more elegant fix might be not to convert to an
absolute path in the first place when -P is in effect. I.e. with -P,
step 6 would set curpath to the operand and step 9 would be skipped.
In the latter case an implementation could still do a conversion
to absolute path and back to relative (like ksh does), as the
behaviour seen by applications (or interactive users) would be the
same.
Unless someone can suggest a reason for preferring the simpler fix,
I'm inclined to go for the more elegant one.
--
Geoff Clare <g.clare@opengroup.org>
The Open Group, Apex Plaza, Forbury Road, Reading, RG1 1AX, England
^ permalink raw reply [relevance 2%]
* Re: RANDOMSMALL <range> [ <seed> ]
@ 2004-06-08 21:20 3% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-06-08 21:20 UTC (permalink / raw)
To: Zsh hackers list
> Zsh's RANDOM function is deficient.
It's limited by POSIX, though I haven't checked how much. Look at the
math function rand48 in the zsh/mathfunc package --- search zshmodules.
--
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
Work: pws@csr.com
Web: http://www.pwstephenson.fsnet.co.uk
^ permalink raw reply [relevance 3%]
* [hugo@larve.net: Bug#261775: zsh: Space in filenames completion bug for rsync]
@ 2004-07-28 15:37 3% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-07-28 15:37 UTC (permalink / raw)
To: zsh-workers; +Cc: 261775-forwarded
----- Forwarded message from Hugo Haas <hugo@larve.net> -----
Hi.
Here is the issue.
hugo@buena ~> rsync foobar:/tmp/a<tab>
/tmp/a b /tmp/aaaaaaa
/tmp/aaa/
With another <tab>:
hugo@buena ~> rsync foobar:/tmp/a\ b
Finally, running the command:
hugo@buena ~> rsync foobar:/tmp/a\ b .
I get:
hugo@buena ~> rsync foobar:/tmp/a\ b .
receiving file list ...
link_stat "/tmp/a" failed: No such file or directory
link_stat "/home/hugo/b" failed: No such file or directory
0 files to consider
client: nothing to do: perhaps you need to specify some filenames or the --recursive option?
rsync error: some files could not be transferred (code 23) at main.c(653)
Backslashes should be "triple-escaped" like the scp completion does.
Regards,
Hugo
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (900, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.7
Locale: LANG=C, LC_CTYPE=C (ignored: LC_ALL set to en_US.UTF-8)
Versions of packages zsh depends on:
ii debconf 1.4.29 Debian configuration management sy
ii libc6 2.3.2.ds1-13 GNU C Library: Shared libraries an
ii libcap1 1:1.10-14 support for getting/setting POSIX.
ii libncurses5 5.4-4 Shared libraries for terminal hand
ii passwd 1:4.0.3-29 Change and administer password and
-- debconf information excluded
--
Hugo Haas - http://larve.net/people/hugo/
----- End forwarded message -----
^ permalink raw reply [relevance 3%]
* PATCH: truncation warning
@ 2004-08-09 17:37 7% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-08-09 17:37 UTC (permalink / raw)
To: Zsh hackers list
This doesn't fix the problem to do with the inconsistent sizes of
parameters and internal variables, but how does everybody feel about
truncating a string converted to a number if necessary and warning when
that happens?
With 64-bit arithmetic, for example:
% integer foo=-0x8000000000000000
% print $foo
-16#8000000000000000
% integer foo=-0x8000000000000001
zsh: number truncated after 15 digits: 8000000000000001
% print $foo
-16#800000000000000
Raising an error would in principle be possible, but would need some
rewriting since it looks like errflag is being reset in cases like those
above and is not being tested between the call to zstrtol and the
assignment. The current assumption is that zstrtol() always works, and
it's heavily used, so this isn't a simple change. In fact, it's likely
to be a nightmare to make really consistent since a lot of the uses are
deep in the bowels of the shell.
The special case of the smallest negative integer accounts for most of
the code in the patch. In particular, the math parser had to be
rewritten to parse the value as a single constant. (This means
`- 0x8000000000000000' doesn't work, but actually that agrees with my
understanding of the grammar: it consists of two tokens, the second of
which isn't a representable integer.)
Index: Src/math.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/math.c,v
retrieving revision 1.20
diff -u -r1.20 math.c
--- Src/math.c 13 May 2004 20:04:24 -0000 1.20
+++ Src/math.c 9 Aug 2004 17:34:52 -0000
@@ -186,6 +186,68 @@
/* 50 */ LR|OP_OPF, RL|OP_E2, LR|OP_OPF
};
+static int
+lexconstant(void)
+{
+#ifdef USE_LOCALE
+ char *prev_locale;
+#endif
+ char *nptr;
+
+ nptr = ptr;
+ if (*nptr == '-')
+ nptr++;
+
+ if (*nptr == '0')
+ {
+ nptr++;
+ if (*nptr == 'x' || *nptr == 'X') {
+ /* Let zstrtol parse number with base */
+ yyval.u.l = zstrtol(ptr, &ptr, 0);
+ /* Should we set lastbase here? */
+ lastbase = 16;
+ return NUM;
+ }
+ else if (isset(OCTALZEROES) &&
+ (memchr(nptr, '.', strlen(nptr)) == NULL) &&
+ idigit(*nptr)) {
+ yyval.u.l = zstrtol(ptr, &ptr, 0);
+ lastbase = 8;
+ return NUM;
+ }
+ }
+
+ while (idigit(*nptr))
+ nptr++;
+
+ if (*nptr == '.' || *nptr == 'e' || *nptr == 'E') {
+ /* it's a float */
+ yyval.type = MN_FLOAT;
+#ifdef USE_LOCALE
+ prev_locale = dupstring(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "POSIX");
+#endif
+ yyval.u.d = strtod(ptr, &nptr);
+#ifdef USE_LOCALE
+ if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
+#endif
+ if (ptr == nptr || *nptr == '.') {
+ zerr("bad floating point constant", NULL, 0);
+ return EOI;
+ }
+ ptr = nptr;
+ } else {
+ /* it's an integer */
+ yyval.u.l = zstrtol(ptr, &ptr, 10);
+
+ if (*ptr == '#') {
+ ptr++;
+ yyval.u.l = zstrtol(ptr, &ptr, lastbase = yyval.u.l);
+ }
+ }
+ return NUM;
+}
+
/**/
int outputradix;
@@ -193,9 +255,6 @@
static int
zzlex(void)
{
-#ifdef USE_LOCALE
- char *prev_locale;
-#endif
int cct = 0;
yyval.type = MN_INTEGER;
@@ -220,7 +279,14 @@
ptr++;
return MINUSEQ;
}
- return (unary) ? UMINUS : MINUS;
+ if (unary) {
+ if (idigit(*ptr) || *ptr == '.') {
+ ptr--;
+ return lexconstant();
+ } else
+ return UMINUS;
+ } else
+ return MINUS;
case '(':
return M_INPAR;
case ')':
@@ -376,52 +442,10 @@
case '\t':
case '\n':
break;
- case '0':
- if (*ptr == 'x' || *ptr == 'X') {
- ptr++;
- /* Should we set lastbase here? */
- yyval.u.l = zstrtol(ptr, &ptr, lastbase = 16);
- return NUM;
- }
- else if (isset(OCTALZEROES) &&
- (memchr(ptr, '.', strlen(ptr)) == NULL) &&
- idigit(*ptr)) {
- yyval.u.l = zstrtol(ptr, &ptr, lastbase = 8);
- return NUM;
- }
/* Fall through! */
default:
- if (idigit(*--ptr) || *ptr == '.') {
- char *nptr;
- for (nptr = ptr; idigit(*nptr); nptr++);
-
- if (*nptr == '.' || *nptr == 'e' || *nptr == 'E') {
- /* it's a float */
- yyval.type = MN_FLOAT;
-#ifdef USE_LOCALE
- prev_locale = dupstring(setlocale(LC_NUMERIC, NULL));
- setlocale(LC_NUMERIC, "POSIX");
-#endif
- yyval.u.d = strtod(ptr, &nptr);
-#ifdef USE_LOCALE
- if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
-#endif
- if (ptr == nptr || *nptr == '.') {
- zerr("bad floating point constant", NULL, 0);
- return EOI;
- }
- ptr = nptr;
- } else {
- /* it's an integer */
- yyval.u.l = zstrtol(ptr, &ptr, 10);
-
- if (*ptr == '#') {
- ptr++;
- yyval.u.l = zstrtol(ptr, &ptr, lastbase = yyval.u.l);
- }
- }
- return NUM;
- }
+ if (idigit(*--ptr) || *ptr == '.')
+ return lexconstant();
if (*ptr == '#') {
if (*++ptr == '\\' || *ptr == '#') {
int v;
Index: Src/utils.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/utils.c,v
retrieving revision 1.63
diff -u -r1.63 utils.c
--- Src/utils.c 2 Jun 2004 22:14:26 -0000 1.63
+++ Src/utils.c 9 Aug 2004 17:34:54 -0000
@@ -1261,7 +1261,8 @@
mod_export zlong
zstrtol(const char *s, char **t, int base)
{
- zlong ret = 0;
+ const char *inp, *trunc = NULL;
+ zulong calc = 0, newcalc = 0;
int neg;
while (inblank(*s))
@@ -1280,16 +1281,54 @@
else
base = 8;
}
+ inp = s;
if (base <= 10)
- for (; *s >= '0' && *s < ('0' + base); s++)
- ret = ret * base + *s - '0';
+ for (; *s >= '0' && *s < ('0' + base); s++) {
+ if (trunc)
+ continue;
+ newcalc = calc * base + *s - '0';
+ if (newcalc < calc)
+ {
+ trunc = s;
+ continue;
+ }
+ calc = newcalc;
+ }
else
for (; idigit(*s) || (*s >= 'a' && *s < ('a' + base - 10))
- || (*s >= 'A' && *s < ('A' + base - 10)); s++)
- ret = ret * base + (idigit(*s) ? (*s - '0') : (*s & 0x1f) + 9);
+ || (*s >= 'A' && *s < ('A' + base - 10)); s++) {
+ if (trunc)
+ continue;
+ newcalc = calc*base + (idigit(*s) ? (*s - '0') : (*s & 0x1f) + 9);
+ if (newcalc < calc)
+ {
+ trunc = s;
+ continue;
+ }
+ calc = newcalc;
+ }
+
+ /*
+ * Special case: check for a number that was just too long for
+ * signed notation.
+ * Extra special case: the lowest negative number would trigger
+ * the first test, but is actually representable correctly.
+ * This is a 1 in the top bit, all others zero, so test for
+ * that explicitly.
+ */
+ if (!trunc && (zlong)calc < 0 &&
+ (!neg || calc & ~((zulong)1 << (8*sizeof(zulong)-1))))
+ {
+ trunc = s - 1;
+ calc /= base;
+ }
+
+ if (trunc)
+ zwarn("number truncated after %d digits: %s", inp, trunc - inp);
+
if (t)
*t = (char *)s;
- return neg ? -ret : ret;
+ return neg ? -(zlong)calc : (zlong)calc;
}
/**/
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 7%]
* history probs, build probs
@ 2004-08-19 6:57 2% Denis Lagno
0 siblings, 0 replies; 200+ results
From: Denis Lagno @ 2004-08-19 6:57 UTC (permalink / raw)
To: zsh-workers
Hi,
I use zsh-4.0.6 on NetBSD-current.
I repeatedly (probably monthly or bimonthly) observe partial
losing of history. I lose last events, not oldest.
History file got truncated at a sector boundary.
Of course it can be FFS softdeps related issue,
but I lose no other things.
My history related settings are:
export HISTSIZE=500000
export HISTFILE=~/.zhistory
export SAVEHIST=500000
setopt HIST_SAVE_NO_DUPS
setopt EXTENDED_HISTORY
setopt INC_APPEND_HISTORY
FWIW ~/.zhistory is symlink to other location.
Maybe symlink triggers some race condition saving history??
So I decided to build zsh-current checked out from cvs repository.
I have problems building it, both with GNU make or BSD make:
$ ./Util/preconfig
cd . && ./.preconfig
$ ./configure
configuring for zsh 4.2.1-dev-1
checking build system type... unknown-unknown-netbsd2.0G
checking host system type... unknown-unknown-netbsd2.0G
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking whether large file support needs explicit enabling... no
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines...
checking for egrep... /usr/bin/grep -E
checking whether gcc needs -traditional... no
checking for an ANSI C-conforming const... yes
checking for gcc option to accept ANSI C...
checking whether to use prototypes... yes
checking for working alloca.h... no
checking for alloca... yes
checking if the compiler supports union initialisation... yes
checking if signed to unsigned casting is broken... no
checking if the compiler supports variable-length arrays... yes
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether ln works... yes
checking for yodl... no
checking for ansi2knr... no
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether stat file-mode macros are broken... no
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking termcap.h usability... yes
checking termcap.h presence... yes
checking for termcap.h... yes
checking termio.h usability... no
checking termio.h presence... no
checking for termio.h... no
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/filio.h usability... yes
checking sys/filio.h presence... yes
checking for sys/filio.h... yes
checking for string.h... (cached) yes
checking for memory.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libc.h usability... no
checking libc.h presence... no
checking for libc.h... no
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking sys/capability.h usability... no
checking sys/capability.h presence... no
checking for sys/capability.h... no
checking utmp.h usability... yes
checking utmp.h presence... yes
checking for utmp.h... yes
checking utmpx.h usability... yes
checking utmpx.h presence... yes
checking for utmpx.h... yes
checking for sys/types.h... (cached) yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking poll.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking netinet/in_systm.h usability... yes
checking netinet/in_systm.h presence... yes
checking for netinet/in_systm.h... yes
checking pcre.h usability... no
checking pcre.h presence... no
checking for pcre.h... no
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking sys/stropts.h usability... no
checking sys/stropts.h presence... no
checking for sys/stropts.h... no
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking dl.h usability... no
checking dl.h presence... no
checking for dl.h... no
checking for conflicts in sys/time.h and sys/select.h... no
checking POSIX termios... yes
checking TIOCGWINSZ in termios.h... yes
checking for streams headers including struct winsize... no
checking for printf in -lc... yes
checking for pow in -lm... yes
checking for library containing tgetent... -ltermcap
checking for library containing tigetflag... no
checking curses.h usability... yes
checking curses.h presence... yes
checking for curses.h... yes
checking term.h usability... no
checking term.h presence... no
checking for term.h... no
checking for library containing yp_all... none required
checking for dlopen in -ldl... no
checking for socket in -lsocket... no
checking for iconv in -liconv... no
checking if an include file defines ospeed... yes
checking return type of signal handlers... void
checking for pid_t... yes
checking for off_t... yes
checking for ino_t... yes
checking for mode_t... yes
checking for uid_t in sys/types.h... yes
checking for size_t... yes
checking if long is 64 bits... no
checking if off_t is 64 bit... yes
checking if ino_t is 64 bit... no
checking if compiler has a 64 bit type... long long
checking for a corresponding unsigned 64 bit type... unsigned long long
checking for sigset_t... yes
checking for struct timezone... yes
checking for struct utmp... yes
checking for struct utmpx... yes
checking for ut_host in struct utmp... yes
checking for ut_host in struct utmpx... yes
checking for ut_xtime in struct utmpx... yes
checking for ut_tv in struct utmpx... yes
checking for d_ino in struct dirent... yes
checking for d_stat in struct dirent... no
checking for d_ino in struct direct... no
checking for d_stat in struct direct... no
checking for sin6_scope_id in struct sockaddr_in6... yes
checking if we need our own h_errno... no
checking for strftime... yes
checking for difftime... yes
checking for gettimeofday... yes
checking for select... yes
checking for poll... yes
checking for readlink... yes
checking for faccessx... no
checking for fchdir... yes
checking for ftruncate... yes
checking for fstat... yes
checking for lstat... yes
checking for lchown... yes
checking for fseeko... yes
checking for ftello... yes
checking for mkfifo... yes
checking for _mktemp... yes
checking for mkstemp... yes
checking for waitpid... yes
checking for wait3... yes
checking for sigaction... yes
checking for sigblock... yes
checking for sighold... yes
checking for sigrelse... yes
checking for sigsetmask... yes
checking for sigprocmask... yes
checking for killpg... yes
checking for setpgid... yes
checking for setpgrp... yes
checking for tcsetpgrp... yes
checking for tcgetattr... yes
checking for nice... yes
checking for gethostname... yes
checking for gethostbyname2... yes
checking for getipnodebyname... no
checking for inet_aton... yes
checking for inet_pton... yes
checking for inet_ntop... yes
checking for getlogin... yes
checking for getpwent... yes
checking for getpwnam... yes
checking for getpwuid... yes
checking for getgrgid... yes
checking for getgrnam... yes
checking for initgroups... yes
checking for nis_list... no
checking for setuid... yes
checking for seteuid... yes
checking for setreuid... yes
checking for setresuid... no
checking for setsid... yes
checking for memcpy... yes
checking for memmove... yes
checking for strstr... yes
checking for strerror... yes
checking for getrlimit... yes
checking for setlocale... yes
checking for uname... yes
checking for signgam... yes
checking for putenv... yes
checking for getenv... yes
checking for brk... yes
checking for sbrk... yes
checking for pathconf... yes
checking for sysconf... yes
checking for tgetent... yes
checking for tigetflag... no
checking for tigetnum... no
checking for tigetstr... no
checking for setupterm... no
checking for pcre_compile... no
checking for pcre_study... no
checking for pcre_exec... no
checking for nl_langinfo... yes
checking for erand48... yes
checking for open_memstream... no
checking for wctomb... yes
checking for iconv... yes
checking for grantpt... yes
checking for unlockpt... yes
checking for ptsname... yes
checking for htons... yes
checking for ntohs... yes
checking for working strcoll... yes
checking if tgetent accepts NULL... no
checking if tgetent returns 0 on success... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking for munmap... yes
checking for msync... yes
checking whether getpgrp requires zero arguments... yes
checking for dlopen... yes
checking for dlerror... yes
checking for dlsym... yes
checking for dlclose... yes
checking for load... no
checking for loadquery... no
checking for loadbind... no
checking for unload... no
checking for shl_load... no
checking for shl_unload... no
checking for shl_findsym... no
checking what style of signals to use... POSIX_SIGNALS
checking where signal.h is located... /usr/include/sys/signal.h
checking where error names are located... /usr/include/sys/errno.h
checking where the RLIMIT macros are located... /usr/include/sys/resource.h
checking if rlim_t is longer than a long... yes
checking if rlim_t is a quad... yes
checking for rlim_t... yes
checking for limit RLIMIT_AIO_MEM... no
checking for limit RLIMIT_AIO_OPS... no
checking for limit RLIMIT_AS... no
checking for limit RLIMIT_LOCKS... no
checking for limit RLIMIT_MEMLOCK... yes
checking for limit RLIMIT_NPROC... yes
checking for limit RLIMIT_NOFILE... yes
checking for limit RLIMIT_PTHREAD... no
checking for limit RLIMIT_RSS... yes
checking for limit RLIMIT_SBSIZE... yes
checking for limit RLIMIT_TCACHE... no
checking for limit RLIMIT_VMEM... no
checking if RLIMIT_VMEM and RLIMIT_RSS are the same... no
checking if RLIMIT_VMEM and RLIMIT_AS are the same... no
checking for /dev/fd filesystem... /proc/self/fd
checking for RFS superroot directory... no
checking whether we should use the native getcwd... no
checking for NIS... no
checking for NIS+... no
checking for utmp file... /var/run/utmp
checking for wtmp file... /var/log/wtmp
checking for utmpx file... /var/run/utmpx
checking for wtmpx file... /var/log/wtmpx
checking for brk() prototype in <unistd.h>... yes
checking for sbrk() prototype in <unistd.h>... yes
checking for ioctl prototype in <sys/ioctl.h>... yes
checking for mknod prototype in <sys/stat.h>... yes
checking if named FIFOs work... yes
checking if echo in /bin/sh interprets escape sequences... no
checking if link() works... yes
checking if kill(pid, 0) returns ESRCH correctly... yes
checking if POSIX sigsuspend() works... yes
checking if tcsetpgrp() actually works... yes
checking if getpwnam() is faked... no
checking base type of the third argument to accept... socklen_t
checking if your system has /dev/ptmx... yes
checking if /dev/ptmx is usable... yes
checking if your system uses ELF binaries... yes
checking if your dlsym() needs a leading underscore... no
checking if environ is available in shared libraries... yes
checking if tgetent is available in shared libraries... yes
checking if name clashes in shared objects are OK... yes
checking for working RTLD_GLOBAL... yes
checking whether symbols in the executable are available... no
checking whether executables can be stripped... yes
checking whether libraries can be stripped... yes
./configure:15456: functions: attempt to set slice of associative array
configure: creating ./config.status
config.status: creating Config/defs.mk
config.status: creating Makefile
config.status: creating Doc/Makefile
config.status: creating Etc/Makefile
config.status: creating Src/Makefile
config.status: creating Test/Makefile
config.status: creating config.h
config.status: executing config.modules commands
creating ./config.modules
config.status: executing stamp-h commands
zsh configuration
-----------------
zsh version : 4.2.1-dev-1
host operating system : unknown-unknown-netbsd2.0G
source code location : .
compiler : gcc
preprocessor flags :
executable compiler flags : -Wall -Wmissing-prototypes -O2
module compiler flags : -Wall -Wmissing-prototypes -O2 -fPIC
executable linker flags : -s
module linker flags : -s -Wl,-x -shared --whole-archive
library flags : -ltermcap -lm -lc
installation basename : zsh
binary install path : /usr/local/bin
man page install path : /usr/local/man
info install path : /usr/local/info
functions install path : /usr/local/share/zsh/4.2.1-dev-1/functions
See config.modules for installed modules and functions.
$ gmake
gmake[1]: Entering directory `/volatile/worksrc/zsh/Src'
cd .. && /bin/sh $top_srcdir/Src/mkmakemod.sh Src Makemod
creating Src/Makemod.in
config.status: creating Src/Makemod
gmake[2]: Entering directory `/volatile/worksrc/zsh/Src'
echo 'timestamp for *.mdd files' > ../Src/modules.stamp
gmake[2]: Leaving directory `/volatile/worksrc/zsh/Src'
gmake[2]: Entering directory `/volatile/worksrc/zsh/Src'
gmake[2]: Leaving directory `/volatile/worksrc/zsh/Src'
rm -f stamp-modobjs.tmp
gmake[2]: Entering directory `/volatile/worksrc/zsh/Src'
gmake[2]: Leaving directory `/volatile/worksrc/zsh/Src'
mv: rename stamp-modobjs.tmp to stamp-modobjs: No such file or directory
Updated `stamp-modobjs'.
rm -f libzsh-4.2.1-dev-1.so
gcc -s -Wl,-x -shared --whole-archive -o libzsh-4.2.1-dev-1.so `cat stamp-modobjs` -ltermcap -lm -lc
cat: stamp-modobjs: No such file or directory
gmake[2]: Entering directory `/volatile/worksrc/zsh/Src'
gcc -c -I. -DHAVE_CONFIG_H -Wall -Wmissing-prototypes -O2 -fPIC -o main.o main.c
main.c:30:19: zsh.mdh: No such file or directory
main.c:31:20: main.pro: No such file or directory
main.c: In function `main':
main.c:93: warning: implicit declaration of function `zsh_main'
gmake[2]: *** [main.o] Error 1
gmake[2]: Leaving directory `/volatile/worksrc/zsh/Src'
gmake[1]: *** [main.o] Error 2
gmake[1]: Leaving directory `/volatile/worksrc/zsh/Src'
gmake: *** [all] Error 1
$ make
rm -f stamp-modobjs.tmp
mv: rename stamp-modobjs.tmp to stamp-modobjs: No such file or directory
Updated `stamp-modobjs'.
rm -f libzsh-4.2.1-dev-1.so
gcc -s -Wl,-x -shared --whole-archive -o libzsh-4.2.1-dev-1.so `cat stamp-modobjs` -ltermcap -lm -lc
cat: stamp-modobjs: No such file or directory
gcc -c -I. -DHAVE_CONFIG_H -Wall -Wmissing-prototypes -O2 -fPIC -o main.o main.c
main.c:30:19: zsh.mdh: No such file or directory
main.c:31:20: main.pro: No such file or directory
main.c: In function `main':
main.c:93: warning: implicit declaration of function `zsh_main'
*** Error code 1
Stop.
make: stopped in /var/worksrc/zsh/Src
*** Error code 1
Stop.
make: stopped in /var/worksrc/zsh/Src
*** Error code 1
Stop.
make: stopped in /var/worksrc/zsh
--
Denis Lagno,
PGP key fingerprint: F94F F38F 1895 E673 4374 9D63 2B9E FAB3 8E83 584C
^ permalink raw reply [relevance 2%]
* [vincent@vinc17.org: Bug#269769: zsh: sabcmd completion doesn't work]
@ 2004-09-03 14:02 4% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-09-03 14:02 UTC (permalink / raw)
To: zsh-workers
I get the same behavior.
----- Forwarded message from Vincent Lefevre <vincent@vinc17.org> -----
Date: Fri, 3 Sep 2004 14:05:59 +0200
From: Vincent Lefevre <vincent@vinc17.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: Bug#269769: zsh: sabcmd completion doesn't work
Package: zsh
Version: 4.2.1-3
Severity: normal
zsh refuses to complete on stylesheet and XML filenames for sabcmd.
For instance:
$ zsh -f
greux% autoload -U compinit
greux% compinit
greux% ls
file1.xsl
greux% sabcmd [TAB]
file1.xsl
I just get the menu, but the completion doesn't work.
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.8
Locale: LANG=POSIX, LC_CTYPE=en_US.ISO8859-1
Versions of packages zsh depends on:
ii debconf 1.4.34 Debian configuration management sy
ii libc6 2.3.2.ds1-16 GNU C Library: Shared libraries an
ii libcap1 1:1.10-14 support for getting/setting POSIX.
ii libncurses5 5.4-4 Shared libraries for terminal hand
ii passwd 1:4.0.3-30 Change and administer password and
-- debconf information excluded
----- End forwarded message -----
^ permalink raw reply [relevance 4%]
* Re: Any comments on users/7883 ?
@ 2004-09-06 12:45 4% ` Oliver Kiddle
2004-09-06 13:15 0% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2004-09-06 12:45 UTC (permalink / raw)
To: zsh-workers
--- Peter Stephenson <pws@csr.com> wrote:
> The error message for 'command -v blub' is now `no such builtin: -v'.
> Is that correct? I don't see any documentation for the fact that the
> -v argument isn't handled when posixbuiltins is set.
The POSIX specification for command -v says: "Otherwise, no output
shall be written and the exit status shall reflect that the name was
not found." So it shouldn't print an error message.
I would have thought that -v should be handled when posixbuiltins is
set. It is only there because of POSIX to begin with.
Oliver
___________________________________________________________ALL-NEW Yahoo! Messenger - all new features - even more fun! http://uk.messenger.yahoo.com
^ permalink raw reply [relevance 4%]
* Re: Any comments on users/7883 ?
2004-09-06 12:45 4% ` Oliver Kiddle
@ 2004-09-06 13:15 0% ` Peter Stephenson
2004-09-07 5:24 4% ` Bart Schaefer
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2004-09-06 13:15 UTC (permalink / raw)
To: zsh-workers
=?iso-8859-1?q?Oliver=20Kiddle?= wrote:
> --- Peter Stephenson <pws@csr.com> wrote:
>
> > The error message for 'command -v blub' is now `no such builtin: -v'.
> > Is that correct? I don't see any documentation for the fact that the
> > -v argument isn't handled when posixbuiltins is set.
>
> The POSIX specification for command -v says: "Otherwise, no output
> shall be written and the exit status shall reflect that the name was
> not found." So it shouldn't print an error message.
That's just because command -v wasn't recognised as a command with an
option. It works properly when the shell gets that far.
> I would have thought that -v should be handled when posixbuiltins is
> set. It is only there because of POSIX to begin with.
I think this is the answer. It may be just an oversight. The second
hunk now doesn't get reached, but the change seems right anyway.
The test hn == (HashNode)&commandbn now gets an error message about
`dereferencing type-punned pointer', even though it's obviously never
dereferenced.
I still don't properly understand the logic here.
Index: Src/exec.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/exec.c,v
retrieving revision 1.70
diff -u -r1.70 exec.c
--- Src/exec.c 3 Sep 2004 09:47:49 -0000 1.70
+++ Src/exec.c 6 Sep 2004 13:15:17 -0000
@@ -1939,8 +1939,18 @@
return;
}
+ /*
+ * Quit looking for a command
+ * - if there was an error, or
+ * - if we have checked that the hash entry is suitable, or
+ * - if we are using the command prefix and either
+ * - we are not using POSIXBUILTINS, or
+ * - we have determined there are options which would
+ * require us to use the command builtin.
+ */
if (errflag || checked ||
- (unset(POSIXBUILTINS) && (cflags & BINF_COMMAND)))
+ ((cflags & BINF_COMMAND) &&
+ (unset(POSIXBUILTINS) || hn == (HashNode)&commandbn)))
break;
cmdarg = (char *) peekfirst(args);
@@ -1950,7 +1960,7 @@
break;
}
if (!(hn = builtintab->getnode(builtintab, cmdarg))) {
- if (cflags & BINF_BUILTIN) {
+ if ((cflags & BINF_BUILTIN) || is_builtin) {
zwarn("no such builtin: %s", cmdarg, 0);
lastval = 1;
opts[AUTOCONTINUE] = oautocont;
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 0%]
* Re: Any comments on users/7883 ?
2004-09-06 13:15 0% ` Peter Stephenson
@ 2004-09-07 5:24 4% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2004-09-07 5:24 UTC (permalink / raw)
To: zsh-workers
On Mon, 6 Sep 2004, Peter Stephenson wrote:
> Bart Schaefer wrote:
> > It fixes a crash bug, so it should either get committed or someone should
> > deduce the better fix to which I alluded.
>
> Isn't this the correct fix?
I don't think so ...
(It looks like nobody understands this code, me included. Did Zefram
write it, originally?)
> The problem with hn being NULL is because the later code uses is_builtin
> which assumes it isn't NULL.
No, the problem is that hn started out valid and then was improperly
clobbered with a NULL. The question is whether to simply prevent the
clobbering, or to avoid the entire code path that includes clobbering.
[Oliver's reply elided because Peter already quoted it.]
On Mon, 6 Sep 2004, Peter Stephenson wrote:
> =?iso-8859-1?q?Oliver=20Kiddle?= wrote:
> > I would have thought that -v should be handled when posixbuiltins is
> > set. It is only there because of POSIX to begin with.
>
> I think this is the answer. It may be just an oversight. The second
> hunk now doesn't get reached, but the change seems right anyway.
I think you found the right "if" branch test to modify, but I'm not yet
convinced you've got the test right. Skipping ahead to the patch:
> + * Quit looking for a command
> + * - if there was an error, or
> + * - if we have checked that the hash entry is suitable, or
"we have checked that the hash entry is suitable" is not AFAICT what the
"checked" boolean means. If we've found any hash entry, it's always
"suitable," again AFAICT. Rather, "checked" means that it's OK to apply
MAGIC_EQUAL_SUBST, according to the comment up around line 1805. (Maybe
its semantics have been overloaded?)
> + * - if we are using the command prefix and either
> + * - we are not using POSIXBUILTINS, or
> + * - we have determined there are options which would
> + * require us to use the command builtin.
This is the key bit here. I think the right fix is to check "is_builtin"
not "hn == (HashNode)&commandbn" -- and that it's not necessary to && it
with (cflags & BINF_COMMAND) the way you have.
There are only two ways "is_builtin" could be true at that point. One,
we've loaded a builtin from a module (line 1821); two, we've decided we
need commandbn (line 1848). In either case it's unecessary to call
builtintab->getnode() again, although in the former case it's harmless.
(Is it just me, or is there a crash waiting to happen at line 1828 in the
event of a badly written module?)
> The test hn == (HashNode)&commandbn now gets an error message about
> `dereferencing type-punned pointer', even though it's obviously never
> dereferenced.
On some hardware architectures, even loading a pointer into a register to
compare it to another pointer is equivalent (in terms of causing faults)
to a dereference. Or so says the logic behind C99.
> I still don't properly understand the logic here.
I think among the three of us we're finally getting close. Another patch
for consideration (I've dropped your second hunk because now it's really
impossible for is_builtin to be true at that point):
Index: Src/exec.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/exec.c,v
retrieving revision 1.70
diff -u -r1.70 exec.c
--- Src/exec.c 3 Sep 2004 09:47:49 -0000 1.70
+++ Src/exec.c 7 Sep 2004 05:22:15 -0000
@@ -1825,7 +1825,7 @@
load_module(((Builtin) hn)->optstr);
hn = builtintab->getnode(builtintab, cmdarg);
}
- assign = (hn->flags & BINF_MAGICEQUALS);
+ assign = (hn && (hn->flags & BINF_MAGICEQUALS));
break;
}
cflags &= ~BINF_BUILTIN & ~BINF_COMMAND;
@@ -1939,7 +1939,18 @@
return;
}
- if (errflag || checked ||
+ /*
+ * Quit looking for a command if:
+ * - there was an error; or
+ * - we checked the simple cases needing MAGIC_EQUAL_SUBST; or
+ * - we know we already found a builtin (because either:
+ * - we loaded a builtin from a module, or
+ * - we have determined there are options which would
+ * require us to use the "command" builtin); or
+ * - we aren't using POSIX and so BINF_COMMAND indicates a zsh
+ * precommand modifier is being used in place of the builtin
+ */
+ if (errflag || checked || is_builtin ||
(unset(POSIXBUILTINS) && (cflags & BINF_COMMAND)))
break;
^ permalink raw reply [relevance 4%]
* [joshk@triplehelix.org: Bug#271196: makefile completion catches some delayed expansions as targets]
@ 2004-09-11 23:16 3% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-09-11 23:16 UTC (permalink / raw)
To: zsh-workers
I can reproduce this, but only if use-perl is off.
----- Forwarded message from Joshua Kwan <joshk@triplehelix.org> -----
I have this in a debian/rules file:
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS := -g -O0 -Wall
else
CFLAGS := -g -O2 -Wall
endif
Completion shows:
% make -f debian/rules
CFLAGS build-arch build-stamp-indep
binary build-indep clean
build build-stamp-arch install
CFLAGS shouldn't get flagged as a target.
The complete debian/rules is attached.
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (500, 'unstable'), (499, 'testing'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.9-rc1
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (ignored: LC_ALL set to en_US.UTF-8)
Versions of packages zsh depends on:
ii debconf 1.4.34 Debian configuration management sy
ii libc6 2.3.2.ds1-16 GNU C Library: Shared libraries an
ii libcap1 1:1.10-14 support for getting/setting POSIX.
ii libncurses5 5.4-4 Shared libraries for terminal hand
ii passwd 1:4.0.3-30.1 Change and administer password and
-- debconf information excluded
#!/usr/bin/make -f
# debian/rules for devscripts, based on the example file rules.indep.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS := -g -O0 -Wall
else
CFLAGS := -g -O2 -Wall
endif
# Here we perform some checks to ensure that we haven't goofed or left
# debugging code around or ... before we build the package
test: test-stamp
test-stamp:
# debugging info in bts?
if grep -q '\$$debug *= *1' bts.pl; then exit 1; else exit 0; fi
touch test-stamp
build-indep: build-stamp-indep
build-stamp-indep: test-stamp
dh_testdir
touch build-stamp-indep
build-arch: build-stamp-arch
build-stamp-arch: test-stamp
dh_testdir
$(MAKE) CFLAGS='$(CFLAGS)'
touch build-stamp-arch
build: build-arch build-indep
clean:
dh_testdir
dh_testroot
-$(MAKE) clean
rm -f build-stamp* test-stamp
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) DESTDIR=$(CURDIR)/debian/devscripts install
# Build architecture-independent files here.
binary-indep: build-indep
# We have nothing to do
# Build architecture-dependent files here.
binary-arch: build-arch install
dh_testdir
dh_testroot
dh_installdocs README
dh_installexamples
# This is now done by the make install command above
# dh_installman
dh_link /usr/share/devscripts/conf.default \
/usr/share/doc/devscripts/devscripts.conf.ex
dh_installchangelogs
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_perl
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build-arch build-indep build clean binary-indep binary-arch binary \
install
# Local variables:
# mode: makefile
# End:
----- End forwarded message -----
^ permalink raw reply [relevance 3%]
* Re: PATCH: zsh-4.2.1: unset does not follow spec
@ 2004-09-23 7:54 3% ` Bart Schaefer
2004-09-23 9:20 5% ` Peter Stephenson
2004-09-23 9:26 3% ` Oliver Kiddle
0 siblings, 2 replies; 200+ results
From: Bart Schaefer @ 2004-09-23 7:54 UTC (permalink / raw)
To: zsh-workers
On Wed, 22 Sep 2004, Matthias B. wrote:
> On Wed, 22 Sep 2004 08:28:03 -0700 (PDT) Bart Schaefer
> <schaefer@brasslantern.com> wrote:
>
> > It appears to me that FreeBSD and Zsh are interpreting "could not be
> > unset" to include variables that were not set in the first place.
>
> Arguing over the letter of a specification is not useful.
Firstly, I was stating a theory, not arguing a position. Secondly, one
can't start from the premise of "X does not follow the letter of the
specification" and then dismiss all discussion of what the letter _is_.
> When your boss tells you to hammer a nail into the wall at spot X, you
> go there and find that there is already a nail, what do you do?
Wrong question. When your boss tells you to pull a nail out of the wall
at spot X and bring it to him, and you go there and find that there is no
nail to pull, what do you do? Do you think he'll appreciate it if you
never tell him why he didn't get his nail?
That's not the right question either, but it's closer. The right question
is more like: When your boss tells you to pull a nail out of the wall at
spot X, and you go there and find that there is no nail to pull and no
hole where one used to be, how do you find out whether your boss cares
about the hole?
Nevertheless:
> BTW, the behaviour of unset should, I think, depend on the UNSET option.
> If UNSET is off, then unset should report an error if the variable is
> already unset.
This is actually what I was going to suggest.
(Is it time for "emulate posix"?)
^ permalink raw reply [relevance 3%]
* Re: PATCH: zsh-4.2.1: unset does not follow spec
2004-09-23 7:54 3% ` Bart Schaefer
@ 2004-09-23 9:20 5% ` Peter Stephenson
2004-09-23 9:26 3% ` Oliver Kiddle
1 sibling, 0 replies; 200+ results
From: Peter Stephenson @ 2004-09-23 9:20 UTC (permalink / raw)
To: zsh-workers
Bart Schaefer wrote:
> (Is it time for "emulate posix"?)
I suppose it's plausible, since the addition is transparent. We
currently have something along the lines of sh being traditional Bourne
shell, ksh and being more or less a superset of sh (though somebody
pointed out a few weeks ago that ksh doesn't seem to have the effect of
sh_file_expansion). Given that there are differences between ksh and
posix, a new option would probably be necessary.
However, the only use of posix would be to switch to it automatically in
the appropriate place. If you have to trigger it by hand it's too late
for most of the places where people want to guarantee Posix compliance.
How would that be triggered? Some (gag) environment variable?
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 5%]
* Re: PATCH: zsh-4.2.1: unset does not follow spec
2004-09-23 7:54 3% ` Bart Schaefer
2004-09-23 9:20 5% ` Peter Stephenson
@ 2004-09-23 9:26 3% ` Oliver Kiddle
2004-09-23 16:14 4% ` Bart Schaefer
1 sibling, 1 reply; 200+ results
From: Oliver Kiddle @ 2004-09-23 9:26 UTC (permalink / raw)
To: zsh-workers
Bart wrote:
> > BTW, the behaviour of unset should, I think, depend on the UNSET option.
> > If UNSET is off, then unset should report an error if the variable is
> > already unset.
>
> This is actually what I was going to suggest.
Nice try but the unset option (or nounset to be precise) is one of the
options defined in the POSIX specification.
Even if that were not the case, I would disagree. The unset option deals
with variable expansions and I don't see why it would be useful to
overload it with control of this issue. A user's preference on the two
issues wouldn't necessarily correlate.
The specification looks fairly clear to me (zsh is wrong) and I can't
see why anyone would be sufficiently attached to the old behaviour to
want an option for it.
> (Is it time for "emulate posix"?)
Possibly.
How would it differ from "emulate sh"?
Oliver
^ permalink raw reply [relevance 3%]
* Re: PATCH: zsh-4.2.1: unset does not follow spec
2004-09-23 9:26 3% ` Oliver Kiddle
@ 2004-09-23 16:14 4% ` Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2004-09-23 16:14 UTC (permalink / raw)
To: zsh-workers
On Thu, 23 Sep 2004, Oliver Kiddle wrote:
> The specification looks fairly clear to me (zsh is wrong)
On Thu, 23 Sep 2004, Geoff Clare wrote:
>
> I would say that a non-zero exit for "unset" is definitely an error, but
> the standard is unclear as to whether "unset" is required to treat an
> attempt to unset a variable that was not previously set as an ordinary
> error (as opposed to a "utility syntax error", which is definitely not
> allowed).
>
> --
> Geoff Clare, opengroup.org
I don't really have a strong opinion either way (I can't remember EVER
testing the exit status of "unset" but I suppose it could affect the
shell in the case of "setopt errexit"), but I don't think it's as cut
and dried as it should be.
(Back to Oliver)
On Thu, 23 Sep 2004, Oliver Kiddle wrote:
>
> > (Is it time for "emulate posix"?)
>
> Possibly.
>
> How would it differ from "emulate sh"?
At the moment, it might not. If, however, we were to discover a case
where POSIX specifies behavior that differs from historic /bin/sh
behavior, we might want a plain way to get either one.
Also, although "emulate" has so far been limited to setting options, it
might be worth considering whether it should also modify the environment,
e.g., exporting POSIXLY_CORRECT or UNIX95 or whatever. However, what it
exported would depend on compile-time configuration, which although it
could be OS-specific could not be architecture-specific, making trouble
on binary-compatible platforms that use different techniques to achieve
POSIX conformance. So, I'm not sure.
^ permalink raw reply [relevance 4%]
* More POSIX developments
@ 2004-09-25 2:08 9% Bart Schaefer
2004-09-27 11:04 6% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2004-09-25 2:08 UTC (permalink / raw)
To: zsh-workers
According to today's minutes of the yesterday's austin-group teleconf:
-----
It was agreed so far that
test asdf -ge 0
is a syntax error and is expected to return something greater than 1
-----
In zsh's builtin test, of course, "asdf -ge 0" is interpreted in math
context, and is equivalent to (( asdf >= 0 )) and thus to "$asdf -ge 0".
The (( )) form is still considered OK, but the test -ge form is (or soon
will be) required to fail.
Yet another case where "emulate posix" might be useful. An idea that
occurs to me is that we could introduce hidden options, that is, having
no name that could be referenced via "setopt" but that are switched on
and off in groups, only via "emulate".
^ permalink raw reply [relevance 9%]
* Re: More POSIX developments
2004-09-25 2:08 9% More POSIX developments Bart Schaefer
@ 2004-09-27 11:04 6% ` Peter Stephenson
2004-10-02 21:23 5% ` Bart Schaefer
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2004-09-27 11:04 UTC (permalink / raw)
To: zsh-workers
Bart Schaefer wrote:
> According to today's minutes of the yesterday's austin-group teleconf:
>
> -----
> It was agreed so far that
>
> test asdf -ge 0
>
> is a syntax error and is expected to return something greater than 1
> -----
>
> In zsh's builtin test, of course, "asdf -ge 0" is interpreted in math
> context, and is equivalent to (( asdf >= 0 )) and thus to "$asdf -ge 0".
> The (( )) form is still considered OK, but the test -ge form is (or soon
> will be) required to fail.
>
> Yet another case where "emulate posix" might be useful. An idea that
> occurs to me is that we could introduce hidden options, that is, having
> no name that could be referenced via "setopt" but that are switched on
> and off in groups, only via "emulate".
Well, [[ ... ]] has always been the preferred zsh way of doing things,
with [ and test for compatibility, so it's at least plausible that the
latter should simply implement POSIX. The documentation clearly says
test was "added for compatibility", as well as vaguely indicating it's
"like" conditional expressions. So there is some wiggle room this time.
Returning "something greater than 1" for an error is nastier to code,
since the main function involved, evalcond(), returns statuses the other
way round. Hence a lot of return statuses need flipping.
The following patch, which I won't commit until we've decided which way
to go, tries to cover the bases by making test work (more) like POSIX
while leaving [[ ... ]] the way it is. The errors now return status 2
from evalcond, but for backward compatibility [[ ... ]] turns them into
shell errors.
Quite possibly I've missed something, but this is about the minimal
damage we can inflict without an option.
The existing tests still all pass, although the new code means new tests
should be added. Also, the documentation needs clarifying whatever we
decide to do.
I needed to add an extra warning function to choose between the cases
where we have a builtin name and where the code is called internally as
a condition. Does anyone know if there's a reason zwarnnam handles the
absence of a command name in a strange way? In other words, could I
remove zwarnnamopt and make zwarnnam behave like that? The current
behaviour of zwarnnam without a command name doesn't look very useful:
it outputs a space and then the error message. However, I haven't
checked all the zillion calls to it and maybe it's designed to be output
after another message.
Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.126
diff -u -r1.126 builtin.c
--- Src/builtin.c 9 Sep 2004 10:12:47 -0000 1.126
+++ Src/builtin.c 27 Sep 2004 10:56:12 -0000
@@ -4846,7 +4846,7 @@
state.strs = prog->strs;
- return !evalcond(&state);
+ return evalcond(&state, name);
}
/* display a time, provided in units of 1/60s, as minutes and seconds */
Index: Src/cond.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/cond.c,v
retrieving revision 1.5
diff -u -r1.5 cond.c
--- Src/cond.c 1 Aug 2002 15:06:26 -0000 1.5
+++ Src/cond.c 27 Sep 2004 10:56:12 -0000
@@ -37,15 +37,26 @@
"-ne", "-lt", "-gt", "-le", "-ge"
};
+/*
+ * Evaluate a conditional expression given the arguments.
+ * If fromtest is set, the caller is the test or [ builtin;
+ * with the pointer giving the name of the command.
+ * for POSIX conformance this supports a more limited range
+ * of functionality.
+ *
+ * Return status is the final shell status, i.e. 0 for true,
+ * 1 for false and 2 for error.
+ */
+
/**/
int
-evalcond(Estate state)
+evalcond(Estate state, char *fromtest)
{
struct stat *st;
char *left, *right;
Wordcode pcode;
wordcode code;
- int ctype, htok = 0;
+ int ctype, htok = 0, ret;
rec:
@@ -58,24 +69,28 @@
case COND_NOT:
if (tracingcond)
fprintf(xtrerr, " %s", condstr[ctype]);
- return !evalcond(state);
+ ret = evalcond(state, fromtest);
+ if (ret == 2)
+ return ret;
+ else
+ return !ret;
case COND_AND:
- if (evalcond(state)) {
+ if (!(ret = evalcond(state, fromtest))) {
if (tracingcond)
fprintf(xtrerr, " %s", condstr[ctype]);
goto rec;
} else {
state->pc = pcode + (WC_COND_SKIP(code) + 1);
- return 0;
+ return ret;
}
case COND_OR:
- if (!evalcond(state)) {
+ if ((ret = evalcond(state, fromtest)) == 1) {
if (tracingcond)
fprintf(xtrerr, " %s", condstr[ctype]);
goto rec;
} else {
state->pc = pcode + (WC_COND_SKIP(code) + 1);
- return 1;
+ return ret;
}
case COND_MOD:
case COND_MODI:
@@ -99,12 +114,13 @@
if ((cd = getconddef((ctype == COND_MODI), name + 1, 1))) {
if (ctype == COND_MOD &&
(l < cd->min || (cd->max >= 0 && l > cd->max))) {
- zerr("unrecognized condition: `%s'", name, 0);
- return 0;
+ zwarnnamopt(fromtest, "unrecognized condition: `%s'",
+ name, 0);
+ return 2;
}
if (tracingcond)
tracemodcond(name, strs, ctype == COND_MODI);
- return cd->handler(strs, cd->condid);
+ return !cd->handler(strs, cd->condid);
}
else {
char *s = strs[0];
@@ -115,16 +131,20 @@
if (name && name[0] == '-' &&
(cd = getconddef(0, name + 1, 1))) {
if (l < cd->min || (cd->max >= 0 && l > cd->max)) {
- zerr("unrecognized condition: `%s'", name, 0);
- return 0;
+ zwarnnamopt(fromtest, "unrecognized condition: `%s'",
+ name, 0);
+ return 2;
}
if (tracingcond)
tracemodcond(name, strs, ctype == COND_MODI);
- return cd->handler(strs, cd->condid);
- } else
- zerr("unrecognized condition: `%s'", name, 0);
+ return !cd->handler(strs, cd->condid);
+ } else {
+ zwarnnamopt(fromtest,
+ "unrecognized condition: `%s'", name, 0);
+ }
}
- return 0;
+ /* module not found, error */
+ return 2;
}
}
left = ecgetstr(state, EC_DUPTOK, &htok);
@@ -159,8 +179,34 @@
if (ctype >= COND_EQ && ctype <= COND_GE) {
mnumber mn1, mn2;
- mn1 = matheval(left);
- mn2 = matheval(right);
+ if (fromtest) {
+ /*
+ * For test and [, the expressions must be base 10 integers,
+ * not integer expressions.
+ */
+ char *eptr, *err;
+
+ mn1.u.l = zstrtol(left, &eptr, 10);
+ if (!*eptr)
+ {
+ mn2.u.l = zstrtol(right, &eptr, 10);
+ err = right;
+ }
+ else
+ err = left;
+
+ if (*eptr)
+ {
+ zwarnnamopt(fromtest, "integer expression expected: %s",
+ err, 0);
+ return 2;
+ }
+
+ mn1.type = mn2.type = MN_INTEGER;
+ } else {
+ mn1 = matheval(left);
+ mn2 = matheval(right);
+ }
if (((mn1.type|mn2.type) & (MN_INTEGER|MN_FLOAT)) ==
(MN_INTEGER|MN_FLOAT)) {
@@ -176,23 +222,23 @@
}
switch(ctype) {
case COND_EQ:
- return (mn1.type & MN_FLOAT) ? (mn1.u.d == mn2.u.d) :
- (mn1.u.l == mn2.u.l);
+ return !((mn1.type & MN_FLOAT) ? (mn1.u.d == mn2.u.d) :
+ (mn1.u.l == mn2.u.l));
case COND_NE:
- return (mn1.type & MN_FLOAT) ? (mn1.u.d != mn2.u.d) :
- (mn1.u.l != mn2.u.l);
+ return !((mn1.type & MN_FLOAT) ? (mn1.u.d != mn2.u.d) :
+ (mn1.u.l != mn2.u.l));
case COND_LT:
- return (mn1.type & MN_FLOAT) ? (mn1.u.d < mn2.u.d) :
- (mn1.u.l < mn2.u.l);
+ return !((mn1.type & MN_FLOAT) ? (mn1.u.d < mn2.u.d) :
+ (mn1.u.l < mn2.u.l));
case COND_GT:
- return (mn1.type & MN_FLOAT) ? (mn1.u.d > mn2.u.d) :
- (mn1.u.l > mn2.u.l);
+ return !((mn1.type & MN_FLOAT) ? (mn1.u.d > mn2.u.d) :
+ (mn1.u.l > mn2.u.l));
case COND_LE:
- return (mn1.type & MN_FLOAT) ? (mn1.u.d <= mn2.u.d) :
- (mn1.u.l <= mn2.u.l);
+ return !((mn1.type & MN_FLOAT) ? (mn1.u.d <= mn2.u.d) :
+ (mn1.u.l <= mn2.u.l));
case COND_GE:
- return (mn1.type & MN_FLOAT) ? (mn1.u.d >= mn2.u.d) :
- (mn1.u.l >= mn2.u.l);
+ return !((mn1.type & MN_FLOAT) ? (mn1.u.d >= mn2.u.d) :
+ (mn1.u.l >= mn2.u.l));
}
}
@@ -215,81 +261,83 @@
!strcmp(opat, right) && pprog != dummy_patprog2);
if (!(pprog = patcompile(right, (save ? PAT_ZDUP : PAT_STATIC),
- NULL)))
- zerr("bad pattern: %s", right, 0);
+ NULL))) {
+ zwarnnamopt(fromtest, "bad pattern: %s", right, 0);
+ return 2;
+ }
else if (save)
state->prog->pats[npat] = pprog;
}
state->pc += 2;
test = (pprog && pattry(pprog, left));
- return (ctype == COND_STREQ ? test : !test);
+ return !(ctype == COND_STREQ ? test : !test);
}
case COND_STRLT:
- return strcmp(left, right) < 0;
+ return !(strcmp(left, right) < 0);
case COND_STRGTR:
- return strcmp(left, right) > 0;
+ return !(strcmp(left, right) > 0);
case 'e':
case 'a':
- return (doaccess(left, F_OK));
+ return (!doaccess(left, F_OK));
case 'b':
- return (S_ISBLK(dostat(left)));
+ return (!S_ISBLK(dostat(left)));
case 'c':
- return (S_ISCHR(dostat(left)));
+ return (!S_ISCHR(dostat(left)));
case 'd':
- return (S_ISDIR(dostat(left)));
+ return (!S_ISDIR(dostat(left)));
case 'f':
- return (S_ISREG(dostat(left)));
+ return (!S_ISREG(dostat(left)));
case 'g':
- return (!!(dostat(left) & S_ISGID));
+ return (!(dostat(left) & S_ISGID));
case 'k':
- return (!!(dostat(left) & S_ISVTX));
+ return (!(dostat(left) & S_ISVTX));
case 'n':
- return (!!strlen(left));
+ return (!strlen(left));
case 'o':
- return (optison(left));
+ return (optison(fromtest, left));
case 'p':
- return (S_ISFIFO(dostat(left)));
+ return (!S_ISFIFO(dostat(left)));
case 'r':
- return (doaccess(left, R_OK));
+ return (!doaccess(left, R_OK));
case 's':
- return ((st = getstat(left)) && !!(st->st_size));
+ return !((st = getstat(left)) && !!(st->st_size));
case 'S':
- return (S_ISSOCK(dostat(left)));
+ return (!S_ISSOCK(dostat(left)));
case 'u':
- return (!!(dostat(left) & S_ISUID));
+ return (!(dostat(left) & S_ISUID));
case 'w':
- return (doaccess(left, W_OK));
+ return (!doaccess(left, W_OK));
case 'x':
if (privasserted()) {
mode_t mode = dostat(left);
- return (mode & S_IXUGO) || S_ISDIR(mode);
+ return !((mode & S_IXUGO) || S_ISDIR(mode));
}
- return doaccess(left, X_OK);
+ return !doaccess(left, X_OK);
case 'z':
- return (!strlen(left));
+ return !!(strlen(left));
case 'h':
case 'L':
- return (S_ISLNK(dolstat(left)));
+ return (!S_ISLNK(dolstat(left)));
case 'O':
- return ((st = getstat(left)) && st->st_uid == geteuid());
+ return !((st = getstat(left)) && st->st_uid == geteuid());
case 'G':
- return ((st = getstat(left)) && st->st_gid == getegid());
+ return !((st = getstat(left)) && st->st_gid == getegid());
case 'N':
- return ((st = getstat(left)) && st->st_atime <= st->st_mtime);
+ return !((st = getstat(left)) && st->st_atime <= st->st_mtime);
case 't':
- return isatty(mathevali(left));
+ return !isatty(mathevali(left));
case COND_NT:
case COND_OT:
{
time_t a;
if (!(st = getstat(left)))
- return 0;
+ return 1;
a = st->st_mtime;
if (!(st = getstat(right)))
- return 0;
- return (ctype == COND_NT) ? a > st->st_mtime : a < st->st_mtime;
+ return 2;
+ return !((ctype == COND_NT) ? a > st->st_mtime : a < st->st_mtime);
}
case COND_EF:
{
@@ -297,17 +345,18 @@
ino_t i;
if (!(st = getstat(left)))
- return 0;
+ return 1;
d = st->st_dev;
i = st->st_ino;
if (!(st = getstat(right)))
- return 0;
- return d == st->st_dev && i == st->st_ino;
+ return 1;
+ return !(d == st->st_dev && i == st->st_ino);
}
default:
- zerr("bad cond code", NULL, 0);
+ zwarnnamopt(fromtest, "bad cond code", NULL, 0);
+ return 2;
}
- return 0;
+ return 1;
}
@@ -371,9 +420,13 @@
}
+/*
+ * optison returns evalcond-friendly statuses (true, false, error).
+ */
+
/**/
static int
-optison(char *s)
+optison(char *name, char *s)
{
int i;
@@ -382,12 +435,12 @@
else
i = optlookup(s);
if (!i) {
- zerr("no such option: %s", s, 0);
- return 0;
+ zwarnnamopt(name, "no such option: %s", s, 0);
+ return 2;
} else if(i < 0)
- return unset(-i);
+ return !unset(-i);
else
- return isset(i);
+ return !isset(i);
}
/**/
Index: Src/exec.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/exec.c,v
retrieving revision 1.71
diff -u -r1.71 exec.c
--- Src/exec.c 8 Sep 2004 08:24:41 -0000 1.71
+++ Src/exec.c 27 Sep 2004 10:56:13 -0000
@@ -3187,7 +3187,13 @@
tracingcond++;
}
cmdpush(CS_COND);
- stat = !evalcond(state);
+ stat = evalcond(state, NULL);
+ /*
+ * 2 indicates a syntax error. For compatibility, turn this
+ * into a shell error.
+ */
+ if (stat == 2)
+ errflag = 1;
cmdpop();
if (isset(XTRACE)) {
fprintf(xtrerr, " ]]\n");
Index: Src/utils.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/utils.c,v
retrieving revision 1.65
diff -u -r1.65 utils.c
--- Src/utils.c 17 Sep 2004 09:25:42 -0000 1.65
+++ Src/utils.c 27 Sep 2004 10:56:15 -0000
@@ -110,6 +110,22 @@
zerrmsg(fmt, str, num);
}
+/*
+ * zwarnnamopt is used in cases for code which is called both
+ * from a builtin (cmd non-NULL) and internally (cmd NULL).
+ * Is there a good reason zwarnnam doesn't do this?
+ */
+
+/**/
+mod_export void
+zwarnnamopt(const char *cmd, const char *fmt, const char *str, int num)
+{
+ if (cmd)
+ zwarnnam(cmd, fmt, str, num);
+ else
+ zwarn(fmt, str, num);
+}
+
#ifdef __CYGWIN__
/*
* This works around an occasional problem with dllwrap on Cygwin, seen
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 6%]
* Re: More POSIX developments
2004-09-27 11:04 6% ` Peter Stephenson
@ 2004-10-02 21:23 5% ` Bart Schaefer
2004-10-04 10:23 4% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2004-10-02 21:23 UTC (permalink / raw)
To: zsh-workers
Finally got a chance to look at this.
On Mon, 27 Sep 2004, Peter Stephenson wrote:
> The following patch, which I won't commit until we've decided which way
> to go, tries to cover the bases by making test work (more) like POSIX
> while leaving [[ ... ]] the way it is. The errors now return status 2
> from evalcond, but for backward compatibility [[ ... ]] turns them into
> shell errors.
I think this would be OK.
> I needed to add an extra warning function to choose between the cases
> where we have a builtin name and where the code is called internally as
> a condition. Does anyone know if there's a reason zwarnnam handles the
> absence of a command name in a strange way?
I paged through a grep of all the calls to zwarnnam(), and there don't
seem to be any that intentionally get passed a NULL first argument, so it
probably is just defensive programming.
> In other words, could I remove zwarnnamopt and make zwarnnam behave like
> that?
I think that'd be safe, but I wouldn't object to a second opinion.
^ permalink raw reply [relevance 5%]
* Re: More POSIX developments
2004-10-02 21:23 5% ` Bart Schaefer
@ 2004-10-04 10:23 4% ` Peter Stephenson
2004-10-04 10:49 5% ` Oliver Kiddle
2004-10-25 16:05 5% ` Bart Schaefer
0 siblings, 2 replies; 200+ results
From: Peter Stephenson @ 2004-10-04 10:23 UTC (permalink / raw)
To: zsh-workers
Bart Schaefer wrote:
> Finally got a chance to look at this.
>
> On Mon, 27 Sep 2004, Peter Stephenson wrote:
>
> > The following patch, which I won't commit until we've decided which way
> > to go, tries to cover the bases by making test work (more) like POSIX
> > while leaving [[ ... ]] the way it is. The errors now return status 2
> > from evalcond, but for backward compatibility [[ ... ]] turns them into
> > shell errors.
>
> I think this would be OK.
Yes, the more I think about it the less likely it is that someone using
"test" or "[" syntax wants anything other than standard-compliant
behaviour.
> > In other words, could I remove zwarnnamopt and make zwarnnam behave like
> > that?
>
> I think that'd be safe, but I wouldn't object to a second opinion.
I made the change and none of the tests failed. I think it's neater to
do it like this and see if any problems turn up.
Before I commit the patch, here's some proposed documentation.
Index: Doc/Zsh/builtins.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/builtins.yo,v
retrieving revision 1.70
diff -u -r1.70 builtins.yo
--- Doc/Zsh/builtins.yo 30 Jun 2004 11:10:45 -0000 1.70
+++ Doc/Zsh/builtins.yo 4 Oct 2004 10:21:15 -0000
@@ -1124,6 +1124,11 @@
item(tt([) [ var(arg) ... ] tt(]))(
Like the system version of tt(test). Added for compatibility;
use conditional expressions instead (see noderef(Conditional Expressions)).
+The main differences are: this command is not handled syntactically, so for
+example an empty variable expansion may cause an argument to be omitted;
+syntax errors cause status 2 to be returned instead of a shell error; and
+arithmetic operators expect integer arguments rather than arithemetic
+expressions.
)
findex(times)
cindex(shell, timing)
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 4%]
* Re: More POSIX developments
2004-10-04 10:23 4% ` Peter Stephenson
@ 2004-10-04 10:49 5% ` Oliver Kiddle
2004-10-25 16:05 5% ` Bart Schaefer
1 sibling, 0 replies; 200+ results
From: Oliver Kiddle @ 2004-10-04 10:49 UTC (permalink / raw)
To: zsh-workers
Peter wrote:
> Before I commit the patch, here's some proposed documentation.
>
> item(tt([) [ var(arg) ... ] tt(]))(
> Like the system version of tt(test). Added for compatibility;
> use conditional expressions instead (see noderef(Conditional Expressions)).
> +The main differences are: this command is not handled syntactically, so for
> +example an empty variable expansion may cause an argument to be omitted;
> +syntax errors cause status 2 to be returned instead of a shell error; and
> +arithmetic operators expect integer arguments rather than arithemetic
> +expressions.
Reading that, it isn't clear whether the differences listed are relative
to "the system version of test" or to Conditional Expressions.
Oliver
^ permalink raw reply [relevance 5%]
* Re: bug with for and time
@ 2004-10-07 15:25 3% ` Dan Nelson
2004-10-08 13:14 0% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Dan Nelson @ 2004-10-07 15:25 UTC (permalink / raw)
To: Peter Stephenson; +Cc: zsh-workers
In the last episode (Oct 07), Peter Stephenson said:
> I can vaguely remember that the getrusage() fields which didn't
> correspond to times were dropped when we switched to autoconf, simply
> because it became hard to test for all the fields. I didn't notice
> getrusage() disappearing entirely then, but it certainly must have at
> some point.
I did some mailinglist searches, and back in 1999, workers-2526 says
that getrusage was removed because it wasn't POSIX and the autoconf
test was too complex. It is now, though, and was in SUS as far back as
1997. Unfortunately, only two struct members are defined:
struct timeval ru_utime User time used.
struct timeval ru_stime System time used.
Fortunately, the remaining members defined by AIX, FreeBSD, Linux,
Solaris, and Tru64 are identical. Solaris doesn't fill in ru_ixrss or
ru_isrss (%X and %D), but they are in the struct. Testing for each
member individually if you wanted to wouldn't be hard, anyway. One
AC_CHECK_MEMBERS call with 14 arguments is all that's needed, plus the
appropriate #if defined checks around each resource in the TIMEFMT
expansion code.
--
Dan Nelson
dnelson@allantgroup.com
^ permalink raw reply [relevance 3%]
* Re: bug with for and time
2004-10-07 15:25 3% ` Dan Nelson
@ 2004-10-08 13:14 0% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-10-08 13:14 UTC (permalink / raw)
To: zsh-workers
Dan Nelson wrote:
> I did some mailinglist searches, and back in 1999, workers-2526 says
> that getrusage was removed because it wasn't POSIX and the autoconf
> test was too complex.
There's another issue... we used to get the usage for a child by calling
wait3(), which can set a struct rusage. (Modern systems have wait4,
which allows you to wait for a particular PID, but it looks like we
don't actually use that anyway.) However, this isn't part of the latest
standards. So the only standardised way of doing it is to call
getrusage and subtract all appropriate elements. With some (maximum
value), you can't actually tell for sure whether it's applicable to the
last child or not.
Maybe we should prefer wait3(), which is widely available, and do the
best we can elsewhere, but it's not ideal. Still, both wait3() and the
additional rusage elements came from BSD; maybe I can rely on either
both or neither being available and skip the case where we can't tie
usage to individual processes.
> One AC_CHECK_MEMBERS call with 14 arguments is all that's needed, plus the
> appropriate #if defined checks around each resource in the TIMEFMT
> expansion code.
This bit I can easily get working.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 0%]
* Pattern changes, part 2
@ 2004-10-18 11:47 2% Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-10-18 11:47 UTC (permalink / raw)
To: Zsh hackers list
I did some more work on pattern matching over the weekend. The main
idea is to make it easier to handle multibyte characters by using
the normal string representation whenever convenient. All tests still
pass.
- The test string is now unmetafied for comparing against the pattern.
Literal strings in the pattern are also unmetafied. I've turned
the METAINCs in the pattern matcher into CHARINCs where appropriate;
this is currently a trivial increment but is a placeholder to say "go
to next character". (There is no change in places where the string
remains metafied which will still need more thought.) The new code
should be significantly more efficient during pattern matching,
since it doesn't have to test for Meta characters in many
places, although I haven't benchmarked it.
- Character sets [...] are still metafied; we need the special
characters to indicate ranges and Posix ctype names.
- Pure strings are still metafied. (These are signalled by a special
flag indicating the value stored is a string rather than the normal
pattern programme.) It became clear that changing this would be
inefficient, particularly in globbing where we use the result of the
pattern matcher to add to the (metafied) path buffer. There are
actually two cases:
o We can spot immediately that the string doesn't have special
characters. This is the normal case and is handled fairly
efficiently.
o There are special characters around but nonetheless the string is a
pure string. There is one case where we need to handle this
properly, which is when the string in question is ".." or ".", since
those are never matched by globbing. An example where this could
occur would be a path segment (#i).. with extended globbing. Here,
we only find out we have a pure string after unmetafying into the
pattern programme, so we need to metafy again. This isn't so hot,
but it's actually a rare corner case.
- The interface used by parameter substitutions has been tidied up.
o The call patmatchlen() gets the length of the match, so that nothing
outside pattern.c needs pointers into the test string. This was
necessary since the strings may now be reallocated, but is neater
anyway. (This is the metafied length, which is what the parameter
code needs --- and this will probably continue, I don't thinks
there's a case for unmetafying there. There is some minor
inefficiency in counting metafiable characters in the matched part
of the trial string.)
o The horrible global patoffset has disappeared. Now the offset to
be added to indices into parameters is passed as an argument. I
should have done it this way all along.
- Minor fix for numeric ranges: <num-> will now match any integer that
is too large to represent in the internal integer type. This has
worked for <-> for some time, but it wasn't special-cased if there was a
lower range.
I will commit this directly (with a ChangeLog entry, this time).
By the way, we really need a lot more tests which require the use of the
Meta character, and not just for pattern matching. Adding this while
the character representation is in flux is probably not particularly
useful, however.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 2%]
* zsh/bash incompatibilities
@ 2004-10-25 13:06 4% Matthias B.
2004-10-25 13:20 3% ` DervishD
2004-10-25 15:14 0% ` Peter Stephenson
0 siblings, 2 replies; 200+ results
From: Matthias B. @ 2004-10-25 13:06 UTC (permalink / raw)
To: zsh-workers
[-- Attachment #1: Type: text/plain, Size: 700 bytes --]
I've encountered several things where zsh's behaviour (in sh-mode) differs
from that of bash (in sh-mode).
The attached script demonstrates the differences. When /bin/sh is bash,
the output is
ab
\y
$
When /bin/sh is zsh, the output is
a
b
y
\44
I'm undecided about which \ treatment inside of $'..' I prefer, so I guess
looking to what POSIX says is best. Regarding zsh's refusal to interpret
octal escapes that don't start with 0, I find that very annoying and it's
certainly not what most people expect. There are scripts out there that
will fail with sh=zsh because of this. I think this should be changed
(regardless of what POSIX says).
MSB
--
Indecision is the key to flexibility.
[-- Attachment #2: bash_zsh_differences --]
[-- Type: text/plain, Size: 50 bytes --]
#!/bin/sh
echo $'a\
b'
echo $'\y'
echo -e '\44'
^ permalink raw reply [relevance 4%]
* Re: zsh/bash incompatibilities
2004-10-25 13:06 4% zsh/bash incompatibilities Matthias B.
@ 2004-10-25 13:20 3% ` DervishD
2004-10-25 15:14 0% ` Peter Stephenson
1 sibling, 0 replies; 200+ results
From: DervishD @ 2004-10-25 13:20 UTC (permalink / raw)
To: Matthias B.; +Cc: zsh-workers
Hi Matthias :)
* Matthias B. <msbREMOVE-THIS@winterdrache.de> dixit:
> I'm undecided about which \ treatment inside of $'..'
Mmm, AFAIK, POSIX doesn't specify $'...' quoting (at least SUSv3
doesn't do it? Moreover, $'...' quoting in bash is different (per
manual) from zsh $'...' quoting.
In bash, escape sequences within $'...' are replaced as if they
were inside ANSI C code. Zsh processes anything inside $'...' as if
the builtin 'print' was interpreting that. These two behaviours are
different and are documented as such (see the info manual for bash
and for zsh). I'm not sure about which behaviour should work when
doing 'sh' emulation, since 'sh' shouldn't have such quoting.
I don't have a position about the octal sequences, anyway, so I
won't give an opinion about it.
Raúl Núñez de Arenas Coronado
--
Linux Registered User 88736
http://www.dervishd.net & http://www.pleyades.net/
^ permalink raw reply [relevance 3%]
* Re: zsh/bash incompatibilities
2004-10-25 13:06 4% zsh/bash incompatibilities Matthias B.
2004-10-25 13:20 3% ` DervishD
@ 2004-10-25 15:14 0% ` Peter Stephenson
1 sibling, 0 replies; 200+ results
From: Peter Stephenson @ 2004-10-25 15:14 UTC (permalink / raw)
To: zsh-workers
"Matthias B." wrote:
> I'm undecided about which \ treatment inside of $'..' I prefer, so I guess
> looking to what POSIX says is best.
I've been looking for some standardized definition of this and can't
find one, offhand. It doesn't seem to be in The Open Group Base
Specifications, issue 6, which is the latest standard I know of. Does
anyone have a pointer?
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 0%]
* Re: More POSIX developments
2004-10-04 10:23 4% ` Peter Stephenson
2004-10-04 10:49 5% ` Oliver Kiddle
@ 2004-10-25 16:05 5% ` Bart Schaefer
1 sibling, 0 replies; 200+ results
From: Bart Schaefer @ 2004-10-25 16:05 UTC (permalink / raw)
To: Peter Stephenson; +Cc: zsh-workers
On Mon, 4 Oct 2004, Peter Stephenson wrote:
> Yes, the more I think about it the less likely it is that someone using
> "test" or "[" syntax wants anything other than standard-compliant
> behaviour.
Just to keep things entertaining, this discusson was just revived on the
austin-group list, and Geoff Clare is arguing in favor of permitting the
extension ...
^ permalink raw reply [relevance 5%]
* [vincent@vinc17.org: Bug#278368: zsh-beta: svn completions no longer work]
@ 2004-10-26 14:48 4% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-10-26 14:48 UTC (permalink / raw)
To: zsh-workers; +Cc: 278368-forwarded
This problem seems to have sprouted up between 10/14 and 10/18.
Roughly.
----- Forwarded message from Vincent Lefevre <vincent@vinc17.org> -----
Package: zsh-beta
Version: 4.2.1-dev-1+20041022-1
Severity: normal
When I do a completion like "svn st [TAB]" in a working copy, I get
the following error message:
_arguments:comparguments:208: invalid argument: display
Removing the .zcompdump file and restarting zsh had no effect on this
problem.
Completions still work with zsh from the zsh package (/bin/zsh4).
Note: I have subversion version 1.0.9-2 (current unstable).
-- System Information:
Debian Release: 3.1
APT prefers testing
APT policy: (900, 'testing'), (200, 'unstable')
Architecture: powerpc (ppc)
Kernel: Linux 2.6.8
Locale: LANG=POSIX, LC_CTYPE=en_US.ISO8859-1
Versions of packages zsh-beta depends on:
ii libc6 2.3.2.ds1-18 GNU C Library: Shared libraries an
ii libcap1 1:1.10-14 support for getting/setting POSIX.
ii libncurses5 5.4-4 Shared libraries for terminal hand
ii libpcre3 4.5-1.1 Perl 5 Compatible Regular Expressi
ii passwd 1:4.0.3-30.2 Change and administer password and
-- no debconf information
----- End forwarded message -----
^ permalink raw reply [relevance 4%]
* Re: SUGGESTION: kill -l could show numbers, too (+CLD vs CHLD)
@ 2004-11-18 16:39 3% ` Stephane Chazelas
2004-11-18 17:22 3% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Stephane Chazelas @ 2004-11-18 16:39 UTC (permalink / raw)
To: zsh-workers
On Thu, Nov 18, 2004 at 04:05:17PM +0000, Peter Stephenson wrote:
> Christian =?iso-8859-1?Q?H=F6ltje?= wrote:
> > I have a suggestion for the kill builtin:
> >
> > It would be nice if when you did '-l' to show the list of signal
> > that it show the signal number.
>
> Not quite as convenient, but try this function:
>
> kill-l() {
> for i in {1..$#signals}; do
> print $((i-1))\) SIG$signals[$i]
> done | pr -t5
> }
[...]
Or, to avoid "pr":
kill-l () {
local -a s
for i in {1..$#signals}
do
s[i]="$((i-1))) SIG$signals[$i]"
done
print -C5 $s
}
BTW, I noted some discrepancies on the result of kill -l between
various shells and /bin/kill on that Linux-i386:
bash bin csh dash ksh pdksh zsh
ABRT ABRT ABRT ABRT IOT ABRT ABRT
STKFLT STKFLT 16 SIG16 STKFLT STKFLT
CHLD CHLD CHLD CHLD CHLD CHLD CLD
IO POLL POLL IO POLL IO POLL
SYS SYS SYS SYS SYS UNUSED SYS
Why SIGCLD and not SIGCHLD for zsh?
SUSv3 (POSIX) seems to require SIGCHLD
http://www.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html
http://www.opengroup.org/onlinepubs/009695399/utilities/trap.html
--
Stéphane
^ permalink raw reply [relevance 3%]
* Re: SUGGESTION: kill -l could show numbers, too (+CLD vs CHLD)
2004-11-18 16:39 3% ` SUGGESTION: kill -l could show numbers, too (+CLD vs CHLD) Stephane Chazelas
@ 2004-11-18 17:22 3% ` Peter Stephenson
2004-11-19 9:59 3% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Peter Stephenson @ 2004-11-18 17:22 UTC (permalink / raw)
To: zsh-workers
Stephane Chazelas wrote:
> Why SIGCLD and not SIGCHLD for zsh?
It's an artefact of this sort of thing in header files:
#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
#define SIGCHLD 17 /* Child status has changed (POSIX). */
We pick the first one, assuming that's to be preferred.
The following explicitly prefers SIGCHLD. Any other multiple signals
can be handled similarly. I'm not sure about SIGPOLL.
Maybe we should think about mapping alternatives so that both kill -CLD
and kill -CHLD work.
Index: Src/signames2.awk
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/signames2.awk,v
retrieving revision 1.3
diff -u -r1.3 signames2.awk
--- Src/signames2.awk 12 Mar 2004 09:59:24 -0000 1.3
+++ Src/signames2.awk 18 Nov 2004 17:15:22 -0000
@@ -12,6 +12,7 @@
split(sigtail, tmp)
signam = substr(tmp[1], 4, 20)
signum = tmp[2]
+ if (signam == "CHLD" && sig[signum] == "CLD") sig[signum] = ""
if (sig[signum] == "") {
sig[signum] = signam
if (0 + max < 0 + signum && signum < 60)
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 3%]
* Re: SUGGESTION: kill -l could show numbers, too (+CLD vs CHLD)
2004-11-18 17:22 3% ` Peter Stephenson
@ 2004-11-19 9:59 3% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2004-11-19 9:59 UTC (permalink / raw)
To: zsh-workers
Peter Stephenson wrote:
> The following explicitly prefers SIGCHLD. Any other multiple signals
> can be handled similarly. I'm not sure about SIGPOLL.
It looks like SIGPOLL is standardised, though from X/Open rather than
Posix, while SIGIO isn't (although it has a long history, too). So I've
made it prefer SIGPOLL to SIGIO. This doesn't actually change anything
on Linux.
I'm working on something to allow variants on input. This is easy
enough for kill, the real killer is function-style traps.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 3%]
* More POSIX shell standards stuff
@ 2004-11-22 16:00 4% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2004-11-22 16:00 UTC (permalink / raw)
To: zsh-workers
The first one involves the -P option of "cd", and the second one has to do
with the changes PWS made a couple months ago to the "test" builtin. In
the latter case, it looks like they're going to decide to bless zsh's
original behavior, so we might want to consider backing out the change or
making a setopt for it.
---------- Forwarded message ----------
Date: Mon, 22 Nov 2004 12:56:42 GMT
From: Andrew Josey <ajosey@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Document [Austin-037:XCU:cd:cd relative paths Proposed ] created
Resent-Date: 22 Nov 2004 12:58:13 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
This message is generated by The Open Group's web service
because you are a subscriber to the austin-group-l list
A document has just been created by Andrew Josey.
Web: Austin Group Interpretations
Title: Austin-037:XCU:cd:cd relative paths Proposed
URL: http://www.opengroup.org/austin/interps/protected/doc.tpl?gdid=6230
Further details:-
This addresses a number of defects identified with how the cd utility handles
symbolic links.
---------- Forwarded message ----------
Date: Mon, 22 Nov 2004 12:58:06 GMT
From: Andrew Josey <ajosey@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Document [Austin-038:XCU:test/shell:arithmetic expansion Proposed ]
created
Resent-Date: 22 Nov 2004 12:59:36 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
This message is generated by The Open Group's web service
because you are a subscriber to the austin-group-l list
A document has just been created by Andrew Josey.
Web: Austin Group Interpretations
Title: Austin-038:XCU:test/shell:arithmetic expansion Proposed
URL: http://www.opengroup.org/austin/interps/protected/doc.tpl?gdid=6231
Further details:-
This addresses the question of what constitutes a number in XCU test and shell
arithmetic expansion.
^ permalink raw reply [relevance 4%]
* [jjminar@fastmail.fm: Bug#266785: zsh: The elite2 prompt displays the tty incorrectly]
@ 2004-11-24 5:01 2% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2004-11-24 5:01 UTC (permalink / raw)
To: zsh-workers; +Cc: 266785-forwarded, 266785-submitter
I'm gonna commit this instead, as I don't have a position on the "/" to
"|" change.
Index: Functions/Prompts/prompt_elite2_setup
===================================================================
RCS file: /cvsroot/zsh/zsh/Functions/Prompts/prompt_elite2_setup,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 prompt_elite2_setup
--- Functions/Prompts/prompt_elite2_setup 18 Nov 1999 15:15:27 -0000 1.1.1.3
+++ Functions/Prompts/prompt_elite2_setup 24 Nov 2004 04:55:33 -0000
@@ -25,13 +25,12 @@
: ${(P)varname=$(echo -n "\\0$code")}
done
- local tty=`tty|cut -d/ -f3`
local text="%{$fg_no_bold[$text_col]%}"
local parens="%{$fg_bold[$parens_col]%}"
local punctuation_color="%{$fg_bold[grey]%}"
local reset="%{$reset_color%}"
- PS1="$punctuation_colorÚ$textÄ$parens($text%n$punctuation_color@$text%m$parens)$textÄ$parens($text%!$punctuation_color/$text$tty$parens)$textÄ$parens($text%D{%I:%M%P}$punctuation_color:$text%D{%m/%d/%y}$parens)$textÄ$punctuation_color-$reset$prompt_newline$punctuation_colorÀ$textÄ$parens($text%#$punctuation_color:$text%~$parens)$textÄ$punctuation_color-$reset "
+ PS1="$punctuation_colorÚ$textÄ$parens($text%n$punctuation_color@$text%m$parens)$textÄ$parens($text%!$punctuation_color/$text%y$parens)$textÄ$parens($text%D{%I:%M%P}$punctuation_color:$text%D{%m/%d/%y}$parens)$textÄ$punctuation_color-$reset$prompt_newline$punctuation_colorÀ$textÄ$parens($text%#$punctuation_color:$text%~$parens)$textÄ$punctuation_color-$reset "
PS2="$parensÄ$textÄ$punctuation_color-$reset "
----- Forwarded message from Jan Minar <jjminar@fastmail.fm> -----
Date: Thu, 19 Aug 2004 07:32:37 +0200
From: Jan Minar <jjminar@fastmail.fm>
To: Debian Bug Tracking System <maintonly@bugs.debian.org>
Subject: Bug#266785: zsh: The elite2 prompt displays the tty incorrectly
Package: zsh
Version: 4.0.4-33
Severity: minor
Tags: patch
The elite2 prompt is incorrect -- the tty bit is OK for /dev/*, but it
fails with /dev/*/* (devpts, i.e. all X terminals a.o.). I see no
difference between using cut(1) and %y. I also changed the delimiter,
so it plays more nicely with the fact the dashes are now part of the tty
name.
The incorrect prompt:
(jan@kontryhel)(31337/pts)(05:15am:08/19/04)-
^^^
The guilty line:
local tty=`tty|cut -d/ -f3`
^^^ should read -f3-
The corrected prompt:
(jan@kontryhel)(31337|pts/1)(05:15am:08/19/04)-
^ ^^
The patch:
--- /usr/share/zsh/4.0.4/functions/Prompts/prompt_elite2_setup.ORIG Sat Jun 12 02:35:53 2004
+++ /usr/share/zsh/4.0.4/functions/Prompts/prompt_elite2_setup Sat Jun 12 02:38:52 2004
@@ -25,13 +25,13 @@
: ${(P)varname=$(echo -n "\\0$code")}
done
- local tty=`tty|cut -d/ -f3`
+ local tty=%y
local text="%{$fg_no_bold[$text_col]%}"
local parens="%{$fg_bold[$parens_col]%}"
local punctuation_color="%{$fg_bold[grey]%}"
local reset="%{$reset_color%}"
- PS1="$punctuation_colorÚ$textÄ$parens($text%n$punctuation_color@$text%m$parens)$textÄ$parens($text%!$punctuation_color/$text$tty$parens)$textÄ$parens($text%D{%I:%M%P}$punctuation_color:$text%D{%m/%d/%y}$parens)$textÄ$punctuation_color-$reset$prompt_newline$punctuation_colorŔ$textÄ$parens($text%#$punctuation_color:$text%~$parens)$textÄ$punctuation_color-$reset "
+ PS1="$punctuation_colorÚ$textÄ$parens($text%n$punctuation_color@$text%m$parens)$textÄ$parens($text%!$punctuation_color|$text$tty$parens)$textÄ$parens($text%D{%I:%M%P}$punctuation_color:$text%D{%m/%d/%y}$parens)$textÄ$punctuation_color-$reset$prompt_newline$punctuation_colorŔ$textÄ$parens($text%#$punctuation_color:$text%~$parens)$textÄ$punctuation_color-$reset "
PS2="$parensÄ$textÄ$punctuation_color-$reset "
Cheers,
Jan.
-- System Information
Debian Release: 3.0
Architecture: i386
Kernel: Linux kontryhel 2.4.27-jan #2 Tue Aug 17 11:10:35 CEST 2004 i686
Locale: LANG=C, LC_CTYPE=cs_CZ.ISO-8859-2
Versions of packages zsh depends on:
ii libc6 2.2.5-11.5 GNU C Library: Shared libraries an
ii libcap1 1:1.10-12 support for getting/setting POSIX.
ii libncurses5 5.2.20020112a-7 Shared libraries for terminal hand
--
"To me, clowns aren't funny. In fact, they're kind of scary. I've wondered
where this started and I think it goes back to the time I went to the circus,
and a clown killed my dad."
----- End forwarded message -----
^ permalink raw reply [relevance 2%]
* and lists and suspended processes
@ 2005-01-03 4:15 4% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2005-01-03 4:15 UTC (permalink / raw)
To: zsh-workers; +Cc: 288323-forwarded, 288323-submitter
Should zsh wait for a suspended process to exit before continuing along
the sublist?
----- Forwarded message from Branden Robinson <branden@debian.org> -----
Things like:
foo && bar && baz
are a basic POSIX shell feature, and Bash doesn't handle them right.
Try:
echo one && sleep 10 && echo two
While, in the sleep, background the command with CTRL-Z.
The 'echo two' will run immediately. This is wrong. The sleep has no exit
status yet because it has not exited, and the && and || connectives must
only be evaluated once the preceding command has exited. Until then, the
command in question *has* no exit status. The box with Schroedinger's Cat
in it has not yet been opened.
ash, dash, pdksh, and zsh are also buggy, but instead they never run "echo
two" at all. It appears that of Debian's allegedly POSIX-compliant shells
have this problem, except for posh.
Here are some speculations/argument from #debian-devel as to what may be
going on:
08:42PM|<asuffield> Overfiend: what you have in bash is bloody broken
conditionals. I can't see how to fix it, and I can't stand looking
at bash any longer to figure it out
08:42PM|<asuffield> it passes WUNTRACED to wait() when job control is
enabled, so that it can spot jobs which have been sent SIGSTOP
08:43PM|<asuffield> somewhere in the pipeline logic is a missing check
for WIFSTOPPED on the status code, to see if the process is really
dead yet or not
08:49PM|<asuffield> look, WSTOPCODE() and WEXITCODE() are the same
macro. zsh is calling WEXITCODE() and treating it as the exit code,
and this is *INCORRECT*, because WIFEXITED() is false and WIFSTOPPED()
is true
08:51PM|<Keybuk> and zsh documents that it won't continue a pipeline if
the process is terminated by an unhandled signal
08:52PM|<Keybuk> so zsh is being correct, just different to bash
08:52PM|<asuffield> zsh has incorrectly interpreted the result from wait()
as if the process had been terminated
08:52PM|<asuffield> the process has been stopped. this is a different
event
^ permalink raw reply [relevance 4%]
* POSIX (austin-group) interpretations
@ 2005-01-06 16:05 3% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2005-01-06 16:05 UTC (permalink / raw)
To: zsh-workers
Three from the latest batch that are either directly or potentially of
interest to zsh development. In particular, Austin-038 now permits the
extended arithmetic behavior of the "test" builtin that was recently
*removed* from zsh.
---------- Forwarded message ----------
Date: Thu, 6 Jan 2005 13:54:30 GMT
From: Andrew Josey <ajosey@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Document [Austin-037:XCU:cd:cd relative paths Approved] updated
Resent-Date: 6 Jan 2005 13:55:11 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
This message is generated by The Open Group's web service
because you are a subscriber to the austin-group-l list
A document has just been updated by Andrew Josey.
Web: Austin Group Interpretations
Title: Austin-037:XCU:cd:cd relative paths Approved
URL: http://www.opengroup.org/austin/interps/doc.tpl?gdid=6230
Further details:-
This addresses a number of defects identified with how the cd utility handles
symbolic links.
----
To unsubscribe from this and/or other mailing lists administered by
The Open Group please visit http://www.opengroup.org/sophocles/unsubscribe.tpl
or send a request to webmaster@opengroup.org (please include the text
of this message).
---------- Forwarded message ----------
Date: Thu, 6 Jan 2005 13:55:55 GMT
From: Andrew Josey <ajosey@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Document [Austin-038:XCU:test/shell:arithmetic expansion Approved]
updated
Resent-Date: 6 Jan 2005 13:56:20 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
This message is generated by The Open Group's web service
because you are a subscriber to the austin-group-l list
A document has just been updated by Andrew Josey.
Web: Austin Group Interpretations
Title: Austin-038:XCU:test/shell:arithmetic expansion Approved
URL: http://www.opengroup.org/austin/interps/doc.tpl?gdid=6231
Further details:-
This addresses the question of what constitutes a number in XCU test and shell
arithmetic expansion.
----
To unsubscribe from this and/or other mailing lists administered by
The Open Group please visit http://www.opengroup.org/sophocles/unsubscribe.tpl
or send a request to webmaster@opengroup.org (please include the text
of this message).
---------- Forwarded message ----------
Date: Thu, 6 Jan 2005 13:59:13 GMT
From: Andrew Josey <ajosey@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Document [Austin-041:XSH:strptime:leading zeroes Approved] updated
Resent-Date: 6 Jan 2005 13:59:48 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
This message is generated by The Open Group's web service
because you are a subscriber to the austin-group-l list
A document has just been updated by Andrew Josey.
Web: Austin Group Interpretations
Title: Austin-041:XSH:strptime:leading zeroes Approved
URL: http://www.opengroup.org/austin/interps/doc.tpl?gdid=6234
Further details:-
Leading zeroes permitted
----
To unsubscribe from this and/or other mailing lists administered by
The Open Group please visit http://www.opengroup.org/sophocles/unsubscribe.tpl
or send a request to webmaster@opengroup.org (please include the text
of this message).
^ permalink raw reply [relevance 3%]
* Re: Bug#289442: zsh: completions do not respect LC_COLLATE
[not found] <E1CnUVX-0005Di-00@nozomi>
@ 2005-01-09 15:35 0% ` Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2005-01-09 15:35 UTC (permalink / raw)
To: zsh-workers, Benjamin Hill (Mako), 289442-forwarded
> Thanks for maintaining zsh Clint!
>
> AFAICT, results returned by tab completions to do not respect
> LC_COLLATE. Preferabley, zsh should sort completions according to
> whatever LC_COLLATE is set to at the time the completions are
> presented.
>
> To reproduce the bug, go into a directory with upper case and
> lowercase filenames. Set LC_COLLATE to C or POSIX and you should see
> case sensative sorting for a command like ls and in the completions of
> the ls command. Now set LC_COLLATE to, for example, en_US.UTF-8 which
> sorts case insensatively. The behavior will be changed for ls but not
> for tab completions of ls from within zsh.
>
> Invoking zsh with the LC_COLLATE set does not alter this behavior.
There were some concerns with locale-specific collation order in the
past with respect to surprise data loss when globbing.
http://www.zsh.org/mla/users/1998/msg00740.html
http://www.zsh.org/mla/workers/1999/msg02226.html
However, the real issue with your sorting problem seems to be the use of
a comparison function that ignores locale and behaves differently
depending on the setting of the NUMERIC_GLOB_SORT option.
I think we could change the character comparison at the end of
setbpcmp() to a strcoll(), or do setxfrm()'s at the beginning.
^ permalink raw reply [relevance 0%]
* Re: Some groundwork for Unicode in Zle
@ 2005-01-11 15:09 3% ` DervishD
0 siblings, 0 replies; 200+ results
From: DervishD @ 2005-01-11 15:09 UTC (permalink / raw)
To: Peter Stephenson; +Cc: Zsh hackers list
Hi Peter :)
* Peter Stephenson <pws@csr.com> dixit:
> I'm still not sure how to test whether a multibyte
> string is invalid rather than incomplete.
AFAIK, mbrtowc returns -1 for invalid and -2 for incomplete (and
a 0 for the NULL widechar). Although the return value is 'size_t' is
nearly impossible for the function to return (size_t) -1 (or -2) for
a *correct* conversion in UTF-8. I think there is a safe bet to
assume that even an ill-formed operating system not honoring C99 will
have SIZE_MAX greater than 8 XDDDDD
I haven't used myself the restartable set of multibyte functions,
so please take a look at SUS, POSIX or whatever to see the gory
details for this function. I've used SUS for reference.
Raúl Núñez de Arenas Coronado
--
Linux Registered User 88736
http://www.dervishd.net & http://www.pleyades.net/
It's my PC and I'll cry if I want to...
^ permalink raw reply [relevance 3%]
* POSIX conformance in coreutils
@ 2005-01-12 1:01 8% Vin Shelton
2005-01-12 9:18 9% ` Stephane Chazelas
2005-01-12 10:27 5% ` POSIX conformance in coreutils Peter Stephenson
0 siblings, 2 replies; 200+ results
From: Vin Shelton @ 2005-01-12 1:01 UTC (permalink / raw)
To: zsh-workers
GNU coreutils (at least versions 5.2.1 and 5.3.0) enforce POSIX
conformance, so they don't like 'tail -1', instead they require
'tail -n 1'.
This causes problems in E01options.tst:
# Count the number of directories on the stack. Don't care what they are.
dircount() { dirs -v | tail -1 | awk '{ print $1 + 1}'; }
tail: `-1' option is obsolete; use `-n 1'
Try `tail --help' for more information.
It's easy enough to change the E01options.tst script to use 'test -n
1', but that's probably not the right thing to do.
We could also add
_POSIX2_VERSION=199209
to the test. This would probably not break older versions of tail,
and would force new versions of tail to accept the old syntax. Patch
attached:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/zsh/zsh/ChangeLog,v
retrieving revision 1.2463
diff -a -u -U0 -r1.2463 ChangeLog
--- ChangeLog 10 Jan 2005 18:43:19 -0000 1.2463
+++ ChangeLog 12 Jan 2005 00:58:28 -0000
@@ -0,0 +1,5 @@
+2005-01-11 Vin Shelton <acs@xemacs.org>
+
+ * Test/E01options.ztst: Add _POSIX2_VERSION=199209 to silence new
+ coreutils' versions of tail.
+
Index: Test/E01options.ztst
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/E01options.ztst,v
retrieving revision 1.13
diff -a -u -r1.13 E01options.ztst
--- Test/E01options.ztst 9 Sep 2004 15:03:31 -0000 1.13
+++ Test/E01options.ztst 12 Jan 2005 00:58:32 -0000
@@ -116,7 +116,7 @@
>scalar
# Count the number of directories on the stack. Don't care what they are.
- dircount() { dirs -v | tail -1 | awk '{ print $1 + 1}'; }
+ dircount() { dirs -v | _POSIX2_VERSION=199209 tail -1 | awk '{ print $1 + 1}'; }
unsetopt autopushd
cd tmpcd
dircount
HTH,
Vin
^ permalink raw reply [relevance 8%]
* Re: POSIX conformance in coreutils
2005-01-12 1:01 8% POSIX conformance in coreutils Vin Shelton
@ 2005-01-12 9:18 9% ` Stephane Chazelas
2005-01-12 16:12 9% ` POSIX conformance in Solaris Danek Duvall
2005-01-12 10:27 5% ` POSIX conformance in coreutils Peter Stephenson
1 sibling, 1 reply; 200+ results
From: Stephane Chazelas @ 2005-01-12 9:18 UTC (permalink / raw)
To: zsh-workers
On Tue, Jan 11, 2005 at 08:01:26PM -0500, Vin Shelton wrote:
> GNU coreutils (at least versions 5.2.1 and 5.3.0) enforce POSIX
> conformance, so they don't like 'tail -1', instead they require
> 'tail -n 1'.
>
> This causes problems in E01options.tst:
>
> # Count the number of directories on the stack. Don't care what they are.
> dircount() { dirs -v | tail -1 | awk '{ print $1 + 1}'; }
>
> tail: `-1' option is obsolete; use `-n 1'
> Try `tail --help' for more information.
[...]
YMMV.
~$ tail --version
tail (coreutils) 5.2.1
[...]
~$ tail -1 /dev/null
~$
tail -n 1, even if POSIX, is not portable. I think I've come
across a system where it was not supported recently (maybe
Solaris).
> dircount() { dirs -v | tail -1 | awk '{ print $1 + 1}'; }
Maybe:
dircount() { print $((${${(z)${(f)"$(dirs -v)"}[-1]}[1]} + 1)); }
Or:
dircount() { dirs -v | awk '{n=$1}END{print n+1}'; }
--
Stéphane
^ permalink raw reply [relevance 9%]
* Re: POSIX conformance in coreutils
2005-01-12 1:01 8% POSIX conformance in coreutils Vin Shelton
2005-01-12 9:18 9% ` Stephane Chazelas
@ 2005-01-12 10:27 5% ` Peter Stephenson
2005-01-12 10:42 5% ` Stephane Chazelas
2005-01-12 14:19 10% ` Vin Shelton
1 sibling, 2 replies; 200+ results
From: Peter Stephenson @ 2005-01-12 10:27 UTC (permalink / raw)
To: zsh-workers
Vin Shelton wrote:
> GNU coreutils (at least versions 5.2.1 and 5.3.0) enforce POSIX
> conformance, so they don't like 'tail -1', instead they require
> 'tail -n 1'.
Might the environment variable POSIXLY_CORRECT be set? That seems to be
the effect here. We could unset it explicitly if that's the case.
Index: Test/ztst.zsh
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/ztst.zsh,v
retrieving revision 1.19
diff -u -r1.19 ztst.zsh
--- Test/ztst.zsh 26 Jul 2004 13:18:14 -0000 1.19
+++ Test/ztst.zsh 12 Jan 2005 10:26:43 -0000
@@ -28,6 +28,9 @@
[[ -n $LC_COLLATE ]] && LC_COLLATE=C
[[ -n $LANG ]] && LANG=C
+# POSIXLY_CORRECT can cause spurious error messages with "tail -<num>".
+unset POSIXLY_CORRECT
+
# Set the module load path to correspond to this build of zsh.
# This Modules directory should have been created by "make check".
[[ -d Modules/zsh ]] && module_path=( $PWD/Modules )
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 5%]
* Re: POSIX conformance in coreutils
2005-01-12 10:27 5% ` POSIX conformance in coreutils Peter Stephenson
@ 2005-01-12 10:42 5% ` Stephane Chazelas
2005-01-12 14:19 10% ` Vin Shelton
1 sibling, 0 replies; 200+ results
From: Stephane Chazelas @ 2005-01-12 10:42 UTC (permalink / raw)
To: zsh-workers
On Wed, Jan 12, 2005 at 10:27:01AM +0000, Peter Stephenson wrote:
> Vin Shelton wrote:
> > GNU coreutils (at least versions 5.2.1 and 5.3.0) enforce POSIX
> > conformance, so they don't like 'tail -1', instead they require
> > 'tail -n 1'.
>
> Might the environment variable POSIXLY_CORRECT be set? That seems to be
> the effect here. We could unset it explicitly if that's the case.
[...]
As Vin said, it's more about the _POSIX2_VERSION env variable and
the default value (defined at compile time of it).
_POSIX2_VERSION=199209 tail -1
should be OK, whatever the value of POSIXLY_CORRECT for
coreutils 5.2.1 at least.
(unset POSIXLY_CORRECT; _POSIX2_VERSION=200112 tail -1)
tail: `-1' option is obsolete; use `-n 1'
Try `tail --help' for more information.
But I seem to remember there was also a warning message in some
other version, and it may not have been triggered by the same
envvar values... sigh.
--
Stéphane
^ permalink raw reply [relevance 5%]
* Re: POSIX conformance in coreutils
2005-01-12 10:27 5% ` POSIX conformance in coreutils Peter Stephenson
2005-01-12 10:42 5% ` Stephane Chazelas
@ 2005-01-12 14:19 10% ` Vin Shelton
2005-01-12 15:58 9% ` Peter Stephenson
2005-01-12 16:18 11% ` Bart Schaefer
1 sibling, 2 replies; 200+ results
From: Vin Shelton @ 2005-01-12 14:19 UTC (permalink / raw)
To: Peter Stephenson; +Cc: zsh-workers
Peter Stephenson <pws@csr.com> writes:
> Vin Shelton wrote:
>> GNU coreutils (at least versions 5.2.1 and 5.3.0) enforce POSIX
>> conformance, so they don't like 'tail -1', instead they require
>> 'tail -n 1'.
>
> Might the environment variable POSIXLY_CORRECT be set? That seems to be
> the effect here. We could unset it explicitly if that's the case.
>
> Index: Test/ztst.zsh
> ===================================================================
> RCS file: /cvsroot/zsh/zsh/Test/ztst.zsh,v
> retrieving revision 1.19
> diff -u -r1.19 ztst.zsh
> --- Test/ztst.zsh 26 Jul 2004 13:18:14 -0000 1.19
> +++ Test/ztst.zsh 12 Jan 2005 10:26:43 -0000
> @@ -28,6 +28,9 @@
> [[ -n $LC_COLLATE ]] && LC_COLLATE=C
> [[ -n $LANG ]] && LANG=C
>
> +# POSIXLY_CORRECT can cause spurious error messages with "tail -<num>".
> +unset POSIXLY_CORRECT
> +
> # Set the module load path to correspond to this build of zsh.
> # This Modules directory should have been created by "make check".
> [[ -d Modules/zsh ]] && module_path=( $PWD/Modules )
>
Hi Peter,
I checked and I do not have POSIXLY_CORRECT set. Here's what the
'Standards conformance' section of the coreutils info says:
In a few cases, the GNU utilities' default behavior is incompatible
with the POSIX standard. To suppress these incompatibilities, define
the `POSIXLY_CORRECT' environment variable. Unless you are checking
for POSIX conformance, you probably do not need to define
`POSIXLY_CORRECT'.
Newer versions of POSIX are occasionally incompatible with older
versions. For example, older versions of POSIX required the command
`sort +1' to sort based on the second and succeeding fields in each
input line, but starting with POSIX 1003.1-2001 the same command is
required to sort the file named `+1', and you must instead use the
command `sort -k 2' to get the field-based sort.
The GNU utilities normally conform to the version of POSIX that is
standard for your system. To cause them to conform to a different
version of POSIX, define the `_POSIX2_VERSION' environment variable to
a value of the form YYYYMM specifying the year and month the standard
was adopted. Two values are currently supported for `_POSIX2_VERSION':
`199209' stands for POSIX 1003.2-1992, and `200112' stands for POSIX
1003.1-2001. For example, if you are running older software that
assumes an older version of POSIX and uses `sort +1', `head -10', or
`tail +10', you can work around the compatibility problems by setting
`_POSIX2_VERSION=199209' in your environment.
This sentence: "The GNU utilities normally conform to the version of
POSIX that is standard for your system" seems to indicate that some
kind of inference is going on.
I don't have a strong opinion about how we fix this. Either one of
Stephane's proposed solutions works just as well.
- Vin
^ permalink raw reply [relevance 10%]
* Re: POSIX conformance in coreutils
2005-01-12 14:19 10% ` Vin Shelton
@ 2005-01-12 15:58 9% ` Peter Stephenson
2005-02-23 16:36 5% ` Oliver Kiddle
2005-01-12 16:18 11% ` Bart Schaefer
1 sibling, 1 reply; 200+ results
From: Peter Stephenson @ 2005-01-12 15:58 UTC (permalink / raw)
To: zsh-workers
Vin Shelton wrote:
> I checked and I do not have POSIXLY_CORRECT set. Here's what the
> 'Standards conformance' section of the coreutils info says:
It doesn't look like we can expect much sense, then.
Here is a more heavyweight change.
Index: Test/ztst.zsh
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/ztst.zsh,v
retrieving revision 1.20
diff -u -r1.20 ztst.zsh
--- Test/ztst.zsh 12 Jan 2005 10:32:20 -0000 1.20
+++ Test/ztst.zsh 12 Jan 2005 15:56:50 -0000
@@ -28,9 +28,6 @@
[[ -n $LC_COLLATE ]] && LC_COLLATE=C
[[ -n $LANG ]] && LANG=C
-# POSIXLY_CORRECT can cause spurious error messages with "tail -<num>".
-unset POSIXLY_CORRECT
-
# Set the module load path to correspond to this build of zsh.
# This Modules directory should have been created by "make check".
[[ -d Modules/zsh ]] && module_path=( $PWD/Modules )
@@ -60,6 +57,33 @@
integer ZTST_testfailed
+# This is POSIX nonsense. Because of the vague feeling someone, somewhere
+# may one day need to examine the arguments of "tail" using a standard
+# option parser, every Unix user in the world is expected to switch
+# to using "tail -n NUM" instead of "tail -NUM". Older versions of
+# tail don't support this.
+tail() {
+ emulate -L zsh
+
+ if [[ -z $TAIL_SUPPORTS_MINUS_N ]]; then
+ local test
+ test=$(echo "foo\nbar" | command tail -n 1 2>/dev/null)
+ if [[ $test = bar ]]; then
+ TAIL_SUPPORTS_MINUS_N=1
+ else
+ TAIL_SUPPORTS_MINUS_N=0
+ fi
+ fi
+
+ integer argi=${argv[(i)-<->]}
+
+ if [[ $argi -le $# && $TAIL_SUPPORTS_MINUS_N = 1 ]]; then
+ argv[$argi]=(-n ${argv[$argi][2,-1]})
+ fi
+
+ command tail "$argv[@]"
+}
+
# The source directory is not necessarily the current directory,
# but if $0 doesn't contain a `/' assume it is.
if [[ $0 = */* ]]; then
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 9%]
* Re: POSIX conformance in Solaris
2005-01-12 9:18 9% ` Stephane Chazelas
@ 2005-01-12 16:12 9% ` Danek Duvall
0 siblings, 0 replies; 200+ results
From: Danek Duvall @ 2005-01-12 16:12 UTC (permalink / raw)
To: zsh-workers
On Wed, Jan 12, 2005 at 09:18:00AM +0000, Stephane Chazelas wrote:
> tail -n 1, even if POSIX, is not portable. I think I've come
> across a system where it was not supported recently (maybe
> Solaris).
Very possible. When POSIX introduces an interface that would break
compatibility with already released Solaris commands, the functionality
gets stuck in /usr/xpg?. So in this case /usr/bin/tail doesn't require (or
even support) -n, while /usr/xpg4/bin/tail supports (but doesn't require)
it.
Danek
^ permalink raw reply [relevance 9%]
* Re: POSIX conformance in coreutils
2005-01-12 14:19 10% ` Vin Shelton
2005-01-12 15:58 9% ` Peter Stephenson
@ 2005-01-12 16:18 11% ` Bart Schaefer
1 sibling, 0 replies; 200+ results
From: Bart Schaefer @ 2005-01-12 16:18 UTC (permalink / raw)
To: zsh-workers
On Jan 12, 9:19am, Vin Shelton wrote:
} Subject: Re: POSIX conformance in coreutils
}
} 'Standards conformance' section of the coreutils info says:
}
} Newer versions of POSIX are occasionally incompatible with older
} versions. For example, older versions of POSIX required the command
} `sort +1' to sort based on the second and succeeding fields in each
} input line, but starting with POSIX 1003.1-2001 the same command is
} required to sort the file named `+1', and you must instead use the
} command `sort -k 2' to get the field-based sort.
This is, by the way, only the GNU coreutils maintainer's interpretation
of the POSIX requirements; there was quite a lengthy argument about this
on the austin-group mailing list back in October 2004 or so, though I
don't recall whether an "official" resolution was ever approved. At the
least there was not an agreement that this behavior really is required,
so far as I could tell.
^ permalink raw reply [relevance 11%]
* separate module-linking patch for 4.2.2
@ 2005-01-12 19:52 1% Clint Adams
0 siblings, 0 replies; 200+ results
From: Clint Adams @ 2005-01-12 19:52 UTC (permalink / raw)
To: zsh-workers
Unless I've accidentally deleted a hunk, this is the current patch I'm
using to link zsh/cap and zsh/pcre with different library sets than the
rest of the modules. It is a suboptimal solution.
--- zsh-4.2.2.orig/aclocal.m4
+++ zsh-4.2.2/aclocal.m4
@@ -1,59 +1,5 @@
-# Local additions to Autoconf macros.
-# Copyright (C) 1992, 1994 Free Software Foundation, Inc.
-# Francois Pinard <pinard@iro.umontreal.ca>, 1992.
-
-# @defmac fp_PROG_CC_STDC
-# @maindex PROG_CC_STDC
-# @ovindex CC
-# If the C compiler in not in ANSI C mode by default, try to add an option
-# to output variable @code{CC} to make it so. This macro tries various
-# options that select ANSI C on some system or another. It considers the
-# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and
-# handles function prototypes correctly.
-#
-# If you use this macro, you should check after calling it whether the C
-# compiler has been set to accept ANSI C; if not, the shell variable
-# @code{fp_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
-# code in ANSI C, you can make an un-ANSIfied copy of it by using the
-# program @code{ansi2knr}, which comes with Ghostscript.
-# @end defmac
-
-define(fp_PROG_CC_STDC,
-[AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C,
-fp_cv_prog_cc_stdc,
-[fp_cv_prog_cc_stdc=no
-ac_save_CFLAGS="$CFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Ae or -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# For HP-UX, we try -Ae first; this turns on ANSI but also extensions,
-# as well as defining _HPUX_SOURCE, and we can then use long long.
-# We keep the old version for backward compatibility.
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" -Xc
-do
- CFLAGS="$ac_save_CFLAGS $ac_arg"
- AC_TRY_COMPILE(
-[#ifndef __STDC__
-choke me
-#endif
-], [int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};],
-[fp_cv_prog_cc_stdc="$ac_arg"; break])
-done
-CFLAGS="$ac_save_CFLAGS"
-])
-case "x$fp_cv_prog_cc_stdc" in
- x|xno) ;;
- *) CC="$CC $fp_cv_prog_cc_stdc" ;;
-esac
-])
-
-AC_DEFUN(AC_PROG_LN,
-[AC_MSG_CHECKING(whether ln works)
+AC_DEFUN([AC_PROG_LN],
+[AC_MSG_CHECKING([whether ln works])
AC_CACHE_VAL(ac_cv_prog_LN,
[rm -f conftestdata conftestlink
echo > conftestdata
@@ -74,4 +20,67 @@
AC_SUBST(LN)dnl
])
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
builtin(include, aczsh.m4)
--- zsh-4.2.2.orig/configure.ac
+++ zsh-4.2.2/configure.ac
@@ -310,16 +310,6 @@
[AC_DEFINE(MAX_FUNCTION_DEPTH, 4096)]
)
-dnl Do you want to look for pcre support?
-AC_ARG_ENABLE(pcre,
-AC_HELP_STRING([--enable-pcre],
-[enable the search for the pcre library (may create run-time library dependencies)]))
-
-dnl Do you want to look for capability support?
-AC_ARG_ENABLE(cap,
-AC_HELP_STRING([--enable-cap],
-[enable the search for POSIX capabilities (may require additional headers to be added by hand)]))
-
dnl ------------------
dnl CHECK THE COMPILER
dnl ------------------
@@ -419,7 +409,6 @@
darwin*) CPP="$CPP -traditional-cpp" ;;
esac
-fp_PROG_CC_STDC
AC_MSG_CHECKING([whether to use prototypes])
if test ."$ansi2knr" = .yes || test ."$ansi2knr" = .no; then
msg="(overridden) "
@@ -511,24 +500,12 @@
AC_HEADER_STAT
AC_HEADER_SYS_WAIT
-oldcflags="$CFLAGS"
-if test x$enable_pcre = xyes; then
-AC_CHECK_PROG([PCRECONF], pcre-config, pcre-config)
-dnl Typically (meaning on this single RedHat 9 box in front of me)
-dnl pcre-config --cflags produces a -I output which needs to go into
-dnl CPPFLAGS else configure's preprocessor tests don't pick it up,
-dnl producing a warning.
-if test "x$ac_cv_prog_PCRECONF" = xpcre-config; then
- CPPFLAGS="$CPPFLAGS `pcre-config --cflags`"
-fi
-fi
-
AC_CHECK_HEADERS(sys/time.h sys/times.h sys/select.h termcap.h termio.h \
termios.h sys/param.h sys/filio.h string.h memory.h \
limits.h fcntl.h libc.h sys/utsname.h sys/resource.h \
locale.h errno.h stdio.h stdlib.h unistd.h sys/capability.h \
utmp.h utmpx.h sys/types.h pwd.h grp.h poll.h sys/mman.h \
- netinet/in_systm.h pcre.h langinfo.h wchar.h stddef.h \
+ netinet/in_systm.h langinfo.h wchar.h stddef.h \
sys/stropts.h)
if test $dynamic = yes; then
AC_CHECK_HEADERS(dlfcn.h)
@@ -617,15 +594,15 @@
AC_ARG_WITH(curses-terminfo,
[ --with-curses-terminfo use terminfo support from curses library],
[if test x$withval = xyes; then
- termcap_curses_order="tinfo curses ncurses termcap"
+ termcap_curses_order="curses ncurses termcap"
AC_SEARCH_LIBS(tigetstr, [$termcap_curses_order])
else
- termcap_curses_order="tinfo termcap curses ncurses"
+ termcap_curses_order="termcap curses ncurses"
fi],
[case "$host_os" in
hpux10.*|hpux11.*|solaris*)
termcap_curses_order="Hcurses curses ncurses termcap" ;;
- *) termcap_curses_order="tinfo termcap curses ncurses" ;;
+ *) termcap_curses_order="termcap curses ncurses" ;;
esac])dnl
AH_TEMPLATE([HAVE_BOOLCODES],
@@ -721,19 +698,10 @@
AC_CHECK_LIB(dl, dlopen)
fi
-if test x$enable_cap = xyes; then
- AC_CHECK_LIB(cap, cap_get_proc)
-fi
-
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(iconv, iconv)
-if test x$enable_pcre = xyes; then
-dnl pcre-config should probably be employed here
-AC_SEARCH_LIBS(pcre_compile, pcre)
-fi
-
dnl ---------------------
dnl CHECK TERMCAP LIBRARY
dnl ---------------------
@@ -1051,7 +1019,6 @@
brk sbrk \
pathconf sysconf \
tgetent tigetflag tigetnum tigetstr setupterm \
- pcre_compile pcre_study pcre_exec \
nl_langinfo \
erand48 open_memstream \
wctomb iconv \
@@ -1059,10 +1026,6 @@
htons ntohs)
AC_FUNC_STRCOLL
-if test x$enable_cap = xyes; then
- AC_CHECK_FUNCS(cap_get_proc)
-fi
-
dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
dnl Some termcaps reportedly accept a zero buffer, but then dump core
dnl in tgetstr().
@@ -2454,10 +2417,14 @@
AC_SUBST_FILE(DEFS_MK)dnl
AC_SUBST_FILE(VERSION_MK)dnl
+AM_MAKE_INCLUDE
+
AC_CONFIG_FILES(Config/defs.mk Makefile Doc/Makefile Etc/Makefile \
-Src/Makefile Test/Makefile)
+Src/Makefile Test/Makefile Src/mkmakemod.sh.in)
AC_CONFIG_COMMANDS([config.modules], [. ./config.modules.sh])
AC_CONFIG_COMMANDS([stamp-h], [echo >stamp-h])
+AC_CONFIG_COMMANDS([Src/mkmakemod.sh],
+ [sed "s/_@_/@/g" Src/mkmakemod.sh.in >Src/mkmakemod.sh])
AC_OUTPUT
@@ -2498,4 +2465,3 @@
echo "See config.modules for installed modules and functions.
"
-
--- zsh-4.2.2.orig/Src/Makefile.in
+++ zsh-4.2.2/Src/Makefile.in
@@ -109,17 +109,24 @@
@CONFIG_MK@
-Makemod prep: $(CONFIG_INCS) $(dir_top)/config.modules
+Makemod prep: $(CONFIG_INCS) $(dir_top)/config.modules mkmakemod.sh
@case $(sdir_top) in \
/*) top_srcdir=$(sdir_top) ;; \
*) top_srcdir=$(subdir)/$(sdir_top) ;; \
esac; \
export top_srcdir; \
echo 'cd $(dir_top) && $(SHELL)' \
- '$$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod'; \
+ '$(subdir)/mkmakemod.sh $(subdir) Makemod'; \
cd $(dir_top) && \
- $(SHELL) $$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod
+ $(SHELL) $(subdir)/mkmakemod.sh $(subdir) Makemod
@$(MAKE) -f Makemod $(MAKEDEFS) prep || rm -f Makemod
+
+mkmakemod.sh: $(dir_top)/config.status mkmakemod.sh.in
+ $(dir_top)/../config.status
+
+mkmakemod.sh.in: mkmakemod.sh.in.in
+ $(dir_top)/../config.status
+
.PHONY: prep
FORCE:
@@ -191,6 +198,7 @@
clean-here:
rm -f modules.stamp zsh$(EXEEXT)
rm -f libzsh-*.$(DL_EXT)
+ rm -f mkmakemod.sh.in mkmakemod.sh
.PHONY: clean-here
distclean-here:
--- zsh-4.2.2.orig/Src/Makemod.in.in
+++ zsh-4.2.2/Src/Makemod.in.in
@@ -111,7 +111,7 @@
for subdir in $$subdirs; do \
dir=$(subdir)/$$subdir; \
test -d $$dir || mkdir $$dir; \
- $(SHELL) $$top_srcdir/Src/mkmakemod.sh $$dir Makefile || exit 1; \
+ $(SHELL) Src/mkmakemod.sh $$dir Makefile || exit 1; \
( cd $$dir && $(MAKE) $(MAKEDEFS) $@ ) || exit 1; \
done
.PHONY: prep
@@ -149,7 +149,8 @@
.PHONY: mostlyclean-here
clean-here:
- rm -f *.o.c *.syms *.pro *.epro *.mdh *.mdhi *.mdhs *.mdh.tmp
+ rm -f *.o.c *.syms *.pro *.epro *.mdh *.mdhi *.mdhs *.mdh.tmp \
+ *.configure *.ach config.cache config.status config.log *.rules
.PHONY: clean-here
distclean-here:
@@ -173,11 +174,11 @@
esac; \
export top_srcdir; \
echo 'cd $(dir_top) && $(SHELL)' \
- '$$top_srcdir/Src/mkmakemod.sh -m $(subdir) $(makefile)'; \
+ 'Src/mkmakemod.sh -m $(subdir) $(makefile)'; \
cd $(dir_top) && \
- $(SHELL) $$top_srcdir/Src/mkmakemod.sh -m $(subdir) $(makefile)
+ $(SHELL) Src/mkmakemod.sh -m $(subdir) $(makefile)
-$(makefile).in: $(sdir_src)/mkmakemod.sh $(sdir_src)/Makemod.in.in $(MDDS) \
+$(makefile).in: $(dir_top)/Src/mkmakemod.sh $(sdir_src)/Makemod.in.in $(MDDS) \
$(dir_top)/config.modules
@case $(sdir_top) in \
/*) top_srcdir=$(sdir_top) ;; \
@@ -185,7 +186,6 @@
esac; \
export top_srcdir; \
echo 'cd $(dir_top) && $(SHELL)' \
- '$$top_srcdir/Src/mkmakemod.sh -i $(subdir) $(makefile)'; \
+ 'Src/mkmakemod.sh -i $(subdir) $(makefile)'; \
cd $(dir_top) && \
- $(SHELL) $$top_srcdir/Src/mkmakemod.sh -i $(subdir) $(makefile)
-
+ $(SHELL) Src/mkmakemod.sh -i $(subdir) $(makefile)
--- zsh-4.2.2.orig/Src/Modules/.cvsignore
+++ zsh-4.2.2/Src/Modules/.cvsignore
@@ -15,3 +15,4 @@
*.swp
errnames.c errcount.h
*.dll
+*.rules
--- zsh-4.2.2.orig/Src/Modules/cap.mdd
+++ zsh-4.2.2/Src/Modules/cap.mdd
@@ -5,3 +5,5 @@
autobins="cap getcap setcap"
objects="cap.o"
+
+autoconf=yes
--- zsh-4.2.2.orig/Src/Modules/cap.c
+++ zsh-4.2.2/Src/Modules/cap.c
@@ -29,6 +29,7 @@
#include "cap.mdh"
#include "cap.pro"
+#include "cap.ach"
#ifdef HAVE_CAP_GET_PROC
--- zsh-4.2.2.orig/Src/Modules/pcre.mdd
+++ zsh-4.2.2/Src/Modules/pcre.mdd
@@ -1,7 +1,9 @@
name=zsh/pcre
-link=`if test x$enable_pcre = xyes; then echo dynamic; else echo no; fi`
+link=dynamic
load=no
autobins="pcre_compile pcre_study pcre_match"
objects="pcre.o"
+
+autoconf=yes
--- zsh-4.2.2.orig/Src/Modules/pcre.c
+++ zsh-4.2.2/Src/Modules/pcre.c
@@ -30,6 +30,7 @@
#include "pcre.mdh"
#include "pcre.pro"
+#include "pcre.ach"
#define CPCRE_PLAIN 0
--- zsh-4.2.2.orig/Src/mkmakemod.sh.in.in
+++ zsh-4.2.2/Src/mkmakemod.sh.in.in
@@ -0,0 +1,494 @@
+#!/bin/sh
+#
+# mkmakemod.sh: generate Makefile.in files for module building
+#
+# Options:
+# -m = file is already generated; only build the second stage
+# -i = do not build second stage
+#
+# Args:
+# $1 = subdirectory to look in, relative to $top_srcdir
+# $2 = final output filename, within the $1 directory
+#
+# This script must be run from the top-level build directory, and $top_srcdir
+# must be set correctly in the environment.
+#
+# This looks in $1, and uses all the *.mdd files there. Each .mdd file
+# defines one module. The .mdd file is actually a shell script, which will
+# be sourced. It may define the following shell variables:
+#
+# name name of this module
+# moddeps modules on which this module depends (default none)
+# nozshdep non-empty indicates no dependence on the `zsh/main' pseudo-module
+# alwayslink if non-empty, always link the module into the executable
+# autobins builtins defined by the module, for autoloading
+# autoinfixconds infix condition codes defined by the module, for
+# autoloading (without the leading `-')
+# autoprefixconds like autoinfixconds, but for prefix condition codes
+# autoparams parameters defined by the module, for autoloading
+# automathfuncs math functions defined by the module, for autoloading
+# objects .o files making up this module (*must* be defined)
+# proto .syms files for this module (default generated from $objects)
+# headers extra headers for this module (default none)
+# hdrdeps extra headers on which the .mdh depends (default none)
+# otherincs extra headers that are included indirectly (default none)
+#
+# The .mdd file may also include a Makefile.in fragment between lines
+# `:<<\Make' and `Make' -- this will be copied into Makemod.in.
+#
+# The resulting Makemod.in knows how to build each module that is defined.
+# For each module in also knows how to build a .mdh file. Each source file
+# should #include the .mdh file for the module it is a part of. The .mdh
+# file #includes the .mdh files for any module dependencies, then each of
+# $headers, and then each .epro (for global declarations). It will
+# be recreated if any of the dependency .mdh files changes, or if any of
+# $headers or $hdrdeps changes. When anything depends on it, all the .epros
+# and $otherincs will be made up to date, but the .mdh file won't actually
+# be rebuilt if those files change.
+#
+# The order of sections of the output file is thus:
+# simple generated macros
+# macros generated from *.mdd
+# included Makemod.in.in
+# rules generated from *.mdd
+# The order dependencies are basically that the generated macros are required
+# in Makemod.in.in, but some of the macros that it creates are needed in the
+# later rules.
+#
+
+# sed script to normalise a pathname
+sed_normalise='
+ s,^,/,
+ s,$,/,
+ :1
+ s,/\./,/,
+ t1
+ :2
+ s,/[^/.][^/]*/\.\./,/,
+ s,/\.[^/.][^/]*/\.\./,/,
+ s,/\.\.[^/][^/]*/\.\./,/,
+ t2
+ s,^/$,.,
+ s,^/,,
+ s,\(.\)/$,\1,
+'
+
+# decide which stages to process
+first_stage=true
+second_stage=true
+if test ."$1" = .-m; then
+ shift
+ first_stage=false
+elif test ."$1" = .-i; then
+ shift
+ second_stage=false
+fi
+
+top_srcdir=`echo $top_srcdir | sed "$sed_normalise"`
+the_subdir=$1
+the_makefile=$2
+
+if $first_stage; then
+
+ dir_top=`echo $the_subdir | sed 's,[^/][^/]*,..,g'`
+
+ trap "rm -f $the_subdir/${the_makefile}.in" 1 2 15
+ echo "creating $the_subdir/${the_makefile}.in"
+ exec 3>&1 >$the_subdir/${the_makefile}.in
+ echo "##### ${the_makefile}.in generated automatically by mkmakemod.sh"
+ echo "##### DO NOT EDIT!"
+ echo
+ echo "##### ===== DEFINITIONS ===== #####"
+ echo
+ echo "makefile = ${the_makefile}"
+ echo "dir_top = ${dir_top}"
+ echo "subdir = ${the_subdir}"
+ echo
+
+ bin_mods=`grep link=static ./config.modules | \
+ sed -e '/^#/d' -e 's/ .*/ /' -e 's/^name=/ /'`
+ dyn_mods="`grep link=dynamic ./config.modules | \
+ sed -e '/^#/d' -e 's/ .*/ /' -e 's/^name=/ /'`"
+ module_list="${bin_mods}${dyn_mods}"
+
+ # check both 2.13 and 2.50 syntax
+ if grep '%_@_D_@_%D%' config.status >/dev/null ||
+ grep ',_@_D_@_,D,' config.status >/dev/null; then
+ is_dynamic=true
+ else
+ is_dynamic=false
+ fi
+
+ here_mddnames=
+ all_subdirs=
+ all_modobjs=
+ all_modules=
+ all_mdds=
+ all_mdhs=
+ all_proto=
+ lastsub=//
+ for module in $module_list; do
+ modfile="`grep '^name='$module' ' ./config.modules | \
+ sed -e 's/^.* modfile=//' -e 's/ .*//'`"
+ case $modfile in
+ $the_subdir/$lastsub/*) ;;
+ $the_subdir/*/*)
+ lastsub=`echo $modfile | sed 's,^'$the_subdir'/,,;s,/[^/]*$,,'`
+ case "$all_subdirs " in
+ *" $lastsub "* ) ;;
+ * )
+ all_subdirs="$all_subdirs $lastsub"
+ ;;
+ esac
+ ;;
+ $the_subdir/*)
+ mddname=`echo $modfile | sed 's,^.*/,,;s,\.mdd$,,'`
+ here_mddnames="$here_mddnames $mddname"
+ build=$is_dynamic
+ case $is_dynamic_@_$bin_mods in
+ *" $module "*)
+ build=true
+ all_modobjs="$all_modobjs modobjs.${mddname}" ;;
+ true_@_*)
+ all_modules="$all_modules ${mddname}.\$(DL_EXT)" ;;
+ esac
+ all_mdds="$all_mdds ${mddname}.mdd"
+ $build && all_mdhs="$all_mdhs ${mddname}.mdh"
+ $build && all_proto="$all_proto proto.${mddname}"
+ ;;
+ esac
+ done
+ echo "MODOBJS =$all_modobjs"
+ echo "MODULES =$all_modules"
+ echo "MDDS =$all_mdds"
+ echo "MDHS =$all_mdhs"
+ echo "PROTOS =$all_proto"
+ echo "SUBDIRS =$all_subdirs"
+ echo
+ echo "ENTRYOBJ = \$(dir_src)/modentry..o"
+ echo "NNTRYOBJ ="
+ echo "ENTRYOPT = -emodentry"
+ echo "NNTRYOPT ="
+ echo
+
+ echo "##### ===== INCLUDING Makemod.in.in ===== #####"
+ echo
+ cat $top_srcdir/Src/Makemod.in.in
+ echo
+
+ case $the_subdir in
+ Src) modobjs_sed= ;;
+ Src/*) modobjs_sed="| sed 's\" \" "`echo $the_subdir | sed 's,^Src/,,'`"/\"g' " ;;
+ *) modobjs_sed="| sed 's\" \" ../$the_subdir/\"g' " ;;
+ esac
+
+ other_mdhs=
+ remote_mdhs=
+ other_exports=
+ remote_exports=
+ other_modules=
+ remote_modules=
+ for mddname in $here_mddnames; do
+
+ unset name moddeps nozshdep alwayslink hasexport
+ unset autobins autoinfixconds autoprefixconds autoparams automathfuncs
+ unset objects proto headers hdrdeps otherincs autoconf achfile
+ . $top_srcdir/$the_subdir/${mddname}.mdd
+ q_name=`echo $name | sed 's,Q,Qq,g;s,_,Qu,g;s,/,Qs,g'`
+ test -n "${moddeps+set}" || moddeps=
+ test -n "$nozshdep" || moddeps="$moddeps zsh/main"
+ test -n "${proto+set}" ||
+ proto=`echo $objects '' | sed 's,\.o ,.syms ,g'`
+
+ dobjects=`echo $objects '' | sed 's,\.o ,..o ,g'`
+ modhdeps=
+ mododeps=
+ exportdeps=
+ imports=
+ q_moddeps=
+ for dep in $moddeps; do
+ depfile="`grep '^name='$dep' ' ./config.modules | \
+ sed -e 's/^.* modfile=//' -e 's/ .*//'`"
+ q_dep=`echo $dep | sed 's,Q,Qq,g;s,_,Qu,g;s,/,Qs,g'`
+ q_moddeps="$q_moddeps $q_dep"
+ eval `echo $depfile | sed 's,/\([^/]*\)\.mdd$,;depbase=\1,;s,^,loc=,'`
+ case "$binmod" in
+ *" $dep "* )
+ dep=zsh/main
+ ;;
+ esac
+
+ case $the_subdir in
+ $loc)
+ mdh="${depbase}.mdh"
+ export="${depbase}.export"
+ case "$dep" in
+ zsh/main )
+ mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) "
+ ;;
+ * )
+ mdll="${depbase}.\$(DL_EXT) "
+ ;;
+ esac
+ ;;
+ $loc/*)
+ mdh="\$(dir_top)/$loc/${depbase}.mdh"
+ case "$other_mdhs " in
+ *" $mdh "*) ;;
+ *) other_mdhs="$other_mdhs $mdh" ;;
+ esac
+ export="\$(dir_top)/$loc/${depbase}.export"
+ case "$other_exports " in
+ *" $export "*) ;;
+ *) other_exports="$other_exports $export" ;;
+ esac
+ case "$dep" in
+ zsh/main )
+ mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) "
+ ;;
+ * )
+ mdll="\$(dir_top)/$loc/${depbase}.\$(DL_EXT) "
+ ;;
+ esac
+ case "$other_modules " in
+ *" $mdll "*) ;;
+ *) other_modules="$other_modules $mdll" ;;
+ esac
+ ;;
+ *)
+ mdh="\$(dir_top)/$loc/${depbase}.mdh"
+ case "$remote_mdhs " in
+ *" $mdh "*) ;;
+ *) remote_mdhs="$remote_mdhs $mdh" ;;
+ esac
+ export="\$(dir_top)/$loc/${depbase}.export"
+ case "$remote_exports " in
+ *" $export "*) ;;
+ *) remote_exports="$remote_exports $export" ;;
+ esac
+ case "$dep" in
+ zsh/main )
+ mdll="\$(dir_top)/Src/libzsh-\$(VERSION).\$(DL_EXT) "
+ ;;
+ * )
+ mdll="\$(dir_top)/$loc/${depbase}.\$(DL_EXT) "
+ ;;
+ esac
+ case "$remote_modules " in
+ *" $mdll "*) ;;
+ *) remote_modules="$remote_modules $mdll" ;;
+ esac
+ ;;
+ esac
+ modhdeps="$modhdeps $mdh"
+ exportdeps="$exportdeps $export"
+ imports="$imports \$(IMPOPT)$export"
+ case "$mododeps " in
+ *" $mdll "* )
+ :
+ ;;
+ * )
+ mododeps="$mododeps $mdll"
+ ;;
+ esac
+ done
+
+ echo "##### ===== DEPENDENCIES GENERATED FROM ${mddname}.mdd ===== #####"
+ echo
+ echo "MODOBJS_${mddname} = $objects"
+ echo "MODDOBJS_${mddname} = $dobjects \$(_@_E_@_NTRYOBJ)"
+ echo "SYMS_${mddname} = $proto"
+ echo "EPRO_${mddname} = "`echo $proto '' | sed 's,\.syms ,.epro ,g'`
+ echo "INCS_${mddname} = \$(EPRO_${mddname}) $otherincs"
+ echo "EXPIMP_${mddname} = $imports \$(EXPOPT)$mddname.export"
+ echo "NXPIMP_${mddname} ="
+ echo "LINKMODS_${mddname} = $mododeps"
+ echo "NOLINKMODS_${mddname} = "
+ echo
+ echo "proto.${mddname}: \$(EPRO_${mddname})"
+ echo "\$(SYMS_${mddname}): \$(PROTODEPS)"
+ echo
+ echo "${mddname}.export: \$(SYMS_${mddname})"
+ echo " ( echo '#!'; cat \$(SYMS_${mddname}) | sed -n '/^X/{s/^X//;p;}' | sort -u ) > \$_@_"
+ echo
+ echo "modobjs.${mddname}: \$(MODOBJS_${mddname})"
+ echo " echo '' \$(MODOBJS_${mddname}) $modobjs_sed>> \$(dir_src)/stamp-modobjs.tmp"
+ echo
+
+ if test -n "$autoconf"; then
+# touch ${the_subdir}/${mddname}.rules
+ echo "@am__include@ @am__quote@${mddname}.rules@am__quote@"
+ echo
+ echo "${mddname}.ach ${mddname}.rules: \$(sdir_src)/Modules/${mddname}.configure"
+ echo " \$(sdir_src)/Modules/${mddname}.configure"
+ echo " touch ${mddname}.ach"
+ echo
+ echo "\$(sdir_src)/Modules/${mddname}.configure: \$(sdir_src)/Modules/${mddname}.configure.ac \$(sdir_src)/Modules/${mddname}.ach.in"
+ echo " cd \$(sdir_src)/Modules && autoconf ${mddname}.configure.ac >${mddname}.configure"
+ echo " chmod +x \$(sdir_src)/Modules/${mddname}.configure"
+ echo
+ echo "\$(sdir_src)/Modules/${mddname}.ach.in:"
+ echo " cd \$(sdir_src)/Modules && autoheader ${mddname}.configure.ac"
+ achfile="${mddname}.ach"
+ fi
+
+ if test -z "$alwayslink"; then
+ case " $all_modules" in *" ${mddname}."*)
+ echo "install.modules-here: install.modules.${mddname}"
+ echo "uninstall.modules-here: uninstall.modules.${mddname}"
+ echo
+ ;; esac
+ instsubdir=`echo $name | sed 's,^,/,;s,/[^/]*$,,'`
+ echo "install.modules.${mddname}: ${mddname}.\$(DL_EXT)"
+ echo " \$(SHELL) \$(sdir_top)/mkinstalldirs \$(DESTDIR)\$(MODDIR)${instsubdir}"
+ echo " \$(INSTALL_PROGRAM) \$(STRIPFLAGS) ${mddname}.\$(DL_EXT) \$(DESTDIR)\$(MODDIR)/${name}.\$(DL_EXT)"
+ echo
+ echo "uninstall.modules.${mddname}:"
+ echo " rm -f \$(DESTDIR)\$(MODDIR)/${name}.\$(DL_EXT)"
+ echo
+ echo "${mddname}.\$(DL_EXT): \$(MODDOBJS_${mddname}) ${mddname}.export $exportdeps \$(_@_LINKMODS_@__${mddname})"
+ echo ' rm -f $_@_'
+ echo " \$(DLLINK) \$(_@_E_@_XPIMP_$mddname) \$(_@_E_@_NTRYOPT) \$(MODDOBJS_${mddname}) \$(_@_LINKMODS_@__${mddname}) \$(LIBS) \$(EXTRALIBS_${mddname}) "
+ echo
+ fi
+ echo "${mddname}.mdhi: ${mddname}.mdhs \$(INCS_${mddname})"
+ echo " _@_test -f \$_@_ || echo 'do not delete this file' > \$_@_"
+ echo
+ echo "${mddname}.mdhs: ${mddname}.mdd"
+ echo " _@_\$(MAKE) -f \$(makefile) \$(MAKEDEFS) ${mddname}.mdh.tmp"
+ echo " _@_if cmp -s ${mddname}.mdh ${mddname}.mdh.tmp; then \\"
+ echo " rm -f ${mddname}.mdh.tmp; \\"
+ echo " echo \"\\\`${mddname}.mdh' is up to date.\"; \\"
+ echo " else \\"
+ echo " mv -f ${mddname}.mdh.tmp ${mddname}.mdh; \\"
+ echo " echo \"Updated \\\`${mddname}.mdh'.\"; \\"
+ echo " fi"
+ echo " echo 'timestamp for ${mddname}.mdh against ${mddname}.mdd' > \$_@_"
+ echo
+ echo "${mddname}.mdh: ${modhdeps} ${headers} ${hdrdeps} ${mddname}.mdhi"
+ echo " _@_\$(MAKE) -f \$(makefile) \$(MAKEDEFS) ${mddname}.mdh.tmp"
+ echo " _@_mv -f ${mddname}.mdh.tmp ${mddname}.mdh"
+ echo " _@_echo \"Updated \\\`${mddname}.mdh'.\""
+ echo
+ echo "${mddname}.mdh.tmp:"
+ echo " _@_( \\"
+ echo " echo '#ifndef have_${q_name}_module'; \\"
+ echo " echo '#define have_${q_name}_module'; \\"
+ echo " echo; \\"
+ echo " echo '# ifndef IMPORTING_MODULE_${q_name}'; \\"
+ echo " if test _@_SHORTBOOTNAMES_@_ = yes; then \\"
+ echo " echo '# ifndef MODULE'; \\"
+ echo " fi; \\"
+ echo " echo '# define boot_ boot_${q_name}'; \\"
+ echo " echo '# define cleanup_ cleanup_${q_name}'; \\"
+ echo " echo '# define setup_ setup_${q_name}'; \\"
+ echo " echo '# define finish_ finish_${q_name}'; \\"
+ echo " if test _@_SHORTBOOTNAMES_@_ = yes; then \\"
+ echo " echo '# endif /* !MODULE */'; \\"
+ echo " fi; \\"
+ echo " echo '# endif /* !IMPORTING_MODULE_${q_name} */'; \\"
+ echo " echo; \\"
+ if test -n "$moddeps"; then (
+ set x $q_moddeps
+ echo " echo '/* Module dependencies */'; \\"
+ for hdep in $modhdeps; do
+ shift
+ echo " echo '# define IMPORTING_MODULE_${1} 1'; \\"
+ echo " echo '# include \"${hdep}\"'; \\"
+ done
+ echo " echo; \\"
+ ) fi
+ if test -n "$headers"; then
+ echo " echo '/* Extra headers for this module */'; \\"
+ echo " for hdr in $headers; do \\"
+ echo " if test -f \$\$hdr; then \\"
+ echo " echo '# include \"'\$\$hdr'\"'; \\"
+ echo " else \\"
+ echo " echo '# include \"\$(sdir)/'\$\$hdr'\"'; \\"
+ echo " fi; \\"
+ echo " done; \\"
+ echo " echo; \\"
+ fi
+ if test -n "$proto"; then
+ echo " echo '# undef mod_import_variable'; \\"
+ echo " echo '# undef mod_import_function'; \\"
+ echo " echo '# if defined(IMPORTING_MODULE_${q_name}) && defined(MODULE)'; \\"
+ echo " echo '# define mod_import_variable _@_MOD_IMPORT_VARIABLE_@_'; \\"
+ echo " echo '# define mod_import_function _@_MOD_IMPORT_FUNCTION_@_'; \\"
+ echo " echo '# else'; \\"
+ echo " echo '# define mod_import_function'; \\"
+ echo " echo '# define mod_import_variable'; \\"
+ echo " echo '# endif /* IMPORTING_MODULE_${q_name} && MODULE */'; \\"
+ echo " for epro in \$(EPRO_${mddname}); do \\"
+ echo " echo '# include \"'\$\$epro'\"'; \\"
+ echo " done; \\"
+ echo " echo '# undef mod_import_variable'; \\"
+ echo " echo '# define mod_import_variable'; \\"
+ echo " echo '# undef mod_import_variable'; \\"
+ echo " echo '# define mod_import_variable'; \\"
+ echo " echo '# ifndef mod_export'; \\"
+ echo " echo '# define mod_export _@_MOD_EXPORT_@_'; \\"
+ echo " echo '# endif /* mod_export */'; \\"
+ echo " echo; \\"
+ fi
+ echo " echo '#endif /* !have_${q_name}_module */'; \\"
+ echo " ) > \$_@_"
+ echo
+ echo "\$(MODOBJS_${mddname}) \$(MODDOBJS_${mddname}): ${mddname}.mdh $achfile"
+ sed -e '/^ *: *<< *\\Make *$/,/^Make$/!d' \
+ -e 's/^ *: *<< *\\Make *$//; /^Make$/d' \
+ < $top_srcdir/$the_subdir/${mddname}.mdd
+ echo
+
+ done
+
+ if test -n "$remote_mdhs$other_mdhs$remote_exports$other_exports$remote_modules$other_modules"; then
+ echo "##### ===== DEPENDENCIES FOR REMOTE MODULES ===== #####"
+ echo
+ for mdh in $remote_mdhs; do
+ echo "$mdh: FORCE"
+ echo " _@_cd _@_%_@_ && \$(MAKE) \$(MAKEDEFS) _@_%_@_$mdh"
+ echo
+ done | sed 's,^\(.*\)_@_%_@_\(.*\)_@_%_@_\(.*\)/\([^/]*\)$,\1\3\2\4,'
+ if test -n "$other_mdhs"; then
+ echo "${other_mdhs}:" | sed 's,^ ,,'
+ echo " false # should only happen with make -n"
+ echo
+ fi
+ for export in $remote_exports; do
+ echo "$export: FORCE"
+ echo " _@_cd _@_%_@_ && \$(MAKE) \$(MAKEDEFS) _@_%_@_$export"
+ echo
+ done | sed 's,^\(.*\)_@_%_@_\(.*\)_@_%_@_\(.*\)/\([^/]*\)$,\1\3\2\4,'
+ if test -n "$other_exports"; then
+ echo "${other_exports}:" | sed 's,^ ,,'
+ echo " false # should only happen with make -n"
+ echo
+ fi
+ for mdll in $remote_modules; do
+ echo "$mdll: FORCE"
+ echo " _@_cd _@_%_@_ && \$(MAKE) \$(MAKEDEFS) _@_%_@_$mdll"
+ echo
+ done | sed 's,^\(.*\)_@_%_@_\(.*\)_@_%_@_\(.*\)/\([^/]*\)$,\1\3\2\4,'
+ if test -n "$other_modules"; then
+ echo "${other_modules}:" | sed 's,^ ,,'
+ echo " false # should only happen with make -n"
+ echo
+ fi
+ fi
+
+ echo "##### End of ${the_makefile}.in"
+
+ exec >&3 3>&-
+
+fi
+
+if $second_stage ; then
+ trap "rm -f $the_subdir/${the_makefile}" 1 2 15
+
+ ${CONFIG_SHELL-/bin/sh} ./config.status \
+ --file=$the_subdir/${the_makefile}:$the_subdir/${the_makefile}.in ||
+ return 1
+fi
+
+exit 0
^ permalink raw reply [relevance 1%]
* Re: unknown limits message
[not found] <20050119110447.GA1489@vandal.simcon-mt.de>
@ 2005-01-19 12:20 5% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2005-01-19 12:20 UTC (permalink / raw)
To: Andrei A. Voropaev, Zsh hackers list
"Andrei A. Voropaev" wrote:
> Hi!
>
> Sorry if this message duplicates some other already, but searching in
> archives didn't produce it. When compiling zsh-4.2.1 on my system I got
> the warning about unknown limits. I'm using very new kernel, so
> maybe it is worth mentioning :) Here's the rlimits.h
Thanks, this is indeed new. The patch below is actually against 4.2.3;
4.2.2 will be the same but 4.2.1 may be different, although probably not
very much.
I've updated my /usr/include/asm/resources.h (I'm on Linux 2.6.10 as
supplied as an update for Fedora Core 3) and tested this.
I also added bash-compatible option letters for ulimit.
I reordered the switch for ulimit output to be more logical, but it
doesn't affect the actual output which is in limit order, not order of
the switches. This is reasonable rational even if it's not immediately
clear to the user that there is a rationale, I think.
I note bash allows you to seee the pipe size, which isn't actually a
limit. You can't modify it, either.
Index: configure.ac
===================================================================
RCS file: /cvsroot/zsh/zsh/configure.ac,v
retrieving revision 1.22
diff -u -r1.22 configure.ac
--- configure.ac 14 Jan 2005 13:04:49 -0000 1.22
+++ configure.ac 19 Jan 2005 12:07:23 -0000
@@ -1392,6 +1392,8 @@
zsh_LIMIT_PRESENT(RLIMIT_SBSIZE)
zsh_LIMIT_PRESENT(RLIMIT_TCACHE)
zsh_LIMIT_PRESENT(RLIMIT_VMEM)
+zsh_LIMIT_PRESENT(RLIMIT_SIGPENDING)
+zsh_LIMIT_PRESENT(RLIMIT_MSGQUEUE)
AH_TEMPLATE([RLIMIT_VMEM_IS_RSS],
[Define to 1 if RLIMIT_VMEM and RLIMIT_RSS both exist and are equal.])
Index: Doc/Zsh/builtins.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/builtins.yo,v
retrieving revision 1.73
diff -u -r1.73 builtins.yo
--- Doc/Zsh/builtins.yo 7 Dec 2004 16:55:02 -0000 1.73
+++ Doc/Zsh/builtins.yo 19 Jan 2005 12:07:24 -0000
@@ -679,7 +679,9 @@
sitem(tt(maxpthreads))(Maximum number of threads per process.)
sitem(tt(memorylocked))(Maximum amount of memory locked in RAM.)
sitem(tt(memoryuse))(Maximum resident set size.)
+sitem(tt(msgqueue))(Maximum number of bytes in POSIX message queues.)
sitem(tt(resident))(Maximum resident set size.)
+sitem(tt(sigpending))(Maximum number of pending signals.)
sitem(tt(sockbufsize))(Maximum size of all socket buffers.)
sitem(tt(stacksize))(Maximum stack size for each process.)
sitem(tt(vmemorysize))(Maximum amount of virtual memory.)
@@ -1441,7 +1443,7 @@
findex(ulimit)
cindex(resource limits)
cindex(limits, resource)
-item(tt(ulimit) [ [ tt(-SHacdflmnpstv) | tt(-N) var(resource) [ var(limit) ] ... ])(
+item(tt(ulimit) [ [ tt(-SHacdfilmnpqstvx) | tt(-N) var(resource) [ var(limit) ] ... ])(
Set or display resource limits of the shell and the processes started by
the shell. The value of var(limit) can be a number in the unit specified
below or the value `tt(unlimited)'. By default, only soft limits are
@@ -1462,14 +1464,17 @@
sitem(tt(-c))(512-byte blocks on the size of core dumps.)
sitem(tt(-d))(K-bytes on the size of the data segment.)
sitem(tt(-f))(512-byte blocks on the size of files written.)
+sitem(tt(-i))(The number of pending signals.)
sitem(tt(-l))(K-bytes on the size of locked-in memory.)
sitem(tt(-m))(K-bytes on the size of physical memory.)
sitem(tt(-n))(open file descriptors.)
+sitem(tt(-q))(Bytes in POSIX message queues.)
sitem(tt(-s))(K-bytes on the size of the stack.)
sitem(tt(-t))(CPU seconds to be used.)
sitem(tt(-u))(processes available to the user.)
sitem(tt(-v))(K-bytes on the size of virtual memory. On some systems this
refers to the limit called `address space'.)
+sitem(tt(-x))(The number of locks on files.)
endsitem()
A resource may also be specified by integer in the form `tt(-N)
Index: Src/Builtins/rlimits.awk
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Builtins/rlimits.awk,v
retrieving revision 1.5
diff -u -r1.5 rlimits.awk
--- Src/Builtins/rlimits.awk 21 Aug 2001 20:05:33 -0000 1.5
+++ Src/Builtins/rlimits.awk 19 Jan 2005 12:07:24 -0000
@@ -45,6 +45,8 @@
if (limnam == "STACK") { msg[limnum] = "Mstacksize" }
if (limnam == "TCACHE") { msg[limnum] = "Ncachedthreads" }
if (limnam == "VMEM") { msg[limnum] = "Mvmemorysize" }
+ if (limnam == "SIGPENDING") { msg[limnum] = "Nsigpending" }
+ if (limnam == "MSGQUEUE") { msg[limnum] = "Nmsgqueue" }
}
}
}
Index: Src/Builtins/rlimits.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Builtins/rlimits.c,v
retrieving revision 1.12
diff -u -r1.12 rlimits.c
--- Src/Builtins/rlimits.c 30 Jun 2004 11:10:46 -0000 1.12
+++ Src/Builtins/rlimits.c 19 Jan 2005 12:07:24 -0000
@@ -208,13 +208,9 @@
limit = (hard) ? limits[lim].rlim_max : limits[lim].rlim_cur;
/* display the appropriate heading */
switch (lim) {
- case RLIMIT_CPU:
- if (head)
- printf("-t: cpu time (seconds) ");
- break;
- case RLIMIT_FSIZE:
+ case RLIMIT_CORE:
if (head)
- printf("-f: file size (blocks) ");
+ printf("-c: core file size (blocks) ");
if (limit != RLIM_INFINITY)
limit /= 512;
break;
@@ -224,18 +220,26 @@
if (limit != RLIM_INFINITY)
limit /= 1024;
break;
- case RLIMIT_STACK:
+ case RLIMIT_FSIZE:
if (head)
- printf("-s: stack size (kbytes) ");
+ printf("-f: file size (blocks) ");
if (limit != RLIM_INFINITY)
- limit /= 1024;
+ limit /= 512;
break;
- case RLIMIT_CORE:
+# ifdef HAVE_RLIMIT_SIGPENDING
+ case RLIMIT_SIGPENDING:
if (head)
- printf("-c: core file size (blocks) ");
+ printf("-i: pending signals ");
+ break;
+# endif
+# ifdef HAVE_RLIMIT_MEMLOCK
+ case RLIMIT_MEMLOCK:
+ if (head)
+ printf("-l: locked-in-memory size (kb) ");
if (limit != RLIM_INFINITY)
- limit /= 512;
+ limit /= 1024;
break;
+# endif /* HAVE_RLIMIT_MEMLOCK */
/* If RLIMIT_VMEM and RLIMIT_RSS are defined and equal, avoid *
* duplicate case statement. Observed on QNX Neutrino 6.1.0. */
# if defined(HAVE_RLIMIT_RSS) && !defined(RLIMIT_VMEM_IS_RSS)
@@ -246,34 +250,46 @@
limit /= 1024;
break;
# endif /* HAVE_RLIMIT_RSS */
-# ifdef HAVE_RLIMIT_MEMLOCK
- case RLIMIT_MEMLOCK:
+# if defined(HAVE_RLIMIT_VMEM) && defined(HAVE_RLIMIT_RSS) && defined(RLIMIT_VMEM_IS_RSS)
+ case RLIMIT_VMEM:
if (head)
- printf("-l: locked-in-memory size (kb) ");
+ printf("-m: memory size (kb) ");
if (limit != RLIM_INFINITY)
limit /= 1024;
break;
-# endif /* HAVE_RLIMIT_MEMLOCK */
-# ifdef HAVE_RLIMIT_NPROC
- case RLIMIT_NPROC:
- if (head)
- printf("-u: processes ");
- break;
-# endif /* HAVE_RLIMIT_NPROC */
+# endif /* HAVE_RLIMIT_VMEM */
# ifdef HAVE_RLIMIT_NOFILE
case RLIMIT_NOFILE:
if (head)
printf("-n: file descriptors ");
break;
# endif /* HAVE_RLIMIT_NOFILE */
-# ifdef HAVE_RLIMIT_VMEM
+# ifdef HAVE_RLIMIT_MSGQUEUE
+ case RLIMIT_MSGQUEUE:
+ if (head)
+ printf("-q: bytes in POSIX msg queues ");
+ break;
+# endif
+ case RLIMIT_STACK:
+ if (head)
+ printf("-s: stack size (kbytes) ");
+ if (limit != RLIM_INFINITY)
+ limit /= 1024;
+ break;
+ case RLIMIT_CPU:
+ if (head)
+ printf("-t: cpu time (seconds) ");
+ break;
+# ifdef HAVE_RLIMIT_NPROC
+ case RLIMIT_NPROC:
+ if (head)
+ printf("-u: processes ");
+ break;
+# endif /* HAVE_RLIMIT_NPROC */
+# if defined(HAVE_RLIMIT_VMEM) && (!defined(HAVE_RLIMIT_RSS) || !defined(RLIMIT_VMEM_IS_RSS))
case RLIMIT_VMEM:
if (head)
-# if defined(HAVE_RLIMIT_RSS) && defined(RLIMIT_VMEM_IS_RSS)
- printf("-m: memory size (kb) ");
-# else
printf("-v: virtual memory size (kb) ");
-# endif
if (limit != RLIM_INFINITY)
limit /= 1024;
break;
@@ -286,18 +302,12 @@
limit /= 1024;
break;
# endif /* HAVE_RLIMIT_AS */
-# ifdef HAVE_RLIMIT_TCACHE
- case RLIMIT_TCACHE:
- if (head)
- printf("-N %2d: cached threads ", RLIMIT_TCACHE);
- break;
-# endif /* HAVE_RLIMIT_TCACHE */
-# ifdef HAVE_RLIMIT_AIO_OPS
- case RLIMIT_AIO_OPS:
+# ifdef HAVE_RLIMIT_LOCKS
+ case RLIMIT_LOCKS:
if (head)
- printf("-N %2d: AIO operations ", RLIMIT_AIO_OPS);
+ printf("-x: file locks ");
break;
-# endif /* HAVE_RLIMIT_AIO_OPS */
+# endif /* HAVE_RLIMIT_LOCKS */
# ifdef HAVE_RLIMIT_AIO_MEM
case RLIMIT_AIO_MEM:
if (head)
@@ -306,6 +316,18 @@
limit /= 1024;
break;
# endif /* HAVE_RLIMIT_AIO_MEM */
+# ifdef HAVE_RLIMIT_AIO_OPS
+ case RLIMIT_AIO_OPS:
+ if (head)
+ printf("-N %2d: AIO operations ", RLIMIT_AIO_OPS);
+ break;
+# endif /* HAVE_RLIMIT_AIO_OPS */
+# ifdef HAVE_RLIMIT_TCACHE
+ case RLIMIT_TCACHE:
+ if (head)
+ printf("-N %2d: cached threads ", RLIMIT_TCACHE);
+ break;
+# endif /* HAVE_RLIMIT_TCACHE */
# ifdef HAVE_RLIMIT_SBSIZE
case RLIMIT_SBSIZE:
if (head)
@@ -320,12 +342,6 @@
printf("-N %2d: threads per process ", RLIMIT_PTHREAD);
break;
# endif /* HAVE_RLIMIT_PTHREAD */
-# ifdef HAVE_RLIMIT_LOCKS
- case RLIMIT_LOCKS:
- if (head)
- printf("-N %2d: file locks ", RLIMIT_LOCKS);
- break;
-# endif /* HAVE_RLIMIT_LOCKS */
default:
if (head)
printf("-N %2d: ", lim);
@@ -745,6 +761,21 @@
# endif
break;
# endif /* HAVE_RLIMIT_VMEM */
+# ifdef HAVE_RLIMIT_LOCKS
+ case 'x':
+ res = RLIMIT_LOCKS;
+ break;
+# endif
+# ifdef HAVE_RLIMIT_SIGPENDING
+ case 'i':
+ res = RLIMIT_SIGPENDING;
+ break;
+# endif
+# ifdef HAVE_RLIMIT_MSGQUEUES
+ case 'q':
+ res = RLIMIT_MSGQUEUES;
+ break;
+# endif
default:
/* unrecognised limit */
zwarnnam(name, "bad option: -%c", NULL, *options);
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
^ permalink raw reply [relevance 5%]
* Re: trap .. EXIT doesn't execute when exit is due to a signal
@ 2005-02-12 21:29 3% ` Bart Schaefer
2005-02-14 15:33 0% ` Peter Stephenson
0 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2005-02-12 21:29 UTC (permalink / raw)
To: Dan Nelson, Matthias B.; +Cc: Zsh hackers list
On Feb 12, 3:04pm, Dan Nelson wrote:
} Subject: Re: trap .. EXIT doesn't execute when exit is due to a signal
}
} In the last episode (Feb 12), Matthias B. said:
} > trap ... EXIT doesn't execute ... when the shell is terminated due to
} > a signal (e.g. Ctrl-C). I think this is a bug. It's certainly
} > undesirable, because it causes cleanup tasks to not be executed. Bash
} > doesn't have this problem.
}
} zsh-users 3513 describes what is happening here, I think. Ash and
} /Solaris bin/sh have the same behaviour.
Yep, that's exactly it.
It just occured to me that it may very well be the case that bash is
using the POSIX atexit() handler to execute its exit traps, which I
believe would handle the situation described in 3513 without having
to do any special handling of SIGINT.
However, I'm not positive that covers all the cases in which zsh runs
the exit trap, and it'd have to be used carefully to be sure the exit
trap wasn't run more than once.
^ permalink raw reply [relevance 3%]
* Re: trap .. EXIT doesn't execute when exit is due to a signal
2005-02-12 21:29 3% ` Bart Schaefer
@ 2005-02-14 15:33 0% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2005-02-14 15:33 UTC (permalink / raw)
To: Zsh hackers list
Bart Schaefer wrote:
> It just occured to me that it may very well be the case that bash is
> using the POSIX atexit() handler to execute its exit traps, which I
> believe would handle the situation described in 3513 without having
> to do any special handling of SIGINT.
>
> However, I'm not positive that covers all the cases in which zsh runs
> the exit trap, and it'd have to be used carefully to be sure the exit
> trap wasn't run more than once.
No, it's not good enough for traps exiting functions. bash only has an
EXIT trap for the whole shell.
bash-2.05b$ fn() { trap 'echo exiting' EXIT; echo fn run; }
bash-2.05b$ fn
fn run
bash-2.05b$ exit
exit
exiting
You couldn't use atexit() to fix the problem in zsh. You'd need to
return from the interrupt and unwind the call stack to the top, then
exit.
It is a nuisance that EXIT traps aren't always run, however.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
**********************************************************************
^ permalink raw reply [relevance 0%]
* rlimits.awk bug with new glibc
@ 2005-02-18 14:16 2% Vincent Lefevre
0 siblings, 0 replies; 200+ results
From: Vincent Lefevre @ 2005-02-18 14:16 UTC (permalink / raw)
To: zsh-workers
[-- Attachment #1: Type: text/plain, Size: 613 bytes --]
Concerning my limit problem on Opteron (see my messages in zsh-users),
rlimits.awk (in Src/Builtins) doesn't work with the new
/usr/include/bits/resource.h file from the glibc (attached).
It produces:
/** rlimits.h **/
/** architecture-customized limits for zsh **/
#define ZSH_NLIMITS 0
static char const *recs[ZSH_NLIMITS] = {
};
static int limtype[ZSH_NLIMITS] = {
};
--
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA
[-- Attachment #2: resource.h --]
[-- Type: text/plain, Size: 6626 bytes --]
/* Bit values & structures for resource limits. Linux version.
Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2004
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _SYS_RESOURCE_H
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
#endif
#include <bits/types.h>
/* Transmute defines to enumerations. The macro re-definitions are
necessary because some programs want to test for operating system
features with #ifdef RUSAGE_SELF. In ISO C the reflexive
definition is a no-op. */
/* Kinds of resource limit. */
enum __rlimit_resource
{
/* Per-process CPU limit, in seconds. */
RLIMIT_CPU = 0,
#define RLIMIT_CPU RLIMIT_CPU
/* Largest file that can be created, in bytes. */
RLIMIT_FSIZE = 1,
#define RLIMIT_FSIZE RLIMIT_FSIZE
/* Maximum size of data segment, in bytes. */
RLIMIT_DATA = 2,
#define RLIMIT_DATA RLIMIT_DATA
/* Maximum size of stack segment, in bytes. */
RLIMIT_STACK = 3,
#define RLIMIT_STACK RLIMIT_STACK
/* Largest core file that can be created, in bytes. */
RLIMIT_CORE = 4,
#define RLIMIT_CORE RLIMIT_CORE
/* Largest resident set size, in bytes.
This affects swapping; processes that are exceeding their
resident set size will be more likely to have physical memory
taken from them. */
__RLIMIT_RSS = 5,
#define RLIMIT_RSS __RLIMIT_RSS
/* Number of open files. */
RLIMIT_NOFILE = 7,
__RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
#define RLIMIT_NOFILE RLIMIT_NOFILE
#define RLIMIT_OFILE __RLIMIT_OFILE
/* Address space limit. */
RLIMIT_AS = 9,
#define RLIMIT_AS RLIMIT_AS
/* Number of processes. */
__RLIMIT_NPROC = 6,
#define RLIMIT_NPROC __RLIMIT_NPROC
/* Locked-in-memory address space. */
__RLIMIT_MEMLOCK = 8,
#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK
/* Maximum number of file locks. */
__RLIMIT_LOCKS = 10,
#define RLIMIT_LOCKS __RLIMIT_LOCKS
/* Maximum number of pending signals. */
__RLIMIT_SIGPENDING = 11,
#define RLIMIT_SIGPENDING __RLIMIT_SIGPENDING
/* Maximum bytes in POSIX message queues. */
__RLIMIT_MSGQUEUE = 12,
#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE
__RLIMIT_NLIMITS = 13,
__RLIM_NLIMITS = __RLIMIT_NLIMITS
#define RLIMIT_NLIMITS __RLIMIT_NLIMITS
#define RLIM_NLIMITS __RLIM_NLIMITS
};
/* Value to indicate that there is no limit. */
#ifndef __USE_FILE_OFFSET64
# define RLIM_INFINITY ((unsigned long int)(~0UL))
#else
# define RLIM_INFINITY 0xffffffffffffffffuLL
#endif
#ifdef __USE_LARGEFILE64
# define RLIM64_INFINITY 0xffffffffffffffffuLL
#endif
/* We can represent all limits. */
#define RLIM_SAVED_MAX RLIM_INFINITY
#define RLIM_SAVED_CUR RLIM_INFINITY
/* Type for resource quantity measurement. */
#ifndef __USE_FILE_OFFSET64
typedef __rlim_t rlim_t;
#else
typedef __rlim64_t rlim_t;
#endif
#ifdef __USE_LARGEFILE64
typedef __rlim64_t rlim64_t;
#endif
struct rlimit
{
/* The current (soft) limit. */
rlim_t rlim_cur;
/* The hard limit. */
rlim_t rlim_max;
};
#ifdef __USE_LARGEFILE64
struct rlimit64
{
/* The current (soft) limit. */
rlim64_t rlim_cur;
/* The hard limit. */
rlim64_t rlim_max;
};
#endif
/* Whose usage statistics do you want? */
enum __rusage_who
{
/* The calling process. */
RUSAGE_SELF = 0,
#define RUSAGE_SELF RUSAGE_SELF
/* All of its terminated child processes. */
RUSAGE_CHILDREN = -1
#define RUSAGE_CHILDREN RUSAGE_CHILDREN
};
#define __need_timeval
#include <bits/time.h> /* For `struct timeval'. */
/* Structure which says how much of each resource has been used. */
struct rusage
{
/* Total amount of user time used. */
struct timeval ru_utime;
/* Total amount of system time used. */
struct timeval ru_stime;
/* Maximum resident set size (in kilobytes). */
long int ru_maxrss;
/* Amount of sharing of text segment memory
with other processes (kilobyte-seconds). */
long int ru_ixrss;
/* Amount of data segment memory used (kilobyte-seconds). */
long int ru_idrss;
/* Amount of stack memory used (kilobyte-seconds). */
long int ru_isrss;
/* Number of soft page faults (i.e. those serviced by reclaiming
a page from the list of pages awaiting reallocation. */
long int ru_minflt;
/* Number of hard page faults (i.e. those that required I/O). */
long int ru_majflt;
/* Number of times a process was swapped out of physical memory. */
long int ru_nswap;
/* Number of input operations via the file system. Note: This
and `ru_oublock' do not include operations with the cache. */
long int ru_inblock;
/* Number of output operations via the file system. */
long int ru_oublock;
/* Number of IPC messages sent. */
long int ru_msgsnd;
/* Number of IPC messages received. */
long int ru_msgrcv;
/* Number of signals delivered. */
long int ru_nsignals;
/* Number of voluntary context switches, i.e. because the process
gave up the process before it had to (usually to wait for some
resource to be available). */
long int ru_nvcsw;
/* Number of involuntary context switches, i.e. a higher priority process
became runnable or the current process used up its time slice. */
long int ru_nivcsw;
};
/* Priority limits. */
#define PRIO_MIN -20 /* Minimum priority a process can have. */
#define PRIO_MAX 20 /* Maximum priority a process can have. */
/* The type of the WHICH argument to `getpriority' and `setpriority',
indicating what flavor of entity the WHO argument specifies. */
enum __priority_which
{
PRIO_PROCESS = 0, /* WHO is a process ID. */
#define PRIO_PROCESS PRIO_PROCESS
PRIO_PGRP = 1, /* WHO is a process group ID. */
#define PRIO_PGRP PRIO_PGRP
PRIO_USER = 2 /* WHO is a user ID. */
#define PRIO_USER PRIO_USER
};
^ permalink raw reply [relevance 2%]
* Re: POSIX conformance in coreutils
2005-01-12 15:58 9% ` Peter Stephenson
@ 2005-02-23 16:36 5% ` Oliver Kiddle
[not found] ` <okiddle@yahoo.co.uk>
0 siblings, 1 reply; 200+ results
From: Oliver Kiddle @ 2005-02-23 16:36 UTC (permalink / raw)
To: zsh-workers
On 12 Jan, Peter wrote:
> Vin Shelton wrote:
> > I checked and I do not have POSIXLY_CORRECT set. Here's what the
> > 'Standards conformance' section of the coreutils info says:
>
> It doesn't look like we can expect much sense, then.
>
> Here is a more heavyweight change.
> + if [[ -z $TAIL_SUPPORTS_MINUS_N ]]; then
Would it perhaps be easier to just use something like this:
tail() {
local arr
arr=( ${(f)"$(</dev/fd/0)"} )
print -lr -- $arr[${1:--10},-1]
}
It's shorter and potentially tests other zsh features as a side-effect
(such as emulating /dev/fd in redirections).
Oliver
^ permalink raw reply [relevance 5%]
* Re: POSIX conformance in coreutils
[not found] ` <okiddle@yahoo.co.uk>
@ 2005-02-23 18:24 5% ` Peter Stephenson
0 siblings, 0 replies; 200+ results
From: Peter Stephenson @ 2005-02-23 18:24 UTC (permalink / raw)
To: zsh-workers
Oliver Kiddle wrote:
> Would it perhaps be easier to just use something like this:
>
> tail() {
> local arr
> arr=( ${(f)"$(</dev/fd/0)"} )
> print -lr -- $arr[${1:--10},-1]
> }
>
> It's shorter and potentially tests other zsh features as a side-effect
> (such as emulating /dev/fd in redirections).
I don't think /dev/fd is currently faked to that extent. There's
special handling for tests, and /dev/fd is sometimes used to *implement*
process substitution, but it won't handle it specially there. You could
build up arr some other way, of course.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
**********************************************************************
^ permalink raw reply [relevance 5%]
* Re: Field splitting with trailing non-whitespace IFS characters (fwd)
@ 2005-03-07 20:49 3% Bart Schaefer
0 siblings, 0 replies; 200+ results
From: Bart Schaefer @ 2005-03-07 20:49 UTC (permalink / raw)
To: zsh-workers
Anybody want to (or want me to) say anything more about this to the
austin-group list?
---------- Forwarded message ----------
Date: Mon, 7 Mar 2005 09:50:52 +0000
From: Geoff Clare <gwc@opengroup.org>
To: austin-group-l@opengroup.org
Subject: Re: Field splitting with trailing non-whitespace IFS characters
Resent-Date: 7 Mar 2005 09:51:17 -0000
Resent-From: austin-group-l@opengroup.org
Resent-To: austin-group-l@opengroup.org
Assuming there is consensus that Glenn's test script reflects the
intended POSIX requirements, I propose the following changes to
XCU6 to clarify the standard and to correct the defect identified
on the read page.
In 2.5.3 Shell Variables:
Delete "(Input Field Separators.) " from the beginning of the IFS
description.
On the sh page under ENVIRONMENT VARIABLES:
Delete "(Input Field Separators.) " from the beginning of the IFS
description.
Add to RATIONALE on the sh page:
"The name IFS was originally an abbreviation of Input Field Separators,
however this name is misleading as the IFS characters are actually
used as field terminators."
In 2.6.5 Field Splitting, paragraph 2:
Change "The shell shall treat each character of the IFS as a delimiter
and use the delimiters to split the results of parameter expansion and
command substitution into fields."
to "The shell shall treat each character of the IFS as a delimiter
and use the delimiters as field terminators to split the results of
parameter expansion and command substitution into fields."
On the read page:
Change "If there are fewer var operands specified than there are
fields, the leftover fields and their intervening separators shall be
assigned to the last var."
to "If there are fewer var operands specified than there are fields,
the last var shall be set to a value comprising the following elements:
* the field that corresponds to the last var in the normal
assignment sequence described above,
* the delimiter(s) that follow the field corresponding to the
last var, and
* the remaining fields and their delimiters."
Any comments before I submit these as an aardvark?
--
Geoff Clare <g.clare@opengroup.org>
The Open Group, Thames Tower, Station Road, Reading, RG1 1LX, England
^ permalink raw reply [relevance 3%]
* Unsetting a variable that was not previously set [kind of update]
@ 2005-03-09 14:14 3% Michael Prokop
0 siblings, 0 replies; 200+ results
From: Michael Prokop @ 2005-03-09 14:14 UTC (permalink / raw)
To: zsh-workers
Hello,
I noticed a "problem" when unsetting variable(s):
% cat foo1
#!/bin/sh -e
a=b
unset a && echo foo
unset a && echo bar
% ./foo1
foo
% cat foo2
#!/bin/sh -e
a=b
unset a && echo foo
unset c && echo bar
% ./foo2
foo
I found the thread "Unsetting a variable that was not previously
set" -> http://www.zsh.org/mla/users/2003/msg00312.html in the
zsh-ml-archive.
According to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=297137
bash3, dash and posh handle it in another way than zsh does.
That's what Chet [from bash] said about bash's behaviour (according
to <URL:http://www.zsh.org/mla/users/2003/msg00314.html>) ->
| I got a bug report or two, and decided that the new behavior is
| what POSIX.2 intended. It seems to be what sh has always
| done.
As this behaviour broke the hotplug-system on my Linux
Live-CD-system where zsh is used as /bin/sh I would like to know if
this behaviour of zsh might be changed in future or if I should fix
such scripts on my own.
thx && regards,
-mika-
--
,'"`. http://www.michael-prokop.at/
( grml.org -» Linux for texttool-users and sysadmins
`._, http://www.grml.org/
^ permalink raw reply [relevance 3%]
* Re: problem redeclaring path variable (ksh incompatibility)
@ 2005-03-17 16:50 3% ` Bart Schaefer
2005-03-17 21:42 4% ` Michael Wardle
0 siblings, 1 reply; 200+ results
From: Bart Schaefer @ 2005-03-17 16:50 UTC (permalink / raw)
To: Michael Wardle, zsh-workers
On Mar 18, 1:31am, Michael Wardle wrote:
}
} I have a script that uses the identifier "path" local to a function. It
} works as intended in bash and all the versions of ksh I've tried it on,
} but not in zsh, which gives an error message similar to this:
} addpath:typeset:6: path: can't assign initial value for array
Zsh does not fully emulate the POSIX shell unless it is invoked under the
name "sh". The "emulate" command is not sufficient; it only changes the
setopts, not the set of special variables etc. that are predeclared at
startup time. Hence the "path" variable exists and is special and may
only be overridden locally to a function by using "typeset -h path=...".
Try running your test script with ARGV0=sh in the environment and note
the difference in behavior.
} It turns out that neither "typeset path=" nor "typeset path=value"
} create a local scalar, which doesn't meet my expectations. Strangely,
} however, "typeset path" does.
No, it doesn't. Nowhere in your test script is $path a scalar.
zsh% func() { emulate ksh; typeset path ; path=scalar ; typeset path }
zsh% func
path=(scalar)
zsh%
If we were going to attempt to change this, the right way would be to add
a new option, perhaps called LOCAL_SPECIALS, which would be on by default.
"emulate sh" et al. would unset this option. When NO_LOCAL_SPECIALS, the
typeset builtin would behave as if the -h option were always present.
Other, less desirable approaches might be to tie this behavior to the
POSIX_BUILTINS or KSH_TYPESET options. Possibly it should be tied to
KSH_TYPESET even if LOCAL_SPECIALS is added.
^ permalink raw reply [relevance 3%]
* Re: problem redeclaring path variable (ksh incompatibility)
2005-03-17 16:50 3% ` Bart Schaefer
@ 2005-03-17 21:42 4% ` Michael Wardle
0 siblings, 0 replies; 200+ results
From: Michael Wardle @ 2005-03-17 21:42 UTC (permalink / raw)
To: Bart Schaefer; +Cc: zsh-workers
Hi Bart
Thanks for your reply.
> Try running your test script with ARGV0=sh in the environment and note
> the difference in behavior.
It didn't appear to make any difference. Are you sure this hides $path,
or are you just suggesting this should be the normal way to invoke zsh
any time I want it to conform closely to POSIX shell?
In any case, thanks for pointing out that feature. I discovered this
difference when asking zsh to read my general POSIX/Korn shell .shrc, so
it is clear I should enable any sh/ksh compliance features before doing
so. I'll definitely investigate it some more.
> } It turns out that neither "typeset path=" nor "typeset path=value"
> } create a local scalar, which doesn't meet my expectations. Strangely,
> } however, "typeset path" does.
>
> No, it doesn't. Nowhere in your test script is $path a scalar.
I had assumed it was since subsequent attempts to assign scalar (string)
values to it succeed, and its global value is restored outside of the
function.
So this works:
typeset path
path=
path="scalar"
But this doesn't:
typeset path=
path="scalar"
And neither does this:
typeset path=""
path="scalar"
> zsh% func() { emulate ksh; typeset path ; path=scalar ; typeset path }
> zsh% func
> path=(scalar)
Assuming a -m flag to the final typeset, this certainly verifies what
you said.
Thanks
^ permalink raw reply [relevance 4%]
Results 401-600 of ~2400 next (newer) | prev (older) | reverse | sort options + mbox downloads above
-- links below jump to the message on this page --
2001-07-09 22:35 Proposal to standardize the shell Peter Stephenson
2001-07-10 11:40 5% ` Oliver Kiddle
2001-07-10 8:39 2% PATCH: Documentation indexing, prompt expansion doc Bart Schaefer
2001-07-10 15:42 3% Re: Proposal to standardize the shell David Korn
2001-07-12 16:01 4% long/short options Andrej Borsenkow
2001-07-13 8:07 0% ` Sven Wischnowsky
2001-07-13 12:10 6% PATCH: 4.1: cygwin mount Andrej Borsenkow
2001-07-14 7:05 3% a fix for _chown Akinori MUSHA
2001-07-17 11:00 0% ` Oliver Kiddle
2001-07-17 23:42 0% ` David Terrell
2001-07-22 22:47 Enhanced shell Peter Stephenson
2001-07-23 11:13 3% ` Oliver Kiddle
2001-07-23 11:38 0% ` Peter Stephenson
2001-07-23 18:03 3% ` Bart Schaefer
2001-07-24 13:42 2% ` Oliver Kiddle
2001-07-29 9:53 4% ` Zefram
2001-07-29 22:07 0% ` Peter Stephenson
2001-07-30 1:34 4% ` Bart Schaefer
2001-07-30 2:19 2% ` Bart Schaefer
2001-07-29 22:11 4% Enhanced shell standard. summary Peter Stephenson
2001-08-03 18:14 4% Function syntax Bart Schaefer
2001-08-06 14:46 4% (Fwd) Re: Value of $0 Bart Schaefer
2001-08-22 15:54 Quoted parameter parsing glitch Bart Schaefer
2001-08-22 16:21 3% ` Borsenkow Andrej
2001-08-22 16:59 4% ` Bart Schaefer
2001-08-22 18:25 0% ` Borsenkow Andrej
2001-08-26 17:26 ` Bart Schaefer
2001-08-26 17:59 ` Borsenkow Andrej
2001-08-27 7:22 4% ` Bart Schaefer
2001-09-08 21:07 PATCH: ztcp Clint Adams
2001-09-09 18:31 ` Bart Schaefer
2001-09-09 22:01 ` Clint Adams
2001-09-09 23:30 4% ` Bart Schaefer
2001-09-10 0:06 0% ` Clint Adams
2001-09-18 17:29 trap for EXIT doesn't catch exit? Bart Schaefer
2001-09-19 10:35 2% ` PATCH: " Peter Stephenson
[not found] <20010918165111.B17411@greux.loria.fr>
[not found] ` <20010918155339.20305.qmail@web12504.mail.yahoo.com>
2001-09-19 14:17 0% ` hp/ux terminfo Clint Adams
2001-09-20 19:10 3% PATCH: printf builtin Oliver Kiddle
2001-09-24 10:50 Peter Stephenson
2001-09-25 17:17 4% ` Oliver Kiddle
2001-09-25 17:57 0% ` Peter Stephenson
2001-10-05 1:35 6% PATCH: utf8 for _mount -t vfat Clint Adams
2001-10-12 14:03 3% questions - calling matheval() for printf Oliver Kiddle
2001-10-15 12:54 3% ` Peter Stephenson
2001-10-15 17:11 2% ` Oliver Kiddle
2001-10-13 7:39 differences between the two branches Bart Schaefer
2000-10-14 19:02 4% ` Peter Stephenson
2001-10-16 17:08 2% ` Bart Schaefer
2001-10-15 11:20 2% PATCH: arithmetic evaluation for printf Oliver Kiddle
2001-10-16 11:09 4% ` Oliver Kiddle
2001-10-15 11:52 9% behaviour of %q format specifier Oliver Kiddle
2001-10-18 14:15 2% PATCH: specifying arguments in printf formats Oliver Kiddle
2001-10-18 23:44 unlimited file descripters causes problems for zsh-4.0.2 Matthew Braun
2001-10-19 16:40 ` Bart Schaefer
2001-10-19 17:56 ` Bart Schaefer
2001-10-21 19:07 ` Bart Schaefer
2001-10-21 20:17 3% ` Bart Schaefer
2001-10-22 11:00 1% Make error on Mac OS X 10.1 Steven Farrier
2001-10-25 17:20 4% Mac OS X /bin/sh was zsh, to be replaced with bash Jos Backus
2001-10-25 17:40 0% ` Peter Stephenson
2001-10-25 18:09 3% ` Oliver Kiddle
2001-10-25 18:20 ` Jos Backus
2001-10-25 19:00 4% ` Oliver Kiddle
2001-11-15 19:10 1% 4.1.0-dev-3 Peter Stephenson
2002-01-14 18:47 PATCH: += parameter assignments Bart Schaefer
2002-01-16 14:43 3% ` Oliver Kiddle
2002-01-27 20:21 3% [tbm@cyrius.com: Bug#130817: zsh's echo doesn't error if device is full] Clint Adams
2002-01-27 20:24 3% [goswin.brederlow@student.uni-tuebingen.de: Bug#131063: zsh: read -r removes \ in \\] Clint Adams
2002-01-30 10:26 3% Andrew Josey: Press Release Peter Stephenson
2002-01-31 3:20 3% problems with RANDOM in subshells Clint Adams
2002-01-31 3:46 Zefram
2002-01-31 11:07 3% ` Peter Stephenson
2002-02-05 19:01 zsh: can't find terminal definition on vt100 rangarao.ragavendran
2002-02-12 16:55 4% ` PATCH: " Bart Schaefer
[not found] <Pine.BSF.4.40.0202122237320.98397-100000@brasslantern.com>
2002-02-13 22:35 1% ` Help with compile problem Ken Moorley
2002-02-26 21:39 About 'test' compatibility DervishD
2002-02-26 22:17 3% ` Bart Schaefer
2002-04-09 11:59 Zsh 3 and ${1+"$@"} (Was: [GNU Autoconf 2.53] testsuite.log: 126 failures) Peter Stephenson
2002-04-10 15:52 8% ` Akim Demaille
2002-04-10 17:09 ` Paul Eggert
2002-04-10 17:32 13% ` Akim Demaille
2002-05-07 11:25 PATCH: zselect builtin Peter Stephenson
2002-05-08 5:36 5% ` Borsenkow Andrej
2002-05-08 9:59 3% ` Peter Stephenson
2002-05-14 17:44 3% PATCH: gethostbyaddr() argument in tcp.c Peter Stephenson
2002-05-21 5:48 3% command substitution gets confused by case parens Clint Adams
2002-05-21 15:07 3% ` Bart Schaefer
2002-05-25 23:32 4% "command -v" Bruce Stephens
2002-05-26 2:46 0% ` Clint Adams
2002-06-04 16:18 PATCH: function parsing Peter Stephenson
2002-06-04 16:33 3% ` Bart Schaefer
2002-06-05 10:56 0% ` Peter Stephenson
2002-06-10 12:05 2% The sh substitution problem Peter Stephenson
2002-06-12 13:42 3% typeset verbosity Peter Stephenson
2002-06-12 14:51 3% ` Oliver Kiddle
2002-06-18 22:58 9% posix compliance Clint Adams
2002-06-20 18:05 9% ` Jos Backus
2002-06-20 18:13 10% ` Bart Schaefer
2002-06-20 19:17 5% ` Jos Backus
2002-06-20 21:31 10% ` Dan Nelson
2002-06-21 5:19 9% ` Borsenkow Andrej
2002-06-21 11:35 5% ` Oliver Kiddle
2002-06-23 17:53 8% ` Bart Schaefer
2002-06-20 21:19 5% Chet Ramey
2002-06-21 4:30 5% ` Jos Backus
[not found] <19337.1028540626@csr.com>
2002-08-05 12:31 2% ` zsh 4.0.5/4.1.0 release soon? Oliver Kiddle
2002-08-27 10:48 Non-patch: Option arguments Peter Stephenson
2002-08-27 11:36 3% ` Oliver Kiddle
2002-08-27 16:27 0% ` Peter Stephenson
2002-09-16 11:44 4% PATCH: printf -- Oliver Kiddle
2002-10-10 19:41 3% Recursion and shell functions DervishD
2002-10-10 20:02 ` Jason Price
2002-10-10 21:15 3% ` DervishD
2002-10-11 1:04 3% PATCH: cap leak Clint Adams
2002-10-18 20:59 4% Linux 2.5 and Zsh bug Stephen Hemminger
2002-10-18 21:50 0% ` Clint Adams
2002-10-26 3:22 3% Inconsistent signal handling? Philippe Troin
2002-12-19 16:34 3% What can we do with the drunken libc? DervishD
2003-02-04 15:44 10% printf and POSIX compliance Stephane CHAZELAS
2003-02-04 18:26 10% ` DervishD
2003-02-05 13:10 9% ` Stephane CHAZELAS
2003-02-05 13:42 5% ` Peter Stephenson
2003-02-11 12:09 4% ` PATCH: unset -v (was Re: printf and POSIX compliance) Oliver Kiddle
2003-02-05 14:41 10% ` printf and POSIX compliance DervishD
2003-02-11 8:29 8% ` Oliver Kiddle
2003-02-24 17:45 LC_NUMERIC=fr_FR and floating point arithmetics Stephane CHAZELAS
2003-03-10 8:58 8% ` Oliver Kiddle
2003-03-10 19:25 ` Zefram
2003-03-11 10:35 5% ` Oliver Kiddle
2003-03-12 3:32 0% ` Philippe Troin
2003-02-26 18:09 7% PATCH: usage of test(1) in zshconfig.ac Clint Adams
2003-03-26 14:16 PATCH: extra loop tests Peter Stephenson
2003-03-26 17:24 3% ` bug in read builtin and " Oliver Kiddle
2003-04-04 13:06 2% PATCH: distribution documentation files Peter Stephenson
2003-04-15 22:01 0% (Fwd) Re: getopts question Bart Schaefer
2003-05-14 10:14 2% PATCH: listing options with set -o/+o Oliver Kiddle
2003-05-14 11:07 Bug#190948: Violation against The Single UNIX ® Specification, Version 2 Oliver Kiddle
2003-05-14 12:40 ` Peter Stephenson
2003-05-14 12:57 5% ` Bug#190948: Violation against The Single UNIX ? " Zefram
2003-05-14 14:14 0% ` Peter Stephenson
2003-07-18 21:58 local variable assignment and pipelines? Dan Nelson
2003-07-21 9:59 3% ` Peter Stephenson
2003-07-23 1:12 2% [PATCH] make clone try to acquire a controlling tty Philippe Troin
2003-07-31 21:33 Segfault in completion code Haakon Riiser
2003-08-01 10:58 2% ` Peter Stephenson
2003-09-10 20:23 2% PATCH: options to command builtin Oliver Kiddle
2003-10-28 13:02 1% NSS LDAP/TLS crashing Clint Adams
2003-11-19 1:30 1% Freebsd configure misses <curses.h> and <term.h> Peter Whaite
2003-12-18 12:36 4.0.8 stills thinks Linux hasn't /dev/ptmx DervishD
2003-12-18 17:52 3% ` Peter Stephenson
2003-12-18 20:59 0% ` DervishD
2003-12-19 0:55 2% Thread developing on austin-group about LINES/COLUMNS Bart Schaefer
[not found] <20040103230931.GA63684@quark.localdomain>
2004-01-04 17:43 0% ` Possible bug in zsh Peter Stephenson
2004-02-14 18:43 2% PATCH: fix configure good and proper Peter Stephenson
2004-02-18 22:02 jobs not listing all commands Peter Stephenson
2004-02-20 15:21 8% ` PATCH: ptmx part 2 Peter Stephenson
2004-03-04 13:12 4.2.0-pre-2 Ibraheem Umaru-Mohammed
2004-03-04 13:59 5% ` 4.2.0-pre-2 Peter Stephenson
[not found] <20040308122200.GA13641@mail.guild.uwa.edu.au>
2004-03-08 12:34 ` PATCH: case-insensitive globbing Peter Stephenson
2004-03-08 12:40 ` James Devenish
2004-03-08 13:49 3% ` James Devenish
2004-03-08 16:36 0% ` Peter Stephenson
2004-03-08 15:23 3% [frederik@ugcs.caltech.edu: Bug#236748: zsh: associative array documentation reference broken] Clint Adams
2004-03-08 17:39 PATCH: terminfo configuration redux Peter Stephenson
2004-03-09 6:18 3% ` Felix Rosencrantz
[not found] <200403201750.i2KHo83C009843@soup.in.ql.org>
2004-03-20 21:42 0% ` Bug#239070: zsh: scp completion expands * too soon (patch) Clint Adams
2004-03-23 17:54 2% zsh-4.1.1 and trap '...' DEBUG: a bug or a feature? Nelson H. F. Beebe
2004-03-23 18:20 3% ` Wayne Davison
2004-03-26 16:42 (Fwd) printf for converting numbers to letters, bug? Bart Schaefer
2004-03-26 17:00 3% ` Clint Adams
2004-03-27 23:53 3% ` Bart Schaefer
2004-03-30 0:04 9% (Fwd) [shell] posix conformance for special built-ins Bart Schaefer
2004-04-01 21:20 zsh and line breaks Peter A. Castro
2004-04-02 9:49 3% ` Dave Korn
2004-04-02 16:59 3% ` Peter A. Castro
2004-04-13 1:21 2% [ejb@ql.org: Bug#243385: zsh: rsync completion expands * too soon] Clint Adams
[not found] <20040417222222.GA27230@quark.hightek.org>
[not found] ` <21533.1082374109@csr.com>
2004-04-21 8:21 0% ` FreeBSD compatability feature request Vincent Stemen
2004-04-21 11:05 2% ` PATCH: (2) " Peter Stephenson
2004-04-22 8:59 0% ` Vincent Stemen
2004-04-22 9:59 4% ` Peter Stephenson
2004-04-22 10:17 4% ` Peter Stephenson
2004-04-30 21:26 2% ` PATCH: (3) " Peter Stephenson
2004-05-01 1:45 0% ` Vincent Stemen
2004-05-01 2:23 0% ` Vincent Stemen
2004-05-04 7:17 0% ` PATCH: (3) - FreeBSD compatability issue resolved Vincent Stemen
2004-04-28 13:10 3% [stevenk@debian.org: Bug#246306: zsh: completion file for apt-move] Clint Adams
2004-05-11 14:47 2% Discussion of POSIX "cd" changes from austin-group Bart Schaefer
2004-06-08 18:09 RANDOMSMALL <range> [ <seed> ] Dave Yost
2004-06-08 21:20 3% ` Peter Stephenson
2004-07-28 15:37 3% [hugo@larve.net: Bug#261775: zsh: Space in filenames completion bug for rsync] Clint Adams
2004-08-09 17:37 7% PATCH: truncation warning Peter Stephenson
2004-08-19 6:57 2% history probs, build probs Denis Lagno
2004-09-03 14:02 4% [vincent@vinc17.org: Bug#269769: zsh: sabcmd completion doesn't work] Clint Adams
2004-09-06 12:08 Any comments on users/7883 ? Peter Stephenson
2004-09-06 12:45 4% ` Oliver Kiddle
2004-09-06 13:15 0% ` Peter Stephenson
2004-09-07 5:24 4% ` Bart Schaefer
2004-09-11 23:16 3% [joshk@triplehelix.org: Bug#271196: makefile completion catches some delayed expansions as targets] Clint Adams
2004-09-22 15:04 PATCH: zsh-4.2.1: unset does not follow spec Sean C. Farley
2004-09-22 15:28 ` Bart Schaefer
2004-09-22 18:55 ` Matthias B.
2004-09-23 7:54 3% ` Bart Schaefer
2004-09-23 9:20 5% ` Peter Stephenson
2004-09-23 9:26 3% ` Oliver Kiddle
2004-09-23 16:14 4% ` Bart Schaefer
2004-09-25 2:08 9% More POSIX developments Bart Schaefer
2004-09-27 11:04 6% ` Peter Stephenson
2004-10-02 21:23 5% ` Bart Schaefer
2004-10-04 10:23 4% ` Peter Stephenson
2004-10-04 10:49 5% ` Oliver Kiddle
2004-10-25 16:05 5% ` Bart Schaefer
2004-10-04 15:31 bug with for and time Nathan Sidwell
2004-10-04 16:10 ` Peter Stephenson
2004-10-05 9:38 ` Matthias B.
2004-10-05 18:18 ` Dan Nelson
2004-10-06 11:48 ` Matthias B.
2004-10-06 17:06 ` Peter Stephenson
2004-10-06 17:53 ` Dan Nelson
2004-10-07 9:37 ` Peter Stephenson
2004-10-07 15:25 3% ` Dan Nelson
2004-10-08 13:14 0% ` Peter Stephenson
2004-10-18 11:47 2% Pattern changes, part 2 Peter Stephenson
2004-10-25 13:06 4% zsh/bash incompatibilities Matthias B.
2004-10-25 13:20 3% ` DervishD
2004-10-25 15:14 0% ` Peter Stephenson
2004-10-26 14:48 4% [vincent@vinc17.org: Bug#278368: zsh-beta: svn completions no longer work] Clint Adams
2004-11-18 14:52 SUGGESTION: kill -l could show numbers, too Christian Höltje
2004-11-18 16:05 ` Peter Stephenson
2004-11-18 16:39 3% ` SUGGESTION: kill -l could show numbers, too (+CLD vs CHLD) Stephane Chazelas
2004-11-18 17:22 3% ` Peter Stephenson
2004-11-19 9:59 3% ` Peter Stephenson
2004-11-22 16:00 4% More POSIX shell standards stuff Bart Schaefer
2004-11-24 5:01 2% [jjminar@fastmail.fm: Bug#266785: zsh: The elite2 prompt displays the tty incorrectly] Clint Adams
2005-01-03 4:15 4% and lists and suspended processes Clint Adams
2005-01-06 16:05 3% POSIX (austin-group) interpretations Bart Schaefer
[not found] <E1CnUVX-0005Di-00@nozomi>
2005-01-09 15:35 0% ` Bug#289442: zsh: completions do not respect LC_COLLATE Clint Adams
2005-01-11 13:52 Some groundwork for Unicode in Zle Peter Stephenson
2005-01-11 15:09 3% ` DervishD
2005-01-12 1:01 8% POSIX conformance in coreutils Vin Shelton
2005-01-12 9:18 9% ` Stephane Chazelas
2005-01-12 16:12 9% ` POSIX conformance in Solaris Danek Duvall
2005-01-12 10:27 5% ` POSIX conformance in coreutils Peter Stephenson
2005-01-12 10:42 5% ` Stephane Chazelas
2005-01-12 14:19 10% ` Vin Shelton
2005-01-12 15:58 9% ` Peter Stephenson
2005-02-23 16:36 5% ` Oliver Kiddle
[not found] ` <okiddle@yahoo.co.uk>
2005-02-23 18:24 5% ` Peter Stephenson
2005-01-12 16:18 11% ` Bart Schaefer
2005-01-12 19:52 1% separate module-linking patch for 4.2.2 Clint Adams
[not found] <20050119110447.GA1489@vandal.simcon-mt.de>
2005-01-19 12:20 5% ` unknown limits message Peter Stephenson
2005-02-12 11:26 trap .. EXIT doesn't execute when exit is due to a signal Matthias B.
2005-02-12 21:04 ` Dan Nelson
2005-02-12 21:29 3% ` Bart Schaefer
2005-02-14 15:33 0% ` Peter Stephenson
2005-02-18 14:16 2% rlimits.awk bug with new glibc Vincent Lefevre
2005-03-07 20:49 3% Field splitting with trailing non-whitespace IFS characters (fwd) Bart Schaefer
2005-03-09 14:14 3% Unsetting a variable that was not previously set [kind of update] Michael Prokop
2005-03-17 14:31 problem redeclaring path variable (ksh incompatibility) Michael Wardle
2005-03-17 16:50 3% ` Bart Schaefer
2005-03-17 21:42 4% ` Michael Wardle
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).