Name: In C ndn_Name, added appendComponent, appendBlob and appendString.
diff --git a/src/c/name.h b/src/c/name.h
index 68c3b6d..3a0ba31 100644
--- a/src/c/name.h
+++ b/src/c/name.h
@@ -79,6 +79,34 @@
  */
 int ndn_Name_match(struct ndn_Name *self, struct ndn_Name *name);
 
+/**
+ * Append a component to this name with the bytes in the given array.
+ * @param self pointer to the ndn_Name struct.
+ * @param value The bytes of the component.  This does not copy the bytes.
+ * @param valueLength The number of bytes in value.
+ * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
+ */
+ndn_Error ndn_Name_appendComponent(struct ndn_Name *self, uint8_t* value, size_t valueLength);
+
+/**
+ * Append a component to this name with the bytes in the given blob.
+ * @param self pointer to the ndn_Name struct.
+ * @param value An ndn_Blob with the bytes of the component.  This does not copy the bytes.
+ * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
+ */
+static inline ndn_Error ndn_Name_appendBlob(struct ndn_Name *self, struct ndn_Blob *value)
+{
+  return ndn_Name_appendComponent(self, value->value, value->length);
+}
+
+/**
+ * Append a component to this name with the bytes in raw string value.
+ * @param self pointer to the ndn_Name struct.
+ * @param value The null-terminated string, treated as a byte array.  This does not copy the bytes.
+ * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
+ */
+ndn_Error ndn_Name_appendString(struct ndn_Name *self, char* value);
+
 #ifdef __cplusplus
 }
 #endif