From e2181fa87a43eab9f5a815050bad004d8c9b4f1a Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Mon, 13 Jun 2022 21:15:49 +0200 Subject: [PATCH] Add helper function to replace variables in strings Only a thin but hopefully helpful wrapper around `replace-regexp-in-string`. --- init.el | 3 ++- site-lisp/db-utils.el | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) 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