1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-11 13:01:28 +02:00
Commit graph

290 commits

Author SHA1 Message Date
Barton E. Schaefer
ab81b98c49 39758: revise 39704 for array and hash parameters; more POSIXBUITINS tweaks for
export

39704 was commit 0f5e670, forgot to reference article number in that log.

"typeset -p" outputs "typeset" for array and hash parameters, even when
exported, because those types can be marked export but are never pushed
to the enviroment.

For POSIXBUILTINS, "export var" does not implicitly set $var, and its
export state is preserved when assigned (but not when explicitly unset).
2016-10-29 11:56:50 -07:00
Barton E. Schaefer
0f5e670cde "typeset -p" uses "export" commands or the "-g" option for parameters that are not local to the current scope 2016-10-24 07:14:39 -07:00
Peter Stephenson
4ab3fcc90d 39545: Add some missing unqueue_signals().
All of these are added simply to fit existing logic in other branches.
2016-10-03 13:43:20 +01:00
Peter Stephenson
c942c7e8b6 39519: restore missing PM_EXPORT flags.
This was missing when exporting using USE_SET_UNSET_ENV coce variant.
2016-09-30 11:35:50 +01:00
Peter Stephenson
d08674ef8c 39498: use PRIVILEGED option to decide on problematic parameter imports 2016-09-30 10:41:44 +01:00
Bart Schaefer
d44d23c757 unposted: change '\0' to NULL to silence spurious compile warning.
params.c:830:13: warning: expression which evaluates to zero treated as a null
      pointer constant of type 'char *' [-Wnon-literal-null-conversion]
    *envp = '\0';
2016-09-28 10:58:46 -07:00
Peter Stephenson
b32d974000 39460: Don't import PS4 if running as root.
There was an exploit in bash using SHELLOPTS to turn on xtrace,
however this can't happen in zsh, so this is simply a precaution.
2016-09-28 09:50:58 +01:00
Oliver Kiddle
fbafc5b509 39332: support ksh's [[ -v varname ]] condition for checking if variables are set 2016-09-16 00:00:28 +02:00
Daniel Shahaf
7154052ebe 39046 + 39061: New :P history modifier. 2016-08-22 03:34:30 +00:00
Daniel Shahaf
f9b1703511 38971: Start using the new arrlen_ge() / arrlen_le() helpers. 2016-08-01 08:01:29 +00:00
Daniel Shahaf
1a368bf31f 38973: Optimize indexing array parameters.
% () { for 1 in $prefix/zsh/bin/zsh Src/zsh; do $1 -f -c 'a=( {1..1000000} ); repeat 3 time ( repeat 300 : $a[1]  )'; done }
( repeat 300; do; : $a[1]; done; )  1.68s user 0.01s system 98% cpu 1.718 total
( repeat 300; do; : $a[1]; done; )  1.69s user 0.01s system 99% cpu 1.710 total
( repeat 300; do; : $a[1]; done; )  1.69s user 0.01s system 99% cpu 1.714 total

( repeat 300; do; : $a[1]; done; )  0.00s user 0.01s system 72% cpu 0.022 total
( repeat 300; do; : $a[1]; done; )  0.00s user 0.01s system 72% cpu 0.022 total
( repeat 300; do; : $a[1]; done; )  0.01s user 0.01s system 69% cpu 0.023 total
2016-08-01 08:01:28 +00:00
Peter Stephenson
d309d9addc 38692: IFS can't be changed in restricted mode 2016-06-21 12:32:27 +01:00
Barton E. Schaefer
3a6a6fda8a unposted (cf. 38612): remove overeager DPUTS() 2016-06-04 22:21:29 -07:00
Greg Klanderman
440c6beec0 38086: shuffle init code to localize a global, add $ZSH_ARGZERO, refine $ZSH_SCRIPT
(also a couple of ChangeLog typos corrected -- Bart)
2016-03-06 09:53:40 -08:00
Stephane Chazelas
f7d5ff31ce 38020: fix problems with $SECONDS.
Fractions of a second were not handled correctly.
2016-02-26 11:12:32 +00:00
Barton E. Schaefer
b7b3ae311d 37988: $0 becomes read-only under POSIXARGZERO 2016-02-17 20:04:25 -08:00
Peter Stephenson
1ab316c9b8 37895: $ZSH_SCRIPT is POSIX $0 but always availble 2016-02-07 21:01:08 +00:00
Jun-ichi Takimoto
a4020e10a3 37868: add 'static' to file local variables 2016-02-03 01:25:33 +09:00
Barton E. Schaefer
10c5f95f52 37785: skip autoload parameters for "typeset -p" 2016-01-26 18:17:24 -08:00
Peter Stephenson
da71967273 37512: overeager WARN_CREATE_GLOBAL with strftime 2016-01-15 12:16:40 +00:00
Peter Stephenson
524f802610 37489, tweaked: with POSIX_IDENTIFIERS create math var as scalar 2016-01-03 18:57:10 +00:00
Peter Stephenson
16684952fb 37305: typeset -p can now output arrays on one line 2015-12-04 15:39:53 +00:00
Peter Stephenson
e40a14c5e4 37202: suppress WARN_CREATE_GLOBAL warnings after a fork 2015-12-04 10:44:33 +00:00
Daniel Shahaf
5ecf332e84 37253: Constify two local variables. 2015-12-03 23:53:03 +00:00
Daniel Shahaf
4202c90b6d 37254: No functional change: change code layout in preparation for 37253. 2015-11-30 03:42:46 +00:00
Daniel Shahaf
503fa5cd9e 37250: No functional change: rename local variables. 2015-11-30 03:42:45 +00:00
Barton E. Schaefer
9e06828a7f 37208: check for restricted parameter before changing from unset to set
Also, return NULL from setnparam() on failure to retrieve value (avoids
null-pointer dereference); add some expository comments
2015-11-23 21:48:49 -08:00
Peter Stephenson
58d040fd85 37203: WARN_CREATE_GLOBAL test in wrong place for associative array 2015-11-23 15:50:13 +00:00
Peter Stephenson
2737ae4a66 37168: No WARN_CREATE_GLOBAL on special parameters 2015-11-20 11:55:07 +00:00
Barton E. Schaefer
30b90f166e 37080: use paramtab abstraction more consistently, add explanatory comments 2015-11-08 12:44:31 -08:00
Daniel Shahaf
51d50218fb unposted (after 37018): Fix typo in error message. 2015-10-30 15:03:12 +00:00
Peter Stephenson
de9effbce6 37018: Make WARNCREATEGLOBAL more consistent.
Wd don't need separate math handling any more, and can make it
output the function name in all cases.
2015-10-29 17:06:27 +00:00
Peter Stephenson
0628802baf 37014: Improved internal parameter setting.
Enhance WARNCREATEGLOBAL to work in many more cases.

Don't create REPLY as an integer if it didn't previously exist
as one, even if the value to be set is integral, as this is likely to
mess up later uses of REPLY.
2015-10-29 15:01:07 +00:00
Peter Stephenson
83a175795a 36780: Fix crash in ksh mode with -n and $HOME.
If home variable is NULL ensure HOME is unset.
2015-10-06 09:28:07 +01:00
Mikael Magnusson
8e3ca08f13 36347: Fix appending empty array to associations 2015-09-01 23:20:05 +02:00
Barton E. Schaefer
a1f8d4ffc7 35826: add getsparam_u() to return unmetafied string, use it for a number of references to non-special params 2015-07-22 12:52:24 -07:00
Barton E. Schaefer
f3e8f4cf7a 35581, 35582: output array assignments with spaces inside the parens 2015-07-22 12:43:09 -07:00
Barton E. Schaefer
a0862f6381 35799: with NO_EXEC, parse parameter subscript expressions 2015-07-15 17:51:41 -07:00
Mikael Magnusson
e55c167083 35476: Allow setting $0 when POSIX_ARGZERO is not set 2015-06-17 02:26:17 +02:00
Barton E. Schaefer
af957f2ed6 35231: make mkevnstr() safe for NULL value 2015-05-20 10:14:04 -07:00
Peter Stephenson
f855801fb9 35059: fix, document, test readonly -p.
Don't output specials as can't be reconstructed.

Output arrays in a useful order.
2015-05-08 12:53:18 +01:00
Peter Stephenson
60c6bcdeae 35054: readonly -p + POSIXBUILTINS fix.
Now displays unset variables marekd readonly
2015-05-07 12:10:16 +01:00
Peter Stephenson
bf258a1c07 34992: POSIX fix for readonly variables.
With POSIXBUILTINS, variables can be marked readonly if unset.
Also, variables can't have the readonly flag removed.
2015-04-29 15:54:49 +01:00
Peter Stephenson
bc8491c3dc 34430: parameter fixes for gdbm tied hash.
Probably fix the issue with correct parameter hiding or not hiding.

A little extra safety checking.

Possibly fixed a memory leak with untying.
2015-01-29 21:05:17 +00:00
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
Peter Stephenson
89012cf94c 34015: disallow strange environment variable names.
These are ones with the top bit set in any character.
Don't import them, and don't export them.
2014-12-19 22:15:24 +00:00
Peter Stephenson
ecef922df1 34008: metafy the environment on arrival in the shell 2014-12-18 19:55:53 +00:00
Peter Stephenson
f3cb9a7754 34006: unmetafy anything put into the environment 2014-12-18 19:36:03 +00: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
546203a770 33276: safer import of numerical variables from environment 2014-09-29 17:15:56 +01:00
Barton E. Schaefer
19f3161e51 32634: add POSIX_ARGZERO option 2014-06-01 15:01:37 -07:00
Peter Stephenson
1cc3424cbe unposted: use DIGBUFSIZE for pipestatus numeric buffer 2014-05-29 20:17:30 +01:00
Barton E. Schaefer
f3e7cfe47c 32337: change initialization of some special parameters for emulation compatibility 2014-02-02 13:16:16 -08:00
Peter Stephenson
22b8fd6da9 32299: add use of underscores on arithmetic output for spacing 2014-01-23 10:32:59 +00:00
Barton E. Schaefer
120145561f 32208: always reset pathchecked when the path array is modified 2013-12-30 23:31:35 -08:00
Barton E. Schaefer
9cacf4411f 32157: fix extra line feed after prompt, and erased character in completion listing, when ZLE_RPROMPT_INDENT=0 2013-12-18 23:45:20 -08:00
Barton E. Schaefer
ae92cadc75 31772: queue_signals() to prevent re-entry into endparamscope(). 2013-09-26 21:27:27 -07:00
Bart Schaefer
9af1cd4722 30530,30533: fix problems with COLUMNS or LINES < 1, and related issues 2012-06-27 07:10:29 +00:00
Peter Stephenson
c335b7f0a1 30455: remove max array length test 2012-04-25 09:31:57 +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
653abd34a9 30391: tweak to ignore DISABLED flag in new hash-based arrayuniq() 2012-04-13 16:01:20 +00:00
Bart Schaefer
4a4d9f3cbe 30383, users/16991 (Vaclav), users/17000: Improve speed of arrayuniq() by
implementing a hash seive algorithm; add test to exercise it.
2012-04-10 01:17:02 +00:00
Peter Stephenson
a76c8de44c 30351 + 30352: metafy strings on import into zsh variables 2012-03-13 09:47:01 +00:00
Peter Stephenson
9934781a97 30098: Jun T.: alternative to 30079: don't setlocale() in setlang() if LC_ALL set 2012-01-07 23:21:00 +00:00
Frank Terbeck
1a330ad751 30079: Src/params.c: Restore LC_ALL' when setting LANG'. 2012-01-04 22:35:55 +00:00
Peter Stephenson
548c4562fe fix tests using zsh/datetime that I broke 2011-08-11 19:32:50 +00:00
Peter Stephenson
7d1480af54 29626: arguments to anonymous functions shouldn't be parsed as command words 2011-07-28 09:20:02 +00:00
Peter Stephenson
962624e8c3 29491: remove some variables set but not used 2011-06-19 16:26:10 +00:00
Mikael Magnusson
72cb7cfc6f 29307, 29308 + replies: Fix some doubled words in docs and comments. 2011-05-19 16:10:46 +00:00
Peter Stephenson
c59e19cd77 29191 (Danek) and 29203 (with fixes): make TERMINFO variable special. 2011-05-10 15:40:32 +00:00
Peter Stephenson
d89361739a 29165: use term.h globally if needed at all. 2011-05-09 09:49:08 +00:00
Peter Stephenson
4f9ee790e0 28630: Ricky Zhou: fix crash with isident()
28634: add test
2011-01-16 20:35:29 +00:00
Peter Stephenson
ef4055d97c unposted: fix return types in 28617 2011-01-11 20:42:40 +00:00
Peter Stephenson
dfc26195c9 28617: NO_EXEC option was doing too much work in
parameter subscripting, parameter assignment, and globbing
2011-01-10 18:24:17 +00:00
Bart Schaefer
bc1a12f91e users/15662: array slice assignment with one index positive and one negative. 2010-12-21 16:54:30 +00:00
Peter Stephenson
23bdfc7fd2 28418: add ${NAME:OFFSET:LENGTH} substitution 2010-11-18 10:07:55 +00:00
Bart Schaefer
ad56692b16 28384: improve error message on assignment to a field of a read-only hash.
CVS ----------------------------------------------------------------------
2010-11-03 22:40:33 +00:00
Peter Stephenson
af5a85f363 28339: backslash-newline history without HIST_LEX_WORDS
28340: assignment to range of scalar variable with multibyte characters
2010-10-10 17:51:29 +00:00
Peter Stephenson
8bc64084a4 28220 plus some comments: fix "HELLO=$HELLO shellfunc" 2010-08-31 19:32:56 +00:00
Peter Stephenson
099dc207fa 27994: better error for failed parameter autoload 2010-06-03 13:38:17 +00:00
Peter Stephenson
09960dc5b9 27951: Add $ZSH_EVAL_CONTEXT and $zsh_eval_contxt 2010-05-12 10:06:59 +00:00
Peter Stephenson
9fe0077305 Geoff: 27693: rename underscore to avoid name clash 2010-02-09 13:58:11 +00:00
Peter Stephenson
036cb0ce95 Joakim Rosqvist: 27591 as modified in 27594:
KEYBOARD_HACK variable
2010-01-13 12:05:22 +00:00
Peter Stephenson
1acf23db3e 27243: reverse indexing of arrays with beginning index out of range returned
wrong value
2009-09-05 19:49:19 +00:00
Peter Stephenson
ff0b4ebdd5 26950: warn on failed attempt to change user or group ID
26593: print warning but dont fail test if simple Unicode conversion fails
2009-05-08 14:30:31 +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
fe3fb64472 26315: define ZSH_PATCHLEVEL to "unknown" if not found 2009-01-15 19:47:20 +00:00
Peter Stephenson
45bee14fec 26313: --enable-custom-patchlevel
unposted: WARN_CREATE_GLOBAL in tcp_log
2009-01-15 14:49:50 +00:00
Peter Stephenson
18143c3226 262727: add $ZSH_PATCHLEVEL from ChangeLog revision 2009-01-09 20:28:30 +00:00
Peter Stephenson
d69bd194b9 26260: fix crash failing to assigns scalar to special hash 2009-01-08 13:12:06 +00:00
Clint Adams
365e04460d 25926: free val only after it may be passed to strlen (as in 25656). 2008-10-23 00:48:59 +00:00
Peter Stephenson
ad3e2aa215 25831: fix empty return values from subscript matches with RC_EXPAND_PARAM 2008-10-09 13:46:45 +00:00
Peter Stephenson
29db898a6d 25774: fix in 25772 was applied too widely 2008-09-29 20:56:23 +00:00
Peter Stephenson
7be4f882fe 25772: crash with bad associative array pattern search 2008-09-29 17:39:38 +00:00
Clint Adams
6b68cc95c7 25656: free val only after it may be passed to strlen(). 2008-09-13 08:19:17 +00:00
Peter Stephenson
db31a13ecd 25627: add $ZSH_SUBSHELL 2008-09-05 21:02:08 +00:00
Peter Stephenson
dc72699b6c 25364: fix k flag in hash subscript 2008-07-31 13:53:28 +00:00
Peter Stephenson
56e1904e45 fix optimisation of string matching with multibyte mode
24732: attempt to provide adequate space for sched ztrftime string with
multibyte characters
2008-03-25 17:47:10 +00:00
Bart Schaefer
4625e0eabc 24717, 24718, 24719: a 0 subscript is neither valid nor equivalent to 1
any longer, so the (i) subscript flag on an empty array needs to yield 1.
2008-03-18 15:14:20 +00:00
Peter Stephenson
ed5c4c8e53 24384 plus extra check: care with scanprog 2008-01-10 10:25:31 +00:00