shorthand html
[cgilite] / misc.sh
diff --git a/misc.sh b/misc.sh
index 05a3af5..9639309 100755 (executable)
--- a/misc.sh
+++ b/misc.sh
@@ -1,6 +1,6 @@
 #!/bin/zsh
 
-# Copyright 2014, 2015 Paul Hänsch
+# Copyright 2014 - 2017 Paul Hänsch
 #
 # This file is part of shcgi.
 # 
@@ -17,6 +17,9 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with shcgi.  If not, see <http://www.gnu.org/licenses/>. 
 
+BR='
+'
+
 data_dirs(){
   # set up directories for object storage
 
@@ -30,11 +33,22 @@ data_dirs(){
 validate(){
   # print value if value matches regex; otherwise print default
   value="$1"
-  regex="$(printf %s\\n "$2" \
-           | sed -r 's;(^|[^\\]+)((\\\\)+)/;\1\2\\/;g; s;(^|[^\\])/;\1\\/;g; s;(^|[^\\]+)((\\\\)+)/;\1\2\\/;g; s;(^|[^\\])/;\1\\/;g;'
-          )" # ^^ escape only unescaped slash characters for later insertion
+  regex="$2"
   default="$3"
 
-  printf %s\\n "${value}" \
-  | sed -rn "2q; /^(${regex})\$/{p;q}; a${default}"
+  printf %s "${value%%${BR}*}" |grep -xE "$regex" || printf %s "$default"
+}
+
+invalidate(){
+  # print default if value matches regex; otherwise print value
+  value="$1"
+  regex="$2"
+  default="$3"
+  
+  printf %s "${value%%${BR}*}" |grep -qxE "$regex" && printf %s "$default" || printf %s "${value%%${BR}*}"
+}
+
+declare -A item_name
+l10n(){
+  [ -n "${item_name[$1]+x}" ] && printf %s "$item_name[$1]" || printf %s "$1"
 }