From d735b7b6955e3b9e4693a2e85ba100ea81585e37 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 21 Oct 2016 15:31:02 +0400 Subject: [PATCH] =?UTF-8?q?ulib:=20strops:=20ajout=20des=20op=C3=A9ration?= =?UTF-8?q?=20mid=20et=20repl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ulib/base.string | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/ulib/base.string b/lib/ulib/base.string index 4abcc07..eb91a50 100644 --- a/lib/ulib/base.string +++ b/lib/ulib/base.string @@ -126,7 +126,7 @@ function strops() { # :- := :? :+ deref dcount # Toutes les autres opérations travaillent directement avec la valeur # courante. Les opérations suivantes appliquent une transformation: -# # % / : ^ , +# -# +% -% + - +# # % / : ^ , +# -# +% -% + - mid repl # Les opérations suivantes font un test sur la valeur et retournent # immédiatement: # = == != < > -eq -ne -lt -le -gt -ge -n -z @@ -140,6 +140,8 @@ function strops() { # -#STR supprimer un préfixe # +%STR ou +STR ajouter un suffixe # -%STR ou -STR supprimer un suffixe +# mid RANGE traiter la chaine avec strmid() +# repl FROM TO traiter la chaine avec strrepl() local -a __s_tmp local __s_value="$1"; shift while [ $# -gt 0 ]; do @@ -164,6 +166,9 @@ function strops() { +*) eval '__s_value="$__s_value"'"${1#+}";; -%*) eval '__s_value="${__s_value'"${1#-}"'}"';; -*) eval '__s_value="${__s_value%'"${1#-}"'}"';; + mid|strmid) eval '__s_value="$(strmid "$2" "$__s_value")"'; shift;; + repl|strrepl) eval '__s_value="$(strrepl "$2" "$3" "$__s_value")"'; shift; shift;; + *) echo 1>&2 "strops: unknown operator: $1";; esac shift done