[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34915: 27.0.50; Wdired regression with ls -F
From: |
Basil L. Contovounesios |
Subject: |
bug#34915: 27.0.50; Wdired regression with ls -F |
Date: |
Fri, 26 Apr 2019 14:56:57 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
Stephen Berman <stephen.berman@gmx.net> writes:
> On Fri, 12 Apr 2019 15:06:18 +0200 Stephen Berman <stephen.berman@gmx.net>
> wrote:
>
>> On Fri, 12 Apr 2019 13:58:25 +0100 "Basil L. Contovounesios"
>> <contovob@tcd.ie> wrote:
>>
>>> Stephen Berman <stephen.berman@gmx.net> writes:
>>>
>>>> On Tue, 19 Mar 2019 13:43:16 +0000 "Basil L. Contovounesios"
>>>> <contovob@tcd.ie> wrote:
>>>>
>>>>> It seems like Wdired thinks the indicators added by ls (one of */=>@|)
>>>>> are part of the file name now.
>>>>
>>>> This is indeed due to my changes. The patch below appears to fix the
>>>> problem, but I'm not sure how robust it is (I was also, and remain,
>>>> unsure about my handling of symlinks in the previous patch, but I
>>>> haven't found time to look at it more closely; at least I haven't seen
>>>> any bug reports about it so far).
>>>
>>> I can confirm your patch fixes the issue, thanks!
>>
>> Thanks for testing. If there are no objections within a few days, I'll
>> push it to master.
>
> I didn't expect "a few days" to become almost two weeks, but I've
> finally pushed the fix to master as commit 6d8e0fc5aa. I slightly
> changed the patch to account for using either the short or long form of
> the indicator switch, and I added a test.
Thanks. I noticed an opportunity for a tiny bit of reuse:
diff --git a/lisp/dired.el b/lisp/dired.el
index 63082fe392..3050a4bd2d 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1261,6 +1261,10 @@ dired-switches-recursive-p
"Return non-nil if the string SWITCHES contains -R or --recursive."
(dired-check-switches switches "R" "recursive"))
+(defun dired-switches-classify-p (switches)
+ "Return non-nil if the string SWITCHES contains -F or --classify."
+ (dired-check-switches switches "F" "classify"))
+
(defun dired-insert-directory (dir switches &optional file-list wildcard hdr)
"Insert a directory listing of DIR, Dired style.
Use SWITCHES to make the listings.
@@ -2588,7 +2592,7 @@ dired-move-to-end-of-filename
(if (get-text-property (point) 'dired-filename)
(goto-char (next-single-property-change (point) 'dired-filename))
(let ((opoint (point))
- (used-F (dired-check-switches dired-actual-switches "F" "classify"))
+ (used-F (dired-switches-classify-p dired-actual-switches))
(eol (line-end-position))
(hidden (dired--hidden-p))
file-type executable symlink)
diff --git a/lisp/wdired.el b/lisp/wdired.el
index d2a298bd25..1e9c7f6c5a 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -626,8 +626,7 @@ wdired--restore-dired-filename-prop
;; or "classify", don't treat appended
;; indicator characters as part of the file
;; name (bug#34915).
- (and (dired-check-switches dired-actual-switches
- "F" "classify")
+ (and (dired-switches-classify-p dired-actual-switches)
(re-search-forward "[*/@|=>]$" lep t)))
(goto-char (match-beginning 0))
lep))
Which makes me wonder: is there no Dired function that
wdired--restore-dired-filename-prop can reuse for finding the boundaries
of a file name? Is dired-move-to-end-of-filename not suitable? It
seems to perform similar checks for symlinks and --classify.
--
Basil