branch: externals/poke commit 6a3da0fe9ee3bbf3be411c6e3a5033f1df975fc8 Author: Jose E. Marchesi <jose.march...@oracle.com> Commit: Jose E. Marchesi <jose.march...@oracle.com>
Add setting for byte endianness. --- poke.el | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/poke.el b/poke.el index 18b54d048a..9fd161d893 100644 --- a/poke.el +++ b/poke.el @@ -1288,11 +1288,18 @@ at the top of the `poke-maps-stack' stack." ;;;; poke-settings +(defvar poke-setting-endian "big") (defvar poke-setting-pretty-print "no") (defvar poke-setting-omode "plain") (defvar poke-setting-omaps "no") (defvar poke-setting-obase 10) +(defun poke-setting-set-endian (val) + (unless (member val '("big" "little" "host" "network")) + (error "Invalid setting for byte endianness. +Expected \"big\", \"little\", \"host\" or \"network\".")) + (poke-code-send (concat "set_endian (" val ");"))) + (defun poke-setting-set-pretty-print (val) (unless (member val '("yes" "no")) (error "Invalid setting for pretty-print. Expected \"yes\" or \"no\".")) @@ -1326,7 +1333,8 @@ Expected 2, 8, 10 or 16.")) (defun poke-init-settings () (poke-setting-set-pretty-print poke-setting-pretty-print) - (poke-setting-set-omode poke-setting-omode)) + (poke-setting-set-omode poke-setting-omode) + (poke-setting-set-endian poke-setting-endian)) (defvar poke-settings-map (let ((map (make-sparse-keymap))) @@ -1339,6 +1347,14 @@ Expected 2, 8, 10 or 16.")) (let ((inhibit-read-only t)) (erase-buffer)) (remove-overlays) + (widget-insert "Byte endianness:\n") + (widget-create 'radio-button-choice + :value poke-setting-endian + :notify (lambda (widget &rest _) + (poke-setting-set-endian (widget-value widget)) + (setq poke-setting-endian (widget-value widget))) + '(item "little") '(item "big") '(item "host") '(item "network")) + (widget-insert "\n") (widget-insert "Output mode:\n") (widget-create 'radio-button-choice :value poke-setting-omode @@ -1371,6 +1387,9 @@ Expected 2, 8, 10 or 16.")) (setq poke-setting-omaps (widget-value widget))) '(item "yes") '(item "no")) (widget-insert "\n") + ;; XXX oacutoff + ;; XXX odepth + ;; XXX oindent (use-local-map poke-settings-map) (widget-setup)) @@ -1380,7 +1399,8 @@ Expected 2, 8, 10 or 16.")) (unless buf (setq buf (get-buffer-create "*poke-settings*")) (with-current-buffer buf - (poke-settings-create-widgets)))) + (poke-settings-create-widgets) + (goto-char (point-min))))) (when and-display (switch-to-buffer-other-window "*poke-settings*")))