;;; mon-empty-registers.el --- fill and empty register locations en masse.
;;; ================================================================ ;; Copyright © 2009, 2010 MON KEY. All rights reserved. ;;; ================================================================
;;; ================================================================
;; =================================================================
‘mon-reset-registers’, ‘mon-set-all-registers-to-char’, ;; `mon-query-replace-register1←reg2’, `mon-set-register->tags’, ;; `mon-make-set-register->tags-docs’, `mon-set-register->tags-semic’, ;; `mon-set-register->tags-sharp’, ‘mon-set-register-tags-loadtime’, ;; ‘mon-cntl-char-registers-loadtime’,‘*mon-cntl-char-registers*’, ‘*mon-cntl-char-registers*’, ;; ‘*mon-digit-registers*’, ‘*mon-digit-shifted-registers*’, ;; ‘*mon-symbol-registers*’, ‘*mon-upper-case-registers*’, ;; ‘*mon-lower-case-registers*’, ‘*register-of-registers*’, ;; ‘*mon-register-config-tags*’, ;;‘*registr-of-registers*’ → ‘*mon-registr-of-registers*’ ;;‘mon-catch-meta-key’ → mon-event-utils.el ;; ‘mon-decode-meta-key-event’ → mon-event-utils.el ;;‘prin1-char’. Can it? ;;‘mon-reset-registers’ uses ‘defun*’ etc. ;; `mon-help-put-var-doc-val->func’ ← `mon-doc-help-utils.el’ ;; ‘mon-stamp’ ← `mon-time-utils.el’ ;; ‘mon-is-digit’ ← ‘mon-utils’ ;; ‘mon-is-letter’ ← ‘mon-utils’ ;; `mon-string->symbol’ ← ‘mon-utils’ ;; ;;;; ================================================================= ;; This file is not part of GNU Emacs.
;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 3, or ;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details.
;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth ;; Floor, Boston, MA 02110-1301, USA. ;; ================================================================= ;; Permission is granted to copy, distribute and/or modify this ;; document under the terms of the GNU Free Documentation License, ;; Version 1.3 or any later version published by the Free Software ;; Foundation; with no Invariant Sections, no Front-Cover Texts, ;; and no Back-Cover Texts. A copy of the license is included in ;; the section entitled ``GNU Free Documentation License. ;; ;; A copy of the license is also available from the Free Software
(eval-when-compile (require ‘cl))
(unless (and (intern-soft “IS-MON-OBARRAY”) (bound-and-true-p IS-MON-OBARRAY)) (setq IS-MON-OBARRAY (make-vector 17 nil)))
;;; ==============================
‘mon-stamp’. :NO-COMMENT-PFX → Strings without whitespace wrapping.\n :CALLED-BY `mon-set-register->tags’.\n :NOTE Bound with ‘eval-after-load’ call to ‘mon-set-register-tags-loadtime’.\n :SEE-ALSO `mon-make-set-register->tags-docs’.\n►►►”) ;;‘mon-set-register-tags-loadtime’ at loadtime. ;;; If there are no problems/conflicts can safeley remove this block. ;;; (eval-when (compile load) ;;; (unless (bound-and-true-p mon-register-config-tags) ;;; (setq mon-register-config-tags;;; ==============================
‘mon-set-all-registers-to-char’, `mon-set-register->tags’ `mon-set-register->tags-semic’, `mon-set-register->tags-sharp’, ‘mon-set-register-tags-loadtime’.\n►►►” (let ((mp-keys mon-register-config-tags) (setr-wsp #’(lambda (x) (set-register (car x) (cond (sharp (concat “# “ (cdr x) “ “)) (semic (concat “;; “ (cdr x) “ “)) (t (concat “;; “ (cdr x) “ “)))))) (setr-no-wsp #’(lambda (x) (set-register (car x) (cdr x))) ) ;; Generates the backquote lambda template: ;; #’(lambda () (interactive) (insert (concat “# :ADDED “ (mon-stamp))))) (setr-tstamp #’(lambda (x) `(global-set-key ,(concat “\C-cri” (char-to-string (car x))) #’(lambda () (interactive) (insert (concat ,(cond (sharp (concat “# “ (cdr x) “ “)) (semic (concat “;; “ (cdr x) “ “)) (t (concat “;; “ (cdr x) “ “ ))) (mon-stamp))))) ;; Backquote template ) ;; Outer lambda )) (mapc #’(lambda (x) (funcall setr-wsp x)) (cdr (assoc :W-COMMENT-PFX mp-keys))) (mapc #’(lambda (x) (funcall setr-no-wsp x)) (cdr (assoc :NO-COMMENT-PFX mp-keys))) (mapc #’(lambda (x) (eval (funcall setr-tstamp x))) (cdr (assoc :TIMESTAMPED mp-keys))))) ;; ) ;;;;; ==============================
‘*mon-register-config-tags*’.\n►►►” (interactive) (mon-set-register->tags :semic t)) ;;;;; ==============================
‘*mon-register-config-tags*’.\n►►►” (interactive) (mon-set-register->tags :sharp t)) ;;;;; ==============================
‘eval-after-load’s call to ‘mon-set-register-tags-loadtime’.\n :SEE-ALSO ‘*mon-register-config-tags*’.\n►►►” (let* ((build-doc) (do-s t) (map-sym #’(lambda (q) (mapc #’(lambda (u) (push u build-doc)) (mapcar ‘car (cdr (assoc q mon-register-config-tags)))))) (map-kys #’(lambda (z) (if do-s (princ (format “\C-xri%s → %s\n” (char-to-string z)(get-register z)) (current-buffer)) (progn (princ (format “%s → “ (concat “\C-cri” (char-to-string z))) (current-buffer)) (funcall (key-binding (concat “\C-cri” (char-to-string z)))) (newline)))))) (princ “\n;; :SEMI-C-STYLE\n” (current-buffer)) ;; :WAS (mon-set-register->tags) (mon-set-register->tags-semic) (funcall map-sym :W-COMMENT-PFX) (funcall map-sym :NO-COMMENT-PFX) (mapc #’(lambda (s) (funcall map-kys s)) build-doc) (setq do-s nil build-doc nil) (funcall map-sym :TIMESTAMPED) (mapc #’(lambda (s) (funcall map-kys s)) build-doc) (princ “\n;; :SHARP-STYLE\n” (current-buffer)) ;; :WAS (mon-set-register->tags :sharp t) (mon-set-register->tags-sharp) (setq do-s t build-doc nil) (funcall map-sym :W-COMMENT-PFX) (funcall map-sym :NO-COMMENT-PFX) (mapc #’(lambda (s) (funcall map-kys s)) build-doc) (setq do-s nil build-doc nil) (funcall map-sym :TIMESTAMPED) (mapc #’(lambda (s) (funcall map-kys s)) build-doc)));;; ==============================
‘mon-set-register-*’ functions and variables. :CALLED-BY ‘eval-after-load’, peforms the following tasks:\n o Bind the alist key/value pairs for ‘*mon-register-config-tags*’.\n o Add `mon-set-register->tags’ docstring per ‘*mon-register-config-tags*’ vals.\n When optional arg W-MSG-USER is non-nil message user that variable ‘*mon-register-config-tags*’ were bound at loadtime.\n :SEE-ALSO `mon-set-register->tags-semic’, `mon-set-register->tags-sharp’, `mon-make-set-register->tags-docs’, ‘mon-bind-cifs-vars-at-loadtime’, ‘mon-bind-iptables-vars-at-loadtime’, ‘mon-bind-nefs-photos-at-loadtime’, ‘mon-bind-doc-help-proprietery-vars-at-loadtime’, ‘mon-set-register-tags-loadtime’, ‘mon-CL-cln-colon-swap’, ‘mon-after-mon-utils-loadtime’, ‘mon-check-feature-for-loadtime’.\n►►►” (unless (bound-and-true-p mon-register-config-tags) (setq w-msg-user t) (setq mon-register-config-tags ‘((:W-COMMENT-PFX . ((87 . “:WAS”) ;; W (70 . “:FROM”) ;; F (84 . “:TO”) ;; T (83 . “:SEE”) ;; S (78 . “:NOTE”) ;; N (79 . “:OLD”) ;; O (77 . “:MATCH”) ;; M (67 . “:CONFLICT”) ;; C (69 . “:EXAMPLE”) ;; E (85 . “:SOURCE”) ;; U (99 . “:CHANGED”) ;; c :NOTE non-timestamped version using Cxri-c (97 . “:ADDED”) ;; a :NOTE non-timestamped version using Cxri-cr (100 . “:DEFAULT”) ;; d (109 . “:MODIFICATIONS”) ;; m (102 . “:FILE”) ;; f (104 . “:CHANGESET”) ;; h (116 . “:TEST-ME”) ;; 6 (118 . “:VARIABLE”))) ;; v (:TIMESTAMPED . ((97 . “:ADDED”) ;; a :NOTE timestamped version using Ccri-a (99 . “:CHANGED”))) ;; c :NOTE timestamped version using Ccri-c (:NO-COMMENT-PFX . ((115 . “shell> “))))) ;; s ;; ;; Now, tack on the docstring for `mon-set-register->tags’ (let (put-reg) (setq put-reg (with-temp-buffer (mon-make-set-register->tags-docs) (buffer-substring-no-properties (buffer-end 0) (buffer-end 1)))) (mon-help-put-var-doc-val->func ‘put-reg ‘mon-set-register->tags “Set registers for config annotations which need BOL commented.\n When keyword arg SHARP is non-nil strings are wrapped in whitespace e.g. \”# :<TAG> \”\n When keyword arg SEMIC is non-nil strings are wrapped in whitespace e.g. \”;; :<TAG> \” This is the default format if neither keyword arg is non-nil.\n Register strings are built according to the alist key values of: `:W-COMMENT-PFX’ `:NO-COMMENT-PFX’ `:TIMESTAMPED’ in the variable ‘*mon-register-config-tags*’.\n :NOTE Elements of the alist key `:NO-COMMENT-PFX’ are not wrapped.\n Elements of the alist key `:TIMESTAMPED’ are bound with non-standard keybindings: \”\C-cri<CHAR>\” :WARNING! bound as with ‘global-set-key’.\n Elements of `:W-COMMENT-PFX’ `:NO-COMMENT-PFX’ have standard register insertion keybindings: \”\C-xri<CHAR>\”\n\n:EXAMPLE” nil “\n:NOTE Bound with ‘eval-after-load’ call to ‘mon-set-register-tags-loadtime’.\n :SEE-ALSO `mon-set-register->tags-semic’, `mon-set-register->tags-sharp’, `mon-make-set-register->tags-docs’.\n►►►”)) (when w-msg-user (message (concat “:FUNCTION ‘mon-set-register-tags-loadtime’ “ “– bound ‘*mon-register-config-tags*’ and documented “ “`mon-set-register->tags’ at loadtime”))))) ;;;;; ==============================
‘nth’ calls are prob. costlty… But, character representations ;;; disappear when uploaded to emacs-wiki. ;;; ;;; (”^A “^B “^C “^D” “^E” “^F” “^G” “^H” “^K” “^L” “^M” “^N” ;;; 0 1 2 3 4 5 6 7 8 9 10 11 ;;; “^O” “^P” “^Q” “^R” “^S” “^T” “^U” “^V” “^W” “^X” “^Y” “^Z”) ;;; 12 13 14 15 16 17 18 19 20 21 22 23 ;;; (defun mon-cntl-char-registers-loadtime () “Loadtime funtion to document the variable ‘*mon-cntl-char-registers*’.\n When ‘IS-MON-SYSTEM-P’ evaluated at loadtime by ‘mon-after-mon-utils-loadtime’.\n :EXAMPLE\n\n\(progn \(mon-cntl-char-registers-loadtime\) \(get ‘mon-cntl-char-registers ‘variable-documentation\)\)\n :SEE-ALSO .\n►►►” (let ((char-rep (mapcar #’char-to-string `(,@(number-sequence 1 8) ,@(number-sequence 11 26)))) self-puke) (setq self-puke (format (concat “List of character literals or Control Chars ‘C-[a-z]’ - ASCII chars 1-26.\n\n” “Table maps as follows:\n\n” “ <INT> <CHAR-REPRESENTATION>\n” “ <KEY-COMMAND>\n\n” “ 1 \”%s\” 2 \”%s\” 3 \”%s\” 4 \”%s\” 5 \”%s\” 6 \”%s\”\n “ “ \”?\\C-a\” \”?\\C-b\” \”?\\C-c\” \”?\\C-d\” \”?\\C-e\” \”?\\C-f\”\n\n” “ 7 \”%s\” 8 \”%s\” 9 TAB 10 LF 11 \”%s\” 12 \”%s\”\n “ “ \”?\\C-g\” \”?\\C-h\” \”?\\C-i\” \”\?\\C-j\” \”?\\C-k\” \”?\\C-l\”\n\n “ “ 13 \”%s\” 14 \”%s\” 15 \”%s\” 16 \”%s\” 17 \”%s\” 18 \”%s\”\n “ “ \”?\\C-m\” \”?\\C-n\” \”?\\C-o\” \”?\\C-p\” \”\?\\C-q\” \”?\\C-r\”\n\n “ “ 19 \”%s\” 20 \”%s\” 21 \”%s\” 22 \”%s\” 23 \”%s\” 24 \”%s\”\n “ “ \”?\\C-s\” \”?\\C-t\” \”?\\C-u\” \”?\\C-v\” \”?\\C-w\” \”?\\C-x\”\n\n “ “ 25 \”%s\” 26 \”%s\”\n “ “ \”?\\C-y\” \”?\\C-z\”\n\n” “:NOTE The chars 9, 10, and 17 e.g. TAB and LF ‘C-q’ are not bound in VARS list.\n” “They are included here for completeness.\n\n” “:EXAMPLE\n\n\(mapconcat #’char-to-string mon-cntl-char-registers \” \”\)\n\n” “:SEE-ALSO ‘*mon-digit-registers*’,‘*mon-digit-shifted-registers*’,\n” “‘*mon-symbol-registers*’, ‘*mon-upper-case-registers*’,\n” “‘*mon-lower-case-registers*’, ‘*mon-registr-of-registers*’,\n” “‘*mon-ascii-alpha-chars*’, ‘*mon-digit-chars*’, ‘*mon-whitespace-chars*’,\n” “‘mon-help-ascii-chars’.\n►►►”) ;; 1-6 (nth 0 char-rep)(nth 1 char-rep)(nth 2 char-rep) (nth 3 char-rep)(nth 4 char-rep)(nth 5 char-rep) ;; 7-12 (nth 6 char-rep)(nth 7 char-rep) (nth 8 char-rep)(nth 9 char-rep) ;; 13-18 (nth 10 char-rep)(nth 11 char-rep)(nth 12 char-rep) (nth 13 char-rep)(nth 14 char-rep)(nth 15 char-rep) ;; 19-24 (nth 16 char-rep)(nth 17 char-rep)(nth 18 char-rep) (nth 19 char-rep)(nth 20 char-rep)(nth 21 char-rep) ;; 25-26 (nth 22 char-rep)(nth 23 char-rep))) (put ‘mon-cntl-char-registers ‘variable-documentation self-puke)) (message (concat “:VARIABLE ‘*mon-cntl-char-registers*’ “ “– now has property `variable-documentation`”))) ;;;;; ==============================
‘*mon-cntl-char-registers*’, ‘*mon-digit-shifted-registers*’, ‘*mon-symbol-registers*’, ‘*mon-upper-case-registers*’, ‘*mon-lower-case-registers*’, ‘*mon-registr-of-registers*’, ‘*mon-ascii-alpha-chars*’, ‘*mon-whitespace-chars*’, ‘*mon-digit-chars*’, ‘mon-help-ascii-chars’.\n►►►”) ;; (unless (bound-and-true-p mon-digit-registers) (setq mon-digit-registers ‘(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9))) ;;;;; ==============================
‘*mon-cntl-char-registers*’, ‘*mon-cntl-char-registers*’, ‘*mon-digit-registers*’, ‘*mon-symbol-registers*’, ‘*mon-upper-case-registers*’, ‘*mon-lower-case-registers*’, ‘*mon-registr-of-registers*’, ‘*mon-ascii-alpha-chars*’, ‘*mon-whitespace-chars*’, ‘*mon-digit-chars*’, ‘mon-help-ascii-chars’.\n►►►”) ;; (unless (bound-and-true-p mon-digit-shifted-registers) (setq mon-digit-shifted-registers ‘(?! ?@ ?# ?$ ?% ?^ ?& ?* ?( ?)))) ;;;;; ==============================
‘*mon-cntl-char-registers*’, ‘*mon-cntl-char-registers*’, ‘*mon-digit-registers*’, ‘*mon-digit-shifted-registers*’, ‘*mon-upper-case-registers*’, ‘*mon-lower-case-registers*’, ‘*mon-registr-of-registers*’, ‘*mon-ascii-alpha-chars*’, ‘*mon-whitespace-chars*’, ‘*mon-digit-chars*’, ‘mon-help-ascii-chars’.\n►►►”) ;; (unless (bound-and-true-p mon-symbol-registers) (setq mon-symbol-registers ‘(?+ ?- ?. ?/ ?< ?= ?> ?\\ ?\[ ?\] ?_ ?{ ?| ?} ?~))) ;;;;; ==============================
‘*mon-cntl-char-registers*’, ‘*mon-cntl-char-registers*’, ‘*mon-digit-registers*’, ‘*mon-digit-shifted-registers*’, ‘*mon-symbol-registers*’, ‘*mon-lower-case-registers*’, ‘*mon-registr-of-registers*’, .\n►►►”) ;; (unless (bound-and-true-p mon-upper-case-registers) (setq mon-upper-case-registers ‘(?A ?B ?C ?D ?E ?F ?G ?H ?I ?J ?K ?L ?M ?N ?O ?P ?Q ?R ?S ?T ?U ?V ?W ?X ?Y ?Z))) ;;;;; ==============================
‘*mon-cntl-char-registers*’, ‘*mon-cntl-char-registers*’, ‘*mon-digit-registers*’, ‘*mon-digit-shifted-registers*’, ‘*mon-symbol-registers*’, ‘*mon-upper-case-registers*’, ‘*mon-registr-of-registers*’, ‘*mon-ascii-alpha-chars*’, ‘*mon-whitespace-chars*’, ‘*mon-digit-chars*’, ‘mon-help-ascii-chars’.\n►►►”) ;; (unless (bound-and-true-p mon-lower-case-registers) (setq mon-lower-case-registers ‘(?a ?b ?c ?d ?e ?f ?g ?h ?i ?j ?k ?l ?m ?n ?o ?p ?q ?r ?s ?t ?u ?v ?w ?x ?y ?z))) ;;;;; ==============================
‘*registr-of-registers*’ → ‘*mon-registr-of-registers*’‘*mon-cntl-char-registers*’; :DIGIT → ‘*mon-digit-registers*’; :DIGIT-S → ‘*mon-digit-shifted-registers*’; :SYMBOL → ‘*mon-symbol-registers*’; :UPPER → ‘*mon-upper-case-registers*’ :LOWER → ‘*mon-lower-case-registers*’\n :SEE-ALSO ‘*mon-ascii-alpha-chars*’, ‘*mon-whitespace-chars*’, ‘*mon-digit-chars*’, ‘mon-help-ascii-chars’.\n►►►”) ;; (unless (bound-and-true-p mon-registr-of-registers) (setq mon-registr-of-registers ‘((cntrl mon-cntl-char-registers) (digit mon-digit-shifted-registers) (digit-S mon-digit-shifted-registers) (symbol mon-symbol-registers) (upper mon-upper-case-registers) (lower mon-lower-case-registers)))) ;;;;; ==============================
‘qr12’‘query-replace-regexp’.\n Default is to replace as if by ‘query-replace’. Does not move point.\n :SEE-ALSO `mon-coerce->char’, ‘mon-set-all-registers-to-char’, ‘mon-reset-registers’.\n►►►” (interactive (list (read-string “Replace string-matching contents of register: “) (read-string “With string-matching contents of register: “) (when (use-region-p) (region-beginning)) (when (use-region-p) (region-end)) current-prefix-arg)) (let ((mqrrr-rgstr1 (mon-coerce->char register1)) (mqrrr-rgstr2 (mon-coerce->char register2))) (save-excursion (save-restriction (when start (narrow-to-region start end)) (mon-g2be -1) (if current-prefix-arg (query-replace-regexp (get-register mqrrr-rgstr1) (get-register mqrrr-rgstr2)) (query-replace (get-register mqrrr-rgstr1) (get-register mqrrr-rgstr2))) (when start (widen))))));;; ==============================
‘*mon-cntl-char-registers*’; :DIGIT → ‘*mon-digit-registers*’; :DIGIT-S → ‘*mon-digit-shifted-registers*’; :SYMBOL → ‘*mon-symbol-registers*’; :UPPER → ‘*mon-upper-case-registers*’; :LOWER → ‘*mon-lower-case-registers*’; :ALL → everything in ‘*mon-registr-of-registers*’ When called interactively or INTRP is non-nil resets all registers.\n :SEE-ALSO ‘mon-set-all-registers-to-char’, ‘*mon-registr-of-registers*’.\n►►►” (interactive (list :intrp t)) (let ((mrr-rgstr-kys `(,cntrl ,digit ,digit-S ,symbol ,upper ,lower)) (mrr-rgstr-lst ‘(cntrl digit digit-S symbol upper lower)) mrr-prd-lst mrr-mk-rgstr-lst mrr-rgstr-pop) ;; :WAS (setq mrr-prd-lst (pairlis mrr-rgstr-kys mrr-rgstr-lst)) ;; :WAS (setq mrr-prd-lst (cl::pairlis mrr-rgstr-kys mrr-rgstr-lst)) (setq mrr-prd-lst (mon-mapcar ‘cons mrr-rgstr-kys mrr-rgstr-lst)) (setq mrr-mk-rgstr-lst ‘()) (if (or intrp all) ;; (setq mrr-mk-rgstr-lst(mapcar (lambda (x) (symbol-value (cadr x))) mon-registr-of-registers)) (progn (mapc #’(lambda (mrr-L-1) (setq mrr-mk-rgstr-lst (cons (symbol-value (cadr mrr-L-1)) mrr-mk-rgstr-lst))) mon-registr-of-registers) (setq mrr-mk-rgstr-lst (reverse mrr-mk-rgstr-lst))) (progn (mapc #’(lambda (mrr-L-2) (when (car mrr-L-2) (setq mrr-mk-rgstr-lst (cons (symbol-value (cadr (assoc (cdr mrr-L-2) mon-registr-of-registers))) mrr-mk-rgstr-lst)))) mrr-prd-lst) (setq mrr-mk-rgstr-lst (reverse mrr-mk-rgstr-lst)))) (setq mrr-rgstr-pop mrr-mk-rgstr-lst) (while mrr-rgstr-pop (let ((mrr-pop-lst (pop mrr-rgstr-pop))) (mapc #’(lambda (mrr-L-3) (set-register mrr-L-3 nil)) mrr-pop-lst)))) (when intrp (message (concat “:FUNCTION ‘mon-reset-registers’ “ “– all registers were emptied”))));;; ==============================
‘mon-reset-registers’, ‘*mon-registr-of-registers*’.\n►►►” (interactive) (progn ;; :CNTRL-CHAR-REGISTERS (set-register ?\C-a “C-a”) (set-register ?\C-a “C-a”) (set-register ?\C-b “C-b”) (set-register ?\C-c “C-c”) (set-register ?\C-d “C-d”) (set-register ?\C-e “C-e”) (set-register ?\C-f “C-f”) (set-register ?\C-g “C-g”) (set-register ?\C-h “C-h”) (set-register ?\C-i “C-i”) (set-register ?\C-j “C-j”) (set-register ?\C-k “C-k”) (set-register ?\C-l “C-l”) (set-register ?\C-m “C-m”) (set-register ?\C-n “C-n”) (set-register ?\C-o “C-o”) (set-register ?\C-p “C-p”) (set-register ?\C-q “C-q”) (set-register ?\C-r “C-r”) (set-register ?\C-s “C-s”) (set-register ?\C-t “C-t”) (set-register ?\C-u “C-u”) (set-register ?\C-v “C-v”) (set-register ?\C-w “C-w”) (set-register ?\C-x “C-x”) (set-register ?\C-y “C-y”) (set-register ?\C-z “C-z”) ;; :SYMBOL-REGISTER (set-register ?+ “?+”) (set-register ?- “?-”) (set-register ?. “?.”) (set-register ?/ “?/”) (set-register ?< “?<”) (set-register ?= “?=”) (set-register ?> “?>”) (set-register ?\\ “?\\”) (set-register ?\[ “?[”) (set-register ?\] “?]”) (set-register ?_ “?_”) (set-register ?{ “?{”) (set-register ?| “?|”) (set-register ?} “?}”) (set-register ?~ “?~”) ;; :DIGIT-REGISTERS (set-register ?0 “?0”) (set-register ?1 “?1”) (set-register ?2 “?2”) (set-register ?3 “?3”) (set-register ?4 “?4”) (set-register ?5 “?5”) (set-register ?6 “?6”) (set-register ?7 “?7”) (set-register ?8 “?8”) (set-register ?9 “?9”) ;; :DIGIT-SHIFTED-REGISTERS (set-register ?! “?!”) (set-register ?@ “?@”) (set-register ?# “?#”) (set-register ?$ “?$”) (set-register ?% “?%”) (set-register ?^ “?^”) (set-register ?& “?&”) (set-register ?* “?*”) (set-register ?( “?(”) (set-register ?) “?)”) ;; :UPPERCASE-REGISTERS (set-register ?A “?A”) (set-register ?B “?B”) (set-register ?C “?C”) (set-register ?D “?D”) (set-register ?E “?E”) (set-register ?F “?F”) (set-register ?G “?G”) (set-register ?H “?H”) (set-register ?I “?I”) (set-register ?J “?J”) (set-register ?K “?K”) (set-register ?L “?L”) (set-register ?M “?M”) (set-register ?N “?N”) (set-register ?O “?O”) (set-register ?P “?P”) (set-register ?Q “?Q”) (set-register ?R “?R”) (set-register ?S “?S”) (set-register ?T “?T”) (set-register ?U “?U”) (set-register ?V “?V”) (set-register ?W “?W”) (set-register ?X “?X”) (set-register ?Y “?Y”) (set-register ?Z “?Z”) ;; :LOWERCASE-REGISTERS (set-register ?a “?a”) (set-register ?b “?b”) (set-register ?c “?c”) (set-register ?d “?d”) (set-register ?e “?e”) (set-register ?f “?f”) (set-register ?g “?g”) (set-register ?h “?h”) (set-register ?i “?i”) (set-register ?j “?j”) (set-register ?k “?k”) (set-register ?l “?l”) (set-register ?m “?m”) (set-register ?n “?n”) (set-register ?o “?o”) (set-register ?p “?p”) (set-register ?q “?q”) (set-register ?r “?r”) (set-register ?s “?s”) (set-register ?t “?t”) (set-register ?u “?u”) (set-register ?v “?v”) (set-register ?w “?w”) (set-register ?x “?x”) (set-register ?y “?y”) (message “all registers set to char-representation”)));;; ============================== ;;; Uncomment and evaluate to indescriminately reset all registers to empty strings. ;; (progn
;;; ============================== (provide ‘mon-empty-registers) ;;; ==============================
;;; ============================== ;;; mon-empty-registers.el ends here ;;; EOF