NetBSD Problem Report #45084

From mouse@Sparkle.Rodents-Montreal.ORG  Mon Jun 20 05:25:54 2011
Return-Path: <mouse@Sparkle.Rodents-Montreal.ORG>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id E0C8063BA98
	for <gnats-bugs@gnats.NetBSD.org>; Mon, 20 Jun 2011 05:25:53 +0000 (UTC)
Message-Id: <201106200525.BAA05388@Sparkle.Rodents-Montreal.ORG>
Date: Mon, 20 Jun 2011 01:25:51 -0400 (EDT)
From: der Mouse <mouse@Rodents-Montreal.ORG>
Reply-To: mouse@Rodents-Montreal.ORG
To: gnats-bugs@gnats.NetBSD.org
Subject: csh "shift path" doesn't update $PATH
X-Send-Pr-Version: 3.95

>Number:         45084
>Category:       bin
>Synopsis:       csh's "shift", applied to "path", doesn't update $PATH
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jun 20 05:30:00 +0000 2011
>Originator:     Mouse
>Release:        NetBSD 4.0.1 or 5.1, possibly others
>Organization:
	Dis-
>Environment:
	First noticed on a so-far-anonymous system during setup;
	verified present on (among others)

System: NetBSD VAIO-Home.Rodents-Montreal.ORG 4.0.1 NetBSD 4.0.1 (VAIO-MP) #2: Wed Jun 8 21:19:35 EDT 2011 mouse@VAIO-A-W.Rodents-Montreal.ORG:/home/mouse/kbuild/VAIO-MP i386
Architecture: i386
Machine: i386
>Description:
	csh normally mirrors changes to the path shell variable in the
	PATH environment variable.  However, changing $path by using
	the "shift" command fails to update $PATH.
>How-To-Repeat:
	% set path = ( /infibulated/gonkulator /bin /usr/bin )
	% /usr/bin/printenv PATH
	/infibulated/gonkulator:/bin:/usr/bin
	% shift path
	% set | /usr/bin/grep path
	path	(/bin /usr/bin)
	% /usr/bin/printenv PATH
	/infibulated/gonkulator:/bin:/usr/bin
	% 
>Fix:
	As a workaround, if none of the elements of $path contain shell
	syntax characters, "set path = ( $path )" works to reset $PATH.

	Presumably a proper fix would be to add special-case code for
	STRpath to shift(), akin to what doset() and dolet() have - or,
	more work but better design, rework the relevant code so the
	special case is unnecessary and the re-exporting happens
	somewhere else whenever $path changes by any means.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse@rodents-montreal.org
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.