| 1342 | */ |
| 1343 | |
| 1344 | void |
| 1345 | cupsdSetStringf(char **s, /* O - New string */ |
| 1346 | const char *f, /* I - Printf-style format string */ |
| 1347 | ...) /* I - Additional args as needed */ |
| 1348 | { |
| 1349 | char v[65536 + 64]; /* Formatting string value */ |
| 1350 | va_list ap; /* Argument pointer */ |
| 1351 | char *olds; /* Old string */ |
| 1352 | |
| 1353 | |
| 1354 | if (!s) |
| 1355 | return; |
| 1356 | |
| 1357 | olds = *s; |
| 1358 | |
| 1359 | if (f) |
| 1360 | { |
| 1361 | va_start(ap, f); |
| 1362 | vsnprintf(v, sizeof(v), f, ap); |
| 1363 | va_end(ap); |
| 1364 | |
| 1365 | *s = strdup(v); |
| 1366 | } |
| 1367 | else |
| 1368 | *s = NULL; |
| 1369 | |
| 1370 | if (olds) |
| 1371 | free(olds); |
| 1372 | } |
| 1373 | |
| 1374 | |
| 1375 | /* |
no outgoing calls
no test coverage detected