patch 9.1.1924: 'commentstring' requires +folding feature

Commit: 
https://github.com/vim/vim/commit/a08030c9f729a133da552b5658e5b59c54581c79
Author: Doug Kearns <[email protected]>
Date:   Thu Nov 20 21:16:48 2025 +0000

    patch 9.1.1924: 'commentstring' requires +folding feature
    
    Problem:  'commentstring' requires the +folding feature but is used in
              contexts other than folding.
    Solution: Remove the +folding feature guards from 'commentstring' and
              make it available in all builds (Doug Kearns).
    
    closes: #18731
    
    Signed-off-by: Doug Kearns <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e6bb6413e..9b2169e33 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*  For Vim version 9.1.  Last change: 2025 Nov 09
+*options.txt*  For Vim version 9.1.  Last change: 2025 Nov 20
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1991,8 +1991,6 @@ A jump table for the options with a short description can 
be found at |Q_op|.
                                        *'commentstring'* *'cms'* *E537*
 'commentstring' 'cms'  string  (default "/* %s */")
                        local to buffer
-                       {not available when compiled without the |+folding|
-                       feature}
        A template for a comment.  The "%s" in the value is replaced with the
        comment text, and should be padded with a space when possible.
        Currently used to add markers for folding, see |fold-marker|.  Also
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index b8216dfb6..78e6e3a21 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt* For Vim version 9.1.  Last change: 2025 Nov 09
+*version9.txt* For Vim version 9.1.  Last change: 2025 Nov 20
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -41692,6 +41692,8 @@ Completion: ~
 - 'smartcase' applies to completion filtering
 
 Options: ~
+- 'commentstring' is now available in all builds and no longer requires the
+  |+folding| feature
 - the default for 'commentstring' contains whitespace padding to have
   automatic comments look nicer |comment-install|
 - 'completeopt' is now a |global-local| option.
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 972c77471..1b982edca 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
 " These commands create the option window.
 "
 " Maintainer:  The Vim Project <https://github.com/vim/vim>
-" Last Change: 2025 Oct 07
+" Last Change: 2025 Nov 20
 " Former Maintainer:   Bram Moolenaar <[email protected]>
 
 " If there already is an option window, jump to that one.
@@ -860,6 +860,8 @@ call append("$", "  set bs=" . &bs)
 call <SID>AddOption("comments", gettext("definition of what comment lines look 
like"))
 call append("$", "     " .. s:local_to_buffer)
 call <SID>OptionL("com")
+call <SID>AddOption("commentstring", gettext("template for comments; used to 
put the marker in"))
+call <SID>OptionL("cms")
 call <SID>AddOption("formatoptions", gettext("list of flags that tell how 
automatic formatting works"))
 call append("$", "     " .. s:local_to_buffer)
 call <SID>OptionL("fo")
@@ -1039,8 +1041,6 @@ if has("folding")
   call <SID>AddOption("foldminlines", gettext("minimum number of screen lines 
for a fold to be closed"))
   call append("$", "   " .. s:local_to_window)
   call <SID>OptionL("fml")
-  call <SID>AddOption("commentstring", gettext("template for comments; used to 
put the marker in"))
-  call <SID>OptionL("cms")
   call <SID>AddOption("foldmethod", gettext("folding type: \"manual\", 
\"indent\", \"expr\", \"marker\",
\"syntax\" or \"diff\""))
   call append("$", "   " .. s:local_to_window)
   call <SID>OptionL("fdm")
diff --git a/src/buffer.c b/src/buffer.c
index 6e4990abd..94c6356f8 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2476,9 +2476,7 @@ free_buf_options(
     ga_clear(&buf->b_kmap_ga);
 #endif
     clear_string_option(&buf->b_p_com);
-#ifdef FEAT_FOLDING
     clear_string_option(&buf->b_p_cms);
-#endif
     clear_string_option(&buf->b_p_nf);
 #ifdef FEAT_SYN_HL
     clear_string_option(&buf->b_p_syn);
diff --git a/src/errors.h b/src/errors.h
index 0b66402f7..0f5441a4a 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -1364,9 +1364,9 @@ EXTERN char e_illegal_character_after_chr[]
 #ifdef FEAT_FOLDING
 EXTERN char e_comma_required[]
        INIT(= N_("E536: Comma required"));
+#endif
 EXTERN char e_commentstring_must_be_empty_or_contain_str[]
        INIT(= N_("E537: 'commentstring' must be empty or contain %s"));
-#endif
 EXTERN char e_pattern_found_in_every_line_str[]
        INIT(= N_("E538: Pattern found in every line: %s"));
 EXTERN char e_illegal_character_str[]
diff --git a/src/option.c b/src/option.c
index dafd8341e..88b0769c7 100644
--- a/src/option.c
+++ b/src/option.c
@@ -6866,9 +6866,7 @@ get_varp(struct vimoption *p)
        case PV_CINSD:  return (char_u *)&(curbuf->b_p_cinsd);
        case PV_CINW:   return (char_u *)&(curbuf->b_p_cinw);
        case PV_COM:    return (char_u *)&(curbuf->b_p_com);
-#ifdef FEAT_FOLDING
        case PV_CMS:    return (char_u *)&(curbuf->b_p_cms);
-#endif
        case PV_CPT:    return (char_u *)&(curbuf->b_p_cpt);
 #ifdef BACKSLASH_IN_FILENAME
        case PV_CSL:    return (char_u *)&(curbuf->b_p_csl);
@@ -7457,10 +7455,8 @@ buf_copy_options(buf_T *buf, int flags)
            COPY_OPT_SCTX(buf, BV_SN);
            buf->b_p_com = vim_strsave(p_com);
            COPY_OPT_SCTX(buf, BV_COM);
-#ifdef FEAT_FOLDING
            buf->b_p_cms = vim_strsave(p_cms);
            COPY_OPT_SCTX(buf, BV_CMS);
-#endif
            buf->b_p_fo = vim_strsave(p_fo);
            COPY_OPT_SCTX(buf, BV_FO);
            buf->b_p_flp = vim_strsave(p_flp);
diff --git a/src/option.h b/src/option.h
index ac9dca9e2..dc67566d6 100644
--- a/src/option.h
+++ b/src/option.h
@@ -510,9 +510,7 @@ EXTERN char_u       *p_cb;          // 'clipboard'
 EXTERN char_u  *p_cpm;         // 'clipmethod'
 #endif
 EXTERN long    p_ch;           // 'cmdheight'
-#ifdef FEAT_FOLDING
 EXTERN char_u  *p_cms;         // 'commentstring'
-#endif
 EXTERN char_u  *p_cpt;         // 'complete'
 EXTERN long    p_cto;          // 'completetimeout'
 #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
@@ -1191,9 +1189,7 @@ enum
     , BV_CINSD
     , BV_CINW
     , BV_CM
-#ifdef FEAT_FOLDING
     , BV_CMS
-#endif
     , BV_COM
     , BV_COT
     , BV_CPT
diff --git a/src/optiondefs.h b/src/optiondefs.h
index 7f893d89d..fda698535 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -48,9 +48,7 @@
 #define PV_CINSD       OPT_BUF(BV_CINSD)
 #define PV_CINW                OPT_BUF(BV_CINW)
 #define PV_CM          OPT_BOTH(OPT_BUF(BV_CM))
-#ifdef FEAT_FOLDING
-# define PV_CMS                OPT_BUF(BV_CMS)
-#endif
+#define PV_CMS         OPT_BUF(BV_CMS)
 #define PV_COM         OPT_BUF(BV_COM)
 #define PV_COT         OPT_BOTH(OPT_BUF(BV_COT))
 #define PV_CPT         OPT_BUF(BV_CPT)
@@ -671,13 +669,8 @@ static struct vimoption options[] =
                                (char_u *)0L}
                            SCTX_INIT},
     {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF,
-#ifdef FEAT_FOLDING
                            (char_u *)&p_cms, PV_CMS, did_set_commentstring, 
NULL,
                            {(char_u *)"/* %s */", (char_u *)0L}
-#else
-                           (char_u *)NULL, PV_NONE, NULL, NULL,
-                           {(char_u *)0L, (char_u *)0L}
-#endif
                            SCTX_INIT},
                            // P_PRI_MKRC isn't needed here, optval_default()
                            // always returns TRUE for 'compatible'
diff --git a/src/optionstr.c b/src/optionstr.c
index b4bfe742d..8df27ffbd 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -307,9 +307,7 @@ check_buf_options(buf_T *buf)
     check_string_option(&buf->b_p_flp);
     check_string_option(&buf->b_p_isk);
     check_string_option(&buf->b_p_com);
-#ifdef FEAT_FOLDING
     check_string_option(&buf->b_p_cms);
-#endif
     check_string_option(&buf->b_p_nf);
     check_string_option(&buf->b_p_qe);
 #ifdef FEAT_SYN_HL
@@ -1581,7 +1579,6 @@ did_set_comments(optset_T *args)
     return errmsg;
 }
 
-#if defined(FEAT_FOLDING)
 /*
  * The 'commentstring' option is changed.
  */
@@ -1595,7 +1592,6 @@ did_set_commentstring(optset_T *args)
 
     return NULL;
 }
-#endif
 
 /*
  * Check if value for 'complete' is valid when 'complete' option is changed.
diff --git a/src/structs.h b/src/structs.h
index c64ca8254..907d42165 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -3312,9 +3312,7 @@ struct file_buffer
     char_u     *b_p_cinsd;     // 'cinscopedecls'
     char_u     *b_p_cinw;      // 'cinwords'
     char_u     *b_p_com;       // 'comments'
-#ifdef FEAT_FOLDING
     char_u     *b_p_cms;       // 'commentstring'
-#endif
     char_u     *b_p_cot;       // 'completeopt' local value
     unsigned   b_cot_flags;    // flags for 'completeopt'
     char_u     *b_p_cpt;       // 'complete'
diff --git a/src/version.c b/src/version.c
index d038dfdaa..65e2f58f8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1924,
 /**/
     1923,
 /**/

-- 
-- 
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 visit 
https://groups.google.com/d/msgid/vim_dev/E1vMCE8-00DANX-G6%40256bit.org.

Raspunde prin e-mail lui