home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / gnu / emacs / sources / 793 < prev    next >
Encoding:
Text File  |  1992-11-13  |  1.8 KB  |  47 lines

  1. Newsgroups: gnu.emacs.sources
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!fly.cnuce.cnr.it!pot
  3. From: pot@fly.cnuce.cnr.it (Francesco Potorti`)
  4. Subject: hexlify-buffer
  5. Message-ID: <m0mpyAL-0001BGC@fly.cnuce.cnr.IT>
  6. Sender: daemon@cis.ohio-state.edu
  7. Reply-To: pot@cnuce.cnr.it
  8. Organization: Source only  Discussion and requests in gnu.emacs.help.
  9. Distribution: gnu
  10. Date: Fri, 13 Nov 1992 12:22:00 GMT
  11. Lines: 34
  12.  
  13. Sorry, the previously posted function contained a DEL character that
  14. has been deleted by mailers.
  15. This one should do the work.
  16. Again, anyone able to make it faster?
  17.  
  18. (defun hexlify-buffer ()
  19.   "Convert the current buffer to hexl format."
  20.   (interactive)
  21.   (goto-char (point-min))
  22.   (let ((len 0) (address 0) (chars "")
  23.     (print-chars
  24.      (vconcat
  25.       (mapcar 'char-to-string (make-string 32 ?.))
  26.       (mapcar 'char-to-string " !\"#$%&'()*+,-./0123456789:;<=>?@")
  27.       (mapcar 'char-to-string "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`")
  28.       (mapcar 'char-to-string "abcdefghijklmnopqrstuvwxyz{|}~")
  29.       (mapcar 'char-to-string (make-string 129 ?.)))))
  30.     (while (not (eobp))
  31.       (setq len (min 16 (- (point-max) (point))))
  32.       (setq chars (buffer-substring (point) (+ (point) len)))
  33.       (delete-char len)
  34.       (insert (format "%07x0:    " address)
  35.           (mapconcat '(lambda (arg) (format "%02x" arg)) chars ""))
  36.       (if (eobp) (insert-char ?  (* 2 (- 16 len))))
  37.       (backward-char 28)
  38.       (looking-at
  39.       "\\(....\\)\\(....\\)\\(....\\)\\(....\\)\\(....\\)\\(....\\)\\(....\\)")
  40.       (replace-match " \\1 \\2 \\3  \\4 \\5 \\6 \\7     \"")
  41.       (insert (mapconcat '(lambda (c) (aref print-chars c)) chars "") "\"\n")
  42.       (setq address (1+ address)))))
  43.  
  44.             Francesco Potorti`    | pot@cnuce.cnr.IT (Internet)
  45.                      | 39369::pot       (DECnet)
  46.                     | +39-50-593203    (voice)
  47.