diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.109')
-rw-r--r-- | source/ap/vim/patches/7.3.109 | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/source/ap/vim/patches/7.3.109 b/source/ap/vim/patches/7.3.109 deleted file mode 100644 index ce35fb0a..00000000 --- a/source/ap/vim/patches/7.3.109 +++ /dev/null @@ -1,266 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.109 -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.109 -Problem: Processing new Esperanto spell file fails and crashes Vim. - (Dominique Pelle) -Solution: When running out of memory give an error. Handle '?' in - COMPOUNDRULE properly. -Files: src/spell.c - - -*** ../vim-7.3.108/src/spell.c 2010-12-17 18:06:00.000000000 +0100 ---- src/spell.c 2011-02-01 13:43:52.000000000 +0100 -*************** -*** 3634,3640 **** - } - - /* Add all flags to "sl_compallflags". */ -! if (vim_strchr((char_u *)"+*[]/", c) == NULL - && !byte_in_str(slang->sl_compallflags, c)) - { - *ap++ = c; ---- 3634,3640 ---- - } - - /* Add all flags to "sl_compallflags". */ -! if (vim_strchr((char_u *)"?*+[]/", c) == NULL - && !byte_in_str(slang->sl_compallflags, c)) - { - *ap++ = c; -*************** -*** 3664,3670 **** - /* Copy flag to "sl_comprules", unless we run into a wildcard. */ - if (crp != NULL) - { -! if (c == '+' || c == '*') - { - vim_free(slang->sl_comprules); - slang->sl_comprules = NULL; ---- 3664,3670 ---- - /* Copy flag to "sl_comprules", unless we run into a wildcard. */ - if (crp != NULL) - { -! if (c == '?' || c == '+' || c == '*') - { - vim_free(slang->sl_comprules); - slang->sl_comprules = NULL; -*************** -*** 3682,3689 **** - } - else /* normal char, "[abc]" and '*' are copied as-is */ - { -! if (c == '+' || c == '~') -! *pp++ = '\\'; /* "a+" becomes "a\+" */ - #ifdef FEAT_MBYTE - if (enc_utf8) - pp += mb_char2bytes(c, pp); ---- 3682,3689 ---- - } - else /* normal char, "[abc]" and '*' are copied as-is */ - { -! if (c == '?' || c == '+' || c == '~') -! *pp++ = '\\'; /* "a?" becomes "a\?", "a+" becomes "a\+" */ - #ifdef FEAT_MBYTE - if (enc_utf8) - pp += mb_char2bytes(c, pp); -*************** -*** 4951,4956 **** ---- 4951,4958 ---- - - sblock_T *si_blocks; /* memory blocks used */ - long si_blocks_cnt; /* memory blocks allocated */ -+ int si_did_emsg; /* TRUE when ran out of memory */ -+ - long si_compress_cnt; /* words to add before lowering - compression limit */ - wordnode_T *si_first_free; /* List of nodes that have been freed during -*************** -*** 5477,5497 **** - } - else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2)) - { -! /* Concatenate this string to previously defined ones, using a -! * slash to separate them. */ -! l = (int)STRLEN(items[1]) + 1; -! if (compflags != NULL) -! l += (int)STRLEN(compflags) + 1; -! p = getroom(spin, l, FALSE); -! if (p != NULL) - { - if (compflags != NULL) - { -! STRCPY(p, compflags); -! STRCAT(p, "/"); - } -- STRCAT(p, items[1]); -- compflags = p; - } - } - else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2) ---- 5479,5503 ---- - } - else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2)) - { -! /* Don't use the first rule if it is a number. */ -! if (compflags != NULL || *skipdigits(items[1]) != NUL) - { -+ /* Concatenate this string to previously defined ones, -+ * using a slash to separate them. */ -+ l = (int)STRLEN(items[1]) + 1; - if (compflags != NULL) -+ l += (int)STRLEN(compflags) + 1; -+ p = getroom(spin, l, FALSE); -+ if (p != NULL) - { -! if (compflags != NULL) -! { -! STRCPY(p, compflags); -! STRCAT(p, "/"); -! } -! STRCAT(p, items[1]); -! compflags = p; - } - } - } - else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2) -*************** -*** 6291,6297 **** - - for (p = compflags; *p != NUL; ) - { -! if (vim_strchr((char_u *)"/*+[]", *p) != NULL) - /* Copy non-flag characters directly. */ - *tp++ = *p++; - else ---- 6297,6303 ---- - - for (p = compflags; *p != NUL; ) - { -! if (vim_strchr((char_u *)"/?*+[]", *p) != NULL) - /* Copy non-flag characters directly. */ - *tp++ = *p++; - else -*************** -*** 6320,6326 **** - { - check_renumber(spin); - id = spin->si_newcompID--; -! } while (vim_strchr((char_u *)"/+*[]\\-^", id) != NULL); - ci->ci_newID = id; - hash_add(&aff->af_comp, ci->ci_key); - } ---- 6326,6332 ---- - { - check_renumber(spin); - id = spin->si_newcompID--; -! } while (vim_strchr((char_u *)"/?*+[]\\-^", id) != NULL); - ci->ci_newID = id; - hash_add(&aff->af_comp, ci->ci_key); - } -*************** -*** 7364,7373 **** - - if (bl == NULL || bl->sb_used + len > SBLOCKSIZE) - { -! /* Allocate a block of memory. This is not freed until much later. */ -! bl = (sblock_T *)alloc_clear((unsigned)(sizeof(sblock_T) + SBLOCKSIZE)); - if (bl == NULL) - return NULL; - bl->sb_next = spin->si_blocks; - spin->si_blocks = bl; - bl->sb_used = 0; ---- 7370,7390 ---- - - if (bl == NULL || bl->sb_used + len > SBLOCKSIZE) - { -! if (len >= SBLOCKSIZE) -! bl = NULL; -! else -! /* Allocate a block of memory. It is not freed until much later. */ -! bl = (sblock_T *)alloc_clear( -! (unsigned)(sizeof(sblock_T) + SBLOCKSIZE)); - if (bl == NULL) -+ { -+ if (!spin->si_did_emsg) -+ { -+ EMSG(_("E845: Insufficient memory, word list will be incomplete")); -+ spin->si_did_emsg = TRUE; -+ } - return NULL; -+ } - bl->sb_next = spin->si_blocks; - spin->si_blocks = bl; - bl->sb_used = 0; -*************** -*** 7382,7387 **** ---- 7399,7405 ---- - - /* - * Make a copy of a string into memory allocated with getroom(). -+ * Returns NULL when out of memory. - */ - static char_u * - getroom_save(spin, s) -*************** -*** 7416,7421 **** ---- 7434,7440 ---- - - /* - * Allocate the root of a word tree. -+ * Returns NULL when out of memory. - */ - static wordnode_T * - wordtree_alloc(spin) -*************** -*** 7700,7705 **** ---- 7719,7725 ---- - /* - * Get a wordnode_T, either from the list of previously freed nodes or - * allocate a new one. -+ * Returns NULL when out of memory. - */ - static wordnode_T * - get_wordnode(spin) -*************** -*** 7717,7723 **** - --spin->si_free_count; - } - #ifdef SPELL_PRINTTREE -! n->wn_nr = ++spin->si_wordnode_nr; - #endif - return n; - } ---- 7737,7744 ---- - --spin->si_free_count; - } - #ifdef SPELL_PRINTTREE -! if (n != NULL) -! n->wn_nr = ++spin->si_wordnode_nr; - #endif - return n; - } -*** ../vim-7.3.108/src/version.c 2011-02-01 13:48:47.000000000 +0100 ---- src/version.c 2011-02-01 13:56:38.000000000 +0100 -*************** -*** 716,717 **** ---- 716,719 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 109, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -174. You know what a listserv is. - - /// 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 /// |