bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

wctob: small correction


From: Bruno Haible
Subject: wctob: small correction
Date: Mon, 3 May 2010 10:07:50 +0200
User-agent: KMail/1.9.9

This fixes a wctob replacement bug on weird platforms.


2010-05-03  Bruno Haible  <address@hidden>

        wctob: Fix for weird platforms.
        * lib/wctob.c (wctob): When wint_t is larger than wchar_t, check the
        argument value.

--- lib/wctob.c.orig    Mon May  3 10:06:00 2010
+++ lib/wctob.c Mon May  3 10:04:00 2010
@@ -1,5 +1,5 @@
 /* Convert wide character to unibyte character.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2010 Free Software Foundation, Inc.
    Written by Bruno Haible <address@hidden>, 2008.
 
    This program is free software: you can redistribute it and/or modify
@@ -30,8 +30,9 @@
 
   if (!(MB_CUR_MAX <= sizeof (buf)))
     abort ();
-  if (wctomb (buf, wc) == 1)
-    return (unsigned char) buf[0];
-  else
-    return EOF;
+  /* Handle the case where WEOF is a value that does not fit in a wchar_t.  */
+  if (wc == (wchar_t)wc)
+    if (wctomb (buf, (wchar_t)wc) == 1)
+      return (unsigned char) buf[0];
+  return EOF;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]