mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-04 10:41:11 +02:00
27021: fix length of saved glob flags in pattern matching
This commit is contained in:
parent
4e5ac964e6
commit
71865fd36d
2 changed files with 13 additions and 6 deletions
|
@ -1,3 +1,9 @@
|
|||
2009-05-29 Peter Stephenson <p.w.stephenson@ntlworld.com>
|
||||
|
||||
* 27021: Src/pattern.c: length of variable saving globflags
|
||||
was wrong causing restored value to be wrong in pattern matching
|
||||
on big-endian 64-bit systems.
|
||||
|
||||
2009-05-28 Peter Stephenson <pws@csr.com>
|
||||
|
||||
* Jun T.: 27010: Completion/Unix/Command/_date: Darwin.
|
||||
|
@ -11780,5 +11786,5 @@
|
|||
|
||||
*****************************************************
|
||||
* This is used by the shell to define $ZSH_PATCHLEVEL
|
||||
* $Revision: 1.4701 $
|
||||
* $Revision: 1.4702 $
|
||||
*****************************************************
|
||||
|
|
|
@ -668,7 +668,8 @@ patcompswitch(int paren, int *flagp)
|
|||
{
|
||||
long starter, br, ender, excsync = 0;
|
||||
int parno = 0;
|
||||
int flags, gfchanged = 0, savglobflags = patglobflags;
|
||||
int flags, gfchanged = 0;
|
||||
long savglobflags = (long)patglobflags;
|
||||
Upat ptr;
|
||||
|
||||
*flagp = 0;
|
||||
|
@ -688,7 +689,7 @@ patcompswitch(int paren, int *flagp)
|
|||
br = patnode(P_BRANCH);
|
||||
if (!patcompbranch(&flags))
|
||||
return 0;
|
||||
if (patglobflags != savglobflags)
|
||||
if (patglobflags != (int)savglobflags)
|
||||
gfchanged++;
|
||||
if (starter)
|
||||
pattail(starter, br);
|
||||
|
@ -777,7 +778,7 @@ patcompswitch(int paren, int *flagp)
|
|||
patadd((char *)&up, 0, sizeof(union upat), 0);
|
||||
}
|
||||
} else {
|
||||
patglobflags = savglobflags;
|
||||
patglobflags = (int)savglobflags;
|
||||
}
|
||||
}
|
||||
newbr = patcompbranch(&flags);
|
||||
|
@ -792,7 +793,7 @@ patcompswitch(int paren, int *flagp)
|
|||
return 0;
|
||||
if (gfnode)
|
||||
pattail(gfnode, newbr);
|
||||
if (!tilde && patglobflags != savglobflags)
|
||||
if (!tilde && patglobflags != (int)savglobflags)
|
||||
gfchanged++;
|
||||
pattail(starter, br);
|
||||
if (excsync)
|
||||
|
@ -831,7 +832,7 @@ patcompswitch(int paren, int *flagp)
|
|||
* a later branch happened to put the flags back.
|
||||
*/
|
||||
pattail(ender, patnode(P_GFLAGS));
|
||||
patglobflags = savglobflags;
|
||||
patglobflags = (int)savglobflags;
|
||||
patadd((char *)&savglobflags, 0, sizeof(long), 0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue