summaryrefslogtreecommitdiff
path: root/Functions/Example
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2022-04-11 00:17:48 +0200
committerAxel Beckert <abe@deuxchevaux.org>2022-04-11 00:17:48 +0200
commitb09f4483416c54c1782824633dfabaf2ec0265b6 (patch)
tree304bc82642862525ae680c7fbaa249663b10ad57 /Functions/Example
parent12eb3e5356f2fc3351eed58ef1cef1b8fb83b504 (diff)
parent6e55c920503071e917619b8cb1a188cd35d772db (diff)
downloadzsh-b09f4483416c54c1782824633dfabaf2ec0265b6.tar.gz
zsh-b09f4483416c54c1782824633dfabaf2ec0265b6.zip
New upstream version 5.8.1.2-test
Diffstat (limited to 'Functions/Example')
-rw-r--r--Functions/Example/zpgrep15
1 files changed, 11 insertions, 4 deletions
diff --git a/Functions/Example/zpgrep b/Functions/Example/zpgrep
index 8b1edaa1c..556e58cd6 100644
--- a/Functions/Example/zpgrep
+++ b/Functions/Example/zpgrep
@@ -2,24 +2,31 @@
#
zpgrep() {
-local file pattern
+local file pattern ret
pattern=$1
shift
+ret=1
if ((! ARGC)) then
set -- -
fi
-pcre_compile $pattern
+zmodload zsh/pcre || return
+pcre_compile -- "$pattern"
pcre_study
for file
do
if [[ "$file" == - ]] then
- while read -u0 buf; do pcre_match $buf && print $buf; done
+ while IFS= read -ru0 buf; do
+ pcre_match -- "$buf" && ret=0 && print -r -- "$buf"
+ done
else
- while read -u0 buf; do pcre_match $buf && print $buf; done < "$file"
+ while IFS= read -ru0 buf; do
+ pcre_match -- "$buf" && ret=0 && print -r -- "$buf"
+ done < "$file"
fi
done
+return "$ret"
}