fi
}
-# STRING='
-# s;\\;\\\\;g; s;\t;\\t;g;
-# s;\n;\\n;g; s;\r;\\r;g;
-# s;\+;\\+;g; s; ;+;g;
-# '
STRING(){
local in out=''
[ $# -gt 0 ] && in="$*" || in="$(cat)"
" "*) out="${out}+"; in="${in# }" ;;
*) out="${out}${in%%[\\${CR}${BR} + ]*}"; in="${in#"${in%%[\\${BR}${CR} + ]*}"}" ;;
esac; done
- printf '%s' "$out"
+ printf '%s' "${out:-\\}"
}
-UNSTRING='
- :UNSTRING_X
- s;((^|[^\\])(\\\\)*)\\n;\1\n;g;
- s;((^|[^\\])(\\\\)*)\\t;\1\t;g;
- s;((^|[^\\])(\\\\)*)\\r;\1\r;g;
- s;((^|[^\\])(\\\\)*)\+;\1 ;g;
- tUNSTRING_X;
- s;((^|[^\\])(\\\\)*)\\\+;\1+;g;
- s;\\\\;\\;g;
-'
UNSTRING(){
local in out=''
[ $# -gt 0 ] && in="$*" || in="$(cat)"
\\*) in="${in#\\}" ;;
*) out="${out}${in%%[\\+]*}"; in="${in#"${in%%[\\+]*}"}" ;;
esac; done
- printf '%s' "$out"
+ printf '%s\n' "$out"
}
DBM() {