From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#19436: 24.4; dired-insert-subdir with saveplace Date: Thu, 25 Dec 2014 21:31:28 +0200 Organization: LINKOV.NET Message-ID: <87mw6bh7uf.fsf@mail.linkov.net> References: <20141224.232401.279982387.tak.kunihiro@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1419536058 26003 80.91.229.3 (25 Dec 2014 19:34:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 25 Dec 2014 19:34:18 +0000 (UTC) Cc: 19436@debbugs.gnu.org To: Tak Kunihiro Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Dec 25 20:34:11 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Y4EAl-0003Bg-8X for geb-bug-gnu-emacs@m.gmane.org; Thu, 25 Dec 2014 20:34:11 +0100 Original-Received: from localhost ([::1]:51663 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y4EAk-0006ky-OL for geb-bug-gnu-emacs@m.gmane.org; Thu, 25 Dec 2014 14:34:10 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57322) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y4EAf-0006kM-CD for bug-gnu-emacs@gnu.org; Thu, 25 Dec 2014 14:34:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y4EAc-0007CI-34 for bug-gnu-emacs@gnu.org; Thu, 25 Dec 2014 14:34:05 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:48154) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y4EAb-0007CE-WE for bug-gnu-emacs@gnu.org; Thu, 25 Dec 2014 14:34:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Y4EAb-0006s9-O5 for bug-gnu-emacs@gnu.org; Thu, 25 Dec 2014 14:34:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 Dec 2014 19:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19436 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 19436-submit@debbugs.gnu.org id=B19436.141953600026362 (code B ref 19436); Thu, 25 Dec 2014 19:34:01 +0000 Original-Received: (at 19436) by debbugs.gnu.org; 25 Dec 2014 19:33:20 +0000 Original-Received: from localhost ([127.0.0.1]:57520 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y4E9v-0006r7-Ty for submit@debbugs.gnu.org; Thu, 25 Dec 2014 14:33:20 -0500 Original-Received: from ps18281.dreamhost.com ([69.163.222.226]:55422 helo=ps18281.dreamhostps.com) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y4E9t-0006qz-Tv for 19436@debbugs.gnu.org; Thu, 25 Dec 2014 14:33:18 -0500 Original-Received: from localhost.linkov.net (ps18281.dreamhostps.com [69.163.222.226]) by ps18281.dreamhostps.com (Postfix) with ESMTP id D16B4300D191C5; Thu, 25 Dec 2014 11:33:13 -0800 (PST) In-Reply-To: <20141224.232401.279982387.tak.kunihiro@gmail.com> (Tak Kunihiro's message of "Wed, 24 Dec 2014 23:24:01 +0900 (JST)") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (x86_64-pc-linux-gnu) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:97726 Archived-At: > On `dired-insert-subdir' with saveplace on, point goes to random place. > > 0. emacs -Q > 1. (require 'saveplace) > 2. (setq-default save-place t) > 3. M-x dired > 4. M-x dired-insert-subdir > 5. I expect point goes to top of the new inserted directory. > However, it goes to random place. > 6. It seems that it has something to do with dired-initial-position-hook > in dired-initial-position. Thanks for the report. Subdir saving was not supported by dired-initial-position until now. It's implemented by this patch: diff --git a/lisp/saveplace.el b/lisp/saveplace.el index a25dba2..a081794 100644 --- a/lisp/saveplace.el +++ b/lisp/saveplace.el @@ -153,7 +153,7 @@ (defun toggle-save-place (&optional parg) \(setq-default save-place t)" (interactive "P") (if (not (or buffer-file-name (and (derived-mode-p 'dired-mode) - dired-directory))) + (dired-current-directory)))) (message "Buffer `%s' not visiting a file or directory" (buffer-name)) (setq save-place (if parg (> (prefix-numeric-value parg) 0) @@ -172,12 +172,13 @@ (defun save-place-to-alist () ;; file. If not, do so, then feel free to modify the alist. It ;; will be saved again when Emacs is killed. (or save-place-loaded (load-save-place-alist-from-file)) - (let ((item (or buffer-file-name - (and (derived-mode-p 'dired-mode) - dired-directory - (expand-file-name (if (consp dired-directory) - (car dired-directory) - dired-directory)))))) + (let* ((directory (and (derived-mode-p 'dired-mode) + (dired-current-directory))) + (item (or buffer-file-name + (and directory + (expand-file-name (if (consp directory) + (car directory) + directory)))))) (when (and item (or (not save-place-ignore-files-regexp) (not (string-match save-place-ignore-files-regexp @@ -186,8 +187,7 @@ (defun save-place-to-alist () (position (cond ((eq major-mode 'hexl-mode) (with-no-warnings (1+ (hexl-current-address)))) - ((and (derived-mode-p 'dired-mode) - dired-directory) + ((and (derived-mode-p 'dired-mode) directory) (let ((filename (dired-get-filename nil t))) (if filename `((dired-filename . ,filename)) @@ -305,7 +305,7 @@ (defun save-places-to-alist () ;; save-place checks buffer-file-name too, but we can avoid ;; overhead of function call by checking here too. (and (or buffer-file-name (and (derived-mode-p 'dired-mode) - dired-directory)) + (dired-current-directory))) (save-place-to-alist)) (setq buf-list (cdr buf-list)))))) @@ -325,12 +325,13 @@ (declare-function dired-goto-file "dired" (file)) (defun save-place-dired-hook () "Position the point in a Dired buffer." (or save-place-loaded (load-save-place-alist-from-file)) - (let ((cell (assoc (and (derived-mode-p 'dired-mode) - dired-directory - (expand-file-name (if (consp dired-directory) - (car dired-directory) - dired-directory))) - save-place-alist))) + (let* ((directory (and (derived-mode-p 'dired-mode) + (dired-current-directory))) + (cell (assoc (and directory + (expand-file-name (if (consp directory) + (car directory) + directory))) + save-place-alist))) (if cell (progn (or revert-buffer-in-progress-p