* textmodes/dns-mode.el: Alias zone-mode' to dns-mode'.

(dns-mode-soa-auto-increment-serial): New user option.
(dns-mode-soa-maybe-increment-serial): New function.
(dns-mode): Add the latter to `write-contents-functions'.

* obsolete/zone-mode.el: Move to obsolete/ from net/.
Delete autoload cookies.
This commit is contained in:
Romain Francoise 2006-08-10 20:06:19 +00:00
parent 43901444a4
commit c40408fbe7
3 changed files with 39 additions and 2 deletions

View file

@ -1,3 +1,13 @@
2006-08-10 Romain Francoise <romain@orebokech.com>
* textmodes/dns-mode.el: Alias `zone-mode' to `dns-mode'.
(dns-mode-soa-auto-increment-serial): New user option.
(dns-mode-soa-maybe-increment-serial): New function.
(dns-mode): Add the latter to `write-contents-functions'.
* obsolete/zone-mode.el: Move to obsolete/ from net/.
Delete autoload cookies.
2006-08-10 John Wiegley <johnw@newartisans.com>
* eshell/em-glob.el (eshell-glob-chars-list)

View file

@ -64,7 +64,6 @@
(error "Serial numbers want to move backwards from %s to %s" old-serial new-serial)
(replace-match (concat cur-date new-seq old-flag) t t))))))
;;;###autoload
(defun zone-mode-update-serial-hook ()
"Update the serial number in a zone if the file was modified."
(interactive)
@ -82,7 +81,6 @@
(modify-syntax-entry ?\; "<" zone-mode-syntax-table)
(modify-syntax-entry ?\n ">" zone-mode-syntax-table))
;;;###autoload
(define-derived-mode zone-mode fundamental-mode "zone"
"A mode for editing DNS zone files.

View file

@ -90,6 +90,18 @@
:type 'sexp
:group 'dns-mode)
(defcustom dns-mode-soa-auto-increment-serial t
"Whether to increment the SOA serial number automatically.
If this variable is t, the serial number is incremented upon each save of
the file. If it is `ask', Emacs asks for confirmation whether it should
increment the serial upon saving. If nil, serials must be incremented
manually with \\[dns-mode-soa-increment-serial]."
:type '(choice (const :tag "Always" t)
(const :tag "Ask" ask)
(const :tag "Never" nil))
:group 'dns-mode)
;; Syntax table.
(defvar dns-mode-syntax-table
@ -135,8 +147,12 @@ Turning on DNS mode runs `dns-mode-hook'."
(unless (featurep 'xemacs)
(set (make-local-variable 'font-lock-defaults)
'(dns-mode-font-lock-keywords nil nil ((?_ . "w")))))
(add-hook 'write-contents-functions 'dns-mode-soa-maybe-increment-serial
nil t)
(easy-menu-add dns-mode-menu dns-mode-map))
;;;###autoload (defalias 'zone-mode 'dns-mode)
;; Tools.
;;;###autoload
@ -192,6 +208,19 @@ Turning on DNS mode runs `dns-mode-hook'."
(message "Replaced old serial %s with %s" serial new))
(error "Cannot locate serial number in SOA record"))))))
(defun dns-mode-soa-maybe-increment-serial ()
"Increment SOA serial if needed.
This function is run from `write-contents-functions'."
(when (and (buffer-modified-p)
dns-mode-soa-auto-increment-serial
(or (eq dns-mode-soa-auto-increment-serial t)
(y-or-n-p "Increment SOA serial? ")))
;; We must return nil. If `dns-mode-soa-increment-serial' signals
;; an error saving will fail but that probably means that the
;; serial should be fixed to comply with the RFC anyway! -rfr
(progn (dns-mode-soa-increment-serial) nil)))
;;;###autoload(add-to-list 'auto-mode-alist '("\\.soa\\'" . dns-mode))
(provide 'dns-mode)