upstream: add allocating variant of the safe utf8 printer; ok

dtucker as part of a larger diff

OpenBSD-Commit-ID: 037e2965bd50eacc2ffb49889ecae41552744fa0
This commit is contained in:
djm@openbsd.org 2020-04-03 02:25:21 +00:00 коммит произвёл Damien Miller
Родитель d8ac9af645
Коммит af628b8a6c
2 изменённых файлов: 18 добавлений и 2 удалений

16
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 <schwarze@openbsd.org>
*
@ -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.

4
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 <schwarze@openbsd.org>
*
@ -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);