| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Adds 'setopt typeset_to_unset', documentation, failure tests for POSIX incompatibilies, etc.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This addresses the issue that "typeset foo" creates $foo set to an
empty string, which differs from typeset handling in bash and ksh.
It does this by concealing the internal value rather than alter
the way internal values are defaulted.
This imposes the following changes:
A typeset variable with no assignment triggers NO_UNSET warnings
when the name is used in parameter expansion or math.
The typeset -AEFHLRTZailux options are applied upon the first
assignment to the variable. Explicit unset before the first
assignment discards all of those properties. If any option is
applied to an existing name, historic behavior is unchanged.
Consequent to the foregoing, the (t) parameter expansion flag
prints nothing until after the first assignment, and the (i)
and (I) subscript flags also print nothing.
The bash behavior of "unset foo; typeset -p foo" is NOT used.
This is called out as an emulation distinction, not a change.
The test cases have not been updated, so several now fail.
The test harness has been updated to declare default values.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This addresses the issue that "typeset foo" creates $foo set to an
empty string, which differs from typeset handling in bash and ksh.
It does this by concealing the internal value rather than alter
the way internal values are defaulted.
This imposes the following changes:
A typeset variable with no assignment triggers NO_UNSET warnings
when the name is used in parameter expansion or math.
The typeset -AEFHLRTZailux options are applied upon the first
assignment to the variable. Explicit unset before the first
assignment discards all of those properties. If any option is
applied to an existing name, historic behavior is unchanged.
Consequent to the foregoing, the (t) parameter expansion flag
prints nothing until after the first assignment, and the (i)
and (I) subscript flags also print nothing.
The bash behavior of "unset foo; typeset -p foo" is NOT used.
This is called out as an emulation distinction, not a change.
The test cases have not been updated, so several now fail.
The test harness has been updated to declare default values.
|
|/ |
|
|
|
|
|
|
| |
The inconsistency caused test failures where TERM is e.g. rxvt-unicode.
This also makes a couple of bits available in zattr by removing flags
indicating whether to use termcap which is not an attribute as such.
|
|
|
|
| |
Mikael Magnusson: 47382: Completion for 47364
|
|
|
|
| |
All uses reviewed; no functional change.
|
|
|
|
| |
See zsh-workers 46277, 46278, 46279.
|
|
|
|
|
| |
struct hashtable has different set of data members in different
translation units. This is undefined behavior.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
"from_where" parameter. No functional change.
|
| |
|
| |
|
| |
|
|
|
|
| |
colour
|
|
|
|
|
|
| |
This avoids using sign bit.
Also bump dev version because of wordcode incompatibility.
|
|
|
|
|
|
| |
Mostly to do with typeset -p and tied variables and their interaction.
Some general tied variable fixes.
|
|
|
|
|
| |
Fix additional races by passing back use of list_pipe_job
from subshell.
|
| |
|
|
|
|
| |
This avoids proliferating #ifdef's.
|
|
|
|
|
| |
Don't discard the line from the history merely because it produced
no synactic words.
|
|
|
|
| |
Last recorded word should be the previous one.
|
|
|
|
|
|
|
| |
Also new job options.
Also suppress debug error if rows or columns are reported as zero as
this is normal without a physical terminal.
|
|
|
|
|
|
|
|
| |
Functions defined inside other fucntions needs file line number
adding. Particularly useful for anonymous fucntions.
Add flag to indicate a function is anonymous. Done up to now
by comparing the name to a pointer but this is more consistent.
|
| |
|
| |
|
|
|
|
| |
Pass a flag in indicating this case.
|
|
|
|
|
|
|
|
| |
Move detection of key/value pairs down into prefork().
Detect normal array assignment and [key]=val array assignemnt
separately. Mark key / value pairs with Marker and pass up flag. Deal
with marked triads specially later on.
|
|
|
|
|
|
|
| |
Works for both normal and typeset case, also var+=...
Still to do: allow to be mixed with straight array assignment,
improve typeset -p, implement [key]+=value.
|
|
|
|
|
|
|
|
| |
This sets the shell emulation mode similarly to ARGV0=... which
doesn't work from other shells.
Note that this gives more comprehensive emulation than running
emulate within the shell.
|
|
|
|
|
|
|
|
| |
It now operates separately at each function depth.
To keep ERR_EXIT global, make the noerrexit variable usd bit flags.
Extend tests.
|
|
|
|
|
| |
Record fd's that have been saved in fdtable and if the shell
forks close them as they will never be restored.
|
| |
|
|
|
|
|
|
|
| |
This is a job forked from the current shell when a job partly
running from the current shell was suspended. When all associated
processes started from the main shell are finished the job is
continued and at this point the disown can complete.
|
|
|
|
|
| |
This ensures that the default event set by an expansion in ZLE
doesn't propagate to the command line expansion.
|
|
|
|
|
|
| |
This replaces 41113 / 94014ff65b with a simple local change for the
immediate problem. It's not entirely clear if this reflects wider
changes in the structure of the history code.
|
|
|
|
|
|
|
|
|
|
| |
When saving history state save whether the current history line
is linked into the ring and remove it, and restore as appropriate
later. This avoids surprises where the history ring is freed
and incorrectly frees the current state in curline, which has
a different allocation strategy.
Original patch tweaked to make restoring more logical.
|
|
|
|
| |
If wcwidth() or iswprint() is broken, force enable unicode9.
|