add xasprintf() for upcoming changes.

This commit is contained in:
okan 2012-11-28 14:32:44 +00:00
parent 9c0280009c
commit db22777ba0
2 changed files with 21 additions and 2 deletions

View File

@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* $OpenBSD: calmwm.h,v 1.160 2012/11/28 14:14:44 okan Exp $
* $OpenBSD: calmwm.h,v 1.161 2012/11/28 14:32:44 okan Exp $
*/
#ifndef _CALMWM_H_
@ -492,6 +492,9 @@ void u_spawn(char *);
void *xcalloc(size_t, size_t);
void *xmalloc(size_t);
char *xstrdup(const char *);
int xasprintf(char **, const char *, ...)
__attribute__((__format__ (printf, 2, 3)))
__attribute__((__nonnull__ (2)));
/* Externs */
extern Display *X_Dpy;

View File

@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* $OpenBSD: xmalloc.c,v 1.10 2012/11/16 14:15:48 okan Exp $
* $OpenBSD: xmalloc.c,v 1.11 2012/11/28 14:32:44 okan Exp $
*/
#include <sys/param.h>
@ -69,3 +69,19 @@ xstrdup(const char *str)
return (p);
}
int
xasprintf(char **ret, const char *fmt, ...)
{
va_list ap;
int i;
va_start(ap, fmt);
i = vasprintf(ret, fmt, ap);
va_end(ap);
if (i < 0 || *ret == NULL)
err(1, "asprintf");
return (i);
}