]> git.eshelyaron.com Git - emacs.git/commitdiff
Derive dig-mode from special-mode
authorMark Oteiza <mvoteiza@udel.edu>
Thu, 20 Oct 2016 03:59:04 +0000 (23:59 -0400)
committerMark Oteiza <mvoteiza@udel.edu>
Thu, 20 Oct 2016 03:59:04 +0000 (23:59 -0400)
* 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.

lisp/net/dig.el

index 02cb627cfd33fd3e9ed9c1dad5dbf96a4827686a..338afca15f1ce0c73762819e821ab089c4d3f5bc 100644 (file)
@@ -36,8 +36,6 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
-
 (defgroup dig nil
   "Dig configuration."
   :group 'comm)
@@ -126,15 +124,13 @@ Buffer should contain output generated by `dig-invoke'."
 ;; `font-lock-defaults' buffer-local variable.
 (put 'dig-mode 'font-lock-defaults '(dig-font-lock-keywords t))
 
-(put 'dig-mode 'mode-class 'special)
-
 (defvar dig-mode-map
   (let ((map (make-sparse-keymap)))
-    (suppress-keymap map)
+    (define-key map "g" nil)
     (define-key map "q" 'dig-exit)
     map))
 
-(define-derived-mode dig-mode nil "Dig"
+(define-derived-mode dig-mode special-mode "Dig"
   "Major mode for displaying dig output."
   (buffer-disable-undo)
   (unless (featurep 'xemacs)
@@ -148,7 +144,7 @@ Buffer should contain output generated by `dig-invoke'."
 (defun dig-exit ()
   "Quit dig output buffer."
   (interactive)
-  (kill-buffer (current-buffer)))
+  (quit-window t))
 
 ;;;###autoload
 (defun dig (domain &optional
@@ -156,14 +152,12 @@ Buffer should contain output generated by `dig-invoke'."
   "Query addresses of a DOMAIN using dig, by calling `dig-invoke'.
 Optional arguments are passed to `dig-invoke'."
   (interactive "sHost: ")
-  (switch-to-buffer
+  (pop-to-buffer-same-window
    (dig-invoke domain query-type query-class query-option dig-option server))
   (goto-char (point-min))
   (and (search-forward ";; ANSWER SECTION:" nil t)
        (forward-line))
-  (dig-mode)
-  (setq buffer-read-only t)
-  (set-buffer-modified-p nil))
+  (dig-mode))
 
 ;; named for consistency with query-dns in dns.el
 (defun query-dig (domain &optional
@@ -175,7 +169,7 @@ Returns nil for domain/class/type queries that result in no data."
 (let ((buffer (dig-invoke domain query-type query-class
                          query-option dig-option server)))
   (when buffer
-    (switch-to-buffer buffer)
+    (pop-to-buffer-same-window buffer)
     (let ((digger (dig-extract-rr domain query-type query-class)))
       (kill-buffer buffer)
       digger))))