Peter Stephenson
c6c9f5daf2
34322: bug with interface to parsestr() etc.
...
Was showing up in places like ${(e)...} where command substitution
could reallocate the token string, but actually there was never any
guarantee that the lexer wouldn't do that, so this was always
a bit iffy.
2015-01-18 22:38:57 +00:00
Mikael Magnusson
6c72895bc2
34105: subst: remove dead code
...
Found by Coverity (Issue 1255810).
2015-01-06 23:46:55 +01:00
Barton E. Schaefer
7e7449592a
34103: fix ancient double-quote handling thinko in subst_parse_str()
...
This doesn't seem to have mattered, but must in some obscure cases
2015-01-06 09:34:12 -08:00
Barton E. Schaefer
36ec763dbd
33976: fix overlapping strcpy()
2014-12-15 16:41:08 -08:00
Peter Stephenson
d067ebcacd
33876: etc.: Separate errors and keyboards interrupts
...
Combination of 12 commits from interrupt_abort branch.
Basic strategy is to introduce bits to errflag and to set and
reset them separately.
Remove interrupt status on return to main keymap.
Turn off ERRFLAG_INT for always block.
Restore bit thereafter: we probably need a new variable in order
to allow user interrupts to be reset in the always block.
Add TRY_BLOCK_INTERRUPT
This works the same as TRY_BLOCK_ERROR, but for a SIGINT, too.
Ensure propagation of SIGINT from exited job.
If received by foreground job, shell uses ERRFLAG_INT, not
ERRFLAG_ERROR, to set the new state.
Reset errflag before precmd()
Add always block in _main_completion to fix ZLS_COLORS
Ensures we get the right state of $ZLS_COLORS at the end of _main_complete
even if there's an interrupt. However, the "right state" is a bit messy
as it depends on styles.
2014-12-11 09:41:17 +00:00
Peter Stephenson
3b5d77d819
33423: expand ${(p)...} to allow ${(ps.$param.)...}
2014-10-12 17:52:11 +01:00
Barton E. Schaefer
5a9f3ac773
33118: record original param unset state when treating empty the same as unset,
...
to avoid incorrect NO_UNSET errors
2014-09-06 22:15:28 -07:00
Peter Stephenson
b516dc37ac
unposted: remove unused variables
2014-08-04 18:54:02 +01:00
Mikael Magnusson
b8751cb9d7
32949 (wip 32928, 32937): Add :^ syntax for zipping two arrays
2014-08-04 19:00:01 +02:00
Peter Stephenson
b79ef8caaf
32932: add hmkarray() and use to fix leak
2014-08-01 16:15:13 +01:00
Andrew Waldron
8189e12312
32552 (updated by 32560): fix segfault when using process substitution in anonymous function argument list
...
Also disallow process substitution in function name position.
2014-04-18 07:30:36 -07:00
Peter Stephenson
22b8fd6da9
32299: add use of underscores on arithmetic output for spacing
2014-01-23 10:32:59 +00:00
Peter Stephenson
bd919f30ae
32001: fix crash on ${:*} and ${:|}
2013-11-17 20:33:57 +00:00
Peter Stephenson
44757a653c
30993: fix parameter modifier crash with :wq on empty string
2013-01-22 16:28:58 +00:00
Peter Stephenson
eb562c9f2c
30715: use enum lextok for variables containing lexical tokens
2012-10-05 21:35:05 +00:00
Peter Stephenson
6f3ff6b653
30633: "functions -T" only traces marked function, not called functions
2012-08-21 18:03:01 +00:00
Peter Stephenson
e49e41725a
unposted: add test for valid identifier to 30431
2012-04-22 20:49:39 +00:00
Peter Stephenson
cb4ff5e970
30439: ${...:*...} with nonexistent or non-array after *
...
should return no results
2012-04-22 18:39:53 +00:00
Peter Stephenson
5eb53bf88d
30431 with typo in _typeset fix:
...
add ${...:|...} and ${...:*...} operators, as documented
2012-04-22 18:10:42 +00:00
Peter Stephenson
4f142f2794
30413: (q-) parameter flag should quote null string
...
(q-q) etc. should be treated as errors
2012-04-16 11:26:09 +00:00
Peter Stephenson
6f93994a5a
30299: "$*" was split with SHWORDSPLIT if IFS was empty or unset
2012-02-29 09:57:40 +00:00
Bart Schaefer
15138d4fb7
30242: use PREFORK_SINGLE for ${...=...} in POSIX emulation
2012-02-20 17:50:39 +00:00
Peter Stephenson
53f893d062
30181, plus rename of PF_* flags to PREFORK_*:
...
Pass sh-wordsplitting instructions to paramsubst() using flags,
avoiding side effects of explicitly setting and unsetting the
SHWORDSPLIT option.
2012-02-12 20:27:48 +00:00
Peter Stephenson
ae146b0fe2
30041: fix bash-style offsets for positional parameters when scalars
2011-12-21 22:39:28 +00:00
Peter Stephenson
79dd647496
Ismail Dönmez: 29920: NO_EXEC problem with arithmetic substitution
2011-11-28 09:48:22 +00:00
Peter Stephenson
85b00bb0f7
29703: crash when failing to parse process substitutions
2011-08-17 20:26:05 +00:00
Peter Stephenson
ad29258c8c
29530: ${...?...} shouldn't cause an error with NO_EXEC option
2011-07-01 15:23:01 +00:00
Peter Stephenson
03b0edaa63
29462: fix warning
2011-06-06 09:08:21 +00:00
Peter Stephenson
22af58bf2b
29451: ${##stuff} removes stuff from the head of $#
2011-06-03 22:03:43 +00:00
Peter Stephenson
29d0aa8ef8
29351: casts needed to pass integers through stdarg
2011-05-23 16:08:47 +00:00
Mikael Magnusson
0198b8423d
29224: Support negative LEN in ${VAR:OFFSET:LEN} like bash.
2011-05-19 16:24:38 +00:00
Mikael Magnusson
6a29bc80d0
29261: Add g:: flag.
2011-05-19 16:16:28 +00:00
Mikael Magnusson
72cb7cfc6f
29307, 29308 + replies: Fix some doubled words in docs and comments.
2011-05-19 16:10:46 +00:00
Bart Schaefer
6699851bcb
29313: better sh emulation with SHWORDPLIT and empty $IFS
2011-05-18 01:49:15 +00:00
Peter Stephenson
ee52e3c349
28936: ${#$} and ${#?} also didn't work
2011-03-21 11:09:50 +00:00
Peter Stephenson
4263d2b821
28889: ${##} should return the length of $#
2011-03-11 21:05:59 +00:00
Peter Stephenson
f2dca9e155
users/15864: turn zsh_directory_name into a hook
2011-03-11 16:32:07 +00:00
Peter Stephenson
aa58d139ff
Mikael: 28637: ${foo:0:} caused crash
2011-01-18 10:29:58 +00:00
Bart Schaefer
66152e8ada
28530: replace (z+opts+) flag with (Z:opts:), add reserved (_ 🎏 ).
2010-12-15 04:05:50 +00:00
Peter Stephenson
eab4f9a83c
28528: Rearrange zleparse to lexflags
...
Add (z+n+)
2010-12-14 09:59:04 +00:00
Peter Stephenson
0a5702457b
28510: add (z+c+) and (z+C+) parameter flags
2010-12-12 22:44:50 +00:00
Peter Stephenson
fc6c76519b
28434: make ${NAME:OFFSET} always use zero-offset
2010-11-25 10:34:32 +00:00
Peter Stephenson
e6946adf57
28425: remove null arguments and untokenize
2010-11-20 23:46:26 +00:00
Peter Stephenson
8f20b2361c
28419: Doc/Zsh/expn.yo, Src/subst.c, Test/D04parameter.ztst:
...
KSH_ARRAY ${*:0:1} gives $0, etc.
2010-11-18 13:57:18 +00:00
Peter Stephenson
23bdfc7fd2
28418: add ${NAME:OFFSET:LENGTH} substitution
2010-11-18 10:07:55 +00:00
Peter Stephenson
3f3d80c394
28360: NO_UNSET option should check parameters with trailing options
2010-10-22 16:32:36 +00:00
Peter Stephenson
377f2bb812
28309: fix infinite loop padding with extra wide characters
2010-10-02 19:55:30 +00:00
Peter Stephenson
64d431d98b
28025: (D) parameter flag
2010-06-11 20:08:01 +00:00
Peter Stephenson
147cedfb6f
27965, 27966: Improve ${(q)...}: newline appears as $'\n;,
2010-05-27 18:57:34 +00:00
Peter Stephenson
11440d17d1
27889: Force more use of GLOB_SUBST in parameters if ~ is used
2010-04-20 21:16:21 +00:00
Peter Stephenson
e2d855f364
27865: fix problem with glob_subst in parameter subsitution
2010-04-09 15:40:13 +00:00
Peter Stephenson
815cc9fc0d
rationalise widths of non-printing characters to zero.
2010-03-27 19:04:35 +00:00
Peter Stephenson
21193d7f01
users/14905 + 14906: problems with :s in parameter expansion
2010-02-27 00:18:13 +00:00
Peter Stephenson
4a0ddedf0a
unposted: a couple of typeset -g's and a comment
2010-02-08 11:49:28 +00:00
Peter Stephenson
72529e4fa6
27304: add ${(q-)..} flag
2009-06-05 11:15:48 +00:00
Peter Stephenson
feb29659f1
users/14143 plus tweak in padding code:
...
use default IFS if IFS is unset
2009-05-20 09:04:39 +00:00
Peter Stephenson
3e1e46e9d2
26748: c modifier to add command path
2009-03-23 12:17:32 +00:00
Peter Stephenson
7733ade831
Michael Hwang: 26731 with cosmetic changes: add "a" and "A" modifiers
...
26736: document the above
2009-03-15 01:17:05 +00:00
Peter Stephenson
e391f09457
26705: multibyte characters with Meta in ${(%)foo} etc.
2009-03-10 11:12:02 +00:00
Peter Stephenson
c7d8b0dfb8
26546, 26556: sticky emulation for functions defined in emulate ... -c ...
...
environments, plus documentation
2009-02-11 20:42:15 +00:00
Peter Stephenson
14231691e1
26061: fix clash between process subst and numeric glob
...
26062: additional compmatch change, missed from 26047
2008-11-18 10:07:31 +00:00
Peter Stephenson
2fbc131ca8
26055: ensure process substitution is handled before parameter and command
2008-11-17 16:11:29 +00:00
Peter Stephenson
35a8612f21
26042 with some fixes from 26043 (Mikael):
...
allow <(...) and >(...) to occur in the middle of strings
and =(...) to have extra text following
2008-11-13 21:18:14 +00:00
Peter Stephenson
25833cc89e
25969: two bugs with metafication plus a test for one
2008-10-30 15:34:18 +00:00
Peter Stephenson
043959b0be
25760: add (~) flag
2008-09-27 20:58:24 +00:00
Peter Stephenson
4a34c96289
25755/25756: Jörg Sommer: improved handling of module arguments
...
25759: fix dynamic named directory crash, static named directory consistency
2008-09-27 19:57:25 +00:00
Peter Stephenson
b2d08a2155
25744: dynamic named directories and further doshfunc() simplification
2008-09-26 09:11:27 +00:00
Peter Stephenson
1f81bdcb47
25587: fix a==(stuff) and associated stuff.
2008-09-01 20:18:46 +00:00
Peter Stephenson
bd70d684fc
25002: only ZLE should update attributes resulting from prompt expansion
2008-05-12 13:50:42 +00:00
Peter Stephenson
cc026d2339
24788: ${(m)#...} returns string print width
2008-04-03 21:10:54 +00:00
Peter Stephenson
0076d68664
24611: fix ${+array[...]} for empty range
2008-02-27 15:51:26 +00:00
Peter Stephenson
2d03aa87fb
24264: restrict effect of 24234 to parameter substitution code and document
2007-12-16 14:05:14 +00:00
Peter Stephenson
5d5d1bef6e
24234: apply typeset parameter flags consistently
2007-12-13 20:52:52 +00:00
Peter Stephenson
a232ab5624
users/12149: "@" with splitting in double quotes retains empty fields
2007-10-30 14:01:32 +00:00
Peter Stephenson
4d52b7ebe6
23670: rationalise some linked list functions
2007-06-27 13:56:10 +00:00
Peter Stephenson
abae4fe16e
23562: add KSH_ZERO_SUBSCRIPT option and leave off by default
2007-06-18 13:25:03 +00:00
Peter Stephenson
a35302ebd4
23257: buffer too short for multibyte ${(#)...} evalution
2007-04-02 11:00:35 +00:00
Bart Schaefer
3fc59a0f09
23176: apply the (X) parameter flag to the (#) flag; fix comment typo.
2007-02-25 23:41:03 +00:00
Peter Stephenson
0a532a8f7f
fix metafication of ${(#)x}
2007-02-10 22:12:58 +00:00
Peter Stephenson
54d692c4b5
23143: make =-expansion with metacharacters more consistent
2007-02-02 21:42:14 +00:00
Wayne Davison
ecaf124c95
Silenced a compiler warning by making an int unsigned.
2007-01-26 19:18:17 +00:00
Peter Stephenson
553e011320
23118: improve sorting to make it work with locales
2007-01-21 22:47:36 +00:00
Peter Stephenson
481d1b7560
23114: ${foo:s/bar/rod} broken
2007-01-18 17:27:10 +00:00
Peter Stephenson
d8e36bffa2
23052: multibyte characters in typeset -L/R/Z padding
2006-12-13 22:30:37 +00:00
Peter Stephenson
34381548da
Incomplete improvements for $'...' in completion
2006-12-03 21:07:17 +00:00
Peter Stephenson
b09a7cc5bf
22997: fix ${...?...} exit and traps
2006-11-11 13:16:10 +00:00
Peter Stephenson
f367a90505
22980: 22952 messed up parameter padding flag optional arguments
2006-11-07 22:47:07 +00:00
Peter Stephenson
d8207acddb
22952: fix some argument delimiters to work with multibyte characters
2006-11-02 18:43:19 +00:00
Peter Stephenson
9471bbcfa0
22934, modified, see 22937: add HIST_SUBST_PATTERN option
...
make ${.../#%...} anchor at both ends
2006-11-01 12:25:18 +00:00
Peter Stephenson
289b14113b
22819: improved internal use of string quotation,
...
plus completion bug fix with RCQUOTES
2006-10-05 21:53:26 +00:00
Peter Stephenson
8f98285662
22765: rename some MB_ macros to WC_ for consistency.
2006-09-23 20:25:05 +00:00
Andrey Borzenkov
71fa876def
22761: fix compdescrie for multibyte characters
2006-09-23 14:43:57 +00:00
Peter Stephenson
2bfad02a94
22742: parameter padding uses string lengths unless (m) flag set
...
22743: restrict sh "- [args]" -> "-xv [-- args]" hack to sh mode
2006-09-20 09:22:34 +00:00
Peter Stephenson
bb3628e898
assume width 1 for control characters;
...
don't crash if width of repeated padding string is 0
2006-09-15 13:17:27 +00:00
Peter Stephenson
a242b1eb35
22705: make ${(l...)...} and ${(r...)...} handle multibyte characters
2006-09-13 20:55:29 +00:00
Peter Stephenson
6371325fdf
22689: untokenize strings used in parameter substitution pattern matching
2006-09-12 09:56:25 +00:00
Peter Stephenson
80acfd135c
22684: improve getkeystring() interface and make printf do octal escapes
2006-09-10 18:10:48 +00:00
Peter Stephenson
b726ead94e
22676, 22678: extend sched and make it able to run events when waiting for
...
input
2006-09-10 15:24:26 +00:00
Peter Stephenson
50e9ab122b
22556: Multibyte separators and delimiters
2006-07-24 22:00:19 +00:00
Peter Stephenson
4a67f24798
22544: Improve use of ztype tests for multibyte characters. Add
...
POSIX_IDENTIFIERS option to control allowability of multibyte
alphanumeric characters in parameter and module names.
2006-07-10 13:08:22 +00:00