mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Fix $LINENO corruption when autoloading functions
Autoloading a function caused the calling script's $LINENO to be off by the number of lines in the function definition file. In addition, while running autoloaded functions, errors/warnings were reported with wrong line numbers. src/cmd/ksh93/sh/path.c: - Save $LINENO (shp->inlineno) before autoloading a function, reset it to 1 so that the correct line number offset is remembered for the function definition, and restore it after. src/cmd/ksh93/tests/variables.sh: - Add regression test for $LINENO, directly and in error messages, within and outside a non-autoloaded and an autoloaded function. Fixes: https://github.com/ksh93/ksh/issues/116
This commit is contained in:
parent
be22f3759e
commit
d89ef0fafa
3 changed files with 54 additions and 1 deletions
4
NEWS
4
NEWS
|
@ -14,6 +14,10 @@ Any uppercase BUG_* names are modernish shell bug IDs.
|
|||
nonzero exit status. Similarly, if both the 'errexit' and 'pipefail' options
|
||||
are active, ksh now correctly exits if any pipeline element returns nonzero.
|
||||
|
||||
- Autoloading a function no longer causes the calling script's $LINENO to be
|
||||
off by the number of lines in the function definition file that was loaded.
|
||||
This also corrects line numbers in warnings and error messages.
|
||||
|
||||
2020-09-28:
|
||||
|
||||
- While executing a ksh-style function, ksh 93u+ ignored all signals for which
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue