# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: kremser.andreas@googlemail.com-20120204184227-\ # vshwnek1lbyc32vb # target_branch: bzr://bzr.savannah.gnu.org/emacs/trunk/ # testament_sha1: 4774810212441e716205190945f17efbf28fa08f # timestamp: 2012-02-04 19:59:34 +0100 # base_revision_id: cyd@gnu.org-20120204151054-0ngdswa8xslby3aw # # Begin patch === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-04 09:57:09 +0000 +++ lisp/ChangeLog 2012-02-04 18:42:27 +0000 @@ -1,3 +1,7 @@ +2012-02-04 Andreas Kremser + + * hexl.el (hexl-insert-char): Allow directly entering hex-values in hexl mode while in hex-area. + 2012-02-04 Lars Ljung (tiny change) * eshell/esh-ext.el (eshell-windows-shell-file): Match "cmdproxy" === modified file 'lisp/hexl.el' --- lisp/hexl.el 2012-01-19 07:21:25 +0000 +++ lisp/hexl.el 2012-02-04 18:40:09 +0000 @@ -918,6 +918,52 @@ (/ (% address 16) 2))) (ascii-position (+ (* (/ address 16) 68) 51 (point-min) (% address 16))) + (low-ch (downcase ch))) + (if (= (point) ascii-position) + (progn + (goto-char hex-position) + (delete-char 2) + (insert (format "%02x" ch)) + (goto-char ascii-position) + (delete-char 1) + (insert (hexl-printable-character ch)) + (or (eq address hexl-max-address) + (setq address (1+ address))) + (hexl-goto-address address) + (beginning-of-line) + (forward-char 51) + (forward-char (% address 16))) + (if (or (and (>= ch (string-to-char "0")) (<= ch (string-to-char "9"))) + (and (>= low-ch (string-to-char "a")) (<= low-ch (string-to-char "f")))) + (progn + (goto-char (max (- (point) (point-min) -1) + (hexl-address-to-marker address))) + (delete-char 1) + (insert low-ch) + (let ((curp (point)) + (av (+ (* 16 (hexl-hex-char-to-integer (char-after hex-position ))) + (hexl-hex-char-to-integer (char-after (+ 1 hex-position)))))) + (goto-char ascii-position) + (delete-char 1) + (insert (hexl-printable-character av)) + (goto-char curp))))) + (setq num (1- num)))))) + +(defun hexl-insert-char (ch num) + "Insert the character CH NUM times in a hexl buffer. + +CH must be a unibyte character whose value is between 0 and 255." + (if (or (< ch 0) (> ch 255)) + (error "Invalid character 0x%x -- must be in the range [0..255]" ch)) + (let ((address (hexl-current-address t))) + (while (> num 0) + (let ((hex-position + (+ (* (/ address 16) 68) + 10 (point-min) + (* 2 (% address 16)) + (/ (% address 16) 2))) + (ascii-position + (+ (* (/ address 16) 68) 51 (point-min) (% address 16))) at-ascii-position) (if (= (point) ascii-position) (setq at-ascii-position t)) # Begin bundle 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 G41SKxcmFov7vMF3AuTsFtZ/8XckU4UJBDbFzjA=