mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-30 05:40:58 +01:00
Got rid of several compiler warnings about signed/unsigned problems by
switching patchar_t from wchar_t to wint_t (and renaming the typedef to patint_t in the process), changing two "int" variables into "patint_t" variables, and creating a PEOF define that uses either WEOF or EOF as an invalid character value instead of a literal -1.
This commit is contained in:
parent
dd5602f59b
commit
dbc5657d34
1 changed files with 19 additions and 14 deletions
|
|
@ -276,7 +276,9 @@ static int patglobflags; /* globbing flags & approx */
|
||||||
* Increment pointer to metafied multibyte string.
|
* Increment pointer to metafied multibyte string.
|
||||||
*/
|
*/
|
||||||
#ifdef MULTIBYTE_SUPPORT
|
#ifdef MULTIBYTE_SUPPORT
|
||||||
typedef wchar_t patchar_t;
|
typedef wint_t patint_t;
|
||||||
|
|
||||||
|
#define PEOF WEOF
|
||||||
|
|
||||||
#define METACHARINC(x) ((void)metacharinc(&x))
|
#define METACHARINC(x) ((void)metacharinc(&x))
|
||||||
|
|
||||||
|
|
@ -345,7 +347,9 @@ metacharinc(char **x)
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
typedef int patchar_t;
|
typedef int patint_t;
|
||||||
|
|
||||||
|
#define PEOF EOF
|
||||||
|
|
||||||
#define METACHARINC(x) ((void)((x) += (*(x) == Meta) ? 2 : 1))
|
#define METACHARINC(x) ((void)((x) += (*(x) == Meta) ? 2 : 1))
|
||||||
/*
|
/*
|
||||||
|
|
@ -1689,7 +1693,7 @@ charsub(char *x, char *y)
|
||||||
/* Get a character and increment */
|
/* Get a character and increment */
|
||||||
#define CHARREFINC(x, y) (STOUC(*(x)++))
|
#define CHARREFINC(x, y) (STOUC(*(x)++))
|
||||||
/* Counter the number of characters between two pointers, smaller first */
|
/* Counter the number of characters between two pointers, smaller first */
|
||||||
#define CHARSUB(x,y) (y-x)
|
#define CHARSUB(x,y) ((y) - (x))
|
||||||
|
|
||||||
#endif /* MULTIBYTE_SUPPORT */
|
#endif /* MULTIBYTE_SUPPORT */
|
||||||
|
|
||||||
|
|
@ -2171,8 +2175,9 @@ patmatch(Upat prog)
|
||||||
/* Current and next nodes */
|
/* Current and next nodes */
|
||||||
Upat scan = prog, next, opnd;
|
Upat scan = prog, next, opnd;
|
||||||
char *start, *save, *chrop, *chrend, *compend;
|
char *start, *save, *chrop, *chrend, *compend;
|
||||||
int savglobflags, op, no, min, nextch, fail = 0, saverrsfound;
|
int savglobflags, op, no, min, fail = 0, saverrsfound;
|
||||||
zrange_t from, to, comp;
|
zrange_t from, to, comp;
|
||||||
|
patint_t nextch;
|
||||||
|
|
||||||
while (scan) {
|
while (scan) {
|
||||||
next = PATNEXT(scan);
|
next = PATNEXT(scan);
|
||||||
|
|
@ -2204,8 +2209,8 @@ patmatch(Upat prog)
|
||||||
while (chrop < chrend && patinput < patinend) {
|
while (chrop < chrend && patinput < patinend) {
|
||||||
char *savpatinput = patinput;
|
char *savpatinput = patinput;
|
||||||
char *savchrop = chrop;
|
char *savchrop = chrop;
|
||||||
patchar_t chin = CHARREFINC(patinput, patinend);
|
patint_t chin = CHARREFINC(patinput, patinend);
|
||||||
patchar_t chpa = CHARREFINC(chrop, chrend);
|
patint_t chpa = CHARREFINC(chrop, chrend);
|
||||||
if (!CHARMATCH(chin, chpa)) {
|
if (!CHARMATCH(chin, chpa)) {
|
||||||
fail = 1;
|
fail = 1;
|
||||||
patinput = savpatinput;
|
patinput = savpatinput;
|
||||||
|
|
@ -2747,14 +2752,14 @@ patmatch(Upat prog)
|
||||||
}
|
}
|
||||||
nextch = CHARREF(nextop, nextop + nextlen);
|
nextch = CHARREF(nextop, nextop + nextlen);
|
||||||
} else
|
} else
|
||||||
nextch = -1;
|
nextch = PEOF;
|
||||||
savglobflags = patglobflags;
|
savglobflags = patglobflags;
|
||||||
saverrsfound = errsfound;
|
saverrsfound = errsfound;
|
||||||
lastcharstart = charstart + (patinput - start);
|
lastcharstart = charstart + (patinput - start);
|
||||||
if (no >= min) {
|
if (no >= min) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
int charmatch_cache;
|
patint_t charmatch_cache;
|
||||||
if (nextch < 0 ||
|
if (nextch == PEOF ||
|
||||||
(patinput < patinend &&
|
(patinput < patinend &&
|
||||||
CHARMATCH_EXPR(CHARREF(patinput, patinend),
|
CHARMATCH_EXPR(CHARREF(patinput, patinend),
|
||||||
nextch))) {
|
nextch))) {
|
||||||
|
|
@ -2862,10 +2867,10 @@ patmatch(Upat prog)
|
||||||
*/
|
*/
|
||||||
if (save < patinend && nextin < patinend &&
|
if (save < patinend && nextin < patinend &&
|
||||||
nextexact < exactend) {
|
nextexact < exactend) {
|
||||||
patchar_t cin0 = CHARREF(save, patinend);
|
patint_t cin0 = CHARREF(save, patinend);
|
||||||
patchar_t cpa0 = CHARREF(exactpos, exactend);
|
patint_t cpa0 = CHARREF(exactpos, exactend);
|
||||||
patchar_t cin1 = CHARREF(nextin, patinend);
|
patint_t cin1 = CHARREF(nextin, patinend);
|
||||||
patchar_t cpa1 = CHARREF(nextexact, exactend);
|
patint_t cpa1 = CHARREF(nextexact, exactend);
|
||||||
|
|
||||||
if (CHARMATCH(cin0, cpa1) &&
|
if (CHARMATCH(cin0, cpa1) &&
|
||||||
CHARMATCH(cin1, cpa0)) {
|
CHARMATCH(cin1, cpa0)) {
|
||||||
|
|
@ -3154,7 +3159,7 @@ patmatchrange(char *range, int ch)
|
||||||
static int patrepeat(Upat p, char *charstart)
|
static int patrepeat(Upat p, char *charstart)
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
patchar_t tch, charmatch_cache;
|
patint_t tch, charmatch_cache;
|
||||||
char *scan, *opnd;
|
char *scan, *opnd;
|
||||||
|
|
||||||
scan = patinput;
|
scan = patinput;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue