X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fargp-help.c;h=e7baaf9ff888c08f4b3e03f7071f093e92c4a323;hb=b7ba0cb08a894c8a738c8cb3b4039bc32c2c4661;hp=a83a356e7e1b838e33ace7dfc7d0acdcd13a46e2;hpb=1c54588f7ba17f15a1fd60474b9898224bbe0111;p=gnulib.git diff --git a/lib/argp-help.c b/lib/argp-help.c index a83a356e7..e7baaf9ff 100644 --- a/lib/argp-help.c +++ b/lib/argp-help.c @@ -1476,6 +1476,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state, const char *text; const char *inp_text; size_t inp_text_len = 0; + const char *trans_text; void *input = 0; int anything = 0; const struct argp_child *child = argp->children; @@ -1494,10 +1495,11 @@ argp_doc (const struct argp *argp, const struct argp_state *state, } } else - inp_text = dgettext (argp->argp_domain, post ? 0 : argp->doc); + inp_text = post ? 0 : argp->doc; + trans_text = inp_text ? dgettext (argp->argp_domain, inp_text) : NULL; } else - inp_text = 0; + trans_text = inp_text = 0; if (argp->help_filter) /* We have to filter the doc strings. */ @@ -1507,10 +1509,10 @@ argp_doc (const struct argp *argp, const struct argp_state *state, (*argp->help_filter) (post ? ARGP_KEY_HELP_POST_DOC : ARGP_KEY_HELP_PRE_DOC, - inp_text, input); + trans_text, input); } else - text = (const char *) inp_text; + text = (const char *) trans_text; if (text) { @@ -1525,7 +1527,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state, anything = 1; } - if (text && text != inp_text) + if (text && text != trans_text) free ((char *) text); /* Free TEXT returned from the help filter. */ if (inp_text && inp_text_len)