Hi guys,
I applied a mixture of Jukka's and Manuel's patch to hg tip.
Thanks to Manuel!
Regards,
        Anselm
On Sun, Nov 26, 2006 at 02:12:42PM +0100, Manuel Badzong wrote:
> Ciao Jukka
> 
> Jukka Salmi wrote:
> >aka `dwm <>dwm_pipe', BTW...
> >  
> This definitely looks better and doesn't block on open. Though AFAIK 
> POSIX doesn't specify the behavior of a FIFO opened O_RDWR and may 
> result differently across operating systems. Anyway this works fine.
> 
> >Thanks for the cleanup. But now that dwm's reading from stdin isn't
> >line buffered anymore the read string shouldn't be required to have a
> >trailing newline. See attached patch.
> >  
> Must have been blind. Because \n looks really bad, I propose the 
> following patch (also removes 2 useless lines).
> 
> Regards, Manuel
> 
> --- jukka/main.c	2006-11-26 14:06:32.000000000 +0100
> +++ my_dwm-2.3/main.c	2006-11-26 14:04:30.000000000 +0100
> @@ -228,6 +228,7 @@
>  int
>  main(int argc, char *argv[]) {
>  	int r, xfd;
> +	char *p;
>  	fd_set rd;
>  
>  	if(argc == 2 && !strncmp("-v", argv[1], 3)) {
> @@ -270,14 +271,12 @@
>  		if(select(xfd + 1, &rd, NULL, NULL, NULL) == -1) {
>  			if(errno == EINTR)
>  				continue;
> -			else
> -				eprint("select failed\n");
> +			eprint("select failed\n");
>  		}
>  		if(FD_ISSET(STDIN_FILENO, &rd)) {
>  			switch(r = read(STDIN_FILENO, stext, sizeof(stext)-1)) {
>  				case -1:
> -					strncpy(stext, strerror(errno), sizeof(stext));
> -					stext[sizeof(stext)-1] = '\0';
> +					strncpy(stext, strerror(errno), sizeof(stext)-1);
>  					readin = False;
>  					break;
>  				case 0:
> @@ -286,6 +285,9 @@
>  					break;
>  				default:
>  					stext[r-(stext[r-1]=='\n'?1:0)] = '\0';
> +					for(p=stext+strlen(stext)-1;p>stext && *p!='\n';--p);
> +					if(p>stext)
> +						strncpy(stext, p+1, sizeof(stext));
>  			}
>  			drawstatus();
>  		}
-- Anselm R. Garbe >< http://suckless.org/~arg/ >< GPG key: 0D73F361Received on Sun Nov 26 2006 - 14:27:02 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 14:32:46 UTC