Fix diffs of files with spaces.
[profile.git] / .vim / script / svn
index 194b487..d5244fb 100644 (file)
@@ -1,12 +1,15 @@
-" $Id$ vim: se syntax=vim:
 " Define the function we'll use.  It's easier to do this than to faff about 
 " trying to run a sequence of normal mode commands.
 fun! SVNcommit()
   " Allow closing an unmodified spec.
   set nomod
 
-  " Get the modified files.
-  let l:files = system("sed '1,/^$/d;s/^[MR]....//' " . bufname(""))
+  " Get the modified files.  Discount new files.
+  let l:files = system("sed -n '1,/^$/d;/^[MR]..../{s//\"/;s/$/\"/p;}' " . bufname(""))
+
+  if l:files == ""
+    return
+  endif
 
   " Create a new window, move it below the spec and read in a diff.
   botright new
@@ -20,7 +23,7 @@ fun! SVNcommit()
   set buftype=nowrite
   set bufhidden=hide
   setlocal noswapfile
-  file [svn diff]
+  file [svn diff\]
 
   " Switch back to the top window.
   wincmd k