gitk: Catch mkdtemp errors
authorDavid Aguilar <davvid@gmail.com>
Thu, 19 Jun 2014 02:53:14 +0000 (19:53 -0700)
committerPaul Mackerras <paulus@samba.org>
Fri, 27 Jun 2014 06:30:39 +0000 (16:30 +1000)
105b5d3f ("gitk: Use mktemp -d to avoid predictable temporary
directories") introduced a dependency on mkdtemp, which is not
available on Windows.

Use the original temporary directory behavior when mkdtemp fails.
This makes the code use mkdtemp when available and gracefully
fallback to the existing behavior when it is not available.

Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk
diff --git a/gitk b/gitk
index 41e5071c4bdce3767f7f2782dd97b448fb153022..9237830328d693e5b6baaa2b0f88ed6f2665b5c5 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -3504,7 +3504,9 @@ proc gitknewtmpdir {} {
            set tmpdir $gitdir
        }
        set gitktmpformat [file join $tmpdir ".gitk-tmp.XXXXXX"]
-       set gitktmpdir [exec mktemp -d $gitktmpformat]
+       if {[catch {set gitktmpdir [exec mktemp -d $gitktmpformat]}]} {
+           set gitktmpdir [file join $gitdir [format ".gitk-tmp.%s" [pid]]]
+       }
        if {[catch {file mkdir $gitktmpdir} err]} {
            error_popup "[mc "Error creating temporary directory %s:" $gitktmpdir] $err"
            unset gitktmpdir