GNU bug report logs - #18547
repeated C-s doesn't wrap back to the top if file is .gz

Previous Next

Package: emacs;

Reported by: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>

Date: Wed, 24 Sep 2014 17:46:02 UTC

Severity: wishlist

Done: Juri Linkov <juri <at> jurta.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 18547 in the body.
You can then email your comments to 18547 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#18547; Package emacs. (Wed, 24 Sep 2014 17:46:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 24 Sep 2014 17:46:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
To: bug-gnu-emacs <bug-gnu-emacs <at> gnu.org>
Subject: repeated C-s doesn't wrap back to the top if file is .gz
Date: Thu, 25 Sep 2014 01:09:01 +0800
$ emacs -q directory_that_contains_a_.gz_file
v on that file. (view mode)
C-s some_string, C-s C-s C-s C-s C-s ... but then instead of wrapping
around back to the top, we get
File not found and directory write-protected

By the way, it happened on a changelog.gz
file, and the prompt was "Multi I-Search" whatever that means.

Debian emacs 24.3+1-5
emacs-version "24.3.1"




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18547; Package emacs. (Wed, 24 Sep 2014 19:33:02 GMT) Full text and rfc822 format available.

Message #8 received at 18547 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> jurta.org>
To: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Cc: 18547 <at> debbugs.gnu.org
Subject: Re: bug#18547: repeated C-s doesn't wrap back to the top if file is
 .gz
Date: Wed, 24 Sep 2014 22:28:20 +0300
> $ emacs -q directory_that_contains_a_.gz_file
> v on that file. (view mode)
> C-s some_string, C-s C-s C-s C-s C-s ... but then instead of wrapping
> around back to the top, we get
> File not found and directory write-protected
>
> By the way, it happened on a changelog.gz
> file, and the prompt was "Multi I-Search" whatever that means.

It fails because you are using a non-standard file name
"changelog", and not the default "ChangeLog".  You can customize
`change-log-default-name' to "changelog" then isearch will wrap
to the beginning instead of trying to wrap to a non-existent "ChangeLog".

I'm not sure whether we should deduce change-log-name from the
file name of the current buffer (removing possible suffixes
like ".10" from "changelog.10").




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18547; Package emacs. (Wed, 24 Sep 2014 19:43:01 GMT) Full text and rfc822 format available.

Message #11 received at 18547 <at> debbugs.gnu.org (full text, mbox):

From: 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
To: Juri Linkov <juri <at> jurta.org>
Cc: 18547 <at> debbugs.gnu.org
Subject: Re: bug#18547: repeated C-s doesn't wrap back to the top if file is
 .gz
Date: Thu, 25 Sep 2014 03:42:10 +0800
On my system
# dlocate changelog|wc -l
2233
# dlocate ChangeLog|wc -l
44
that's all I know.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18547; Package emacs. (Wed, 24 Sep 2014 20:26:01 GMT) Full text and rfc822 format available.

Message #14 received at 18547 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Juri Linkov <juri <at> jurta.org>
Cc: 18547 <at> debbugs.gnu.org,
 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Subject: Re: bug#18547: repeated C-s doesn't wrap back to the top if file is
 .gz
Date: Wed, 24 Sep 2014 16:25:30 -0400
>> File not found and directory write-protected
[...]
> It fails because you are using a non-standard file name
> "changelog", and not the default "ChangeLog".  You can customize
> `change-log-default-name' to "changelog" then isearch will wrap
> to the beginning instead of trying to wrap to a non-existent "ChangeLog".

I think failing to switch to another file is fine, but it should
still wrap around, and it should not burp at the user about some
non-existing file.


        Stefan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18547; Package emacs. (Wed, 24 Sep 2014 22:23:02 GMT) Full text and rfc822 format available.

Message #17 received at 18547 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> jurta.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 18547 <at> debbugs.gnu.org,
 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Subject: Re: bug#18547: repeated C-s doesn't wrap back to the top if file is
 .gz
Date: Thu, 25 Sep 2014 01:20:31 +0300
>>> File not found and directory write-protected
> [...]
>> It fails because you are using a non-standard file name
>> "changelog", and not the default "ChangeLog".  You can customize
>> `change-log-default-name' to "changelog" then isearch will wrap
>> to the beginning instead of trying to wrap to a non-existent "ChangeLog".
>
> I think failing to switch to another file is fine, but it should
> still wrap around, and it should not burp at the user about some
> non-existing file.

Then if there are no files that fit the default naming scheme ChangeLog[.NN],
this patch will wrap around in the current buffer.  (I'm not sure whether
it should go into emacs-24 or trunk):

=== modified file 'lisp/vc/add-log.el'
--- lisp/vc/add-log.el	2014-02-10 01:34:22 +0000
+++ lisp/vc/add-log.el	2014-09-24 22:17:34 +0000
@@ -1097,12 +1097,14 @@ (defun change-log-next-buffer (&optional
                                    (ignore-errors
                                      (version< (substring b (length name))
                                                (substring a (length name))))))))
-	 (files (if isearch-forward files (reverse files))))
-    (find-file-noselect
-     (if wrap
-	 (car files)
-       (cadr (member (file-name-nondirectory (buffer-file-name buffer))
-		     files))))))
+	 (files (if isearch-forward files (reverse files)))
+	 (file (if wrap
+		   (car files)
+		 (cadr (member (file-name-nondirectory (buffer-file-name buffer))
+			       files)))))
+    (if (file-exists-p file)
+	(find-file-noselect file)
+      (current-buffer))))
 
 (defun change-log-fill-forward-paragraph (n)
   "Cut paragraphs so filling preserves open parentheses at beginning of lines."




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18547; Package emacs. (Thu, 25 Sep 2014 01:11:03 GMT) Full text and rfc822 format available.

Message #20 received at 18547 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Juri Linkov <juri <at> jurta.org>
Cc: 18547 <at> debbugs.gnu.org,
 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Subject: Re: bug#18547: repeated C-s doesn't wrap back to the top if file is
 .gz
Date: Wed, 24 Sep 2014 21:10:55 -0400
> Then if there are no files that fit the default naming scheme ChangeLog[.NN],
> this patch will wrap around in the current buffer.

Thanks Juri.

> (I'm not sure whether it should go into emacs-24 or trunk):

I don't think it's urgent, so: trunk.


        Stefan




Reply sent to Juri Linkov <juri <at> jurta.org>:
You have taken responsibility. (Thu, 25 Sep 2014 20:58:01 GMT) Full text and rfc822 format available.

Notification sent to 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>:
bug acknowledged by developer. (Thu, 25 Sep 2014 20:58:02 GMT) Full text and rfc822 format available.

Message #25 received at 18547-done <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> jurta.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 18547-done <at> debbugs.gnu.org,
 積丹尼 Dan Jacobson <jidanni <at> jidanni.org>
Subject: Re: bug#18547: repeated C-s doesn't wrap back to the top if file is
 .gz
Date: Thu, 25 Sep 2014 23:57:05 +0300
>> (I'm not sure whether it should go into emacs-24 or trunk):
>
> I don't think it's urgent, so: trunk.

Actually there were two cases: when `wrap' is non-nil then a new buffer
"ChangeLog" should not be created (fixes the reported problem).
When `wrap' is nil, then `file-exists-p' will raise a signal
(as `find-file-noselect' did before this patch) that is handled
by `multi-isearch-search-fun' to display the "end of multi" message.
The same patch installed to trunk will handle both cases.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 24 Oct 2014 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 9 years and 195 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.