Plan 9 from Bell Labs’s /usr/web/sources/contrib/uriel/changes/2006/0416/2

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


win: handle malformed runes better
 [rsc] --rw-rw-r-- M 940585 glenda sys 2743 Apr 16 09:04 acme/bin/source/win/fs.c
	/n/sourcesdump/2006/0416/plan9/acme/bin/source/win/fs.c:46,52 - 
	/n/sourcesdump/2006/0417/plan9/acme/bin/source/win/fs.c:46,52
	  {
	  	static Event *e[4];
	  	Event *ep;
	- 	int i, j, nb, wid, pid;
	+ 	int i, j, ei, nb, wid, pid;
	  	Rune rune;
	  	char *s;
	  	char tmp[UTFmax], *t;
	/n/sourcesdump/2006/0416/plan9/acme/bin/source/win/fs.c:97,104 - 
	/n/sourcesdump/2006/0417/plan9/acme/bin/source/win/fs.c:97,105
	  		nb = j;
	  		t[j] = '\0';
	  	}
	+ 	ei = nb>8192? 8192 : nb;
	  	/* process bytes into runes, transferring terminal partial runes into next buffer */
	- 	for(i=j=0; i<nb && fullrune(ep->b+i, nb-i); i+=wid,j++)
	+ 	for(i=j=0; i<ei && fullrune(ep->b+i, ei-i); i+=wid,j++)
	  		wid = chartorune(&rune, ep->b+i);
	  	memmove(tmp, ep->b+i, nb-i);
	  	partial = nb-i;
 [rsc] --rw-rw-r-- M 940585 glenda sys 12432 Apr 16 09:04 acme/bin/source/win/main.c
	/n/sourcesdump/2006/0416/plan9/acme/bin/source/win/main.c:436,442 - 
	/n/sourcesdump/2006/0417/plan9/acme/bin/source/win/main.c:436,442
	  			sprint(tmp, "#%lud", hostpt);
	  			winsetaddr(w, tmp, 0);
	  			write(w->data, e->b, e->nb);
	- 			pendingS += utfnlen(e->b, e->nb);
	+ 			pendingS += e->nr;
	  			break;
	  	
	  		case 'E':	/* write to tag or body; body happens due to sendit */


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.