Index: ChangeLog =================================================================== RCS file: /cvs/src/src/newlib/ChangeLog,v retrieving revision 1.1216 diff -u -p -r1.1216 ChangeLog --- ChangeLog 18 Nov 2008 22:55:06 -0000 1.1216 +++ ChangeLog 19 Nov 2008 16:25:20 -0000 @@ -1,3 +1,8 @@ +2008-11-19 Craig Howland + + * libc/unix/collate.c (__collate_err): simplify to remove unnecessary + strdup() and strlen() calls, also getting rid of a compiler warning. + 2008-11-18 Joel Sherrill * libc/unix/ttyname.c: Use isatty() instead of tcgetattr(). Index: libc/posix/collate.c =================================================================== RCS file: /cvs/src/src/newlib/libc/posix/collate.c,v retrieving revision 1.1 diff -u -p -r1.1 collate.c --- libc/posix/collate.c 31 Oct 2008 21:03:41 -0000 1.1 +++ libc/posix/collate.c 19 Nov 2008 16:25:20 -0000 @@ -175,14 +175,12 @@ __collate_strdup(s) void __collate_err(int ex, const char *f) { - const char *s = strdup("collate_error"); + const char *s; int serrno = errno; - write(STDERR_FILENO, s, strlen(s)); - write(STDERR_FILENO, ": ", 2); - free(s); - s = f; - write(STDERR_FILENO, s, strlen(s)); + /* Be careful to change write counts if you change the strings */ + write(STDERR_FILENO, "collate_error: ", 15); + write(STDERR_FILENO, f, strlen(f)); write(STDERR_FILENO, ": ", 2); s = strerror(serrno); write(STDERR_FILENO, s, strlen(s));