about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--wctype/towctrans.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f4e332d41b..e53b21df1f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-06-27  Ulrich Drepper  <drepper@redhat.com>
+
+	* wctype/towctrans.c (__towctrans): Be graceful and accept error
+	return values from the wctrans function.
+
 2000-06-27  Greg McGary  <greg@mcgary.org>
 
 	* elf/dl-open.c (_dl_sysdep_start): Wrap weak_extern decl in BP_SYM ().
diff --git a/wctype/towctrans.c b/wctype/towctrans.c
index b0180fde55..425fd52d46 100644
--- a/wctype/towctrans.c
+++ b/wctype/towctrans.c
@@ -1,5 +1,5 @@
 /* Map wide character using given mapping.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,6 +27,11 @@ __towctrans (wint_t wc, wctrans_t desc)
 {
   size_t idx;
 
+  /* If the user passes in an invalid DESC valid (the one returned from
+     `wctrans' in case of an error) simply return the value.  */
+  if (desc == (wctrans_t) 0)
+    return wc;
+
   idx = cname_lookup (wc);
   if (idx == ~((size_t) 0))
     /* Character is not known.  Default action is to simply return it.  */