summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support
diff options
context:
space:
mode:
authorPaul Barker <paul@paulbarker.me.uk>2013-04-20 12:17:07 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2013-04-22 19:00:56 +0200
commit7d3febb7d352f6a438c629e244d28e36cc719adc (patch)
treee364c9253503ee5bdc2c51bee44c4db8f237c2f1 /meta-oe/recipes-support
parent14e1aaa74d851e3716fa6ada80ebb6f15e4f3db1 (diff)
downloadmeta-openembedded-7d3febb7d352f6a438c629e244d28e36cc719adc.tar.gz
vim: update to 7.3.905
Replace version 7.2.446 with the latest version currently available, 7.3.905. The old fetch method was inefficient as version 7.2 was downloaded and patches applied to get to version 7.2.446. Attempting this method with git 7.3 did not work as not all 905 patches applied cleanly. Instead we fetch version 7.3.905 directly from the upstream mercurial repository. This causes an implicit dependency on mercurial-native for the build which is reasonable considering that not many images include vim by default. The previously used patch configure.in_remove_CC_quotes.patch is still required as these changes haven't been made upstream; this patch still applies cleanly. Signed-off-by: Paul Barker <paul@paulbarker.me.uk> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/recipes-support')
-rw-r--r--meta-oe/recipes-support/vim/files/401-446.diff5426
-rw-r--r--meta-oe/recipes-support/vim/vim.inc10
-rw-r--r--meta-oe/recipes-support/vim/vim_7.2.446.bb28
-rw-r--r--meta-oe/recipes-support/vim/vim_7.3.905.bb7
4 files changed, 10 insertions, 5461 deletions
diff --git a/meta-oe/recipes-support/vim/files/401-446.diff b/meta-oe/recipes-support/vim/files/401-446.diff
deleted file mode 100644
index fa163fc75..000000000
--- a/meta-oe/recipes-support/vim/files/401-446.diff
+++ /dev/null
@@ -1,5426 +0,0 @@
1To: vim-dev@vim.org
2Subject: Patch 7.2.401
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 7.2.401
11Problem: ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight
12 directory names with a space. (Alexandre Provencio)
13Solution: Remove the backslash before checking if the name is a directory.
14 (Dominique Pelle)
15Files: src/ex_getln.c
16
17
18*** ../vim-7.2.400/src/ex_getln.c 2010-03-02 17:23:10.000000000 +0100
19--- src/ex_getln.c 2010-03-17 19:00:54.000000000 +0100
20***************
21*** 3948,3955 ****
22 || xp->xp_context == EXPAND_SHELLCMD
23 || xp->xp_context == EXPAND_BUFFERS)
24 {
25! /* highlight directories */
26! j = (mch_isdir(files_found[k]));
27 if (showtail)
28 p = L_SHOWFILE(k);
29 else
30--- 3948,3959 ----
31 || xp->xp_context == EXPAND_SHELLCMD
32 || xp->xp_context == EXPAND_BUFFERS)
33 {
34! char_u *halved_slash;
35!
36! /* highlight directories */
37! halved_slash = backslash_halve_save(files_found[k]);
38! j = mch_isdir(halved_slash);
39! vim_free(halved_slash);
40 if (showtail)
41 p = L_SHOWFILE(k);
42 else
43*** ../vim-7.2.400/src/version.c 2010-03-17 18:15:17.000000000 +0100
44--- src/version.c 2010-03-17 19:12:22.000000000 +0100
45***************
46*** 683,684 ****
47--- 683,686 ----
48 { /* Add new patch number below this line */
49+ /**/
50+ 401,
51 /**/
52
53--
54Two cows are standing together in a field. One asks the other:
55"So what do you think about this Mad Cow Disease?"
56The other replies: "That doesn't concern me. I'm a helicopter."
57
58 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
59/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
60\\\ download, build and distribute -- http://www.A-A-P.org ///
61 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
62To: vim-dev@vim.org
63Subject: Patch 7.2.402
64Fcc: outbox
65From: Bram Moolenaar <Bram@moolenaar.net>
66Mime-Version: 1.0
67Content-Type: text/plain; charset=UTF-8
68Content-Transfer-Encoding: 8bit
69------------
70
71Patch 7.2.402
72Problem: This gives a #705 error: let X = function('haslocaldir')
73 let X = function('getcwd')
74Solution: Don't give E705 when the name is found in the hashtab. (Sergey
75 Khorev)
76Files: src/eval.c
77
78
79*** ../vim-7.2.401/src/eval.c 2010-03-10 13:43:22.000000000 +0100
80--- src/eval.c 2010-03-17 19:35:01.000000000 +0100
81***************
82*** 19103,19108 ****
83--- 19103,19116 ----
84 hashtab_T *ht;
85 char_u *p;
86
87+ ht = find_var_ht(name, &varname);
88+ if (ht == NULL || *varname == NUL)
89+ {
90+ EMSG2(_(e_illvar), name);
91+ return;
92+ }
93+ v = find_var_in_ht(ht, varname, TRUE);
94+
95 if (tv->v_type == VAR_FUNC)
96 {
97 if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
98***************
99*** 19112,19118 ****
100 EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
101 return;
102 }
103! if (function_exists(name))
104 {
105 EMSG2(_("E705: Variable name conflicts with existing function: %s"),
106 name);
107--- 19120,19129 ----
108 EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
109 return;
110 }
111! /* Don't allow hiding a function. When "v" is not NULL we migth be
112! * assigning another function to the same var, the type is checked
113! * below. */
114! if (v == NULL && function_exists(name))
115 {
116 EMSG2(_("E705: Variable name conflicts with existing function: %s"),
117 name);
118***************
119*** 19120,19133 ****
120 }
121 }
122
123- ht = find_var_ht(name, &varname);
124- if (ht == NULL || *varname == NUL)
125- {
126- EMSG2(_(e_illvar), name);
127- return;
128- }
129-
130- v = find_var_in_ht(ht, varname, TRUE);
131 if (v != NULL)
132 {
133 /* existing variable, need to clear the value */
134--- 19131,19136 ----
135*** ../vim-7.2.401/src/version.c 2010-03-17 19:13:19.000000000 +0100
136--- src/version.c 2010-03-17 19:36:09.000000000 +0100
137***************
138*** 683,684 ****
139--- 683,686 ----
140 { /* Add new patch number below this line */
141+ /**/
142+ 402,
143 /**/
144
145--
146Michael: There is no such thing as a dump question.
147Bernard: Sure there is. For example "what is a core dump?"
148
149 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
150/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
151\\\ download, build and distribute -- http://www.A-A-P.org ///
152 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
153To: vim-dev@vim.org
154Subject: Patch 7.2.403
155Fcc: outbox
156From: Bram Moolenaar <Bram@moolenaar.net>
157Mime-Version: 1.0
158Content-Type: text/plain; charset=UTF-8
159Content-Transfer-Encoding: 8bit
160------------
161
162Patch 7.2.403 (after 7.2.400)
163Problem: Compiler warning for pointer type. (Tony Mechelynck)
164Solution: Move type cast to the right place.
165Files: src/if_ruby.c
166
167
168*** ../vim-7.2.402/src/if_ruby.c 2010-03-17 18:15:17.000000000 +0100
169--- src/if_ruby.c 2010-03-19 23:08:06.000000000 +0100
170***************
171*** 722,729 ****
172
173 if (tv->v_type == VAR_STRING)
174 {
175! result = rb_str_new2((char *)(tv->vval.v_string == NULL
176! ? "" : tv->vval.v_string));
177 }
178 else if (tv->v_type == VAR_NUMBER)
179 {
180--- 722,729 ----
181
182 if (tv->v_type == VAR_STRING)
183 {
184! result = rb_str_new2(tv->vval.v_string == NULL
185! ? "" : (char *)(tv->vval.v_string));
186 }
187 else if (tv->v_type == VAR_NUMBER)
188 {
189*** ../vim-7.2.402/src/version.c 2010-03-17 19:53:44.000000000 +0100
190--- src/version.c 2010-03-19 23:07:13.000000000 +0100
191***************
192*** 683,684 ****
193--- 683,686 ----
194 { /* Add new patch number below this line */
195+ /**/
196+ 403,
197 /**/
198
199--
200If "R" is Reverse, how come "D" is FORWARD?
201
202 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
203/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
204\\\ download, build and distribute -- http://www.A-A-P.org ///
205 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
206To: vim-dev@vim.org
207Subject: Patch 7.2.404
208Fcc: outbox
209From: Bram Moolenaar <Bram@moolenaar.net>
210Mime-Version: 1.0
211Content-Type: text/plain; charset=UTF-8
212Content-Transfer-Encoding: 8bit
213------------
214
215Patch 7.2.404
216Problem: Pointers for composing characters are not properly initialized.
217Solution: Compute the size of the pointer, not what it points to. (Yukihiro
218 Nakadaira)
219Files: src/screen.c
220
221
222*** ../vim-7.2.403/src/screen.c 2010-02-03 15:47:59.000000000 +0100
223--- src/screen.c 2010-03-23 13:48:05.000000000 +0100
224***************
225*** 7536,7542 ****
226 new_ScreenLines = (schar_T *)lalloc((long_u)(
227 (Rows + 1) * Columns * sizeof(schar_T)), FALSE);
228 #ifdef FEAT_MBYTE
229! vim_memset(new_ScreenLinesC, 0, sizeof(u8char_T) * MAX_MCO);
230 if (enc_utf8)
231 {
232 new_ScreenLinesUC = (u8char_T *)lalloc((long_u)(
233--- 7536,7542 ----
234 new_ScreenLines = (schar_T *)lalloc((long_u)(
235 (Rows + 1) * Columns * sizeof(schar_T)), FALSE);
236 #ifdef FEAT_MBYTE
237! vim_memset(new_ScreenLinesC, 0, sizeof(u8char_T *) * MAX_MCO);
238 if (enc_utf8)
239 {
240 new_ScreenLinesUC = (u8char_T *)lalloc((long_u)(
241*** ../vim-7.2.403/src/version.c 2010-03-19 23:08:22.000000000 +0100
242--- src/version.c 2010-03-23 13:54:47.000000000 +0100
243***************
244*** 683,684 ****
245--- 683,686 ----
246 { /* Add new patch number below this line */
247+ /**/
248+ 404,
249 /**/
250
251--
252LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall?
253ARTHUR: No, that's Saint Ives.
254 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
255
256 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
257/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
258\\\ download, build and distribute -- http://www.A-A-P.org ///
259 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
260To: vim-dev@vim.org
261Subject: Patch 7.2.405
262Fcc: outbox
263From: Bram Moolenaar <Bram@moolenaar.net>
264Mime-Version: 1.0
265Content-Type: text/plain; charset=UTF-8
266Content-Transfer-Encoding: 8bit
267------------
268
269Patch 7.2.405
270Problem: When built with small features the matching text is not
271 highlighted for ":s/pat/repl/c".
272Solution: Remove the #ifdef for IncSearch. (James Vega)
273Files: src/syntax.c
274
275
276*** ../vim-7.2.404/src/syntax.c 2010-03-10 13:43:22.000000000 +0100
277--- src/syntax.c 2010-03-23 14:36:10.000000000 +0100
278***************
279*** 6205,6214 ****
280 {
281 CENT("ErrorMsg term=standout ctermbg=DarkRed ctermfg=White",
282 "ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White"),
283- #ifdef FEAT_SEARCH_EXTRA
284 CENT("IncSearch term=reverse cterm=reverse",
285 "IncSearch term=reverse cterm=reverse gui=reverse"),
286- #endif
287 CENT("ModeMsg term=bold cterm=bold",
288 "ModeMsg term=bold cterm=bold gui=bold"),
289 CENT("NonText term=bold ctermfg=Blue",
290--- 6205,6212 ----
291*** ../vim-7.2.404/src/version.c 2010-03-23 13:56:53.000000000 +0100
292--- src/version.c 2010-03-23 14:37:08.000000000 +0100
293***************
294*** 683,684 ****
295--- 683,686 ----
296 { /* Add new patch number below this line */
297+ /**/
298+ 405,
299 /**/
300
301--
302Dreams are free, but there's a small charge for alterations.
303
304 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
305/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
306\\\ download, build and distribute -- http://www.A-A-P.org ///
307 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
308To: vim-dev@vim.org
309Subject: Patch 7.2.406
310Fcc: outbox
311From: Bram Moolenaar <Bram@moolenaar.net>
312Mime-Version: 1.0
313Content-Type: text/plain; charset=UTF-8
314Content-Transfer-Encoding: 8bit
315------------
316
317Patch 7.2.406
318Problem: Patch 7.2.119 introduces uninit mem read. (Dominique Pelle)
319Solution: Only used ScreeenLinesC when ScreeenLinesUC is not zero. (Yukihiro
320 Nakadaira) Also clear ScreeenLinesC when allocating.
321Files: src/screen.c
322
323
324*** ../vim-7.2.405/src/screen.c 2010-03-23 13:56:53.000000000 +0100
325--- src/screen.c 2010-03-23 15:26:44.000000000 +0100
326***************
327*** 25,34 ****
328 * one character which occupies two display cells.
329 * For UTF-8 a multi-byte character is converted to Unicode and stored in
330 * ScreenLinesUC[]. ScreenLines[] contains the first byte only. For an ASCII
331! * character without composing chars ScreenLinesUC[] will be 0. When the
332! * character occupies two display cells the next byte in ScreenLines[] is 0.
333 * ScreenLinesC[][] contain up to 'maxcombine' composing characters
334! * (drawn on top of the first character). They are 0 when not used.
335 * ScreenLines2[] is only used for euc-jp to store the second byte if the
336 * first byte is 0x8e (single-width character).
337 *
338--- 25,35 ----
339 * one character which occupies two display cells.
340 * For UTF-8 a multi-byte character is converted to Unicode and stored in
341 * ScreenLinesUC[]. ScreenLines[] contains the first byte only. For an ASCII
342! * character without composing chars ScreenLinesUC[] will be 0 and
343! * ScreenLinesC[][] is not used. When the character occupies two display
344! * cells the next byte in ScreenLines[] is 0.
345 * ScreenLinesC[][] contain up to 'maxcombine' composing characters
346! * (drawn on top of the first character). There is 0 after the last one used.
347 * ScreenLines2[] is only used for euc-jp to store the second byte if the
348 * first byte is 0x8e (single-width character).
349 *
350***************
351*** 4893,4898 ****
352--- 4894,4900 ----
353
354 /*
355 * Return if the composing characters at "off_from" and "off_to" differ.
356+ * Only to be used when ScreenLinesUC[off_from] != 0.
357 */
358 static int
359 comp_char_differs(off_from, off_to)
360***************
361*** 6281,6286 ****
362--- 6283,6289 ----
363 /*
364 * Return TRUE if composing characters for screen posn "off" differs from
365 * composing characters in "u8cc".
366+ * Only to be used when ScreenLinesUC[off] != 0.
367 */
368 static int
369 screen_comp_differs(off, u8cc)
370***************
371*** 6461,6468 ****
372 && c == 0x8e
373 && ScreenLines2[off] != ptr[1])
374 || (enc_utf8
375! && (ScreenLinesUC[off] != (u8char_T)(c >= 0x80 ? u8c : 0)
376! || screen_comp_differs(off, u8cc)))
377 #endif
378 || ScreenAttrs[off] != attr
379 || exmode_active;
380--- 6464,6473 ----
381 && c == 0x8e
382 && ScreenLines2[off] != ptr[1])
383 || (enc_utf8
384! && (ScreenLinesUC[off] !=
385! (u8char_T)(c < 0x80 && u8cc[0] == 0 ? 0 : u8c)
386! || (ScreenLinesUC[off] != 0
387! && screen_comp_differs(off, u8cc))))
388 #endif
389 || ScreenAttrs[off] != attr
390 || exmode_active;
391***************
392*** 7542,7548 ****
393 new_ScreenLinesUC = (u8char_T *)lalloc((long_u)(
394 (Rows + 1) * Columns * sizeof(u8char_T)), FALSE);
395 for (i = 0; i < p_mco; ++i)
396! new_ScreenLinesC[i] = (u8char_T *)lalloc((long_u)(
397 (Rows + 1) * Columns * sizeof(u8char_T)), FALSE);
398 }
399 if (enc_dbcs == DBCS_JPNU)
400--- 7547,7553 ----
401 new_ScreenLinesUC = (u8char_T *)lalloc((long_u)(
402 (Rows + 1) * Columns * sizeof(u8char_T)), FALSE);
403 for (i = 0; i < p_mco; ++i)
404! new_ScreenLinesC[i] = (u8char_T *)lalloc_clear((long_u)(
405 (Rows + 1) * Columns * sizeof(u8char_T)), FALSE);
406 }
407 if (enc_dbcs == DBCS_JPNU)
408*** ../vim-7.2.405/src/version.c 2010-03-23 14:39:07.000000000 +0100
409--- src/version.c 2010-03-23 15:34:11.000000000 +0100
410***************
411*** 683,684 ****
412--- 683,686 ----
413 { /* Add new patch number below this line */
414+ /**/
415+ 406,
416 /**/
417
418--
419VOICE OVER: As the horrendous Black Beast lunged forward, escape for Arthur
420 and his knights seemed hopeless, when, suddenly ... the animator
421 suffered a fatal heart attack.
422ANIMATOR: Aaaaagh!
423VOICE OVER: The cartoon peril was no more ... The Quest for Holy Grail could
424 continue.
425 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
426
427 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
428/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
429\\\ download, build and distribute -- http://www.A-A-P.org ///
430 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
431To: vim-dev@vim.org
432Subject: Patch 7.2.407
433Fcc: outbox
434From: Bram Moolenaar <Bram@moolenaar.net>
435Mime-Version: 1.0
436Content-Type: text/plain; charset=UTF-8
437Content-Transfer-Encoding: 8bit
438------------
439
440Patch 7.2.407
441Problem: When using an expression in ":s" backslashes in the result are
442 dropped. (Sergey Goldgaber, Christian Brabandt)
443Solution: Double backslashes.
444Files: src/regexp.c
445
446
447*** ../vim-7.2.406/src/regexp.c 2009-11-26 20:41:19.000000000 +0100
448--- src/regexp.c 2010-03-23 16:22:35.000000000 +0100
449***************
450*** 6963,6968 ****
451--- 6963,6970 ----
452 eval_result = eval_to_string(source + 2, NULL, TRUE);
453 if (eval_result != NULL)
454 {
455+ int had_backslash = FALSE;
456+
457 for (s = eval_result; *s != NUL; mb_ptr_adv(s))
458 {
459 /* Change NL to CR, so that it becomes a line break.
460***************
461*** 6970,6976 ****
462--- 6972,6991 ----
463 if (*s == NL)
464 *s = CAR;
465 else if (*s == '\\' && s[1] != NUL)
466+ {
467 ++s;
468+ had_backslash = TRUE;
469+ }
470+ }
471+ if (had_backslash && backslash)
472+ {
473+ /* Backslashes will be consumed, need to double them. */
474+ s = vim_strsave_escaped(eval_result, (char_u *)"\\");
475+ if (s != NULL)
476+ {
477+ vim_free(eval_result);
478+ eval_result = s;
479+ }
480 }
481
482 dst += STRLEN(eval_result);
483*** ../vim-7.2.406/src/version.c 2010-03-23 15:36:29.000000000 +0100
484--- src/version.c 2010-03-23 16:26:22.000000000 +0100
485***************
486*** 683,684 ****
487--- 683,686 ----
488 { /* Add new patch number below this line */
489+ /**/
490+ 407,
491 /**/
492
493--
494Sorry, no fortune today.
495
496 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
497/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
498\\\ download, build and distribute -- http://www.A-A-P.org ///
499 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
500To: vim-dev@vim.org
501Subject: Patch 7.2.408
502Fcc: outbox
503From: Bram Moolenaar <Bram@moolenaar.net>
504Mime-Version: 1.0
505Content-Type: text/plain; charset=UTF-8
506Content-Transfer-Encoding: 8bit
507------------
508
509Patch 7.2.408
510Problem: With ":g/the/s/foo/bar/" the '[ and '] marks can be set to a line
511 that was not changed.
512Solution: Only set '[ and '] marks when a substitution was done.
513Files: src/ex_cmds.c
514
515
516*** ../vim-7.2.407/src/ex_cmds.c 2009-07-09 20:06:30.000000000 +0200
517--- src/ex_cmds.c 2010-03-23 17:31:17.000000000 +0100
518***************
519*** 4238,4243 ****
520--- 4238,4244 ----
521 char_u *sub_firstline; /* allocated copy of first sub line */
522 int endcolumn = FALSE; /* cursor in last column when done */
523 pos_T old_cursor = curwin->w_cursor;
524+ int start_nsubs;
525
526 cmd = eap->arg;
527 if (!global_busy)
528***************
529*** 4245,4250 ****
530--- 4246,4252 ----
531 sub_nsubs = 0;
532 sub_nlines = 0;
533 }
534+ start_nsubs = sub_nsubs;
535
536 if (eap->cmdidx == CMD_tilde)
537 which_pat = RE_LAST; /* use last used regexp */
538***************
539*** 5106,5112 ****
540 if (do_count)
541 curwin->w_cursor = old_cursor;
542
543! if (sub_nsubs)
544 {
545 /* Set the '[ and '] marks. */
546 curbuf->b_op_start.lnum = eap->line1;
547--- 5108,5114 ----
548 if (do_count)
549 curwin->w_cursor = old_cursor;
550
551! if (sub_nsubs > start_nsubs)
552 {
553 /* Set the '[ and '] marks. */
554 curbuf->b_op_start.lnum = eap->line1;
555*** ../vim-7.2.407/src/version.c 2010-03-23 16:27:15.000000000 +0100
556--- src/version.c 2010-03-23 17:35:40.000000000 +0100
557***************
558*** 683,684 ****
559--- 683,686 ----
560 { /* Add new patch number below this line */
561+ /**/
562+ 408,
563 /**/
564
565--
566Permission is granted to read this message out aloud on Kings Cross Road,
567London, under the condition that the orator is properly dressed.
568
569 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
570/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
571\\\ download, build and distribute -- http://www.A-A-P.org ///
572 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
573To: vim-dev@vim.org
574Subject: Patch 7.2.409
575Fcc: outbox
576From: Bram Moolenaar <Bram@moolenaar.net>
577Mime-Version: 1.0
578Content-Type: text/plain; charset=UTF-8
579Content-Transfer-Encoding: 8bit
580------------
581
582Patch 7.2.409
583Problem: Summary of number of substitutes is incorrect for ":folddo". (Jean
584 Johner)
585Solution: Reset sub_nsubs and sub_nlines in global_exe().
586Files: src/ex_cmds.c
587
588
589*** ../vim-7.2.408/src/ex_cmds.c 2010-03-23 17:36:24.000000000 +0100
590--- src/ex_cmds.c 2010-03-23 17:42:49.000000000 +0100
591***************
592*** 5238,5245 ****
593 type = *eap->cmd;
594 cmd = eap->arg;
595 which_pat = RE_LAST; /* default: use last used regexp */
596- sub_nsubs = 0;
597- sub_nlines = 0;
598
599 /*
600 * undocumented vi feature:
601--- 5238,5243 ----
602***************
603*** 5343,5348 ****
604--- 5341,5348 ----
605 /* When the command writes a message, don't overwrite the command. */
606 msg_didout = TRUE;
607
608+ sub_nsubs = 0;
609+ sub_nlines = 0;
610 global_need_beginline = FALSE;
611 global_busy = 1;
612 old_lcount = curbuf->b_ml.ml_line_count;
613*** ../vim-7.2.408/src/version.c 2010-03-23 17:36:24.000000000 +0100
614--- src/version.c 2010-03-23 17:47:53.000000000 +0100
615***************
616*** 683,684 ****
617--- 683,686 ----
618 { /* Add new patch number below this line */
619+ /**/
620+ 409,
621 /**/
622
623--
624BRIDGEKEEPER: What is your favorite colour?
625LAUNCELOT: Blue.
626BRIDGEKEEPER: Right. Off you go.
627 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
628
629 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
630/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
631\\\ download, build and distribute -- http://www.A-A-P.org ///
632 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
633To: vim-dev@vim.org
634Subject: Patch 7.2.410
635Fcc: outbox
636From: Bram Moolenaar <Bram@moolenaar.net>
637Mime-Version: 1.0
638Content-Type: text/plain; charset=UTF-8
639Content-Transfer-Encoding: 8bit
640------------
641
642Patch 7.2.410
643Problem: Highlighting directories for completion doesn't work properly.
644Solution: Don't halve backslashes when not needed, expaned "~/".
645 (Dominique Pelle)
646Files: src/ex_getln.c
647
648
649*** ../vim-7.2.409/src/ex_getln.c 2010-03-17 19:13:19.000000000 +0100
650--- src/ex_getln.c 2010-03-23 18:00:56.000000000 +0100
651***************
652*** 3948,3959 ****
653 || xp->xp_context == EXPAND_SHELLCMD
654 || xp->xp_context == EXPAND_BUFFERS)
655 {
656- char_u *halved_slash;
657-
658 /* highlight directories */
659! halved_slash = backslash_halve_save(files_found[k]);
660! j = mch_isdir(halved_slash);
661! vim_free(halved_slash);
662 if (showtail)
663 p = L_SHOWFILE(k);
664 else
665--- 3948,3973 ----
666 || xp->xp_context == EXPAND_SHELLCMD
667 || xp->xp_context == EXPAND_BUFFERS)
668 {
669 /* highlight directories */
670! if (xp->xp_numfiles != -1)
671! {
672! char_u *halved_slash;
673! char_u *exp_path;
674!
675! /* Expansion was done before and special characters
676! * were escaped, need to halve backslashes. Also
677! * $HOME has been replaced with ~/. */
678! exp_path = expand_env_save_opt(files_found[k], TRUE);
679! halved_slash = backslash_halve_save(
680! exp_path != NULL ? exp_path : files_found[k]);
681! j = mch_isdir(halved_slash != NULL ? halved_slash
682! : files_found[k]);
683! vim_free(exp_path);
684! vim_free(halved_slash);
685! }
686! else
687! /* Expansion was done here, file names are literal. */
688! j = mch_isdir(files_found[k]);
689 if (showtail)
690 p = L_SHOWFILE(k);
691 else
692*** ../vim-7.2.409/src/version.c 2010-03-23 17:49:19.000000000 +0100
693--- src/version.c 2010-03-23 18:04:25.000000000 +0100
694***************
695*** 683,684 ****
696--- 683,686 ----
697 { /* Add new patch number below this line */
698+ /**/
699+ 410,
700 /**/
701
702--
703BRIDGEKEEPER: What is your favorite colour?
704GAWAIN: Blue ... No yelloooooww!
705 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
706
707 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
708/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
709\\\ download, build and distribute -- http://www.A-A-P.org ///
710 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
711To: vim-dev@vim.org
712Subject: Patch 7.2.411
713Fcc: outbox
714From: Bram Moolenaar <Bram@moolenaar.net>
715Mime-Version: 1.0
716Content-Type: text/plain; charset=UTF-8
717Content-Transfer-Encoding: 8bit
718------------
719
720Patch 7.2.411
721Problem: When parsing 'cino' a comma isn't skipped properly.
722Solution: Skip the comma. (Lech Lorens)
723Files: src/misc1.c
724
725
726*** ../vim-7.2.410/src/misc1.c 2010-03-02 12:37:01.000000000 +0100
727--- src/misc1.c 2010-03-23 18:18:15.000000000 +0100
728***************
729*** 6270,6275 ****
730--- 6270,6277 ----
731 case 'l': ind_keep_case_label = n; break;
732 case '#': ind_hash_comment = n; break;
733 }
734+ if (*options == ',')
735+ ++options;
736 }
737
738 /* remember where the cursor was when we started */
739*** ../vim-7.2.410/src/version.c 2010-03-23 18:06:47.000000000 +0100
740--- src/version.c 2010-03-23 18:22:13.000000000 +0100
741***************
742*** 683,684 ****
743--- 683,686 ----
744 { /* Add new patch number below this line */
745+ /**/
746+ 411,
747 /**/
748
749--
750BRIDGEKEEPER: What is your favorite editor?
751GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm!
752 "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD
753
754 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
755/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
756\\\ download, build and distribute -- http://www.A-A-P.org ///
757 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
758To: vim-dev@vim.org
759Subject: Patch 7.2.412
760Fcc: outbox
761From: Bram Moolenaar <Bram@moolenaar.net>
762Mime-Version: 1.0
763Content-Type: text/plain; charset=UTF-8
764Content-Transfer-Encoding: 8bit
765------------
766
767Patch 7.2.412
768Problem: [ or ] followed by mouse click doesn't work.
769Solution: Reverse check for key being a mouse event. (Dominique Pelle)
770Files: src/normal.c
771
772
773*** ../vim-7.2.411/src/normal.c 2010-03-17 13:07:01.000000000 +0100
774--- src/normal.c 2010-05-07 15:46:54.000000000 +0200
775***************
776*** 3196,3202 ****
777 * There are a few special cases where we want certain combinations of
778 * characters to be considered as a single word. These are things like
779 * "->", "/ *", "*=", "+=", "&=", "<=", ">=", "!=" etc. Otherwise, each
780! * character is in it's own class.
781 */
782 if (c != NUL && vim_strchr((char_u *)"-+*/%<>&|^!=", c) != NULL)
783 return 1;
784--- 3196,3202 ----
785 * There are a few special cases where we want certain combinations of
786 * characters to be considered as a single word. These are things like
787 * "->", "/ *", "*=", "+=", "&=", "<=", ">=", "!=" etc. Otherwise, each
788! * character is in its own class.
789 */
790 if (c != NUL && vim_strchr((char_u *)"-+*/%<>&|^!=", c) != NULL)
791 return 1;
792***************
793*** 4085,4091 ****
794 /*
795 * Command character that's ignored.
796 * Used for CTRL-Q and CTRL-S to avoid problems with terminals that use
797! * xon/xoff
798 */
799 static void
800 nv_ignore(cap)
801--- 4085,4091 ----
802 /*
803 * Command character that's ignored.
804 * Used for CTRL-Q and CTRL-S to avoid problems with terminals that use
805! * xon/xoff.
806 */
807 static void
808 nv_ignore(cap)
809***************
810*** 6523,6529 ****
811 * [ or ] followed by a middle mouse click: put selected text with
812 * indent adjustment. Any other button just does as usual.
813 */
814! else if (cap->nchar >= K_LEFTMOUSE && cap->nchar <= K_RIGHTRELEASE)
815 {
816 (void)do_mouse(cap->oap, cap->nchar,
817 (cap->cmdchar == ']') ? FORWARD : BACKWARD,
818--- 6523,6529 ----
819 * [ or ] followed by a middle mouse click: put selected text with
820 * indent adjustment. Any other button just does as usual.
821 */
822! else if (cap->nchar >= K_RIGHTRELEASE && cap->nchar <= K_LEFTMOUSE)
823 {
824 (void)do_mouse(cap->oap, cap->nchar,
825 (cap->cmdchar == ']') ? FORWARD : BACKWARD,
826*** ../vim-7.2.411/src/version.c 2010-03-23 18:22:40.000000000 +0100
827--- src/version.c 2010-05-07 15:51:35.000000000 +0200
828***************
829*** 683,684 ****
830--- 683,686 ----
831 { /* Add new patch number below this line */
832+ /**/
833+ 412,
834 /**/
835
836--
837I have a drinking problem -- I don't have a drink!
838
839 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
840/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
841\\\ download, build and distribute -- http://www.A-A-P.org ///
842 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
843To: vim-dev@vim.org
844Subject: Patch 7.2.413
845Fcc: outbox
846From: Bram Moolenaar <Bram@moolenaar.net>
847Mime-Version: 1.0
848Content-Type: text/plain; charset=UTF-8
849Content-Transfer-Encoding: 8bit
850------------
851
852Patch 7.2.413
853Problem: Large file support is incorrect.
854Solution: Add AC_SYS_LARGEFILE to configure. (James Vega)
855Files: src/configure.in, src/config.h.in, src/auto/configure
856
857
858*** ../vim-7.2.412/src/configure.in 2010-03-10 16:27:27.000000000 +0100
859--- src/configure.in 2010-04-01 15:06:04.000000000 +0200
860***************
861*** 2669,2674 ****
862--- 2669,2678 ----
863 usleep utime utimes)
864 AC_FUNC_FSEEKO
865
866+ dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
867+ dnl appropriate, so that off_t is 64 bits when needed.
868+ AC_SYS_LARGEFILE
869+
870 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
871 AC_MSG_CHECKING(for st_blksize)
872 AC_TRY_COMPILE(
873*** ../vim-7.2.412/src/config.h.in 2010-02-24 14:46:58.000000000 +0100
874--- src/config.h.in 2010-04-01 15:10:49.000000000 +0200
875***************
876*** 196,201 ****
877--- 196,206 ----
878 #undef HAVE_UTIME
879 #undef HAVE_BIND_TEXTDOMAIN_CODESET
880
881+ /* Define, if needed, for accessing large files. */
882+ #undef _LARGE_FILES
883+ #undef _FILE_OFFSET_BITS
884+ #undef _LARGEFILE_SOURCE
885+
886 /* Define if you do not have utime(), but do have the utimes() function. */
887 #undef HAVE_UTIMES
888
889*** ../vim-7.2.412/src/auto/configure 2010-03-10 16:27:27.000000000 +0100
890--- src/auto/configure 2010-05-07 16:01:08.000000000 +0200
891***************
892*** 821,826 ****
893--- 821,827 ----
894 with_gnome
895 with_motif_lib
896 with_tlib
897+ enable_largefile
898 enable_acl
899 enable_gpm
900 enable_sysmouse
901***************
902*** 1485,1490 ****
903--- 1486,1492 ----
904 --enable-nextaw-check If auto-select GUI, check for neXtaw default=yes
905 --enable-carbon-check If auto-select GUI, check for Carbon default=yes
906 --disable-gtktest Do not try to compile and run a test GTK program
907+ --disable-largefile omit support for large files
908 --disable-acl Don't check for ACL support.
909 --disable-gpm Don't use gpm (Linux mouse daemon).
910 --disable-sysmouse Don't use sysmouse (mouse in *BSD console).
911***************
912*** 14345,14350 ****
913--- 14347,14709 ----
914 fi
915
916
917+ # Check whether --enable-largefile was given.
918+ if test "${enable_largefile+set}" = set; then
919+ enableval=$enable_largefile;
920+ fi
921+
922+ if test "$enable_largefile" != no; then
923+
924+ { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
925+ $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
926+ if test "${ac_cv_sys_largefile_CC+set}" = set; then
927+ $as_echo_n "(cached) " >&6
928+ else
929+ ac_cv_sys_largefile_CC=no
930+ if test "$GCC" != yes; then
931+ ac_save_CC=$CC
932+ while :; do
933+ # IRIX 6.2 and later do not support large files by default,
934+ # so use the C compiler's -n32 option if that helps.
935+ cat >conftest.$ac_ext <<_ACEOF
936+ /* confdefs.h. */
937+ _ACEOF
938+ cat confdefs.h >>conftest.$ac_ext
939+ cat >>conftest.$ac_ext <<_ACEOF
940+ /* end confdefs.h. */
941+ #include <sys/types.h>
942+ /* Check that off_t can represent 2**63 - 1 correctly.
943+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
944+ since some C++ compilers masquerading as C compilers
945+ incorrectly reject 9223372036854775807. */
946+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
947+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
948+ && LARGE_OFF_T % 2147483647 == 1)
949+ ? 1 : -1];
950+ int
951+ main ()
952+ {
953+
954+ ;
955+ return 0;
956+ }
957+ _ACEOF
958+ rm -f conftest.$ac_objext
959+ if { (ac_try="$ac_compile"
960+ case "(($ac_try" in
961+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
962+ *) ac_try_echo=$ac_try;;
963+ esac
964+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
965+ $as_echo "$ac_try_echo") >&5
966+ (eval "$ac_compile") 2>conftest.er1
967+ ac_status=$?
968+ grep -v '^ *+' conftest.er1 >conftest.err
969+ rm -f conftest.er1
970+ cat conftest.err >&5
971+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
972+ (exit $ac_status); } && {
973+ test -z "$ac_c_werror_flag" ||
974+ test ! -s conftest.err
975+ } && test -s conftest.$ac_objext; then
976+ break
977+ else
978+ $as_echo "$as_me: failed program was:" >&5
979+ sed 's/^/| /' conftest.$ac_ext >&5
980+
981+
982+ fi
983+
984+ rm -f core conftest.err conftest.$ac_objext
985+ CC="$CC -n32"
986+ rm -f conftest.$ac_objext
987+ if { (ac_try="$ac_compile"
988+ case "(($ac_try" in
989+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
990+ *) ac_try_echo=$ac_try;;
991+ esac
992+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
993+ $as_echo "$ac_try_echo") >&5
994+ (eval "$ac_compile") 2>conftest.er1
995+ ac_status=$?
996+ grep -v '^ *+' conftest.er1 >conftest.err
997+ rm -f conftest.er1
998+ cat conftest.err >&5
999+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
1000+ (exit $ac_status); } && {
1001+ test -z "$ac_c_werror_flag" ||
1002+ test ! -s conftest.err
1003+ } && test -s conftest.$ac_objext; then
1004+ ac_cv_sys_largefile_CC=' -n32'; break
1005+ else
1006+ $as_echo "$as_me: failed program was:" >&5
1007+ sed 's/^/| /' conftest.$ac_ext >&5
1008+
1009+
1010+ fi
1011+
1012+ rm -f core conftest.err conftest.$ac_objext
1013+ break
1014+ done
1015+ CC=$ac_save_CC
1016+ rm -f conftest.$ac_ext
1017+ fi
1018+ fi
1019+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
1020+ $as_echo "$ac_cv_sys_largefile_CC" >&6; }
1021+ if test "$ac_cv_sys_largefile_CC" != no; then
1022+ CC=$CC$ac_cv_sys_largefile_CC
1023+ fi
1024+
1025+ { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
1026+ $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
1027+ if test "${ac_cv_sys_file_offset_bits+set}" = set; then
1028+ $as_echo_n "(cached) " >&6
1029+ else
1030+ while :; do
1031+ cat >conftest.$ac_ext <<_ACEOF
1032+ /* confdefs.h. */
1033+ _ACEOF
1034+ cat confdefs.h >>conftest.$ac_ext
1035+ cat >>conftest.$ac_ext <<_ACEOF
1036+ /* end confdefs.h. */
1037+ #include <sys/types.h>
1038+ /* Check that off_t can represent 2**63 - 1 correctly.
1039+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
1040+ since some C++ compilers masquerading as C compilers
1041+ incorrectly reject 9223372036854775807. */
1042+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
1043+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
1044+ && LARGE_OFF_T % 2147483647 == 1)
1045+ ? 1 : -1];
1046+ int
1047+ main ()
1048+ {
1049+
1050+ ;
1051+ return 0;
1052+ }
1053+ _ACEOF
1054+ rm -f conftest.$ac_objext
1055+ if { (ac_try="$ac_compile"
1056+ case "(($ac_try" in
1057+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1058+ *) ac_try_echo=$ac_try;;
1059+ esac
1060+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
1061+ $as_echo "$ac_try_echo") >&5
1062+ (eval "$ac_compile") 2>conftest.er1
1063+ ac_status=$?
1064+ grep -v '^ *+' conftest.er1 >conftest.err
1065+ rm -f conftest.er1
1066+ cat conftest.err >&5
1067+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
1068+ (exit $ac_status); } && {
1069+ test -z "$ac_c_werror_flag" ||
1070+ test ! -s conftest.err
1071+ } && test -s conftest.$ac_objext; then
1072+ ac_cv_sys_file_offset_bits=no; break
1073+ else
1074+ $as_echo "$as_me: failed program was:" >&5
1075+ sed 's/^/| /' conftest.$ac_ext >&5
1076+
1077+
1078+ fi
1079+
1080+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1081+ cat >conftest.$ac_ext <<_ACEOF
1082+ /* confdefs.h. */
1083+ _ACEOF
1084+ cat confdefs.h >>conftest.$ac_ext
1085+ cat >>conftest.$ac_ext <<_ACEOF
1086+ /* end confdefs.h. */
1087+ #define _FILE_OFFSET_BITS 64
1088+ #include <sys/types.h>
1089+ /* Check that off_t can represent 2**63 - 1 correctly.
1090+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
1091+ since some C++ compilers masquerading as C compilers
1092+ incorrectly reject 9223372036854775807. */
1093+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
1094+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
1095+ && LARGE_OFF_T % 2147483647 == 1)
1096+ ? 1 : -1];
1097+ int
1098+ main ()
1099+ {
1100+
1101+ ;
1102+ return 0;
1103+ }
1104+ _ACEOF
1105+ rm -f conftest.$ac_objext
1106+ if { (ac_try="$ac_compile"
1107+ case "(($ac_try" in
1108+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1109+ *) ac_try_echo=$ac_try;;
1110+ esac
1111+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
1112+ $as_echo "$ac_try_echo") >&5
1113+ (eval "$ac_compile") 2>conftest.er1
1114+ ac_status=$?
1115+ grep -v '^ *+' conftest.er1 >conftest.err
1116+ rm -f conftest.er1
1117+ cat conftest.err >&5
1118+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
1119+ (exit $ac_status); } && {
1120+ test -z "$ac_c_werror_flag" ||
1121+ test ! -s conftest.err
1122+ } && test -s conftest.$ac_objext; then
1123+ ac_cv_sys_file_offset_bits=64; break
1124+ else
1125+ $as_echo "$as_me: failed program was:" >&5
1126+ sed 's/^/| /' conftest.$ac_ext >&5
1127+
1128+
1129+ fi
1130+
1131+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1132+ ac_cv_sys_file_offset_bits=unknown
1133+ break
1134+ done
1135+ fi
1136+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
1137+ $as_echo "$ac_cv_sys_file_offset_bits" >&6; }
1138+ case $ac_cv_sys_file_offset_bits in #(
1139+ no | unknown) ;;
1140+ *)
1141+ cat >>confdefs.h <<_ACEOF
1142+ #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
1143+ _ACEOF
1144+ ;;
1145+ esac
1146+ rm -rf conftest*
1147+ if test $ac_cv_sys_file_offset_bits = unknown; then
1148+ { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
1149+ $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
1150+ if test "${ac_cv_sys_large_files+set}" = set; then
1151+ $as_echo_n "(cached) " >&6
1152+ else
1153+ while :; do
1154+ cat >conftest.$ac_ext <<_ACEOF
1155+ /* confdefs.h. */
1156+ _ACEOF
1157+ cat confdefs.h >>conftest.$ac_ext
1158+ cat >>conftest.$ac_ext <<_ACEOF
1159+ /* end confdefs.h. */
1160+ #include <sys/types.h>
1161+ /* Check that off_t can represent 2**63 - 1 correctly.
1162+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
1163+ since some C++ compilers masquerading as C compilers
1164+ incorrectly reject 9223372036854775807. */
1165+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
1166+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
1167+ && LARGE_OFF_T % 2147483647 == 1)
1168+ ? 1 : -1];
1169+ int
1170+ main ()
1171+ {
1172+
1173+ ;
1174+ return 0;
1175+ }
1176+ _ACEOF
1177+ rm -f conftest.$ac_objext
1178+ if { (ac_try="$ac_compile"
1179+ case "(($ac_try" in
1180+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1181+ *) ac_try_echo=$ac_try;;
1182+ esac
1183+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
1184+ $as_echo "$ac_try_echo") >&5
1185+ (eval "$ac_compile") 2>conftest.er1
1186+ ac_status=$?
1187+ grep -v '^ *+' conftest.er1 >conftest.err
1188+ rm -f conftest.er1
1189+ cat conftest.err >&5
1190+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
1191+ (exit $ac_status); } && {
1192+ test -z "$ac_c_werror_flag" ||
1193+ test ! -s conftest.err
1194+ } && test -s conftest.$ac_objext; then
1195+ ac_cv_sys_large_files=no; break
1196+ else
1197+ $as_echo "$as_me: failed program was:" >&5
1198+ sed 's/^/| /' conftest.$ac_ext >&5
1199+
1200+
1201+ fi
1202+
1203+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1204+ cat >conftest.$ac_ext <<_ACEOF
1205+ /* confdefs.h. */
1206+ _ACEOF
1207+ cat confdefs.h >>conftest.$ac_ext
1208+ cat >>conftest.$ac_ext <<_ACEOF
1209+ /* end confdefs.h. */
1210+ #define _LARGE_FILES 1
1211+ #include <sys/types.h>
1212+ /* Check that off_t can represent 2**63 - 1 correctly.
1213+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
1214+ since some C++ compilers masquerading as C compilers
1215+ incorrectly reject 9223372036854775807. */
1216+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
1217+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
1218+ && LARGE_OFF_T % 2147483647 == 1)
1219+ ? 1 : -1];
1220+ int
1221+ main ()
1222+ {
1223+
1224+ ;
1225+ return 0;
1226+ }
1227+ _ACEOF
1228+ rm -f conftest.$ac_objext
1229+ if { (ac_try="$ac_compile"
1230+ case "(($ac_try" in
1231+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1232+ *) ac_try_echo=$ac_try;;
1233+ esac
1234+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
1235+ $as_echo "$ac_try_echo") >&5
1236+ (eval "$ac_compile") 2>conftest.er1
1237+ ac_status=$?
1238+ grep -v '^ *+' conftest.er1 >conftest.err
1239+ rm -f conftest.er1
1240+ cat conftest.err >&5
1241+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
1242+ (exit $ac_status); } && {
1243+ test -z "$ac_c_werror_flag" ||
1244+ test ! -s conftest.err
1245+ } && test -s conftest.$ac_objext; then
1246+ ac_cv_sys_large_files=1; break
1247+ else
1248+ $as_echo "$as_me: failed program was:" >&5
1249+ sed 's/^/| /' conftest.$ac_ext >&5
1250+
1251+
1252+ fi
1253+
1254+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1255+ ac_cv_sys_large_files=unknown
1256+ break
1257+ done
1258+ fi
1259+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
1260+ $as_echo "$ac_cv_sys_large_files" >&6; }
1261+ case $ac_cv_sys_large_files in #(
1262+ no | unknown) ;;
1263+ *)
1264+ cat >>confdefs.h <<_ACEOF
1265+ #define _LARGE_FILES $ac_cv_sys_large_files
1266+ _ACEOF
1267+ ;;
1268+ esac
1269+ rm -rf conftest*
1270+ fi
1271+ fi
1272+
1273+
1274 { $as_echo "$as_me:$LINENO: checking for st_blksize" >&5
1275 $as_echo_n "checking for st_blksize... " >&6; }
1276 cat >conftest.$ac_ext <<_ACEOF
1277*** ../vim-7.2.412/src/version.c 2010-05-07 15:51:59.000000000 +0200
1278--- src/version.c 2010-05-07 16:04:29.000000000 +0200
1279***************
1280*** 683,684 ****
1281--- 683,686 ----
1282 { /* Add new patch number below this line */
1283+ /**/
1284+ 413,
1285 /**/
1286
1287--
1288How To Keep A Healthy Level Of Insanity:
12892. Page yourself over the intercom. Don't disguise your voice.
1290
1291 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1292/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1293\\\ download, build and distribute -- http://www.A-A-P.org ///
1294 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1295To: vim-dev@vim.org
1296Subject: Patch 7.2.414
1297Fcc: outbox
1298From: Bram Moolenaar <Bram@moolenaar.net>
1299Mime-Version: 1.0
1300Content-Type: text/plain; charset=UTF-8
1301Content-Transfer-Encoding: 8bit
1302------------
1303
1304Patch 7.2.414
1305Problem: CTRK-K <space> <space> does not produce 0xa0 as expected. (Tony
1306 Mechelynck)
1307Solution: Remove the Unicode range 0xe000 - 0xefff from digraphs, these are
1308 not valid characters.
1309Files: src/digraph.c
1310
1311
1312*** ../vim-7.2.413/src/digraph.c 2009-05-13 14:12:14.000000000 +0200
1313--- src/digraph.c 2010-04-11 17:28:22.000000000 +0200
1314***************
1315*** 1933,1977 ****
1316 {'7', 'c', 0x3226},
1317 {'8', 'c', 0x3227},
1318 {'9', 'c', 0x3228},
1319! {' ', ' ', 0xe000},
1320! {'/', 'c', 0xe001},
1321! {'U', 'A', 0xe002},
1322! {'U', 'B', 0xe003},
1323! {'"', '3', 0xe004},
1324! {'"', '1', 0xe005},
1325! {'"', '!', 0xe006},
1326! {'"', '\'', 0xe007},
1327! {'"', '>', 0xe008},
1328! {'"', '?', 0xe009},
1329! {'"', '-', 0xe00a},
1330! {'"', '(', 0xe00b},
1331! {'"', '.', 0xe00c},
1332! {'"', ':', 0xe00d},
1333! {'"', '0', 0xe00e},
1334! {'"', '"', 0xe00f},
1335! {'"', '<', 0xe010},
1336! {'"', ',', 0xe011},
1337! {'"', ';', 0xe012},
1338! {'"', '_', 0xe013},
1339! {'"', '=', 0xe014},
1340! {'"', '/', 0xe015},
1341! {'"', 'i', 0xe016},
1342! {'"', 'd', 0xe017},
1343! {'"', 'p', 0xe018},
1344! {';', ';', 0xe019},
1345! {',', ',', 0xe01a},
1346! {'b', '3', 0xe01b},
1347! {'C', 'i', 0xe01c},
1348! {'f', '(', 0xe01d},
1349! {'e', 'd', 0xe01e},
1350! {'a', 'm', 0xe01f},
1351! {'p', 'm', 0xe020},
1352! {'F', 'l', 0xe023},
1353! {'G', 'F', 0xe024},
1354! {'>', 'V', 0xe025},
1355! {'!', '*', 0xe026},
1356! {'?', '*', 0xe027},
1357! {'J', '<', 0xe028},
1358 {'f', 'f', 0xfb00},
1359 {'f', 'i', 0xfb01},
1360 {'f', 'l', 0xfb02},
1361--- 1933,1940 ----
1362 {'7', 'c', 0x3226},
1363 {'8', 'c', 0x3227},
1364 {'9', 'c', 0x3228},
1365! /* code points 0xe000 - 0xefff excluded, they have no assigned
1366! * characters, only used in proposals. */
1367 {'f', 'f', 0xfb00},
1368 {'f', 'i', 0xfb01},
1369 {'f', 'l', 0xfb02},
1370*** ../vim-7.2.413/src/version.c 2010-05-07 16:05:48.000000000 +0200
1371--- src/version.c 2010-05-07 16:17:26.000000000 +0200
1372***************
1373*** 683,684 ****
1374--- 683,686 ----
1375 { /* Add new patch number below this line */
1376+ /**/
1377+ 414,
1378 /**/
1379
1380--
1381How To Keep A Healthy Level Of Insanity:
13824. Put your garbage can on your desk and label it "in".
1383
1384 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1385/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1386\\\ download, build and distribute -- http://www.A-A-P.org ///
1387 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1388To: vim-dev@vim.org
1389Subject: Patch 7.2.415
1390Fcc: outbox
1391From: Bram Moolenaar <Bram@moolenaar.net>
1392Mime-Version: 1.0
1393Content-Type: text/plain; charset=UTF-8
1394Content-Transfer-Encoding: 8bit
1395------------
1396
1397Patch 7.2.415
1398Problem: Win32: Can't open a remote file when starting Vim.
1399Solution: Don't invoke cygwin_conv_path() for URLs. (Tomoya Adachi)
1400Files: src/main.c
1401
1402
1403*** ../vim-7.2.414/src/main.c 2009-12-16 18:27:29.000000000 +0100
1404--- src/main.c 2010-04-12 20:57:44.000000000 +0200
1405***************
1406*** 1477,1483 ****
1407 ++initstr;
1408 }
1409
1410! /* Avoid using evim mode for "editor". */
1411 if (TOLOWER_ASC(initstr[0]) == 'e'
1412 && (TOLOWER_ASC(initstr[1]) == 'v'
1413 || TOLOWER_ASC(initstr[1]) == 'g'))
1414--- 1477,1483 ----
1415 ++initstr;
1416 }
1417
1418! /* Use evim mode for "evim" and "egvim", not for "editor". */
1419 if (TOLOWER_ASC(initstr[0]) == 'e'
1420 && (TOLOWER_ASC(initstr[1]) == 'v'
1421 || TOLOWER_ASC(initstr[1]) == 'g'))
1422***************
1423*** 2262,2268 ****
1424 * Look for evidence of non-Cygwin paths before we bother.
1425 * This is only for when using the Unix files.
1426 */
1427! if (strpbrk(p, "\\:") != NULL)
1428 {
1429 char posix_path[PATH_MAX];
1430
1431--- 2262,2268 ----
1432 * Look for evidence of non-Cygwin paths before we bother.
1433 * This is only for when using the Unix files.
1434 */
1435! if (strpbrk(p, "\\:") != NULL && !path_with_url(p))
1436 {
1437 char posix_path[PATH_MAX];
1438
1439*** ../vim-7.2.414/src/version.c 2010-05-07 16:18:08.000000000 +0200
1440--- src/version.c 2010-05-07 16:34:22.000000000 +0200
1441***************
1442*** 683,684 ****
1443--- 683,686 ----
1444 { /* Add new patch number below this line */
1445+ /**/
1446+ 415,
1447 /**/
1448
1449--
1450How To Keep A Healthy Level Of Insanity:
14516. In the memo field of all your checks, write "for sexual favors".
1452
1453 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1454/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1455\\\ download, build and distribute -- http://www.A-A-P.org ///
1456 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1457To: vim-dev@vim.org
1458Subject: Patch 7.2.416
1459Fcc: outbox
1460From: Bram Moolenaar <Bram@moolenaar.net>
1461Mime-Version: 1.0
1462Content-Type: text/plain; charset=UTF-8
1463Content-Transfer-Encoding: 8bit
1464------------
1465
1466Patch 7.2.416
1467Problem: Logtalk.dict is not installed.
1468Solution: Add it to the install target. (Markus Heidelberg)
1469Files: src/Makefile
1470
1471
1472*** ../vim-7.2.415/src/Makefile 2010-05-07 16:35:12.000000000 +0200
1473--- src/Makefile 2010-04-06 20:19:48.000000000 +0200
1474***************
1475*** 30,36 ****
1476 # want to disable using X11 libraries. This speeds up starting Vim,
1477 # but the window title will not be set and the X11 selection can not
1478 # used.
1479! # - Uncomment the line "CONF_OPT_XSMP = --without-xsmp" if you have the
1480 # X11 Session Management Protocol (XSMP) library (libSM) but do not
1481 # want to use it.
1482 # This can speedup Vim startup but Vim loses the ability to catch the
1483--- 30,36 ----
1484 # want to disable using X11 libraries. This speeds up starting Vim,
1485 # but the window title will not be set and the X11 selection can not
1486 # used.
1487! # - Uncomment the line "CONF_OPT_XSMP = --disable-xsmp" if you have the
1488 # X11 Session Management Protocol (XSMP) library (libSM) but do not
1489 # want to use it.
1490 # This can speedup Vim startup but Vim loses the ability to catch the
1491***************
1492*** 1882,1888 ****
1493 cd $(PLUGSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_PLUG)
1494 cd $(DEST_PLUG); chmod $(HELPMOD) *.vim README.txt
1495 # install the ftplugin files
1496! cd $(FTPLUGSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_FTP)
1497 cd $(DEST_FTP); chmod $(HELPMOD) *.vim README.txt
1498 # install the compiler files
1499 cd $(COMPSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_COMP)
1500--- 1882,1888 ----
1501 cd $(PLUGSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_PLUG)
1502 cd $(DEST_PLUG); chmod $(HELPMOD) *.vim README.txt
1503 # install the ftplugin files
1504! cd $(FTPLUGSOURCE); $(INSTALL_DATA) *.vim README.txt logtalk.dict $(DEST_FTP)
1505 cd $(DEST_FTP); chmod $(HELPMOD) *.vim README.txt
1506 # install the compiler files
1507 cd $(COMPSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_COMP)
1508*** ../vim-7.2.415/src/version.c 2010-05-07 16:34:59.000000000 +0200
1509--- src/version.c 2010-05-07 16:53:17.000000000 +0200
1510***************
1511*** 683,684 ****
1512--- 683,686 ----
1513 { /* Add new patch number below this line */
1514+ /**/
1515+ 416,
1516 /**/
1517
1518--
1519How To Keep A Healthy Level Of Insanity:
15208. Don't use any punctuation marks.
1521
1522 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1523/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1524\\\ download, build and distribute -- http://www.A-A-P.org ///
1525 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1526To: vim-dev@vim.org
1527Subject: Patch 7.2.417
1528Fcc: outbox
1529From: Bram Moolenaar <Bram@moolenaar.net>
1530Mime-Version: 1.0
1531Content-Type: text/plain; charset=UTF-8
1532Content-Transfer-Encoding: 8bit
1533------------
1534
1535Patch 7.2.417
1536Problem: When 'shell' has an argument with a slash then 'shellpipe' is not
1537 set properly. (Britton Kerin)
1538Solution: Assume there are no spaces in the path, arguments follow.
1539Files: src/option.c
1540
1541
1542*** ../vim-7.2.416/src/option.c 2010-02-24 14:34:10.000000000 +0100
1543--- src/option.c 2010-05-13 13:05:28.000000000 +0200
1544***************
1545*** 3696,3704 ****
1546--- 3696,3727 ----
1547 * Isolate the name of the shell:
1548 * - Skip beyond any path. E.g., "/usr/bin/csh -f" -> "csh -f".
1549 * - Remove any argument. E.g., "csh -f" -> "csh".
1550+ * But don't allow a space in the path, so that this works:
1551+ * "/usr/bin/csh --rcfile ~/.cshrc"
1552+ * But don't do that for Windows, it's common to have a space in the path.
1553 */
1554+ #ifdef WIN3264
1555 p = gettail(p_sh);
1556 p = vim_strnsave(p, (int)(skiptowhite(p) - p));
1557+ #else
1558+ p = skiptowhite(p_sh);
1559+ if (*p == NUL)
1560+ {
1561+ /* No white space, use the tail. */
1562+ p = vim_strsave(gettail(p_sh));
1563+ }
1564+ else
1565+ {
1566+ char_u *p1, *p2;
1567+
1568+ /* Find the last path separator before the space. */
1569+ p1 = p_sh;
1570+ for (p2 = p_sh; p2 < p; mb_ptr_adv(p2))
1571+ if (vim_ispathsep(*p2))
1572+ p1 = p2 + 1;
1573+ p = vim_strnsave(p1, (int)(p - p1));
1574+ }
1575+ #endif
1576 if (p != NULL)
1577 {
1578 /*
1579*** ../vim-7.2.416/src/version.c 2010-05-07 16:54:32.000000000 +0200
1580--- src/version.c 2010-05-13 13:11:17.000000000 +0200
1581***************
1582*** 683,684 ****
1583--- 683,686 ----
1584 { /* Add new patch number below this line */
1585+ /**/
1586+ 417,
1587 /**/
1588
1589--
1590If you put 7 of the most talented OSS developers in a room for a week
1591and asked them to fix a bug in a spreadsheet program, in 1 week
1592you'd have 2 new mail readers and a text-based web browser.
1593
1594 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1595/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1596\\\ download, build and distribute -- http://www.A-A-P.org ///
1597 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1598To: vim-dev@vim.org
1599Subject: Patch 7.2.418
1600Fcc: outbox
1601From: Bram Moolenaar <Bram@moolenaar.net>
1602Mime-Version: 1.0
1603Content-Type: text/plain; charset=UTF-8
1604Content-Transfer-Encoding: 8bit
1605------------
1606
1607Patch 7.2.418
1608Problem: Vim tries to set the background or foreground color in a terminal
1609 to -1. (Graywh) Happens with ":hi Normal ctermbg=NONE".
1610Solution: When resetting the foreground or background color don't set the
1611 color, let the clear screen code do that.
1612Files: src/syntax.c
1613
1614
1615*** ../vim-7.2.417/src/syntax.c 2010-03-23 14:39:07.000000000 +0100
1616--- src/syntax.c 2010-05-13 15:34:27.000000000 +0200
1617***************
1618*** 7136,7142 ****
1619 }
1620 }
1621 }
1622! /* Add one to the argument, to avoid zero */
1623 if (key[5] == 'F')
1624 {
1625 HL_TABLE()[idx].sg_cterm_fg = color + 1;
1626--- 7136,7143 ----
1627 }
1628 }
1629 }
1630! /* Add one to the argument, to avoid zero. Zero is used for
1631! * "NONE", then "color" is -1. */
1632 if (key[5] == 'F')
1633 {
1634 HL_TABLE()[idx].sg_cterm_fg = color + 1;
1635***************
1636*** 7150,7156 ****
1637 #endif
1638 {
1639 must_redraw = CLEAR;
1640! if (termcap_active)
1641 term_fg_color(color);
1642 }
1643 }
1644--- 7151,7157 ----
1645 #endif
1646 {
1647 must_redraw = CLEAR;
1648! if (termcap_active && color >= 0)
1649 term_fg_color(color);
1650 }
1651 }
1652***************
1653*** 7167,7182 ****
1654 #endif
1655 {
1656 must_redraw = CLEAR;
1657! if (termcap_active)
1658! term_bg_color(color);
1659! if (t_colors < 16)
1660! i = (color == 0 || color == 4);
1661! else
1662! i = (color < 7 || color == 8);
1663! /* Set the 'background' option if the value is wrong. */
1664! if (i != (*p_bg == 'd'))
1665! set_option_value((char_u *)"bg", 0L,
1666! i ? (char_u *)"dark" : (char_u *)"light", 0);
1667 }
1668 }
1669 }
1670--- 7168,7188 ----
1671 #endif
1672 {
1673 must_redraw = CLEAR;
1674! if (color >= 0)
1675! {
1676! if (termcap_active)
1677! term_bg_color(color);
1678! if (t_colors < 16)
1679! i = (color == 0 || color == 4);
1680! else
1681! i = (color < 7 || color == 8);
1682! /* Set the 'background' option if the value is
1683! * wrong. */
1684! if (i != (*p_bg == 'd'))
1685! set_option_value((char_u *)"bg", 0L,
1686! i ? (char_u *)"dark"
1687! : (char_u *)"light", 0);
1688! }
1689 }
1690 }
1691 }
1692*** ../vim-7.2.417/src/version.c 2010-05-13 13:12:01.000000000 +0200
1693--- src/version.c 2010-05-13 14:29:59.000000000 +0200
1694***************
1695*** 683,684 ****
1696--- 683,686 ----
1697 { /* Add new patch number below this line */
1698+ /**/
1699+ 418,
1700 /**/
1701
1702--
1703hundred-and-one symptoms of being an internet addict:
170430. Even though you died last week, you've managed to retain OPS on your
1705 favorite IRC channel.
1706
1707 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1708/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1709\\\ download, build and distribute -- http://www.A-A-P.org ///
1710 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1711To: vim-dev@vim.org
1712Subject: Patch 7.2.419
1713Fcc: outbox
1714From: Bram Moolenaar <Bram@moolenaar.net>
1715Mime-Version: 1.0
1716Content-Type: text/plain; charset=UTF-8
1717Content-Transfer-Encoding: 8bit
1718------------
1719
1720Patch 7.2.419
1721Problem: Memory leak in Motif when clicking on "Search Vim Help".
1722Solution: Free string returned by XmTextGetString(). (Dominique Pelle)
1723Files: src/gui_motif.c
1724
1725
1726*** ../vim-7.2.418/src/gui_motif.c 2009-05-21 23:25:38.000000000 +0200
1727--- src/gui_motif.c 2010-05-13 16:08:14.000000000 +0200
1728***************
1729*** 2917,2922 ****
1730--- 2917,2923 ----
1731 *textfield = NUL;
1732 else
1733 vim_strncpy(textfield, p, IOSIZE - 1);
1734+ XtFree((char *)p);
1735 }
1736
1737 suppress_dialog_mnemonics(dialogform);
1738*** ../vim-7.2.418/src/version.c 2010-05-13 15:40:23.000000000 +0200
1739--- src/version.c 2010-05-13 16:09:28.000000000 +0200
1740***************
1741*** 683,684 ****
1742--- 683,686 ----
1743 { /* Add new patch number below this line */
1744+ /**/
1745+ 419,
1746 /**/
1747
1748--
1749hundred-and-one symptoms of being an internet addict:
175032. You don't know what sex three of your closest friends are, because they
1751 have neutral nicknames and you never bothered to ask.
1752
1753 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1754/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1755\\\ download, build and distribute -- http://www.A-A-P.org ///
1756 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1757To: vim-dev@vim.org
1758Subject: Patch 7.2.420
1759Fcc: outbox
1760From: Bram Moolenaar <Bram@moolenaar.net>
1761Mime-Version: 1.0
1762Content-Type: text/plain; charset=UTF-8
1763Content-Transfer-Encoding: 8bit
1764------------
1765
1766Patch 7.2.420
1767Problem: ":argedit" does not accept "++enc=utf8" as documented. (Dominique
1768 Pelle)
1769Solution: Add the ARGOPT flag to ":argedit".
1770Files: src/ex_cmds.h
1771
1772
1773*** ../vim-7.2.419/src/ex_cmds.h 2009-07-09 15:55:34.000000000 +0200
1774--- src/ex_cmds.h 2010-05-13 16:18:38.000000000 +0200
1775***************
1776*** 52,58 ****
1777 #define ARGOPT 0x40000L /* allow "++opt=val" argument */
1778 #define SBOXOK 0x80000L /* allowed in the sandbox */
1779 #define CMDWIN 0x100000L /* allowed in cmdline window */
1780! #define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */
1781 #define EXFLAGS 0x400000L /* allow flags after count in argument */
1782 #define FILES (XFILE | EXTRA) /* multiple extra files allowed */
1783 #define WORD1 (EXTRA | NOSPC) /* one extra word allowed */
1784--- 52,58 ----
1785 #define ARGOPT 0x40000L /* allow "++opt=val" argument */
1786 #define SBOXOK 0x80000L /* allowed in the sandbox */
1787 #define CMDWIN 0x100000L /* allowed in cmdline window */
1788! #define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */
1789 #define EXFLAGS 0x400000L /* allow flags after count in argument */
1790 #define FILES (XFILE | EXTRA) /* multiple extra files allowed */
1791 #define WORD1 (EXTRA | NOSPC) /* one extra word allowed */
1792***************
1793*** 116,122 ****
1794 EX(CMD_argdo, "argdo", ex_listdo,
1795 BANG|NEEDARG|EXTRA|NOTRLCOM),
1796 EX(CMD_argedit, "argedit", ex_argedit,
1797! BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|TRLBAR),
1798 EX(CMD_argglobal, "argglobal", ex_args,
1799 BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
1800 EX(CMD_arglocal, "arglocal", ex_args,
1801--- 116,122 ----
1802 EX(CMD_argdo, "argdo", ex_listdo,
1803 BANG|NEEDARG|EXTRA|NOTRLCOM),
1804 EX(CMD_argedit, "argedit", ex_argedit,
1805! BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR),
1806 EX(CMD_argglobal, "argglobal", ex_args,
1807 BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
1808 EX(CMD_arglocal, "arglocal", ex_args,
1809*** ../vim-7.2.419/src/version.c 2010-05-13 16:31:15.000000000 +0200
1810--- src/version.c 2010-05-13 16:43:30.000000000 +0200
1811***************
1812*** 683,684 ****
1813--- 683,686 ----
1814 { /* Add new patch number below this line */
1815+ /**/
1816+ 420,
1817 /**/
1818
1819--
1820hundred-and-one symptoms of being an internet addict:
182133. You name your children Eudora, Mozilla and Dotcom.
1822
1823 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1824/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1825\\\ download, build and distribute -- http://www.A-A-P.org ///
1826 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1827To: vim-dev@vim.org
1828Subject: Patch 7.2.421
1829Fcc: outbox
1830From: Bram Moolenaar <Bram@moolenaar.net>
1831Mime-Version: 1.0
1832Content-Type: text/plain; charset=UTF-8
1833Content-Transfer-Encoding: 8bit
1834------------
1835
1836Patch 7.2.421
1837Problem: Folds are sometimes not updated properly and there is no way to
1838 force an update.
1839Solution: Make "zx" and "zX" recompute folds (suggested by Christian
1840 Brabandt)
1841Files: src/normal.c
1842
1843
1844*** ../vim-7.2.420/src/normal.c 2010-05-07 15:51:59.000000000 +0200
1845--- src/normal.c 2010-05-13 16:43:05.000000000 +0200
1846***************
1847*** 4936,4948 ****
1848
1849 /* "zx": re-apply 'foldlevel' and open folds at the cursor */
1850 case 'x': curwin->w_p_fen = TRUE;
1851! newFoldLevel(); /* update right now */
1852 foldOpenCursor();
1853 break;
1854
1855 /* "zX": undo manual opens/closes, re-apply 'foldlevel' */
1856 case 'X': curwin->w_p_fen = TRUE;
1857! old_fdl = -1; /* force an update */
1858 break;
1859
1860 /* "zm": fold more */
1861--- 4936,4950 ----
1862
1863 /* "zx": re-apply 'foldlevel' and open folds at the cursor */
1864 case 'x': curwin->w_p_fen = TRUE;
1865! curwin->w_foldinvalid = TRUE; /* recompute folds */
1866! newFoldLevel(); /* update right now */
1867 foldOpenCursor();
1868 break;
1869
1870 /* "zX": undo manual opens/closes, re-apply 'foldlevel' */
1871 case 'X': curwin->w_p_fen = TRUE;
1872! curwin->w_foldinvalid = TRUE; /* recompute folds */
1873! old_fdl = -1; /* force an update */
1874 break;
1875
1876 /* "zm": fold more */
1877*** ../vim-7.2.420/src/version.c 2010-05-13 16:46:16.000000000 +0200
1878--- src/version.c 2010-05-13 17:33:34.000000000 +0200
1879***************
1880*** 683,684 ****
1881--- 683,686 ----
1882 { /* Add new patch number below this line */
1883+ /**/
1884+ 421,
1885 /**/
1886
1887--
1888My sister Cecilia opened a computer store in Hawaii.
1889She sells C shells by the seashore.
1890
1891 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1892/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1893\\\ download, build and distribute -- http://www.A-A-P.org ///
1894 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1895To: vim-dev@vim.org
1896Subject: Patch 7.2.422
1897Fcc: outbox
1898From: Bram Moolenaar <Bram@moolenaar.net>
1899Mime-Version: 1.0
1900Content-Type: text/plain; charset=UTF-8
1901Content-Transfer-Encoding: 8bit
1902------------
1903
1904Patch 7.2.422
1905Problem: May get E763 when using spell dictionaries.
1906Solution: Avoid utf-8 case folded character to be truncated to 8 bits and
1907 differ from latin1. (Dominique Pelle)
1908Files: src/spell.c
1909
1910
1911*** ../vim-7.2.421/src/spell.c 2010-01-19 13:06:42.000000000 +0100
1912--- src/spell.c 2010-05-13 17:29:28.000000000 +0200
1913***************
1914*** 9780,9789 ****
1915 {
1916 for (i = 128; i < 256; ++i)
1917 {
1918 spelltab.st_isu[i] = utf_isupper(i);
1919 spelltab.st_isw[i] = spelltab.st_isu[i] || utf_islower(i);
1920! spelltab.st_fold[i] = utf_fold(i);
1921! spelltab.st_upper[i] = utf_toupper(i);
1922 }
1923 }
1924 else
1925--- 9780,9795 ----
1926 {
1927 for (i = 128; i < 256; ++i)
1928 {
1929+ int f = utf_fold(i);
1930+ int u = utf_toupper(i);
1931+
1932 spelltab.st_isu[i] = utf_isupper(i);
1933 spelltab.st_isw[i] = spelltab.st_isu[i] || utf_islower(i);
1934! /* The folded/upper-cased value is different between latin1 and
1935! * utf8 for 0xb5, causing E763 for no good reason. Use the latin1
1936! * value for utf-8 to avoid this. */
1937! spelltab.st_fold[i] = (f < 256) ? f : i;
1938! spelltab.st_upper[i] = (u < 256) ? u : i;
1939 }
1940 }
1941 else
1942*** ../vim-7.2.421/src/version.c 2010-05-13 17:35:52.000000000 +0200
1943--- src/version.c 2010-05-13 17:46:03.000000000 +0200
1944***************
1945*** 683,684 ****
1946--- 683,686 ----
1947 { /* Add new patch number below this line */
1948+ /**/
1949+ 422,
1950 /**/
1951
1952--
1953Q. What happens to programmers when they die?
1954A: MS-Windows programmers are reinstalled. C++ programmers become undefined,
1955 anyone who refers to them will die as well. Java programmers reincarnate
1956 after being garbage collected.
1957
1958 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1959/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1960\\\ download, build and distribute -- http://www.A-A-P.org ///
1961 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
1962To: vim-dev@vim.org
1963Subject: Patch 7.2.423
1964Fcc: outbox
1965From: Bram Moolenaar <Bram@moolenaar.net>
1966Mime-Version: 1.0
1967Content-Type: text/plain; charset=UTF-8
1968Content-Transfer-Encoding: 8bit
1969------------
1970
1971Patch 7.2.423
1972Problem: Crash when assigning s: to variable. (Yukihiro Nakadaira)
1973Solution: Make ga_scripts contain pointer to scriptvar_T instead of
1974 scriptvar_T itself. (Dominique Pelle)
1975Files: src/eval.c
1976
1977
1978*** ../vim-7.2.422/src/eval.c 2010-03-17 19:53:44.000000000 +0100
1979--- src/eval.c 2010-05-14 12:02:16.000000000 +0200
1980***************
1981*** 145,153 ****
1982 dict_T sv_dict;
1983 } scriptvar_T;
1984
1985! static garray_T ga_scripts = {0, 0, sizeof(scriptvar_T), 4, NULL};
1986! #define SCRIPT_SV(id) (((scriptvar_T *)ga_scripts.ga_data)[(id) - 1])
1987! #define SCRIPT_VARS(id) (SCRIPT_SV(id).sv_dict.dv_hashtab)
1988
1989 static int echo_attr = 0; /* attributes used for ":echo" */
1990
1991--- 145,153 ----
1992 dict_T sv_dict;
1993 } scriptvar_T;
1994
1995! static garray_T ga_scripts = {0, 0, sizeof(scriptvar_T *), 4, NULL};
1996! #define SCRIPT_SV(id) (((scriptvar_T **)ga_scripts.ga_data)[(id) - 1])
1997! #define SCRIPT_VARS(id) (SCRIPT_SV(id)->sv_dict.dv_hashtab)
1998
1999 static int echo_attr = 0; /* attributes used for ":echo" */
2000
2001***************
2002*** 866,875 ****
2003 hash_init(&vimvarht); /* garbage_collect() will access it */
2004 hash_clear(&compat_hashtab);
2005
2006- /* script-local variables */
2007- for (i = 1; i <= ga_scripts.ga_len; ++i)
2008- vars_clear(&SCRIPT_VARS(i));
2009- ga_clear(&ga_scripts);
2010 free_scriptnames();
2011
2012 /* global variables */
2013--- 866,871 ----
2014***************
2015*** 878,883 ****
2016--- 874,887 ----
2017 /* autoloaded script names */
2018 ga_clear_strings(&ga_loaded);
2019
2020+ /* script-local variables */
2021+ for (i = 1; i <= ga_scripts.ga_len; ++i)
2022+ {
2023+ vars_clear(&SCRIPT_VARS(i));
2024+ vim_free(SCRIPT_SV(i));
2025+ }
2026+ ga_clear(&ga_scripts);
2027+
2028 /* unreferenced lists and dicts */
2029 (void)garbage_collect();
2030
2031***************
2032*** 18803,18809 ****
2033 /* Must be something like "s:", otherwise "ht" would be NULL. */
2034 switch (varname[-2])
2035 {
2036! case 's': return &SCRIPT_SV(current_SID).sv_var;
2037 case 'g': return &globvars_var;
2038 case 'v': return &vimvars_var;
2039 case 'b': return &curbuf->b_bufvar;
2040--- 18807,18813 ----
2041 /* Must be something like "s:", otherwise "ht" would be NULL. */
2042 switch (varname[-2])
2043 {
2044! case 's': return &SCRIPT_SV(current_SID)->sv_var;
2045 case 'g': return &globvars_var;
2046 case 'v': return &vimvars_var;
2047 case 'b': return &curbuf->b_bufvar;
2048***************
2049*** 18928,18940 ****
2050 ht = &SCRIPT_VARS(i);
2051 if (ht->ht_mask == HT_INIT_SIZE - 1)
2052 ht->ht_array = ht->ht_smallarray;
2053! sv = &SCRIPT_SV(i);
2054 sv->sv_var.di_tv.vval.v_dict = &sv->sv_dict;
2055 }
2056
2057 while (ga_scripts.ga_len < id)
2058 {
2059! sv = &SCRIPT_SV(ga_scripts.ga_len + 1);
2060 init_var_dict(&sv->sv_dict, &sv->sv_var);
2061 ++ga_scripts.ga_len;
2062 }
2063--- 18932,18945 ----
2064 ht = &SCRIPT_VARS(i);
2065 if (ht->ht_mask == HT_INIT_SIZE - 1)
2066 ht->ht_array = ht->ht_smallarray;
2067! sv = SCRIPT_SV(i);
2068 sv->sv_var.di_tv.vval.v_dict = &sv->sv_dict;
2069 }
2070
2071 while (ga_scripts.ga_len < id)
2072 {
2073! sv = SCRIPT_SV(ga_scripts.ga_len + 1) =
2074! (scriptvar_T *)alloc_clear(sizeof(scriptvar_T));
2075 init_var_dict(&sv->sv_dict, &sv->sv_var);
2076 ++ga_scripts.ga_len;
2077 }
2078***************
2079*** 21931,21937 ****
2080 if (find_viminfo_parameter('!') == NULL)
2081 return;
2082
2083! fprintf(fp, _("\n# global variables:\n"));
2084
2085 todo = (int)globvarht.ht_used;
2086 for (hi = globvarht.ht_array; todo > 0; ++hi)
2087--- 21936,21942 ----
2088 if (find_viminfo_parameter('!') == NULL)
2089 return;
2090
2091! fputs(_("\n# global variables:\n"), fp);
2092
2093 todo = (int)globvarht.ht_used;
2094 for (hi = globvarht.ht_array; todo > 0; ++hi)
2095*** ../vim-7.2.422/src/version.c 2010-05-13 17:46:53.000000000 +0200
2096--- src/version.c 2010-05-14 12:13:19.000000000 +0200
2097***************
2098*** 683,684 ****
2099--- 683,686 ----
2100 { /* Add new patch number below this line */
2101+ /**/
2102+ 423,
2103 /**/
2104
2105--
2106He who laughs last, thinks slowest.
2107
2108 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2109/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
2110\\\ download, build and distribute -- http://www.A-A-P.org ///
2111 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
2112To: vim-dev@vim.org
2113Subject: Patch 7.2.424
2114Fcc: outbox
2115From: Bram Moolenaar <Bram@moolenaar.net>
2116Mime-Version: 1.0
2117Content-Type: text/plain; charset=UTF-8
2118Content-Transfer-Encoding: 8bit
2119------------
2120
2121Patch 7.2.424
2122Problem: ":colorscheme" without an argument doesn't do anything.
2123Solution: Make it echo the current color scheme name. (partly by Christian
2124 Brabandt)
2125Files: runtime/doc/syntax.txt, src/ex_cmds.h, src/ex_docmd.c
2126
2127
2128*** ../vim-7.2.423/runtime/doc/syntax.txt 2008-08-09 19:36:52.000000000 +0200
2129--- runtime/doc/syntax.txt 2010-05-14 15:27:47.000000000 +0200
2130***************
2131*** 113,118 ****
2132--- 113,121 ----
2133 :syntax off $VIMRUNTIME/syntax/nosyntax.vim
2134 Also see |syntax-loading|.
2135
2136+ NOTE: If displaying long lines is slow and switching off syntax highlighting
2137+ makes it fast, consider setting the 'synmaxcol' option to a lower value.
2138+
2139 ==============================================================================
2140 2. Syntax files *:syn-files*
2141
2142***************
2143*** 3829,3841 ****
2144 in their own color.
2145
2146 *:colo* *:colorscheme* *E185*
2147 :colo[rscheme] {name} Load color scheme {name}. This searches 'runtimepath'
2148 for the file "colors/{name}.vim. The first one that
2149 is found is loaded.
2150! To see the name of the currently active color scheme
2151! (if there is one): >
2152! :echo g:colors_name
2153! < Doesn't work recursively, thus you can't use
2154 ":colorscheme" in a color scheme script.
2155 After the color scheme has been loaded the
2156 |ColorScheme| autocommand event is triggered.
2157--- 3871,3890 ----
2158 in their own color.
2159
2160 *:colo* *:colorscheme* *E185*
2161+ :colo[rscheme] Output the name of the currently active color scheme.
2162+ This is basically the same as >
2163+ :echo g:colors_name
2164+ < In case g:colors_name has not been defined :colo will
2165+ output "default". When compiled without the |+eval|
2166+ feature it will output "unknown".
2167+
2168 :colo[rscheme] {name} Load color scheme {name}. This searches 'runtimepath'
2169 for the file "colors/{name}.vim. The first one that
2170 is found is loaded.
2171! To see the name of the currently active color scheme: >
2172! :colo
2173! < The name is also stored in the g:colors_name variable.
2174! Doesn't work recursively, thus you can't use
2175 ":colorscheme" in a color scheme script.
2176 After the color scheme has been loaded the
2177 |ColorScheme| autocommand event is triggered.
2178***************
2179*** 4032,4038 ****
2180 colors.
2181 When a colorscheme is being used, changing 'background' causes it to
2182 be reloaded, which may reset all colors (including Normal). First
2183! delete the "colors_name" variable when you don't want this.
2184
2185 When you have set "ctermfg" or "ctermbg" for the Normal group, Vim
2186 needs to reset the color when exiting. This is done with the "op"
2187--- 4081,4087 ----
2188 colors.
2189 When a colorscheme is being used, changing 'background' causes it to
2190 be reloaded, which may reset all colors (including Normal). First
2191! delete the "g:colors_name" variable when you don't want this.
2192
2193 When you have set "ctermfg" or "ctermbg" for the Normal group, Vim
2194 needs to reset the color when exiting. This is done with the "op"
2195*** ../vim-7.2.423/src/ex_cmds.h 2010-05-13 16:46:16.000000000 +0200
2196--- src/ex_cmds.h 2010-05-14 13:08:45.000000000 +0200
2197***************
2198*** 256,262 ****
2199 EX(CMD_colder, "colder", qf_age,
2200 RANGE|NOTADR|COUNT|TRLBAR),
2201 EX(CMD_colorscheme, "colorscheme", ex_colorscheme,
2202! NEEDARG|WORD1|TRLBAR|CMDWIN),
2203 EX(CMD_command, "command", ex_command,
2204 EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN),
2205 EX(CMD_comclear, "comclear", ex_comclear,
2206--- 256,262 ----
2207 EX(CMD_colder, "colder", qf_age,
2208 RANGE|NOTADR|COUNT|TRLBAR),
2209 EX(CMD_colorscheme, "colorscheme", ex_colorscheme,
2210! WORD1|TRLBAR|CMDWIN),
2211 EX(CMD_command, "command", ex_command,
2212 EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN),
2213 EX(CMD_comclear, "comclear", ex_comclear,
2214*** ../vim-7.2.423/src/ex_docmd.c 2010-03-02 15:55:51.000000000 +0100
2215--- src/ex_docmd.c 2010-05-14 15:26:14.000000000 +0200
2216***************
2217*** 6226,6232 ****
2218 ex_colorscheme(eap)
2219 exarg_T *eap;
2220 {
2221! if (load_colors(eap->arg) == FAIL)
2222 EMSG2(_("E185: Cannot find color scheme %s"), eap->arg);
2223 }
2224
2225--- 6226,6256 ----
2226 ex_colorscheme(eap)
2227 exarg_T *eap;
2228 {
2229! if (*eap->arg == NUL)
2230! {
2231! #ifdef FEAT_EVAL
2232! char_u *expr = vim_strsave((char_u *)"g:colors_name");
2233! char_u *p = NULL;
2234!
2235! if (expr != NULL)
2236! {
2237! ++emsg_off;
2238! p = eval_to_string(expr, NULL, FALSE);
2239! --emsg_off;
2240! vim_free(expr);
2241! }
2242! if (p != NULL)
2243! {
2244! MSG(p);
2245! vim_free(p);
2246! }
2247! else
2248! MSG("default");
2249! #else
2250! MSG(_("unknown"));
2251! #endif
2252! }
2253! else if (load_colors(eap->arg) == FAIL)
2254 EMSG2(_("E185: Cannot find color scheme %s"), eap->arg);
2255 }
2256
2257*** ../vim-7.2.423/src/version.c 2010-05-14 12:16:19.000000000 +0200
2258--- src/version.c 2010-05-14 15:23:20.000000000 +0200
2259***************
2260*** 683,684 ****
2261--- 683,686 ----
2262 { /* Add new patch number below this line */
2263+ /**/
2264+ 424,
2265 /**/
2266
2267--
2268Everyone has a photographic memory. Some don't have film.
2269
2270 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2271/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
2272\\\ download, build and distribute -- http://www.A-A-P.org ///
2273 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
2274To: vim-dev@vim.org
2275Subject: Patch 7.2.425
2276Fcc: outbox
2277From: Bram Moolenaar <Bram@moolenaar.net>
2278Mime-Version: 1.0
2279Content-Type: text/plain; charset=UTF-8
2280Content-Transfer-Encoding: 8bit
2281------------
2282
2283Patch 7.2.425
2284Problem: Some compilers complain about fourth EX() argument.
2285Solution: Add cast to long_u.
2286Files: src/ex_cmds.h
2287
2288
2289*** ../vim-7.2.424/src/ex_cmds.h 2010-05-14 15:28:37.000000000 +0200
2290--- src/ex_cmds.h 2010-05-14 13:08:45.000000000 +0200
2291***************
2292*** 74,80 ****
2293 # undef EX /* just in case */
2294 #endif
2295 #ifdef DO_DECLARE_EXCMD
2296! # define EX(a, b, c, d) {(char_u *)b, c, d}
2297
2298 typedef void (*ex_func_T) __ARGS((exarg_T *eap));
2299
2300--- 74,80 ----
2301 # undef EX /* just in case */
2302 #endif
2303 #ifdef DO_DECLARE_EXCMD
2304! # define EX(a, b, c, d) {(char_u *)b, c, (long_u)(d)}
2305
2306 typedef void (*ex_func_T) __ARGS((exarg_T *eap));
2307
2308*** ../vim-7.2.424/src/version.c 2010-05-14 15:28:37.000000000 +0200
2309--- src/version.c 2010-05-14 15:42:23.000000000 +0200
2310***************
2311*** 683,684 ****
2312--- 683,686 ----
2313 { /* Add new patch number below this line */
2314+ /**/
2315+ 425,
2316 /**/
2317
2318--
2319The users that I support would double-click on a landmine to find out
2320what happens. -- A system administrator
2321
2322 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2323/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
2324\\\ download, build and distribute -- http://www.A-A-P.org ///
2325 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
2326To: vim-dev@vim.org
2327Subject: Patch 7.2.426
2328Fcc: outbox
2329From: Bram Moolenaar <Bram@moolenaar.net>
2330Mime-Version: 1.0
2331Content-Type: text/plain; charset=UTF-8
2332Content-Transfer-Encoding: 8bit
2333------------
2334
2335Patch 7.2.426
2336Problem: Commas in 'langmap' are not always handled correctly.
2337Solution: Require commas to be backslash escaped. (James Vega)
2338Files: src/option.c
2339
2340
2341*** ../vim-7.2.425/src/option.c 2010-05-13 13:12:01.000000000 +0200
2342--- src/option.c 2010-05-14 16:04:21.000000000 +0200
2343***************
2344*** 10432,10437 ****
2345--- 10432,10442 ----
2346 p2 = NULL; /* aAbBcCdD form, p2 is NULL */
2347 while (p[0])
2348 {
2349+ if (p[0] == ',')
2350+ {
2351+ ++p;
2352+ break;
2353+ }
2354 if (p[0] == '\\' && p[1] != NUL)
2355 ++p;
2356 #ifdef FEAT_MBYTE
2357***************
2358*** 10439,10464 ****
2359 #else
2360 from = p[0];
2361 #endif
2362 if (p2 == NULL)
2363 {
2364 mb_ptr_adv(p);
2365! if (p[0] == '\\')
2366! ++p;
2367 #ifdef FEAT_MBYTE
2368! to = (*mb_ptr2char)(p);
2369 #else
2370! to = p[0];
2371 #endif
2372 }
2373 else
2374 {
2375! if (p2[0] == '\\')
2376! ++p2;
2377 #ifdef FEAT_MBYTE
2378! to = (*mb_ptr2char)(p2);
2379 #else
2380! to = p2[0];
2381 #endif
2382 }
2383 if (to == NUL)
2384 {
2385--- 10444,10476 ----
2386 #else
2387 from = p[0];
2388 #endif
2389+ to = NUL;
2390 if (p2 == NULL)
2391 {
2392 mb_ptr_adv(p);
2393! if (p[0] != ',')
2394! {
2395! if (p[0] == '\\')
2396! ++p;
2397 #ifdef FEAT_MBYTE
2398! to = (*mb_ptr2char)(p);
2399 #else
2400! to = p[0];
2401 #endif
2402+ }
2403 }
2404 else
2405 {
2406! if (p2[0] != ',')
2407! {
2408! if (p2[0] == '\\')
2409! ++p2;
2410 #ifdef FEAT_MBYTE
2411! to = (*mb_ptr2char)(p2);
2412 #else
2413! to = p2[0];
2414 #endif
2415+ }
2416 }
2417 if (to == NUL)
2418 {
2419***************
2420*** 10476,10490 ****
2421
2422 /* Advance to next pair */
2423 mb_ptr_adv(p);
2424! if (p2 == NULL)
2425! {
2426! if (p[0] == ',')
2427! {
2428! ++p;
2429! break;
2430! }
2431! }
2432! else
2433 {
2434 mb_ptr_adv(p2);
2435 if (*p == ';')
2436--- 10488,10494 ----
2437
2438 /* Advance to next pair */
2439 mb_ptr_adv(p);
2440! if (p2 != NULL)
2441 {
2442 mb_ptr_adv(p2);
2443 if (*p == ';')
2444*** ../vim-7.2.425/src/version.c 2010-05-14 15:42:49.000000000 +0200
2445--- src/version.c 2010-05-14 17:32:11.000000000 +0200
2446***************
2447*** 683,684 ****
2448--- 683,686 ----
2449 { /* Add new patch number below this line */
2450+ /**/
2451+ 426,
2452 /**/
2453
2454--
2455On the other hand, you have different fingers.
2456 -- Steven Wright
2457
2458 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2459/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
2460\\\ download, build and distribute -- http://www.A-A-P.org ///
2461 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
2462To: vim-dev@vim.org
2463Subject: Patch 7.2.427
2464Fcc: outbox
2465From: Bram Moolenaar <Bram@moolenaar.net>
2466Mime-Version: 1.0
2467Content-Type: text/plain; charset=UTF-8
2468Content-Transfer-Encoding: 8bit
2469------------
2470
2471Patch 7.2.427
2472Problem: The swapfile is created using the destination of a symlink, but
2473 recovery doesn't follow symlinks.
2474Solution: When recovering, resolve symlinks. (James Vega)
2475Files: src/memline.c
2476
2477
2478*** ../vim-7.2.426/src/memline.c 2010-03-10 14:46:21.000000000 +0100
2479--- src/memline.c 2010-05-14 17:28:29.000000000 +0200
2480***************
2481*** 245,250 ****
2482--- 245,253 ----
2483 #ifdef FEAT_BYTEOFF
2484 static void ml_updatechunk __ARGS((buf_T *buf, long line, long len, int updtype));
2485 #endif
2486+ #ifdef HAVE_READLINK
2487+ static int resolve_symlink __ARGS((char_u *fname, char_u *buf));
2488+ #endif
2489
2490 /*
2491 * Open a new memline for "buf".
2492***************
2493*** 1401,1410 ****
2494 int i;
2495 char_u *dirp;
2496 char_u *dir_name;
2497
2498 if (list)
2499 {
2500! /* use msg() to start the scrolling properly */
2501 msg((char_u *)_("Swap files found:"));
2502 msg_putchar('\n');
2503 }
2504--- 1404,1422 ----
2505 int i;
2506 char_u *dirp;
2507 char_u *dir_name;
2508+ char_u *fname_res = *fname;
2509+ #ifdef HAVE_READLINK
2510+ char_u fname_buf[MAXPATHL];
2511+
2512+ /* Expand symlink in the file name, because the swap file is created with
2513+ * the actual file instead of with the symlink. */
2514+ if (resolve_symlink(*fname, fname_buf) == OK)
2515+ fname_res = fname_buf;
2516+ #endif
2517
2518 if (list)
2519 {
2520! /* use msg() to start the scrolling properly */
2521 msg((char_u *)_("Swap files found:"));
2522 msg_putchar('\n');
2523 }
2524***************
2525*** 1453,1459 ****
2526 #endif
2527 }
2528 else
2529! num_names = recov_file_names(names, *fname, TRUE);
2530 }
2531 else /* check directory dir_name */
2532 {
2533--- 1465,1471 ----
2534 #endif
2535 }
2536 else
2537! num_names = recov_file_names(names, fname_res, TRUE);
2538 }
2539 else /* check directory dir_name */
2540 {
2541***************
2542*** 1490,1501 ****
2543 if (after_pathsep(dir_name, p) && p[-1] == p[-2])
2544 {
2545 /* Ends with '//', Use Full path for swap name */
2546! tail = make_percent_swname(dir_name, *fname);
2547 }
2548 else
2549 #endif
2550 {
2551! tail = gettail(*fname);
2552 tail = concat_fnames(dir_name, tail, TRUE);
2553 }
2554 if (tail == NULL)
2555--- 1502,1513 ----
2556 if (after_pathsep(dir_name, p) && p[-1] == p[-2])
2557 {
2558 /* Ends with '//', Use Full path for swap name */
2559! tail = make_percent_swname(dir_name, fname_res);
2560 }
2561 else
2562 #endif
2563 {
2564! tail = gettail(fname_res);
2565 tail = concat_fnames(dir_name, tail, TRUE);
2566 }
2567 if (tail == NULL)
2568***************
2569*** 1535,1545 ****
2570 struct stat st;
2571 char_u *swapname;
2572
2573 #if defined(VMS) || defined(RISCOS)
2574! swapname = modname(*fname, (char_u *)"_swp", FALSE);
2575 #else
2576! swapname = modname(*fname, (char_u *)".swp", TRUE);
2577 #endif
2578 if (swapname != NULL)
2579 {
2580 if (mch_stat((char *)swapname, &st) != -1) /* It exists! */
2581--- 1547,1559 ----
2582 struct stat st;
2583 char_u *swapname;
2584
2585+ swapname = modname(fname_res,
2586 #if defined(VMS) || defined(RISCOS)
2587! (char_u *)"_swp", FALSE
2588 #else
2589! (char_u *)".swp", TRUE
2590 #endif
2591+ );
2592 if (swapname != NULL)
2593 {
2594 if (mch_stat((char *)swapname, &st) != -1) /* It exists! */
2595***************
2596*** 3508,3515 ****
2597 }
2598
2599 #ifdef HAVE_READLINK
2600- static int resolve_symlink __ARGS((char_u *fname, char_u *buf));
2601-
2602 /*
2603 * Resolve a symlink in the last component of a file name.
2604 * Note that f_resolve() does it for every part of the path, we don't do that
2605--- 3522,3527 ----
2606***************
2607*** 3601,3609 ****
2608 char_u *dir_name;
2609 {
2610 char_u *r, *s;
2611 #ifdef HAVE_READLINK
2612 char_u fname_buf[MAXPATHL];
2613- char_u *fname_res;
2614 #endif
2615
2616 #if defined(UNIX) || defined(WIN3264) /* Need _very_ long file names */
2617--- 3613,3621 ----
2618 char_u *dir_name;
2619 {
2620 char_u *r, *s;
2621+ char_u *fname_res = fname;
2622 #ifdef HAVE_READLINK
2623 char_u fname_buf[MAXPATHL];
2624 #endif
2625
2626 #if defined(UNIX) || defined(WIN3264) /* Need _very_ long file names */
2627***************
2628*** 3625,3632 ****
2629 * actual file instead of with the symlink. */
2630 if (resolve_symlink(fname, fname_buf) == OK)
2631 fname_res = fname_buf;
2632- else
2633- fname_res = fname;
2634 #endif
2635
2636 r = buf_modname(
2637--- 3637,3642 ----
2638***************
2639*** 3639,3649 ****
2640 /* Avoid problems if fname has special chars, eg <Wimp$Scrap> */
2641 ffname,
2642 #else
2643- # ifdef HAVE_READLINK
2644 fname_res,
2645- # else
2646- fname,
2647- # endif
2648 #endif
2649 (char_u *)
2650 #if defined(VMS) || defined(RISCOS)
2651--- 3649,3655 ----
2652*** ../vim-7.2.426/src/version.c 2010-05-14 17:32:53.000000000 +0200
2653--- src/version.c 2010-05-14 17:50:43.000000000 +0200
2654***************
2655*** 683,684 ****
2656--- 683,686 ----
2657 { /* Add new patch number below this line */
2658+ /**/
2659+ 427,
2660 /**/
2661
2662--
2663Change is inevitable, except from a vending machine.
2664
2665 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2666/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
2667\\\ download, build and distribute -- http://www.A-A-P.org ///
2668 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
2669To: vim-dev@vim.org
2670Subject: Patch 7.2.428
2671Fcc: outbox
2672From: Bram Moolenaar <Bram@moolenaar.net>
2673Mime-Version: 1.0
2674Content-Type: text/plain; charset=UTF-8
2675Content-Transfer-Encoding: 8bit
2676------------
2677
2678Patch 7.2.428
2679Problem: Using setqflist([]) to clear the error list doesn't work properly.
2680Solution: Set qf_nonevalid to TRUE when appropriate. (Christian Brabandt)
2681Files: src/quickfix.c
2682
2683
2684*** ../vim-7.2.427/src/quickfix.c 2010-01-19 14:59:14.000000000 +0100
2685--- src/quickfix.c 2010-05-14 18:06:27.000000000 +0200
2686***************
2687*** 3654,3660 ****
2688 }
2689 }
2690
2691! qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
2692 qi->qf_lists[qi->qf_curlist].qf_ptr = qi->qf_lists[qi->qf_curlist].qf_start;
2693 qi->qf_lists[qi->qf_curlist].qf_index = 1;
2694
2695--- 3654,3664 ----
2696 }
2697 }
2698
2699! if (qi->qf_lists[qi->qf_curlist].qf_index == 0)
2700! /* empty list or no valid entry */
2701! qi->qf_lists[qi->qf_curlist].qf_nonevalid = TRUE;
2702! else
2703! qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
2704 qi->qf_lists[qi->qf_curlist].qf_ptr = qi->qf_lists[qi->qf_curlist].qf_start;
2705 qi->qf_lists[qi->qf_curlist].qf_index = 1;
2706
2707*** ../vim-7.2.427/src/version.c 2010-05-14 17:52:35.000000000 +0200
2708--- src/version.c 2010-05-14 18:09:32.000000000 +0200
2709***************
2710*** 683,684 ****
2711--- 683,686 ----
2712 { /* Add new patch number below this line */
2713+ /**/
2714+ 428,
2715 /**/
2716
2717--
2718Seen it all, done it all, can't remember most of it.
2719
2720 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2721/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
2722\\\ download, build and distribute -- http://www.A-A-P.org ///
2723 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
2724To: vim-dev@vim.org
2725Subject: Patch 7.2.429
2726Fcc: outbox
2727From: Bram Moolenaar <Bram@moolenaar.net>
2728Mime-Version: 1.0
2729Content-Type: text/plain; charset=UTF-8
2730Content-Transfer-Encoding: 8bit
2731------------
2732
2733Patch 7.2.429
2734Problem: A file that exists but access is denied may result in a "new file"
2735 message. E.g. when its directory is unreadable.
2736Solution: Specifically check for ENOENT to decide a file doesn't exist.
2737 (partly by James Vega)
2738Files: src/fileio.c
2739
2740
2741*** ../vim-7.2.428/src/fileio.c 2010-03-02 12:47:58.000000000 +0100
2742--- src/fileio.c 2010-05-14 18:30:09.000000000 +0200
2743***************
2744*** 595,601 ****
2745 #endif
2746 if (newfile)
2747 {
2748! if (perm < 0)
2749 {
2750 /*
2751 * Set the 'new-file' flag, so that when the file has
2752--- 595,605 ----
2753 #endif
2754 if (newfile)
2755 {
2756! if (perm < 0
2757! #ifdef ENOENT
2758! && errno == ENOENT
2759! #endif
2760! )
2761 {
2762 /*
2763 * Set the 'new-file' flag, so that when the file has
2764***************
2765*** 664,669 ****
2766--- 668,676 ----
2767 # ifdef EFBIG
2768 (errno == EFBIG) ? _("[File too big]") :
2769 # endif
2770+ # ifdef EOVERFLOW
2771+ (errno == EOVERFLOW) ? _("[File too big]") :
2772+ # endif
2773 _("[Permission Denied]")), 0);
2774 curbuf->b_p_ro = TRUE; /* must use "w!" now */
2775 }
2776*** ../vim-7.2.428/src/version.c 2010-05-14 18:10:23.000000000 +0200
2777--- src/version.c 2010-05-14 18:55:11.000000000 +0200
2778***************
2779*** 683,684 ****
2780--- 683,686 ----
2781 { /* Add new patch number below this line */
2782+ /**/
2783+ 429,
2784 /**/
2785
2786--
2787Those who live by the sword get shot by those who don't.
2788
2789 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2790/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
2791\\\ download, build and distribute -- http://www.A-A-P.org ///
2792 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
2793To: vim-dev@vim.org
2794Subject: Patch 7.2.430
2795Fcc: outbox
2796From: Bram Moolenaar <Bram@moolenaar.net>
2797Mime-Version: 1.0
2798Content-Type: text/plain; charset=UTF-8
2799Content-Transfer-Encoding: 8bit
2800------------
2801
2802Patch 7.2.430
2803Problem: The ++bad argument is handled wrong, resulting in an invalid
2804 memory access.
2805Solution: Use the bad_char field only for the replacement character, add
2806 bad_char_idx to store the position. (Dominique Pelle)
2807Files: src/eval.c, src/ex_cmds.h, src/ex_docmd.c
2808
2809
2810*** ../vim-7.2.429/src/eval.c 2010-05-14 12:16:19.000000000 +0200
2811--- src/eval.c 2010-05-14 19:04:53.000000000 +0200
2812***************
2813*** 18309,18316 ****
2814 # ifdef FEAT_MBYTE
2815 if (eap->force_enc != 0)
2816 len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7;
2817! if (eap->bad_char != 0)
2818! len += (unsigned)STRLEN(eap->cmd + eap->bad_char) + 7;
2819 # endif
2820
2821 newval = alloc(len + 1);
2822--- 18309,18316 ----
2823 # ifdef FEAT_MBYTE
2824 if (eap->force_enc != 0)
2825 len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7;
2826! if (eap->bad_char_idx != 0)
2827! len += (unsigned)STRLEN(eap->cmd + eap->bad_char_idx) + 7;
2828 # endif
2829
2830 newval = alloc(len + 1);
2831***************
2832*** 18334,18342 ****
2833 if (eap->force_enc != 0)
2834 sprintf((char *)newval + STRLEN(newval), " ++enc=%s",
2835 eap->cmd + eap->force_enc);
2836! if (eap->bad_char != 0)
2837 sprintf((char *)newval + STRLEN(newval), " ++bad=%s",
2838! eap->cmd + eap->bad_char);
2839 # endif
2840 vimvars[VV_CMDARG].vv_str = newval;
2841 return oldval;
2842--- 18334,18342 ----
2843 if (eap->force_enc != 0)
2844 sprintf((char *)newval + STRLEN(newval), " ++enc=%s",
2845 eap->cmd + eap->force_enc);
2846! if (eap->bad_char_idx != 0)
2847 sprintf((char *)newval + STRLEN(newval), " ++bad=%s",
2848! eap->cmd + eap->bad_char_idx);
2849 # endif
2850 vimvars[VV_CMDARG].vv_str = newval;
2851 return oldval;
2852*** ../vim-7.2.429/src/ex_cmds.h 2010-05-14 15:42:49.000000000 +0200
2853--- src/ex_cmds.h 2010-05-14 20:23:20.000000000 +0200
2854***************
2855*** 1152,1158 ****
2856 int force_ff; /* ++ff= argument (index in cmd[]) */
2857 #ifdef FEAT_MBYTE
2858 int force_enc; /* ++enc= argument (index in cmd[]) */
2859! int bad_char; /* ++bad= argument (index in cmd[]) */
2860 #endif
2861 #ifdef FEAT_USR_CMDS
2862 int useridx; /* user command index */
2863--- 1152,1159 ----
2864 int force_ff; /* ++ff= argument (index in cmd[]) */
2865 #ifdef FEAT_MBYTE
2866 int force_enc; /* ++enc= argument (index in cmd[]) */
2867! int bad_char_idx; /* ++bad= argument (index in cmd[]) */
2868! int bad_char; /* BAD_KEEP, BAD_DROP or replacement char */
2869 #endif
2870 #ifdef FEAT_USR_CMDS
2871 int useridx; /* user command index */
2872*** ../vim-7.2.429/src/ex_docmd.c 2010-05-14 15:28:37.000000000 +0200
2873--- src/ex_docmd.c 2010-05-14 19:04:53.000000000 +0200
2874***************
2875*** 4739,4745 ****
2876 else if (STRNCMP(arg, "bad", 3) == 0)
2877 {
2878 arg += 3;
2879! pp = &eap->bad_char;
2880 }
2881 #endif
2882
2883--- 4739,4745 ----
2884 else if (STRNCMP(arg, "bad", 3) == 0)
2885 {
2886 arg += 3;
2887! pp = &eap->bad_char_idx;
2888 }
2889 #endif
2890
2891***************
2892*** 4770,4776 ****
2893 {
2894 /* Check ++bad= argument. Must be a single-byte character, "keep" or
2895 * "drop". */
2896! p = eap->cmd + eap->bad_char;
2897 if (STRICMP(p, "keep") == 0)
2898 eap->bad_char = BAD_KEEP;
2899 else if (STRICMP(p, "drop") == 0)
2900--- 4770,4776 ----
2901 {
2902 /* Check ++bad= argument. Must be a single-byte character, "keep" or
2903 * "drop". */
2904! p = eap->cmd + eap->bad_char_idx;
2905 if (STRICMP(p, "keep") == 0)
2906 eap->bad_char = BAD_KEEP;
2907 else if (STRICMP(p, "drop") == 0)
2908*** ../vim-7.2.429/src/version.c 2010-05-14 18:56:33.000000000 +0200
2909--- src/version.c 2010-05-14 20:39:38.000000000 +0200
2910***************
2911*** 683,684 ****
2912--- 683,686 ----
2913 { /* Add new patch number below this line */
2914+ /**/
2915+ 430,
2916 /**/
2917
2918--
2919You have the right to remain silent. Anything you say will be
2920misquoted, then used against you.
2921
2922 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2923/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
2924\\\ download, build and distribute -- http://www.A-A-P.org ///
2925 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
2926To: vim-dev@vim.org
2927Subject: Patch 7.2.431
2928Fcc: outbox
2929From: Bram Moolenaar <Bram@moolenaar.net>
2930Mime-Version: 1.0
2931Content-Type: text/plain; charset=UTF-8
2932Content-Transfer-Encoding: 8bit
2933------------
2934
2935Patch 7.2.431
2936Problem: ":amenu" moves the cursor when in Insert mode.
2937Solution: Use CTRL-\ CTRL-O instead of CTRL-O. (Christian Brabandt)
2938Files: src/menu.c
2939
2940
2941*** ../vim-7.2.430/src/menu.c 2009-05-17 13:30:58.000000000 +0200
2942--- src/menu.c 2010-05-14 21:18:00.000000000 +0200
2943***************
2944*** 490,495 ****
2945--- 490,496 ----
2946 char_u *next_name;
2947 int i;
2948 int c;
2949+ int d;
2950 #ifdef FEAT_GUI
2951 int idx;
2952 int new_idx;
2953***************
2954*** 746,751 ****
2955--- 747,753 ----
2956 * Don't do this if adding a tearbar (addtearoff == FALSE).
2957 * Don't do this for "<Nop>". */
2958 c = 0;
2959+ d = 0;
2960 if (amenu && call_data != NULL && *call_data != NUL
2961 #ifdef FEAT_GUI_W32
2962 && addtearoff
2963***************
2964*** 761,778 ****
2965 c = Ctrl_C;
2966 break;
2967 case MENU_INSERT_MODE:
2968! c = Ctrl_O;
2969 break;
2970 }
2971 }
2972
2973! if (c)
2974 {
2975! menu->strings[i] = alloc((unsigned)(STRLEN(call_data) + 4));
2976 if (menu->strings[i] != NULL)
2977 {
2978 menu->strings[i][0] = c;
2979! STRCPY(menu->strings[i] + 1, call_data);
2980 if (c == Ctrl_C)
2981 {
2982 int len = (int)STRLEN(menu->strings[i]);
2983--- 763,787 ----
2984 c = Ctrl_C;
2985 break;
2986 case MENU_INSERT_MODE:
2987! c = Ctrl_BSL;
2988! d = Ctrl_O;
2989 break;
2990 }
2991 }
2992
2993! if (c != 0)
2994 {
2995! menu->strings[i] = alloc((unsigned)(STRLEN(call_data) + 5 ));
2996 if (menu->strings[i] != NULL)
2997 {
2998 menu->strings[i][0] = c;
2999! if (d == 0)
3000! STRCPY(menu->strings[i] + 1, call_data);
3001! else
3002! {
3003! menu->strings[i][1] = d;
3004! STRCPY(menu->strings[i] + 2, call_data);
3005! }
3006 if (c == Ctrl_C)
3007 {
3008 int len = (int)STRLEN(menu->strings[i]);
3009*** ../vim-7.2.430/src/version.c 2010-05-14 20:41:00.000000000 +0200
3010--- src/version.c 2010-05-14 21:11:40.000000000 +0200
3011***************
3012*** 683,684 ****
3013--- 683,686 ----
3014 { /* Add new patch number below this line */
3015+ /**/
3016+ 431,
3017 /**/
3018
3019--
3020Despite the cost of living, have you noticed how it remains so popular?
3021
3022 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
3023/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
3024\\\ download, build and distribute -- http://www.A-A-P.org ///
3025 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
3026To: vim-dev@vim.org
3027Subject: Patch 7.2.432
3028Fcc: outbox
3029From: Bram Moolenaar <Bram@moolenaar.net>
3030Mime-Version: 1.0
3031Content-Type: text/plain; charset=UTF-8
3032Content-Transfer-Encoding: 8bit
3033------------
3034
3035Patch 7.2.432
3036Problem: When menus are translated they can only be found by the translated
3037 name. That makes ":emenu" difficult to use.
3038Solution: Store the untranslated name and use it for completion and :emenu.
3039 (Edward L. Fox / Liang Peng / Bezetek James)
3040Files: src/menu.c, src/structs.h
3041
3042
3043*** ../vim-7.2.431/src/menu.c 2010-05-14 21:19:16.000000000 +0200
3044--- src/menu.c 2010-05-14 21:52:58.000000000 +0200
3045***************
3046*** 58,63 ****
3047--- 58,66 ----
3048 static char_u *menutrans_lookup __ARGS((char_u *name, int len));
3049 #endif
3050
3051+ static char_u *menu_translate_tab_and_shift __ARGS((char_u *arg_start));
3052+ static void menu_unescape_name __ARGS((char_u *p));
3053+
3054 /* The character for each menu mode */
3055 static char_u menu_mode_chars[] = {'n', 'v', 's', 'o', 'i', 'c', 't'};
3056
3057***************
3058*** 106,115 ****
3059 int pri_tab[MENUDEPTH + 1];
3060 int enable = MAYBE; /* TRUE for "menu enable", FALSE for "menu
3061 * disable */
3062- #ifdef FEAT_MULTI_LANG
3063- char_u *tofree = NULL;
3064- char_u *new_cmd;
3065- #endif
3066 #ifdef FEAT_TOOLBAR
3067 char_u *icon = NULL;
3068 #endif
3069--- 109,114 ----
3070***************
3071*** 251,291 ****
3072 }
3073 #endif
3074
3075- #ifdef FEAT_MULTI_LANG
3076- /*
3077- * Translate menu names as specified with ":menutrans" commands.
3078- */
3079- menu_path = arg;
3080- while (*menu_path)
3081- {
3082- /* find the end of one part and check if it should be translated */
3083- p = menu_skip_part(menu_path);
3084- map_to = menutrans_lookup(menu_path, (int)(p - menu_path));
3085- if (map_to != NULL)
3086- {
3087- /* found a match: replace with the translated part */
3088- i = (int)STRLEN(map_to);
3089- new_cmd = alloc((unsigned)STRLEN(arg) + i + 1);
3090- if (new_cmd == NULL)
3091- break;
3092- mch_memmove(new_cmd, arg, menu_path - arg);
3093- mch_memmove(new_cmd + (menu_path - arg), map_to, (size_t)i);
3094- STRCPY(new_cmd + (menu_path - arg) + i, p);
3095- p = new_cmd + (menu_path - arg) + i;
3096- vim_free(tofree);
3097- tofree = new_cmd;
3098- arg = new_cmd;
3099- }
3100- if (*p != '.')
3101- break;
3102- menu_path = p + 1;
3103- }
3104- #endif
3105-
3106- /*
3107- * Isolate the menu name.
3108- * Skip the menu name, and translate <Tab> into a real TAB.
3109- */
3110 menu_path = arg;
3111 if (*menu_path == '.')
3112 {
3113--- 250,255 ----
3114***************
3115*** 293,313 ****
3116 goto theend;
3117 }
3118
3119! while (*arg && !vim_iswhite(*arg))
3120! {
3121! if ((*arg == '\\' || *arg == Ctrl_V) && arg[1] != NUL)
3122! arg++;
3123! else if (STRNICMP(arg, "<TAB>", 5) == 0)
3124! {
3125! *arg = TAB;
3126! STRMOVE(arg + 1, arg + 5);
3127! }
3128! arg++;
3129! }
3130! if (*arg != NUL)
3131! *arg++ = NUL;
3132! arg = skipwhite(arg);
3133! map_to = arg;
3134
3135 /*
3136 * If there is only a menu name, display menus with that name.
3137--- 257,263 ----
3138 goto theend;
3139 }
3140
3141! map_to = menu_translate_tab_and_shift(arg);
3142
3143 /*
3144 * If there is only a menu name, display menus with that name.
3145***************
3146*** 453,463 ****
3147 #endif
3148
3149 theend:
3150- #ifdef FEAT_MULTI_LANG
3151- vim_free(tofree);
3152- #else
3153 ;
3154- #endif
3155 }
3156
3157 /*
3158--- 403,409 ----
3159***************
3160*** 498,503 ****
3161--- 444,453 ----
3162 int pri_idx = 0;
3163 int old_modes = 0;
3164 int amenu;
3165+ #ifdef FEAT_MULTI_LANG
3166+ char_u *en_name;
3167+ char_u *map_to = NULL;
3168+ #endif
3169
3170 /* Make a copy so we can stuff around with it, since it could be const */
3171 path_name = vim_strsave(menu_path);
3172***************
3173*** 511,516 ****
3174--- 461,476 ----
3175 /* Get name of this element in the menu hierarchy, and the simplified
3176 * name (without mnemonic and accelerator text). */
3177 next_name = menu_name_skip(name);
3178+ #ifdef FEAT_MULTI_LANG
3179+ map_to = menutrans_lookup(name,STRLEN(name));
3180+ if (map_to != NULL)
3181+ {
3182+ en_name = name;
3183+ name = map_to;
3184+ }
3185+ else
3186+ en_name = NULL;
3187+ #endif
3188 dname = menu_text(name, NULL, NULL);
3189 if (dname == NULL)
3190 goto erret;
3191***************
3192*** 594,599 ****
3193--- 554,571 ----
3194 menu->name = vim_strsave(name);
3195 /* separate mnemonic and accelerator text from actual menu name */
3196 menu->dname = menu_text(name, &menu->mnemonic, &menu->actext);
3197+ #ifdef FEAT_MULTI_LANG
3198+ if (en_name != NULL)
3199+ {
3200+ menu->en_name = vim_strsave(en_name);
3201+ menu->en_dname = menu_text(en_name, NULL, NULL);
3202+ }
3203+ else
3204+ {
3205+ menu->en_name = NULL;
3206+ menu->en_dname = NULL;
3207+ }
3208+ #endif
3209 menu->priority = pri_tab[pri_idx];
3210 menu->parent = parent;
3211 #ifdef FEAT_GUI_MOTIF
3212***************
3213*** 1040,1045 ****
3214--- 1012,1021 ----
3215 *menup = menu->next;
3216 vim_free(menu->name);
3217 vim_free(menu->dname);
3218+ #ifdef FEAT_MULTI_LANG
3219+ vim_free(menu->en_name);
3220+ vim_free(menu->en_dname);
3221+ #endif
3222 vim_free(menu->actext);
3223 #ifdef FEAT_TOOLBAR
3224 vim_free(menu->iconfile);
3225***************
3226*** 1357,1365 ****
3227--- 1333,1347 ----
3228 {
3229 static vimmenu_T *menu = NULL;
3230 char_u *str;
3231+ #ifdef FEAT_MULTI_LANG
3232+ static int should_advance = FALSE;
3233+ #endif
3234
3235 if (idx == 0) /* first call: start at first item */
3236+ {
3237 menu = expand_menu;
3238+ should_advance = FALSE;
3239+ }
3240
3241 /* Skip PopUp[nvoci]. */
3242 while (menu != NULL && (menu_is_hidden(menu->dname)
3243***************
3244*** 1372,1383 ****
3245 return NULL;
3246
3247 if (menu->modes & expand_modes)
3248! str = menu->dname;
3249 else
3250 str = (char_u *)"";
3251
3252! /* Advance to next menu entry. */
3253! menu = menu->next;
3254
3255 return str;
3256 }
3257--- 1354,1383 ----
3258 return NULL;
3259
3260 if (menu->modes & expand_modes)
3261! #ifdef FEAT_MULTI_LANG
3262! if (should_advance)
3263! str = menu->en_dname;
3264! else
3265! {
3266! #endif
3267! str = menu->dname;
3268! #ifdef FEAT_MULTI_LANG
3269! if (menu->en_dname == NULL)
3270! should_advance = TRUE;
3271! }
3272! #endif
3273 else
3274 str = (char_u *)"";
3275
3276! #ifdef FEAT_MULTI_LANG
3277! if (should_advance)
3278! #endif
3279! /* Advance to next menu entry. */
3280! menu = menu->next;
3281!
3282! #ifdef FEAT_MULTI_LANG
3283! should_advance = !should_advance;
3284! #endif
3285
3286 return str;
3287 }
3288***************
3289*** 1394,1402 ****
3290--- 1394,1408 ----
3291 static vimmenu_T *menu = NULL;
3292 static char_u tbuffer[256]; /*hack*/
3293 char_u *str;
3294+ #ifdef FEAT_MULTI_LANG
3295+ static int should_advance = FALSE;
3296+ #endif
3297
3298 if (idx == 0) /* first call: start at first item */
3299+ {
3300 menu = expand_menu;
3301+ should_advance = FALSE;
3302+ }
3303
3304 /* Skip Browse-style entries, popup menus and separators. */
3305 while (menu != NULL
3306***************
3307*** 1416,1435 ****
3308 {
3309 if (menu->children != NULL)
3310 {
3311! STRCPY(tbuffer, menu->dname);
3312 /* hack on menu separators: use a 'magic' char for the separator
3313 * so that '.' in names gets escaped properly */
3314 STRCAT(tbuffer, "\001");
3315 str = tbuffer;
3316 }
3317 else
3318! str = menu->dname;
3319 }
3320 else
3321 str = (char_u *)"";
3322
3323! /* Advance to next menu entry. */
3324! menu = menu->next;
3325
3326 return str;
3327 }
3328--- 1422,1472 ----
3329 {
3330 if (menu->children != NULL)
3331 {
3332! #ifdef FEAT_MULTI_LANG
3333! if (should_advance)
3334! STRCPY(tbuffer, menu->en_dname);
3335! else
3336! {
3337! #endif
3338! STRCPY(tbuffer, menu->dname);
3339! #ifdef FEAT_MULTI_LANG
3340! if (menu->en_dname == NULL)
3341! should_advance = TRUE;
3342! }
3343! #endif
3344 /* hack on menu separators: use a 'magic' char for the separator
3345 * so that '.' in names gets escaped properly */
3346 STRCAT(tbuffer, "\001");
3347 str = tbuffer;
3348 }
3349 else
3350! #ifdef FEAT_MULTI_LANG
3351! {
3352! if (should_advance)
3353! str = menu->en_dname;
3354! else
3355! {
3356! #endif
3357! str = menu->dname;
3358! #ifdef FEAT_MULTI_LANG
3359! if (menu->en_dname == NULL)
3360! should_advance = TRUE;
3361! }
3362! }
3363! #endif
3364 }
3365 else
3366 str = (char_u *)"";
3367
3368! #ifdef FEAT_MULTI_LANG
3369! if (should_advance)
3370! #endif
3371! /* Advance to next menu entry. */
3372! menu = menu->next;
3373!
3374! #ifdef FEAT_MULTI_LANG
3375! should_advance = !should_advance;
3376! #endif
3377
3378 return str;
3379 }
3380***************
3381*** 1469,1475 ****
3382 char_u *name;
3383 vimmenu_T *menu;
3384 {
3385! return (menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname));
3386 }
3387
3388 static int
3389--- 1506,1516 ----
3390 char_u *name;
3391 vimmenu_T *menu;
3392 {
3393! if (menu->en_name != NULL
3394! && (menu_namecmp(name,menu->en_name)
3395! || menu_namecmp(name,menu->en_dname)))
3396! return TRUE;
3397! return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
3398 }
3399
3400 static int
3401***************
3402*** 2402,2407 ****
3403--- 2443,2452 ----
3404 to = vim_strnsave(to, (int)(arg - to));
3405 if (from_noamp != NULL && to != NULL)
3406 {
3407+ menu_translate_tab_and_shift(from);
3408+ menu_translate_tab_and_shift(to);
3409+ menu_unescape_name(from);
3410+ menu_unescape_name(to);
3411 tp[menutrans_ga.ga_len].from = from;
3412 tp[menutrans_ga.ga_len].from_noamp = from_noamp;
3413 tp[menutrans_ga.ga_len].to = to;
3414***************
3415*** 2476,2479 ****
3416--- 2521,2566 ----
3417 }
3418 #endif /* FEAT_MULTI_LANG */
3419
3420+ /*
3421+ * Unescape the name in the translate dictionary table.
3422+ */
3423+ static void
3424+ menu_unescape_name(name)
3425+ char_u *name;
3426+ {
3427+ char_u *p;
3428+
3429+ for (p = name; *p && *p != '.'; mb_ptr_adv(p))
3430+ if (*p == '\\')
3431+ STRMOVE(p, p + 1);
3432+ }
3433+
3434+ /*
3435+ * Isolate the menu name.
3436+ * Skip the menu name, and translate <Tab> into a real TAB.
3437+ */
3438+ static char_u *
3439+ menu_translate_tab_and_shift(arg_start)
3440+ char_u *arg_start;
3441+ {
3442+ char_u *arg = arg_start;
3443+
3444+ while (*arg && !vim_iswhite(*arg))
3445+ {
3446+ if ((*arg == '\\' || *arg == Ctrl_V) && arg[1] != NUL)
3447+ arg++;
3448+ else if (STRNICMP(arg, "<TAB>", 5) == 0)
3449+ {
3450+ *arg = TAB;
3451+ STRMOVE(arg + 1, arg + 5);
3452+ }
3453+ arg++;
3454+ }
3455+ if (*arg != NUL)
3456+ *arg++ = NUL;
3457+ arg = skipwhite(arg);
3458+
3459+ return arg;
3460+ }
3461+
3462 #endif /* FEAT_MENU */
3463*** ../vim-7.2.431/src/structs.h 2009-09-18 17:24:54.000000000 +0200
3464--- src/structs.h 2010-05-14 22:21:50.000000000 +0200
3465***************
3466*** 232,238 ****
3467 {
3468 wininfo_T *wi_next; /* next entry or NULL for last entry */
3469 wininfo_T *wi_prev; /* previous entry or NULL for first entry */
3470! win_T *wi_win; /* pointer to window that did set wi_lnum */
3471 pos_T wi_fpos; /* last cursor position in the file */
3472 int wi_optset; /* TRUE when wi_opt has useful values */
3473 winopt_T wi_opt; /* local window options */
3474--- 232,238 ----
3475 {
3476 wininfo_T *wi_next; /* next entry or NULL for last entry */
3477 wininfo_T *wi_prev; /* previous entry or NULL for first entry */
3478! win_T *wi_win; /* pointer to window that did set wi_fpos */
3479 pos_T wi_fpos; /* last cursor position in the file */
3480 int wi_optset; /* TRUE when wi_opt has useful values */
3481 winopt_T wi_opt; /* local window options */
3482***************
3483*** 2207,2214 ****
3484 {
3485 int modes; /* Which modes is this menu visible for? */
3486 int enabled; /* for which modes the menu is enabled */
3487! char_u *name; /* Name of menu */
3488! char_u *dname; /* Displayed Name (without '&') */
3489 int mnemonic; /* mnemonic key (after '&') */
3490 char_u *actext; /* accelerator text (after TAB) */
3491 int priority; /* Menu order priority */
3492--- 2207,2220 ----
3493 {
3494 int modes; /* Which modes is this menu visible for? */
3495 int enabled; /* for which modes the menu is enabled */
3496! char_u *name; /* Name of menu, possibly translated */
3497! char_u *dname; /* Displayed Name ("name" without '&') */
3498! #ifdef FEAT_MULTI_LANG
3499! char_u *en_name; /* "name" untranslated, NULL when "name"
3500! * was not translated */
3501! char_u *en_dname; /* "dname" untranslated, NULL when "dname"
3502! * was not translated */
3503! #endif
3504 int mnemonic; /* mnemonic key (after '&') */
3505 char_u *actext; /* accelerator text (after TAB) */
3506 int priority; /* Menu order priority */
3507*** ../vim-7.2.431/src/version.c 2010-05-14 21:19:16.000000000 +0200
3508--- src/version.c 2010-05-14 22:19:39.000000000 +0200
3509***************
3510*** 683,684 ****
3511--- 683,686 ----
3512 { /* Add new patch number below this line */
3513+ /**/
3514+ 432,
3515 /**/
3516
3517--
3518It is hard to understand how a cemetery raised its burial
3519cost and blamed it on the cost of living.
3520
3521 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
3522/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
3523\\\ download, build and distribute -- http://www.A-A-P.org ///
3524 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
3525To: vim-dev@vim.org
3526Subject: Patch 7.2.433
3527Fcc: outbox
3528From: Bram Moolenaar <Bram@moolenaar.net>
3529Mime-Version: 1.0
3530Content-Type: text/plain; charset=UTF-8
3531Content-Transfer-Encoding: 8bit
3532------------
3533
3534Patch 7.2.433
3535Problem: Can't use cscope with QuickFixCmdPre and QuickFixCmdPost.
3536Solution: Add cscope support for these autocmd events. (Bryan Venteicher)
3537Files: runtime/doc/autocmd.txt, src/if_cscope.c
3538
3539
3540*** ../vim-7.2.432/runtime/doc/autocmd.txt 2009-06-24 17:51:01.000000000 +0200
3541--- runtime/doc/autocmd.txt 2010-05-14 22:48:43.000000000 +0200
3542***************
3543*** 678,687 ****
3544 QuickFixCmdPre Before a quickfix command is run (|:make|,
3545 |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
3546 |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
3547! |:vimgrepadd|, |:lvimgrepadd|). The pattern is
3548! matched against the command being run. When
3549! |:grep| is used but 'grepprg' is set to
3550! "internal" it still matches "grep".
3551 This command cannot be used to set the
3552 'makeprg' and 'grepprg' variables.
3553 If this command causes an error, the quickfix
3554--- 678,687 ----
3555 QuickFixCmdPre Before a quickfix command is run (|:make|,
3556 |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
3557 |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
3558! |:vimgrepadd|, |:lvimgrepadd|, |:cscope|).
3559! The pattern is matched against the command
3560! being run. When |:grep| is used but 'grepprg'
3561! is set to "internal" it still matches "grep".
3562 This command cannot be used to set the
3563 'makeprg' and 'grepprg' variables.
3564 If this command causes an error, the quickfix
3565*** ../vim-7.2.432/src/if_cscope.c 2010-02-24 14:46:58.000000000 +0100
3566--- src/if_cscope.c 2010-05-14 23:10:39.000000000 +0200
3567***************
3568*** 1113,1118 ****
3569--- 1113,1182 ----
3570 #ifdef FEAT_QUICKFIX
3571 char cmdletter;
3572 char *qfpos;
3573+
3574+ /* get cmd letter */
3575+ switch (opt[0])
3576+ {
3577+ case '0' :
3578+ cmdletter = 's';
3579+ break;
3580+ case '1' :
3581+ cmdletter = 'g';
3582+ break;
3583+ case '2' :
3584+ cmdletter = 'd';
3585+ break;
3586+ case '3' :
3587+ cmdletter = 'c';
3588+ break;
3589+ case '4' :
3590+ cmdletter = 't';
3591+ break;
3592+ case '6' :
3593+ cmdletter = 'e';
3594+ break;
3595+ case '7' :
3596+ cmdletter = 'f';
3597+ break;
3598+ case '8' :
3599+ cmdletter = 'i';
3600+ break;
3601+ default :
3602+ cmdletter = opt[0];
3603+ }
3604+
3605+ qfpos = (char *)vim_strchr(p_csqf, cmdletter);
3606+ if (qfpos != NULL)
3607+ {
3608+ qfpos++;
3609+ /* next symbol must be + or - */
3610+ if (strchr(CSQF_FLAGS, *qfpos) == NULL)
3611+ {
3612+ char *nf = _("E469: invalid cscopequickfix flag %c for %c");
3613+ char *buf = (char *)alloc((unsigned)strlen(nf));
3614+
3615+ /* strlen will be enough because we use chars */
3616+ if (buf != NULL)
3617+ {
3618+ sprintf(buf, nf, *qfpos, *(qfpos-1));
3619+ (void)EMSG(buf);
3620+ vim_free(buf);
3621+ }
3622+ return FALSE;
3623+ }
3624+
3625+ # ifdef FEAT_AUTOCMD
3626+ if (*qfpos != '0')
3627+ {
3628+ apply_autocmds(EVENT_QUICKFIXCMDPRE, (char_u *)"cscope",
3629+ curbuf->b_fname, TRUE, curbuf);
3630+ # ifdef FEAT_EVAL
3631+ if (did_throw || force_abort)
3632+ return FALSE;
3633+ # endif
3634+ }
3635+ # endif
3636+ }
3637 #endif
3638
3639 /* create the actual command to send to cscope */
3640***************
3641*** 1174,1231 ****
3642 }
3643
3644 #ifdef FEAT_QUICKFIX
3645- /* get cmd letter */
3646- switch (opt[0])
3647- {
3648- case '0' :
3649- cmdletter = 's';
3650- break;
3651- case '1' :
3652- cmdletter = 'g';
3653- break;
3654- case '2' :
3655- cmdletter = 'd';
3656- break;
3657- case '3' :
3658- cmdletter = 'c';
3659- break;
3660- case '4' :
3661- cmdletter = 't';
3662- break;
3663- case '6' :
3664- cmdletter = 'e';
3665- break;
3666- case '7' :
3667- cmdletter = 'f';
3668- break;
3669- case '8' :
3670- cmdletter = 'i';
3671- break;
3672- default :
3673- cmdletter = opt[0];
3674- }
3675-
3676- qfpos = (char *)vim_strchr(p_csqf, cmdletter);
3677- if (qfpos != NULL)
3678- {
3679- qfpos++;
3680- /* next symbol must be + or - */
3681- if (strchr(CSQF_FLAGS, *qfpos) == NULL)
3682- {
3683- char *nf = _("E469: invalid cscopequickfix flag %c for %c");
3684- char *buf = (char *)alloc((unsigned)strlen(nf));
3685-
3686- /* strlen will be enough because we use chars */
3687- if (buf != NULL)
3688- {
3689- sprintf(buf, nf, *qfpos, *(qfpos-1));
3690- (void)EMSG(buf);
3691- vim_free(buf);
3692- }
3693- vim_free(nummatches);
3694- return FALSE;
3695- }
3696- }
3697 if (qfpos != NULL && *qfpos != '0' && totmatches > 0)
3698 {
3699 /* fill error list */
3700--- 1238,1243 ----
3701***************
3702*** 1258,1263 ****
3703--- 1270,1280 ----
3704 postponed_split = 0;
3705 }
3706 # endif
3707+
3708+ # ifdef FEAT_AUTOCMD
3709+ apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)"cscope",
3710+ curbuf->b_fname, TRUE, curbuf);
3711+ # endif
3712 if (use_ll)
3713 /*
3714 * In the location list window, use the displayed location
3715*** ../vim-7.2.432/src/version.c 2010-05-14 22:24:31.000000000 +0200
3716--- src/version.c 2010-05-14 23:13:27.000000000 +0200
3717***************
3718*** 683,684 ****
3719--- 683,686 ----
3720 { /* Add new patch number below this line */
3721+ /**/
3722+ 433,
3723 /**/
3724
3725--
3726The 50-50-90 rule: Anytime you have a 50-50 chance of getting
3727something right, there's a 90% probability you'll get it wrong.
3728
3729 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
3730/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
3731\\\ download, build and distribute -- http://www.A-A-P.org ///
3732 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
3733To: vim-dev@vim.org
3734Subject: Patch 7.2.434
3735Fcc: outbox
3736From: Bram Moolenaar <Bram@moolenaar.net>
3737Mime-Version: 1.0
3738Content-Type: text/plain; charset=UTF-8
3739Content-Transfer-Encoding: 8bit
3740------------
3741
3742Patch 7.2.434 (after 7.2.432)
3743Problem: Compilation fails without the multi-lang feature.
3744Solution: Add #ifdefs. (Johm Marriott)
3745Files: src/menu.c
3746
3747
3748*** ../vim-7.2.433/src/menu.c 2010-05-14 22:24:31.000000000 +0200
3749--- src/menu.c 2010-05-16 12:28:21.000000000 +0200
3750***************
3751*** 1340,1346 ****
3752--- 1340,1348 ----
3753 if (idx == 0) /* first call: start at first item */
3754 {
3755 menu = expand_menu;
3756+ #ifdef FEAT_MULTI_LANG
3757 should_advance = FALSE;
3758+ #endif
3759 }
3760
3761 /* Skip PopUp[nvoci]. */
3762***************
3763*** 1401,1407 ****
3764--- 1403,1411 ----
3765 if (idx == 0) /* first call: start at first item */
3766 {
3767 menu = expand_menu;
3768+ #ifdef FEAT_MULTI_LANG
3769 should_advance = FALSE;
3770+ #endif
3771 }
3772
3773 /* Skip Browse-style entries, popup menus and separators. */
3774***************
3775*** 1506,1515 ****
3776--- 1510,1521 ----
3777 char_u *name;
3778 vimmenu_T *menu;
3779 {
3780+ #ifdef FEAT_MULTI_LANG
3781 if (menu->en_name != NULL
3782 && (menu_namecmp(name,menu->en_name)
3783 || menu_namecmp(name,menu->en_dname)))
3784 return TRUE;
3785+ #endif
3786 return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
3787 }
3788
3789*** ../vim-7.2.433/src/version.c 2010-05-14 23:14:37.000000000 +0200
3790--- src/version.c 2010-05-16 12:29:40.000000000 +0200
3791***************
3792*** 683,684 ****
3793--- 683,686 ----
3794 { /* Add new patch number below this line */
3795+ /**/
3796+ 434,
3797 /**/
3798
3799--
3800hundred-and-one symptoms of being an internet addict:
380143. You tell the kids they can't use the computer because "Daddy's got work to
3802 do" and you don't even have a job.
3803
3804 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
3805/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
3806\\\ download, build and distribute -- http://www.A-A-P.org ///
3807 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
3808To: vim-dev@vim.org
3809Subject: Patch 7.2.435
3810Fcc: outbox
3811From: Bram Moolenaar <Bram@moolenaar.net>
3812Mime-Version: 1.0
3813Content-Type: text/plain; charset=UTF-8
3814Content-Transfer-Encoding: 8bit
3815------------
3816
3817Patch 7.2.435 (after 7.2.430)
3818Problem: Crash when using bad_char_idx uninitialized. (Patrick Texier)
3819Solution: Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
3820Files: src/eval.c, src/ex_cmds.h, src/ex_docmd.c
3821
3822
3823*** ../vim-7.2.434/src/eval.c 2010-05-14 20:41:00.000000000 +0200
3824--- src/eval.c 2010-05-16 13:19:04.000000000 +0200
3825***************
3826*** 18309,18316 ****
3827 # ifdef FEAT_MBYTE
3828 if (eap->force_enc != 0)
3829 len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7;
3830! if (eap->bad_char_idx != 0)
3831! len += (unsigned)STRLEN(eap->cmd + eap->bad_char_idx) + 7;
3832 # endif
3833
3834 newval = alloc(len + 1);
3835--- 18309,18316 ----
3836 # ifdef FEAT_MBYTE
3837 if (eap->force_enc != 0)
3838 len += (unsigned)STRLEN(eap->cmd + eap->force_enc) + 7;
3839! if (eap->bad_char != 0)
3840! len += 7 + 4; /* " ++bad=" + "keep" or "drop" */
3841 # endif
3842
3843 newval = alloc(len + 1);
3844***************
3845*** 18334,18342 ****
3846 if (eap->force_enc != 0)
3847 sprintf((char *)newval + STRLEN(newval), " ++enc=%s",
3848 eap->cmd + eap->force_enc);
3849! if (eap->bad_char_idx != 0)
3850! sprintf((char *)newval + STRLEN(newval), " ++bad=%s",
3851! eap->cmd + eap->bad_char_idx);
3852 # endif
3853 vimvars[VV_CMDARG].vv_str = newval;
3854 return oldval;
3855--- 18334,18345 ----
3856 if (eap->force_enc != 0)
3857 sprintf((char *)newval + STRLEN(newval), " ++enc=%s",
3858 eap->cmd + eap->force_enc);
3859! if (eap->bad_char == BAD_KEEP)
3860! STRCPY(newval + STRLEN(newval), " ++bad=keep");
3861! else if (eap->bad_char == BAD_DROP)
3862! STRCPY(newval + STRLEN(newval), " ++bad=drop");
3863! else if (eap->bad_char != 0)
3864! sprintf((char *)newval + STRLEN(newval), " ++bad=%c", eap->bad_char);
3865 # endif
3866 vimvars[VV_CMDARG].vv_str = newval;
3867 return oldval;
3868*** ../vim-7.2.434/src/ex_cmds.h 2010-05-14 20:41:00.000000000 +0200
3869--- src/ex_cmds.h 2010-05-16 13:03:53.000000000 +0200
3870***************
3871*** 1152,1159 ****
3872 int force_ff; /* ++ff= argument (index in cmd[]) */
3873 #ifdef FEAT_MBYTE
3874 int force_enc; /* ++enc= argument (index in cmd[]) */
3875! int bad_char_idx; /* ++bad= argument (index in cmd[]) */
3876! int bad_char; /* BAD_KEEP, BAD_DROP or replacement char */
3877 #endif
3878 #ifdef FEAT_USR_CMDS
3879 int useridx; /* user command index */
3880--- 1152,1158 ----
3881 int force_ff; /* ++ff= argument (index in cmd[]) */
3882 #ifdef FEAT_MBYTE
3883 int force_enc; /* ++enc= argument (index in cmd[]) */
3884! int bad_char; /* BAD_KEEP, BAD_DROP or replacement byte */
3885 #endif
3886 #ifdef FEAT_USR_CMDS
3887 int useridx; /* user command index */
3888*** ../vim-7.2.434/src/ex_docmd.c 2010-05-14 20:41:00.000000000 +0200
3889--- src/ex_docmd.c 2010-05-16 13:13:30.000000000 +0200
3890***************
3891*** 4688,4693 ****
3892--- 4688,4694 ----
3893 char_u *arg = eap->arg + 2;
3894 int *pp = NULL;
3895 #ifdef FEAT_MBYTE
3896+ int bad_char_idx;
3897 char_u *p;
3898 #endif
3899
3900***************
3901*** 4739,4745 ****
3902 else if (STRNCMP(arg, "bad", 3) == 0)
3903 {
3904 arg += 3;
3905! pp = &eap->bad_char_idx;
3906 }
3907 #endif
3908
3909--- 4740,4746 ----
3910 else if (STRNCMP(arg, "bad", 3) == 0)
3911 {
3912 arg += 3;
3913! pp = &bad_char_idx;
3914 }
3915 #endif
3916
3917***************
3918*** 4770,4776 ****
3919 {
3920 /* Check ++bad= argument. Must be a single-byte character, "keep" or
3921 * "drop". */
3922! p = eap->cmd + eap->bad_char_idx;
3923 if (STRICMP(p, "keep") == 0)
3924 eap->bad_char = BAD_KEEP;
3925 else if (STRICMP(p, "drop") == 0)
3926--- 4771,4777 ----
3927 {
3928 /* Check ++bad= argument. Must be a single-byte character, "keep" or
3929 * "drop". */
3930! p = eap->cmd + bad_char_idx;
3931 if (STRICMP(p, "keep") == 0)
3932 eap->bad_char = BAD_KEEP;
3933 else if (STRICMP(p, "drop") == 0)
3934*** ../vim-7.2.434/src/version.c 2010-05-16 12:32:37.000000000 +0200
3935--- src/version.c 2010-05-16 13:24:39.000000000 +0200
3936***************
3937*** 683,684 ****
3938--- 683,686 ----
3939 { /* Add new patch number below this line */
3940+ /**/
3941+ 435,
3942 /**/
3943
3944--
3945hundred-and-one symptoms of being an internet addict:
394645. You buy a Captain Kirk chair with a built-in keyboard and mouse.
3947
3948 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
3949/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
3950\\\ download, build and distribute -- http://www.A-A-P.org ///
3951 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
3952To: vim-dev@vim.org
3953Subject: Patch 7.2.436
3954Fcc: outbox
3955From: Bram Moolenaar <Bram@moolenaar.net>
3956Mime-Version: 1.0
3957Content-Type: text/plain; charset=UTF-8
3958Content-Transfer-Encoding: 8bit
3959------------
3960
3961Patch 7.2.436
3962Problem: Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
3963Solution: Make sst_stacksize an int instead of short. (Dominique Pelle)
3964Files: src/structs.h
3965
3966
3967*** ../vim-7.2.435/src/structs.h 2010-05-14 22:24:31.000000000 +0200
3968--- src/structs.h 2010-05-16 13:48:26.000000000 +0200
3969***************
3970*** 327,333 ****
3971 typedef struct m_info minfo_T;
3972
3973 /*
3974! * stucture used to link chunks in one of the free chunk lists.
3975 */
3976 struct m_info
3977 {
3978--- 327,333 ----
3979 typedef struct m_info minfo_T;
3980
3981 /*
3982! * structure used to link chunks in one of the free chunk lists.
3983 */
3984 struct m_info
3985 {
3986***************
3987*** 795,803 ****
3988 garray_T sst_ga; /* growarray for long state stack */
3989 } sst_union;
3990 int sst_next_flags; /* flags for sst_next_list */
3991 short *sst_next_list; /* "nextgroup" list in this state
3992 * (this is a copy, don't free it! */
3993- short sst_stacksize; /* number of states on the stack */
3994 disptick_T sst_tick; /* tick when last displayed */
3995 linenr_T sst_change_lnum;/* when non-zero, change in this line
3996 * may have made the state invalid */
3997--- 795,803 ----
3998 garray_T sst_ga; /* growarray for long state stack */
3999 } sst_union;
4000 int sst_next_flags; /* flags for sst_next_list */
4001+ int sst_stacksize; /* number of states on the stack */
4002 short *sst_next_list; /* "nextgroup" list in this state
4003 * (this is a copy, don't free it! */
4004 disptick_T sst_tick; /* tick when last displayed */
4005 linenr_T sst_change_lnum;/* when non-zero, change in this line
4006 * may have made the state invalid */
4007***************
4008*** 2138,2144 ****
4009 #define SHAPE_IDX_CI 5 /* Command line Insert mode */
4010 #define SHAPE_IDX_CR 6 /* Command line Replace mode */
4011 #define SHAPE_IDX_O 7 /* Operator-pending mode */
4012! #define SHAPE_IDX_VE 8 /* Visual mode with 'seleciton' exclusive */
4013 #define SHAPE_IDX_CLINE 9 /* On command line */
4014 #define SHAPE_IDX_STATUS 10 /* A status line */
4015 #define SHAPE_IDX_SDRAG 11 /* dragging a status line */
4016--- 2138,2144 ----
4017 #define SHAPE_IDX_CI 5 /* Command line Insert mode */
4018 #define SHAPE_IDX_CR 6 /* Command line Replace mode */
4019 #define SHAPE_IDX_O 7 /* Operator-pending mode */
4020! #define SHAPE_IDX_VE 8 /* Visual mode with 'selection' exclusive */
4021 #define SHAPE_IDX_CLINE 9 /* On command line */
4022 #define SHAPE_IDX_STATUS 10 /* A status line */
4023 #define SHAPE_IDX_SDRAG 11 /* dragging a status line */
4024***************
4025*** 2267,2273 ****
4026 /* short index; */ /* the item index within the father menu */
4027 short menu_id; /* the menu id to which this item belong */
4028 short submenu_id; /* the menu id of the children (could be
4029! get throught some tricks) */
4030 MenuHandle menu_handle;
4031 MenuHandle submenu_handle;
4032 #endif
4033--- 2267,2273 ----
4034 /* short index; */ /* the item index within the father menu */
4035 short menu_id; /* the menu id to which this item belong */
4036 short submenu_id; /* the menu id of the children (could be
4037! get through some tricks) */
4038 MenuHandle menu_handle;
4039 MenuHandle submenu_handle;
4040 #endif
4041*** ../vim-7.2.435/src/version.c 2010-05-16 13:26:19.000000000 +0200
4042--- src/version.c 2010-05-16 13:54:30.000000000 +0200
4043***************
4044*** 683,684 ****
4045--- 683,686 ----
4046 { /* Add new patch number below this line */
4047+ /**/
4048+ 436,
4049 /**/
4050
4051--
4052hundred-and-one symptoms of being an internet addict:
405347. You are so familiar with the WWW that you find the search engines useless.
4054
4055 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
4056/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
4057\\\ download, build and distribute -- http://www.A-A-P.org ///
4058 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
4059To: vim-dev@vim.org
4060Subject: Patch 7.2.437
4061Fcc: outbox
4062From: Bram Moolenaar <Bram@moolenaar.net>
4063Mime-Version: 1.0
4064Content-Type: text/plain; charset=UTF-8
4065Content-Transfer-Encoding: 8bit
4066------------
4067
4068Patch 7.2.437 (after 7.2.407)
4069Problem: When "\\\n" appears in the expression result the \n doesn't result
4070 in a line break. (Andy Wokula)
4071Solution: Also replace a \n after a backslash into \r.
4072Files: src/regexp.c
4073
4074
4075*** ../vim-7.2.436/src/regexp.c 2010-03-23 16:27:15.000000000 +0100
4076--- src/regexp.c 2010-05-21 13:06:00.000000000 +0200
4077***************
4078*** 6974,6979 ****
4079--- 6974,6986 ----
4080 else if (*s == '\\' && s[1] != NUL)
4081 {
4082 ++s;
4083+ /* Change NL to CR here too, so that this works:
4084+ * :s/abc\\\ndef/\="aaa\\\nbbb"/ on text:
4085+ * abc\
4086+ * def
4087+ */
4088+ if (*s == NL)
4089+ *s = CAR;
4090 had_backslash = TRUE;
4091 }
4092 }
4093*** ../vim-7.2.436/src/version.c 2010-05-16 13:56:01.000000000 +0200
4094--- src/version.c 2010-05-21 13:07:50.000000000 +0200
4095***************
4096*** 683,684 ****
4097--- 683,686 ----
4098 { /* Add new patch number below this line */
4099+ /**/
4100+ 437,
4101 /**/
4102
4103--
4104hundred-and-one symptoms of being an internet addict:
410589. In addition to your e-mail address being on your business
4106 cards you even have your own domain.
4107
4108 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
4109/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
4110\\\ download, build and distribute -- http://www.A-A-P.org ///
4111 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
4112To: vim-dev@vim.org
4113Subject: Patch 7.2.438
4114Fcc: outbox
4115From: Bram Moolenaar <Bram@moolenaar.net>
4116Mime-Version: 1.0
4117Content-Type: text/plain; charset=UTF-8
4118Content-Transfer-Encoding: 8bit
4119------------
4120
4121Patch 7.2.438 (after 7.2.427)
4122Problem: "vim -r" crashes.
4123Solution: Don't use NULL pointer argument.
4124Files: src/memline.c
4125
4126
4127*** ../vim-7.2.437/src/memline.c 2010-05-14 17:52:35.000000000 +0200
4128--- src/memline.c 2010-05-25 21:36:01.000000000 +0200
4129***************
4130*** 1404,1418 ****
4131 int i;
4132 char_u *dirp;
4133 char_u *dir_name;
4134! char_u *fname_res = *fname;
4135 #ifdef HAVE_READLINK
4136 char_u fname_buf[MAXPATHL];
4137
4138 /* Expand symlink in the file name, because the swap file is created with
4139 * the actual file instead of with the symlink. */
4140 if (resolve_symlink(*fname, fname_buf) == OK)
4141 fname_res = fname_buf;
4142 #endif
4143
4144 if (list)
4145 {
4146--- 1404,1425 ----
4147 int i;
4148 char_u *dirp;
4149 char_u *dir_name;
4150! char_u *fname_res = NULL;
4151 #ifdef HAVE_READLINK
4152 char_u fname_buf[MAXPATHL];
4153+ #endif
4154
4155+ if (fname != NULL)
4156+ {
4157+ #ifdef HAVE_READLINK
4158 /* Expand symlink in the file name, because the swap file is created with
4159 * the actual file instead of with the symlink. */
4160 if (resolve_symlink(*fname, fname_buf) == OK)
4161 fname_res = fname_buf;
4162+ else
4163 #endif
4164+ fname_res = *fname;
4165+ }
4166
4167 if (list)
4168 {
4169*** ../vim-7.2.437/src/version.c 2010-05-21 13:08:51.000000000 +0200
4170--- src/version.c 2010-05-25 21:30:12.000000000 +0200
4171***************
4172*** 683,684 ****
4173--- 683,686 ----
4174 { /* Add new patch number below this line */
4175+ /**/
4176+ 438,
4177 /**/
4178
4179--
4180A fool learns from his mistakes, a wise man from someone else's.
4181
4182 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
4183/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
4184\\\ download, build and distribute -- http://www.A-A-P.org ///
4185 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
4186To: vim-dev@vim.org
4187Subject: Patch 7.2.439
4188Fcc: outbox
4189From: Bram Moolenaar <Bram@moolenaar.net>
4190Mime-Version: 1.0
4191Content-Type: text/plain; charset=UTF-8
4192Content-Transfer-Encoding: 8bit
4193------------
4194
4195Patch 7.2.439
4196Problem: Invalid memory access when doing thesaurus completion and
4197 'infercase' is set.
4198Solution: Use the minimal length of completed word and replacement.
4199 (Dominique Pelle)
4200Files: src/edit.c
4201
4202
4203*** ../vim-7.2.438/src/edit.c 2010-03-10 14:15:28.000000000 +0100
4204--- src/edit.c 2010-05-28 21:20:29.000000000 +0200
4205***************
4206*** 2164,2169 ****
4207--- 2164,2170 ----
4208 int i, c;
4209 int actual_len; /* Take multi-byte characters */
4210 int actual_compl_length; /* into account. */
4211+ int min_len;
4212 int *wca; /* Wide character array. */
4213 int has_lower = FALSE;
4214 int was_letter = FALSE;
4215***************
4216*** 2204,2209 ****
4217--- 2205,2215 ----
4218 #endif
4219 actual_compl_length = compl_length;
4220
4221+ /* "actual_len" may be smaller than "actual_compl_length" when using
4222+ * thesaurus, only use the minimum when comparing. */
4223+ min_len = actual_len < actual_compl_length
4224+ ? actual_len : actual_compl_length;
4225+
4226 /* Allocate wide character array for the completion and fill it. */
4227 wca = (int *)alloc((unsigned)(actual_len * sizeof(int)));
4228 if (wca != NULL)
4229***************
4230*** 2219,2225 ****
4231
4232 /* Rule 1: Were any chars converted to lower? */
4233 p = compl_orig_text;
4234! for (i = 0; i < actual_compl_length; ++i)
4235 {
4236 #ifdef FEAT_MBYTE
4237 if (has_mbyte)
4238--- 2225,2231 ----
4239
4240 /* Rule 1: Were any chars converted to lower? */
4241 p = compl_orig_text;
4242! for (i = 0; i < min_len; ++i)
4243 {
4244 #ifdef FEAT_MBYTE
4245 if (has_mbyte)
4246***************
4247*** 2247,2253 ****
4248 if (!has_lower)
4249 {
4250 p = compl_orig_text;
4251! for (i = 0; i < actual_compl_length; ++i)
4252 {
4253 #ifdef FEAT_MBYTE
4254 if (has_mbyte)
4255--- 2253,2259 ----
4256 if (!has_lower)
4257 {
4258 p = compl_orig_text;
4259! for (i = 0; i < min_len; ++i)
4260 {
4261 #ifdef FEAT_MBYTE
4262 if (has_mbyte)
4263***************
4264*** 2268,2274 ****
4265
4266 /* Copy the original case of the part we typed. */
4267 p = compl_orig_text;
4268! for (i = 0; i < actual_compl_length; ++i)
4269 {
4270 #ifdef FEAT_MBYTE
4271 if (has_mbyte)
4272--- 2274,2280 ----
4273
4274 /* Copy the original case of the part we typed. */
4275 p = compl_orig_text;
4276! for (i = 0; i < min_len; ++i)
4277 {
4278 #ifdef FEAT_MBYTE
4279 if (has_mbyte)
4280*** ../vim-7.2.438/src/version.c 2010-05-25 21:37:12.000000000 +0200
4281--- src/version.c 2010-05-28 21:30:53.000000000 +0200
4282***************
4283*** 683,684 ****
4284--- 683,686 ----
4285 { /* Add new patch number below this line */
4286+ /**/
4287+ 439,
4288 /**/
4289
4290--
4291Corduroy pillows: They're making headlines!
4292
4293 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
4294/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
4295\\\ download, build and distribute -- http://www.A-A-P.org ///
4296 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
4297To: vim-dev@vim.org
4298Subject: Patch 7.2.440
4299Fcc: outbox
4300From: Bram Moolenaar <Bram@moolenaar.net>
4301Mime-Version: 1.0
4302Content-Type: text/plain; charset=UTF-8
4303Content-Transfer-Encoding: 8bit
4304------------
4305
4306Patch 7.2.440
4307Problem: Calling a function through a funcref, where the function deletes
4308 the funcref, leads to an invalid memory access.
4309Solution: Make a copy of the function name. (Lech Lorens)
4310Files: src/eval.c, src/testdir/test34.in, src/testdir/test34.ok
4311
4312
4313*** ../vim-7.2.439/src/eval.c 2010-05-16 13:26:19.000000000 +0200
4314--- src/eval.c 2010-05-28 22:01:07.000000000 +0200
4315***************
4316*** 464,470 ****
4317 static int find_internal_func __ARGS((char_u *name));
4318 static char_u *deref_func_name __ARGS((char_u *name, int *lenp));
4319 static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
4320! static int call_func __ARGS((char_u *name, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
4321 static void emsg_funcname __ARGS((char *ermsg, char_u *name));
4322 static int non_zero_arg __ARGS((typval_T *argvars));
4323
4324--- 464,470 ----
4325 static int find_internal_func __ARGS((char_u *name));
4326 static char_u *deref_func_name __ARGS((char_u *name, int *lenp));
4327 static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
4328! static int call_func __ARGS((char_u *func_name, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
4329 static void emsg_funcname __ARGS((char *ermsg, char_u *name));
4330 static int non_zero_arg __ARGS((typval_T *argvars));
4331
4332***************
4333*** 7997,8005 ****
4334 * Also returns OK when an error was encountered while executing the function.
4335 */
4336 static int
4337! call_func(name, len, rettv, argcount, argvars, firstline, lastline,
4338 doesrange, evaluate, selfdict)
4339! char_u *name; /* name of the function */
4340 int len; /* length of "name" */
4341 typval_T *rettv; /* return value goes here */
4342 int argcount; /* number of "argvars" */
4343--- 7997,8005 ----
4344 * Also returns OK when an error was encountered while executing the function.
4345 */
4346 static int
4347! call_func(func_name, len, rettv, argcount, argvars, firstline, lastline,
4348 doesrange, evaluate, selfdict)
4349! char_u *func_name; /* name of the function */
4350 int len; /* length of "name" */
4351 typval_T *rettv; /* return value goes here */
4352 int argcount; /* number of "argvars" */
4353***************
4354*** 8023,8040 ****
4355 int i;
4356 int llen;
4357 ufunc_T *fp;
4358- int cc;
4359 #define FLEN_FIXED 40
4360 char_u fname_buf[FLEN_FIXED + 1];
4361 char_u *fname;
4362
4363 /*
4364 * In a script change <SID>name() and s:name() to K_SNR 123_name().
4365 * Change <SNR>123_name() to K_SNR 123_name().
4366 * Use fname_buf[] when it fits, otherwise allocate memory (slow).
4367 */
4368- cc = name[len];
4369- name[len] = NUL;
4370 llen = eval_fname_script(name);
4371 if (llen > 0)
4372 {
4373--- 8023,8044 ----
4374 int i;
4375 int llen;
4376 ufunc_T *fp;
4377 #define FLEN_FIXED 40
4378 char_u fname_buf[FLEN_FIXED + 1];
4379 char_u *fname;
4380+ char_u *name;
4381+
4382+ /* Make a copy of the name, if it comes from a funcref variable it could
4383+ * be changed or deleted in the called function. */
4384+ name = vim_strnsave(func_name, len);
4385+ if (name == NULL)
4386+ return ret;
4387
4388 /*
4389 * In a script change <SID>name() and s:name() to K_SNR 123_name().
4390 * Change <SNR>123_name() to K_SNR 123_name().
4391 * Use fname_buf[] when it fits, otherwise allocate memory (slow).
4392 */
4393 llen = eval_fname_script(name);
4394 if (llen > 0)
4395 {
4396***************
4397*** 8205,8213 ****
4398 }
4399 }
4400
4401- name[len] = cc;
4402 if (fname != name && fname != fname_buf)
4403 vim_free(fname);
4404
4405 return ret;
4406 }
4407--- 8209,8217 ----
4408 }
4409 }
4410
4411 if (fname != name && fname != fname_buf)
4412 vim_free(fname);
4413+ vim_free(name);
4414
4415 return ret;
4416 }
4417*** ../vim-7.2.439/src/testdir/test34.in 2007-09-25 17:59:15.000000000 +0200
4418--- src/testdir/test34.in 2010-05-28 21:54:36.000000000 +0200
4419***************
4420*** 35,40 ****
4421--- 35,45 ----
4422 : let g:counter = 0
4423 : return ''
4424 :endfunc
4425+ :func FuncWithRef(a)
4426+ : unlet g:FuncRef
4427+ : return a:a
4428+ :endfunc
4429+ :let g:FuncRef=function("FuncWithRef")
4430 :let counter = 0
4431 :inoremap <expr> ( ListItem()
4432 :inoremap <expr> [ ListReset()
4433***************
4434*** 47,52 ****
4435--- 52,58 ----
4436 =retval
4437 =Compute(45, 5, "retval")
4438 =retval
4439+ =g:FuncRef(333)
4440
4441 XX+-XX
4442 ---*---
4443*** ../vim-7.2.439/src/testdir/test34.ok 2006-04-30 20:49:40.000000000 +0200
4444--- src/testdir/test34.ok 2010-05-28 21:56:03.000000000 +0200
4445***************
4446*** 1,4 ****
4447! xxx4asdf fail nop ok 9
4448 XX111XX
4449 ---222---
4450 1. one
4451--- 1,4 ----
4452! xxx4asdf fail nop ok 9 333
4453 XX111XX
4454 ---222---
4455 1. one
4456*** ../vim-7.2.439/src/version.c 2010-05-28 21:31:51.000000000 +0200
4457--- src/version.c 2010-05-28 22:03:30.000000000 +0200
4458***************
4459*** 683,684 ****
4460--- 683,686 ----
4461 { /* Add new patch number below this line */
4462+ /**/
4463+ 440,
4464 /**/
4465
4466--
4467Nobody will ever need more than 640 kB RAM.
4468 -- Bill Gates, 1983
4469Windows 98 requires 16 MB RAM.
4470 -- Bill Gates, 1999
4471Logical conclusion: Nobody will ever need Windows 98.
4472
4473 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
4474/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
4475\\\ download, build and distribute -- http://www.A-A-P.org ///
4476 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
4477To: vim-dev@vim.org
4478Subject: Patch 7.2.441
4479Fcc: outbox
4480From: Bram Moolenaar <Bram@moolenaar.net>
4481Mime-Version: 1.0
4482Content-Type: text/plain; charset=UTF-8
4483Content-Transfer-Encoding: 8bit
4484------------
4485
4486Patch 7.2.441
4487Problem: When using ":earlier" undo information may be wrong.
4488Solution: When changing alternate branches also adjust b_u_oldhead.
4489Files: src/undo.c
4490
4491
4492*** ../vim-7.2.440/src/undo.c 2008-02-13 15:21:29.000000000 +0100
4493--- src/undo.c 2010-05-30 16:52:47.000000000 +0200
4494***************
4495*** 242,248 ****
4496 }
4497
4498 /*
4499! * save the line "lnum" (used by ":s" and "~" command)
4500 * The line is replaced, so the new bottom line is lnum + 1.
4501 */
4502 int
4503--- 242,248 ----
4504 }
4505
4506 /*
4507! * Save the line "lnum" (used by ":s" and "~" command).
4508 * The line is replaced, so the new bottom line is lnum + 1.
4509 */
4510 int
4511***************
4512*** 256,262 ****
4513 }
4514
4515 /*
4516! * a new line is inserted before line "lnum" (used by :s command)
4517 * The line is inserted, so the new bottom line is lnum + 1.
4518 */
4519 int
4520--- 256,262 ----
4521 }
4522
4523 /*
4524! * A new line is inserted before line "lnum" (used by :s command).
4525 * The line is inserted, so the new bottom line is lnum + 1.
4526 */
4527 int
4528***************
4529*** 270,276 ****
4530 }
4531
4532 /*
4533! * save the lines "lnum" - "lnum" + nlines (used by delete command)
4534 * The lines are deleted, so the new bottom line is lnum, unless the buffer
4535 * becomes empty.
4536 */
4537--- 270,276 ----
4538 }
4539
4540 /*
4541! * Save the lines "lnum" - "lnum" + nlines (used by delete command).
4542 * The lines are deleted, so the new bottom line is lnum, unless the buffer
4543 * becomes empty.
4544 */
4545***************
4546*** 996,1001 ****
4547--- 996,1003 ----
4548 last->uh_alt_next = uhp;
4549 uhp->uh_alt_prev = last;
4550
4551+ if (curbuf->b_u_oldhead == uhp)
4552+ curbuf->b_u_oldhead = last;
4553 uhp = last;
4554 if (uhp->uh_next != NULL)
4555 uhp->uh_next->uh_prev = uhp;
4556***************
4557*** 1406,1415 ****
4558 /*
4559 * ":undolist": List the leafs of the undo tree
4560 */
4561- /*ARGSUSED*/
4562 void
4563 ex_undolist(eap)
4564! exarg_T *eap;
4565 {
4566 garray_T ga;
4567 u_header_T *uhp;
4568--- 1408,1416 ----
4569 /*
4570 * ":undolist": List the leafs of the undo tree
4571 */
4572 void
4573 ex_undolist(eap)
4574! exarg_T *eap UNUSED;
4575 {
4576 garray_T ga;
4577 u_header_T *uhp;
4578***************
4579*** 1529,1538 ****
4580 /*
4581 * ":undojoin": continue adding to the last entry list
4582 */
4583- /*ARGSUSED*/
4584 void
4585 ex_undojoin(eap)
4586! exarg_T *eap;
4587 {
4588 if (curbuf->b_u_newhead == NULL)
4589 return; /* nothing changed before */
4590--- 1530,1538 ----
4591 /*
4592 * ":undojoin": continue adding to the last entry list
4593 */
4594 void
4595 ex_undojoin(eap)
4596! exarg_T *eap UNUSED;
4597 {
4598 if (curbuf->b_u_newhead == NULL)
4599 return; /* nothing changed before */
4600*** ../vim-7.2.440/src/version.c 2010-05-28 22:06:41.000000000 +0200
4601--- src/version.c 2010-05-30 16:53:56.000000000 +0200
4602***************
4603*** 683,684 ****
4604--- 683,686 ----
4605 { /* Add new patch number below this line */
4606+ /**/
4607+ 441,
4608 /**/
4609
4610--
4611hundred-and-one symptoms of being an internet addict:
4612127. You bring your laptop and cellular phone to church.
4613
4614 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
4615/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
4616\\\ download, build and distribute -- http://www.A-A-P.org ///
4617 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
4618To: vim-dev@vim.org
4619Subject: Patch 7.2.442
4620Fcc: outbox
4621From: Bram Moolenaar <Bram@moolenaar.net>
4622Mime-Version: 1.0
4623Content-Type: text/plain; charset=UTF-8
4624Content-Transfer-Encoding: 8bit
4625------------
4626
4627Patch 7.2.442 (after 7.2.201)
4628Problem: Copy/paste with OpenOffice doesn't work.
4629Solution: Do not offer the HTML target when it is not supported. (James
4630 Vega)
4631Files: src/gui_gtk_x11.c, src/option.c, src/proto/gui_gtk_x11.pro
4632
4633
4634*** ../vim-7.2.441/src/gui_gtk_x11.c 2010-02-11 18:19:32.000000000 +0100
4635--- src/gui_gtk_x11.c 2010-06-05 12:42:23.000000000 +0200
4636***************
4637*** 1433,1438 ****
4638--- 1433,1442 ----
4639 }
4640 #endif /* !HAVE_GTK2 */
4641
4642+ /* Chop off any traiing NUL bytes. OpenOffice sends these. */
4643+ while (len > 0 && text[len - 1] == NUL)
4644+ --len;
4645+
4646 clip_yank_selection(motion_type, text, (long)len, cbd);
4647 received_selection = RS_OK;
4648 vim_free(tmpbuf);
4649***************
4650*** 3463,3468 ****
4651--- 3467,3532 ----
4652 #endif /* FEAT_GUI_TABLINE */
4653
4654 /*
4655+ * Add selection targets for PRIMARY and CLIPBOARD selections.
4656+ */
4657+ void
4658+ gui_gtk_set_selection_targets(void)
4659+ {
4660+ int i, j = 0;
4661+ int n_targets = N_SELECTION_TARGETS;
4662+ GtkTargetEntry targets[N_SELECTION_TARGETS];
4663+
4664+ for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
4665+ {
4666+ #ifdef FEAT_MBYTE
4667+ /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
4668+ * return something, instead of trying another target. Therefore only
4669+ * offer TARGET_HTML when it works. */
4670+ if (!clip_html && selection_targets[i].info == TARGET_HTML)
4671+ n_targets--;
4672+ else
4673+ #endif
4674+ targets[j++] = selection_targets[i];
4675+ }
4676+
4677+ gtk_selection_clear_targets(gui.drawarea, (GdkAtom)GDK_SELECTION_PRIMARY);
4678+ gtk_selection_clear_targets(gui.drawarea, (GdkAtom)clip_plus.gtk_sel_atom);
4679+ gtk_selection_add_targets(gui.drawarea,
4680+ (GdkAtom)GDK_SELECTION_PRIMARY,
4681+ targets, n_targets);
4682+ gtk_selection_add_targets(gui.drawarea,
4683+ (GdkAtom)clip_plus.gtk_sel_atom,
4684+ targets, n_targets);
4685+ }
4686+
4687+ /*
4688+ * Set up for receiving DND items.
4689+ */
4690+ void
4691+ gui_gtk_set_dnd_targets(void)
4692+ {
4693+ int i, j = 0;
4694+ int n_targets = N_DND_TARGETS;
4695+ GtkTargetEntry targets[N_DND_TARGETS];
4696+
4697+ for (i = 0; i < (int)N_DND_TARGETS; ++i)
4698+ {
4699+ #ifdef FEAT_MBYTE
4700+ if (!clip_html && selection_targets[i].info == TARGET_HTML)
4701+ n_targets--;
4702+ else
4703+ #endif
4704+ targets[j++] = dnd_targets[i];
4705+ }
4706+
4707+ gtk_drag_dest_unset(gui.drawarea);
4708+ gtk_drag_dest_set(gui.drawarea,
4709+ GTK_DEST_DEFAULT_ALL,
4710+ targets, n_targets,
4711+ GDK_ACTION_COPY);
4712+ }
4713+
4714+ /*
4715 * Initialize the GUI. Create all the windows, set up all the callbacks etc.
4716 * Returns OK for success, FAIL when the GUI can't be started.
4717 */
4718***************
4719*** 3925,3939 ****
4720 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_received",
4721 GTK_SIGNAL_FUNC(selection_received_cb), NULL);
4722
4723! /*
4724! * Add selection targets for PRIMARY and CLIPBOARD selections.
4725! */
4726! gtk_selection_add_targets(gui.drawarea,
4727! (GdkAtom)GDK_SELECTION_PRIMARY,
4728! selection_targets, N_SELECTION_TARGETS);
4729! gtk_selection_add_targets(gui.drawarea,
4730! (GdkAtom)clip_plus.gtk_sel_atom,
4731! selection_targets, N_SELECTION_TARGETS);
4732
4733 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_get",
4734 GTK_SIGNAL_FUNC(selection_get_cb), NULL);
4735--- 3989,3995 ----
4736 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_received",
4737 GTK_SIGNAL_FUNC(selection_received_cb), NULL);
4738
4739! gui_gtk_set_selection_targets();
4740
4741 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_get",
4742 GTK_SIGNAL_FUNC(selection_get_cb), NULL);
4743***************
4744*** 4057,4063 ****
4745 return TRUE;
4746 }
4747
4748-
4749 /*
4750 * Open the GUI window which was created by a call to gui_mch_init().
4751 */
4752--- 4113,4118 ----
4753***************
4754*** 4225,4237 ****
4755 GTK_SIGNAL_FUNC(form_configure_event), NULL);
4756
4757 #ifdef FEAT_DND
4758! /*
4759! * Set up for receiving DND items.
4760! */
4761! gtk_drag_dest_set(gui.drawarea,
4762! GTK_DEST_DEFAULT_ALL,
4763! dnd_targets, N_DND_TARGETS,
4764! GDK_ACTION_COPY);
4765
4766 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received",
4767 GTK_SIGNAL_FUNC(drag_data_received_cb), NULL);
4768--- 4280,4287 ----
4769 GTK_SIGNAL_FUNC(form_configure_event), NULL);
4770
4771 #ifdef FEAT_DND
4772! /* Set up for receiving DND items. */
4773! gui_gtk_set_dnd_targets();
4774
4775 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received",
4776 GTK_SIGNAL_FUNC(drag_data_received_cb), NULL);
4777***************
4778*** 4428,4434 ****
4779 /* this will cause the proper resizement to happen too */
4780 update_window_manager_hints(0, 0);
4781
4782! #else /* HAVE_GTK2 */
4783 /* this will cause the proper resizement to happen too */
4784 if (gtk_socket_id == 0)
4785 update_window_manager_hints(0, 0);
4786--- 4478,4484 ----
4787 /* this will cause the proper resizement to happen too */
4788 update_window_manager_hints(0, 0);
4789
4790! #else
4791 /* this will cause the proper resizement to happen too */
4792 if (gtk_socket_id == 0)
4793 update_window_manager_hints(0, 0);
4794***************
4795*** 4444,4457 ****
4796 else
4797 update_window_manager_hints(width, height);
4798
4799! #if 0
4800 if (!resize_idle_installed)
4801 {
4802 g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
4803 &force_shell_resize_idle, NULL, NULL);
4804 resize_idle_installed = TRUE;
4805 }
4806! #endif
4807 /*
4808 * Wait until all events are processed to prevent a crash because the
4809 * real size of the drawing area doesn't reflect Vim's internal ideas.
4810--- 4494,4507 ----
4811 else
4812 update_window_manager_hints(width, height);
4813
4814! # if 0
4815 if (!resize_idle_installed)
4816 {
4817 g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
4818 &force_shell_resize_idle, NULL, NULL);
4819 resize_idle_installed = TRUE;
4820 }
4821! # endif
4822 /*
4823 * Wait until all events are processed to prevent a crash because the
4824 * real size of the drawing area doesn't reflect Vim's internal ideas.
4825*** ../vim-7.2.441/src/option.c 2010-05-14 17:32:53.000000000 +0200
4826--- src/option.c 2010-06-05 12:19:38.000000000 +0200
4827***************
4828*** 7112,7117 ****
4829--- 7112,7124 ----
4830 clip_html = new_html;
4831 vim_free(clip_exclude_prog);
4832 clip_exclude_prog = new_exclude_prog;
4833+ #ifdef FEAT_GUI_GTK
4834+ if (gui.in_use)
4835+ {
4836+ gui_gtk_set_selection_targets();
4837+ gui_gtk_set_dnd_targets();
4838+ }
4839+ #endif
4840 }
4841 else
4842 vim_free(new_exclude_prog);
4843*** ../vim-7.2.441/src/proto/gui_gtk_x11.pro 2009-09-23 18:14:13.000000000 +0200
4844--- src/proto/gui_gtk_x11.pro 2010-06-05 12:31:22.000000000 +0200
4845***************
4846*** 9,14 ****
4847--- 9,16 ----
4848 int gui_mch_showing_tabline __ARGS((void));
4849 void gui_mch_update_tabline __ARGS((void));
4850 void gui_mch_set_curtab __ARGS((int nr));
4851+ void gui_gtk_set_selection_targets __ARGS((void));
4852+ void gui_gtk_set_dnd_targets __ARGS((void));
4853 int gui_mch_init __ARGS((void));
4854 void gui_mch_forked __ARGS((void));
4855 void gui_mch_new_colors __ARGS((void));
4856*** ../vim-7.2.441/src/version.c 2010-05-30 16:55:17.000000000 +0200
4857--- src/version.c 2010-06-05 12:48:01.000000000 +0200
4858***************
4859*** 683,684 ****
4860--- 683,686 ----
4861 { /* Add new patch number below this line */
4862+ /**/
4863+ 442,
4864 /**/
4865
4866--
4867hundred-and-one symptoms of being an internet addict:
4868158. You get a tuner card so you can watch TV while surfing.
4869
4870 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
4871/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
4872\\\ download, build and distribute -- http://www.A-A-P.org ///
4873 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
4874To: vim-dev@vim.org
4875Subject: Patch 7.2.443
4876Fcc: outbox
4877From: Bram Moolenaar <Bram@moolenaar.net>
4878Mime-Version: 1.0
4879Content-Type: text/plain; charset=UTF-8
4880Content-Transfer-Encoding: 8bit
4881------------
4882
4883Patch 7.2.443
4884Problem: Using taglist() on a tag file with duplicate fields generates an
4885 internal error. (Peter Odding)
4886Solution: Check for duplicate field names.
4887Files: src/eval.c, src/proto/eval.pro, src/tag.c
4888
4889
4890*** ../vim-7.2.442/src/eval.c 2010-05-28 22:06:41.000000000 +0200
4891--- src/eval.c 2010-06-12 19:59:09.000000000 +0200
4892***************
4893*** 451,457 ****
4894 static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
4895 static dict_T *dict_copy __ARGS((dict_T *orig, int deep, int copyID));
4896 static long dict_len __ARGS((dict_T *d));
4897- static dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len));
4898 static char_u *dict2string __ARGS((typval_T *tv, int copyID));
4899 static int get_dict_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
4900 static char_u *echo_string __ARGS((typval_T *tv, char_u **tofree, char_u *numbuf, int copyID));
4901--- 451,456 ----
4902***************
4903*** 7012,7018 ****
4904 * If "len" is negative use strlen(key).
4905 * Returns NULL when not found.
4906 */
4907! static dictitem_T *
4908 dict_find(d, key, len)
4909 dict_T *d;
4910 char_u *key;
4911--- 7011,7017 ----
4912 * If "len" is negative use strlen(key).
4913 * Returns NULL when not found.
4914 */
4915! dictitem_T *
4916 dict_find(d, key, len)
4917 dict_T *d;
4918 char_u *key;
4919*** ../vim-7.2.442/src/proto/eval.pro 2010-01-19 15:51:29.000000000 +0100
4920--- src/proto/eval.pro 2010-06-12 19:59:13.000000000 +0200
4921***************
4922*** 56,61 ****
4923--- 56,62 ----
4924 void dictitem_free __ARGS((dictitem_T *item));
4925 int dict_add __ARGS((dict_T *d, dictitem_T *item));
4926 int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
4927+ dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len));
4928 char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save));
4929 long get_dict_number __ARGS((dict_T *d, char_u *key));
4930 char_u *get_function_name __ARGS((expand_T *xp, int idx));
4931*** ../vim-7.2.442/src/tag.c 2010-02-24 14:46:58.000000000 +0100
4932--- src/tag.c 2010-06-12 20:01:45.000000000 +0200
4933***************
4934*** 3771,3777 ****
4935 static int add_tag_field __ARGS((dict_T *dict, char *field_name, char_u *start, char_u *end));
4936
4937 /*
4938! * Add a tag field to the dictionary "dict"
4939 */
4940 static int
4941 add_tag_field(dict, field_name, start, end)
4942--- 3771,3778 ----
4943 static int add_tag_field __ARGS((dict_T *dict, char *field_name, char_u *start, char_u *end));
4944
4945 /*
4946! * Add a tag field to the dictionary "dict".
4947! * Return OK or FAIL.
4948 */
4949 static int
4950 add_tag_field(dict, field_name, start, end)
4951***************
4952*** 3783,3788 ****
4953--- 3784,3800 ----
4954 char_u buf[MAXPATHL];
4955 int len = 0;
4956
4957+ /* check that the field name doesn't exist yet */
4958+ if (dict_find(dict, (char_u *)field_name, -1) != NULL)
4959+ {
4960+ if (p_verbose > 0)
4961+ {
4962+ verbose_enter();
4963+ smsg((char_u *)_("Duplicate field name: %s"), field_name);
4964+ verbose_leave();
4965+ }
4966+ return FAIL;
4967+ }
4968 if (start != NULL)
4969 {
4970 if (end == NULL)
4971*** ../vim-7.2.442/src/version.c 2010-06-05 12:49:40.000000000 +0200
4972--- src/version.c 2010-06-12 20:05:27.000000000 +0200
4973***************
4974*** 683,684 ****
4975--- 683,686 ----
4976 { /* Add new patch number below this line */
4977+ /**/
4978+ 443,
4979 /**/
4980
4981--
4982hundred-and-one symptoms of being an internet addict:
4983191. You rate eating establishments not by the quality of the food,
4984 but by the availability of electrical outlets for your PowerBook.
4985
4986 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
4987/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
4988\\\ download, build and distribute -- http://www.A-A-P.org ///
4989 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
4990To: vim-dev@vim.org
4991Subject: Patch 7.2.444
4992Fcc: outbox
4993From: Bram Moolenaar <Bram@moolenaar.net>
4994Mime-Version: 1.0
4995Content-Type: text/plain; charset=UTF-8
4996Content-Transfer-Encoding: 8bit
4997------------
4998
4999Patch 7.2.444 (after 7.2.442)
5000Problem: Can't build with GTK 1, gtk_selection_clear_targets() is not
5001 available. (Patrick Texier)
5002Solution: Don't change the targets for GTK 1, set them once.
5003Files: src/gui_gtk_x11.c, src/option.c
5004
5005
5006*** ../vim-7.2.443/src/gui_gtk_x11.c 2010-06-05 12:49:40.000000000 +0200
5007--- src/gui_gtk_x11.c 2010-06-13 02:26:24.000000000 +0200
5008***************
5009*** 3478,3484 ****
5010
5011 for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
5012 {
5013! #ifdef FEAT_MBYTE
5014 /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
5015 * return something, instead of trying another target. Therefore only
5016 * offer TARGET_HTML when it works. */
5017--- 3478,3484 ----
5018
5019 for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
5020 {
5021! #if defined(FEAT_MBYTE) && defined(HAVE_GTK2)
5022 /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
5023 * return something, instead of trying another target. Therefore only
5024 * offer TARGET_HTML when it works. */
5025***************
5026*** 3489,3496 ****
5027--- 3489,3498 ----
5028 targets[j++] = selection_targets[i];
5029 }
5030
5031+ #ifdef HAVE_GTK2 /* GTK 1 doesn't have this function */
5032 gtk_selection_clear_targets(gui.drawarea, (GdkAtom)GDK_SELECTION_PRIMARY);
5033 gtk_selection_clear_targets(gui.drawarea, (GdkAtom)clip_plus.gtk_sel_atom);
5034+ #endif
5035 gtk_selection_add_targets(gui.drawarea,
5036 (GdkAtom)GDK_SELECTION_PRIMARY,
5037 targets, n_targets);
5038*** ../vim-7.2.443/src/option.c 2010-06-05 12:49:40.000000000 +0200
5039--- src/option.c 2010-06-13 02:27:36.000000000 +0200
5040***************
5041*** 7112,7118 ****
5042 clip_html = new_html;
5043 vim_free(clip_exclude_prog);
5044 clip_exclude_prog = new_exclude_prog;
5045! #ifdef FEAT_GUI_GTK
5046 if (gui.in_use)
5047 {
5048 gui_gtk_set_selection_targets();
5049--- 7112,7118 ----
5050 clip_html = new_html;
5051 vim_free(clip_exclude_prog);
5052 clip_exclude_prog = new_exclude_prog;
5053! #ifdef HAVE_GTK2 /* for GTK 1 we can't change the list of targets */
5054 if (gui.in_use)
5055 {
5056 gui_gtk_set_selection_targets();
5057*** ../vim-7.2.443/src/version.c 2010-06-12 20:11:53.000000000 +0200
5058--- src/version.c 2010-06-13 02:29:18.000000000 +0200
5059***************
5060*** 683,684 ****
5061--- 683,686 ----
5062 { /* Add new patch number below this line */
5063+ /**/
5064+ 444,
5065 /**/
5066
5067--
5068hundred-and-one symptoms of being an internet addict:
5069195. Your cat has its own home page.
5070
5071 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
5072/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
5073\\\ download, build and distribute -- http://www.A-A-P.org ///
5074 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
5075To: vim-dev@vim.org
5076Subject: Patch 7.2.445
5077Fcc: outbox
5078From: Bram Moolenaar <Bram@moolenaar.net>
5079Mime-Version: 1.0
5080Content-Type: text/plain; charset=UTF-8
5081Content-Transfer-Encoding: 8bit
5082------------
5083
5084Patch 7.2.445
5085Problem: Crash when using undo/redo and a FileChangedRO autocmd event that
5086 reloads the buffer. (Dominique Pelle)
5087Solution: Do not allow autocommands while performing and undo or redo.
5088Files: src/misc1.c, src/undo.c
5089
5090
5091*** ../vim-7.2.444/src/misc1.c 2010-03-23 18:22:40.000000000 +0100
5092--- src/misc1.c 2010-07-07 18:18:52.000000000 +0200
5093***************
5094*** 2467,2476 ****
5095 }
5096
5097 /*
5098! * changed() is called when something in the current buffer is changed.
5099 *
5100 * Most often called through changed_bytes() and changed_lines(), which also
5101 * mark the area of the display to be redrawn.
5102 */
5103 void
5104 changed()
5105--- 2467,2478 ----
5106 }
5107
5108 /*
5109! * Call this function when something in the current buffer is changed.
5110 *
5111 * Most often called through changed_bytes() and changed_lines(), which also
5112 * mark the area of the display to be redrawn.
5113+ *
5114+ * Careful: may trigger autocommands that reload the buffer.
5115 */
5116 void
5117 changed()
5118***************
5119*** 2536,2541 ****
5120--- 2538,2544 ----
5121 * - marks the windows on this buffer to be redisplayed
5122 * - marks the buffer changed by calling changed()
5123 * - invalidates cached values
5124+ * Careful: may trigger autocommands that reload the buffer.
5125 */
5126 void
5127 changed_bytes(lnum, col)
5128***************
5129*** 2649,2654 ****
5130--- 2652,2658 ----
5131 * below the changed lines (BEFORE the change).
5132 * When only inserting lines, "lnum" and "lnume" are equal.
5133 * Takes care of calling changed() and updating b_mod_*.
5134+ * Careful: may trigger autocommands that reload the buffer.
5135 */
5136 void
5137 changed_lines(lnum, col, lnume, xtra)
5138***************
5139*** 2716,2721 ****
5140--- 2720,2730 ----
5141 }
5142 }
5143
5144+ /*
5145+ * Common code for when a change is was made.
5146+ * See changed_lines() for the arguments.
5147+ * Careful: may trigger autocommands that reload the buffer.
5148+ */
5149 static void
5150 changed_common(lnum, col, lnume, xtra)
5151 linenr_T lnum;
5152***************
5153*** 2966,2971 ****
5154--- 2975,2981 ----
5155 * Don't use emsg(), because it flushes the macro buffer.
5156 * If we have undone all changes b_changed will be FALSE, but "b_did_warn"
5157 * will be TRUE.
5158+ * Careful: may trigger autocommands that reload the buffer.
5159 */
5160 void
5161 change_warning(col)
5162*** ../vim-7.2.444/src/undo.c 2010-05-30 16:55:17.000000000 +0200
5163--- src/undo.c 2010-07-07 18:14:44.000000000 +0200
5164***************
5165*** 185,191 ****
5166 }
5167 }
5168
5169! void
5170 u_check(int newhead_may_be_NULL)
5171 {
5172 seen_b_u_newhead = 0;
5173--- 185,191 ----
5174 }
5175 }
5176
5177! static void
5178 u_check(int newhead_may_be_NULL)
5179 {
5180 seen_b_u_newhead = 0;
5181***************
5182*** 320,325 ****
5183--- 320,328 ----
5184 return TRUE;
5185 }
5186
5187+ /*
5188+ * Common code for various ways to save text before a change.
5189+ */
5190 static int
5191 u_savecommon(top, bot, newbot)
5192 linenr_T top, bot;
5193***************
5194*** 374,380 ****
5195 size = bot - top - 1;
5196
5197 /*
5198! * if curbuf->b_u_synced == TRUE make a new header
5199 */
5200 if (curbuf->b_u_synced)
5201 {
5202--- 377,383 ----
5203 size = bot - top - 1;
5204
5205 /*
5206! * If curbuf->b_u_synced == TRUE make a new header.
5207 */
5208 if (curbuf->b_u_synced)
5209 {
5210***************
5211*** 709,714 ****
5212--- 712,723 ----
5213 u_oldcount = -1;
5214 while (count--)
5215 {
5216+ /* Do the change warning now, so that it triggers FileChangedRO when
5217+ * needed. This may cause the file to be reloaded, that must happen
5218+ * before we do anything, because it may change curbuf->b_u_curhead
5219+ * and more. */
5220+ change_warning(0);
5221+
5222 if (undo_undoes)
5223 {
5224 if (curbuf->b_u_curhead == NULL) /* first undo */
5225***************
5226*** 952,959 ****
5227 /*
5228 * First go up the tree as much as needed.
5229 */
5230! for (;;)
5231 {
5232 uhp = curbuf->b_u_curhead;
5233 if (uhp == NULL)
5234 uhp = curbuf->b_u_newhead;
5235--- 961,971 ----
5236 /*
5237 * First go up the tree as much as needed.
5238 */
5239! while (!got_int)
5240 {
5241+ /* Do the change warning now, for the same reason as above. */
5242+ change_warning(0);
5243+
5244 uhp = curbuf->b_u_curhead;
5245 if (uhp == NULL)
5246 uhp = curbuf->b_u_newhead;
5247***************
5248*** 970,978 ****
5249 /*
5250 * And now go down the tree (redo), branching off where needed.
5251 */
5252! uhp = curbuf->b_u_curhead;
5253! while (uhp != NULL)
5254 {
5255 /* Go back to the first branch with a mark. */
5256 while (uhp->uh_alt_prev != NULL
5257 && uhp->uh_alt_prev->uh_walk == mark)
5258--- 982,996 ----
5259 /*
5260 * And now go down the tree (redo), branching off where needed.
5261 */
5262! while (!got_int)
5263 {
5264+ /* Do the change warning now, for the same reason as above. */
5265+ change_warning(0);
5266+
5267+ uhp = curbuf->b_u_curhead;
5268+ if (uhp == NULL)
5269+ break;
5270+
5271 /* Go back to the first branch with a mark. */
5272 while (uhp->uh_alt_prev != NULL
5273 && uhp->uh_alt_prev->uh_walk == mark)
5274***************
5275*** 1070,1075 ****
5276--- 1088,1099 ----
5277 int empty_buffer; /* buffer became empty */
5278 u_header_T *curhead = curbuf->b_u_curhead;
5279
5280+ #ifdef FEAT_AUTOCMD
5281+ /* Don't want autocommands using the undo structures here, they are
5282+ * invalid till the end. */
5283+ block_autocmds();
5284+ #endif
5285+
5286 #ifdef U_DEBUG
5287 u_check(FALSE);
5288 #endif
5289***************
5290*** 1099,1104 ****
5291--- 1123,1131 ----
5292 if (top > curbuf->b_ml.ml_line_count || top >= bot
5293 || bot > curbuf->b_ml.ml_line_count + 1)
5294 {
5295+ #ifdef FEAT_AUTOCMD
5296+ unblock_autocmds();
5297+ #endif
5298 EMSG(_("E438: u_undo: line numbers wrong"));
5299 changed(); /* don't want UNCHANGED now */
5300 return;
5301***************
5302*** 1304,1309 ****
5303--- 1331,1340 ----
5304 /* The timestamp can be the same for multiple changes, just use the one of
5305 * the undone/redone change. */
5306 curbuf->b_u_seq_time = curhead->uh_time;
5307+
5308+ #ifdef FEAT_AUTOCMD
5309+ unblock_autocmds();
5310+ #endif
5311 #ifdef U_DEBUG
5312 u_check(FALSE);
5313 #endif
5314*** ../vim-7.2.444/src/version.c 2010-06-13 02:35:41.000000000 +0200
5315--- src/version.c 2010-07-07 18:18:27.000000000 +0200
5316***************
5317*** 683,684 ****
5318--- 683,686 ----
5319 { /* Add new patch number below this line */
5320+ /**/
5321+ 445,
5322 /**/
5323
5324--
5325 A KNIGHT rides into shot and hacks him to the ground. He rides off.
5326 We stay for a moment on the glade. A MIDDLE-AGED LADY in a C. & A.
5327 twin-set emerges from the trees and looks in horror at the body of her
5328 HUSBAND.
5329MRS HISTORIAN: FRANK!
5330 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
5331
5332 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
5333/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
5334\\\ download, build and distribute -- http://www.A-A-P.org ///
5335 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
5336To: vim-dev@vim.org
5337Subject: Patch 7.2.446
5338Fcc: outbox
5339From: Bram Moolenaar <Bram@moolenaar.net>
5340Mime-Version: 1.0
5341Content-Type: text/plain; charset=UTF-8
5342Content-Transfer-Encoding: 8bit
5343------------
5344
5345Patch 7.2.446
5346Problem: Crash in GUI when closing the last window in a tabpage. (ryo7000)
5347Solution: Remove the tabpage from the list before freeing the window.
5348Files: src/window.c
5349
5350
5351*** ../vim-7.2.445/src/window.c 2010-03-17 16:54:51.000000000 +0100
5352--- src/window.c 2010-07-11 13:18:31.000000000 +0200
5353***************
5354*** 2304,2309 ****
5355--- 2304,2310 ----
5356 win_T *wp;
5357 int dir;
5358 tabpage_T *ptp = NULL;
5359+ int free_tp = FALSE;
5360
5361 /* Close the link to the buffer. */
5362 close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
5363***************
5364*** 2321,2331 ****
5365 if (wp == NULL)
5366 return;
5367
5368- /* Free the memory used for the window. */
5369- wp = win_free_mem(win, &dir, tp);
5370-
5371 /* When closing the last window in a tab page remove the tab page. */
5372! if (wp == NULL)
5373 {
5374 if (tp == first_tabpage)
5375 first_tabpage = tp->tp_next;
5376--- 2322,2329 ----
5377 if (wp == NULL)
5378 return;
5379
5380 /* When closing the last window in a tab page remove the tab page. */
5381! if (tp == NULL ? firstwin == lastwin : tp->tp_firstwin == tp->tp_lastwin)
5382 {
5383 if (tp == first_tabpage)
5384 first_tabpage = tp->tp_next;
5385***************
5386*** 2341,2348 ****
5387 }
5388 ptp->tp_next = tp->tp_next;
5389 }
5390! free_tabpage(tp);
5391 }
5392 }
5393
5394 /*
5395--- 2339,2352 ----
5396 }
5397 ptp->tp_next = tp->tp_next;
5398 }
5399! free_tp = TRUE;
5400 }
5401+
5402+ /* Free the memory used for the window. */
5403+ win_free_mem(win, &dir, tp);
5404+
5405+ if (free_tp)
5406+ free_tabpage(tp);
5407 }
5408
5409 /*
5410*** ../vim-7.2.445/src/version.c 2010-07-07 18:20:21.000000000 +0200
5411--- src/version.c 2010-07-12 21:36:05.000000000 +0200
5412***************
5413*** 683,684 ****
5414--- 683,686 ----
5415 { /* Add new patch number below this line */
5416+ /**/
5417+ 446,
5418 /**/
5419
5420--
5421Not too long ago, compress was something you did to garbage...
5422
5423 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
5424/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
5425\\\ download, build and distribute -- http://www.A-A-P.org ///
5426 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/meta-oe/recipes-support/vim/vim.inc b/meta-oe/recipes-support/vim/vim.inc
index bb3e56aae..12e8c1e0f 100644
--- a/meta-oe/recipes-support/vim/vim.inc
+++ b/meta-oe/recipes-support/vim/vim.inc
@@ -4,20 +4,16 @@ DEPENDS = "ncurses"
4# vimdiff doesn't like busybox diff 4# vimdiff doesn't like busybox diff
5RSUGGESTS_${PN} = "diffutils" 5RSUGGESTS_${PN} = "diffutils"
6LICENSE = "vim" 6LICENSE = "vim"
7LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=cd49910a3dde6fe0a7e24ebe8cbf7066" 7LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=4c91d841bb7b75f68b5bb8ad7118f5b8"
8 8
9PV_MAJOR = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" 9PV_MAJOR = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
10VIMDIR = "${PN}${@d.getVar('PV',1).split('.')[0]}${@d.getVar('PV',1).split('.')[1]}" 10VIMDIR = "${PN}${@d.getVar('PV',1).split('.')[0]}${@d.getVar('PV',1).split('.')[1]}"
11 11
12INC_PR = "r13" 12INC_PR = "r13"
13 13
14SRC_URI = " \ 14SRC_URI = "hg://vim.googlecode.com/hg/;protocol=https;module=vim"
15 ftp://ftp.${PN}.org/pub/${PN}/unix/${PN}-${PV_MAJOR}.tar.bz2;name=${VIMDIR} \
16 ftp://ftp.${PN}.org/pub/${PN}/extra/${PN}-${PV_MAJOR}-extra.tar.gz;name=${VIMDIR}-extra \
17 ftp://ftp.${PN}.org/pub/${PN}/extra/${PN}-${PV_MAJOR}-lang.tar.gz;name=${VIMDIR}-lang \
18"
19 15
20S = "${WORKDIR}/${VIMDIR}/src" 16S = "${WORKDIR}/${PN}/src"
21 17
22inherit autotools update-alternatives 18inherit autotools update-alternatives
23 19
diff --git a/meta-oe/recipes-support/vim/vim_7.2.446.bb b/meta-oe/recipes-support/vim/vim_7.2.446.bb
deleted file mode 100644
index ef9f3c9f8..000000000
--- a/meta-oe/recipes-support/vim/vim_7.2.446.bb
+++ /dev/null
@@ -1,28 +0,0 @@
1require ${PN}.inc
2
3PR = "${INC_PR}.0"
4
5# 001-446; 401-446 are not yet available online
6SRC_URI += "http://ftp.vim.org/pub/vim/patches/7.2/7.2.001-100.gz;name=p001-100;apply=yes;patchdir=..;pnum=0"
7SRC_URI += "http://ftp.vim.org/pub/vim/patches/7.2/7.2.101-200.gz;name=p101-200;apply=yes;patchdir=..;pnum=0"
8SRC_URI += "http://ftp.vim.org/pub/vim/patches/7.2/7.2.201-300.gz;name=p201-300;apply=yes;patchdir=..;pnum=0"
9SRC_URI += "http://ftp.vim.org/pub/vim/patches/7.2/7.2.301-400.gz;name=p301-400;apply=yes;patchdir=..;pnum=0"
10SRC_URI += "file://401-446.diff;patchdir=..;pnum=0"
11
12SRC_URI[vim72.md5sum] = "f0901284b338e448bfd79ccca0041254"
13SRC_URI[vim72.sha256sum] = "914db0f2205ebd6f02878295ec2506036ea7500399db112c61a01491cd9a1d86"
14SRC_URI[vim72-lang.md5sum] = "d8884786979e0e520c112faf2e176f05"
15SRC_URI[vim72-lang.sha256sum] = "11607f539a4518b550bf1606b7d3a6f36c1ffdf566c058e7d94bced78034cd5b"
16SRC_URI[vim72-extra.md5sum] = "35e04482f07c57221c9a751aaa3b8dac"
17SRC_URI[vim72-extra.sha256sum] = "20894ac79672160bfc4f1d2f9f9775b34d944762d655307a91ca96d358faa04d"
18
19SRC_URI[p001-100.md5sum] = "ba91b19374cee90f71b8f4ab1d92dc0f"
20SRC_URI[p001-100.sha256sum] = "519f4fea460e4f7a737ea8006c0dc1684982f8372d1581fb963a5d58f8007f67"
21SRC_URI[p101-200.md5sum] = "b485233d360041d043c56cd99057dbff"
22SRC_URI[p101-200.sha256sum] = "0a6e25e454706377f8a6babe4da99c6eab7e71a63d28ad9b24aa5c170522bac3"
23SRC_URI[p201-300.md5sum] = "069fb537772a8e4a74119d8a6a7e61f3"
24SRC_URI[p201-300.sha256sum] = "a11bad3a4e167501c62f0212d3b8935a73a1ae378c5d6ed73a477a71f57baffa"
25SRC_URI[p301-400.md5sum] = "137b5821ff4a2266796d14d867be5f9f"
26SRC_URI[p301-400.sha256sum] = "41f022ec829786a008685c0b00acf8be09525755a94a06236a4b879b1f84b5f4"
27
28SRC_URI += "file://configure.in_remove_CC_quotes.patch;patchdir=.."
diff --git a/meta-oe/recipes-support/vim/vim_7.3.905.bb b/meta-oe/recipes-support/vim/vim_7.3.905.bb
new file mode 100644
index 000000000..f5b145368
--- /dev/null
+++ b/meta-oe/recipes-support/vim/vim_7.3.905.bb
@@ -0,0 +1,7 @@
1require ${PN}.inc
2
3PR = "${INC_PR}.0"
4
5SRCREV = "v7-3-905"
6
7SRC_URI += "file://configure.in_remove_CC_quotes.patch;patchdir=.."