Handle the end of the string properly when max_len is set. (#88545, Morten

Thu Jul 25 19:52:41 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/guniprop.c (real_tolower): Handle the
        end of the string properly when max_len is set.
        (#88545, Morten Welinder.) Rename the next_t
        variable to next_type to make cc-mode happy.

        * glib/gconvert.c (g_iconv_open): Fix missing
        label from previous commit.
This commit is contained in:
Owen Taylor 2002-07-25 23:58:00 +00:00 committed by Owen Taylor
parent 5bfdd206c1
commit bedbbabba7
9 changed files with 86 additions and 10 deletions

View File

@ -1,3 +1,13 @@
Thu Jul 25 19:52:41 2002 Owen Taylor <otaylor@redhat.com>
* glib/guniprop.c (real_tolower): Handle the
end of the string properly when max_len is set.
(#88545, Morten Welinder.) Rename the next_t
variable to next_type to make cc-mode happy.
* glib/gconvert.c (g_iconv_open): Fix missing
label from previous commit.
Thu Jul 25 19:41:03 2002 Owen Taylor <otaylor@redhat.com>
* glib/giochannel.c (g_io_channel_get_flags): Fix

View File

@ -1,3 +1,13 @@
Thu Jul 25 19:52:41 2002 Owen Taylor <otaylor@redhat.com>
* glib/guniprop.c (real_tolower): Handle the
end of the string properly when max_len is set.
(#88545, Morten Welinder.) Rename the next_t
variable to next_type to make cc-mode happy.
* glib/gconvert.c (g_iconv_open): Fix missing
label from previous commit.
Thu Jul 25 19:41:03 2002 Owen Taylor <otaylor@redhat.com>
* glib/giochannel.c (g_io_channel_get_flags): Fix

View File

@ -1,3 +1,13 @@
Thu Jul 25 19:52:41 2002 Owen Taylor <otaylor@redhat.com>
* glib/guniprop.c (real_tolower): Handle the
end of the string properly when max_len is set.
(#88545, Morten Welinder.) Rename the next_t
variable to next_type to make cc-mode happy.
* glib/gconvert.c (g_iconv_open): Fix missing
label from previous commit.
Thu Jul 25 19:41:03 2002 Owen Taylor <otaylor@redhat.com>
* glib/giochannel.c (g_io_channel_get_flags): Fix

View File

@ -1,3 +1,13 @@
Thu Jul 25 19:52:41 2002 Owen Taylor <otaylor@redhat.com>
* glib/guniprop.c (real_tolower): Handle the
end of the string properly when max_len is set.
(#88545, Morten Welinder.) Rename the next_t
variable to next_type to make cc-mode happy.
* glib/gconvert.c (g_iconv_open): Fix missing
label from previous commit.
Thu Jul 25 19:41:03 2002 Owen Taylor <otaylor@redhat.com>
* glib/giochannel.c (g_io_channel_get_flags): Fix

View File

@ -1,3 +1,13 @@
Thu Jul 25 19:52:41 2002 Owen Taylor <otaylor@redhat.com>
* glib/guniprop.c (real_tolower): Handle the
end of the string properly when max_len is set.
(#88545, Morten Welinder.) Rename the next_t
variable to next_type to make cc-mode happy.
* glib/gconvert.c (g_iconv_open): Fix missing
label from previous commit.
Thu Jul 25 19:41:03 2002 Owen Taylor <otaylor@redhat.com>
* glib/giochannel.c (g_io_channel_get_flags): Fix

View File

@ -1,3 +1,13 @@
Thu Jul 25 19:52:41 2002 Owen Taylor <otaylor@redhat.com>
* glib/guniprop.c (real_tolower): Handle the
end of the string properly when max_len is set.
(#88545, Morten Welinder.) Rename the next_t
variable to next_type to make cc-mode happy.
* glib/gconvert.c (g_iconv_open): Fix missing
label from previous commit.
Thu Jul 25 19:41:03 2002 Owen Taylor <otaylor@redhat.com>
* glib/giochannel.c (g_io_channel_get_flags): Fix

View File

@ -1,3 +1,13 @@
Thu Jul 25 19:52:41 2002 Owen Taylor <otaylor@redhat.com>
* glib/guniprop.c (real_tolower): Handle the
end of the string properly when max_len is set.
(#88545, Morten Welinder.) Rename the next_t
variable to next_type to make cc-mode happy.
* glib/gconvert.c (g_iconv_open): Fix missing
label from previous commit.
Thu Jul 25 19:41:03 2002 Owen Taylor <otaylor@redhat.com>
* glib/giochannel.c (g_io_channel_get_flags): Fix

View File

@ -135,6 +135,7 @@ g_iconv_open (const gchar *to_codeset,
goto out;
}
out:
return (cd == (iconv_t)-1) ? (GIConv)-1 : (GIConv)cd;
}

View File

@ -758,17 +758,22 @@ real_tolower (const gchar *str,
}
else if (c == 0x03A3) /* GREEK CAPITAL LETTER SIGMA */
{
gunichar next_c = g_utf8_get_char (p);
int next_t = TYPE(next_c);
if ((max_len < 0 || p < str + max_len) && *p)
{
gunichar next_c = g_utf8_get_char (p);
int next_type = TYPE(next_c);
/* SIGMA mapps differently depending on whether it is
* final or not. The following simplified test would
* fail in the case of combining marks following the
* sigma, but I don't think that occurs in real text.
* The test here matches that in ICU.
*/
if (ISALPHA(next_t)) /* Lu,Ll,Lt,Lm,Lo */
val = 0x3c3; /* GREEK SMALL SIGMA */
/* SIGMA mapps differently depending on whether it is
* final or not. The following simplified test would
* fail in the case of combining marks following the
* sigma, but I don't think that occurs in real text.
* The test here matches that in ICU.
*/
if (ISALPHA(next_type)) /* Lu,Ll,Lt,Lm,Lo */
val = 0x3c3; /* GREEK SMALL SIGMA */
else
val = 0x3c2; /* GREEK SMALL FINAL SIGMA */
}
else
val = 0x3c2; /* GREEK SMALL FINAL SIGMA */