From 7f8851f52f9ebb03bc5be0246ee2b591196bdd16 Mon Sep 17 00:00:00 2001
From: Marc Cornellà <marc.cornella@live.com>
Date: Thu, 11 Aug 2016 01:33:36 +0200
Subject: Refactor pj function

- Use `emulate -L zsh` to make all variables local.

- Use `shwordsplit` to interpret `$cmd` spaces correctly.

- Rename `$project` and `$file` variables to the more appropriate `$basedir`
  and `$project`.
---
 plugins/pj/pj.plugin.zsh | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

(limited to 'plugins')

diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh
index 1d89af00b..f9d7f8e27 100644
--- a/plugins/pj/pj.plugin.zsh
+++ b/plugins/pj/pj.plugin.zsh
@@ -1,29 +1,31 @@
 alias pjo="pj open"
 
-function pj () {
+pj () {
+    emulate -L zsh
+    setopt shwordsplit
+
     cmd="cd"
-    file=$1
+    project=$1
 
-    if [[ "open" == "$file" ]] then
+    if [[ "open" == "$project" ]]; then
         shift
-        file=$*
-        cmd=(${(s: :)EDITOR})
+        project=$*
+        cmd=$EDITOR
     else
-        file=$*
+        project=$*
     fi
 
-    for project in $PROJECT_PATHS; do
-        if [[ -d $project/$file ]] then
-            $cmd "$project/$file"
-            unset project # Unset project var
+    for basedir ($PROJECT_PATHS); do
+        if [[ -d "$basedir/$project" ]]; then
+            $cmd "$basedir/$project"
             return
         fi
     done
 
-    echo "No such project $1"
+    echo "No such project '${project}'."
 }
 
-function _pj () {
+_pj () {
     emulate -L zsh
 
     typeset -a projects
-- 
cgit v1.2.3-70-g09d2