| 113 | } |
| 114 | |
| 115 | char *av_asprintf(const char *fmt, ...) |
| 116 | { |
| 117 | char *p = NULL; |
| 118 | va_list va; |
| 119 | int len; |
| 120 | |
| 121 | va_start(va, fmt); |
| 122 | len = vsnprintf(NULL, 0, fmt, va); |
| 123 | va_end(va); |
| 124 | if (len < 0) |
| 125 | goto end; |
| 126 | |
| 127 | p = av_malloc(len + 1); |
| 128 | if (!p) |
| 129 | goto end; |
| 130 | |
| 131 | va_start(va, fmt); |
| 132 | len = vsnprintf(p, len + 1, fmt, va); |
| 133 | va_end(va); |
| 134 | if (len < 0) |
| 135 | av_freep(&p); |
| 136 | |
| 137 | end: |
| 138 | return p; |
| 139 | } |
| 140 | |
| 141 | #define WHITESPACES " \n\t\r" |
| 142 |