Handle the end of the string properly when max_len is set. (#88545, Morten
authorOwen Taylor <otaylor@redhat.com>
Thu, 25 Jul 2002 23:58:00 +0000 (23:58 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Thu, 25 Jul 2002 23:58:00 +0000 (23:58 +0000)
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.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gconvert.c
glib/guniprop.c

index b2634ce04008fe232461fdeea54082ca432d7601..2094ba7bbc3ea6d01a9f1aabbf41c1644ea7fa80 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 
index b2634ce04008fe232461fdeea54082ca432d7601..2094ba7bbc3ea6d01a9f1aabbf41c1644ea7fa80 100644 (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 
index b2634ce04008fe232461fdeea54082ca432d7601..2094ba7bbc3ea6d01a9f1aabbf41c1644ea7fa80 100644 (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 
index b2634ce04008fe232461fdeea54082ca432d7601..2094ba7bbc3ea6d01a9f1aabbf41c1644ea7fa80 100644 (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 
index b2634ce04008fe232461fdeea54082ca432d7601..2094ba7bbc3ea6d01a9f1aabbf41c1644ea7fa80 100644 (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 
index b2634ce04008fe232461fdeea54082ca432d7601..2094ba7bbc3ea6d01a9f1aabbf41c1644ea7fa80 100644 (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 
index b2634ce04008fe232461fdeea54082ca432d7601..2094ba7bbc3ea6d01a9f1aabbf41c1644ea7fa80 100644 (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 
index 939a41766dc928e5abe78570c0254097b33f9109..8371fb5f47ec2658ce9f2e63d133e539ab59ac60 100644 (file)
@@ -135,6 +135,7 @@ g_iconv_open (const gchar  *to_codeset,
        goto out;
     }
 
+ out:
   return (cd == (iconv_t)-1) ? (GIConv)-1 : (GIConv)cd;
 }
 
index 46d2cecfc3def126af00bdefe8449cdba16a5f6f..bb420c3e8fba3844b62420e17ddb464446f0221b 100644 (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);
-
-         /* 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 */
+         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_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 */