about summary refs log tree commit diff
path: root/Src/params.c
Commit message (Collapse)AuthorAgeFilesLines
* Change DECLAREDNULL to DEFAULTEDBart Schaefer2021-04-131-8/+8
|
* Final repairs for declared state of tied arraysBart Schaefer2021-04-131-0/+5
| | | | Fixups still required in bin_typeset, but assignments to scalar work.
* Unset of a tied local scalar previously left it using tiedarr_gsuBart Schaefer2021-04-131-0/+2
|
* Add PM_DECLARED and PM_DECLAREDNULL parameter flags.Bart Schaefer2021-04-131-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* 45772: Restore locale on parameter scope end.Peter Stephenson2020-05-051-0/+34
| | | | Check if relevant parameters changes and if so restore system settings.
* 45340: internal: Document the difference between paramtab and realparamtab.Daniel Shahaf2020-01-231-1/+7
|
* 45066: internal: Document forklevel, locallevel, and exit_pending.Daniel Shahaf2019-12-181-1/+5
|
* 45004: Fix typos in commentsMartijn Dekker2019-12-111-1/+1
|
* 44664: Fix problem with temporary assignment.Peter Stephenson2019-08-141-1/+3
| | | | | "foo=bar builtin" inside a function lost any variable from enclosing scope.
* 44509: Prevent crash with modified path / PATH combination.Peter Stephenson2019-07-151-4/+12
| | | | | | Crash came from "fn() { typeset -U path=($path); unset PATH; }". Note PATH unset is global as only path was made local.
* 44307: allow for atoi() returning a negative numberOliver Kiddle2019-05-201-3/+3
|
* 44164: Avoid stringop-truncation warningWesley Schwengle2019-03-251-1/+1
|
* 43616: Various parameter setting and display fixes.Peter Stephenson2018-10-081-63/+109
| | | | | | Mostly to do with typeset -p and tied variables and their interaction. Some general tied variable fixes.
* 43546: "typeset -p" should show -U flagStephane Chazelas2018-09-251-0/+7
|
* 43264: fix ${+assoc[nonexistent]} with KSH_ARRAYSPeter Stephenson2018-08-091-1/+1
|
* 42297: (e) subscript flag needs extra work with scalarsdana2018-05-141-3/+17
|
* Nelson H. F. Beebe: 19597 (rebased 42369): return Inf, NaN etc from floating ↵Oliver Kiddle2018-05-131-4/+12
| | | | point operations instead of errors to allow non-stop IEEE 754 arithmetic
* 42597: plug memory leak found by coverityOliver Kiddle2018-04-071-1/+3
|
* Avoid crash copying empty hash table.Stephane Chazelas2018-01-041-4/+7
| | | | Visible with typeset -p.
* 41787 (plus minor tweaks): use $FUNCSTACK for function nesting depth.Peter Stephenson2017-10-021-0/+14
| | | | Initialised from existing configuration value.
* Add typeset -p1, like typeset -p with newlinesPeter Stephenson2017-10-011-15/+38
|
* 41764 (test tweaked): allow [key]+=value when modifying arraysPeter Stephenson2017-09-271-7/+32
|
* 41747: Don't create hash entry if just checking existence.Peter Stephenson2017-09-251-3/+6
| | | | Pass a flag in indicating this case.
* Updates for ksh array element syntax.Peter Stephenson2017-09-241-65/+127
| | | | | | | | 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.
* More [key]=value tweaksPeter Stephenson2017-09-141-3/+5
| | | | | | Some rephrasings. Update typeset -p for associative arrays to use new syntax.
* First go at var=([key]=value) syntax.Peter Stephenson2017-09-131-0/+66
| | | | | | | 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.
* 41225: sethparam() should not attempt to change special parameters into hashesBarton E. Schaefer2017-06-051-6/+11
|
* 40990: Fix crash with bogus path in sh emaulation.Peter Stephenson2017-04-211-14/+37
| | | | | | When startying in sh emulation don't link PATH-style parameters to array equivalents. To allow this to function, don't check for the linkage when exporting the colon-separated parameter.
* 40932: Parameter subscripts need to count parentheses.Peter Stephenson2017-04-031-3/+8
| | | | Otherwise they can terminate in the middle of an expression.
* 40799: fix $- expansion partly broken by 40760Barton E. Schaefer2017-03-081-1/+3
|
* 40745 + 40753: Fix 'unset ZLE_RPROMPT_INDENT' not restoring the default ↵Daniel Shahaf2017-03-081-1/+19
| | | | | | | | | | behaviour. To reproduce: RPS1=foo ZLE_RPROMPT_INDENT=42 unset ZLE_RPROMPT_INDENT
* 40781: optimize array assignment, similar to 39995 for string assignmentSebastian Gniazdowski2017-03-041-15/+48
|
* 40486: Don't warn on creation of MATCH etc. in regex.Peter Stephenson2017-02-021-5/+32
| | | | | This because they are created implicitly rather than by explicit user request, so the warning may not be useful.
* 40460: WARN_NESTED_VAR: Don't warn when assigning to a slice of an existing ↵Daniel Shahaf2017-02-011-6/+13
| | | | array
* 40423: WARN_NESTED_VARS, conversion the other wayPeter Stephenson2017-01-261-8/+8
|
* 40422: More WARN_NESTED_VAR cases.Peter Stephenson2017-01-261-8/+9
| | | | | Converting type when using a calling scope was broken in the original patch.
* 40413: WARN_NESTED_VAR subscripted variable fix.Peter Stephenson2017-01-251-1/+5
| | | | | No warning needed on paramter that's created temporarily to help assignment.
* 40391: Add WARN_NESTED_VAR option and functions -W.Peter Stephenson2017-01-231-23/+43
| | | | | These are companions to WARN_CREATED_GLOBAL, warning when a variable from an enclosing scope is altered.
* 40270 (after 39995): Add cross-reference for robustness.Daniel Shahaf2017-01-051-0/+2
|
* 40231: Optimise setarrvalue().Sebastian Gniazdowski2016-12-281-16/+34
|
* 40068: Abort execution when setuid/setgid fail.Daniel Shahaf2016-12-031-4/+4
| | | | | | | | | | | The incumbent code would print an error message and continue execution with the previous uid/gid values, not even setting lastval: % UID=42 id -u; echo $? zsh: failed to change user ID: operation not permitted 1000 0 %
* 40067: internal: Document 'cmatcher', parse_cmatcher(), 'comptoend', ↵Daniel Shahaf2016-12-031-1/+17
| | | | unsetparam_pm(), and getindex().
* 40032: consistency in handling of subscript slices outside the bounds of an ↵Barton E. Schaefer2016-11-291-2/+9
| | | | | | array parameter unposted: README: example describing 40032
* 39900: Add TERMINFO_DIRS special like TERMINFO.Guillaume Maudoux2016-11-201-0/+31
| | | | Although this is a colon-separated array there is no tied array.
* 39995 (from 39977): Optimise string parameter assignment.Peter Stephenson2016-11-201-8/+31
| | | | | If setter is the standard one and string length is unchnaged we can copy into place.
* 39992: setarrvalue: Allocate a correctly-sized array.Daniel Shahaf2016-11-201-2/+10
| | | | | No memory was lost; the array was allocated with room for one (char *) element more than was required.
* 39937: fix a problem introduced by 39886.Jun-ichi Takimoto2016-11-151-3/+4
| | | | $a[i,j] should become an empty array if i>j.
* 39893: use arrdup_max() to show explicitly the difference in two code branchesBarton E. Schaefer2016-11-101-3/+2
| | | | no functional change
* 39874/0001: setarrvalue: Remove needless initialization.Daniel Shahaf2016-11-111-2/+2
|
* 39887: no need to conditionalise assignment of strlen()Peter Stephenson2016-11-091-6/+2
|