diff options
author | Sam Bingner <sam@bingner.com> | 2018-12-16 11:52:18 -1000 |
---|---|---|
committer | Sam Bingner <sam@bingner.com> | 2018-12-16 11:52:18 -1000 |
commit | 570d423532176c39518f3978a203250bef41cfef (patch) | |
tree | f7b690889bfbf755a61eb9092ea3c8b126b6b9ea /data/vim/patches/8.1.0582 | |
parent | b48f34eee35e3c3594a5b9e5f64ddc6e0fc84201 (diff) |
A number of updates to make transitioning from electra repo smoother
Diffstat (limited to 'data/vim/patches/8.1.0582')
-rw-r--r-- | data/vim/patches/8.1.0582 | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0582 b/data/vim/patches/8.1.0582 new file mode 100644 index 000000000..24c9c1f50 --- /dev/null +++ b/data/vim/patches/8.1.0582 @@ -0,0 +1,217 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0582 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0582 +Problem: Text properties are not enabled. +Solution: Fix sizeof argument and re-enable the text properties feature. + Fix memory leak. +Files: src/feature.h, src/textprop.c + + +*** ../vim-8.1.0581/src/feature.h 2018-12-13 23:05:52.740820586 +0100 +--- src/feature.h 2018-12-13 23:20:19.014745889 +0100 +*************** +*** 505,511 **** + * +textprop Text properties + */ + #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL) +! // # define FEAT_TEXT_PROP + #endif + + /* +--- 505,511 ---- + * +textprop Text properties + */ + #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL) +! # define FEAT_TEXT_PROP + #endif + + /* +*** ../vim-8.1.0581/src/textprop.c 2018-12-13 22:17:52.881941445 +0100 +--- src/textprop.c 2018-12-14 12:03:01.498830663 +0100 +*************** +*** 151,157 **** + size_t textlen; + char_u *props; + char_u *newprops; +! static textprop_T tmp_prop; // static to get it aligned. + int i; + + lnum = get_tv_number(&argvars[0]); +--- 151,157 ---- + size_t textlen; + char_u *props; + char_u *newprops; +! textprop_T tmp_prop; + int i; + + lnum = get_tv_number(&argvars[0]); +*************** +*** 212,219 **** + + // Fetch the line to get the ml_line_len field updated. + proplen = get_text_props(buf, lnum, &props, TRUE); + +! if (col >= (colnr_T)STRLEN(buf->b_ml.ml_line_ptr)) + { + EMSGN(_(e_invalid_col), (long)col); + return; +--- 212,220 ---- + + // Fetch the line to get the ml_line_len field updated. + proplen = get_text_props(buf, lnum, &props, TRUE); ++ textlen = buf->b_ml.ml_line_len - proplen * sizeof(textprop_T); + +! if (col >= (colnr_T)textlen - 1) + { + EMSGN(_(e_invalid_col), (long)col); + return; +*************** +*** 224,230 **** + if (newtext == NULL) + return; + // Copy the text, including terminating NUL. +- textlen = buf->b_ml.ml_line_len - proplen * sizeof(textprop_T); + mch_memmove(newtext, buf->b_ml.ml_line_ptr, textlen); + + // Find the index where to insert the new property. +--- 225,230 ---- +*************** +*** 232,239 **** + // text, we need to copy them as bytes before using it as a struct. + for (i = 0; i < proplen; ++i) + { +! mch_memmove(&tmp_prop, props + i * sizeof(proptype_T), +! sizeof(proptype_T)); + if (tmp_prop.tp_col >= col) + break; + } +--- 232,239 ---- + // text, we need to copy them as bytes before using it as a struct. + for (i = 0; i < proplen; ++i) + { +! mch_memmove(&tmp_prop, props + i * sizeof(textprop_T), +! sizeof(textprop_T)); + if (tmp_prop.tp_col >= col) + break; + } +*************** +*** 274,280 **** + } + + /* +! * Fetch the text properties for line "lnum" in buffer 'buf". + * Returns the number of text properties and, when non-zero, a pointer to the + * first one in "props" (note that it is not aligned, therefore the char_u + * pointer). +--- 274,280 ---- + } + + /* +! * Fetch the text properties for line "lnum" in buffer "buf". + * Returns the number of text properties and, when non-zero, a pointer to the + * first one in "props" (note that it is not aligned, therefore the char_u + * pointer). +*************** +*** 617,627 **** + { + *htp = (hashtab_T *)alloc(sizeof(hashtab_T)); + if (*htp == NULL) + return; + hash_init(*htp); + } +! hash_add(buf == NULL ? global_proptypes : buf->b_proptypes, +! PT2HIKEY(prop)); + } + else + { +--- 617,629 ---- + { + *htp = (hashtab_T *)alloc(sizeof(hashtab_T)); + if (*htp == NULL) ++ { ++ vim_free(prop); + return; ++ } + hash_init(*htp); + } +! hash_add(*htp, PT2HIKEY(prop)); + } + else + { +*************** +*** 640,646 **** + char_u *highlight; + int hl_id = 0; + +! highlight = get_dict_string(dict, (char_u *)"highlight", TRUE); + if (highlight != NULL && *highlight != NUL) + hl_id = syn_name2id(highlight); + if (hl_id <= 0) +--- 642,648 ---- + char_u *highlight; + int hl_id = 0; + +! highlight = get_dict_string(dict, (char_u *)"highlight", FALSE); + if (highlight != NULL && *highlight != NUL) + hl_id = syn_name2id(highlight); + if (hl_id <= 0) +*************** +*** 721,732 **** +--- 723,736 ---- + if (hi != NULL) + { + hashtab_T *ht; ++ proptype_T *prop = HI2PT(hi); + + if (buf == NULL) + ht = global_proptypes; + else + ht = buf->b_proptypes; + hash_remove(ht, hi); ++ vim_free(prop); + } + } + +*************** +*** 846,852 **** + + #if defined(EXITFREE) || defined(PROTO) + /* +! * Free all property types for "buf". + */ + void + clear_global_prop_types(void) +--- 850,856 ---- + + #if defined(EXITFREE) || defined(PROTO) + /* +! * Free all global property types. + */ + void + clear_global_prop_types(void) +*** ../vim-8.1.0581/src/version.c 2018-12-13 23:16:32.808280772 +0100 +--- src/version.c 2018-12-14 11:56:24.389414251 +0100 +*************** +*** 801,802 **** +--- 801,804 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 582, + /**/ + +-- +Normal people believe that if it ain't broke, don't fix it. Engineers believe +that if it ain't broke, it doesn't have enough features yet. + (Scott Adams - The Dilbert principle) + + /// 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 /// |