From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: Re: [PATCH] Improve message when file to include is missing Date: Tue, 18 Feb 2014 15:55:24 +0100 Message-ID: <86bny4o4gz.fsf@somewhere.org> References: <86wqhpu021.fsf@somewhere.org> <87fvodvdh9.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hello Nicolas, Nicolas Goaziou wrote: > "Sebastien Vauban" writes: > >> When a SETUPFILE is missing, there is an error or message generated, but >> we don't know in which file the bad reference is -- when all those files >> are loaded during the agenda generation. >> >> Hence, a better message, specifying where to go and look for the bad >> link. > > What if `buffer-file-name' returns nil? Sure, the problem won't happen > during agenda generation, but `org-file-contents' is used elsewhere. > > Also, it is better to use: > > (buffer-file-name (buffer-base-buffer)) > > since the current buffer may be an indirect one. This should answer your (fruitful) comments. Best regards, Seb -- Sebastien Vauban >From 804fff53730f0da2e1b41b7b9f070e8e23c8974b Mon Sep 17 00:00:00 2001 From: "Sebastien Vauban" Date: Tue, 18 Feb 2014 15:49:57 +0100 Subject: [PATCH] Improve message when file to include is missing * org.el (org-file-contents): Improve message when linked file does not exist. --- lisp/org.el | 20 ++++++++++++-------- 1 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index dfb0517..138e735 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5230,14 +5230,18 @@ Support for group tags is controlled by the option (defun org-file-contents (file &optional noerror) "Return the contents of FILE, as a string." - (if (or (not file) (not (file-readable-p file))) - (if (not noerror) - (error "Cannot read file \"%s\"" file) - (message "Cannot read file \"%s\"" file) - "") - (with-temp-buffer - (insert-file-contents file) - (buffer-string)))) + (let* ((from-file (buffer-file-name (buffer-base-buffer))) + (info-from-file + (if from-file + (concat " (referenced in file \"" from-file "\")") + ""))) + (if (or (not file) (not (file-readable-p file))) + (if (not noerror) + (error "Cannot read file \"%s\"%s" file info-from-file) + (message "Cannot read file \"%s\"%s" file info-from-file)) + (with-temp-buffer + (insert-file-contents file) + (buffer-string))))) (defun org-extract-log-state-settings (x) "Extract the log state setting from a TODO keyword string. -- 1.7.9