author | Danek Duvall <danek.duvall@oracle.com> |
Thu, 07 Apr 2011 16:25:07 -0700 | |
changeset 198 | 172fc01ce997 |
permissions | -rw-r--r-- |
198
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
1 |
To: [email protected] |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
2 |
Subject: Patch 7.2.273 |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
3 |
Fcc: outbox |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
4 |
From: Bram Moolenaar <[email protected]> |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
5 |
Mime-Version: 1.0 |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
6 |
Content-Type: text/plain; charset=UTF-8 |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
7 |
Content-Transfer-Encoding: 8bit |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
8 |
------------ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
9 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
10 |
Patch 7.2.273 |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
11 |
Problem: Crash with redir to unknown array. (Christian Brabandt) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
12 |
Solution: Don't assign the redir result when there was an error. |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
13 |
Files: src/eval.c |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
14 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
15 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
16 |
*** ../vim-7.2.272/src/eval.c 2009-09-30 15:15:33.000000000 +0200 |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
17 |
--- src/eval.c 2009-11-03 12:05:07.000000000 +0100 |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
18 |
*************** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
19 |
*** 988,1000 **** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
20 |
int err; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
21 |
typval_T tv; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
22 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
23 |
! /* Make sure a valid variable name is specified */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
24 |
if (!eval_isnamec1(*name)) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
25 |
{ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
26 |
EMSG(_(e_invarg)); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
27 |
return FAIL; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
28 |
} |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
29 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
30 |
redir_varname = vim_strsave(name); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
31 |
if (redir_varname == NULL) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
32 |
return FAIL; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
33 |
--- 988,1001 ---- |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
34 |
int err; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
35 |
typval_T tv; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
36 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
37 |
! /* Catch a bad name early. */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
38 |
if (!eval_isnamec1(*name)) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
39 |
{ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
40 |
EMSG(_(e_invarg)); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
41 |
return FAIL; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
42 |
} |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
43 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
44 |
+ /* Make a copy of the name, it is used in redir_lval until redir ends. */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
45 |
redir_varname = vim_strsave(name); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
46 |
if (redir_varname == NULL) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
47 |
return FAIL; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
48 |
*************** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
49 |
*** 1019,1024 **** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
50 |
--- 1020,1026 ---- |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
51 |
EMSG(_(e_trailing)); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
52 |
else |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
53 |
EMSG(_(e_invarg)); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
54 |
+ redir_endp = NULL; /* don't store a value, only cleanup */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
55 |
var_redir_stop(); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
56 |
return FAIL; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
57 |
} |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
58 |
*************** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
59 |
*** 1037,1042 **** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
60 |
--- 1039,1045 ---- |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
61 |
did_emsg |= save_emsg; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
62 |
if (err) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
63 |
{ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
64 |
+ redir_endp = NULL; /* don't store a value, only cleanup */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
65 |
var_redir_stop(); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
66 |
return FAIL; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
67 |
} |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
68 |
*************** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
69 |
*** 1085,1090 **** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
70 |
--- 1088,1094 ---- |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
71 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
72 |
/* |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
73 |
* Stop redirecting command output to a variable. |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
74 |
+ * Frees the allocated memory. |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
75 |
*/ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
76 |
void |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
77 |
var_redir_stop() |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
78 |
*************** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
79 |
*** 1093,1106 **** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
80 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
81 |
if (redir_lval != NULL) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
82 |
{ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
83 |
! /* Append the trailing NUL. */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
84 |
! ga_append(&redir_ga, NUL); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
85 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
86 |
! /* Assign the text to the variable. */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
87 |
! tv.v_type = VAR_STRING; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
88 |
! tv.vval.v_string = redir_ga.ga_data; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
89 |
! set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)"."); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
90 |
! vim_free(tv.vval.v_string); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
91 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
92 |
clear_lval(redir_lval); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
93 |
vim_free(redir_lval); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
94 |
--- 1097,1114 ---- |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
95 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
96 |
if (redir_lval != NULL) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
97 |
{ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
98 |
! /* If there was no error: assign the text to the variable. */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
99 |
! if (redir_endp != NULL) |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
100 |
! { |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
101 |
! ga_append(&redir_ga, NUL); /* Append the trailing NUL. */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
102 |
! tv.v_type = VAR_STRING; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
103 |
! tv.vval.v_string = redir_ga.ga_data; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
104 |
! set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)"."); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
105 |
! } |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
106 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
107 |
! /* free the collected output */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
108 |
! vim_free(redir_ga.ga_data); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
109 |
! redir_ga.ga_data = NULL; |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
110 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
111 |
clear_lval(redir_lval); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
112 |
vim_free(redir_lval); |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
113 |
*** ../vim-7.2.272/src/version.c 2009-11-03 13:06:03.000000000 +0100 |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
114 |
--- src/version.c 2009-11-03 14:24:06.000000000 +0100 |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
115 |
*************** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
116 |
*** 678,679 **** |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
117 |
--- 678,681 ---- |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
118 |
{ /* Add new patch number below this line */ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
119 |
+ /**/ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
120 |
+ 273, |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
121 |
/**/ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
122 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
123 |
-- |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
124 |
Permission is granted to read this message out aloud on Kings Cross Road, |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
125 |
London, under the condition that the orator is properly dressed. |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
126 |
|
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
127 |
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
128 |
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
129 |
\\\ download, build and distribute -- http://www.A-A-P.org /// |
172fc01ce997
7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
130 |
\\\ help me help AIDS victims -- http://ICCF-Holland.org /// |