version 1.27, 2019/02/26 11:01:54 |
version 1.28, 2019/05/07 14:26:38 |
|
|
int |
int |
bin_file(int f) |
bin_file(int f) |
{ |
{ |
int n; |
|
int bin_count = 0; |
|
char data[256]; |
char data[256]; |
char *p; |
ssize_t i, n; |
char *pend; |
wchar_t ch; |
|
int bin_count, len; |
|
|
if (!seekable(f)) |
if (!seekable(f)) |
return (0); |
return (0); |
if (lseek(f, (off_t)0, SEEK_SET) == (off_t)-1) |
if (lseek(f, (off_t)0, SEEK_SET) == (off_t)-1) |
return (0); |
return (0); |
n = read(f, data, sizeof (data)); |
n = read(f, data, sizeof (data)); |
pend = &data[n]; |
bin_count = 0; |
for (p = data; p < pend; ) { |
for (i = 0; i < n; i += len) { |
LWCHAR c = step_char(&p, +1, pend); |
len = mbtowc(&ch, data + i, n - i); |
if (ctldisp == OPT_ONPLUS && c == ESC) { |
if (len <= 0) { |
do { |
bin_count++; |
c = step_char(&p, +1, pend); |
len = 1; |
} while (p < pend && is_ansi_middle(c)); |
} else if (iswprint(ch) == 0 && iswspace(ch) == 0 && |
} else if (binary_char(c)) |
data[i] != '\b' && |
|
(ctldisp != OPT_ONPLUS || data[i] != ESC)) |
bin_count++; |
bin_count++; |
} |
} |
/* |
/* |