Implement hb_shape_plan_get_shaper()

Untested.
diff --git a/src/hb-shape-plan-private.hh b/src/hb-shape-plan-private.hh
index c5a9927..dd014e3 100644
--- a/src/hb-shape-plan-private.hh
+++ b/src/hb-shape-plan-private.hh
@@ -43,6 +43,7 @@
   hb_segment_properties_t props;
 
   hb_shape_func_t *shaper_func;
+  const char *shaper_name;
 
   struct hb_shaper_data_t shaper_data;
 };
diff --git a/src/hb-shape-plan.cc b/src/hb-shape-plan.cc
index d73a828..7735d4e 100644
--- a/src/hb-shape-plan.cc
+++ b/src/hb-shape-plan.cc
@@ -49,6 +49,7 @@
 	    HB_SHAPER_DATA (shaper, shape_plan) = \
 	      HB_SHAPER_DATA_CREATE_FUNC (shaper, shape_plan) (shape_plan, user_features, num_user_features); \
 	    shape_plan->shaper_func = _hb_##shaper##_shape; \
+	    shape_plan->shaper_name = #shaper; \
 	    return; \
 	  } \
 	} HB_STMT_END
@@ -120,6 +121,7 @@
     HB_SEGMENT_PROPERTIES_DEFAULT, /* props */
 
     NULL, /* shaper_func */
+    NULL, /* shaper_name */
 
     {
 #define HB_SHAPER_IMPLEMENT(shaper) HB_SHAPER_DATA_INVALID,
@@ -298,3 +300,8 @@
 
   return hb_shape_plan_reference (shape_plan);
 }
+
+const char *
+hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan)
+{
+}
diff --git a/src/hb-shape-plan.h b/src/hb-shape-plan.h
index e4ea94b..8f54552 100644
--- a/src/hb-shape-plan.h
+++ b/src/hb-shape-plan.h
@@ -80,10 +80,8 @@
 		       const hb_feature_t *features,
 		       unsigned int        num_features);
 
-#ifdef HB_NOT_IMPLEMENTED
 const char *
-Xhb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);
-#endif
+hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);
 
 
 HB_END_DECLS