cmark

My personal build of CMark ✏️

Commit
3d0110a36054a9af1532d52f2671360fa1c802a3
Parent
b598b52a4acdc2332be3d34e30237d1b93b7dd03
Author
John MacFarlane <jgm@berkeley.edu>
Date

Rudimentary documentation for cmark_walk.

Diffstat

2 files changed, 18 insertions, 1 deletion

Status File Name N° Changes Insertions Deletions
Modified man/man3/cmark.3 9 9 0
Modified src/cmark.h 10 9 1
diff --git a/man/man3/cmark.3 b/man/man3/cmark.3
@@ -274,6 +274,15 @@ typedef enum {
 \fIint\fR \fBcmark_walk\fR(\fIcmark_node *root\fR, \fIcmark_node_handler handler\fR, \fIvoid *state\fR)
 
 .PP
+Walks the tree starting from root, applying handler to each node.
+Nodes that can have children are visited twice, once on the way in
+and once on the way out.  handler is a function that takes a node
+pointer, an integer direction (1 for entering, 0 for leaving),
+and a pointer to a state structure that can be consulted and
+updated by the handler.  The handler should return 1 on success,
+0 on failure.  cmark_walk returns 1 if it traversed the entire
+tree, 0 if it quit early in response to a 0 status from the
+handler.
 
 .SH AUTHORS
 
diff --git a/src/cmark.h b/src/cmark.h
@@ -308,7 +308,15 @@ char *cmark_render_ast(cmark_node *root);
 CMARK_EXPORT
 char *cmark_render_html(cmark_node *root);
 
-/**
+/** Walks the tree starting from root, applying handler to each node.
+ * Nodes that can have children are visited twice, once on the way in
+ * and once on the way out.  handler is a function that takes a node
+ * pointer, an integer direction (1 for entering, 0 for leaving),
+ * and a pointer to a state structure that can be consulted and
+ * updated by the handler.  The handler should return 1 on success,
+ * 0 on failure.  cmark_walk returns 1 if it traversed the entire
+ * tree, 0 if it quit early in response to a 0 status from the
+ * handler.
  */
 CMARK_EXPORT
 int cmark_walk(cmark_node *root, cmark_node_handler handler, void *state);