@@ -149,20 +149,24 @@ static char last_non_space_char(const char *s)
static void print_item(FILE *outfile, const struct trailer_item *item)
{
- char c;
-
- if (!item->token) {
- fprintf(outfile, "%s\n", item->value);
- return;
+ if (item->token) {
+ const char *tok = item->token;
+ const struct conf_info *conf = item->conf;
+ char c;
+
+ if (conf && conf->key)
+ tok = conf->key;
+
+ c = last_non_space_char(tok);
+ if (!c)
+ return;
+ if (strchr(separators, c))
+ fputs(tok, outfile);
+ else
+ fprintf(outfile, "%s%c ", tok, separators[0]);
}
- c = last_non_space_char(item->token);
- if (!c)
- return;
- if (strchr(separators, c))
- fprintf(outfile, "%s%s\n", item->token, item->value);
- else
- fprintf(outfile, "%s%c %s\n", item->token, separators[0], item->value);
+ fprintf(outfile, "%s\n", item->value);
}
static void print_all(FILE *outfile, struct list_head *head,
@@ -569,15 +573,6 @@ static void ensure_configured(void)
configured = 1;
}
-static const char *token_from_conf(const struct conf_info *conf, char *tok)
-{
- if (conf->key)
- return conf->key;
- if (tok)
- return tok;
- return conf->name;
-}
-
static int token_matches_conf(const char *tok, const struct conf_info *conf, size_t tok_len)
{
if (!strncasecmp(tok, conf->name, tok_len))
@@ -646,11 +641,8 @@ static void parse_trailer(struct strbuf *tok, struct strbuf *val,
list_for_each(pos, &conf_head) {
item = list_entry(pos, struct conf_info_item, list);
if (token_matches_conf(tok->buf, &item->conf, tok_len)) {
- char *tok_buf = strbuf_detach(tok, NULL);
if (conf)
*conf = &item->conf;
- strbuf_addstr(tok, token_from_conf(&item->conf, tok_buf));
- free(tok_buf);
break;
}
}
@@ -706,7 +698,7 @@ static void process_command_line_args(struct list_head *arg_head,
item = list_entry(pos, struct conf_info_item, list);
if (item->conf.command)
add_arg_item(arg_head,
- xstrdup(token_from_conf(&item->conf, NULL)),
+ xstrdup(item->conf.name),
xstrdup(""),
&item->conf, NULL);
}
); SAEximRunCond expanded to false Now that config is stored on the trailer_item it can easily be accessed print time and the changing of the token into the configured (canonical) spelling can be done print time instead. No functional change intended. Signed-off-by: Anders Waldenborg <anders@0x63.nu> --- trailer.c | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-)