| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.748 |
| 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.3.748 |
| Problem: Cannot properly test conceal mode. |
| Solution: Add the screencol() and screenrow() functions. Use them in |
| test88. (Simon Ruderich) |
| Files: runtime/doc/eval.txt, src/eval.c, src/proto/screen.pro, |
| src/screen.c, src/testdir/Make_amiga.mak, |
| src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, |
| src/testdir/Make_os2.mak, src/testdir/Make_vms.mms |
| src/testdir/Makefile, src/testdir/test88.in, |
| src/testdir/test88.ok |
| |
| |
| |
| |
| |
| *** 1892,1897 **** |
| --- 1903,1910 ---- |
| resolve( {filename}) String get filename a shortcut points to |
| reverse( {list}) List reverse {list} in-place |
| round( {expr}) Float round off {expr} |
| + screencol() Number current cursor column |
| + screenrow() Number current cursor row |
| search( {pattern} [, {flags} [, {stopline} [, {timeout}]]]) |
| Number search for {pattern} |
| searchdecl( {name} [, {global} [, {thisblock}]]) |
| |
| *** 4848,4862 **** |
| echo round(-4.5) |
| < -5.0 |
| {only available when compiled with the |+float| feature} |
| ! |
| ! |
| search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()* |
| Search for regexp pattern {pattern}. The search starts at the |
| cursor position (you can use |cursor()| to set it). |
| |
| If there is no match a 0 is returned and the cursor doesn't |
| move. No error message is given. |
| - When a match has been found its line number is returned. |
| |
| {flags} is a String, which can contain these character flags: |
| 'b' search backward instead of forward |
| --- 4874,4907 ---- |
| echo round(-4.5) |
| < -5.0 |
| {only available when compiled with the |+float| feature} |
| ! |
| ! screencol() *screencol()* |
| ! The result is a Number, which is the current screen column of |
| ! the cursor. The leftmost column has number 1. |
| ! This function is mainly used for testing. |
| ! |
| ! Note: Always returns the current screen column, thus if used |
| ! in a command (e.g. ":echo screencol()") it will return the |
| ! column inside the command line, which is 1 when the command is |
| ! executed. To get the cursor position in the file use one of |
| ! the following mappings: > |
| ! nnoremap <expr> GG ":echom ".screencol()."\n" |
| ! nnoremap <silent> GG :echom screencol()<CR> |
| ! < |
| ! screenrow() *screenrow()* |
| ! The result is a Number, which is the current screen row of the |
| ! cursor. The top line has number one. |
| ! This function is mainly used for testing. |
| ! |
| ! Note: Same restrictions as with |screencol()|. |
| ! |
| search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()* |
| Search for regexp pattern {pattern}. The search starts at the |
| cursor position (you can use |cursor()| to set it). |
| |
| + When a match has been found its line number is returned. |
| If there is no match a 0 is returned and the cursor doesn't |
| move. No error message is given. |
| |
| {flags} is a String, which can contain these character flags: |
| 'b' search backward instead of forward |
| |
| |
| |
| *** 668,673 **** |
| --- 668,675 ---- |
| #ifdef FEAT_FLOAT |
| static void f_round __ARGS((typval_T *argvars, typval_T *rettv)); |
| #endif |
| + static void f_screencol __ARGS((typval_T *argvars, typval_T *rettv)); |
| + static void f_screenrow __ARGS((typval_T *argvars, typval_T *rettv)); |
| static void f_search __ARGS((typval_T *argvars, typval_T *rettv)); |
| static void f_searchdecl __ARGS((typval_T *argvars, typval_T *rettv)); |
| static void f_searchpair __ARGS((typval_T *argvars, typval_T *rettv)); |
| |
| *** 8033,8038 **** |
| --- 8035,8042 ---- |
| #ifdef FEAT_FLOAT |
| {"round", 1, 1, f_round}, |
| #endif |
| + {"screencol", 0, 0, f_screencol}, |
| + {"screenrow", 0, 0, f_screenrow}, |
| {"search", 1, 4, f_search}, |
| {"searchdecl", 1, 3, f_searchdecl}, |
| {"searchpair", 3, 7, f_searchpair}, |
| |
| *** 15725,15730 **** |
| --- 15729,15758 ---- |
| #endif |
| |
| /* |
| + * "screencol()" function |
| + * |
| + * First column is 1 to be consistent with virtcol(). |
| + */ |
| + static void |
| + f_screencol(argvars, rettv) |
| + typval_T *argvars UNUSED; |
| + typval_T *rettv; |
| + { |
| + rettv->vval.v_number = screen_screencol() + 1; |
| + } |
| + |
| + /* |
| + * "screenrow()" function |
| + */ |
| + static void |
| + f_screenrow(argvars, rettv) |
| + typval_T *argvars UNUSED; |
| + typval_T *rettv; |
| + { |
| + rettv->vval.v_number = screen_screenrow() + 1; |
| + } |
| + |
| + /* |
| * "search()" function |
| */ |
| static void |
| |
| |
| |
| *** 50,53 **** |
| --- 50,55 ---- |
| int messaging __ARGS((void)); |
| void showruler __ARGS((int always)); |
| int number_width __ARGS((win_T *wp)); |
| + int screen_screencol __ARGS((void)); |
| + int screen_screenrow __ARGS((void)); |
| /* vim: set ft=c : */ |
| |
| |
| |
| *** 10264,10266 **** |
| --- 10264,10286 ---- |
| return n; |
| } |
| #endif |
| + |
| + /* |
| + * Return the current cursor column. This is the actual position on the |
| + * screen. First column is 0. |
| + */ |
| + int |
| + screen_screencol() |
| + { |
| + return screen_cur_col; |
| + } |
| + |
| + /* |
| + * Return the current cursor row. This is the actual position on the screen. |
| + * First row is 0. |
| + */ |
| + int |
| + screen_screenrow() |
| + { |
| + return screen_cur_row; |
| + } |
| |
| |
| |
| *** 31,37 **** |
| test66.out test67.out test68.out test69.out test70.out \ |
| test71.out test72.out test73.out test74.out test75.out \ |
| test76.out test77.out test78.out test79.out test80.out \ |
| ! test81.out test82.out test83.out test84.out |
| |
| .SUFFIXES: .in .out |
| |
| --- 31,37 ---- |
| test66.out test67.out test68.out test69.out test70.out \ |
| test71.out test72.out test73.out test74.out test75.out \ |
| test76.out test77.out test78.out test79.out test80.out \ |
| ! test81.out test82.out test83.out test84.out test88.out |
| |
| .SUFFIXES: .in .out |
| |
| |
| *** 135,137 **** |
| --- 135,138 ---- |
| test82.out: test82.in |
| test83.out: test83.in |
| test84.out: test84.in |
| + test88.out: test88.in |
| |
| |
| |
| *** 30,36 **** |
| test68.out test69.out test71.out test72.out test73.out \ |
| test74.out test75.out test76.out test77.out test78.out \ |
| test79.out test80.out test81.out test82.out test83.out \ |
| ! test84.out test85.out test86.out test87.out |
| |
| SCRIPTS32 = test50.out test70.out |
| |
| --- 30,36 ---- |
| test68.out test69.out test71.out test72.out test73.out \ |
| test74.out test75.out test76.out test77.out test78.out \ |
| test79.out test80.out test81.out test82.out test83.out \ |
| ! test84.out test85.out test86.out test87.out test88.out |
| |
| SCRIPTS32 = test50.out test70.out |
| |
| |
| |
| |
| *** 50,56 **** |
| test68.out test69.out test71.out test72.out test73.out \ |
| test74.out test75.out test76.out test77.out test78.out \ |
| test79.out test80.out test81.out test82.out test83.out \ |
| ! test84.out test85.out test86.out test87.out |
| |
| SCRIPTS32 = test50.out test70.out |
| |
| --- 50,56 ---- |
| test68.out test69.out test71.out test72.out test73.out \ |
| test74.out test75.out test76.out test77.out test78.out \ |
| test79.out test80.out test81.out test82.out test83.out \ |
| ! test84.out test85.out test86.out test87.out test88.out |
| |
| SCRIPTS32 = test50.out test70.out |
| |
| |
| |
| |
| *** 31,37 **** |
| test66.out test67.out test68.out test69.out test70.out \ |
| test71.out test72.out test73.out test74.out test75.out \ |
| test76.out test77.out test78.out test79.out test80.out \ |
| ! test81.out test82.out test83.out test84.out |
| |
| .SUFFIXES: .in .out |
| |
| --- 31,37 ---- |
| test66.out test67.out test68.out test69.out test70.out \ |
| test71.out test72.out test73.out test74.out test75.out \ |
| test76.out test77.out test78.out test79.out test80.out \ |
| ! test81.out test82.out test83.out test84.out test88.out |
| |
| .SUFFIXES: .in .out |
| |
| |
| |
| |
| *** 4,10 **** |
| # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com> |
| # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> |
| # |
| ! # Last change: 2012 Oct 06 |
| # |
| # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. |
| # Edit the lines in the Configuration section below to select. |
| --- 4,10 ---- |
| # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com> |
| # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> |
| # |
| ! # Last change: 2012 Dec 05 |
| # |
| # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. |
| # Edit the lines in the Configuration section below to select. |
| |
| *** 76,82 **** |
| test66.out test67.out test68.out test69.out \ |
| test71.out test72.out test74.out test75.out test76.out \ |
| test77.out test78.out test79.out test80.out test81.out \ |
| ! test82.out test83.out test84.out |
| |
| # Known problems: |
| # Test 30: a problem around mac format - unknown reason |
| --- 76,82 ---- |
| test66.out test67.out test68.out test69.out \ |
| test71.out test72.out test74.out test75.out test76.out \ |
| test77.out test78.out test79.out test80.out test81.out \ |
| ! test82.out test83.out test84.out test88.out |
| |
| # Known problems: |
| # Test 30: a problem around mac format - unknown reason |
| |
| |
| |
| *** 13,19 **** |
| |
| SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ |
| test7.out test8.out test9.out test10.out test11.out \ |
| ! test12.out test13.out test14.out test15.out test17.out \ |
| test18.out test19.out test20.out test21.out test22.out \ |
| test23.out test24.out test25.out test26.out test27.out \ |
| test28.out test29.out test30.out test31.out test32.out \ |
| --- 13,19 ---- |
| |
| SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ |
| test7.out test8.out test9.out test10.out test11.out \ |
| ! test12.out test13.out test14.out test15.out test17.out \ |
| test18.out test19.out test20.out test21.out test22.out \ |
| test23.out test24.out test25.out test26.out test27.out \ |
| test28.out test29.out test30.out test31.out test32.out \ |
| |
| *** 27,33 **** |
| test69.out test70.out test71.out test72.out test73.out \ |
| test74.out test75.out test76.out test77.out test78.out \ |
| test79.out test80.out test81.out test82.out test83.out \ |
| ! test84.out test85.out test86.out test87.out |
| |
| SCRIPTS_GUI = test16.out |
| |
| --- 27,33 ---- |
| test69.out test70.out test71.out test72.out test73.out \ |
| test74.out test75.out test76.out test77.out test78.out \ |
| test79.out test80.out test81.out test82.out test83.out \ |
| ! test84.out test85.out test86.out test87.out test88.out |
| |
| SCRIPTS_GUI = test16.out |
| |
| |
| |
| |
| |
| --- 1,85 ---- |
| + vim: set ft=vim |
| + |
| + Tests for correct display (cursor column position) with +conceal and |
| + tabulators. |
| + |
| + STARTTEST |
| + :so small.vim |
| + :if !has('conceal') |
| + e! test.ok |
| + wq! test.out |
| + :endif |
| + :" Conceal settings. |
| + :set conceallevel=2 |
| + :set concealcursor=nc |
| + :syntax match test /|/ conceal |
| + :" Save current cursor position. Only works in <expr> mode, can't be used |
| + :" with :normal because it moves the cursor to the command line. Thanks to ZyX |
| + :" <zyx.vim@gmail.com> for the idea to use an <expr> mapping. |
| + :let positions = [] |
| + :nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n" |
| + :" Start test. |
| + /^start: |
| + :normal ztj |
| + GGk |
| + :" We should end up in the same column when running these commands on the two |
| + :" lines. |
| + :normal ft |
| + GGk |
| + :normal $ |
| + GGk |
| + :normal 0j |
| + GGk |
| + :normal ft |
| + GGk |
| + :normal $ |
| + GGk |
| + :normal 0j0j |
| + GGk |
| + :" Same for next test block. |
| + :normal ft |
| + GGk |
| + :normal $ |
| + GGk |
| + :normal 0j |
| + GGk |
| + :normal ft |
| + GGk |
| + :normal $ |
| + GGk |
| + :normal 0j0j |
| + GGk |
| + :" And check W with multiple tabs and conceals in a line. |
| + :normal W |
| + GGk |
| + :normal W |
| + GGk |
| + :normal W |
| + GGk |
| + :normal $ |
| + GGk |
| + :normal 0j |
| + GGk |
| + :normal W |
| + GGk |
| + :normal W |
| + GGk |
| + :normal W |
| + GGk |
| + :normal $ |
| + GGk |
| + :" Display result. |
| + :call append('$', 'end:') |
| + :call append('$', positions) |
| + :/^end/,$wq! test.out |
| + ENDTEST |
| + |
| + start: |
| + .concealed. text |
| + |concealed| text |
| + |
| + .concealed. text |
| + |concealed| text |
| + |
| + .a. .b. .c. .d. |
| + |a| |b| |c| |d| |
| |
| |
| |
| |
| --- 1,23 ---- |
| + end: |
| + 2:1 |
| + 2:17 |
| + 2:20 |
| + 3:1 |
| + 3:17 |
| + 3:20 |
| + 5:8 |
| + 5:25 |
| + 5:28 |
| + 6:8 |
| + 6:25 |
| + 6:28 |
| + 8:1 |
| + 8:9 |
| + 8:17 |
| + 8:25 |
| + 8:27 |
| + 9:1 |
| + 9:9 |
| + 9:17 |
| + 9:25 |
| + 9:26 |
| |
| |
| |
| *** 727,728 **** |
| --- 727,730 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 748, |
| /**/ |
| |
| -- |
| hundred-and-one symptoms of being an internet addict: |
| 101. U can read htis w/o ny porblm and cant figur eout Y its evn listd. |
| |
| /// 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 /// |