From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tassilo Horn Subject: Canonical way to check if an org file is an agenda file? Date: Tue, 25 May 2010 15:14:33 +0200 Message-ID: <87vdacp1hi.fsf@thinkpad.tsdh.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from [140.186.70.92] (port=38989 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OGty6-0006Xm-UL for emacs-orgmode@gnu.org; Tue, 25 May 2010 09:14:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OGty5-0005kW-IW for emacs-orgmode@gnu.org; Tue, 25 May 2010 09:14:50 -0400 Received: from lo.gmane.org ([80.91.229.12]:42135) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OGty5-0005kE-CK for emacs-orgmode@gnu.org; Tue, 25 May 2010 09:14:49 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1OGtxw-0008Q1-Rb for emacs-orgmode@gnu.org; Tue, 25 May 2010 15:14:40 +0200 Received: from tsdh.uni-koblenz.de ([141.26.67.142]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 25 May 2010 15:14:40 +0200 Received: from tassilo by tsdh.uni-koblenz.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 25 May 2010 15:14:40 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Hi all, I use org files for anything I once used plain text files, so that I can use all org features. Unfortunately, for my agenda files I do some additional work. For example, I export my agenda files to iCalendar and show them with KOrganizer. And I update the list of appointments. To do that, I add some functions to `after-save-hook' in org-mode buffers, if that file is an agenda file. But the test that checks if `buffer-file-name' is an agenda file is very fragile and only matches my current setup (`org-agenda-files' is a list of exactly one directory). So is there a canonical way to check if a file is an agenda file, something like `org-agenda-file-p'? Argh, after writing this, I've discovered the function `org-agenda-files', which can be used to write such a predicate. So how about something like this? --8<---------------cut here---------------start------------->8--- (defun org-agenda-file-p (&optional file) "Return non-nil, if FILE is an agenda file. If FILE is omitted, use the file associated with the current buffer." (member (or file (buffer-file-name)) (org-agenda-files t))) --8<---------------cut here---------------end--------------->8--- If we agree that this is useful, I can wrap up a git patch this evening. Of course, you can also add that code on your own and add a meaningful log entry. Bye, Tassilo