Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Feb 2003 19:43:04 +0900 (KST)
From:      CHOI Junho <cjh@kr.FreeBSD.org>
To:        thomas@FreeBSD.ORG
Cc:        tjr@FreeBSD.ORG, current@FreeBSD.ORG, roberto@FreeBSD.ORG
Subject:   Re: 5.0 cron problem
Message-ID:  <20030207.194304.39156547.cjh@kr.FreeBSD.org>
In-Reply-To: <20030207103742.GA61102@melusine.cuivre.fr.eu.org>
References:  <20030205.175730.55903839.cjh@kr.FreeBSD.org> <20030205204250.A12276@dilbert.robbins.dropbear.id.au> <20030207103742.GA61102@melusine.cuivre.fr.eu.org>

next in thread | previous in thread | raw e-mail | index | archive | help

I tried it to 5.0-RELEASE. It works with my previous crontab file.

From: Thomas Quinot <thomas@FreeBSD.ORG>
Subject: Re: 5.0 cron problem
Date: Fri, 7 Feb 2003 11:37:42 +0100

> Right, the according to the man page inner whitespace in the unquoted
> right-hand part of an environment variable assignment should be preserved.
> Please try the following patch:
> 
> Index: lib/env.c
> ===================================================================
> RCS file: /home/ncvs/src/usr.sbin/cron/lib/env.c,v
> retrieving revision 1.11
> diff -u -r1.11 env.c
> --- lib/env.c	23 May 2002 13:16:30 -0000	1.11
> +++ lib/env.c	7 Feb 2003 10:34:48 -0000
> @@ -193,14 +193,16 @@
>  					break;
>  				}
>  			} else {
> -				if (isspace (*c)) {
> -					state++;
> -					c++;
> -					break;
> -				}
> -				if (state == NAME && *c == '=') {
> -					state++;
> -					break;
> +				if (state == NAME) {
> +					if (isspace (*c)) {
> +						c++;
> +						state++;
> +						break;
> +					}
> +					if (*c == '=') {
> +						state++;
> +						break;
> +					}
>  				}
>  			}
>  			*str++ = *c++;
> @@ -232,9 +234,14 @@
>  		Set_LineNum(fileline);
>  		return (FALSE);
>  	}
> +	if (state == VALUE) {
> +		/* End of unquoted value: trim trailing whitespace */
> +		c = val + strlen (val);
> +		while (c > val && isspace (*(c - 1)))
> +			*(--c) = '\0';
> +	}
>  
> -	/* 2 fields from parser; looks like an env setting
> -	 */
> +	/* 2 fields from parser; looks like an env setting */
>  
>  	if (strlen(name) + 1 + strlen(val) >= MAX_ENVSTR-1)
>  		return (FALSE);
> 
> -- 
>     Thomas.Quinot@Cuivre.FR.EU.ORG

--
CHOI Junho <http://www.kr.FreeBSD.org/~cjh>;     KFUG <cjh at kr.FreeBSD.org>
FreeBSD Project <cjh at FreeBSD.org>        Web Data Bank <cjh at wdb.co.kr>
Key fingerprint = 1369 7374 A45F F41A F3C0  07E3 4A01 C020 E602 60F5

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030207.194304.39156547.cjh>