aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Oteiza2016-10-19 23:59:04 -0400
committerMark Oteiza2016-10-19 23:59:04 -0400
commit10a2239627bd5369bf46d013eb7cfbe27553c8d9 (patch)
treefc95e70f62680c4e29c93b22fe183b50d3e2e2ca
parenteb610f270ea919107b10bb8ece200a87abac6e0e (diff)
downloademacs-10a2239627bd5369bf46d013eb7cfbe27553c8d9.tar.gz
emacs-10a2239627bd5369bf46d013eb7cfbe27553c8d9.zip
Derive dig-mode from special-mode
* lisp/net/dig.el: Remove unused cl dependency. Remove top level mode-class assignment. (dig-mode-map): Unmap g, as dig has no notion of reverting the buffer. (dig-mode): Derive from special-mode. (dig-exit): Use quit-window instead. (dig): Use pop-to-buffer-same-window. Remove redundant assignments. (query-dig): Use pop-to-buffer-same-window.
-rw-r--r--lisp/net/dig.el18
1 files changed, 6 insertions, 12 deletions
diff --git a/lisp/net/dig.el b/lisp/net/dig.el
index 02cb627cfd3..338afca15f1 100644
--- a/lisp/net/dig.el
+++ b/lisp/net/dig.el
@@ -36,8 +36,6 @@
36 36
37;;; Code: 37;;; Code:
38 38
39(eval-when-compile (require 'cl))
40
41(defgroup dig nil 39(defgroup dig nil
42 "Dig configuration." 40 "Dig configuration."
43 :group 'comm) 41 :group 'comm)
@@ -126,15 +124,13 @@ Buffer should contain output generated by `dig-invoke'."
126;; `font-lock-defaults' buffer-local variable. 124;; `font-lock-defaults' buffer-local variable.
127(put 'dig-mode 'font-lock-defaults '(dig-font-lock-keywords t)) 125(put 'dig-mode 'font-lock-defaults '(dig-font-lock-keywords t))
128 126
129(put 'dig-mode 'mode-class 'special)
130
131(defvar dig-mode-map 127(defvar dig-mode-map
132 (let ((map (make-sparse-keymap))) 128 (let ((map (make-sparse-keymap)))
133 (suppress-keymap map) 129 (define-key map "g" nil)
134 (define-key map "q" 'dig-exit) 130 (define-key map "q" 'dig-exit)
135 map)) 131 map))
136 132
137(define-derived-mode dig-mode nil "Dig" 133(define-derived-mode dig-mode special-mode "Dig"
138 "Major mode for displaying dig output." 134 "Major mode for displaying dig output."
139 (buffer-disable-undo) 135 (buffer-disable-undo)
140 (unless (featurep 'xemacs) 136 (unless (featurep 'xemacs)
@@ -148,7 +144,7 @@ Buffer should contain output generated by `dig-invoke'."
148(defun dig-exit () 144(defun dig-exit ()
149 "Quit dig output buffer." 145 "Quit dig output buffer."
150 (interactive) 146 (interactive)
151 (kill-buffer (current-buffer))) 147 (quit-window t))
152 148
153;;;###autoload 149;;;###autoload
154(defun dig (domain &optional 150(defun dig (domain &optional
@@ -156,14 +152,12 @@ Buffer should contain output generated by `dig-invoke'."
156 "Query addresses of a DOMAIN using dig, by calling `dig-invoke'. 152 "Query addresses of a DOMAIN using dig, by calling `dig-invoke'.
157Optional arguments are passed to `dig-invoke'." 153Optional arguments are passed to `dig-invoke'."
158 (interactive "sHost: ") 154 (interactive "sHost: ")
159 (switch-to-buffer 155 (pop-to-buffer-same-window
160 (dig-invoke domain query-type query-class query-option dig-option server)) 156 (dig-invoke domain query-type query-class query-option dig-option server))
161 (goto-char (point-min)) 157 (goto-char (point-min))
162 (and (search-forward ";; ANSWER SECTION:" nil t) 158 (and (search-forward ";; ANSWER SECTION:" nil t)
163 (forward-line)) 159 (forward-line))
164 (dig-mode) 160 (dig-mode))
165 (setq buffer-read-only t)
166 (set-buffer-modified-p nil))
167 161
168;; named for consistency with query-dns in dns.el 162;; named for consistency with query-dns in dns.el
169(defun query-dig (domain &optional 163(defun query-dig (domain &optional
@@ -175,7 +169,7 @@ Returns nil for domain/class/type queries that result in no data."
175(let ((buffer (dig-invoke domain query-type query-class 169(let ((buffer (dig-invoke domain query-type query-class
176 query-option dig-option server))) 170 query-option dig-option server)))
177 (when buffer 171 (when buffer
178 (switch-to-buffer buffer) 172 (pop-to-buffer-same-window buffer)
179 (let ((digger (dig-extract-rr domain query-type query-class))) 173 (let ((digger (dig-extract-rr domain query-type query-class)))
180 (kill-buffer buffer) 174 (kill-buffer buffer)
181 digger)))) 175 digger))))