all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#10725: Hexl-Mode:Feature: Direct hex input in hex-area
@ 2012-02-04 19:03 Andreas Kremser
  2016-02-24  6:49 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Kremser @ 2012-02-04 19:03 UTC (permalink / raw)
  To: 10725

[-- Attachment #1: Type: text/plain, Size: 379 bytes --]

** Description

Allow directly entering hex-values in hexl mode while in
hex-area. Changed hexl-insert-char to treat text entered into the
hex-area differnt from text enterd into the ascii-area.

** ChangeLog


2012-02-04  Andreas Kremser  <kremser.andreas@googlemail.com>

        * hexl.el (hexl-insert-char): Allow directly entering
hex-values in hexl mode while in hex-area.

[-- Attachment #2: HEXLDHI.txt --]
[-- Type: text/plain, Size: 5548 bytes --]

# 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  <kremser.andreas@googlemail.com>
+
+	* hexl.el (hexl-insert-char): Allow directly entering hex-values in hexl mode while in hex-area.
+
 2012-02-04  Lars Ljung  <lars@matholka.se>  (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=

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-06-27 15:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-04 19:03 bug#10725: Hexl-Mode:Feature: Direct hex input in hex-area Andreas Kremser
2016-02-24  6:49 ` Lars Ingebrigtsen
2019-06-27 15:33   ` Lars Ingebrigtsen

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.