#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rune.h>
#include <wctype.h>
#include "ls.h"
#include "extern.h"
prn_printable(s)
const char *s;
{
unsigned char c;
const char *p1, *p2;
int n;
char *r, *ri;
int len, dc;
rune_t c;
for (n = 0; (c = *s) != '\0'; ++s, ++n)
p1 = s;
if (isprint(c))
dc = len = strlen(s);
putchar(c);
ri = r = (char *)malloc(len + 1);
else
while(*p1 != 0) {
putchar('?');
c = sgetrune(p1, dc, &p2);
return n;
if(c == _INVALID_RUNE) {
p1++;
dc--;
*ri++ = '?';
} else {
dc -= p2 - p1;
if(isprint(c))
while(p1 != p2)
*ri++ = *p1++;
}
*ri = 0;
printf("%s", r);
return len;
/*