summaryrefslogtreecommitdiffstats
path: root/patches/source/vim/patches/7.4.272
diff options
context:
space:
mode:
Diffstat (limited to 'patches/source/vim/patches/7.4.272')
-rw-r--r--patches/source/vim/patches/7.4.272148
1 files changed, 148 insertions, 0 deletions
diff --git a/patches/source/vim/patches/7.4.272 b/patches/source/vim/patches/7.4.272
new file mode 100644
index 00000000..e893a962
--- /dev/null
+++ b/patches/source/vim/patches/7.4.272
@@ -0,0 +1,148 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.272
+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.4.272
+Problem: Using just "$" does not cause an error message.
+Solution: Check for empty environment variable name. (Christian Brabandt)
+Files: src/eval.c, src/testdir/test_eval.in, src/testdir/test_eval.ok
+
+
+*** ../vim-7.4.271/src/eval.c 2014-04-29 14:02:42.543919791 +0200
+--- src/eval.c 2014-04-29 17:33:40.575697949 +0200
+***************
+*** 7798,7804 ****
+ * Get the value of an environment variable.
+ * "arg" is pointing to the '$'. It is advanced to after the name.
+ * If the environment variable was not set, silently assume it is empty.
+! * Always return OK.
+ */
+ static int
+ get_env_tv(arg, rettv, evaluate)
+--- 7798,7804 ----
+ * Get the value of an environment variable.
+ * "arg" is pointing to the '$'. It is advanced to after the name.
+ * If the environment variable was not set, silently assume it is empty.
+! * Return FAIL if the name is invalid.
+ */
+ static int
+ get_env_tv(arg, rettv, evaluate)
+***************
+*** 7817,7848 ****
+ len = get_env_len(arg);
+ if (evaluate)
+ {
+! if (len != 0)
+ {
+! cc = name[len];
+! name[len] = NUL;
+! /* first try vim_getenv(), fast for normal environment vars */
+! string = vim_getenv(name, &mustfree);
+! if (string != NULL && *string != NUL)
+! {
+! if (!mustfree)
+! string = vim_strsave(string);
+! }
+! else
+! {
+! if (mustfree)
+! vim_free(string);
+
+! /* next try expanding things like $VIM and ${HOME} */
+! string = expand_env_save(name - 1);
+! if (string != NULL && *string == '$')
+! {
+! vim_free(string);
+! string = NULL;
+! }
+ }
+- name[len] = cc;
+ }
+ rettv->v_type = VAR_STRING;
+ rettv->vval.v_string = string;
+ }
+--- 7817,7849 ----
+ len = get_env_len(arg);
+ if (evaluate)
+ {
+! if (len == 0)
+! return FAIL; /* can't be an environment variable */
+!
+! cc = name[len];
+! name[len] = NUL;
+! /* first try vim_getenv(), fast for normal environment vars */
+! string = vim_getenv(name, &mustfree);
+! if (string != NULL && *string != NUL)
+ {
+! if (!mustfree)
+! string = vim_strsave(string);
+! }
+! else
+! {
+! if (mustfree)
+! vim_free(string);
+
+! /* next try expanding things like $VIM and ${HOME} */
+! string = expand_env_save(name - 1);
+! if (string != NULL && *string == '$')
+! {
+! vim_free(string);
+! string = NULL;
+ }
+ }
++ name[len] = cc;
++
+ rettv->v_type = VAR_STRING;
+ rettv->vval.v_string = string;
+ }
+*** ../vim-7.4.271/src/testdir/test_eval.in 2014-04-29 14:02:42.543919791 +0200
+--- src/testdir/test_eval.in 2014-04-29 17:35:27.243696080 +0200
+***************
+*** 183,188 ****
+--- 183,195 ----
+ :" script-local function used in Funcref must exist.
+ :so test_eval_func.vim
+ :"
++ :" Using $ instead of '$' must give an error
++ :try
++ : call append($, 'foobar')
++ :catch
++ :$put =v:exception
++ :endtry
++ :"
+ :/^start:/+1,$wq! test.out
+ :" vim: et ts=4 isk-=\: fmr=???,???
+ :call getchar()
+*** ../vim-7.4.271/src/testdir/test_eval.ok 2014-04-29 14:02:42.543919791 +0200
+--- src/testdir/test_eval.ok 2014-04-29 17:36:41.451694779 +0200
+***************
+*** 345,347 ****
+--- 345,348 ----
+ func s:Testje exists: 1
+ Bar exists: 1
+ func Bar exists: 1
++ Vim(call):E116: Invalid arguments for function append
+*** ../vim-7.4.271/src/version.c 2014-04-29 15:55:39.443801021 +0200
+--- src/version.c 2014-04-29 17:31:54.203699814 +0200
+***************
+*** 736,737 ****
+--- 736,739 ----
+ { /* Add new patch number below this line */
++ /**/
++ 272,
+ /**/
+
+--
+From "know your smileys":
+ C=}>;*{)) Drunk, devilish chef with a toupee in an updraft,
+ a mustache, and a double chin
+
+ /// 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 ///