474 lines
14 KiB
Plaintext
474 lines
14 KiB
Plaintext
|
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
|
||
|
|
||
|
|
||
|
*** ../vim-7.3.747/runtime/doc/eval.txt 2012-11-14 18:10:49.000000000 +0100
|
||
|
--- runtime/doc/eval.txt 2012-12-05 15:45:34.000000000 +0100
|
||
|
***************
|
||
|
*** 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
|
||
|
*** ../vim-7.3.747/src/eval.c 2012-12-05 15:16:42.000000000 +0100
|
||
|
--- src/eval.c 2012-12-05 16:03:23.000000000 +0100
|
||
|
***************
|
||
|
*** 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
|
||
|
*** ../vim-7.3.747/src/proto/screen.pro 2012-11-20 16:56:49.000000000 +0100
|
||
|
--- src/proto/screen.pro 2012-12-05 15:57:35.000000000 +0100
|
||
|
***************
|
||
|
*** 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 : */
|
||
|
*** ../vim-7.3.747/src/screen.c 2012-12-05 15:32:24.000000000 +0100
|
||
|
--- src/screen.c 2012-12-05 15:58:02.000000000 +0100
|
||
|
***************
|
||
|
*** 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;
|
||
|
+ }
|
||
|
*** ../vim-7.3.747/src/testdir/Make_amiga.mak 2012-06-29 12:54:32.000000000 +0200
|
||
|
--- src/testdir/Make_amiga.mak 2012-12-05 16:00:14.000000000 +0100
|
||
|
***************
|
||
|
*** 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
|
||
|
*** ../vim-7.3.747/src/testdir/Make_dos.mak 2012-10-06 19:10:29.000000000 +0200
|
||
|
--- src/testdir/Make_dos.mak 2012-12-05 16:00:29.000000000 +0100
|
||
|
***************
|
||
|
*** 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
|
||
|
|
||
|
*** ../vim-7.3.747/src/testdir/Make_ming.mak 2012-10-06 19:10:29.000000000 +0200
|
||
|
--- src/testdir/Make_ming.mak 2012-12-05 16:00:40.000000000 +0100
|
||
|
***************
|
||
|
*** 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
|
||
|
|
||
|
*** ../vim-7.3.747/src/testdir/Make_os2.mak 2012-06-29 12:54:32.000000000 +0200
|
||
|
--- src/testdir/Make_os2.mak 2012-12-05 16:00:50.000000000 +0100
|
||
|
***************
|
||
|
*** 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
|
||
|
|
||
|
*** ../vim-7.3.747/src/testdir/Make_vms.mms 2012-10-06 19:10:29.000000000 +0200
|
||
|
--- src/testdir/Make_vms.mms 2012-12-05 16:01:03.000000000 +0100
|
||
|
***************
|
||
|
*** 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
|
||
|
*** ../vim-7.3.747/src/testdir/Makefile 2012-10-06 19:10:29.000000000 +0200
|
||
|
--- src/testdir/Makefile 2012-12-05 15:59:02.000000000 +0100
|
||
|
***************
|
||
|
*** 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
|
||
|
|
||
|
*** ../vim-7.3.747/src/testdir/test88.in 2012-12-05 16:08:56.000000000 +0100
|
||
|
--- src/testdir/test88.in 2012-12-05 15:40:05.000000000 +0100
|
||
|
***************
|
||
|
*** 0 ****
|
||
|
--- 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|
|
||
|
*** ../vim-7.3.747/src/testdir/test88.ok 2012-12-05 16:08:56.000000000 +0100
|
||
|
--- src/testdir/test88.ok 2012-12-05 15:40:05.000000000 +0100
|
||
|
***************
|
||
|
*** 0 ****
|
||
|
--- 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
|
||
|
*** ../vim-7.3.747/src/version.c 2012-12-05 15:32:24.000000000 +0100
|
||
|
--- src/version.c 2012-12-05 16:07:46.000000000 +0100
|
||
|
***************
|
||
|
*** 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 ///
|