Merge from emacs--devo--0
[gnus] / lisp / dig.el
index eb70722..1675543 100644 (file)
@@ -1,14 +1,16 @@
 ;;; dig.el --- Domain Name System dig interface
-;; Copyright (c) 2000 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org>
 ;; Keywords: DNS BIND dig
 
-;; This file is not a part of GNU Emacs, but the same permissions apply.
+;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published
-;; by the Free Software Foundation; either version 2, or (at your
+;; by the Free Software Foundation; either version 3, or (at your
 ;; option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful, but
@@ -18,8 +20,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
@@ -40,7 +42,8 @@
 (eval-when-compile (require 'cl))
 
 (defgroup dig nil
-  "Dig configuration.")
+  "Dig configuration."
+  :group 'comm)
 
 (defcustom dig-program "dig"
   "Name of dig (domain information groper) binary."
@@ -147,7 +150,11 @@ Buffer should contain output generated by `dig-invoke'."
     (set (make-local-variable 'font-lock-defaults)
         '(dig-font-lock-keywords t)))
   (when (featurep 'font-lock)
-    (font-lock-set-defaults)))
+    (font-lock-set-defaults))
+  (save-current-buffer
+    (if (fboundp 'run-mode-hooks)
+        (run-mode-hooks 'dig-mode-hook)
+      (run-hooks 'dig-mode-hook))))
 
 (defun dig-exit ()
   "Quit dig output buffer."
@@ -168,6 +175,22 @@ Optional arguments are passed to `dig-invoke'."
   (setq buffer-read-only t)
   (set-buffer-modified-p nil))
 
+;; named for consistency with query-dns in dns.el
+(defun query-dig (domain &optional
+                        query-type query-class query-option dig-option server)
+  "Query addresses of a DOMAIN using dig.
+It works by calling `dig-invoke' and `dig-extract-rr'.  Optional
+arguments are passed to `dig-invoke' and `dig-extract-rr'.  Returns
+nil for domain/class/type queries that results in no data."
+(let ((buffer (dig-invoke domain query-type query-class
+                         query-option dig-option server)))
+  (when buffer
+    (switch-to-buffer buffer)
+    (let ((digger (dig-extract-rr domain query-type query-class)))
+      (kill-buffer buffer)
+      digger))))
+
 (provide 'dig)
 
+;;; arch-tag: 1d61726e-9400-4013-9ae7-4035e0c7f7d6
 ;;; dig.el ends here