diff --git a/init.el b/init.el index f1e1341..7c2ab26 100644 --- a/init.el +++ b/init.el @@ -628,7 +628,8 @@ keyboard-quit-context+ db/convert-lf-to-crlf-in-buffer db/convert-crlf-to-lf-in-buffer - db/sync-magit-repos-from-projectile)) + db/sync-magit-repos-from-projectile + db/replace-variables-in-string)) (use-package db-hydras :commands (hydra-toggle/body diff --git a/site-lisp/db-utils.el b/site-lisp/db-utils.el index d397bd6..9acd457 100644 --- a/site-lisp/db-utils.el +++ b/site-lisp/db-utils.el @@ -464,6 +464,19 @@ Does not replace CRLF with CRCRLF, and so on." (shr-render-buffer (find-file-noselect file)) (delete-trailing-whitespace)) +(defun db/replace-variables-in-string (string var-map) + "Replace variables in STRING as per VAR-MAP. +VAR-MAP is an alist mapping variable names (strings or symbols) +to values. Variables are strings of alphabetic characters (no +numbers allowed)." + (replace-regexp-in-string "[[:alpha:]]+" + #'(lambda (var) + (format "%s" (alist-get var var-map + var ; default value + nil ; not relevant REMOVE parameter + #'string=))) + string)) + ;;; Base45 Decoding