X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fdig.el;h=9392c73855b8dbc0a9dc9a9c4b003a85a2c8634e;hb=6815f2238459cfda15565f2b3194e30d31bbe841;hp=de6a769903f11335e432b0b3988ae779709202e4;hpb=babe54cf5412efcfc7159935a3fb6d766ddf21f1;p=gnus diff --git a/lisp/dig.el b/lisp/dig.el index de6a76990..9392c7385 100644 --- a/lisp/dig.el +++ b/lisp/dig.el @@ -1,25 +1,25 @@ ;;; 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, 2009, 2010 Free Software Foundation, Inc. ;; Author: Simon Josefsson -;; Keywords: DNS BIND dig +;; Keywords: DNS BIND dig comm -;; 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 -;; option) any later version. +;; 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 3 of the License, or +;; (at your option) any later version. -;; GNU Emacs is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. ;; 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. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -31,12 +31,17 @@ ;; For use in elisp programs, call `dig-invoke' and use ;; `dig-extract-rr' to extract resource records. +;;; Release history: + +;; 2000-10-28 posted on gnu.emacs.sources + ;;; Code: (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." @@ -63,10 +68,10 @@ If nil, use system defaults." query-type query-class query-option dig-option server) "Call dig with given arguments and return buffer containing output. -DOMAIN is a string with a DNS domain. QUERY-TYPE is an optional string -with a DNS type. QUERY-CLASS is an optional string with a DNS class. -QUERY-OPTION is an optional string with dig \"query options\". -DIG-OPTIONS is an optional string with parameters for the dig program. +DOMAIN is a string with a DNS domain. QUERY-TYPE is an optional +string with a DNS type. QUERY-CLASS is an optional string with a DNS +class. QUERY-OPTION is an optional string with dig \"query options\". +DIG-OPTION is an optional string with parameters for the dig program. SERVER is an optional string with a domain name server to query. Dig is an external program found in the BIND name server distribution, @@ -131,25 +136,23 @@ Buffer should contain output generated by `dig-invoke'." (define-key dig-mode-map "q" 'dig-exit)) -(defun dig-mode () +(define-derived-mode dig-mode nil "Dig" "Major mode for displaying dig output." - (interactive) - (kill-all-local-variables) - (setq mode-name "dig") - (setq major-mode 'dig-mode) - (use-local-map dig-mode-map) (buffer-disable-undo) (unless (featurep 'xemacs) (set (make-local-variable 'font-lock-defaults) '(dig-font-lock-keywords t))) (when (featurep 'font-lock) - (font-lock-set-defaults))) + ;; FIXME: what is this for?? --Stef + (font-lock-set-defaults)) + ) (defun dig-exit () "Quit dig output buffer." (interactive) (kill-buffer (current-buffer))) +;;;###autoload (defun dig (domain &optional query-type query-class query-option dig-option server) "Query addresses of a DOMAIN using dig, by calling `dig-invoke'. @@ -164,6 +167,21 @@ 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 result 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) ;;; dig.el ends here