* thinker <[EMAIL PROTECTED]> [010320 00:48] wrote:
> 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;
C has allowed for identifiers larger than 6 characters for quite
some time, any chance on you making use of this feature? Or at
least adding a comment here and there?
> + p = s;
> + dc = len = strlen(s);
> + ri = r = (char *)malloc(len + 1);
Where is the check for malloc failing?
> + 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++ = '?';
Why didn't you use strlcpy/memcpy as suggested?
> + }
> + }
> + }
> + *ri = 0;
*ri = '\0';
> + printf("%s", r);
> + free(r);
> + return len;
return (len);
> }
--
-Alfred Perlstein - [[EMAIL PROTECTED]|[EMAIL PROTECTED]]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message