Package: emacs;
Reported by: "Eric Hanchrow" <eric.hanchrow <at> gmail.com>
Date: Mon, 8 Dec 2008 00:25:03 UTC
Severity: normal
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: "Eric Hanchrow" <eric.hanchrow <at> gmail.com> To: emacs-pretest-bug <at> gnu.org Subject: bug#1511: 23.0.60; [PATCH] auto-insert: use expand-file-name rather than "concat". Date: Sun, 7 Dec 2008 16:20:40 -0800
Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the emacs-pretest-bug <at> gnu.org mailing list. Please describe exactly what actions triggered the bug and the precise symptoms of the bug: I put this in my .emacs, and evaluated it: (add-to-list 'auto-insert-alist `(scheme-mode . ,(expand-file-name "~/doodles/plt-scheme/v4-script-template.ss"))) I then visited a non-existent file whose name ended wit ".ss", and noted that it was properly put into scheme-mode -- but it remained empty, whereas I'd wanted to see the contents of v4-script-template.ss. I determined that the auto-insert function was doing nothing when the file name was absolute (but it appeared to do the right thing for relative paths). Anyway, here's the patch that works for me: From 39bd280f55edd84d025b166a799c5a62bd2a6f9a Mon Sep 17 00:00:00 2001 From: Eric Hanchrow <offby1 <at> blarg.net> Date: Sun, 7 Dec 2008 08:09:24 -0800 Subject: [PATCH] auto-insert: use expand-file-name rather than "concat". --- lisp/autoinsert.el | 52 +++++++++++++++++++++++++++------------------------- 1 files changed, 27 insertions(+), 25 deletions(-) diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index 92a5f9f..3f555f8 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el @@ -343,31 +343,33 @@ Matches the visited file name against the elements of `auto-insert-alist'." ;; Now, if we found something, do it (and action - (if (stringp action) - (file-readable-p (concat auto-insert-directory action)) - t) - (if auto-insert-query - (or (if (eq auto-insert-query 'function) - (eq this-command 'auto-insert)) - (y-or-n-p (format auto-insert-prompt desc))) - t) - (mapc - (lambda (action) - (if (stringp action) - (if (file-readable-p - (setq action (concat auto-insert-directory action))) - (insert-file-contents action)) - (save-window-excursion - ;; make buffer visible before skeleton or function - ;; which might ask the user for something - (switch-to-buffer (current-buffer)) - (if (and (consp action) - (not (eq (car action) 'lambda))) - (skeleton-insert action) - (funcall action))))) - (if (vectorp action) - action - (vector action)))) + (let ((abs-file-name + (and (stringp action) + (expand-file-name action auto-insert-directory)))) + (and + (stringp abs-file-name) + (if auto-insert-query + (or (if (eq auto-insert-query 'function) + (eq this-command 'auto-insert)) + (y-or-n-p (format auto-insert-prompt desc))) + t) + (mapc + (lambda (action) + (if (stringp action) + (if (file-readable-p + (setq action (expand-file-name action auto-insert-directory))) + (insert-file-contents action)) + (save-window-excursion + ;; make buffer visible before skeleton or function + ;; which might ask the user for something + (switch-to-buffer (current-buffer)) + (if (and (consp action) + (not (eq (car action) 'lambda))) + (skeleton-insert action) + (funcall action))))) + (if (vectorp action) + action + (vector abs-file-name)))))) (and (buffer-modified-p) (not (eq this-command 'auto-insert)) (set-buffer-modified-p (eq auto-insert t))))) -- 1.6.1.rc1.35.gae26e If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /usr/local/src/emacs-with-my-tweaks.git/etc/DEBUG for instructions. In GNU Emacs 23.0.60.1 (i686-pc-linux-gnu, GTK+ Version 2.14.4) of 2008-12-06 on enver-laptop Windowing system distributor `The X.Org Foundation', version 11.0.10502000 Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: nil value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: Diff Minor modes in effect: erc-ring-mode: t erc-pcomplete-mode: t erc-netsplit-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-autojoin-mode: t erc-track-mode: t erc-match-mode: t erc-services-mode: t erc-networks-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-readonly-mode: t desktop-save-mode: t display-time-mode: t global-auto-revert-mode: t diff-auto-refine-mode: t shell-dirtrack-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: SPC " y o w " M-> <return> M-p C-p C-p C-p C-p M-b M-d M e SPC < n o b o d y @ n o q <backspace> w h e r e . c o m > M-> <return> M-p C-p C-p C-p C-p M-f M-f C-b \ n M-> <return> M-p C-M-p C-n M-m C-M-k C-M-u C-y C-M-k C-M-p M-1 M-( e x t r a c e <backspace> t - a l l - f i e l d s C-M-o C-M-u C-M-q M-> <return> M-p C-u C-p M-f M-f C-d C-d C-n M-b M-b M-b C-b C-M-k M-SPC C-f M-d s n r u <backspace> <backspace> u r k @ z o t z . o r g M-> <return> C-x b . s s C-g C-x b i d o <return> M-1 C-x $ C-x b s h e <return> c d SPC / u s r l o c <tab> <backspace> <backspace> <backspace> / l o c <tab> r <tab> <backspace> <backspace> s r <tab> e m <tab> - <tab> w <tab> <return> g i t SPC s h o w <return> C-x 1 C-c C-p M-0 C-l M-> M-p SPC - - i g n o r e - a l l - s p a c e <return> C-c C-p M-0 C-l C-v M-> M-p C-a C-e C-c C-u f o r SPC <M-backspace> g i t SPC f o r m a t - p a t h <backspace> c h SPC H E A D ^ <return> C-p M-x f f a p <return> <return> C-x b i n i <return> C-a C-p M-m C-M-SPC M-w M-x r e p o r t - e m <tab> <return> C-x o C-x b C-x b <return> M-x M-p <return> Recent messages: Completed Partially completed Type space to flush; repeat completion command to scroll Completed /usr/local/src/emacs-with-my-tweaks.git Mark set History item: 1 Mark set History item: 1 Mark set byte-code: Command attempted to use minibuffer while in minibuffer
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.