PERFORCE change 148756 for review
Gabor Kovesdan
gabor at FreeBSD.org
Thu Aug 28 23:03:13 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=148756
Change 148756 by gabor at gabor_server on 2008/08/28 23:02:40
- Be more error-prone in the -w part
Suggested by: ache
Affected files ...
.. //depot/projects/soc2008/gabor_textproc/grep/util.c#74 edit
Differences ...
==== //depot/projects/soc2008/gabor_textproc/grep/util.c#74 (text+ko) ====
@@ -289,14 +289,22 @@
if (r == 0 && wflag && pmatch.rm_so != 0 && pmatch.rm_eo != l->len) {
wchar_t *wbegin;
wint_t wend;
+ size_t size;
+
+ size = mbstowcs(NULL, l->dat, pmatch.rm_so);
- wbegin = grep_malloc(mbstowcs(NULL, l->dat, pmatch.rm_so));
- if (mbstowcs(wbegin, l->dat, pmatch.rm_so) == -1)
+ if (size = -1)
r = REG_NOMATCH;
- wend = sscanf(&l->dat[pmatch.rm_eo], "%lc", &wend);
- if (iswword(wbegin[wcslen(wbegin)]) ||iswword(wend))
- r = REG_NOMATCH;
- free(wbegin);
+ else {
+ wbegin = grep_malloc(size);
+ if (mbstowcs(wbegin, l->dat, pmatch.rm_so) == -1)
+ r = REG_NOMATCH;
+ else if (sscanf(&l->dat[pmatch.rm_eo], "%lc", &wend) != 1)
+ r = REG_NOMATCH;
+ else if (iswword(wbegin[wcslen(wbegin)]) ||iswword(wend))
+ r = REG_NOMATCH;
+ free(wbegin);
+ }
}
if (r == 0) {
if (m == 0)
More information about the p4-projects
mailing list