r365 - in trunk/vim/debian: . patches
Stefano Zacchiroli
zack at costa.debian.org
Mon Oct 17 11:06:36 UTC 2005
Author: zack
Date: 2005-10-17 11:06:35 +0000 (Mon, 17 Oct 2005)
New Revision: 365
Added:
trunk/vim/debian/patches/304_memline.c.diff
Modified:
trunk/vim/debian/changelog
Log:
added patch for swap file locking behaviour wrt symlinks
Modified: trunk/vim/debian/changelog
===================================================================
--- trunk/vim/debian/changelog 2005-10-17 09:36:20 UTC (rev 364)
+++ trunk/vim/debian/changelog 2005-10-17 11:06:35 UTC (rev 365)
@@ -8,6 +8,8 @@
tarballs.
* Added patch 303_option.c.diff, which fixes 'system()' behaviour
when $SHELL is empty. (closes: #219386)
+ * Added patch 304_memline.c.diff, which fixes swap file locking wrt
+ symlinks. (closes: #329826)
-- Debian VIM Maintainers <pkg-vim-maintainers at lists.alioth.debian.org> Mon, 17 Oct 2005 11:23:04 +0200
Added: trunk/vim/debian/patches/304_memline.c.diff
===================================================================
--- trunk/vim/debian/patches/304_memline.c.diff 2005-10-17 09:36:20 UTC (rev 364)
+++ trunk/vim/debian/patches/304_memline.c.diff 2005-10-17 11:06:35 UTC (rev 365)
@@ -0,0 +1,59 @@
+diff -urN vim64/src/memline.c vim64.new/src/memline.c
+--- vim64/src/memline.c 2005-02-17 11:02:53.000000000 +0100
++++ vim64.new/src/memline.c 2005-10-17 12:04:36.000000000 +0200
+@@ -3251,6 +3251,25 @@
+ }
+ }
+
++ void
++resolvesymlink(fname, buf, bufsiz)
++ char_u *fname, *buf;
++ size_t bufsiz;
++{
++ char_u tmp[PATH_MAX];
++
++ if (fname == NULL)
++ return;
++ if (readlink((char *) fname, (char *) buf, bufsiz) == -1)
++ STRCPY(buf, fname); /* not a symlink: return fname unmodified */
++ else
++ { /* symlink: recursively expand */
++ STRCPY(tmp, buf);
++ while (readlink((char *) tmp, (char *) buf, bufsiz) != -1)
++ STRCPY(tmp, buf);
++ }
++}
++
+ /*
+ * make swap file name out of the file name and a directory name
+ */
+@@ -3260,6 +3279,8 @@
+ char_u *dir_name;
+ {
+ char_u *r, *s;
++ char_u fname[PATH_MAX];
++ char_u *fname_p = NULL;
+
+ #if defined(UNIX) || defined(WIN3264) /* Need _very_ long file names */
+ s = dir_name + STRLEN(dir_name);
+@@ -3275,6 +3296,11 @@
+ }
+ #endif
+
++ if (buf->b_fname != NULL)
++ {
++ fname_p = fname;
++ resolvesymlink(buf->b_fname, fname, PATH_MAX);
++ }
+ r = buf_modname(
+ #ifdef SHORT_FNAME
+ TRUE,
+@@ -3285,7 +3311,7 @@
+ /* Avoid problems if fname has special chars, eg <Wimp$Scrap> */
+ buf->b_ffname,
+ #else
+- buf->b_fname,
++ fname_p,
+ #endif
+ (char_u *)
+ #if defined(VMS) || defined(RISCOS)
More information about the pkg-vim-maintainers
mailing list