Jim Meyering <jim@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Jim Meyering <jim@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 6986) by debbugs.gnu.org; 17 Apr 2011 09:29:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 17 05:29:04 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1QBOHv-0001vc-P1 for submit <at> debbugs.gnu.org; Sun, 17 Apr 2011 05:29:03 -0400 Received: from mx.meyering.net ([82.230.74.64]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <jim@HIDDEN>) id 1QBOHu-0001v9-64 for 6986 <at> debbugs.gnu.org; Sun, 17 Apr 2011 05:29:02 -0400 Received: by rho.meyering.net (Acme Bit-Twister, from userid 1000) id 947E160110; Sun, 17 Apr 2011 11:28:56 +0200 (CEST) From: Jim Meyering <jim@HIDDEN> To: 6986 <at> debbugs.gnu.org Subject: Re: bug#6986: [PATCH] test: add check to determine whether files are on the same device In-Reply-To: <20100906213322.0e40a821@HIDDEN> (Dieter Plaetinck's message of "Mon, 6 Sep 2010 21:33:22 +0200") References: <20100905131342.470022a6@HIDDEN> <87hbi2vigf.fsf@HIDDEN> <20100906213322.0e40a821@HIDDEN> Date: Sun, 17 Apr 2011 11:28:56 +0200 Message-ID: <8762qdb50n.fsf@HIDDEN> Lines: 15 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -5.9 (-----) X-Debbugs-Envelope-To: 6986 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -5.9 (-----) tags 6986 wishlist notabug thanks Dieter Plaetinck wrote: ... > I know some shells provide the 'test' features as a built-in, > that's fine. But they should mimic the features test has. > It makes the shell implementation dependent on test, not the > other way around. If this feature is considered useful for test, and > gets merged into test, shells will follow soon enough. > > But anyway, your call :) > At least thanks for the timely feedback and have a nice day. Reclassifying this as "wishlist" (i.e., not a bug).
owner <at> debbugs.gnu.org, bug-coreutils@HIDDEN
:bug#6986
; Package coreutils
.
Full text available.Received: (at 6986) by debbugs.gnu.org; 6 Sep 2010 20:06:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 06 16:06:23 2010 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1OshxP-0000aU-28 for submit <at> debbugs.gnu.org; Mon, 06 Sep 2010 16:06:23 -0400 Received: from rhineheart.priorweb.be ([62.182.60.82]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from <dieter@HIDDEN>) id 1OshPe-0000Ms-O2 for 6986 <at> debbugs.gnu.org; Mon, 06 Sep 2010 15:31:31 -0400 Received: (qmail 3463 invoked by uid 1010); 6 Sep 2010 19:33:24 -0000 Received: from unknown (HELO rhineheart.priorweb.be) (127.0.0.1) by rhineheart.priorweb.be with SMTP; 6 Sep 2010 19:33:24 -0000 Received: from localhost.localdomain (unknown [109.236.140.107]) by rhineheart.priorweb.be (Postfix) with ESMTP; Mon, 6 Sep 2010 21:33:23 +0200 (CEST) Date: Mon, 6 Sep 2010 21:33:22 +0200 From: Dieter Plaetinck <dieter@HIDDEN> To: Jim Meyering <jim@HIDDEN> Subject: Re: bug#6986: [PATCH] test: add check to determine whether files are on the same device Message-ID: <20100906213322.0e40a821@HIDDEN> In-Reply-To: <87hbi2vigf.fsf@HIDDEN> References: <20100905131342.470022a6@HIDDEN> <87hbi2vigf.fsf@HIDDEN> X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: Passed X-Spam-Scanned: 1.5 X-Spam-Status: NO X-Scanned-By: PriorWeb mailfilter X-Spam-Score: -3.9 (---) X-Debbugs-Envelope-To: 6986 X-Mailman-Approved-At: Mon, 06 Sep 2010 16:06:22 -0400 Cc: 6986 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -3.5 (---) On Mon, 06 Sep 2010 20:24:16 +0200 Jim Meyering <jim@HIDDEN> wrote: > Dieter Plaetinck wrote: > > In the test program, there is '-ef' which checks whether files > > are on the same device *and* have the same inode number. > > This change introduces '-ed' which is basically the same, minus the > > inode number checking > > --- > > src/test.c | 19 +++++++++++++++---- > > 1 files changed, 15 insertions(+), 4 deletions(-) > > > > diff --git a/src/test.c b/src/test.c > > Thank you for the patch. > However, can you make a case for adding this to test > rather than using an existing tool like stat? > > For example, here's a tiny shell function: > > same_dev() > { > local d1=$(stat --format=%d "$1") || return 1 > local d2=$(stat --format=%d "$2") || return 1 > test "$d1" = "$d2" > } > > You could use it like this: > > $ same_dev a b && echo same > same > $ same_dev a / && echo same || echo different devices > different devices > > That it's so easy to accomplish the same thing with > existing tools makes it hard to justify adding the feature. > > Besides, if you're really interested in getting this feature > into "test", you don't want to start with coreutils. > Its "test" program is used only rarely, since "test" > is always a shell built-in, these days. > Thus you'd want to request that your feature be added > to at least bash and zsh. Hey Jim, at first I considered writing a shell function like the one you suggest. But putting it in test seemed like a better, more generally useful place, especially since there are some similar functions in test. (like -ef), and it's just a few lines of C code. I would argue some of the existing functionality in test can as easily be removed in favor of a shell function. (I don't suggest doing so) Ie, for test -O : owned_by_me () { local owner_id=$(stat --format='%u' "$1") || return 1 test $owner_id -eq $EUID } I know some shells provide the 'test' features as a built-in, that's fine. But they should mimic the features test has. It makes the shell implementation dependent on test, not the other way around. If this feature is considered useful for test, and gets merged into test, shells will follow soon enough. But anyway, your call :) At least thanks for the timely feedback and have a nice day. Dieter
owner <at> debbugs.gnu.org, bug-coreutils@HIDDEN
:bug#6986
; Package coreutils
.
Full text available.Received: (at 6986) by debbugs.gnu.org; 6 Sep 2010 18:22:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 06 14:22:30 2010 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1OsgKs-0008LB-Kx for submit <at> debbugs.gnu.org; Mon, 06 Sep 2010 14:22:30 -0400 Received: from smtp1-g21.free.fr ([212.27.42.1]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <jim@HIDDEN>) id 1OsgKq-0008L6-AQ for 6986 <at> debbugs.gnu.org; Mon, 06 Sep 2010 14:22:29 -0400 Received: from mx.meyering.net (unknown [82.230.74.64]) by smtp1-g21.free.fr (Postfix) with ESMTP id 8ACD59400C2 for <6986 <at> debbugs.gnu.org>; Mon, 6 Sep 2010 20:24:17 +0200 (CEST) Received: by rho.meyering.net (Acme Bit-Twister, from userid 1000) id 49C87D8C8; Mon, 6 Sep 2010 20:24:16 +0200 (CEST) From: Jim Meyering <jim@HIDDEN> To: Dieter Plaetinck <dieter@HIDDEN> Subject: Re: bug#6986: [PATCH] test: add check to determine whether files are on the same device In-Reply-To: <20100905131342.470022a6@HIDDEN> (Dieter Plaetinck's message of "Sun, 5 Sep 2010 13:13:42 +0200") References: <20100905131342.470022a6@HIDDEN> Date: Mon, 06 Sep 2010 20:24:16 +0200 Message-ID: <87hbi2vigf.fsf@HIDDEN> Lines: 40 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.0 (--) X-Debbugs-Envelope-To: 6986 Cc: 6986 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -3.2 (---) Dieter Plaetinck wrote: > In the test program, there is '-ef' which checks whether files > are on the same device *and* have the same inode number. > This change introduces '-ed' which is basically the same, minus the > inode number checking > --- > src/test.c | 19 +++++++++++++++---- > 1 files changed, 15 insertions(+), 4 deletions(-) > > diff --git a/src/test.c b/src/test.c Thank you for the patch. However, can you make a case for adding this to test rather than using an existing tool like stat? For example, here's a tiny shell function: same_dev() { local d1=$(stat --format=%d "$1") || return 1 local d2=$(stat --format=%d "$2") || return 1 test "$d1" = "$d2" } You could use it like this: $ same_dev a b && echo same same $ same_dev a / && echo same || echo different devices different devices That it's so easy to accomplish the same thing with existing tools makes it hard to justify adding the feature. Besides, if you're really interested in getting this feature into "test", you don't want to start with coreutils. Its "test" program is used only rarely, since "test" is always a shell built-in, these days. Thus you'd want to request that your feature be added to at least bash and zsh.
owner <at> debbugs.gnu.org, bug-coreutils@HIDDEN
:bug#6986
; Package coreutils
.
Full text available.Received: (at submit) by debbugs.gnu.org; 5 Sep 2010 13:34:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 05 09:34:28 2010 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1OsFMZ-0003MK-Ss for submit <at> debbugs.gnu.org; Sun, 05 Sep 2010 09:34:28 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <dieter@HIDDEN>) id 1OsDFE-0001hA-Ee for submit <at> debbugs.gnu.org; Sun, 05 Sep 2010 07:18:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from <dieter@HIDDEN>) id 1OsDH0-0001h4-Kd for submit <at> debbugs.gnu.org; Sun, 05 Sep 2010 07:20:35 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([199.232.76.165]:49026) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from <dieter@HIDDEN>) id 1OsDH0-0001gx-CA for submit <at> debbugs.gnu.org; Sun, 05 Sep 2010 07:20:34 -0400 Received: from [140.186.70.92] (port=43204 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OsDH0-0005FS-7z for bug-coreutils@HIDDEN; Sun, 05 Sep 2010 07:20:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from <dieter@HIDDEN>) id 1OsDGx-0001gY-Me for bug-coreutils@HIDDEN; Sun, 05 Sep 2010 07:20:32 -0400 Received: from rhineheart.priorweb.be ([62.182.60.82]:50056) by eggs.gnu.org with smtp (Exim 4.69) (envelope-from <dieter@HIDDEN>) id 1OsDGx-0001fq-F0 for bug-coreutils@HIDDEN; Sun, 05 Sep 2010 07:20:31 -0400 Received: (qmail 5505 invoked by uid 1010); 5 Sep 2010 11:13:47 -0000 Received: from unknown (HELO rhineheart.priorweb.be) (127.0.0.1) by rhineheart.priorweb.be with SMTP; 5 Sep 2010 11:13:47 -0000 Received: from localhost.localdomain (unknown [109.236.140.107]) by rhineheart.priorweb.be (Postfix) with ESMTP for <bug-coreutils@HIDDEN>; Sun, 5 Sep 2010 13:13:46 +0200 (CEST) Date: Sun, 5 Sep 2010 13:13:42 +0200 From: Dieter Plaetinck <dieter@HIDDEN> To: bug-coreutils@HIDDEN Subject: [PATCH] test: add check to determine whether files are on the same device Message-ID: <20100905131342.470022a6@HIDDEN> X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: Passed X-Scanned-By: PriorWeb mailfilter X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Sun, 05 Sep 2010 09:34:25 -0400 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -5.3 (-----) In the test program, there is '-ef' which checks whether files are on the same device *and* have the same inode number. This change introduces '-ed' which is basically the same, minus the inode number checking --- src/test.c | 19 +++++++++++++++---- 1 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/test.c b/src/test.c index e2247d2..8e738e9 100644 --- a/src/test.c +++ b/src/test.c @@ -174,9 +174,9 @@ static bool binop (char const *s) { return ((STREQ (s, "=")) || (STREQ (s, "!=")) || (STREQ (s, "-nt")) || - (STREQ (s, "-ot")) || (STREQ (s, "-ef")) || (STREQ (s, "-eq")) || - (STREQ (s, "-ne")) || (STREQ (s, "-lt")) || (STREQ (s, "-le")) || - (STREQ (s, "-gt")) || (STREQ (s, "-ge"))); + (STREQ (s, "-ot")) || (STREQ (s, "-ed")) || (STREQ (s, "-ef")) || + (STREQ (s, "-eq")) || (STREQ (s, "-ne")) || (STREQ (s, "-lt")) || + (STREQ (s, "-le")) || (STREQ (s, "-gt")) || (STREQ (s, "-ge"))); } /* @@ -191,7 +191,7 @@ binop (char const *s) * string * string ('!='|'=') string * <int> '-'(eq|ne|le|lt|ge|gt) <int> - * file '-'(nt|ot|ef) file + * file '-'(nt|ot|ed|ef) file * '(' <expr> ')' * int ::= * '-l' string @@ -327,6 +327,16 @@ binary_operator (bool l_is_l) break; case 'e': + if (argv[op][2] == 'd' && !argv[op][3]) + { + /* ed - same device? */ + pos += 3; + if (l_is_l || r_is_l) + test_syntax_error (_("-ed does not accept -l"), NULL); + return (stat (argv[op - 1], &stat_buf) == 0 + && stat (argv[op + 1], &stat_spare) == 0 + && stat_buf.st_dev == stat_spare.st_dev); + } if (argv[op][2] == 'f' && !argv[op][3]) { /* ef - hard link? */ @@ -726,6 +736,7 @@ EXPRESSION is true or false and sets exit status. It is one of:\n\ "), stdout); fputs (_("\ \n\ + FILE1 -ed FILE2 FILE1 and FILE2 have the same device number\n\ FILE1 -ef FILE2 FILE1 and FILE2 have the same device and inode numbers\n\ FILE1 -nt FILE2 FILE1 is newer (modification date) than FILE2\n\ FILE1 -ot FILE2 FILE1 is older than FILE2\n\ -- 1.7.2.3
Dieter Plaetinck <dieter@HIDDEN>
:bug-coreutils@HIDDEN
.
Full text available.owner <at> debbugs.gnu.org, bug-coreutils@HIDDEN
:bug#6986
; Package coreutils
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.