From 7c4ab95394094d35499429504c6d393df27f08a9 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 17 Mar 2021 08:51:23 +0100 Subject: global-functions: introduce $EscapeForRegEx --- global-functions | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/global-functions b/global-functions index 042d89b..7b61f72 100644 --- a/global-functions +++ b/global-functions @@ -24,6 +24,7 @@ :global DeviceInfo; :global DNSIsResolving; :global DownloadPackage; +:global EscapeForRegEx; :global FlushEmailQueue; :global FlushTelegramQueue; :global GetMacVendor; @@ -289,6 +290,28 @@ :return false; } +# escape for regular expression +:set EscapeForRegEx do={ + :local Input [ :tostr $1 ]; + + :if ([ :len $Input ] = 0) do={ + :return ""; + } + + :local Return ""; + :local Chars "^.[]\$()|*+\?{}\\"; + + :for I from=0 to=([ :len $Input ] - 1) do={ + :local Char [ :pick $Input $I ]; + :if ([ :find $Chars $Char ]) do={ + :set Char ("\\" . $Char); + } + :set Return ($Return . $Char); + } + + :return $Return; +} + # flush e-mail queue :set FlushEmailQueue do={ :global EmailQueue; -- cgit v1.2.3-54-g00ecf