g_strcasecmp and g_strncasecmp are deprecated in glib-2.32.

---
 unix/gtkfont.c |   57 +++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 37 insertions(+), 20 deletions(-)

Index: putty-0.62/unix/gtkfont.c
===================================================================
--- putty-0.62.orig/unix/gtkfont.c
+++ putty-0.62/unix/gtkfont.c
@@ -10,6 +10,8 @@
  */
 
 #include <assert.h>
+#include <errno.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <gtk/gtk.h>
@@ -524,21 +526,21 @@ static void x11font_enum_fonts(GtkWidget
 	    style = p;
 	    p += sprintf(p, "%s", components[2][0] ? components[2] :
 			 "regular");
-	    if (!g_strcasecmp(components[3], "i"))
+	    if (!g_ascii_strcasecmp(components[3], "i"))
 		p += sprintf(p, " italic");
-	    else if (!g_strcasecmp(components[3], "o"))
+	    else if (!g_ascii_strcasecmp(components[3], "o"))
 		p += sprintf(p, " oblique");
-	    else if (!g_strcasecmp(components[3], "ri"))
+	    else if (!g_ascii_strcasecmp(components[3], "ri"))
 		p += sprintf(p, " reverse italic");
-	    else if (!g_strcasecmp(components[3], "ro"))
+	    else if (!g_ascii_strcasecmp(components[3], "ro"))
 		p += sprintf(p, " reverse oblique");
-	    else if (!g_strcasecmp(components[3], "ot"))
+	    else if (!g_ascii_strcasecmp(components[3], "ot"))
 		p += sprintf(p, " other-slant");
-	    if (components[4][0] && g_strcasecmp(components[4], "normal"))
+	    if (components[4][0] && g_ascii_strcasecmp(components[4], "normal"))
 		p += sprintf(p, " %s", components[4]);
-	    if (!g_strcasecmp(components[10], "m"))
+	    if (!g_ascii_strcasecmp(components[10], "m"))
 		p += sprintf(p, " [M]");
-	    if (!g_strcasecmp(components[10], "c"))
+	    if (!g_ascii_strcasecmp(components[10], "c"))
 		p += sprintf(p, " [C]");
 	    if (components[5][0])
 		p += sprintf(p, " %s", components[5]);
@@ -550,23 +552,23 @@ static void x11font_enum_fonts(GtkWidget
 	     */
 	    p++;
 	    stylekey = p;
-	    if (!g_strcasecmp(components[2], "medium") ||
-		!g_strcasecmp(components[2], "regular") ||
-		!g_strcasecmp(components[2], "normal") ||
-		!g_strcasecmp(components[2], "book"))
+	    if (!g_ascii_strcasecmp(components[2], "medium") ||
+		!g_ascii_strcasecmp(components[2], "regular") ||
+		!g_ascii_strcasecmp(components[2], "normal") ||
+		!g_ascii_strcasecmp(components[2], "book"))
 		weightkey = 0;
-	    else if (!g_strncasecmp(components[2], "demi", 4) ||
-		     !g_strncasecmp(components[2], "semi", 4))
+	    else if (!g_ascii_strncasecmp(components[2], "demi", 4) ||
+		     !g_ascii_strncasecmp(components[2], "semi", 4))
 		weightkey = 1;
 	    else
 		weightkey = 2;
-	    if (!g_strcasecmp(components[3], "r"))
+	    if (!g_ascii_strcasecmp(components[3], "r"))
 		slantkey = 0;
-	    else if (!g_strncasecmp(components[3], "r", 1))
+	    else if (!g_ascii_strncasecmp(components[3], "r", 1))
 		slantkey = 2;
 	    else
 		slantkey = 1;
-	    if (!g_strcasecmp(components[4], "normal"))
+	    if (!g_ascii_strcasecmp(components[4], "normal"))
 		setwidthkey = 0;
 	    else
 		setwidthkey = 1;
@@ -774,11 +776,16 @@ static int pangofont_check_desc_makes_se
 
     matched = FALSE;
     for (i = 0; i < nfamilies; i++) {
-	if (!g_strcasecmp(pango_font_family_get_name(families[i]),
-			  pango_font_description_get_family(desc))) {
+	gchar *a = g_utf8_strdown(pango_font_family_get_name(families[i]), -1);
+	gchar *b = g_utf8_strdown(pango_font_description_get_family(desc), -1);
+	if (a != NULL && b != NULL && strcmp(a, b) == 0) {
+	    g_free(a);
+	    g_free(b);
 	    matched = TRUE;
 	    break;
 	}
+	g_free(a);
+	g_free(b);
     }
     g_free(families);
 
@@ -1375,6 +1382,7 @@ struct fontinfo_realname_find {
 
 static int strnullcasecmp(const char *a, const char *b)
 {
+    gchar *p, *q;
     int i;
 
     /*
@@ -1393,7 +1401,16 @@ static int strnullcasecmp(const char *a,
     /*
      * Otherwise, ordinary strcasecmp.
      */
-    return g_strcasecmp(a, b);
+    p = g_utf8_strdown(a, -1);
+    q = g_utf8_strdown(b, -1);
+    if (p == NULL || q == NULL) {
+	fprintf(stderr, "%s\n", strerror(errno));
+	abort();
+    }
+    i = strcmp(p, q);
+    g_free(p);
+    g_free(q);
+    return i;
 }
 
 static int fontinfo_realname_compare(void *av, void *bv)