rpms/util-linux/FC-4 util-linux-2.12p-cal-wide.patch, NONE, 1.1 util-linux-2.12p-col-EILSEQ.patch, NONE, 1.1 util-linux.spec, 1.87, 1.88

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Jan 2 17:02:32 UTC 2006


Author: kzak

Update of /cvs/dist/rpms/util-linux/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv1209

Modified Files:
	util-linux.spec 
Added Files:
	util-linux-2.12p-cal-wide.patch 
	util-linux-2.12p-col-EILSEQ.patch 
Log Message:
fix col and cal

util-linux-2.12p-cal-wide.patch:
 cal.c |   29 ++++++++++++-----------------
 1 files changed, 12 insertions(+), 17 deletions(-)

--- NEW FILE util-linux-2.12p-cal-wide.patch ---
--- util-linux-2.12p/misc-utils/cal.c.wide	2004-12-05 20:20:36.000000000 +0100
+++ util-linux-2.12p/misc-utils/cal.c	2006-01-02 15:13:50.000000000 +0100
@@ -368,7 +368,7 @@
   int i, wd;
 #ifdef ENABLE_WIDECHAR
   wchar_t day_headings_wc[22],j_day_headings_wc[29];
-  wchar_t wd_wc[10];
+  char *cur_dh = day_headings, *cur_j_dh = j_day_headings;
 #endif
 
   strcpy(day_headings,"");
@@ -385,30 +385,25 @@
 #endif
 
   for(i = 0 ; i < 7 ; i++ ) {
+     ssize_t space_left;
      wd = (i + week1stday) % 7;
 #ifdef ENABLE_WIDECHAR
-     mbstowcs(wd_wc,weekday(wd),10);
-     if (wcswidth(wd_wc,10) < 3)
-	     wcscat(j_day_headings_wc,L" ");
-     if (wcswidth(wd_wc,10) < 2) {
-	     wcscat(day_headings_wc, L" ");
-	     wcscat(j_day_headings_wc, L" ");
-     }
-     wcsncat(day_headings_wc,wd_wc,2);
-     wcsncat(j_day_headings_wc,wd_wc,3);
-     wcscat(day_headings_wc, L" ");
-     wcscat(j_day_headings_wc, L" ");
+     swprintf(day_headings_wc, sizeof(day_headings_wc)/sizeof(day_headings_wc[0]),
+		L"%1.2s ", weekday(wd));
+     swprintf(j_day_headings_wc, sizeof(j_day_headings_wc)/sizeof(j_day_headings_wc[0]),
+		L"%3.3s ", weekday(wd));
+     space_left = sizeof(day_headings)-(cur_dh-day_headings);
+     if(space_left <= 0) break;
+     cur_dh += wcstombs(cur_dh,day_headings_wc, space_left);
+     space_left = sizeof(j_day_headings)-(cur_j_dh-j_day_headings);
+     if(space_left <= 0) break;
+     cur_j_dh +=  wcstombs(cur_j_dh,j_day_headings_wc, space_left);
 #else
      sprintf(eos(day_headings), "%2.2s ", weekday(wd));
      sprintf(eos(j_day_headings), "%3.3s ", weekday(wd));
 #endif
   }
 
-#ifdef ENABLE_WIDECHAR
-  wcstombs(day_headings,day_headings_wc,sizeof(day_headings));
-  wcstombs(j_day_headings,j_day_headings_wc,sizeof(j_day_headings));
-#endif
-
   trim_trailing_spaces(day_headings);
   trim_trailing_spaces(j_day_headings);
 #undef weekday

util-linux-2.12p-col-EILSEQ.patch:
 col.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

--- NEW FILE util-linux-2.12p-col-EILSEQ.patch ---
--- util-linux-2.12p/text-utils/col.c.EILSEQ	2002-03-09 00:05:12.000000000 +0100
+++ util-linux-2.12p/text-utils/col.c	2006-01-02 18:00:06.000000000 +0100
@@ -128,6 +128,7 @@
 	int this_line;			/* line l points to */
 	int nflushd_lines;		/* number of lines that were flushed */
 	int adjust, opt, warned;
+	int ret = 0;
 
 	setlocale(LC_ALL, "");
 	bindtextdomain(PACKAGE, LOCALEDIR);
@@ -175,8 +176,15 @@
 	cur_line = max_line = nflushd_lines = this_line = 0;
 	cur_set = last_set = CS_NORMAL;
 	lines = l = alloc_line();
-
-	while ((ch = getwchar()) != WEOF) {
+	
+	while (feof(stdin)==0) {
+		errno = 0;
+		if ((ch = getwchar()) == WEOF) {
+			if (errno==EILSEQ)
+				perror("col");
+			ret = 1;
+			break;
+		}	
 		if (!iswgraph(ch)) {
 			switch (ch) {
 			case BS:		/* can't go back further */
@@ -332,7 +340,7 @@
 	flush_blanks();
 	if (ferror(stdout) || fclose(stdout))
 		return 1;
-	return 0;
+	return ret;
 }
 
 void flush_lines(int nflush)


Index: util-linux.spec
===================================================================
RCS file: /cvs/dist/rpms/util-linux/FC-4/util-linux.spec,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -r1.87 -r1.88
--- util-linux.spec	30 Sep 2005 14:08:50 -0000	1.87
+++ util-linux.spec	2 Jan 2006 17:02:14 -0000	1.88
@@ -150,6 +150,11 @@
 # 155559 - /usr/bin/floppy doesn't work with generic device
 Patch208: util-linux-2.12p-floppy-generic.patch
 
+# better wide chars usage in the cal command (based on old 'moremisc' patch)
+Patch209: util-linux-2.12p-cal-wide.patch
+# 176441: col truncates data
+Patch210: util-linux-2.12p-col-EILSEQ.patch
+
 # When adding patches, please make sure that it is easy to find out what bug # the 
 # patch fixes.
 ########### END upstreamable
@@ -285,6 +290,8 @@
 %patch206 -p1
 %patch207 -p1
 %patch208 -p1 -b .generic
+%patch209 -p1
+%patch210 -p1 -b .EILSEQ
 
 %build
 unset LINGUAS || :




More information about the fedora-cvs-commits mailing list