[subset] add documentation for all hb-subset.h methods.
diff --git a/src/hb-subset-input.cc b/src/hb-subset-input.cc
index 121a688..7a9b81d 100644
--- a/src/hb-subset-input.cc
+++ b/src/hb-subset-input.cc
@@ -198,8 +198,6 @@
  * hb_subset_input_reference: (skip)
  * @subset_input: a subset_input.
  *
- *
- *
  * Return value:
  *
  * Since: 1.8.0
@@ -235,6 +233,8 @@
  * hb_subset_input_unicode_set:
  * @subset_input: a subset_input.
  *
+ * Return value: pointer to the set of unicode codepoints to retain.
+ *
  * Since: 1.8.0
  **/
 HB_EXTERN hb_set_t *
@@ -247,6 +247,8 @@
  * hb_subset_input_glyph_set:
  * @subset_input: a subset_input.
  *
+ * Return value: pointer to the set of glyph ids to retain.
+ *
  * Since: 1.8.0
  **/
 HB_EXTERN hb_set_t *
@@ -255,18 +257,43 @@
   return subset_input->glyphs;
 }
 
+/**
+ * hb_subset_input_nameid_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of name ids to retain.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_nameid_set (hb_subset_input_t *subset_input)
 {
   return subset_input->name_ids;
 }
 
+/**
+ * hb_subset_input_namelangid_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of name language ids to retain.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_namelangid_set (hb_subset_input_t *subset_input)
 {
   return subset_input->name_languages;
 }
 
+
+/**
+ * hb_subset_input_layout_features_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of feature tags to retain.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_layout_features_set (hb_subset_input_t *subset_input)
 {
@@ -275,7 +302,7 @@
 
 HB_EXTERN void
 hb_subset_input_set_retain_all_features (hb_subset_input_t *subset_input,
-				       hb_bool_t value)
+					 hb_bool_t value)
 {
   subset_input->retain_all_layout_features = value;
 }
@@ -287,18 +314,46 @@
 }
 
 
+/**
+ * hb_subset_input_drop_tabes_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of table tags which specifies tables
+ *		 to be dropped.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_drop_tables_set (hb_subset_input_t *subset_input)
 {
   return subset_input->drop_tables;
 }
 
+/**
+ * hb_subset_input_no_subset_tabes_set:
+ * @subset_input: a subset_input.
+ *
+ * Return value: pointer to the set of table tags which specifies tables
+ *		 that should not have subsetting applied to them.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_set_t *
 hb_subset_input_no_subset_tables_set (hb_subset_input_t *subset_input)
 {
   return subset_input->no_subset_tables;
 }
 
+
+/**
+ * hb_subset_input_get_flag:
+ * @subset_input: a subset_input.
+ * @flag: which flag to check.
+ *
+ * Return value: value of the specified flag.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN hb_bool_t
 hb_subset_input_get_flag (hb_subset_input_t *input,
 			  hb_subset_flag_t flag)
@@ -324,6 +379,16 @@
   }
 }
 
+/**
+ * hb_subset_input_set_flag:
+ * @subset_input: a subset_input.
+ * @flag: which flag to set.
+ * @value: new value for the flag.
+ *
+ * Set the specified flag to @value.
+ *
+ * Since: REPLACE
+ **/
 HB_EXTERN void
 hb_subset_input_set_flag (hb_subset_input_t *input,
 			  hb_subset_flag_t flag,
diff --git a/src/hb-subset.h b/src/hb-subset.h
index 8190458..7fe4dcf 100644
--- a/src/hb-subset.h
+++ b/src/hb-subset.h
@@ -39,35 +39,40 @@
 
 typedef struct hb_subset_input_t hb_subset_input_t;
 
+/**
+ * hb_subset_flag_t:
+ * @HB_SUBSET_FLAG_HINTING: If set hinting instructions will be retained in
+ * the produced subset. Otherwise hinting instructions will be dropped.
+ * Defaults to true.
+ * @HB_SUBSET_FLAG_RETAIN_GIDS: If set glyph indices will not be modified in
+ * the produced subset. If glyphs are dropped their indices will be retained
+ * as an empty glyph. Defaults to false.
+ * @HB_SUBSET_FLAG_DESUBROUTINIZE: If set and subsetting a CFF font the
+ * subsetter will attempt to remove subroutines from the CFF glyphs.
+ * Defaults to false.
+ * @HB_SUBSET_FLAG_NAME_LEGACY: If set non-unicode name records will be
+ * retained in the subset. Defaults to false.
+ * @HB_SUBSET_FLAG_SET_OVERLAPS_FLAG:  If set the subsetter will set the
+ * OVERLAP_SIMPLE flag on each simple glyph. Defaults to false.
+ * @HB_SUBSET_FLAG_PASSTHROUGH_UNRECOGNIZED: If set the subsetter will not
+ * drop unrecognized tables and instead pass them through untouched.
+ * Defaults to false.
+ * @HB_SUBSET_FLAG_NOTDEF_OUTLINE: If set the notdef glyph outline will be
+ * retained in the final subset. Defaults to false.
+ *
+ * List of boolean properties that can be configured on the subset input.
+ *
+ * Since: REPLACE
+ **/
 typedef enum
 {
-  // If set hinting instructions will be retained in the produced subset.
-  // Otherwise hinting instructions will be dropped.
-  // Defaults to true.
-  HB_SUBSET_FLAG_HINTING =		    1,
-  // If set glyph indices will not be modified in the produced subset.
-  // If glyphs are dropped their indices will be retained as an empty
-  // glyph.
-  // Defaults to false.
-  HB_SUBSET_FLAG_RETAIN_GIDS =		    2,
-  // If set and subsetting a CFF font the subsetter will attempt to
-  // remove subroutines from the CFF glyphs.
-  // Defaults to false.
-  HB_SUBSET_FLAG_DESUBROUTINIZE =	    3,
-  // If set non-unicode name records will be retained in the subset.
-  // Defaults to false.
-  HB_SUBSET_FLAG_NAME_LEGACY =		    4,
-  // If set the subsetter will set the OVERLAP_SIMPLE flag on each
-  // simple glyph.
-  // Defaults to false.
-  HB_SUBSET_FLAG_SET_OVERLAPS_FLAG =	    5,
-  // If set the subsetter will not drop unrecognized tables and instead
-  // pass them through untouched.
-  // Defaults to false.
-  HB_SUBSET_FLAG_PASSTHROUGH_UNRECOGNIZED = 6,
-  // If set the notdef glyph outline will be retained in the final subset.
-  // Defaults to false.
-  HB_SUBSET_FLAG_NOTDEF_OUTLINE =	    7,
+  HB_SUBSET_FLAG_HINTING = 0,
+  HB_SUBSET_FLAG_RETAIN_GIDS,
+  HB_SUBSET_FLAG_DESUBROUTINIZE,
+  HB_SUBSET_FLAG_NAME_LEGACY,
+  HB_SUBSET_FLAG_SET_OVERLAPS_FLAG,
+  HB_SUBSET_FLAG_PASSTHROUGH_UNRECOGNIZED,
+  HB_SUBSET_FLAG_NOTDEF_OUTLINE,
 } hb_subset_flag_t;
 
 HB_EXTERN hb_subset_input_t *