From amdmi3@amdmi3.ru  Thu Feb 23 21:16:41 2012
Return-Path: <amdmi3@amdmi3.ru>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7DDE1106566B
	for <freebsd-gnats-submit@freebsd.org>; Thu, 23 Feb 2012 21:16:41 +0000 (UTC)
	(envelope-from amdmi3@amdmi3.ru)
Received: from smtp.timeweb.ru (smtp.timeweb.ru [92.53.116.15])
	by mx1.freebsd.org (Postfix) with ESMTP id 108A48FC0A
	for <freebsd-gnats-submit@freebsd.org>; Thu, 23 Feb 2012 21:16:40 +0000 (UTC)
Received: from [213.148.20.85] (helo=hive.panopticon)
	by smtp.timeweb.ru with esmtpsa (TLSv1:CAMELLIA256-SHA:256)
	(Exim 4.76)
	(envelope-from <amdmi3@amdmi3.ru>)
	id 1S0g1m-00035M-U6
	for FreeBSD-gnats-submit@freebsd.org; Fri, 24 Feb 2012 01:16:38 +0400
Received: from hades.panopticon (hades.panopticon [192.168.0.32])
	by hive.panopticon (Postfix) with ESMTP id 85C31B84D
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 24 Feb 2012 01:16:38 +0400 (MSK)
Received: by hades.panopticon (Postfix, from userid 1000)
	id 7693EEE6; Fri, 24 Feb 2012 01:16:38 +0400 (MSK)
Message-Id: <20120223211638.7693EEE6@hades.panopticon>
Date: Fri, 24 Feb 2012 01:16:38 +0400 (MSK)
From: Dmitry Marakasov <amdmi3@FreeBSD.org>
Reply-To: Dmitry Marakasov <amdmi3@FreeBSD.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [patch] wall(1): add multibyte character support
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         165429
>Category:       bin
>Synopsis:       [patch] wall(1): add multibyte character support
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    glebius
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Feb 23 21:20:11 UTC 2012
>Closed-Date:    Sat Apr 14 09:49:03 UTC 2012
>Last-Modified:  Sat Apr 14 09:50:14 UTC 2012
>Originator:     Dmitry Marakasov
>Release:        FreeBSD 9.0-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD hades.panopticon 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 10 01:33:18 MSK 2012 root@hades.panopticon:/usr/obj/usr/src/sys/HADES amd64


>Description:
wall(1) doesn't support multibyte characters. Fix it in a similar way to write(1) (see bin/164317 or SVN rev 231586).

>How-To-Repeat:
>Fix:

--- wall.patch begins here ---
diff --git usr.bin/wall/wall.1 usr.bin/wall/wall.1
index 1c2d067..4fa82dd 100644
--- usr.bin/wall/wall.1
+++ usr.bin/wall/wall.1
@@ -28,7 +28,7 @@
 .\"     @(#)wall.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd July 17, 2004
+.Dd February 24, 2012
 .Dt WALL 1
 .Os
 .Sh NAME
@@ -73,7 +73,3 @@ setting is used to determine which characters are safe to write to a
 terminal, not the receiver's (which
 .Nm
 has no way of knowing).
-.Pp
-The
-.Nm
-utility does not recognize multibyte characters.
diff --git usr.bin/wall/wall.c usr.bin/wall/wall.c
index c3aa323..dafd448 100644
--- usr.bin/wall/wall.c
+++ usr.bin/wall/wall.c
@@ -62,6 +62,8 @@ static const char sccsid[] = "@(#)wall.c	8.2 (Berkeley) 11/16/93";
 #include <time.h>
 #include <unistd.h>
 #include <utmpx.h>
+#include <wchar.h>
+#include <wctype.h>
 
 #include "ttymsg.h"
 
@@ -185,14 +187,15 @@ void
 makemsg(char *fname)
 {
 	int cnt;
-	unsigned char ch;
+	wchar_t ch;
 	struct tm *lt;
 	struct passwd *pw;
 	struct stat sbuf;
 	time_t now;
 	FILE *fp;
 	int fd;
-	char *p, hostname[MAXHOSTNAMELEN], lbuf[256], tmpname[64];
+	char hostname[MAXHOSTNAMELEN], tmpname[64];
+	wchar_t *p, *tmp, lbuf[256], codebuf[13];
 	const char *tty;
 	const char *whom;
 	gid_t egid;
@@ -220,78 +223,61 @@ makemsg(char *fname)
 		 * Which means that we may leave a non-blank character
 		 * in column 80, but that can't be helped.
 		 */
-		(void)fprintf(fp, "\r%79s\r\n", " ");
-		(void)snprintf(lbuf, sizeof(lbuf), 
-		    "Broadcast Message from %s@%s",
+		(void)fwprintf(fp, L"\r%79s\r\n", " ");
+		(void)swprintf(lbuf, sizeof(lbuf)/sizeof(wchar_t),
+		    L"Broadcast Message from %s@%s",
 		    whom, hostname);
-		(void)fprintf(fp, "%-79.79s\007\007\r\n", lbuf);
-		(void)snprintf(lbuf, sizeof(lbuf),
-		    "        (%s) at %d:%02d %s...", tty,
+		(void)fwprintf(fp, L"%-79.79S\007\007\r\n", lbuf);
+		(void)swprintf(lbuf, sizeof(lbuf)/sizeof(wchar_t),
+		    L"        (%s) at %d:%02d %s...", tty,
 		    lt->tm_hour, lt->tm_min, lt->tm_zone);
-		(void)fprintf(fp, "%-79.79s\r\n", lbuf);
+		(void)fwprintf(fp, L"%-79.79S\r\n", lbuf);
 	}
-	(void)fprintf(fp, "%79s\r\n", " ");
+	(void)fwprintf(fp, L"%79s\r\n", " ");
 
 	if (fname) {
 		egid = getegid();
 		setegid(getgid());
-	       	if (freopen(fname, "r", stdin) == NULL)
+		if (freopen(fname, "r", stdin) == NULL)
 			err(1, "can't read %s", fname);
 		setegid(egid);
 	}
 	cnt = 0;
-	while (fgets(lbuf, sizeof(lbuf), stdin)) {
-		for (p = lbuf; (ch = *p) != '\0'; ++p, ++cnt) {
-			if (ch == '\r') {
-				putc('\r', fp);
+	while (fgetws(lbuf, sizeof(lbuf)/sizeof(wchar_t), stdin)) {
+		for (p = lbuf; (ch = *p) != L'\0'; ++p, ++cnt) {
+			if (ch == L'\r') {
+				putwc(L'\r', fp);
 				cnt = 0;
 				continue;
-			} else if (ch == '\n') {
+			} else if (ch == L'\n') {
 				for (; cnt < 79; ++cnt)
-					putc(' ', fp);
-				putc('\r', fp);
-				putc('\n', fp);
+					putwc(L' ', fp);
+				putwc(L'\r', fp);
+				putwc(L'\n', fp);
 				break;
 			}
 			if (cnt == 79) {
-				putc('\r', fp);
-				putc('\n', fp);
+				putwc(L'\r', fp);
+				putwc(L'\n', fp);
 				cnt = 0;
 			}
-			if (((ch & 0x80) && ch < 0xA0) ||
-				   /* disable upper controls */
-				   (!isprint(ch) && !isspace(ch) &&
-				    ch != '\a' && ch != '\b')
-				  ) {
-				if (ch & 0x80) {
-					ch &= 0x7F;
-					putc('M', fp);
+			if (iswprint(ch) || iswspace(ch) || ch == L'\a' || ch == L'\b') {
+				putwc(ch, fp);
+			} else {
+				(void)swprintf(codebuf, sizeof(codebuf)/sizeof(wchar_t), L"<0x%X>", ch);
+				for (tmp = codebuf; *tmp != L'\0'; ++tmp) {
+					putwc(*tmp, fp);
 					if (++cnt == 79) {
-						putc('\r', fp);
-						putc('\n', fp);
-						cnt = 0;
-					}
-					putc('-', fp);
-					if (++cnt == 79) {
-						putc('\r', fp);
-						putc('\n', fp);
-						cnt = 0;
-					}
-				}
-				if (iscntrl(ch)) {
-					ch ^= 040;
-					putc('^', fp);
-					if (++cnt == 79) {
-						putc('\r', fp);
-						putc('\n', fp);
+						putwc(L'\r', fp);
+						putwc(L'\n', fp);
 						cnt = 0;
 					}
 				}
+				--cnt;
 			}
-			putc(ch, fp);
 		}
 	}
-	(void)fprintf(fp, "%79s\r\n", " ");
+	(void)fwprintf(fp, L"%79s\r\n", " ");
 	rewind(fp);
 
 	if (fstat(fd, &sbuf))
--- wall.patch ends here ---

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->eadler 
Responsible-Changed-By: eadler 
Responsible-Changed-When: Thu Feb 23 22:58:18 UTC 2012 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=165429 
State-Changed-From-To: open->patched 
State-Changed-By: glebius 
State-Changed-When: Wed Mar 21 08:03:14 UTC 2012 
State-Changed-Why:  
Committed to head/, thanks! 


Responsible-Changed-From-To: eadler->glebius 
Responsible-Changed-By: glebius 
Responsible-Changed-When: Wed Mar 21 08:03:14 UTC 2012 
Responsible-Changed-Why:  
Committed to head/, thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=165429 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/165429: commit references a PR
Date: Wed, 21 Mar 2012 08:03:23 +0000 (UTC)

 Author: glebius
 Date: Wed Mar 21 08:03:07 2012
 New Revision: 233269
 URL: http://svn.freebsd.org/changeset/base/233269
 
 Log:
   Add multibyte char support.
   
   PR:		165429
   Submitted by:	amdmi3
 
 Modified:
   head/usr.bin/wall/wall.1
   head/usr.bin/wall/wall.c
 
 Modified: head/usr.bin/wall/wall.1
 ==============================================================================
 --- head/usr.bin/wall/wall.1	Wed Mar 21 07:49:13 2012	(r233268)
 +++ head/usr.bin/wall/wall.1	Wed Mar 21 08:03:07 2012	(r233269)
 @@ -28,7 +28,7 @@
  .\"     @(#)wall.1	8.1 (Berkeley) 6/6/93
  .\" $FreeBSD$
  .\"
 -.Dd July 17, 2004
 +.Dd February 24, 2012
  .Dt WALL 1
  .Os
  .Sh NAME
 @@ -73,7 +73,3 @@ setting is used to determine which chara
  terminal, not the receiver's (which
  .Nm
  has no way of knowing).
 -.Pp
 -The
 -.Nm
 -utility does not recognize multibyte characters.
 
 Modified: head/usr.bin/wall/wall.c
 ==============================================================================
 --- head/usr.bin/wall/wall.c	Wed Mar 21 07:49:13 2012	(r233268)
 +++ head/usr.bin/wall/wall.c	Wed Mar 21 08:03:07 2012	(r233269)
 @@ -62,6 +62,8 @@ static const char sccsid[] = "@(#)wall.c
  #include <time.h>
  #include <unistd.h>
  #include <utmpx.h>
 +#include <wchar.h>
 +#include <wctype.h>
  
  #include "ttymsg.h"
  
 @@ -185,14 +187,15 @@ void
  makemsg(char *fname)
  {
  	int cnt;
 -	unsigned char ch;
 +	wchar_t ch;
  	struct tm *lt;
  	struct passwd *pw;
  	struct stat sbuf;
  	time_t now;
  	FILE *fp;
  	int fd;
 -	char *p, hostname[MAXHOSTNAMELEN], lbuf[256], tmpname[64];
 +	char hostname[MAXHOSTNAMELEN], tmpname[64];
 +	wchar_t *p, *tmp, lbuf[256], codebuf[13];
  	const char *tty;
  	const char *whom;
  	gid_t egid;
 @@ -220,78 +223,61 @@ makemsg(char *fname)
  		 * Which means that we may leave a non-blank character
  		 * in column 80, but that can't be helped.
  		 */
 -		(void)fprintf(fp, "\r%79s\r\n", " ");
 -		(void)snprintf(lbuf, sizeof(lbuf), 
 -		    "Broadcast Message from %s@%s",
 +		(void)fwprintf(fp, L"\r%79s\r\n", " ");
 +		(void)swprintf(lbuf, sizeof(lbuf)/sizeof(wchar_t),
 +		    L"Broadcast Message from %s@%s",
  		    whom, hostname);
 -		(void)fprintf(fp, "%-79.79s\007\007\r\n", lbuf);
 -		(void)snprintf(lbuf, sizeof(lbuf),
 -		    "        (%s) at %d:%02d %s...", tty,
 +		(void)fwprintf(fp, L"%-79.79S\007\007\r\n", lbuf);
 +		(void)swprintf(lbuf, sizeof(lbuf)/sizeof(wchar_t),
 +		    L"        (%s) at %d:%02d %s...", tty,
  		    lt->tm_hour, lt->tm_min, lt->tm_zone);
 -		(void)fprintf(fp, "%-79.79s\r\n", lbuf);
 +		(void)fwprintf(fp, L"%-79.79S\r\n", lbuf);
  	}
 -	(void)fprintf(fp, "%79s\r\n", " ");
 +	(void)fwprintf(fp, L"%79s\r\n", " ");
  
  	if (fname) {
  		egid = getegid();
  		setegid(getgid());
 -	       	if (freopen(fname, "r", stdin) == NULL)
 +		if (freopen(fname, "r", stdin) == NULL)
  			err(1, "can't read %s", fname);
  		setegid(egid);
  	}
  	cnt = 0;
 -	while (fgets(lbuf, sizeof(lbuf), stdin)) {
 -		for (p = lbuf; (ch = *p) != '\0'; ++p, ++cnt) {
 -			if (ch == '\r') {
 -				putc('\r', fp);
 +	while (fgetws(lbuf, sizeof(lbuf)/sizeof(wchar_t), stdin)) {
 +		for (p = lbuf; (ch = *p) != L'\0'; ++p, ++cnt) {
 +			if (ch == L'\r') {
 +				putwc(L'\r', fp);
  				cnt = 0;
  				continue;
 -			} else if (ch == '\n') {
 +			} else if (ch == L'\n') {
  				for (; cnt < 79; ++cnt)
 -					putc(' ', fp);
 -				putc('\r', fp);
 -				putc('\n', fp);
 +					putwc(L' ', fp);
 +				putwc(L'\r', fp);
 +				putwc(L'\n', fp);
  				break;
  			}
  			if (cnt == 79) {
 -				putc('\r', fp);
 -				putc('\n', fp);
 +				putwc(L'\r', fp);
 +				putwc(L'\n', fp);
  				cnt = 0;
  			}
 -			if (((ch & 0x80) && ch < 0xA0) ||
 -				   /* disable upper controls */
 -				   (!isprint(ch) && !isspace(ch) &&
 -				    ch != '\a' && ch != '\b')
 -				  ) {
 -				if (ch & 0x80) {
 -					ch &= 0x7F;
 -					putc('M', fp);
 +			if (iswprint(ch) || iswspace(ch) || ch == L'\a' || ch == L'\b') {
 +				putwc(ch, fp);
 +			} else {
 +				(void)swprintf(codebuf, sizeof(codebuf)/sizeof(wchar_t), L"<0x%X>", ch);
 +				for (tmp = codebuf; *tmp != L'\0'; ++tmp) {
 +					putwc(*tmp, fp);
  					if (++cnt == 79) {
 -						putc('\r', fp);
 -						putc('\n', fp);
 -						cnt = 0;
 -					}
 -					putc('-', fp);
 -					if (++cnt == 79) {
 -						putc('\r', fp);
 -						putc('\n', fp);
 -						cnt = 0;
 -					}
 -				}
 -				if (iscntrl(ch)) {
 -					ch ^= 040;
 -					putc('^', fp);
 -					if (++cnt == 79) {
 -						putc('\r', fp);
 -						putc('\n', fp);
 +						putwc(L'\r', fp);
 +						putwc(L'\n', fp);
  						cnt = 0;
  					}
  				}
 +				--cnt;
  			}
 -			putc(ch, fp);
  		}
  	}
 -	(void)fprintf(fp, "%79s\r\n", " ");
 +	(void)fwprintf(fp, L"%79s\r\n", " ");
  	rewind(fp);
  
  	if (fstat(fd, &sbuf))
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: glebius 
State-Changed-When: Sat Apr 14 09:48:52 UTC 2012 
State-Changed-Why:  
Merged to stable/9. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=165429 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/165429: commit references a PR
Date: Sat, 14 Apr 2012 09:49:08 +0000 (UTC)

 Author: glebius
 Date: Sat Apr 14 09:48:52 2012
 New Revision: 234275
 URL: http://svn.freebsd.org/changeset/base/234275
 
 Log:
   Merge 233269:
     Add multibyte char support.
   
     PR:           165429
     Submitted by: amdmi3
 
 Modified:
   stable/9/usr.bin/wall/wall.1
   stable/9/usr.bin/wall/wall.c
 Directory Properties:
   stable/9/usr.bin/wall/   (props changed)
 
 Modified: stable/9/usr.bin/wall/wall.1
 ==============================================================================
 --- stable/9/usr.bin/wall/wall.1	Sat Apr 14 09:43:58 2012	(r234274)
 +++ stable/9/usr.bin/wall/wall.1	Sat Apr 14 09:48:52 2012	(r234275)
 @@ -28,7 +28,7 @@
  .\"     @(#)wall.1	8.1 (Berkeley) 6/6/93
  .\" $FreeBSD$
  .\"
 -.Dd July 17, 2004
 +.Dd February 24, 2012
  .Dt WALL 1
  .Os
  .Sh NAME
 @@ -73,7 +73,3 @@ setting is used to determine which chara
  terminal, not the receiver's (which
  .Nm
  has no way of knowing).
 -.Pp
 -The
 -.Nm
 -utility does not recognize multibyte characters.
 
 Modified: stable/9/usr.bin/wall/wall.c
 ==============================================================================
 --- stable/9/usr.bin/wall/wall.c	Sat Apr 14 09:43:58 2012	(r234274)
 +++ stable/9/usr.bin/wall/wall.c	Sat Apr 14 09:48:52 2012	(r234275)
 @@ -62,6 +62,8 @@ static const char sccsid[] = "@(#)wall.c
  #include <time.h>
  #include <unistd.h>
  #include <utmpx.h>
 +#include <wchar.h>
 +#include <wctype.h>
  
  #include "ttymsg.h"
  
 @@ -185,14 +187,15 @@ void
  makemsg(char *fname)
  {
  	int cnt;
 -	unsigned char ch;
 +	wchar_t ch;
  	struct tm *lt;
  	struct passwd *pw;
  	struct stat sbuf;
  	time_t now;
  	FILE *fp;
  	int fd;
 -	char *p, hostname[MAXHOSTNAMELEN], lbuf[256], tmpname[64];
 +	char hostname[MAXHOSTNAMELEN], tmpname[64];
 +	wchar_t *p, *tmp, lbuf[256], codebuf[13];
  	const char *tty;
  	const char *whom;
  	gid_t egid;
 @@ -220,78 +223,61 @@ makemsg(char *fname)
  		 * Which means that we may leave a non-blank character
  		 * in column 80, but that can't be helped.
  		 */
 -		(void)fprintf(fp, "\r%79s\r\n", " ");
 -		(void)snprintf(lbuf, sizeof(lbuf), 
 -		    "Broadcast Message from %s@%s",
 +		(void)fwprintf(fp, L"\r%79s\r\n", " ");
 +		(void)swprintf(lbuf, sizeof(lbuf)/sizeof(wchar_t),
 +		    L"Broadcast Message from %s@%s",
  		    whom, hostname);
 -		(void)fprintf(fp, "%-79.79s\007\007\r\n", lbuf);
 -		(void)snprintf(lbuf, sizeof(lbuf),
 -		    "        (%s) at %d:%02d %s...", tty,
 +		(void)fwprintf(fp, L"%-79.79S\007\007\r\n", lbuf);
 +		(void)swprintf(lbuf, sizeof(lbuf)/sizeof(wchar_t),
 +		    L"        (%s) at %d:%02d %s...", tty,
  		    lt->tm_hour, lt->tm_min, lt->tm_zone);
 -		(void)fprintf(fp, "%-79.79s\r\n", lbuf);
 +		(void)fwprintf(fp, L"%-79.79S\r\n", lbuf);
  	}
 -	(void)fprintf(fp, "%79s\r\n", " ");
 +	(void)fwprintf(fp, L"%79s\r\n", " ");
  
  	if (fname) {
  		egid = getegid();
  		setegid(getgid());
 -	       	if (freopen(fname, "r", stdin) == NULL)
 +		if (freopen(fname, "r", stdin) == NULL)
  			err(1, "can't read %s", fname);
  		setegid(egid);
  	}
  	cnt = 0;
 -	while (fgets(lbuf, sizeof(lbuf), stdin)) {
 -		for (p = lbuf; (ch = *p) != '\0'; ++p, ++cnt) {
 -			if (ch == '\r') {
 -				putc('\r', fp);
 +	while (fgetws(lbuf, sizeof(lbuf)/sizeof(wchar_t), stdin)) {
 +		for (p = lbuf; (ch = *p) != L'\0'; ++p, ++cnt) {
 +			if (ch == L'\r') {
 +				putwc(L'\r', fp);
  				cnt = 0;
  				continue;
 -			} else if (ch == '\n') {
 +			} else if (ch == L'\n') {
  				for (; cnt < 79; ++cnt)
 -					putc(' ', fp);
 -				putc('\r', fp);
 -				putc('\n', fp);
 +					putwc(L' ', fp);
 +				putwc(L'\r', fp);
 +				putwc(L'\n', fp);
  				break;
  			}
  			if (cnt == 79) {
 -				putc('\r', fp);
 -				putc('\n', fp);
 +				putwc(L'\r', fp);
 +				putwc(L'\n', fp);
  				cnt = 0;
  			}
 -			if (((ch & 0x80) && ch < 0xA0) ||
 -				   /* disable upper controls */
 -				   (!isprint(ch) && !isspace(ch) &&
 -				    ch != '\a' && ch != '\b')
 -				  ) {
 -				if (ch & 0x80) {
 -					ch &= 0x7F;
 -					putc('M', fp);
 +			if (iswprint(ch) || iswspace(ch) || ch == L'\a' || ch == L'\b') {
 +				putwc(ch, fp);
 +			} else {
 +				(void)swprintf(codebuf, sizeof(codebuf)/sizeof(wchar_t), L"<0x%X>", ch);
 +				for (tmp = codebuf; *tmp != L'\0'; ++tmp) {
 +					putwc(*tmp, fp);
  					if (++cnt == 79) {
 -						putc('\r', fp);
 -						putc('\n', fp);
 -						cnt = 0;
 -					}
 -					putc('-', fp);
 -					if (++cnt == 79) {
 -						putc('\r', fp);
 -						putc('\n', fp);
 -						cnt = 0;
 -					}
 -				}
 -				if (iscntrl(ch)) {
 -					ch ^= 040;
 -					putc('^', fp);
 -					if (++cnt == 79) {
 -						putc('\r', fp);
 -						putc('\n', fp);
 +						putwc(L'\r', fp);
 +						putwc(L'\n', fp);
  						cnt = 0;
  					}
  				}
 +				--cnt;
  			}
 -			putc(ch, fp);
  		}
  	}
 -	(void)fprintf(fp, "%79s\r\n", " ");
 +	(void)fwprintf(fp, L"%79s\r\n", " ");
  	rewind(fp);
  
  	if (fstat(fd, &sbuf))
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
>Unformatted:
