git-gui: Detect full path when parsing arguments
authorAndrew Wong <andrew.kw.w@gmail.com>
Tue, 2 Oct 2012 16:25:14 +0000 (12:25 -0400)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Wed, 17 Oct 2012 20:47:49 +0000 (21:47 +0100)
When running "git-gui blame" from a subfolder (which means prefix is
non-empty), if we pass a full path as argument, the argument parsing
will fail to recognize the argument as a file name, because prefix is
prepended to the argument.

This patch handles that scenario by adding an additional branch that
checks the file name without using the prefix.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
git-gui.sh
index 5d035d5a178ff5afce71335e798a5ac513cc080a..5d7894bd940f1de7ed6c8d823416cb5ac1d76a8a 100755 (executable)
@@ -3003,10 +3003,19 @@ blame {
        set jump_spec {}
        set is_path 0
        foreach a $argv {
-               if {$is_path || [file exists $_prefix$a]} {
+               if {[file exists $a]} {
+                       if {$path ne {}} usage
+                       set path [normalize_relpath $a]
+                       break
+               } elseif {[file exists $_prefix$a]} {
                        if {$path ne {}} usage
                        set path [normalize_relpath $_prefix$a]
                        break
+               }
+
+               if {$is_path} {
+                       if {$path ne {}} usage
+                       break
                } elseif {$a eq {--}} {
                        if {$path ne {}} {
                                if {$head ne {}} usage