mirror of
https://github.com/zsh-users/zsh
synced 2024-09-20 00:11:39 +00:00
23757: suppress correction of command words followed by ()
This commit is contained in:
parent
649d87c8cb
commit
83cbc075ac
|
@ -1,3 +1,9 @@
|
|||
2007-08-14 Peter Stephenson <pws@csr.com>
|
||||
|
||||
* 23757: Src/lex.c: suppression correction of command
|
||||
words immediately followed by () or something that looks
|
||||
like it's going to be one.
|
||||
|
||||
2007-08-12 Andrey Borzenkov <bor@zsh.org>
|
||||
|
||||
* 23751: Completion/Linux/Command/_modutils: support for
|
||||
|
|
20
Src/lex.c
20
Src/lex.c
|
@ -66,7 +66,12 @@ int isfirstch;
|
|||
/**/
|
||||
int inalmore;
|
||||
|
||||
/* don't do spelling correction */
|
||||
/*
|
||||
* Don't do spelling correction.
|
||||
* Bit 1 is only valid for the current word. It's
|
||||
* set when we detect a lookahead that stops the word from
|
||||
* needing correction.
|
||||
*/
|
||||
|
||||
/**/
|
||||
int nocorrect;
|
||||
|
@ -344,6 +349,7 @@ yylex(void)
|
|||
do
|
||||
tok = gettok();
|
||||
while (tok != ENDINPUT && exalias());
|
||||
nocorrect &= 1;
|
||||
if (tok == NEWLIN || tok == ENDINPUT) {
|
||||
while (hdocs) {
|
||||
struct heredocs *next = hdocs->next;
|
||||
|
@ -629,7 +635,7 @@ isnumglob(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
static int
|
||||
gettok(void)
|
||||
{
|
||||
int c, d;
|
||||
|
@ -1036,8 +1042,16 @@ gettokstr(int c, int sub)
|
|||
* pws 1999/6/14
|
||||
*/
|
||||
if (e == ')' || (isset(SHGLOB) && inblank(e) && !bct &&
|
||||
!brct && !intpos && incmdpos))
|
||||
!brct && !intpos && incmdpos)) {
|
||||
/*
|
||||
* Either a () token, or a command word with
|
||||
* something suspiciously like a ksh function
|
||||
* definition.
|
||||
* The current word isn't spellcheckable.
|
||||
*/
|
||||
nocorrect |= 2;
|
||||
goto brk;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* This also handles the [k]sh `foo( )' function definition.
|
||||
|
|
Loading…
Reference in a new issue