[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
patches for etags and shell-command
From: |
John Williams |
Subject: |
patches for etags and shell-command |
Date: |
Fri, 20 Jan 2006 10:29:40 -0600 |
User-agent: |
Thunderbird 1.5 (X11/20051201) |
Hello everyone,
This if my first post to emacs-devel, so feel free to correct my etiquette :)
I have two patches today; the first one changes shell-command so that the
default interactive argument is the current buffer's filename. This is inspired
by vim, where a '%' character in a command expands to the current buffer's filename.
--- simple.el 2006-01-20 09:52:46.000000000 -0600
+++ simple-1.el 2006-01-20 10:08:41.000000000 -0600
@@ -1797,8 +1797,12 @@
In an interactive call, the variable `shell-command-default-error-buffer'
specifies the value of ERROR-BUFFER."
- (interactive (list (read-from-minibuffer "Shell command: "
- nil nil nil 'shell-command-history)
+ (interactive (list (read-from-minibuffer
+ "Shell command: "
+ nil nil nil
+ 'shell-command-history
+ (and (buffer-file-name)
+ (file-relative-name (buffer-file-name))))
current-prefix-arg
shell-command-default-error-buffer))
;; Look for a handler in case default-directory is a remote file name.
This patch corrects a bug in etags that causes completion to only consider the
tags in a single TAGS buffer. With the match tag completion will consider tags
from all the active TAGS buffers. (The diff is a bit longer than it really
needs to be because I inadvertently changed tabs to spaces--I didn't change back
to tabs because spaces appear to be the preferred from of indentation based on
emacs's default settings.)
--- etags.el 2006-01-20 09:53:43.000000000 -0600
+++ etags-1.el 2006-01-20 10:14:31.000000000 -0600
@@ -747,28 +747,21 @@
(defun tags-completion-table ()
(or tags-completion-table
(condition-case ()
- (prog2
- (message "Making tags completion table for %s..." buffer-file-name)
- (let ((included (tags-included-tables))
- (table (funcall tags-completion-table-function)))
- (save-excursion
- ;; Iterate over the list of included tables, and combine each
- ;; included table's completion obarray to the parent obarray.
- (while included
- ;; Visit the buffer.
- (let ((tags-file-name (car included)))
- (visit-tags-table-buffer 'same))
- ;; Recurse in that buffer to compute its completion table.
- (if (tags-completion-table)
- ;; Combine the tables.
- (mapatoms (lambda (sym) (intern (symbol-name sym) table))
- tags-completion-table))
- (setq included (cdr included))))
- (setq tags-completion-table table))
- (message "Making tags completion table for %s...done"
- buffer-file-name))
- (quit (message "Tags completion table construction aborted.")
- (setq tags-completion-table nil)))))
+ (let (combined-table)
+ (save-excursion
+ (while (visit-tags-table-buffer (and combined-table t))
+ (let ((included (tags-included-tables))
+ (table (funcall tags-completion-table-function)))
+ (if (null combined-table)
+ (setq combined-table table)
+ (mapatoms (lambda (sym)
+ (intern (symbol-name sym) combined-table))
+ table))
+ (message "Making tags completion table for %s...done"
+ buffer-file-name))))
+ (setq tags-completion-table combined-table))
+ (quit (message "Tags completion table construction aborted.")
+ (setq tags-completion-table nil)))))
;; Completion function for tags. Does normal try-completion,
;; but builds tags-completion-table on demand.
- patches for etags and shell-command,
John Williams <=