summaryrefslogtreecommitdiff
path: root/lisp/hexl.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2018-05-30 20:30:07 +0300
committerEli Zaretskii <eliz@gnu.org>2018-05-30 20:30:07 +0300
commitaa175a40586c1021549e775b30fb03b4ffb09ac0 (patch)
tree340d10918ffaa4dc85fe0dd6f625de9abf13f614 /lisp/hexl.el
parentb8e7749b3384ea14ca22be4d3adb8659f462ea06 (diff)
downloademacs-aa175a40586c1021549e775b30fb03b4ffb09ac0.tar.gz
Adapt hexl-mode to native line-number display
* lisp/hexl.el (hexl-mode-ruler): When display-line-numbers is in effect, adjust offsets and columns to account for the line-number display. (Bug#31595)
Diffstat (limited to 'lisp/hexl.el')
-rw-r--r--lisp/hexl.el14
1 files changed, 11 insertions, 3 deletions
diff --git a/lisp/hexl.el b/lisp/hexl.el
index d716405f97a..2c1a7de48a7 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -1104,8 +1104,15 @@ This function is assumed to be used as callback function for `hl-line-mode'."
"Return a string ruler for Hexl mode."
(let* ((highlight (mod (hexl-current-address) 16))
(s (cdr (assq hexl-bits hexl-rulers)))
- (pos 0))
+ (pos 0)
+ (lnum-width
+ (if display-line-numbers
+ (round (line-number-display-width 'columns))
+ 0)))
(set-text-properties 0 (length s) nil s)
+ (when (> lnum-width 0)
+ (setq s (concat (make-string lnum-width ? ) s))
+ (setq pos (+ pos lnum-width)))
;; Turn spaces in the header into stretch specs so they work
;; regardless of the header-line face.
(while (string-match "[ \t]+" s pos)
@@ -1116,10 +1123,11 @@ This function is assumed to be used as callback function for `hl-line-mode'."
s))
;; Highlight the current column.
(let ( (offset (+ (* 2 highlight) (/ (* 8 highlight) hexl-bits))) )
+ (if (> lnum-width 0) (setq offset (+ offset lnum-width)))
(put-text-property (+ 11 offset) (+ 13 offset) 'face 'highlight s))
;; Highlight the current ascii column
- (put-text-property (+ (hexl-ascii-start-column) highlight 1)
- (+ (hexl-ascii-start-column) highlight 2)
+ (put-text-property (+ (hexl-ascii-start-column) lnum-width highlight 1)
+ (+ (hexl-ascii-start-column) lnum-width highlight 2)
'face 'highlight s)
s))