rpms/popt/devel popt-1.13-popt_fprintf.patch, 1.2, 1.3 popt.spec, 1.3, 1.4 popt-1.13-textdomain.patch, 1.1, NONE

Robert Scheck (robert) fedora-extras-commits at redhat.com
Wed Feb 20 09:10:27 UTC 2008


Author: robert

Update of /cvs/pkgs/rpms/popt/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv27050

Modified Files:
	popt.spec 
Added Files:
	popt-1.13-popt_fprintf.patch 
Removed Files:
	popt-1.13-textdomain.patch 
Log Message:
Revert the broken bind_textdomain_codeset() patch (#433324)


popt-1.13-popt_fprintf.patch:

Index: popt-1.13-popt_fprintf.patch
===================================================================
RCS file: popt-1.13-popt_fprintf.patch
diff -N popt-1.13-popt_fprintf.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ popt-1.13-popt_fprintf.patch	20 Feb 2008 09:10:05 -0000	1.3
@@ -0,0 +1,119 @@
+Patch by Jeff Johnson <jbj at rpm5.org> 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 <robert at rpm5.org> 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


Index: popt.spec
===================================================================
RCS file: /cvs/pkgs/rpms/popt/devel/popt.spec,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- popt.spec	15 Feb 2008 22:10:41 -0000	1.3
+++ popt.spec	20 Feb 2008 09:10:05 -0000	1.4
@@ -1,15 +1,15 @@
 Summary:	C library for parsing command line parameters
 Name:		popt
 Version:	1.13
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	MIT
 Group:		System Environment/Libraries
 URL:		http://www.rpm5.org/
 Source0:	http://www.rpm5.org/files/%{name}/%{name}-%{version}.tar.gz
 Source1:	http://people.redhat.com/jantill/fedora/png-mtime.py
 Patch0:		popt-1.13-multilib.patch
-Patch1:		popt-1.13-textdomain.patch
-BuildRequires:	gettext, doxygen, graphviz
+Patch1:		popt-1.13-popt_fprintf.patch
+BuildRequires:	gettext, doxygen, graphviz, freefont
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 %description
@@ -44,7 +44,7 @@
 %prep
 %setup -q
 %patch0 -p1 -b .multilib
-%patch1 -p1 -b .textdomain
+%patch1 -p1 -b .popt_fprintf
 
 %build
 %configure --libdir=/%{_lib}
@@ -97,6 +97,9 @@
 %{_libdir}/libpopt.a
 
 %changelog
+* Wed Feb 20 2008 Robert Scheck <robert at fedoraproject.org> 1.13-3
+- Revert the broken bind_textdomain_codeset() patch (#433324)
+
 * Thu Feb 14 2008 Robert Scheck <robert at fedoraproject.org> 1.13-2
 - Added patch to work around missing bind_textdomain_codeset()
 


--- popt-1.13-textdomain.patch DELETED ---




More information about the fedora-extras-commits mailing list