X-Git-Url: http://git.plutz.net/?p=cgilite;a=blobdiff_plain;f=storage.sh;h=8bd1b952dc54b1a9891772b2a03a01581f0a1d74;hp=8939fdc7c83fcb9bdde8cc1738ed1e4baabc3963;hb=a420ed0a86e9d315a868ea0b3eb0e965f110629f;hpb=40c5373a1f5eb710635f340e88c31f8c9dfedfeb diff --git a/storage.sh b/storage.sh index 8939fdc..8bd1b95 100755 --- a/storage.sh +++ b/storage.sh @@ -28,7 +28,7 @@ LOCK(){ return 1 fi - while ! mkdir "$lock"; do + while ! mkdir "$lock" 2>&-; do block="$(cat "$lock/pid" || printf 1)" if ! { ps -eo pid |grep -qwF "$block"; }; then printf 'Overriding stale lock: %s\n' "$lock" >&2 @@ -68,6 +68,8 @@ STRING(){ s;\n;\\n;g; s;\t;\\t;g; s;\r;\\r;g; + s;\+;\\+;g; + s; ;+;g; ' } @@ -77,7 +79,9 @@ UNSTRING(){ s;((^|[^\\])(\\\\)*)\\n;\1\n;g; s;((^|[^\\])(\\\\)*)\\t;\1\t;g; s;((^|[^\\])(\\\\)*)\\r;\1\r;g; + s;((^|[^\\])(\\\\)*)\+;\1 ;g; tX; + s;((^|[^\\])(\\\\)*)\\\+;\1+;g; s;\\\\;\\;g; ' }