]> git.cameronkatri.com Git - mandoc.git/blobdiff - xstd.c
Documentation, more validations, cleaned up actions, added Nm action.
[mandoc.git] / xstd.c
diff --git a/xstd.c b/xstd.c
index c236e2dfcf54c100bb64c74132f10e0ea5e79c80..eb36b404f85deaebc23b4e9266d7ac0a2bbd8c58 100644 (file)
--- a/xstd.c
+++ b/xstd.c
@@ -1,4 +1,4 @@
-/* $Id: xstd.c,v 1.2 2008/12/29 18:08:44 kristaps Exp $ */
+/* $Id: xstd.c,v 1.3 2009/01/17 16:15:27 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -16,6 +16,7 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
+#include <assert.h>
 #include <err.h>
 #include <stdlib.h>
 #include <string.h>
 #include <err.h>
 #include <stdlib.h>
 #include <string.h>
@@ -75,6 +76,30 @@ xstrdup(const char *p)
 }
 
 
 }
 
 
+int
+xstrlcats(char *buf, const struct mdoc_node *n, size_t sz)
+{
+       char             *p;
+
+       assert(sz > 0);
+       assert(buf);
+       *buf = 0;
+
+       for ( ; n; n = n->next) {
+               assert(MDOC_TEXT == n->type);
+               p = n->data.text.string;
+               if ( ! xstrlcat(buf, p, sz))
+                       return(0);
+               if (n->next && ! xstrlcat(buf, " ", sz))
+                       return(0);
+       }
+
+       return(1);
+}
+
+
+
+
 #ifdef __linux__
 /*     $OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $      */
 
 #ifdef __linux__
 /*     $OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $      */