diff options
author | dtucker@openbsd.org <dtucker@openbsd.org> | 2020-05-29 11:17:56 +0000 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2020-05-29 21:53:37 +1000 |
commit | 712ac1efb687a945a89db6aa3e998c1a17b38653 (patch) | |
tree | 763dbf0dcc09f1137ab4bf0ed83aa921f54b5579 | |
parent | 837ffa9699a9cba47ae7921d2876afaccc027133 (diff) |
upstream: Make dollar_expand variadic and pass a real va_list to
vdollar_percent_expand. Fixes build error on arm64 spotted by otto@.
OpenBSD-Commit-ID: 181910d7ae489f40ad609b4cf4a20f3d068a7279
-rw-r--r-- | misc.c | 15 | ||||
-rw-r--r-- | misc.h | 4 |
2 files changed, 14 insertions, 5 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.151 2020/05/29 09:02:44 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.152 2020/05/29 11:17:56 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -1207,13 +1207,22 @@ vdollar_percent_expand(int *parseerror, int dollar, int percent, #undef EXPAND_MAX_KEYS } +/* + * Expand only environment variables. + * Note that although this function is variadic like the other similar + * functions, any such arguments will be unused. + */ + char * -dollar_expand(int *parseerr, const char *string) +dollar_expand(int *parseerr, const char *string, ...) { char *ret; int err; + va_list ap; - ret = vdollar_percent_expand(&err, 1, 0, string, NULL); + va_start(ap, string); + ret = vdollar_percent_expand(&err, 1, 0, string, ap); + va_end(ap); if (parseerr != NULL) *parseerr = err; return ret; @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.86 2020/05/29 04:25:40 dtucker Exp $ */ +/* $OpenBSD: misc.h,v 1.87 2020/05/29 11:17:56 dtucker Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> @@ -69,7 +69,7 @@ long convtime(const char *); const char *fmt_timeframe(time_t t); char *tilde_expand_filename(const char *, uid_t); -char *dollar_expand(int *, const char *string); +char *dollar_expand(int *, const char *string, ...); char *percent_expand(const char *, ...) __attribute__((__sentinel__)); char *percent_dollar_expand(const char *, ...) __attribute__((__sentinel__)); char *tohex(const void *, size_t); |