summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.148
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.148')
-rw-r--r--source/ap/vim/patches/7.3.148252
1 files changed, 0 insertions, 252 deletions
diff --git a/source/ap/vim/patches/7.3.148 b/source/ap/vim/patches/7.3.148
deleted file mode 100644
index 30492c0b5..000000000
--- a/source/ap/vim/patches/7.3.148
+++ /dev/null
@@ -1,252 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.148
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.148
-Problem: A syntax file with a huge number of items or clusters causes weird
- behavior, a hang or a crash. (Yukihiro Nakadaira)
-Solution: Check running out of IDs. (partly by Ben Schmidt)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.147/src/syntax.c 2011-01-22 00:58:15.000000000 +0100
---- src/syntax.c 2011-04-01 14:25:39.000000000 +0200
-***************
-*** 219,234 ****
-
- /*
- * Syntax group IDs have different types:
-! * 0 - 9999 normal syntax groups
-! * 10000 - 14999 ALLBUT indicator (current_syn_inc_tag added)
-! * 15000 - 19999 TOP indicator (current_syn_inc_tag added)
-! * 20000 - 24999 CONTAINED indicator (current_syn_inc_tag added)
-! * >= 25000 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
-! */
-! #define SYNID_ALLBUT 10000 /* syntax group ID for contains=ALLBUT */
-! #define SYNID_TOP 15000 /* syntax group ID for contains=TOP */
-! #define SYNID_CONTAINED 20000 /* syntax group ID for contains=CONTAINED */
-! #define SYNID_CLUSTER 25000 /* first syntax group ID for clusters */
-
- /*
- * Annoying Hack(TM): ":syn include" needs this pointer to pass to
---- 219,238 ----
-
- /*
- * Syntax group IDs have different types:
-! * 0 - 19999 normal syntax groups
-! * 20000 - 20999 ALLBUT indicator (current_syn_inc_tag added)
-! * 21000 - 21999 TOP indicator (current_syn_inc_tag added)
-! * 22000 - 22999 CONTAINED indicator (current_syn_inc_tag added)
-! * 23000 - 32767 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
-! */
-! #define SYNID_ALLBUT 20000 /* syntax group ID for contains=ALLBUT */
-! #define SYNID_TOP 21000 /* syntax group ID for contains=TOP */
-! #define SYNID_CONTAINED 22000 /* syntax group ID for contains=CONTAINED */
-! #define SYNID_CLUSTER 23000 /* first syntax group ID for clusters */
-!
-! #define MAX_SYNID SYNID_ALLBUT
-! #define MAX_SYN_INC_TAG 999 /* maximum before the above overflow */
-! #define MAX_CLUSTER_ID (32767 - SYNID_CLUSTER)
-
- /*
- * Annoying Hack(TM): ":syn include" needs this pointer to pass to
-***************
-*** 3442,3447 ****
---- 3446,3454 ----
- /* free the stored states */
- syn_stack_free_all(block);
- invalidate_current_state();
-+
-+ /* Reset the counter for ":syn include" */
-+ running_syn_inc_tag = 0;
- }
-
- /*
-***************
-*** 4661,4666 ****
---- 4668,4675 ----
- return;
- }
- sgl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
-+ if (sgl_id == 0)
-+ return;
- /* separate_nextcmd() and expand_filename() depend on this */
- eap->arg = rest;
- }
-***************
-*** 4689,4694 ****
---- 4698,4708 ----
- * Save and restore the existing top-level grouplist id and ":syn
- * include" tag around the actual inclusion.
- */
-+ if (running_syn_inc_tag >= MAX_SYN_INC_TAG)
-+ {
-+ EMSG((char_u *)_("E847: Too many syntax includes"));
-+ return;
-+ }
- prev_syn_inc_tag = current_syn_inc_tag;
- current_syn_inc_tag = ++running_syn_inc_tag;
- prev_toplvl_grp = curwin->w_s->b_syn_topgrp;
-***************
-*** 4712,4718 ****
- char_u *group_name_end;
- int syn_id;
- char_u *rest;
-! char_u *keyword_copy;
- char_u *p;
- char_u *kw;
- syn_opt_arg_T syn_opt_arg;
---- 4726,4732 ----
- char_u *group_name_end;
- int syn_id;
- char_u *rest;
-! char_u *keyword_copy = NULL;
- char_u *p;
- char_u *kw;
- syn_opt_arg_T syn_opt_arg;
-***************
-*** 4724,4732 ****
- if (rest != NULL)
- {
- syn_id = syn_check_group(arg, (int)(group_name_end - arg));
-!
-! /* allocate a buffer, for removing the backslashes in the keyword */
-! keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
- if (keyword_copy != NULL)
- {
- syn_opt_arg.flags = 0;
---- 4738,4746 ----
- if (rest != NULL)
- {
- syn_id = syn_check_group(arg, (int)(group_name_end - arg));
-! if (syn_id != 0)
-! /* allocate a buffer, for removing backslashes in the keyword */
-! keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
- if (keyword_copy != NULL)
- {
- syn_opt_arg.flags = 0;
-***************
-*** 5133,5139 ****
- (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
- SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
-! SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag = current_syn_inc_tag;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
- ppp->pp_matchgroup_id;
- #ifdef FEAT_CONCEAL
---- 5147,5154 ----
- (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
- SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
-! SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag =
-! current_syn_inc_tag;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
- ppp->pp_matchgroup_id;
- #ifdef FEAT_CONCEAL
-***************
-*** 5426,5431 ****
---- 5441,5454 ----
- curwin->w_s->b_syn_clusters.ga_growsize = 10;
- }
-
-+ len = curwin->w_s->b_syn_clusters.ga_len;
-+ if (len >= MAX_CLUSTER_ID)
-+ {
-+ EMSG((char_u *)_("E848: Too many syntax clusters"));
-+ vim_free(name);
-+ return 0;
-+ }
-+
- /*
- * Make room for at least one other cluster entry.
- */
-***************
-*** 5434,5440 ****
- vim_free(name);
- return 0;
- }
-- len = curwin->w_s->b_syn_clusters.ga_len;
-
- vim_memset(&(SYN_CLSTR(curwin->w_s)[len]), 0, sizeof(syn_cluster_T));
- SYN_CLSTR(curwin->w_s)[len].scl_name = name;
---- 5457,5462 ----
-***************
-*** 5476,5483 ****
-
- if (rest != NULL)
- {
-! scl_id = syn_check_cluster(arg, (int)(group_name_end - arg))
-! - SYNID_CLUSTER;
-
- for (;;)
- {
---- 5498,5507 ----
-
- if (rest != NULL)
- {
-! scl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
-! if (scl_id == 0)
-! return;
-! scl_id -= SYNID_CLUSTER;
-
- for (;;)
- {
-***************
-*** 5516,5522 ****
- if (got_clstr)
- {
- redraw_curbuf_later(SOME_VALID);
-! syn_stack_free_all(curwin->w_s); /* Need to recompute all syntax. */
- }
- }
-
---- 5540,5546 ----
- if (got_clstr)
- {
- redraw_curbuf_later(SOME_VALID);
-! syn_stack_free_all(curwin->w_s); /* Need to recompute all. */
- }
- }
-
-***************
-*** 8972,8977 ****
---- 8996,9008 ----
- highlight_ga.ga_growsize = 10;
- }
-
-+ if (highlight_ga.ga_len >= MAX_SYNID)
-+ {
-+ EMSG(_("E849: Too many syntax groups"));
-+ vim_free(name);
-+ return 0;
-+ }
-+
- /*
- * Make room for at least one other syntax_highlight entry.
- */
-*** ../vim-7.3.147/src/version.c 2011-04-01 13:05:37.000000000 +0200
---- src/version.c 2011-04-01 14:26:44.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 148,
- /**/
-
---
-BLACK KNIGHT: None shall pass.
-ARTHUR: I have no quarrel with you, brave Sir knight, but I must cross
- this bridge.
-BLACK KNIGHT: Then you shall die.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///