diff --git a/popt-1.13-popt_fprintf.diff b/popt-1.13-popt_fprintf.diff new file mode 100644 index 0000000..fc9265f --- /dev/null +++ b/popt-1.13-popt_fprintf.diff @@ -0,0 +1,119 @@ +Patch by Jeff Johnson for popt >= 1.13, which reverts all POPT_fprintf() +usage cases to avoid broken umlauts in --help output at some non-UTF8 locales. It should +not break anything, just restore the behaviour of popt 1.12 again to not introduce a new +regression. Clueless modified by Robert Scheck to hide the last found +two locale regression as well. + +--- popt-1.13/popthelp.c 2007-11-04 16:46:25.000000000 +0100 ++++ popt-1.13/popthelp.c.popt_fprintf 2007-12-30 22:10:24.000000000 +0100 +@@ -281,7 +281,6 @@ + char * left; + size_t nb = maxLeftCol + 1; + int displaypad = 0; +- int xx; + + /* Make sure there's more than enough room in target buffer. */ + if (opt->longName) nb += strlen(opt->longName); +@@ -406,9 +405,9 @@ + } + + if (help) +- xx = POPT_fprintf(fp," %-*s ", (int)(maxLeftCol+displaypad), left); ++ fprintf(fp," %-*s ", (int)(maxLeftCol+displaypad), left); + else { +- xx = POPT_fprintf(fp," %s\n", left); ++ fprintf(fp," %s\n", left); + goto out; + } + +@@ -428,18 +427,19 @@ + if (ch == help) break; /* give up */ + while (ch > (help + 1) && _isspaceptr(ch)) + ch = POPT_prev_char (ch); +- ch++; ++ ch = POPT_next_char(ch); + + sprintf(format, "%%.%ds\n%%%ds", (int) (ch - help), (int) indentLength); + /*@-formatconst@*/ +- xx = POPT_fprintf(fp, format, help, " "); ++ fprintf(fp, format, help, " "); + /*@=formatconst@*/ + help = ch; +- while (_isspaceptr(help) && *help) help++; ++ while (_isspaceptr(help) && *help) ++ help = POPT_next_char(help); + helpLength = strlen(help); + } + +- if (helpLength) xx = POPT_fprintf(fp, "%s\n", help); ++ if (helpLength) fprintf(fp, "%s\n", help); + help = NULL; + + out: +@@ -553,7 +553,6 @@ + { + const struct poptOption * opt; + const char *sub_transdom; +- int xx; + + if (table == poptAliasOptions) { + itemHelp(fp, con->aliases, con->numAliases, columns, NULL); +@@ -577,7 +576,7 @@ + sub_transdom = translation_domain; + + if (opt->descrip) +- xx = POPT_fprintf(fp, "\n%s\n", D_(sub_transdom, opt->descrip)); ++ fprintf(fp, "\n%s\n", D_(sub_transdom, opt->descrip)); + + singleTableHelp(con, fp, opt->arg, columns, sub_transdom); + } +@@ -767,7 +766,7 @@ + translation_domain = (const char *)opt->arg; + } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) { + if (done) { +- int i; ++ int i = done->nopts; + if (done->opts != NULL) + for (i = 0; i < done->nopts; i++) { + const void * that = done->opts[i]; +--- popt-1.13/poptint.c 2007-11-04 16:56:24.000000000 +0100 ++++ popt-1.13/poptint.c.popt_fprintf 2007-12-30 22:10:24.000000000 +0100 +@@ -124,6 +124,18 @@ + } + } + ++char * ++POPT_next_char (const char *str) ++{ ++ char *p = (char *)str; ++ ++ while (1) { ++ p++; ++ if ((*p & 0xc0) != (char)0x80) ++ return (char *)p; ++ } ++} ++ + int + POPT_fprintf (FILE* stream, const char *format, ...) + { +--- popt-1.13/poptint.h 2007-12-11 19:02:29.000000000 +0100 ++++ popt-1.13/poptint.h.popt_fprintf 2007-12-30 22:10:24.000000000 +0100 +@@ -144,11 +144,14 @@ + #endif + #endif + ++char *POPT_prev_char (/*@returned@*/ const char *str) ++ /*@*/; ++ ++char *POPT_next_char (/*@returned@*/ const char *str) ++ /*@*/; ++ + int POPT_fprintf (FILE* stream, const char *format, ...) + /*@globals fileSystem @*/ + /*@modifies stream, fileSystem @*/; + +-char *POPT_prev_char (/*@returned@*/ const char *str) +- /*@*/; +- + #endif diff --git a/popt-1.13.tar.gz b/popt-1.13.tar.gz new file mode 100644 index 0000000..d6819e6 --- /dev/null +++ b/popt-1.13.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:722b939b14e8b510bbb24e3109a075c7d86b33bec05cb583e76769df9ef2661f +size 682438 diff --git a/popt-1.16.tar.bz2 b/popt-1.16.tar.bz2 deleted file mode 100644 index 406104c..0000000 --- a/popt-1.16.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4a37d5a7615d36964fd637479840c9b18dec9456ccc9a345277b6eae3fd3de63 -size 595725 diff --git a/popt.changes b/popt.changes index 2404e1d..e6d38f7 100644 --- a/popt.changes +++ b/popt.changes @@ -1,30 +1,3 @@ -------------------------------------------------------------------- -Sun Sep 19 15:05:30 CEST 2010 - dimstar@opensuse.org - -- Update to version 1.16: - + Include xcode prject files in distributed tar ball - + Build system fixes - + Provide popt.pc - + Extended test suite - + Various fixes -- Changes from version 1.15: - + Build system fixes - + avoid displaying --[no]nofoo with POPT_ARGFLAG_TOGGLE. - + reserve a bit for --[no]opt prefix toggling. - + trim out escaped newline(s) from file content, other fixes. - + check/print argv[0] in --help for NULL. - + misc fixes -- Changes from version 1.14: - + Build system fixes - + permit "#define POPT_fprintf fprintf" to lose the malloc'ing - fprintf - + Many fixes. - + Updated translations -- Drop popt-1.13-popt_fprintf.diff: Should all be fixed upstream. - In case POPT_fprintf really still does not suffice, we can just - use "#define POPT_fprintf frptinf" and be set. The code is - prepared for this override. - ------------------------------------------------------------------- Mon Jun 28 06:38:35 UTC 2010 - jengelh@medozas.de diff --git a/popt.spec b/popt.spec index ee3289e..ac3ee88 100644 --- a/popt.spec +++ b/popt.spec @@ -1,5 +1,5 @@ # -# spec file for package popt (Version 1.16) +# spec file for package popt (Version 1.13) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -18,15 +18,16 @@ Name: popt -Version: 1.16 -Release: 1 +Version: 1.13 +Release: 7 #!BuildIgnore: rpmlint-Factory License: MIT Summary: A C library for parsing command line parameters Group: System Environment/Libraries Url: http://www.rpm5.org/ -Source: popt-%{version}.tar.bz2 +Source: popt-%{version}.tar.gz Source2: baselibs.conf +Patch: popt-1.13-popt_fprintf.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -67,6 +68,7 @@ API documentation of the popt library, too. %prep %setup -q +%patch -p1 %build %configure --libdir=/%{_lib} @@ -76,10 +78,6 @@ make %{?_smp_mflags} make DESTDIR=$RPM_BUILD_ROOT install rm -f $RPM_BUILD_ROOT/%_lib/libpopt.a rm -f $RPM_BUILD_ROOT/%_lib/libpopt.la -%if "%{_libdir}" != "%{_prefix}/lib" -install -d -m755 %{buildroot}/%{_libdir}/pkgconfig -mv %{buildroot}%{_prefix}/lib/pkgconfig/%{name}.pc %{buildroot}/%{_libdir}/pkgconfig/%{name}.pc -%endif %clean rm -rf $RPM_BUILD_ROOT @@ -100,6 +98,5 @@ rm -rf $RPM_BUILD_ROOT /%{_lib}/libpopt.so %{_includedir}/popt.h %{_mandir}/man3/popt.3* -%{_libdir}/pkgconfig/popt.pc %changelog