mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-13 19:52:20 +00:00
Fix spurious warning output in KIA (-R) database file
The ksh -R option creates a cross-reference database that can be parsed with a "C Query Language" (CQL) tool. See cql-1994.pdf at: http://gsf.cococlyde.org/files The -R option puts ksh in noexec mode as it parses the script, and this can produce warnings as the syntax is parsed. The bug is that these warnings can end up in the database file, corrupting it. This applies a fix from Paulo Andrade, via Siteshwar Vashisht: https://www.mail-archive.com/ast-developers@lists.research.att.com/msg01952.html src/cmd/ksh93/sh/parse.c: - Terminate names with a zero character when writing database output. A regression test is not very feasible because the majority of the database output consists of cryptic IDs/hashes that vary depending on the session and/or system and possibly other things.
This commit is contained in:
parent
6930666234
commit
588a1ff7ca
2 changed files with 4 additions and 0 deletions
3
NEWS
3
NEWS
|
@ -15,6 +15,9 @@ Any uppercase BUG_* names are modernish shell bug IDs.
|
|||
- Combining ((...)) with redirections no longer causes a syntax error
|
||||
due to the parser handling '>' incorrectly.
|
||||
|
||||
- Fixed a bug that corrupted KIA/CQL cross-reference databases created using
|
||||
ksh's -R option; shell warnings were wrongly included in the database file.
|
||||
|
||||
2020-07-07:
|
||||
|
||||
- Four of the date formats accepted by 'printf %()T' have had their
|
||||
|
|
|
@ -2038,6 +2038,7 @@ unsigned long kiaentity(Lex_t *lexp,const char *name,int len,int type,int first,
|
|||
else
|
||||
sfputr(stkp,name,0);
|
||||
}
|
||||
sfputc(stkp,'\0');
|
||||
np = nv_search(stakptr(offset),lexp->entity_tree,NV_ADD);
|
||||
stkseek(stkp,offset);
|
||||
np->nvalue.i = pkind;
|
||||
|
|
Loading…
Reference in a new issue