Re: Patch 8.1.0519

2018-11-12 Fir de Conversatie John Marriott



On 12-Nov.-2018 06:14, Tony Mechelynck wrote:

On Linux64, even with that #ifdef in place, evalfunc.c compiles with
no error, even in my Tiny and Small builds compiled with -quickfix and
-eval (using gcc 7.3.1). All my other builds (Normal, Big and Huge)
have +quickfix and +eval.

Here are my configure options for the Normal build:

 export CONF_OPT_GUI='--enable-gui=gtk2'
 export CONF_OPT_MULTIBYTE='--enable-multibyte'
 export CONF_OPT_AUTOSERVE='--enable-autoservername'
 export CONF_OPT_FEAT='--with-features=normal'
 export CONF_ARGS='--with-vim-name=vim-normal'
 export 
CONF_OPT_COMPBY='"--with-compiledby=antoine.mechely...@gmail.com"'

According to doc/various.txt line 426, Normal and higher builds are
with +quickfix. Did you try to override that and build a Normal build
without the quickfix feature?

Have you tried replacing evalfunc.c line 32 with
 #ifdef FEAT_NORMAL
rather than removing it altogether along with line 34?


Best regards,
Tony.


Hi Tony,

For one of my builds I am using a "normal" build with a customised 
feature.h which disables quickfix (amongst others).


Cheers
John

--
--
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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Patch 8.1.0519

2018-11-11 Fir de Conversatie Yegappan Lakshmanan
Hi,

On Sun, Nov 11, 2018 at 10:40 AM John Marriott
 wrote:
>
> On 12-Nov.-2018 01:21, Bram Moolenaar wrote:
> > Patch 8.1.0519
> > Problem:Cannot save and restore the tag stack.
> > Solution:   Add gettagstack() and settagstack(). (Yegappan Lakshmanan,
> >  closes #3604)
> > Files:runtime/doc/eval.txt, runtime/doc/tagsrch.txt,
> >  runtime/doc/usr_41.txt, src/alloc.h, src/dict.c, 
> > src/evalfunc.c,
> >  src/list.c, src/misc2.c, src/proto/dict.pro, 
> > src/proto/list.pro,
> >  src/proto/misc2.pro, src/proto/tag.pro, src/tag.c,
> >  src/testdir/test_tagjump.vim
> >
> After this patch, mingw-64 throws this error if FEAT_QUICKFIX is not
> defined:
>

How are you building Vim and how are you disabling FEAT_QUICKFIX?
Are you manually editing feature.h to disable FEAT_QUICKFIX?

>
> gcc -c -I. -Iproto -DWIN32 -DWINVER=0x0603 -D_WIN32_WINNT=0x0603
> -DHAVE_PATHDEF -DFEAT_NORMAL -DHAVE_STDINT_H -DFEAT_MBYTE -pipe
> -march=native -Wall -O3 -fomit-frame-pointer -freg-struct-return -s
> evalfunc.c -o objnative/evalfunc.o
> In file included from evalfunc.c:15:
> evalfunc.c: In function 'f_settagstack':
> evalfunc.c:11194:9: error: 'e_stringreq' undeclared (first use in this
> function); did you mean 'f_string'?
>EMSG(_(e_stringreq));
>   ^~~
> vim.h:1627:39: note: in definition of macro 'EMSG'
>   #define EMSG(s)   emsg((char_u *)(s))
> ^
> evalfunc.c:11194:7: note: in expansion of macro '_'
>EMSG(_(e_stringreq));
> ^
> evalfunc.c:11194:9: note: each undeclared identifier is reported only
> once for each function it appears in
>EMSG(_(e_stringreq));
>   ^~~
> vim.h:1627:39: note: in definition of macro 'EMSG'
>   #define EMSG(s)   emsg((char_u *)(s))
> ^
> evalfunc.c:11194:7: note: in expansion of macro '_'
>EMSG(_(e_stringreq));
> ^
>
> The attached patch tries to fix it. Please check.
>

The patch looks good to me.

Regards,
Yegappan

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Patch 8.1.0519

2018-11-11 Fir de Conversatie Tony Mechelynck
On Linux64, even with that #ifdef in place, evalfunc.c compiles with
no error, even in my Tiny and Small builds compiled with -quickfix and
-eval (using gcc 7.3.1). All my other builds (Normal, Big and Huge)
have +quickfix and +eval.

Here are my configure options for the Normal build:

export CONF_OPT_GUI='--enable-gui=gtk2'
export CONF_OPT_MULTIBYTE='--enable-multibyte'
export CONF_OPT_AUTOSERVE='--enable-autoservername'
export CONF_OPT_FEAT='--with-features=normal'
export CONF_ARGS='--with-vim-name=vim-normal'
export 
CONF_OPT_COMPBY='"--with-compiledby=antoine.mechely...@gmail.com"'

According to doc/various.txt line 426, Normal and higher builds are
with +quickfix. Did you try to override that and build a Normal build
without the quickfix feature?

Have you tried replacing evalfunc.c line 32 with
#ifdef FEAT_NORMAL
rather than removing it altogether along with line 34?


Best regards,
Tony.

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Patch 8.1.0519

2018-11-11 Fir de Conversatie John Marriott



On 12-Nov.-2018 01:21, Bram Moolenaar wrote:

Patch 8.1.0519
Problem:Cannot save and restore the tag stack.
Solution:   Add gettagstack() and settagstack(). (Yegappan Lakshmanan,
 closes #3604)
Files:  runtime/doc/eval.txt, runtime/doc/tagsrch.txt,
 runtime/doc/usr_41.txt, src/alloc.h, src/dict.c, src/evalfunc.c,
 src/list.c, src/misc2.c, src/proto/dict.pro, src/proto/list.pro,
 src/proto/misc2.pro, src/proto/tag.pro, src/tag.c,
 src/testdir/test_tagjump.vim


After this patch, mingw-64 throws this error if FEAT_QUICKFIX is not 
defined:
gcc -c -I. -Iproto -DWIN32 -DWINVER=0x0603 -D_WIN32_WINNT=0x0603 
-DHAVE_PATHDEF -DFEAT_NORMAL -DHAVE_STDINT_H -DFEAT_MBYTE -pipe 
-march=native -Wall -O3 -fomit-frame-pointer -freg-struct-return -s 
evalfunc.c -o objnative/evalfunc.o

In file included from evalfunc.c:15:
evalfunc.c: In function 'f_settagstack':
evalfunc.c:11194:9: error: 'e_stringreq' undeclared (first use in this 
function); did you mean 'f_string'?

  EMSG(_(e_stringreq));
 ^~~
vim.h:1627:39: note: in definition of macro 'EMSG'
 #define EMSG(s)   emsg((char_u *)(s))
   ^
evalfunc.c:11194:7: note: in expansion of macro '_'
  EMSG(_(e_stringreq));
   ^
evalfunc.c:11194:9: note: each undeclared identifier is reported only 
once for each function it appears in

  EMSG(_(e_stringreq));
 ^~~
vim.h:1627:39: note: in definition of macro 'EMSG'
 #define EMSG(s)   emsg((char_u *)(s))
   ^
evalfunc.c:11194:7: note: in expansion of macro '_'
  EMSG(_(e_stringreq));
   ^

The attached patch tries to fix it. Please check.
Cheers
John

--
--
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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--- evalfunc.orig.c 2018-11-12 05:15:25.846826600 +1100
+++ evalfunc.c  2018-11-12 05:33:21.053883100 +1100
@@ -29,9 +29,7 @@
 #endif
 
 static char *e_listarg = N_("E686: Argument of %s must be a List");
-#ifdef FEAT_QUICKFIX
 static char *e_stringreq = N_("E928: String required");
-#endif
 
 #ifdef FEAT_FLOAT
 static void f_abs(typval_T *argvars, typval_T *rettv);


Patch 8.1.0519

2018-11-11 Fir de Conversatie Bram Moolenaar


Patch 8.1.0519
Problem:Cannot save and restore the tag stack.
Solution:   Add gettagstack() and settagstack(). (Yegappan Lakshmanan,
closes #3604)
Files:  runtime/doc/eval.txt, runtime/doc/tagsrch.txt,
runtime/doc/usr_41.txt, src/alloc.h, src/dict.c, src/evalfunc.c,
src/list.c, src/misc2.c, src/proto/dict.pro, src/proto/list.pro,
src/proto/misc2.pro, src/proto/tag.pro, src/tag.c,
src/testdir/test_tagjump.vim


*** ../vim-8.1.0518/runtime/doc/eval.txt2018-11-10 17:33:23.091518784 
+0100
--- runtime/doc/eval.txt2018-11-11 15:16:01.878631709 +0100
***
*** 2198,2203 
--- 2206,2212 
any variable {varname} in tab {nr} or {def}
  gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
any {name} in {winnr} in tab page {tabnr}
+ gettagstack([{nr}])   Dictget the tag stack of window {nr}
  getwininfo([{winid}]) Listlist of info about each window
  getwinpos([{timeout}])ListX and Y coord in pixels of the 
Vim window
  getwinposx()  Number  X coord in pixels of the Vim window
***
*** 2371,2376 
--- 2379,2386 
  settabwinvar({tabnr}, {winnr}, {varname}, {val})
noneset {varname} in window {winnr} in tab
page {tabnr} to {val}
+ settagstack({nr}, {dict} [, {action}])
+   Number  modify tag stack using {dict}
  setwinvar({nr}, {varname}, {val}) noneset {varname} in window {nr} to 
{val}
  sha256({string})  String  SHA256 checksum of {string}
  shellescape({string} [, {special}])
***
*** 4959,4964 
--- 4971,5007 
:let list_is_on = gettabwinvar(1, 2, '')
:echo "myvar = " . gettabwinvar(3, 1, 'myvar')
  <
+   To obtain all window-local variables use: >
+   gettabwinvar({tabnr}, {winnr}, '&')
+ 
+ gettagstack([{nr}])   *gettagstack()*
+   The result is a Dict, which is the tag stack of window {nr}.
+   {nr} can be the window number or the |window-ID|.
+   When {nr} is not specified, the current window is used.
+   When window {nr} doesn't exist, an empty Dict is returned.
+ 
+   The returned dictionary contains the following entries:
+   curidx  Current index in the stack. When at
+   top of the stack, set to (length + 1).
+   Index of bottom of the stack is 1.
+   items   List of items in the stack. Each item
+   is a dictionary containing the
+   entries described below.
+   length  Number of entries in the stack.
+ 
+   Each item in the stack is a dictionary with the following
+   entries:
+   bufnr   buffer number of the current jump
+   fromcursor position before the tag jump.
+   See |getpos()| for the format of the
+   returned list.
+   matchnr current matching tag number. Used when
+   multiple matching tags are found for a
+   name.
+   tagname name of the tag
+ 
+   See |tagstack| for more information about the tag stack.
+ 
  getwininfo([{winid}]) *getwininfo()*
Returns information about windows as a List with Dictionaries.
  
***
*** 7522,7527 
--- 7566,7602 
:call settabwinvar(3, 2, "myvar", "foobar")
  < This function is not available in the |sandbox|.
  
+ settagstack({nr}, {dict} [, {action}])*settagstack()*
+   Modify the tag stack of the window {nr} using {dict}.
+   {nr} can be the window number or the |window-ID|.
+ 
+   For a list of supported items in {dict}, refer to
+   |gettagstack()|
+   *E962*
+   If {action} is not present or is set to 'r', then the tag
+   stack is replaced. If {action} is set to 'a', then new entries
+   from {dict} are pushed onto the tag stack.
+ 
+   Returns zero for success, -1 for failure.
+ 
+   Examples:
+   Set current index of the tag stack to 4: >
+   call settagstack(1005, {'curidx' : 4})
+ 
+ < Empty the tag