From af628b8a6c3ef403644d83d205c80ff188c97f0c Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 3 Apr 2020 02:25:21 +0000 Subject: [PATCH] upstream: add allocating variant of the safe utf8 printer; ok dtucker as part of a larger diff OpenBSD-Commit-ID: 037e2965bd50eacc2ffb49889ecae41552744fa0 --- utf8.c | 16 +++++++++++++++- utf8.h | 4 +++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/utf8.c b/utf8.c index b3d300478..f83401996 100644 --- a/utf8.c +++ b/utf8.c @@ -1,4 +1,4 @@ -/* $OpenBSD: utf8.c,v 1.9 2020/03/06 18:12:55 markus Exp $ */ +/* $OpenBSD: utf8.c,v 1.10 2020/04/03 02:25:21 djm Exp $ */ /* * Copyright (c) 2016 Ingo Schwarze * @@ -255,6 +255,20 @@ snmprintf(char *str, size_t sz, int *wp, const char *fmt, ...) return ret; } +int +asmprintf(char **outp, size_t sz, int *wp, const char *fmt, ...) +{ + va_list ap; + int ret; + + *outp = NULL; + va_start(ap, fmt); + ret = vasnmprintf(outp, sz, wp, fmt, ap); + va_end(ap); + + return ret; +} + /* * To stay close to the standard interfaces, the following functions * return the number of non-NUL bytes written. diff --git a/utf8.h b/utf8.h index 88c5a34a3..20a11dc59 100644 --- a/utf8.h +++ b/utf8.h @@ -1,4 +1,4 @@ -/* $OpenBSD: utf8.h,v 1.1 2016/05/25 23:48:45 schwarze Exp $ */ +/* $OpenBSD: utf8.h,v 1.2 2020/04/03 02:25:21 djm Exp $ */ /* * Copyright (c) 2016 Ingo Schwarze * @@ -22,4 +22,6 @@ int fmprintf(FILE *, const char *, ...) int vfmprintf(FILE *, const char *, va_list); int snmprintf(char *, size_t, int *, const char *, ...) __attribute__((format(printf, 4, 5))); +int asmprintf(char **, size_t, int *, const char *, ...) + __attribute__((format(printf, 4, 5))); void msetlocale(void);