svn path=/trunk/; revision=17
printf %s\\n "${value}" \
| sed -rn "2q; /^(${regex})\$/{p;q}; a${default}"
}
+
+invalidate(){
+ # print default if value matches regex; otherwise print value
+ 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
+ default="$3"
+
+ printf %s\\n "${value}" \
+ | sed -rn "2q; /^(${regex})\$/{bd}; p;q; :d;a${default}"
+}