X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fdig.el;h=16755439bd8e97e64bb4b12f4aa1c0fe23ee587d;hb=9fb18b3babb46e47902c3627e541c230569ed7dd;hp=d719c381edbc814fad44d8c9375826bba4513de9;hpb=a96101a42935cba340e904577a5dc30d0127b95a;p=gnus diff --git a/lisp/dig.el b/lisp/dig.el index d719c381e..16755439b 100644 --- a/lisp/dig.el +++ b/lisp/dig.el @@ -1,14 +1,16 @@ ;;; dig.el --- Domain Name System dig interface -;; Copyright (c) 2000, 2001 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ;; Author: Simon Josefsson ;; 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