Hi,
There are some disscuss about patch file of /bin/ls. You guys
give me some suggestion, and I make a new patch file for /bin/ls to
meet people's wish. Following is patch for /bin/ls, plz review again.
I had change from rune to mb* & wc* ways.
------------- begin ---------
--- util.c.orig Sun Mar 18 16:35:12 2001
+++ util.c Tue Mar 20 16:11:37 2001
@@ -60,15 +60,37 @@
prn_printable(s)
const char *s;
{
- unsigned char c;
- int n;
+ const char *p;
+ char *r, *ri;
+ int len, dc;
+ size_t sz;
+ wchar_t c;
- for (n = 0; (c = *s) != '\0'; ++s, ++n)
- if (isprint(c))
- putchar(c);
- else
- putchar('?');
- return n;
+ p = s;
+ dc = len = strlen(s);
+ ri = r = (char *)malloc(len + 1);
+ while (dc) {
+ sz = mbtowc(&c, p, dc);
+ if (sz < 0) {
+ p++;
+ dc--;
+ *ri++ = '?';
+ } else {
+ dc -= sz;
+ if (isprint(c)) {
+ while(sz--)
+ *ri++ = *p++;
+ } else {
+ p += sz;
+ while(sz--)
+ *ri++ = '?';
+ }
+ }
+ }
+ *ri = 0;
+ printf("%s", r);
+ free(r);
+ return len;
}
/*
-------------- end ------------------
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message