mvaddch (win->yoffset + i, win->xoffset + j, ' ');
}
if (!eol) {
- if (lines[skip + i] != NULL) {
- mvaddstr (win->yoffset + i, win->xoffset, lines[skip + i]);
+ unsigned char *pt = (unsigned char *)(lines[skip + i]);
+ if (pt != NULL) {
+ for (j = 0; (j < win->xsize) && (pt[j] != '\0'); j++) {
+ if (pt[j] == 128) {
+ set_color (white);
+ mvaddch (win->yoffset + i, win->xoffset + j, '.');
+ set_color (black);
+ } else {
+ mvaddch (win->yoffset + i, win->xoffset + j, (char)pt[j]);
+ }
+ }
} else {
eol = 1;
}
{
char *buffer = NULL;
size_t size = 0;
+ int blocklen = 0;
+ int length = 0;
do {
size += BUFMAX + (size == 0);
buffer = (char *) realloc (buffer, size);
memset (buffer + size - BUFMAX - 1, 0, BUFMAX + 1);
- } while (fread (buffer + size - BUFMAX - 1, 1, BUFMAX, sd) > 0);
+ blocklen = fread (buffer + size - BUFMAX - 1, 1, BUFMAX, sd);
+ length += blocklen;
+ } while (blocklen > 0);
/* check size */
- if (buffer[0] == '\0') {
+ if (length == 0) {
free (buffer);
buffer = NULL;
+ } else {
+ int i;
+ for (i = 0; i < length; i++) {
+ unsigned char *pt = (unsigned char *)(buffer + i);
+ if ((*pt != '\n') && ((*pt < 32) || (*pt > 127))) {
+ *pt = 128;
+ }
+ }
}
+ VERBOSE (DEBUG, fprintf (stderr, "length: %d\n", length));
return buffer;
}
char *buffer = NULL;
VERBOSE (DEBUG, fprintf (stdout, "open file: %s\n", name));
- FILE *fd = fopen (name, "r");
+ FILE *fd = fopen (name, "rb");
if (fd != NULL) {
buffer = _readstream (fd);
status = fclose (fd);
}
if (status == -1) {
+ VERBOSE (WARNING, fprintf (stderr, "error on closing '%s'\n", name));
free (buffer);
buffer = NULL;
}
lines[n + 1] = NULL;
line = calloc (max + 1, sizeof (char));
n++;
+ VERBOSE (DEBUG, fprintf (stderr, "j: %d\n", j));
j = 0;
}
}