Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!swrinde!news.dell.com!uudell!obiwan!bob
From: bob@obiwan.uucp (Bob Willcox)
Newsgroups: comp.os.386bsd.bugs
Subject: Re: Minor bug in ls (timezone related) with patch
Message-ID: <C7Kzuy.2Gz@obiwan.uucp>
Date: 25 May 93 11:56:58 GMT
References: <C7IAxB.HD@obiwan.uucp>
Organization: Bob's Place, Austin TX
Lines: 51
In article <C7IAxB.HD@obiwan.uucp> bob@obiwan.uucp I wrote:
>I discovered that whenever I listed a directory with a simple "ls -l"
>(no arguments) command that the timestamps of the files were listed as
>though I was in the Pacific timezone. After looking through the ls.c
>code I discovered that it would alter argc and argv in the default case
>(no arguments) to appear as though there was exactly one argument of
>".". Unfortunately this seems to hose up the environment. Below is a
>patch of what I changed on my sytem to fix it.
Well, as fate would have it, the patch had a problem which results in
a coredump when doing something like "ls -ld" (-d option w/o arguments).
Below is a fixed patch:
*** /tmp/,RCSt1000755 Tue May 25 06:49:36 1993
--- ls.c Tue May 25 06:45:47 1993
***************
*** 238,250 ****
(f_longform || f_listdir || f_type || f_recursive) && !f_ignorelink ? lstat : stat;
if (!argc) {
! static char dot[] = ".";
! argc = 1;
! argv[0] = dot;
! argv[1] = NULL;
! }
! doargs(argc, argv);
exit(0);
}
--- 238,251 ----
(f_longform || f_listdir || f_type || f_recursive) && !f_ignorelink ? lstat : stat;
if (!argc) {
! char narg[2];
! static char *nargv[2] = {NULL, NULL};
! strcpy(narg, ".");
! nargv[0] = narg;
! doargs(1, nargv);
! } else
! doargs(argc, argv);
exit(0);
}
--
Bob Willcox ...!{rutgers|ames}!cs.utexas.edu!uudell!obiwan!bob
Phone: 512 258-4224 (home)
512 838-3914 (work)