summaryrefslogtreecommitdiff
path: root/Src/pattern.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@users.sourceforge.net>2006-05-31 01:02:05 +0000
committerWayne Davison <wayned@users.sourceforge.net>2006-05-31 01:02:05 +0000
commitdbc5657d34aeb4638c7b621627d5b6febf7851c1 (patch)
tree14846eb41afc047c2560152248cd01257cbc2e05 /Src/pattern.c
parentdd5602f59b599177fb130512fc543f7efa951990 (diff)
downloadzsh-dbc5657d34aeb4638c7b621627d5b6febf7851c1.tar.gz
zsh-dbc5657d34aeb4638c7b621627d5b6febf7851c1.zip
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.
Diffstat (limited to 'Src/pattern.c')
-rw-r--r--Src/pattern.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/Src/pattern.c b/Src/pattern.c
index 872816d9b..a39095c37 100644
--- a/Src/pattern.c
+++ b/Src/pattern.c
@@ -276,7 +276,9 @@ static int patglobflags; /* globbing flags & approx */
* Increment pointer to metafied multibyte string.
*/
#ifdef MULTIBYTE_SUPPORT
-typedef wchar_t patchar_t;
+typedef wint_t patint_t;
+
+#define PEOF WEOF
#define METACHARINC(x) ((void)metacharinc(&x))
@@ -345,7 +347,9 @@ metacharinc(char **x)
}
#else
-typedef int patchar_t;
+typedef int patint_t;
+
+#define PEOF EOF
#define METACHARINC(x) ((void)((x) += (*(x) == Meta) ? 2 : 1))
/*
@@ -1689,7 +1693,7 @@ charsub(char *x, char *y)
/* Get a character and increment */
#define CHARREFINC(x, y) (STOUC(*(x)++))
/* 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 */
@@ -2171,8 +2175,9 @@ patmatch(Upat prog)
/* Current and next nodes */
Upat scan = prog, next, opnd;
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;
+ patint_t nextch;
while (scan) {
next = PATNEXT(scan);
@@ -2204,8 +2209,8 @@ patmatch(Upat prog)
while (chrop < chrend && patinput < patinend) {
char *savpatinput = patinput;
char *savchrop = chrop;
- patchar_t chin = CHARREFINC(patinput, patinend);
- patchar_t chpa = CHARREFINC(chrop, chrend);
+ patint_t chin = CHARREFINC(patinput, patinend);
+ patint_t chpa = CHARREFINC(chrop, chrend);
if (!CHARMATCH(chin, chpa)) {
fail = 1;
patinput = savpatinput;
@@ -2747,14 +2752,14 @@ patmatch(Upat prog)
}
nextch = CHARREF(nextop, nextop + nextlen);
} else
- nextch = -1;
+ nextch = PEOF;
savglobflags = patglobflags;
saverrsfound = errsfound;
lastcharstart = charstart + (patinput - start);
if (no >= min) {
for (;;) {
- int charmatch_cache;
- if (nextch < 0 ||
+ patint_t charmatch_cache;
+ if (nextch == PEOF ||
(patinput < patinend &&
CHARMATCH_EXPR(CHARREF(patinput, patinend),
nextch))) {
@@ -2862,10 +2867,10 @@ patmatch(Upat prog)
*/
if (save < patinend && nextin < patinend &&
nextexact < exactend) {
- patchar_t cin0 = CHARREF(save, patinend);
- patchar_t cpa0 = CHARREF(exactpos, exactend);
- patchar_t cin1 = CHARREF(nextin, patinend);
- patchar_t cpa1 = CHARREF(nextexact, exactend);
+ patint_t cin0 = CHARREF(save, patinend);
+ patint_t cpa0 = CHARREF(exactpos, exactend);
+ patint_t cin1 = CHARREF(nextin, patinend);
+ patint_t cpa1 = CHARREF(nextexact, exactend);
if (CHARMATCH(cin0, cpa1) &&
CHARMATCH(cin1, cpa0)) {
@@ -3154,7 +3159,7 @@ patmatchrange(char *range, int ch)
static int patrepeat(Upat p, char *charstart)
{
int count = 0;
- patchar_t tch, charmatch_cache;
+ patint_t tch, charmatch_cache;
char *scan, *opnd;
scan = patinput;