From 1c71dfd735f34b2b3c7cf8abc3144e763fc96b60 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 19 Jan 2010 13:13:56 +0000 Subject: unposted: return status 1 if no replacement --- Functions/Misc/regexp-replace | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Functions/Misc/regexp-replace') diff --git a/Functions/Misc/regexp-replace b/Functions/Misc/regexp-replace index 5aaedafba..dec105524 100644 --- a/Functions/Misc/regexp-replace +++ b/Functions/Misc/regexp-replace @@ -19,13 +19,19 @@ emulate -L zsh 4=${(P)1} # $5 is the final string 5= +# 6 indicates if we made a change +6= local MATCH MBEGIN MEND local -a match mbegin mend while [[ -n $4 ]]; do if [[ $4 =~ $2 ]]; then + # append initial part and subsituted match 5+=${4[1,MBEGIN-1]}${(e)3} + # truncate remaining string 4=${4[MEND+1,-1]} + # indicate we did something + 6=1 else break fi @@ -33,3 +39,5 @@ done 5+=$4 eval ${1}=${(q)5} +# status 0 if we did something, else 1. +[[ -n $6 ]] -- cgit 1.4.1