84d71d
Index: pango-1.42.4/pango/break.c
84d71d
===================================================================
84d71d
--- pango-1.42.4.orig/pango/break.c
84d71d
+++ pango-1.42.4/pango/break.c
84d71d
@@ -409,15 +409,6 @@ pango_default_break (const gchar   *text
84d71d
 	    GB_type = GB_ControlCRLF;
84d71d
 	    break;
84d71d
 
84d71d
-	  case G_UNICODE_UNASSIGNED:
84d71d
-	    /* Unassigned default ignorables */
84d71d
-	    if ((wc >= 0xFFF0 && wc <= 0xFFF8) ||
84d71d
-		(wc >= 0xE0000 && wc <= 0xE0FFF))
84d71d
-	      {
84d71d
-		GB_type = GB_ControlCRLF;
84d71d
-		break;
84d71d
-	      }
84d71d
-
84d71d
 	  case G_UNICODE_OTHER_LETTER:
84d71d
 	    if (makes_hangul_syllable)
84d71d
 	      GB_type = GB_InHangulSyllable;
84d71d
@@ -446,67 +437,103 @@ pango_default_break (const gchar   *text
84d71d
 	    GB_type = GB_Extend; /* Grapheme_Extend */
84d71d
 	    break;
84d71d
 
84d71d
+	  case G_UNICODE_UNASSIGNED:
84d71d
+	    /* Unassigned default ignorables */
84d71d
+	    if ((wc >= 0xFFF0 && wc <= 0xFFF8) ||
84d71d
+		(wc >= 0xE0000 && wc <= 0xE0FFF))
84d71d
+	      {
84d71d
+		GB_type = GB_ControlCRLF;
84d71d
+		break;
84d71d
+	      }
84d71d
+
84d71d
+	    /* In Unicode 9.0, some emoji characters are unassigned.
84d71d
+	     * To support Unicode emoji 13.0, check the emoji characters here.
84d71d
+	     */
84d71d
           case G_UNICODE_OTHER_SYMBOL:
84d71d
             if (G_UNLIKELY(wc == 0x261D ||
84d71d
-                           wc == 0x26F9 ||
84d71d
-                           (wc >= 0x270A && wc <= 0x270D) ||
84d71d
-                           wc == 0x1F385 ||
84d71d
-                           (wc >= 0x1F3C2 && wc <= 0x1F3C4) ||
84d71d
-                           wc == 0x1F3C7 ||
84d71d
-                           (wc >= 0x1F3CA && wc <= 0x1F3CC) ||
84d71d
-                           (wc >= 0x1F442 && wc <= 0x1F443) ||
84d71d
-                           (wc >= 0x1F446 && wc <= 0x1F450) ||
84d71d
-                           wc == 0x1F46E ||
84d71d
-                           (wc >= 0x1F470 && wc <= 0x1F478) ||
84d71d
-                           wc == 0x1F47C ||
84d71d
-                           (wc >= 0x1F481 && wc <= 0x1F483) ||
84d71d
-                           (wc >= 0x1F485 && wc <= 0x1F487) ||
84d71d
-                           wc == 0x1F4AA ||
84d71d
-                           (wc >= 0x1F574 && wc <= 0x1F575) ||
84d71d
-                           wc == 0x1F57A ||
84d71d
-                           wc == 0x1F590 ||
84d71d
-                           (wc >= 0x1F595 && wc <= 0x1F596) ||
84d71d
-                           (wc >= 0x1F645 && wc <= 0x1F647) ||
84d71d
-                           (wc >= 0x1F64B && wc <= 0x1F64F) ||
84d71d
-                           wc == 0x1F6A3 ||
84d71d
-                           (wc >= 0x1F6B4 && wc <= 0x1F6B6) ||
84d71d
-                           wc == 0x1F6C0 ||
84d71d
-                           wc == 0x1F6CC ||
84d71d
-                           (wc >= 0x1F918 && wc <= 0x1F91C) ||
84d71d
-                           (wc >= 0x1F91E && wc <= 0x1F91F) ||
84d71d
-                           wc == 0x1F926 ||
84d71d
-                           (wc >= 0x1F930 && wc <= 0x1F939) ||
84d71d
-                           (wc >= 0x1F93D && wc <= 0x1F93E) ||
84d71d
-                           (wc >= 0x1F9D1 && wc <= 0x1F9DD)))
84d71d
+			   wc == 0x26F9 ||
84d71d
+			   (wc >= 0x270A && wc <= 0x270D) ||
84d71d
+			   wc == 0x1F385 ||
84d71d
+			   (wc >= 0x1F3C2 && wc <= 0x1F3C4) ||
84d71d
+			   wc == 0x1F3C7 ||
84d71d
+			   (wc >= 0x1F3CA && wc <= 0x1F3CC) ||
84d71d
+			   (wc >= 0x1F442 && wc <= 0x1F443) ||
84d71d
+			   (wc >= 0x1F446 && wc <= 0x1F450) ||
84d71d
+			   (wc >= 0x1F46A && wc <= 0x1F478) ||
84d71d
+			   wc == 0x1F47C ||
84d71d
+			   (wc >= 0x1F481 && wc <= 0x1F483) ||
84d71d
+			   (wc >= 0x1F485 && wc <= 0x1F487) ||
84d71d
+			   wc == 0x1F48F ||
84d71d
+			   wc == 0x1F491 ||
84d71d
+			   wc == 0x1F4AA ||
84d71d
+			   (wc >= 0x1F574 && wc <= 0x1F575) ||
84d71d
+			   wc == 0x1F57A ||
84d71d
+			   wc == 0x1F590 ||
84d71d
+			   (wc >= 0x1F595 && wc <= 0x1F596) ||
84d71d
+			   (wc >= 0x1F645 && wc <= 0x1F647) ||
84d71d
+			   (wc >= 0x1F64B && wc <= 0x1F64F) ||
84d71d
+			   wc == 0x1F6A3 ||
84d71d
+			   (wc >= 0x1F6B4 && wc <= 0x1F6B6) ||
84d71d
+			   wc == 0x1F6C0 ||
84d71d
+			   wc == 0x1F6CC ||
84d71d
+			   wc == 0x1F90C ||
84d71d
+			   wc == 0x1F90F ||
84d71d
+			   (wc >= 0x1F918 && wc <= 0x1F91C) ||
84d71d
+			   (wc >= 0x1F91E && wc <= 0x1F91F) ||
84d71d
+			   wc == 0x1F926 ||
84d71d
+			   (wc >= 0x1F930 && wc <= 0x1F939) ||
84d71d
+			   (wc >= 0x1F93C && wc <= 0x1F93E) ||
84d71d
+			   wc == 0x1F977 ||
84d71d
+			   (wc >= 0x1F9B5 && wc <= 0x1F9B6) ||
84d71d
+			   (wc >= 0x1F9B8 && wc <= 0x1F9B9) ||
84d71d
+			   wc == 0x1F9BB ||
84d71d
+			   (wc >= 0x1F9CD && wc <= 0x1F9CF) ||
84d71d
+			   (wc >= 0x1F9D2 && wc <= 0x1F9DD)))
84d71d
               {
84d71d
                 GB_type = GB_E_Base;
84d71d
                 break;
84d71d
               }
84d71d
-            if (G_UNLIKELY(wc == 0x2640 ||
84d71d
-                           wc == 0x2642 ||
84d71d
-                           (wc >= 0x2695 && wc <= 0x2696) ||
84d71d
-                           wc == 0x2708 ||
84d71d
-                           wc == 0x2764 ||
84d71d
-                           wc == 0x1F308 ||
84d71d
-                           wc == 0x1F33E ||
84d71d
-                           wc == 0x1F373 ||
84d71d
-                           wc == 0x1F393 ||
84d71d
-                           wc == 0x1F3A4 ||
84d71d
-                           wc == 0x1F3A8 ||
84d71d
-                           wc == 0x1F3EB ||
84d71d
-                           wc == 0x1F3ED ||
84d71d
-                           wc == 0x1F48B ||
84d71d
-                           (wc >= 0x1F4BB && wc <= 0x1F4BC) ||
84d71d
-                           wc == 0x1F527 ||
84d71d
-                           wc == 0x1F52C ||
84d71d
-                           wc == 0x1F5E8 ||
84d71d
-                           wc == 0x1F680 ||
84d71d
-                           wc == 0x1F692))
84d71d
+            if (G_UNLIKELY(wc == 0x2620 ||
84d71d
+			   wc == 0x2640 ||
84d71d
+			   wc == 0x2642 ||
84d71d
+			   (wc >= 0x2695 && wc <= 0x2696) ||
84d71d
+			   wc == 0x26A7 ||
84d71d
+			   wc == 0x2708 ||
84d71d
+			   wc == 0x2744 ||
84d71d
+			   wc == 0x2764 ||
84d71d
+			   wc == 0x2B1B ||
84d71d
+			   wc == 0x1F308 ||
84d71d
+			   wc == 0x1F32B ||
84d71d
+			   wc == 0x1F33E ||
84d71d
+			   wc == 0x1F373 ||
84d71d
+			   wc == 0x1F37C ||
84d71d
+			   wc == 0x1F384 ||
84d71d
+			   wc == 0x1F393 ||
84d71d
+			   wc == 0x1F3A4 ||
84d71d
+			   wc == 0x1F3A8 ||
84d71d
+			   wc == 0x1F3EB ||
84d71d
+			   wc == 0x1F3ED ||
84d71d
+			   wc == 0x1F48B ||
84d71d
+			   wc == 0x1F4A8 ||
84d71d
+			   wc == 0x1F4AB ||
84d71d
+			   (wc >= 0x1F4BB && wc <= 0x1F4BC) ||
84d71d
+			   wc == 0x1F525 ||
84d71d
+			   wc == 0x1F527 ||
84d71d
+			   wc == 0x1F52C ||
84d71d
+			   wc == 0x1F5E8 ||
84d71d
+			   wc == 0x1F680 ||
84d71d
+			   wc == 0x1F692 ||
84d71d
+			   (wc >= 0x1F9AF && wc <= 0x1F9B3) ||
84d71d
+			   wc == 0x1F9BA ||
84d71d
+			   (wc >= 0x1F9BC && wc <= 0x1F9BD) ||
84d71d
+			   wc == 0x1FA79))
84d71d
               {
84d71d
                 GB_type = GB_Glue_After_Zwj;
84d71d
                 break;
84d71d
               }
84d71d
-            if (G_UNLIKELY(wc >= 0x1F466 && wc <= 0x1F469))
84d71d
+            if (G_UNLIKELY((wc >= 0x1F466 && wc <= 0x1F469) ||
84d71d
+			   wc == 0x1F91D ||
84d71d
+			   wc == 0x1F9D1))
84d71d
               {
84d71d
                 GB_type = GB_E_Base_GAZ;
84d71d
                 break;