# HG changeset patch # User Richard M. Stallman # Date 773997931 0 # Node ID e03e94b14ba4b70aaf37f22bd8cb58478134c971 # Parent 0b9e18f9b0859b6075058ff1f9fd928d583dba8f (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. diff -r 0b9e18f9b085 -r e03e94b14ba4 lisp/hexl.el --- 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))