about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Completion/User/_perl_modules7
2 files changed, 7 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 872a88083..af740472c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2000-11-15  Bart Schaefer  <schaefer@zsh.org>
+
+	* 13167: Completion/User/_perl_modules: Avoid cd entirely.
+
 2000-11-14  Bart Schaefer  <schaefer@zsh.org>
 
 	* 13165 plus unposted: Completion/User/_perl_modules: `builtin cd'
diff --git a/Completion/User/_perl_modules b/Completion/User/_perl_modules
index 2ac7e9cbb..9bfc0463d 100644
--- a/Completion/User/_perl_modules
+++ b/Completion/User/_perl_modules
@@ -67,13 +67,12 @@ _perl_modules () {
 
       for libdir in $inc; do
         # Ignore cwd - could be too expensive e.g. if we're near /
-        if [[ $libdir == '.' ]]; then break; fi
+        if [[ $libdir == '.' ]]; then continue; fi
 
         # Find all modules
         if [[ -d $libdir && -x $libdir ]]; then
-        builtin cd $libdir
-        new_pms=( {[A-Z]*/***/,}*.pm~*blib* )
-        builtin cd $OLDPWD
+          new_pms=( $libdir/{[A-Z]*/***/,}*.pm~*blib* )
+          new_pms=( "${(@)new_pms##$libdir/##}" )
         fi
 
         # Convert to Perl nomenclature