Mercurial > mplayer.hg
changeset 32883:fa04e96e6177
Add mp_strings.c with mp_asprintf function.
author | cboesch |
---|---|
date | Sat, 26 Feb 2011 11:55:02 +0000 |
parents | bd3ea059fe2d |
children | 0d95f044c589 |
files | Makefile mp_strings.c mp_strings.h |
diffstat | 3 files changed, 77 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Fri Feb 25 12:26:31 2011 +0000 +++ b/Makefile Sat Feb 26 11:55:02 2011 +0000 @@ -301,6 +301,7 @@ m_option.c \ m_struct.c \ mp_msg.c \ + mp_strings.c \ mpcommon.c \ parser-cfg.c \ path.c \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mp_strings.c Sat Feb 26 11:55:02 2011 +0000 @@ -0,0 +1,50 @@ +/* + * Strings utilities + * + * This file is part of MPlayer. + * + * MPlayer is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * MPlayer is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with MPlayer; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include <stdlib.h> +#include <stdarg.h> +#include <stdio.h> +#include "mp_strings.h" + +char *mp_asprintf(const char *fmt, ...) +{ + char *p = NULL; + va_list va, va_bak; + int len; + + va_start(va, fmt); + va_copy(va_bak, va); + + len = vsnprintf(NULL, 0, fmt, va); + if (len < 0) + goto end; + + p = malloc(len + 1); + if (!p) + goto end; + + len = vsnprintf(p, len + 1, fmt, va_bak); + if (len < 0) + free(p), p = NULL; + +end: + va_end(va); + return p; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mp_strings.h Sat Feb 26 11:55:02 2011 +0000 @@ -0,0 +1,26 @@ +/* + * Strings utilities + * + * This file is part of MPlayer. + * + * MPlayer is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * MPlayer is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with MPlayer; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef MPLAYER_MP_STRINGS_H +#define MPLAYER_MP_STRINGS_H + +char *mp_asprintf(const char *fmt, ...); + +#endif /* !MPLAYER_MP_STRINGS_H */