Date: Tue, 20 Mar 2001 16:49:01 +0000 From: thinker <thinker@branda.to> To: freebsd-current@freebsd.org Subject: patch /bin/ls again, for mb supporting. Message-ID: <20010320164901.A14424@hell.branda.to>
next in thread | raw e-mail | index | archive | help
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 majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010320164901.A14424>