From e64d2de526d8cfa2908e08892a534316a0bddf5f Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Fri, 30 Mar 2012 10:43:43 +0200 Subject: Fix a bug when converting strings with 1 character using TCVN5712-1 It isn't necessary to buffer the last character of strings. This can cause a bug with strings that have 1 character between 0x0041 and 0x01b0. [BZ #13691] * iconvdata/tcvn5712-1.c (FROM_LOOP): Fix a bug when converting strings with only 1 character between 0x0041 and 0x01b0. * wcsmbs/Makefile (tests): Add tst-mbsnrtowcs. * wcsmbs/tst-mbsnrtowcs.c: New file. --- iconvdata/tcvn5712-1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'iconvdata') diff --git a/iconvdata/tcvn5712-1.c b/iconvdata/tcvn5712-1.c index 49d5430f27..09dcbbfac9 100644 --- a/iconvdata/tcvn5712-1.c +++ b/iconvdata/tcvn5712-1.c @@ -1,5 +1,5 @@ /* Conversion to and from TCVN5712-1. - Copyright (C) 2001, 2002, 2004, 2011 Free Software Foundation, Inc. + Copyright (C) 2001-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -379,7 +379,7 @@ static const struct last_ch = *statep >> 3; \ \ /* We have to buffer ch if it is a possible match in comp_table_data. */ \ - must_buffer_ch = (ch >= 0x0041 && ch <= 0x01b0); \ + must_buffer_ch = last_ch && (ch >= 0x0041 && ch <= 0x01b0); \ \ if (last_ch) \ { \ -- cgit 1.4.1