diff --git a/git-gui/GIT-VERSION-GEN b/git-gui/GIT-VERSION-GEN index 49b62ea6eb..0a1f8d4f8a 100755 --- a/git-gui/GIT-VERSION-GEN +++ b/git-gui/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=0.17.GITGUI +DEF_VER=0.18.GITGUI LF=' ' diff --git a/git-gui/Makefile b/git-gui/Makefile index e22ba5c321..e9c2bc347d 100644 --- a/git-gui/Makefile +++ b/git-gui/Makefile @@ -254,7 +254,7 @@ lib/tclIndex: $(ALL_LIBFILES) GIT-GUI-VARS auto_mkindex lib '*.tcl' \ | $(TCL_PATH) $(QUIET_2DEVNULL); then : ok; \ else \ - echo 1>&2 " * $(TCL_PATH) failed; using unoptimized loading"; \ + echo >&2 " * $(TCL_PATH) failed; using unoptimized loading"; \ rm -f $@ ; \ echo '# Autogenerated by git-gui Makefile' >$@ && \ echo >>$@ && \ @@ -274,8 +274,8 @@ TRACK_VARS = \ GIT-GUI-VARS: FORCE @VARS='$(TRACK_VARS)'; \ if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \ - echo 1>&2 " * new locations or Tcl/Tk interpreter"; \ - echo 1>$@ "$$VARS"; \ + echo >&2 " * new locations or Tcl/Tk interpreter"; \ + echo >$@ "$$VARS"; \ fi ifdef GITGUI_MACOSXAPP diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index 89f636f496..153f85da06 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@ -135,6 +135,20 @@ proc strcat {args} { ::msgcat::mcload $oguimsg unset oguimsg +###################################################################### +## +## On Mac, bring the current Wish process window to front + +if {[tk windowingsystem] eq "aqua"} { + catch { + exec osascript -e [format { + tell application "System Events" + set frontmost of processes whose unix id is %d to true + end tell + } [pid]] + } +} + ###################################################################### ## ## read only globals @@ -3003,18 +3017,11 @@ blame { set jump_spec {} set is_path 0 foreach a $argv { - 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 - } + set p [file join $_prefix $a] - if {$is_path} { + if {$is_path || [file exists $p]} { if {$path ne {}} usage + set path [normalize_relpath $p] break } elseif {$a eq {--}} { if {$path ne {}} { diff --git a/git-gui/lib/choose_repository.tcl b/git-gui/lib/choose_repository.tcl index 657f7d5dc1..ee58981f53 100644 --- a/git-gui/lib/choose_repository.tcl +++ b/git-gui/lib/choose_repository.tcl @@ -286,7 +286,9 @@ method _next {action} { destroy $w_body if {![winfo exists $w_next]} { ${NS}::button $w_next -default active - pack $w_next -side right -padx 5 -before $w_quit + set pos -before + if {[tk windowingsystem] eq "win32"} { set pos -after } + pack $w_next -side right -padx 5 $pos $w_quit } _do_$action $this } diff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl index ec4405567a..30d9a79776 100644 --- a/git-gui/lib/diff.tcl +++ b/git-gui/lib/diff.tcl @@ -764,8 +764,15 @@ proc apply_range_or_line {x y} { # context line set ln [$ui_diff get $i_l $next_l] set patch "$patch$pre_context$ln" - set n [expr $n+1] - set m [expr $m+1] + # Skip the "\ No newline at end of + # file". Depending on the locale setting + # we don't know what this line looks + # like exactly. The only thing we do + # know is that it starts with "\ " + if {![string match {\\ *} $ln]} { + set n [expr $n+1] + set m [expr $m+1] + } set pre_context {} } elseif {$c1 eq $to_context} { # turn change line into context line diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl index 3c8e73bceb..120bc4064b 100644 --- a/git-gui/lib/mergetool.tcl +++ b/git-gui/lib/mergetool.tcl @@ -189,9 +189,9 @@ proc merge_resolve_tool2 {} { } bc3 { if {$base_stage ne {}} { - set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" -mergeoutput="$MERGED"] + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" "-mergeoutput=$MERGED"] } else { - set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -mergeoutput="$MERGED"] + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" "-mergeoutput=$MERGED"] } } ecmerge { diff --git a/git-gui/lib/remote.tcl b/git-gui/lib/remote.tcl index 5e4e7f4c83..4e5c784418 100644 --- a/git-gui/lib/remote.tcl +++ b/git-gui/lib/remote.tcl @@ -245,7 +245,8 @@ proc update_all_remotes_menu_entry {} { set prune_m $remote_m.prune if {$have_remote > 1} { make_sure_remote_submenues_exist $remote_m - if {[$fetch_m entrycget end -label] ne "All"} { + if {[$fetch_m type end] eq "command" \ + && [$fetch_m entrycget end -label] ne "All"} { $fetch_m insert end separator $fetch_m insert end command \ @@ -259,7 +260,8 @@ proc update_all_remotes_menu_entry {} { } } else { if {[winfo exists $fetch_m]} { - if {[$fetch_m entrycget end -label] eq "All"} { + if {[$fetch_m type end] eq "command" \ + && [$fetch_m entrycget end -label] eq "All"} { delete_from_menu $fetch_m end delete_from_menu $fetch_m end diff --git a/git-gui/po/fr.po b/git-gui/po/fr.po index 40441dbb0d..0aff18691d 100644 --- a/git-gui/po/fr.po +++ b/git-gui/po/fr.po @@ -1139,7 +1139,7 @@ msgstr "Standard (rapide, semi-redondant, liens durs)" #: lib/choose_repository.tcl:514 msgid "Full Copy (Slower, Redundant Backup)" -msgstr "Copy complète (plus lent, sauvegarde redondante)" +msgstr "Copie complète (plus lent, sauvegarde redondante)" #: lib/choose_repository.tcl:520 msgid "Shared (Fastest, Not Recommended, No Backup)"