summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.349
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.349')
-rw-r--r--source/ap/vim/patches/7.3.34988
1 files changed, 88 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.349 b/source/ap/vim/patches/7.3.349
new file mode 100644
index 000000000..ac519afe8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.349
@@ -0,0 +1,88 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.349
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.349
+Problem: When running out of memory during startup trying to open a
+ swapfile will loop forever.
+Solution: Let findswapname() set dirp to NULL if out of memory.
+Files: src/memline.c
+
+
+*** ../vim-7.3.348/src/memline.c 2011-06-13 01:07:22.000000000 +0200
+--- src/memline.c 2011-10-26 11:26:06.000000000 +0200
+***************
+*** 621,626 ****
+--- 621,628 ----
+ break;
+ fname = findswapname(buf, &dirp, mfp->mf_fname);
+ /* alloc's fname */
++ if (dirp == NULL) /* out of memory */
++ break;
+ if (fname == NULL) /* no file name found for this dir */
+ continue;
+
+***************
+*** 744,749 ****
+--- 746,753 ----
+ * and creating it, another Vim creates the file. In that case the
+ * creation will fail and we will use another directory. */
+ fname = findswapname(buf, &dirp, NULL); /* allocates fname */
++ if (dirp == NULL)
++ break; /* out of memory */
+ if (fname == NULL)
+ continue;
+ if (mf_open_file(mfp, fname) == OK) /* consumes fname! */
+***************
+*** 4114,4119 ****
+--- 4118,4124 ----
+ *
+ * Several names are tried to find one that does not exist
+ * Returns the name in allocated memory or NULL.
++ * When out of memory "dirp" is set to NULL.
+ *
+ * Note: If BASENAMELEN is not correct, you will get error messages for
+ * not being able to open the swap or undo file
+***************
+*** 4157,4163 ****
+ * First allocate some memory to put the directory name in.
+ */
+ dir_name = alloc((unsigned)STRLEN(*dirp) + 1);
+! if (dir_name != NULL)
+ (void)copy_option_part(dirp, dir_name, 31000, ",");
+
+ /*
+--- 4162,4170 ----
+ * First allocate some memory to put the directory name in.
+ */
+ dir_name = alloc((unsigned)STRLEN(*dirp) + 1);
+! if (dir_name == NULL)
+! *dirp = NULL;
+! else
+ (void)copy_option_part(dirp, dir_name, 31000, ",");
+
+ /*
+*** ../vim-7.3.348/src/version.c 2011-10-26 11:40:56.000000000 +0200
+--- src/version.c 2011-10-26 11:43:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 349,
+ /**/
+
+--
+I AM THANKFUL...
+...for all the complaining I hear about the government
+because it means we have freedom of speech.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///