Isn’t that missing a change in spell.c?

Christian

> Am 10.06.2020 um 21:47 schrieb Bram Moolenaar <[email protected]>:
> 
> 
> Patch 8.2.0953
> Problem:    Spell checking doesn't work for CamelCased words.
> Solution:   Add the "camel" value in the new option 'spelloptions'.
>            (closes #1235)
> Files:      runtime/doc/options.txt, runtime/doc/spell.txt, src/optiondefs.h,
>            src/option.h, src/option.c, src/buffer.c, src/optionstr.c,
>            src/testdir/gen_opt_test.vim, src/testdir/test_spell.vim
> 
> 
> *** ../vim-8.2.0952/runtime/doc/options.txt    2020-06-07 22:21:35.220132507 
> +0200
> --- runtime/doc/options.txt    2020-06-10 21:07:06.331864186 +0200
> ***************
> *** 7106,7111 ****
> --- 7105,7120 ----
>      up to the first character that is not an ASCII letter or number and
>      not a dash.  Also see |set-spc-auto|.
> 
> +                        *'spelloptions'* *'spo'*
> + 'spelloptions' 'spo'    string    (default "")
> +            local to buffer
> +            {not available when compiled without the |+syntax|
> +            feature}
> +    A comma separated list of options for spell checking:
> +       camel    When a word is CamelCased, assume "Cased" is a
> +            separate word: every upper-case character in a word
> +            that comes after a lower case character indicates the
> +            start of a new word.
> 
>                          *'spellsuggest'* *'sps'*
>  'spellsuggest' 'sps'    string    (default "best")
> *** ../vim-8.2.0952/runtime/doc/spell.txt    2019-12-12 12:49:06.000000000 
> +0100
> --- runtime/doc/spell.txt    2020-06-10 21:08:57.055556930 +0200
> ***************
> *** 215,220 ****
> --- 215,223 ----
>  line may be postponed.  Use |CTRL-L| when needed.  Also see |set-spc-auto| 
> for
>  how it can be set automatically when 'spelllang' is set.
> 
> + The 'spelloptions' option has a few more flags that influence the way spell
> + checking works.
> + 
>  Vim counts the number of times a good word is encountered.  This is used to
>  sort the suggestions: words that have been seen before get a small bonus,
>  words that have been seen often get a bigger bonus.  The COMMON item in the
> *** ../vim-8.2.0952/src/optiondefs.h    2020-05-31 23:11:02.082515688 +0200
> --- src/optiondefs.h    2020-06-10 21:23:57.432906772 +0200
> ***************
> *** 129,134 ****
> --- 129,135 ----
>  # define PV_SPC        OPT_BUF(BV_SPC)
>  # define PV_SPF        OPT_BUF(BV_SPF)
>  # define PV_SPL        OPT_BUF(BV_SPL)
> + # define PV_SPO        OPT_BUF(BV_SPO)
>  #endif
>  #define PV_STS        OPT_BUF(BV_STS)
>  #ifdef FEAT_SEARCHPATH
> ***************
> *** 2396,2401 ****
> --- 2397,2412 ----
>  #else
>                  (char_u *)NULL, PV_NONE,
>                  {(char_u *)0L, (char_u *)0L}
> + #endif
> +                SCTX_INIT},
> +     {"spelloptions", "spo",  P_STRING|P_ALLOCED|P_VI_DEF
> +                            |P_ONECOMMA|P_NODUP|P_RBUF,
> + #ifdef FEAT_SPELL
> +                (char_u *)&p_spo, PV_SPO,
> +                {(char_u *)"", (char_u *)0L}
> + #else
> +                (char_u *)NULL, PV_NONE,
> +                {(char_u *)0L, (char_u *)0L}
>  #endif
>                  SCTX_INIT},
>      {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_ONECOMMA,
> *** ../vim-8.2.0952/src/option.h    2020-06-04 18:21:56.046395485 +0200
> --- src/option.h    2020-06-10 21:18:38.369865493 +0200
> ***************
> *** 913,918 ****
> --- 913,919 ----
>  EXTERN char_u    *p_spc;        // 'spellcapcheck'
>  EXTERN char_u    *p_spf;        // 'spellfile'
>  EXTERN char_u    *p_spl;        // 'spelllang'
> + EXTERN char_u    *p_spo;        // 'spelloptions'
>  EXTERN char_u    *p_sps;        // 'spellsuggest'
>  #endif
>  EXTERN int    p_spr;        // 'splitright'
> ***************
> *** 1185,1190 ****
> --- 1186,1192 ----
>      , BV_SPC
>      , BV_SPF
>      , BV_SPL
> +     , BV_SPO
>  #endif
>      , BV_STS
>  #ifdef FEAT_SEARCHPATH
> *** ../vim-8.2.0952/src/option.c    2020-05-30 21:52:49.242816719 +0200
> --- src/option.c    2020-06-10 21:10:51.627232404 +0200
> ***************
> *** 5329,5334 ****
> --- 5329,5335 ----
>      case PV_SPC:    return (char_u *)&(curwin->w_s->b_p_spc);
>      case PV_SPF:    return (char_u *)&(curwin->w_s->b_p_spf);
>      case PV_SPL:    return (char_u *)&(curwin->w_s->b_p_spl);
> +    case PV_SPO:    return (char_u *)&(curwin->w_s->b_p_spo);
>  #endif
>      case PV_SW:    return (char_u *)&(curbuf->b_p_sw);
>      case PV_TS:    return (char_u *)&(curbuf->b_p_ts);
> ***************
> *** 5838,5843 ****
> --- 5839,5846 ----
>          COPY_OPT_SCTX(buf, BV_SPF);
>          buf->b_s.b_p_spl = vim_strsave(p_spl);
>          COPY_OPT_SCTX(buf, BV_SPL);
> +        buf->b_s.b_p_spo = vim_strsave(p_spo);
> +        COPY_OPT_SCTX(buf, BV_SPO);
>  #endif
>  #if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
>          buf->b_p_inde = vim_strsave(p_inde);
> *** ../vim-8.2.0952/src/buffer.c    2020-05-30 20:30:42.888816585 +0200
> --- src/buffer.c    2020-06-10 21:11:32.639114815 +0200
> ***************
> *** 2287,2292 ****
> --- 2287,2293 ----
>      vim_regfree(buf->b_s.b_cap_prog);
>      buf->b_s.b_cap_prog = NULL;
>      clear_string_option(&buf->b_s.b_p_spl);
> +     clear_string_option(&buf->b_s.b_p_spo);
>  #endif
>  #ifdef FEAT_SEARCHPATH
>      clear_string_option(&buf->b_p_sua);
> *** ../vim-8.2.0952/src/optionstr.c    2020-06-08 18:54:44.957796367 +0200
> --- src/optionstr.c    2020-06-10 21:21:06.441422152 +0200
> ***************
> *** 248,253 ****
> --- 248,254 ----
>      check_string_option(&buf->b_s.b_p_spc);
>      check_string_option(&buf->b_s.b_p_spf);
>      check_string_option(&buf->b_s.b_p_spl);
> +     check_string_option(&buf->b_s.b_p_spo);
>  #endif
>  #ifdef FEAT_SEARCHPATH
>      check_string_option(&buf->b_p_sua);
> ***************
> *** 1714,1719 ****
> --- 1715,1726 ----
>      {
>      errmsg = compile_cap_prog(curwin->w_s);
>      }
> +     // 'spelloptions'
> +     else if (varp == &(curwin->w_s->b_p_spo))
> +     {
> +    if (**varp != NUL && STRCMP("camel", *varp) != 0)
> +        errmsg = e_invarg;
> +     }
>      // 'spellsuggest'
>      else if (varp == &p_sps)
>      {
> *** ../vim-8.2.0952/src/testdir/gen_opt_test.vim    2020-04-17 
> 19:41:16.100078313 +0200
> --- src/testdir/gen_opt_test.vim    2020-06-10 21:44:34.576170474 +0200
> ***************
> *** 132,137 ****
> --- 132,138 ----
>        \ 'signcolumn': [['', 'auto', 'no'], ['xxx', 'no,yes']],
>        \ 'spellfile': [['', 'file.en.add'], ['xxx', '/tmp/file']],
>        \ 'spelllang': [['', 'xxx', 'sr@latin'], ['not&lang', 
> "that\\\rthere"]],
> +       \ 'spelloptions': [['', 'camel'], ['xxx']],
>        \ 'spellsuggest': [['', 'best', 'double,33'], ['xxx']],
>        \ 'switchbuf': [['', 'useopen', 'split,newtab'], ['xxx']],
>        \ 'tagcase': [['smart', 'match'], ['', 'xxx', 'smart,match']],
> *** ../vim-8.2.0952/src/testdir/test_spell.vim    2020-06-10 
> 16:39:27.359613652 +0200
> --- src/testdir/test_spell.vim    2020-06-10 21:38:21.313550244 +0200
> ***************
> *** 77,82 ****
> --- 77,87 ----
>    call assert_equal(['bycycle', 'bad'],  spellbadword('My bycycle.'))
>    call assert_equal(['another', 'caps'], 'A sentence. another 
> sentence'->spellbadword())
> 
> +   call assert_equal(['TheCamelWord', 'bad'], 'TheCamelWord 
> asdf'->spellbadword())
> +   set spelloptions=camel
> +   call assert_equal(['asdf', 'bad'], 'TheCamelWord asdf'->spellbadword())
> +   set spelloptions=
> + 
>    set spelllang=en
>    call assert_equal(['', ''],            spellbadword('centre'))
>    call assert_equal(['', ''],            spellbadword('center'))
> *** ../vim-8.2.0952/src/version.c    2020-06-10 20:56:55.025354576 +0200
> --- src/version.c    2020-06-10 21:46:07.539841347 +0200
> ***************
> *** 756,757 ****
> --- 756,759 ----
>  {   /* Add new patch number below this line */
> + /**/
> +     953,
>  /**/
> 
> -- 
> GUARD #1:  What, ridden on a horse?
> ARTHUR:    Yes!
> GUARD #1:  You're using coconuts!
> ARTHUR:    What?
> GUARD #1:  You've got two empty halves of coconut and you're bangin' 'em
>           together.
>                                  The Quest for the Holy Grail (Monty Python)
> 
> /// Bram Moolenaar -- [email protected] -- 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    ///
> 
> -- 
> -- 
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "vim_dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/vim_dev/202006101947.05AJlPqF948058%40masaka.moolenaar.net.

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E33878EC-21B3-48B6-87B8-28E421E2F697%40256bit.org.

Raspunde prin e-mail lui