summaryrefslogtreecommitdiffstats
path: root/xstd.c
diff options
context:
space:
mode:
Diffstat (limited to 'xstd.c')
-rw-r--r--xstd.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/xstd.c b/xstd.c
index f485b737..dee1ff35 100644
--- a/xstd.c
+++ b/xstd.c
@@ -16,6 +16,7 @@
* 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>
@@ -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 $ */