Mercurial > vim
comparison src/option.c @ 4219:6fe728bf165e v7.3.861
updated for version 7.3.861
Problem: ":setlocal number" clears global value of 'relativenumber'.
Solution: Do it properly. (Markus Heidelberg)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 13 Mar 2013 20:42:32 +0100 |
parents | ecf21be84def |
children | edd0bc1f26bd |
comparison
equal
deleted
inserted
replaced
4218:a3d776a5719b | 4219:6fe728bf165e |
---|---|
7629 curbuf = save_curbuf; | 7629 curbuf = save_curbuf; |
7630 } | 7630 } |
7631 } | 7631 } |
7632 #endif | 7632 #endif |
7633 | 7633 |
7634 /* 'number', 'relativenumber' */ | 7634 /* If 'number' is set, reset 'relativenumber'. */ |
7635 else if ((int *)varp == &curwin->w_p_nu | 7635 /* If 'relativenumber' is set, reset 'number'. */ |
7636 || (int *)varp == &curwin->w_p_rnu) | 7636 else if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu) |
7637 { | 7637 { |
7638 /* If 'number' is set, reset 'relativenumber'. */ | 7638 curwin->w_p_rnu = FALSE; |
7639 /* If 'relativenumber' is set, reset 'number'. */ | 7639 |
7640 if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu) | 7640 /* Only reset the global value if the own value is set globally. */ |
7641 { | 7641 if (((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0)) |
7642 curwin->w_p_rnu = FALSE; | |
7643 curwin->w_allbuf_opt.wo_rnu = FALSE; | 7642 curwin->w_allbuf_opt.wo_rnu = FALSE; |
7644 } | 7643 } |
7645 if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu) | 7644 else if ((int *)varp == &curwin->w_p_rnu && curwin->w_p_rnu) |
7646 { | 7645 { |
7647 curwin->w_p_nu = FALSE; | 7646 curwin->w_p_nu = FALSE; |
7647 | |
7648 /* Only reset the global value if the own value is set globally. */ | |
7649 if (((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0)) | |
7648 curwin->w_allbuf_opt.wo_nu = FALSE; | 7650 curwin->w_allbuf_opt.wo_nu = FALSE; |
7649 } | 7651 } |
7652 else if ((int *)varp == &curwin->w_allbuf_opt.wo_nu | |
7653 && curwin->w_allbuf_opt.wo_nu) | |
7654 { | |
7655 curwin->w_allbuf_opt.wo_rnu = FALSE; | |
7656 } | |
7657 else if ((int *)varp == &curwin->w_allbuf_opt.wo_rnu | |
7658 && curwin->w_allbuf_opt.wo_rnu) | |
7659 { | |
7660 curwin->w_allbuf_opt.wo_nu = FALSE; | |
7650 } | 7661 } |
7651 | 7662 |
7652 else if ((int *)varp == &curbuf->b_p_ro) | 7663 else if ((int *)varp == &curbuf->b_p_ro) |
7653 { | 7664 { |
7654 /* when 'readonly' is reset globally, also reset readonlymode */ | 7665 /* when 'readonly' is reset globally, also reset readonlymode */ |