set m [lindex $s 0]
set diff_3way 0
set diff_active 1
- set ui_fname_value $path
+ set ui_fname_value [escape_path $path]
set ui_fstatus_value [mapdesc $m $path]
- set ui_status_value "Loading diff of $path..."
+ set ui_status_value "Loading diff of [escape_path $path]..."
set cmd [list | git diff-index -p $PARENT -- $path]
switch $m {
} err ]} {
set diff_active 0
unlock_index
- set ui_status_value "Unable to display $path"
+ set ui_status_value "Unable to display [escape_path $path]"
error_popup "Error loading file:\n$err"
return
}
if {[catch {set fd [open $cmd r]} err]} {
set diff_active 0
unlock_index
- set ui_status_value "Unable to display $path"
+ set ui_status_value "Unable to display [escape_path $path]"
error_popup "Error loading diff:\n$err"
return
}
U* {
error_popup "Unmerged files cannot be committed.
-File $path has merge conflicts.
+File [escape_path $path] has merge conflicts.
You must resolve them and include the file before committing.
"
unlock_index
default {
error_popup "Unknown file state [lindex $s 0] detected.
-File $path cannot be committed by this program.
+File [escape_path $path] cannot be committed by this program.
"
}
}
return $r
}
+proc escape_path {path} {
+ regsub -all "\n" $path "\\n" path
+ return $path
+}
+
set next_icon_id 0
proc merge_state {path new_state} {
-align center -padx 5 -pady 1 \
-name [lindex $s 1] \
-image $new_icon
- $new_w insert $lno.1 "$path\n"
+ $new_w insert $lno.1 "[escape_path $path]\n"
$new_w conf -state disabled
} elseif {$new_icon != [mapicon $old_m $path]} {
$new_w conf -state normal
-align center -padx 5 -pady 1 \
-name [lindex $s 1] \
-image [mapicon $m $path]
- $w insert end "$path\n"
+ $w insert end "[escape_path $path]\n"
}
$ui_index conf -state disabled