From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: desktop.el: autosave? Date: Tue, 11 Dec 2007 01:55:14 +0200 Organization: JURTA Message-ID: <87ejdu6rna.fsf@jurta.org> References: <8763zjfe0v.fsf@jurta.org> <87mysridxt.fsf@jurta.org> <20071206153806.GA20731@www.trapp.net> <87d4tjbh0g.fsf@jurta.org> <87abon5q1f.fsf@jurta.org> <87lk835rb7.fsf@jurta.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1197331202 13864 80.91.229.12 (11 Dec 2007 00:00:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 11 Dec 2007 00:00:02 +0000 (UTC) Cc: tomas@tuxteam.de, emacs-devel@gnu.org To: Reuben Thomas Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Dec 11 01:00:11 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1J1sXi-0006D9-9v for ged-emacs-devel@m.gmane.org; Tue, 11 Dec 2007 01:00:10 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J1sXQ-00057J-Rj for ged-emacs-devel@m.gmane.org; Mon, 10 Dec 2007 18:59:52 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1J1sWl-0004dq-PU for emacs-devel@gnu.org; Mon, 10 Dec 2007 18:59:11 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1J1sWk-0004cz-9P for emacs-devel@gnu.org; Mon, 10 Dec 2007 18:59:11 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J1sWk-0004cu-5U for emacs-devel@gnu.org; Mon, 10 Dec 2007 18:59:10 -0500 Original-Received: from relay02.kiev.sovam.com ([62.64.120.197]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1J1sWj-0000mO-MK for emacs-devel@gnu.org; Mon, 10 Dec 2007 18:59:09 -0500 Original-Received: from [83.170.232.243] (helo=smtp.svitonline.com) by relay02.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1J1sWd-0004Qn-EC; Tue, 11 Dec 2007 01:59:06 +0200 In-Reply-To: (Reuben Thomas's message of "Mon, 10 Dec 2007 22:01:02 +0000 (GMT)") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.50 (gnu/linux) X-Scanner-Signature: b3971b7ac160fe45482707327a257f38 X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Not Detected X-SpamTest-Info: Profiles 1866 [Dec 10 2007] X-SpamTest-Info: helo_type=3 X-SpamTest-Info: {HEADERS: header Content-Type found without required header Content-Transfer-Encoding} X-SpamTest-Method: none X-SpamTest-Rate: 19 X-SpamTest-Status: Not detected X-SpamTest-Status-Extended: not_detected X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release X-detected-kernel: by monty-python.gnu.org: FreeBSD 4.8-5.1 (or MacOS X 10.2-10.3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:85004 Archived-At: > 1. A customizable preference, desktop-auto-save, which indicates whether > desktop-save-in-desktop-dir should be added to auto-save-hook or not. Is > the easiest way to do this to add a private function that desktop mode > always adds to auto-save-hook and then have that private function test > a boolean which is itself the customizable preference when it runs, to see > whether to proceed or not? No need for a separate function. You could just change desktop-save-mode as follows: (define-minor-mode desktop-save-mode :global t :group 'desktop (if desktop-save-mode (if desktop-auto-save (add-hook 'auto-save-hook 'desktop-save-in-desktop-dir)) (remove-hook 'auto-save-hook 'desktop-save-in-desktop-dir))) But please note that I still think it would be better to use a timer. You can look in savehist.el that it uses a separate non-idle timer. It seems reasonable to do the same in desktop.el. > 2. Change desktop-save-in-desktop-dir so that it only prompts for > a directory if it is called interactively. The normal way seems to be to > add an optional argument as described in the help for interactive-p. I think it should be replaced with: (defun desktop-save-in-desktop-dir (&optional dirname) "Save the desktop in directory `desktop-dirname'." (interactive (list (or desktop-dirname (read-directory-name "Directory to save desktop file in: ")))) (when (and (null dirname) desktop-dirname) (setq dirname desktop-dirname)) (when dirname (desktop-save dirname) (message "Desktop saved in %s" dirname))) > 3. Change desktop-save-in-desktop-dir to be like savehist-mode, only > actually writing the file when the history has changed since the > last time. This is easy to do once we will decide what auto-saving method to use. -- Juri Linkov http://www.jurta.org/emacs/