Mercurial > emacs
changeset 8222:e03e94b14ba4
(hexl-maybe-dehexlify-buffer): New function.
(hexl-mode): Add it to change-major-mode-hook.
(hexl-mode-exit): Remove kludge for mode-line update.
(hexlify-buffer): Doc fix.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 12 Jul 1994 07:25:31 +0000 |
parents | 0b9e18f9b085 |
children | e82a71b09d7a |
files | lisp/hexl.el |
diffstat | 1 files changed, 17 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/hexl.el Tue Jul 12 07:15:24 1994 +0000 +++ b/lisp/hexl.el Tue Jul 12 07:25:31 1994 +0000 @@ -172,6 +172,9 @@ (make-local-variable 'hexl-max-address) + (make-local-variable 'change-major-mode-hook) + (add-hook 'change-major-mode-hook 'hexl-maybe-dehexlify-buffer) + (let ((modified (buffer-modified-p)) (inhibit-read-only t) (original-point (1- (point)))) @@ -241,9 +244,19 @@ (setq mode-name hexl-mode-old-mode-name) (use-local-map hexl-mode-old-local-map) (setq major-mode hexl-mode-old-major-mode) -;; Kludge to update mode-line - (switch-to-buffer (current-buffer)) -) + (force-mode-line-update)) + +(defun hexl-maybe-dehexlify-buffer () + "Convert a hexl format buffer to binary. +Ask the user for confirmation." + (if (y-or-n-p "Convert contents back to binary format? ") + (let ((modified (buffer-modified-p)) + (inhibit-read-only t) + (original-point (1+ (hexl-current-address)))) + (dehexlify-buffer) + (remove-hook 'write-contents-hook 'hexl-save-buffer) + (set-buffer-modified-p modified) + (goto-char original-point)))) (defun hexl-current-address () "Return current hexl-address." @@ -498,7 +511,7 @@ ;;;###autoload (defun hexlify-buffer () - "Convert a binary buffer to hexl format" + "Convert a binary buffer to hexl format." (interactive) (let ((binary-process-output nil) ; for Ms-Dos (binary-process-input t))