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

Reply via email to