diff options
author | Romain Francoise <romain@orebokech.com> | 2006-08-10 20:06:19 +0000 |
---|---|---|
committer | Romain Francoise <romain@orebokech.com> | 2006-08-10 20:06:19 +0000 |
commit | c40408fbe7d325d81ebe784f9565edb39ca23d9f (patch) | |
tree | e8e9e6b19eef6dcb9a80597a1eee419c3a4ef8c7 | |
parent | 43901444a44d09f2fab59a1127e2659426dcd53e (diff) | |
download | emacs-c40408fbe7d325d81ebe784f9565edb39ca23d9f.tar.gz |
* 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.
-rw-r--r-- | lisp/ChangeLog | 10 | ||||
-rw-r--r-- | lisp/obsolete/zone-mode.el (renamed from lisp/net/zone-mode.el) | 2 | ||||
-rw-r--r-- | lisp/textmodes/dns-mode.el | 29 |
3 files changed, 39 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 213f5939f62..a994da42625 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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) diff --git a/lisp/net/zone-mode.el b/lisp/obsolete/zone-mode.el index 441ef143f9c..d8bfefc1e87 100644 --- a/lisp/net/zone-mode.el +++ b/lisp/obsolete/zone-mode.el @@ -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. diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el index a323d4c4468..78be0f888a3 100644 --- a/lisp/textmodes/dns-mode.el +++ b/lisp/textmodes/dns-mode.el @@ -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) |