To: vim_dev@googlegroups.com
Subject: Patch 7.4.201
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.4.201
Problem: 'lispwords' is a global option.
Solution: Make 'lispwords' global-local. (Sung Pae)
Files: runtime/doc/options.txt, runtime/optwin.vim, src/buffer.c,
src/misc1.c, src/option.c, src/option.h, src/structs.h,
src/testdir/test100.in, src/testdir/test100.ok
*** ../vim-7.4.200/runtime/doc/options.txt 2014-02-23 23:38:58.820760280 +0100
--- runtime/doc/options.txt 2014-03-12 18:20:30.748874299 +0100
***************
*** 4629,4635 ****
*'lispwords'* *'lw'*
'lispwords' 'lw' string (default is very long)
! global
{not in Vi}
{not available when compiled without the |+lispindent|
feature}
--- 4629,4635 ----
*'lispwords'* *'lw'*
'lispwords' 'lw' string (default is very long)
! global or local to buffer |global-local|
{not in Vi}
{not available when compiled without the |+lispindent|
feature}
*** ../vim-7.4.200/runtime/optwin.vim 2013-06-29 14:32:06.000000000 +0200
--- runtime/optwin.vim 2014-03-12 18:20:30.748874299 +0100
***************
*** 855,861 ****
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("lisp")
call append("$", "lispwords\twords that change how lisp indenting works")
! call <SID>OptionG("lw", &lw)
endif
--- 855,861 ----
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("lisp")
call append("$", "lispwords\twords that change how lisp indenting works")
! call <SID>OptionL("lw", &lw)
endif
*** ../vim-7.4.200/src/buffer.c 2014-01-10 16:43:09.000000000 +0100
--- src/buffer.c 2014-03-12 18:20:30.752874299 +0100
***************
*** 1978,1983 ****
--- 1978,1986 ----
#endif
buf->b_p_ar = -1;
buf->b_p_ul = NO_LOCAL_UNDOLEVEL;
+ #ifdef FEAT_LISP
+ clear_string_option(&buf->b_p_lw);
+ #endif
}
/*
*** ../vim-7.4.200/src/misc1.c 2013-11-06 04:01:31.000000000 +0100
--- src/misc1.c 2014-03-12 18:20:30.752874299 +0100
***************
*** 8879,8885 ****
{
char_u buf[LSIZE];
int len;
! char_u *word = p_lispwords;
while (*word != NUL)
{
--- 8879,8885 ----
{
char_u buf[LSIZE];
int len;
! char_u *word = *curbuf->b_p_lw != NUL ? curbuf->b_p_lw : p_lispwords;
while (*word != NUL)
{
*** ../vim-7.4.200/src/option.c 2014-01-14 16:54:53.000000000 +0100
--- src/option.c 2014-03-12 18:20:30.752874299 +0100
***************
*** 134,139 ****
--- 134,140 ----
#define PV_KP OPT_BOTH(OPT_BUF(BV_KP))
#ifdef FEAT_LISP
# define PV_LISP OPT_BUF(BV_LISP)
+ # define PV_LW OPT_BOTH(OPT_BUF(BV_LW))
#endif
#define PV_MA OPT_BUF(BV_MA)
#define PV_ML OPT_BUF(BV_ML)
***************
*** 1718,1724 ****
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
{"lispwords", "lw", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
#ifdef FEAT_LISP
! (char_u *)&p_lispwords, PV_NONE,
{(char_u *)LISPWORD_VALUE, (char_u *)0L}
#else
(char_u *)NULL, PV_NONE,
--- 1719,1725 ----
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
{"lispwords", "lw", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
#ifdef FEAT_LISP
! (char_u *)&p_lispwords, PV_LW,
{(char_u *)LISPWORD_VALUE, (char_u *)0L}
#else
(char_u *)NULL, PV_NONE,
***************
*** 5412,5417 ****
--- 5413,5421 ----
check_string_option(&buf->b_p_dict);
check_string_option(&buf->b_p_tsr);
#endif
+ #ifdef FEAT_LISP
+ check_string_option(&buf->b_p_lw);
+ #endif
}
/*
***************
*** 9879,9884 ****
--- 9883,9893 ----
case PV_UL:
buf->b_p_ul = NO_LOCAL_UNDOLEVEL;
break;
+ #ifdef FEAT_LISP
+ case PV_LW:
+ clear_string_option(&buf->b_p_lw);
+ break;
+ #endif
}
}
***************
*** 9928,9933 ****
--- 9937,9945 ----
case PV_STL: return (char_u *)&(curwin->w_p_stl);
#endif
case PV_UL: return (char_u *)&(curbuf->b_p_ul);
+ #ifdef FEAT_LISP
+ case PV_LW: return (char_u *)&(curbuf->b_p_lw);
+ #endif
}
return NULL; /* "cannot happen" */
}
***************
*** 9994,9999 ****
--- 10006,10015 ----
#endif
case PV_UL: return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL
? (char_u *)&(curbuf->b_p_ul) : p->var;
+ #ifdef FEAT_LISP
+ case PV_LW: return *curbuf->b_p_lw != NUL
+ ? (char_u *)&(curbuf->b_p_lw) : p->var;
+ #endif
#ifdef FEAT_ARABIC
case PV_ARAB: return (char_u *)&(curwin->w_p_arab);
***************
*** 10567,10572 ****
--- 10583,10591 ----
#ifdef FEAT_PERSISTENT_UNDO
buf->b_p_udf = p_udf;
#endif
+ #ifdef FEAT_LISP
+ buf->b_p_lw = empty_option;
+ #endif
/*
* Don't copy the options set by ex_help(), use the saved values,
*** ../vim-7.4.200/src/option.h 2014-01-10 15:32:17.000000000 +0100
--- src/option.h 2014-03-12 18:20:30.752874299 +0100
***************
*** 990,995 ****
--- 990,996 ----
, BV_KP
#ifdef FEAT_LISP
, BV_LISP
+ , BV_LW
#endif
, BV_MA
, BV_ML
*** ../vim-7.4.200/src/structs.h 2014-02-23 22:52:33.372764715 +0100
--- src/structs.h 2014-03-12 18:20:30.752874299 +0100
***************
*** 1641,1646 ****
--- 1641,1649 ----
#ifdef FEAT_PERSISTENT_UNDO
int b_p_udf; /* 'undofile' */
#endif
+ #ifdef FEAT_LISP
+ char_u *b_p_lw; /* 'lispwords' local value */
+ #endif
/* end of buffer options */
*** ../vim-7.4.200/src/testdir/test100.in 2013-11-07 03:25:51.000000000 +0100
--- src/testdir/test100.in 2014-03-12 18:25:27.792878851 +0100
***************
*** 1,4 ****
! Tests for 'undolevel' setting being global-local
STARTTEST
:so small.vim
--- 1,4 ----
! Tests for 'undolevel' and 'lispwords' settings being global-local
STARTTEST
:so small.vim
***************
*** 37,42 ****
--- 37,50 ----
:call UndoLevel()
:%w >> test.out
:"sleep 10
+ :"
+ :" Testing 'lispwords'
+ :"
+ :setglobal lispwords=foo,bar,baz
+ :setlocal lispwords-=foo | setlocal lispwords+=quux
+ :redir >> test.out | echon "\nTesting 'lispwords' local value" | setglobal lispwords? | setlocal lispwords? | echo &lispwords . "\n" | redir end
+ :setlocal lispwords<
+ :redir >> test.out | echon "\nTesting 'lispwords' value reset" | setglobal lispwords? | setlocal lispwords? | echo &lispwords . "\n" | redir end
:qa!
ENDTEST
*** ../vim-7.4.200/src/testdir/test100.ok 2013-11-07 03:25:51.000000000 +0100
--- src/testdir/test100.ok 2014-03-12 18:25:27.792878851 +0100
***************
*** 39,41 ****
--- 39,51 ----
undolevels=50 global
undolevels=-123456 local
+
+ Testing 'lispwords' local value
+ lispwords=foo,bar,baz
+ lispwords=bar,baz,quux
+ bar,baz,quux
+
+ Testing 'lispwords' value reset
+ lispwords=foo,bar,baz
+ lispwords=foo,bar,baz
+ foo,bar,baz
*** ../vim-7.4.200/src/version.c 2014-03-12 17:56:42.960852421 +0100
--- src/version.c 2014-03-12 18:19:13.720873119 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 201,
/**/
--
Lawmakers made it obligatory for everybody to take at least one bath
each week -- on Saturday night.
[real standing law in Vermont, United States of America]
/// 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 ///