* 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:
parent
43901444a4
commit
c40408fbe7
3 changed files with 39 additions and 2 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue