[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: file-equal-p
From: |
Po Lu |
Subject: |
Re: file-equal-p |
Date: |
Thu, 16 Feb 2023 20:35:13 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Michael Albinus <michael.albinus@gmx.de> writes:
> Andreas Schwab <schwab@suse.de> writes:
>
> Hi,
>
>> On Feb 16 2023, Po Lu wrote:
>>
>>> diff --git a/lisp/files.el b/lisp/files.el
>>> index b0ec6bb09d0..dcd17df166a 100644
>>> --- a/lisp/files.el
>>> +++ b/lisp/files.el
>>> @@ -6360,7 +6360,17 @@ file-equal-p
>>> (let (f1-attr f2-attr)
>>> (and (setq f1-attr (file-attributes (file-truename file1)))
>>> (setq f2-attr (file-attributes (file-truename file2)))
>>> - (equal f1-attr f2-attr))))))
>>> + (progn
>>> + ;; Haiku systems change the file's last access timestamp
>>> + ;; every time `stat' is called. Make sure to not compare
>>> + ;; the timestamps in that case.
>>> + (when (and (eq system-type 'haiku)
>>> + (consp (nthcdr 4 f1-attr))
>>> + (consp (nthcdr 4 f2-attr)))
>>> + (ignore-errors
>>> + (setcar (nthcdr 4 f1-attr) nil)
>>> + (setcar (nthcdr 4 f2-attr) nil)))
>>> + (equal f1-attr f2-attr)))))))
>>
>> Why does that compare more than the inode and device number? The other
>> attributes can change any time, if another process accesses the file or
>> modifies the inode between the two calls of file-attribute.
>
> For this we have file-attribute-file-identifier. So it might be
> sufficient to call
>
> (equal (file-attribute-file-identifier f1-attr)
> (file-attribute-file-identifier f2-attr))
>
> Best regards, Michael.
This looks like the better idea, yes. Would using that be ok for Emacs
29? Or is it something for master?
- Re: file-equal-p, (continued)
- Re: file-equal-p, Po Lu, 2023/02/16
- Re: file-equal-p, Eli Zaretskii, 2023/02/16
- Re: file-equal-p, Po Lu, 2023/02/16
- Re: file-equal-p, Eli Zaretskii, 2023/02/17
- Re: file-equal-p, Po Lu, 2023/02/17
- Re: file-equal-p, Eli Zaretskii, 2023/02/17
- Re: file-equal-p, Po Lu, 2023/02/17
- Re: file-equal-p, Andreas Schwab, 2023/02/16
- Re: file-equal-p, Po Lu, 2023/02/16
- Re: file-equal-p, Michael Albinus, 2023/02/16
- Re: file-equal-p,
Po Lu <=
- Re: file-equal-p, Eli Zaretskii, 2023/02/16
Re: file-equal-p, Richard Stallman, 2023/02/16
- Re: file-equal-p, Andreas Schwab, 2023/02/17
- Re: file-equal-p, Eli Zaretskii, 2023/02/17
- Re: file-equal-p, tomas, 2023/02/17
- Re: file-equal-p, Andreas Schwab, 2023/02/17
- Re: file-equal-p, Eli Zaretskii, 2023/02/18
- Re: file-equal-p, Andreas Schwab, 2023/02/18