Perforce and SVN Vim script fixes.
[profile.git] / .vim / script / svn
index 194b487..175f4fb 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;s/^[MR]....//p' " . bufname(""))
+
+  if l:files == ""
+    return
+  endif
 
   " Create a new window, move it below the spec and read in a diff.
   botright new
@@ -30,6 +33,9 @@ endfun
 let s:cmdheight = &cmdheight
 se cmdheight=3
 
+" Change directory so "file [svn diff]" doesn't try to cd somewhere.
+cd /
+
 " Call and then discard our function.
 call SVNcommit()
 delfunction SVNcommit