Added patch to have --help and --usage translatable (#734434)
This commit is contained in:
parent
541f99cd6e
commit
2d86031502
107
popt-1.16-help.patch
Normal file
107
popt-1.16-help.patch
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
Patch initially by Miloslav Trmač <mitr@redhat.com> and revised by Akira Tagoh
|
||||||
|
<tagoh@redhat.com> for popt <= 1.16 which fixes the problem that help messages
|
||||||
|
for --help and --usage seem not translatable. There already was some i18n support
|
||||||
|
for autohelp in popt.c, but not in popthelp.c, where it actually matters.
|
||||||
|
|
||||||
|
See https://bugzilla.redhat.com/show_bug.cgi?id=734434 for further details, please.
|
||||||
|
|
||||||
|
This patch was proposed to upstream: http://rpm5.org/community/popt-devel/0287.html
|
||||||
|
|
||||||
|
--- popt-1.16/popthelp.c 2009-08-28 09:06:33.000000000 +0900
|
||||||
|
+++ popt-1.16/popthelp.c.help 2014-01-08 12:04:00.888260244 +0900
|
||||||
|
@@ -89,7 +89,7 @@ static struct poptOption poptHelpOptions
|
||||||
|
{ "defaults", '\0', POPT_ARG_NONE, &show_option_defaults, 0,
|
||||||
|
N_("Display option defaults in message"), NULL },
|
||||||
|
#endif
|
||||||
|
- { "", '\0', 0, NULL, 0, N_("Terminate options"), NULL },
|
||||||
|
+ { NULL, '\0', 0, NULL, 0, N_("Terminate options"), NULL },
|
||||||
|
POPT_TABLEEND
|
||||||
|
} ;
|
||||||
|
|
||||||
|
@@ -527,8 +527,11 @@ static size_t maxArgWidth(const struct p
|
||||||
|
if (opt != NULL)
|
||||||
|
while (opt->longName || opt->shortName || opt->arg) {
|
||||||
|
if (poptArgType(opt) == POPT_ARG_INCLUDE_TABLE) {
|
||||||
|
- if (opt->arg) /* XXX program error */
|
||||||
|
- len = maxArgWidth(opt->arg, translation_domain);
|
||||||
|
+ void * arg = opt->arg;
|
||||||
|
+ /* XXX sick hack to preserve pretense of ABI. */
|
||||||
|
+ if (arg == poptHelpOptions) arg = poptHelpOptionsI18N;
|
||||||
|
+ if (arg) /* XXX program error */
|
||||||
|
+ len = maxArgWidth(arg, translation_domain);
|
||||||
|
if (len > max) max = len;
|
||||||
|
} else if (!F_ISSET(opt, DOC_HIDDEN)) {
|
||||||
|
len = sizeof(" ")-1;
|
||||||
|
@@ -619,19 +622,22 @@ static void singleTableHelp(poptContext
|
||||||
|
|
||||||
|
if (table != NULL)
|
||||||
|
for (opt = table; opt->longName || opt->shortName || opt->arg; opt++) {
|
||||||
|
+ void * arg = opt->arg;
|
||||||
|
if (poptArgType(opt) != POPT_ARG_INCLUDE_TABLE)
|
||||||
|
continue;
|
||||||
|
- sub_transdom = getTableTranslationDomain(opt->arg);
|
||||||
|
+ /* XXX sick hack to preserve pretense of ABI. */
|
||||||
|
+ if (arg == poptHelpOptions) arg = poptHelpOptionsI18N;
|
||||||
|
+ sub_transdom = getTableTranslationDomain(arg);
|
||||||
|
if (sub_transdom == NULL)
|
||||||
|
sub_transdom = translation_domain;
|
||||||
|
|
||||||
|
/* If no popt aliases/execs, skip poptAliasOption processing. */
|
||||||
|
- if (opt->arg == poptAliasOptions && !(con->numAliases || con->numExecs))
|
||||||
|
+ if (arg == poptAliasOptions && !(con->numAliases || con->numExecs))
|
||||||
|
continue;
|
||||||
|
if (opt->descrip)
|
||||||
|
xx = POPT_fprintf(fp, "\n%s\n", D_(sub_transdom, opt->descrip));
|
||||||
|
|
||||||
|
- singleTableHelp(con, fp, opt->arg, columns, sub_transdom);
|
||||||
|
+ singleTableHelp(con, fp, arg, columns, sub_transdom);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -808,22 +814,25 @@ static size_t singleTableUsage(poptConte
|
||||||
|
translation_domain = (const char *)opt->arg;
|
||||||
|
} else
|
||||||
|
if (poptArgType(opt) == POPT_ARG_INCLUDE_TABLE) {
|
||||||
|
+ void * arg = opt->arg;
|
||||||
|
+ /* XXX sick hack to preserve pretense of ABI. */
|
||||||
|
+ if (arg == poptHelpOptions) arg = poptHelpOptionsI18N;
|
||||||
|
if (done) {
|
||||||
|
int i = 0;
|
||||||
|
if (done->opts != NULL)
|
||||||
|
for (i = 0; i < done->nopts; i++) {
|
||||||
|
const void * that = done->opts[i];
|
||||||
|
- if (that == NULL || that != opt->arg)
|
||||||
|
+ if (that == NULL || that != arg)
|
||||||
|
/*@innercontinue@*/ continue;
|
||||||
|
/*@innerbreak@*/ break;
|
||||||
|
}
|
||||||
|
/* Skip if this table has already been processed. */
|
||||||
|
- if (opt->arg == NULL || i < done->nopts)
|
||||||
|
+ if (arg == NULL || i < done->nopts)
|
||||||
|
continue;
|
||||||
|
if (done->opts != NULL && done->nopts < done->maxopts)
|
||||||
|
- done->opts[done->nopts++] = (const void *) opt->arg;
|
||||||
|
+ done->opts[done->nopts++] = (const void *) arg;
|
||||||
|
}
|
||||||
|
- columns->cur = singleTableUsage(con, fp, columns, opt->arg,
|
||||||
|
+ columns->cur = singleTableUsage(con, fp, columns, arg,
|
||||||
|
translation_domain, done);
|
||||||
|
} else
|
||||||
|
if ((opt->longName || opt->shortName) && !F_ISSET(opt, DOC_HIDDEN)) {
|
||||||
|
@@ -864,9 +873,13 @@ static size_t showShortOptions(const str
|
||||||
|
if (!strchr(s, opt->shortName) && isprint((int)opt->shortName)
|
||||||
|
&& opt->shortName != ' ')
|
||||||
|
s[strlen(s)] = opt->shortName;
|
||||||
|
- } else if (poptArgType(opt) == POPT_ARG_INCLUDE_TABLE)
|
||||||
|
- if (opt->arg) /* XXX program error */
|
||||||
|
- len = showShortOptions(opt->arg, fp, s);
|
||||||
|
+ } else if (poptArgType(opt) == POPT_ARG_INCLUDE_TABLE) {
|
||||||
|
+ void * arg = opt->arg;
|
||||||
|
+ /* XXX sick hack to preserve pretense of ABI. */
|
||||||
|
+ if (arg == poptHelpOptions) arg = poptHelpOptionsI18N;
|
||||||
|
+ if (arg) /* XXX program error */
|
||||||
|
+ len = showShortOptions(arg, fp, s);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* On return to top level, print the short options, return print length. */
|
@ -1,7 +1,7 @@
|
|||||||
Summary: C library for parsing command line parameters
|
Summary: C library for parsing command line parameters
|
||||||
Name: popt
|
Name: popt
|
||||||
Version: 1.16
|
Version: 1.16
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
URL: http://www.rpm5.org/
|
URL: http://www.rpm5.org/
|
||||||
@ -9,6 +9,7 @@ Source: http://www.rpm5.org/files/%{name}/%{name}-%{version}.tar.gz
|
|||||||
Patch0: popt-1.16-pkgconfig.patch
|
Patch0: popt-1.16-pkgconfig.patch
|
||||||
Patch1: popt-1.16-execfail.patch
|
Patch1: popt-1.16-execfail.patch
|
||||||
Patch2: popt-1.16-man-page.patch
|
Patch2: popt-1.16-man-page.patch
|
||||||
|
Patch3: popt-1.16-help.patch
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
@ -46,6 +47,7 @@ Install it if you need to link statically with libpopt.
|
|||||||
%patch0 -p1 -b .pkgconfig
|
%patch0 -p1 -b .pkgconfig
|
||||||
%patch1 -p1 -b .execfail
|
%patch1 -p1 -b .execfail
|
||||||
%patch2 -p1 -b .man-page
|
%patch2 -p1 -b .man-page
|
||||||
|
%patch3 -p1 -b .help
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if 0%{?fedora} < 17 && 0%{?rhel} < 7
|
%if 0%{?fedora} < 17 && 0%{?rhel} < 7
|
||||||
@ -110,6 +112,9 @@ make check
|
|||||||
%{_libdir}/libpopt.a
|
%{_libdir}/libpopt.a
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 08 2014 Robert Scheck <robert@fedoraproject.org> 1.16-2
|
||||||
|
- Added patch to have --help and --usage translatable (#734434)
|
||||||
|
|
||||||
* Sun Nov 24 2013 Robert Scheck <robert@fedoraproject.org> 1.16-1
|
* Sun Nov 24 2013 Robert Scheck <robert@fedoraproject.org> 1.16-1
|
||||||
- Upgrade to 1.16 (#448286, #999377)
|
- Upgrade to 1.16 (#448286, #999377)
|
||||||
- Tight run-time dependencies between sub-packages via %%{?_isa}
|
- Tight run-time dependencies between sub-packages via %%{?_isa}
|
||||||
|
Loading…
Reference in New Issue
Block a user