[USE] Implement dotted-circle

This makes USE feature-complete as far as the Indic-like features
are concerned.
diff --git a/src/hb-ot-shape-complex-use.cc b/src/hb-ot-shape-complex-use.cc
index b2c6543..379eec1 100644
--- a/src/hb-ot-shape-complex-use.cc
+++ b/src/hb-ot-shape-complex-use.cc
@@ -160,6 +160,7 @@
   number_joiner_terminated_cluster,
   numeral_cluster,
   symbol_cluster,
+  broken_cluster,
 };
 
 #include "hb-ot-shape-complex-use-machine.hh"
@@ -317,7 +318,9 @@
   if (unlikely (!(FLAG_SAFE (syllable_type) &
 		  (FLAG (virama_terminated_cluster) |
 		   FLAG (consonant_cluster) |
-		   FLAG (vowel_cluster)))))
+		   FLAG (vowel_cluster) |
+		   FLAG (broken_cluster) |
+		   0))))
     return;
 
   hb_glyph_info_t *info = buffer->info;
@@ -376,7 +379,6 @@
 		       hb_font_t *font,
 		       hb_buffer_t *buffer)
 {
-#if 0
   /* Note: This loop is extra overhead, but should not be measurable. */
   bool has_broken_syllables = false;
   unsigned int count = buffer->len;
@@ -391,6 +393,10 @@
     return;
 
 
+  hb_codepoint_t dottedcircle_glyph;
+  if (!font->get_glyph (0x25CCu, 0, &dottedcircle_glyph))
+    return;
+
   hb_glyph_info_t dottedcircle = {0};
   if (!font->get_glyph (0x25CCu, 0, &dottedcircle.codepoint))
     return;
@@ -412,6 +418,13 @@
       info.cluster = buffer->cur().cluster;
       info.mask = buffer->cur().mask;
       info.syllable() = buffer->cur().syllable();
+      /* TODO Set glyph_props? */
+
+      /* Insert dottedcircle after possible Repha. */
+      while (buffer->idx < buffer->len &&
+	     last_syllable == buffer->cur().syllable() &&
+	     buffer->cur().use_category() == USE_R)
+        buffer->next_glyph ();
 
       buffer->output_info (info);
     }
@@ -420,7 +433,6 @@
   }
 
   buffer->swap_buffers ();
-#endif
 }
 
 static void