Move delimiter addition into hb-buffer-serialize
diff --git a/src/hb-buffer-serialize.cc b/src/hb-buffer-serialize.cc
index 99cd46f..3783da1 100644
--- a/src/hb-buffer-serialize.cc
+++ b/src/hb-buffer-serialize.cc
@@ -125,6 +125,8 @@
 
     if (i)
       *p++ = ',';
+    else
+      *p++ = '[';
 
     *p++ = '{';
 
@@ -174,6 +176,8 @@
     }
 
     *p++ = '}';
+    if (i == end-1)
+      *p++ = ']';
 
     unsigned int l = p - b;
     if (buf_size > l)
@@ -213,9 +217,14 @@
     char *p = b;
     if (i)
       *p++ = ',';
+    else
+      *p++ = '[';
 
     p += hb_max (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "%u", info[i].codepoint));
 
+    if (i == end-1)
+      *p++ = ']';
+
     unsigned int l = p - b;
     if (buf_size > l)
     {
@@ -257,6 +266,8 @@
 
     if (i)
       *p++ = '|';
+    else
+      *p++ = '[';
 
     if (!(flags & HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES))
     {
@@ -297,6 +308,10 @@
       p += hb_max (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "<%d,%d,%d,%d>", extents.x_bearing, extents.y_bearing, extents.width, extents.height));
     }
 
+    if (i == end-1) {
+      *p++ = ']';
+    }
+
     unsigned int l = p - b;
     if (buf_size > l)
     {
@@ -336,8 +351,14 @@
 
     if (i)
       *p++ = '|';
+    else
+      *p++ = '<';
 
     p += hb_max (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "U+%04X", info[i].codepoint));
+
+    if (i == end-1)
+      *p++ = '>';
+
     unsigned int l = p - b;
     if (buf_size > l)
     {
@@ -487,7 +508,7 @@
  * The serialized codepoints will look something like:
  *
  * ```
- * U+0651|U+0628
+ * <U+0651|U+0628>
  * ```
  * - Glyphs are separated with `|`
  * - Unicode codepoints are expressed as zero-padded four (or more)
diff --git a/util/options.cc b/util/options.cc
index 653e201..caf8233 100644
--- a/util/options.cc
+++ b/util/options.cc
@@ -916,10 +916,6 @@
 				    hb_buffer_serialize_flags_t flags,
 				    GString     *gs)
 {
-  if (hb_buffer_get_content_type(buffer) == HB_BUFFER_CONTENT_TYPE_UNICODE)
-    g_string_append_c (gs, '<');
-  else
-    g_string_append_c (gs, '[');
   unsigned int num_glyphs = hb_buffer_get_length (buffer);
   unsigned int start = 0;
 
@@ -934,10 +930,6 @@
       break;
     g_string_append (gs, buf);
   }
-  if (hb_buffer_get_content_type(buffer) == HB_BUFFER_CONTENT_TYPE_UNICODE)
-    g_string_append_c (gs, '>');
-  else
-    g_string_append_c (gs, ']');
 }
 
 void