File: 0006-EXPAND-Fixed-inverted-char-class-matching.diff

package info (click to toggle)
dash 0.5.3-7
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,160 kB
  • ctags: 1,289
  • sloc: ansic: 12,660; sh: 1,068; makefile: 155; yacc: 105
file content (30 lines) | stat: -rw-r--r-- 814 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
From 1adfb341436bdde325d89e01a0b96ebc13d5856b Mon Sep 17 00:00:00 2001
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Wed, 4 Oct 2006 17:44:31 +1000
Subject: [PATCH] [EXPAND] Fixed inverted char class matching

The return value of ccmatch was being treated as 0 or 1 but
it's actually zero or non-zero.  This broke inverted character
class matching.

Reported by Alexander Skwar.
---
 src/expand.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/expand.c b/src/expand.c
index cf64921..db67c7c 100644
--- a/src/expand.c
+++ b/src/expand.c
@@ -1581,7 +1581,7 @@ pmatch(const char *pattern, const char *
 				if (c == '[') {
 					const char *r;
 
-					found |= ccmatch(p, chr, &r);
+					found |= !!ccmatch(p, chr, &r);
 					if (r) {
 						p = r;
 						continue;
-- 
1.4.3.1