PERFORCE change 145597 for review
Gabor Kovesdan
gabor at FreeBSD.org
Tue Jul 22 10:33:36 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=145597
Change 145597 by gabor at gabor_server on 2008/07/22 10:32:47
- Partly fix the wchar vs binary file case
Affected files ...
.. //depot/projects/soc2008/gabor_textproc/grep/file.c#18 edit
Differences ...
==== //depot/projects/soc2008/gabor_textproc/grep/file.c#18 (text+ko) ====
@@ -100,13 +100,15 @@
char *
grep_fgetln(struct file *f, size_t *len)
{
- int i;
- char ch;
- size_t size;
- wchar_t wbinbuf[BUFSIZ];
+ int i;
+ char ch;
+ size_t size;
+ wchar_t wbinbuf[BUFSIZ];
+ const char *src = binbuf;
+ mbstate_t mbs;
if ((binbufptr == NULL) && (binbehave != BINFILE_TEXT)) {
- for (i = 0; i < (BUFSIZ * 4); i++) {
+ for (i = 0; i < (BUFSIZ * sizeof(wint_t)); i++) {
if (grep_feof(f))
break;
ch = grep_fgetc(f);
@@ -114,13 +116,14 @@
}
binbufsiz = i;
binbufptr = binbuf;
-// size = mbsnrtowcs(wbinbuf, &binbuf, BUFSIZ * 4, BUFSIZ - 1, NULL);
+
+ size = mbsnrtowcs(wbinbuf, &src, BUFSIZ * sizeof(wint_t), BUFSIZ - 1, &mbs);
f->binary = 0;
-// for (; size > 0; size--)
-// if (iswbinary(wbinbuf[size])) {
-// f->binary = 1;
-// break;
-// }
+ for (; size > 0; size--)
+ if (iswbinary(wbinbuf[size])) {
+ f->binary = 1;
+ break;
+ }
}
for (i = 0; ; i++) {
More information about the p4-projects
mailing list