Patch 8.0.1086

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1086 (after 8.0.1084)
Problem:Can't build with GTK 3.
Solution:   Rename function argument. (Kazunobu Kuriyama)
Files:  src/gui_gtk_x11.c


*** ../vim-8.0.1085/src/gui_gtk_x11.c   2017-09-09 18:45:20.418225738 +0200
--- src/gui_gtk_x11.c   2017-09-09 22:57:45.126802923 +0200
***
*** 4942,4952 
  }
  
  void
! gui_gtk_get_screen_size_of_win(GtkWidget *win, int *width, int *height)
  {
  #if GTK_CHECK_VERSION(3,22,0)
! GdkDisplay *dpy = gtk_widget_get_display(win);
! GdkWindow *win = gtk_widget_get_window(win);
  GdkMonitor *monitor = gdk_display_get_monitor_at_window(dpy, win);
  GdkRectangle geometry;
  
--- 4942,4952 
  }
  
  void
! gui_gtk_get_screen_size_of_win(GtkWidget *wid, int *width, int *height)
  {
  #if GTK_CHECK_VERSION(3,22,0)
! GdkDisplay *dpy = gtk_widget_get_display(wid);
! GdkWindow *win = gtk_widget_get_window(wid);
  GdkMonitor *monitor = gdk_display_get_monitor_at_window(dpy, win);
  GdkRectangle geometry;
  
***
*** 4956,4963 
  #else
  GdkScreen* screen;
  
! if (win != NULL && gtk_widget_has_screen(win))
!   screen = gtk_widget_get_screen(win);
  else
screen = gdk_screen_get_default();
  *width = gdk_screen_get_width(screen);
--- 4956,4963 
  #else
  GdkScreen* screen;
  
! if (wid != NULL && gtk_widget_has_screen(wid))
!   screen = gtk_widget_get_screen(wid);
  else
screen = gdk_screen_get_default();
  *width = gdk_screen_get_width(screen);
*** ../vim-8.0.1085/src/version.c   2017-09-09 22:19:41.933972038 +0200
--- src/version.c   2017-09-09 23:00:02.069894949 +0200
***
*** 771,772 
--- 771,774 
  {   /* Add new patch number below this line */
+ /**/
+ 1086,
  /**/

-- 
>From "know your smileys":
 :-EHas major dental problems

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.0.1084

2017-09-09 Fir de Conversatie Bram Moolenaar

Kazunobu Kuriyama wrote:

> 2017-09-10 1:45 GMT+09:00 Bram Moolenaar :
> 
> >
> > Patch 8.0.1084
> > Problem:GTK build has compiler warnings. (Christian Brabandt)
> > Solution:   Get screen size with a different function. (Ken Takata,
> > Yasuhiro
> > Matsumoto)
> > Files:  src/mbyte.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro,
> > src/gui_beval.c
> >
> 
> Hi Bram,
> 
> The GTK+ 3 GUI won't compile with this patch since the first parameter of
> the function gui_gtk_get_screen_size_of_win() butts a local variable of the
> same name.  I hope the attached patch will fix it.

Thanks!

-- 
>From "know your smileys":
 [:-)   Frankenstein's monster

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.0.1084

2017-09-09 Fir de Conversatie Kazunobu Kuriyama
2017-09-10 1:45 GMT+09:00 Bram Moolenaar :

>
> Patch 8.0.1084
> Problem:GTK build has compiler warnings. (Christian Brabandt)
> Solution:   Get screen size with a different function. (Ken Takata,
> Yasuhiro
> Matsumoto)
> Files:  src/mbyte.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro,
> src/gui_beval.c
>

Hi Bram,

The GTK+ 3 GUI won't compile with this patch since the first parameter of
the function gui_gtk_get_screen_size_of_win() butts a local variable of the
same name.  I hope the attached patch will fix it.

Regards,
Kazunobu


>
--
> The primary purpose of the DATA statement is to give names to constants;
> instead of referring to pi as 3.141592653589793 at every appearance, the
> variable PI can be given that value with a DATA statement and used instead
> of the longer form of the constant.  This also simplifies modifying the
> program, should the value of pi change.
> -- FORTRAN manual for Xerox Computers
>
>  /// Bram Moolenaar -- b...@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
> ///
>
> --
> --
> 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.
>

-- 
-- 
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.
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 510986549..9225375a1 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -4942,11 +4942,11 @@ gui_mch_set_shellsize(int width, int height,
 }
 
 void
-gui_gtk_get_screen_size_of_win(GtkWidget *win, int *width, int *height)
+gui_gtk_get_screen_size_of_win(GtkWidget *wid, int *width, int *height)
 {
 #if GTK_CHECK_VERSION(3,22,0)
-GdkDisplay *dpy = gtk_widget_get_display(win);
-GdkWindow *win = gtk_widget_get_window(win);
+GdkDisplay *dpy = gtk_widget_get_display(wid);
+GdkWindow *win = gtk_widget_get_window(wid);
 GdkMonitor *monitor = gdk_display_get_monitor_at_window(dpy, win);
 GdkRectangle geometry;
 
@@ -4956,8 +4956,8 @@ gui_gtk_get_screen_size_of_win(GtkWidget *win, int 
*width, int *height)
 #else
 GdkScreen* screen;
 
-if (win != NULL && gtk_widget_has_screen(win))
-   screen = gtk_widget_get_screen(win);
+if (wid != NULL && gtk_widget_has_screen(wid))
+   screen = gtk_widget_get_screen(wid);
 else
screen = gdk_screen_get_default();
 *width = gdk_screen_get_width(screen);


Patch 8.0.1085

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1085
Problem:The terminal debugger can't set breakpoints.
Solution:   Add :Break and :Delete commands.  Also commands for stepping
through code.
Files:  runtime/pack/dist/opt/termdebug/plugin/termdebug.vim,
runtime/doc/terminal.txt


*** ../vim-8.0.1084/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
2017-09-08 20:49:47.620907422 +0200
--- runtime/pack/dist/opt/termdebug/plugin/termdebug.vim2017-09-09 
22:18:08.690593267 +0200
***
*** 20,37 
  command -nargs=* -complete=file Termdebug call s:StartDebug()
  
  " Name of the gdb command, defaults to "gdb".
! if !exists('debugger')
!   let debugger = 'gdb'
  endif
  
  " Sign used to highlight the line where the program has stopped.
  sign define debugPC linehl=debugPC
  if  == 'light'
!   hi debugPC term=reverse ctermbg=lightblue guibg=lightblue
  else
!   hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
  endif
! let s:pc_id = 12
  
  func s:StartDebug(cmd)
let s:startwin = win_getid(winnr())
--- 20,45 
  command -nargs=* -complete=file Termdebug call s:StartDebug()
  
  " Name of the gdb command, defaults to "gdb".
! if !exists('termdebugger')
!   let termdebugger = 'gdb'
  endif
  
  " Sign used to highlight the line where the program has stopped.
+ " There can be only one.
  sign define debugPC linehl=debugPC
+ let s:pc_id = 12
+ let s:break_id = 13
+ 
+ " Sign used to indicate a breakpoint.
+ " Can be used multiple times.
+ sign define debugBreakpoint text=>> texthl=debugBreakpoint
+ 
  if  == 'light'
!   hi default debugPC term=reverse ctermbg=lightblue guibg=lightblue
  else
!   hi default debugPC term=reverse ctermbg=darkblue guibg=darkblue
  endif
! hi default debugBreakpoint term=reverse ctermbg=red guibg=red
  
  func s:StartDebug(cmd)
let s:startwin = win_getid(winnr())
***
*** 61,67 
let commpty = job_info(term_getjob(s:commbuf))['tty_out']
  
" Open a terminal window to run the debugger.
!   let cmd = [g:debugger, '-tty', pty, a:cmd]
echomsg 'executing "' . join(cmd) . '"'
let gdbbuf = term_start(cmd, {
\ 'exit_cb': function('s:EndDebug'),
--- 69,75 
let commpty = job_info(term_getjob(s:commbuf))['tty_out']
  
" Open a terminal window to run the debugger.
!   let cmd = [g:termdebugger, '-tty', pty, a:cmd]
echomsg 'executing "' . join(cmd) . '"'
let gdbbuf = term_start(cmd, {
\ 'exit_cb': function('s:EndDebug'),
***
*** 76,87 
  
" Connect gdb to the communication pty, using the GDB/MI interface
call term_sendkeys(gdbbuf, 'new-ui mi ' . commpty . "\r")
  endfunc
  
  func s:EndDebug(job, status)
exe 'bwipe! ' . s:ptybuf
exe 'bwipe! ' . s:commbuf
!   call setwinvar(s:startwin, '', s:startsigncolumn)
  endfunc
  
  " Handle a message received from gdb on the GDB/MI interface.
--- 84,107 
  
" Connect gdb to the communication pty, using the GDB/MI interface
call term_sendkeys(gdbbuf, 'new-ui mi ' . commpty . "\r")
+ 
+   " Install debugger commands.
+   call s:InstallCommands()
+ 
+   let s:breakpoints = {}
  endfunc
  
  func s:EndDebug(job, status)
exe 'bwipe! ' . s:ptybuf
exe 'bwipe! ' . s:commbuf
! 
!   let curwinid = win_getid(winnr())
! 
!   call win_gotoid(s:startwin)
!   let  = s:startsigncolumn
!   call s:DeleteCommands()
! 
!   call win_gotoid(curwinid)
  endfunc
  
  " Handle a message received from gdb on the GDB/MI interface.
***
*** 95,128 
  endif
  if msg != ''
if msg =~ '^\*\(stopped\|running\)'
!   let wid = win_getid(winnr())
  
!   if win_gotoid(s:startwin)
! if msg =~ '^\*stopped'
!   " TODO: proper parsing
!   let fname = substitute(msg, '.*fullname="\([^"]*\)".*', '\1', '')
!   let lnum = substitute(msg, '.*line="\([^"]*\)".*', '\1', '')
!   if lnum =~ '^[0-9]*$'
! if expand('%:h') != fname
!   if 
! " TODO: find existing window
! exe 'split ' . fnameescape(fname)
! let s:startwin = win_getid(winnr())
!   else
! exe 'edit ' . fnameescape(fname)
!   endif
! endif
! exe lnum
! exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC 
file=' . fnameescape(fname)
! setlocal signcolumn=yes
!   endif
  else
!   exe 'sign unplace ' . s:pc_id
  endif
- 
- call win_gotoid(wid)
endif
endif
  endif
!   endfor
  endfunc
--- 115,238 
  endif
  if msg != ''
if msg =~ '^\*\(stopped\|running\)'
!   call s:HandleCursor(msg)
!   elseif msg =~ '^\^done,bkpt='
!   call s:HandleNewBreakpoint(msg)
!   elseif msg =~ '^=breakpoint-deleted,'
!   call s:HandleBreakpointDelete(msg)
!   endif
! endif
!   endfor
! endfunc
! 
! " Install commands in the current window to control the debugger.

Re: Update to CMake runtime files

2017-09-09 Fir de Conversatie Bram Moolenaar

Dimitri Merejkowsky wrote:

> Please find attached a new version of CMake's runtime files for Vim.
> (both for syntax and indent)
> 
> Source: Patrick Boettcher repository:
> https://github.com/pboettch/vim-cmake-syntax
> 
> License is the same as CMake, so should be compatible with Vim's.

Thanks.

Can you please keep the "Last Change" header, with the date?
Please remove the $Date$ and $Revision$ stuff.

Please put the modeline at the end of the file, instead of the start.

-- 
Bare feet magnetize sharp metal objects so they point upward from the
floor -- especially in the dark.

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.


Patch 8.0.1084

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1084
Problem:GTK build has compiler warnings. (Christian Brabandt)
Solution:   Get screen size with a different function. (Ken Takata, Yasuhiro
Matsumoto)
Files:  src/mbyte.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro,
src/gui_beval.c


*** ../vim-8.0.1083/src/mbyte.c 2017-09-05 22:20:42.624382868 +0200
--- src/mbyte.c 2017-09-09 18:40:32.928136185 +0200
***
*** 4871,4878 
  if (preedit_window == NULL)
return;
  
! sw = gdk_screen_get_width(gtk_widget_get_screen(preedit_window));
! sh = gdk_screen_get_height(gtk_widget_get_screen(preedit_window));
  #if GTK_CHECK_VERSION(3,0,0)
  gdk_window_get_origin(gtk_widget_get_window(gui.drawarea), , );
  #else
--- 4871,4877 
  if (preedit_window == NULL)
return;
  
! gui_gtk_get_screen_size_of_win(preedit_window, , );
  #if GTK_CHECK_VERSION(3,0,0)
  gdk_window_get_origin(gtk_widget_get_window(gui.drawarea), , );
  #else
*** ../vim-8.0.1083/src/gui_gtk_x11.c   2017-09-02 18:33:52.449554495 +0200
--- src/gui_gtk_x11.c   2017-09-09 18:36:59.113559497 +0200
***
*** 4941,4946 
--- 4941,4969 
  gui_mch_update();
  }
  
+ void
+ gui_gtk_get_screen_size_of_win(GtkWidget *win, int *width, int *height)
+ {
+ #if GTK_CHECK_VERSION(3,22,0)
+ GdkDisplay *dpy = gtk_widget_get_display(win);
+ GdkWindow *win = gtk_widget_get_window(win);
+ GdkMonitor *monitor = gdk_display_get_monitor_at_window(dpy, win);
+ GdkRectangle geometry;
+ 
+ gdk_monitor_get_geometry(monitor, );
+ *width = geometry.width;
+ *height = geometry.height;
+ #else
+ GdkScreen* screen;
+ 
+ if (win != NULL && gtk_widget_has_screen(win))
+   screen = gtk_widget_get_screen(win);
+ else
+   screen = gdk_screen_get_default();
+ *width = gdk_screen_get_width(screen);
+ *height = gdk_screen_get_height(screen);
+ #endif
+ }
  
  /*
   * The screen size is used to make sure the initial window doesn't get bigger
***
*** 4950,4979 
  void
  gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
  {
! #if GTK_CHECK_VERSION(3,22,2)
! GdkRectangle rect;
! GdkMonitor * const mon = gdk_display_get_monitor_at_window(
!   gtk_widget_get_display(gui.mainwin),
!   gtk_widget_get_window(gui.mainwin));
! gdk_monitor_get_geometry(mon, );
  
- *screen_w = rect.width;
  /* Subtract 'guiheadroom' from the height to allow some room for the
   * window manager (task list and window title bar). */
! *screen_h = rect.height - p_ghr;
! #else
! GdkScreen* screen;
! 
! if (gui.mainwin != NULL && gtk_widget_has_screen(gui.mainwin))
!   screen = gtk_widget_get_screen(gui.mainwin);
! else
!   screen = gdk_screen_get_default();
! 
! *screen_w = gdk_screen_get_width(screen);
! /* Subtract 'guiheadroom' from the height to allow some room for the
!  * window manager (task list and window title bar). */
! *screen_h = gdk_screen_get_height(screen) - p_ghr;
! #endif
  
  /*
   * FIXME: dirty trick: Because the gui_get_base_height() doesn't include
--- 4973,4983 
  void
  gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
  {
! gui_gtk_get_screen_size_of_win(gui.mainwin, screen_w, screen_h);
  
  /* Subtract 'guiheadroom' from the height to allow some room for the
   * window manager (task list and window title bar). */
! *screen_h -= p_ghr;
  
  /*
   * FIXME: dirty trick: Because the gui_get_base_height() doesn't include
*** ../vim-8.0.1083/src/proto/gui_gtk_x11.pro   2017-07-23 16:45:05.669761183 
+0200
--- src/proto/gui_gtk_x11.pro   2017-09-09 18:40:29.664157884 +0200
***
*** 25,30 
--- 25,31 
  void gui_mch_unmaximize(void);
  void gui_mch_newfont(void);
  void gui_mch_set_shellsize(int width, int height, int min_width, int 
min_height, int base_width, int base_height, int direction);
+ void gui_gtk_get_screen_size_of_win(GtkWidget *win, int *width, int *height);
  void gui_mch_get_screen_dimensions(int *screen_w, int *screen_h);
  void gui_mch_settitle(char_u *title, char_u *icon);
  void gui_mch_enable_menu(int showit);
*** ../vim-8.0.1083/src/gui_beval.c 2017-06-05 15:07:04.944381581 +0200
--- src/gui_beval.c 2017-09-09 18:40:41.348080207 +0200
***
*** 1177,1199 
int x_offset = EVAL_OFFSET_X;
int y_offset = EVAL_OFFSET_Y;
PangoLayout *layout;
- # if GTK_CHECK_VERSION(3,22,2)
-   GdkRectangle rect;
-   GdkMonitor * const mon = gdk_display_get_monitor_at_window(
-   gtk_widget_get_display(beval->balloonShell),
-   gtk_widget_get_window(beval->balloonShell));
-   gdk_monitor_get_geometry(mon, );
  
!   screen_w = rect.width;
!   screen_h = rect.height;
! # else
GdkScreen   *screen;
  
screen = gtk_widget_get_screen(beval->target);

Re: Patch 8.0.1026

2017-09-09 Fir de Conversatie Bram Moolenaar

Ken Takata wrote:

> 2017/9/4 Mon 15:31:42 UTC+9 Christian Brabandt wrote:
> > On Mi, 30 Aug 2017, Bram Moolenaar wrote:
> > 
> > > 
> > > Patch 8.0.1026
> > > Problem:GTK on-the-spot input has problems. (Gerd Wachsmuth)
> > > Solution:   Support over-the-spot. (Yukihiro Nakadaira, Ketn Takata, 
> > > closes
> > > #1215)
> > > Files:  runtime/doc/mbyte.txt, runtime/doc/options.txt, src/edit.c,
> > > src/ex_getln.c, src/mbyte.c, src/misc1.c, src/option.c,
> > > src/option.h, src/screen.c, src/undo.c,
> > > src/testdir/gen_opt_test.vim
> > 
> > I see a couple of GDK warnings in mbyte.c with this patch. See attached 
> > logfile.
> 
> The first two warnings should be fixed by the attached patch.
> (Suggested by mattn.)

Thanks.  I'll refactor to keep this code in one place.

-- 
I AM THANKFUL...
...for the clothes that fit a little too snug because it
means I have more than enough to eat.

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.


Patch 8.0.1083

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1083
Problem:Leaking memory in input part of channel.
Solution:   Clear the input part of channel.  Free the entry. Move failing
command test to a separate file to avoid bogus leak reports
clouding tests that should not leak.
Files:  src/channel.c, src/testdir/test_terminal.vim, src/Makefile,
src/testdir/test_terminal_fail.vim, src/testdir/Make_all.mak


*** ../vim-8.0.1082/src/channel.c   2017-09-09 16:42:49.803605912 +0200
--- src/channel.c   2017-09-09 17:49:25.932595961 +0200
***
*** 2939,2944 
--- 2939,2945 
wq->wq_prev = NULL;
  else
wq->wq_next->wq_prev = NULL;
+ vim_free(entry);
  }
  
  /*
***
*** 2990,2996 
  channel_clear_one(channel, PART_SOCK);
  channel_clear_one(channel, PART_OUT);
  channel_clear_one(channel, PART_ERR);
! /* there is no callback or queue for PART_IN */
  free_callback(channel->ch_callback, channel->ch_partial);
  channel->ch_callback = NULL;
  channel->ch_partial = NULL;
--- 2991,2997 
  channel_clear_one(channel, PART_SOCK);
  channel_clear_one(channel, PART_OUT);
  channel_clear_one(channel, PART_ERR);
! channel_clear_one(channel, PART_IN);
  free_callback(channel->ch_callback, channel->ch_partial);
  channel->ch_callback = NULL;
  channel->ch_partial = NULL;
*** ../vim-8.0.1082/src/testdir/test_terminal.vim   2017-09-09 
18:10:56.707952547 +0200
--- src/testdir/test_terminal.vim   2017-09-09 18:14:42.798452272 +0200
***
*** 608,621 
endif
  
if has('unix')
- let buf = term_start('xyzabc', {'err_io': 'file', 'err_name': 'Xfile'})
- call term_wait(buf)
- call WaitFor('len(readfile("Xfile")) > 0')
- call assert_match('executing job failed', readfile('Xfile')[0])
- call WaitFor('!')
- call delete('Xfile')
- bwipe
- 
  call writefile(['one line'], 'Xfile')
  let buf = term_start('cat', {'in_io': 'file', 'in_name': 'Xfile'})
  call term_wait(buf)
--- 608,613 
*** ../vim-8.0.1082/src/Makefile2017-09-02 19:45:00.049425409 +0200
--- src/Makefile2017-09-09 17:59:17.028607522 +0200
***
*** 2265,2270 
--- 2266,2272 
test_taglist \
test_tcl \
test_terminal \
+   test_terminal_fail \
test_textobjects \
test_timers \
test_true_false \
*** ../vim-8.0.1082/src/testdir/test_terminal_fail.vim  2017-09-09 
18:14:45.242436048 +0200
--- src/testdir/test_terminal_fail.vim  2017-09-09 17:57:51.133186955 +0200
***
*** 0 
--- 1,21 
+ " This test is in a separate file, because it usually causes reports for 
memory
+ " leaks under valgrind.  That is because when fork/exec fails memory is not
+ " freed.  Since the process exists right away it's not a real leak.
+ 
+ if !has('terminal')
+   finish
+ endif
+ 
+ source shared.vim
+ 
+ func Test_terminal_redir_fails()
+   if has('unix')
+ let buf = term_start('xyzabc', {'err_io': 'file', 'err_name': 'Xfile'})
+ call term_wait(buf)
+ call WaitFor('len(readfile("Xfile")) > 0')
+ call assert_match('executing job failed', readfile('Xfile')[0])
+ call WaitFor('!')
+ call delete('Xfile')
+ bwipe
+   endif
+ endfunc
*** ../vim-8.0.1082/src/testdir/Make_all.mak2017-08-30 20:21:54.254963240 
+0200
--- src/testdir/Make_all.mak2017-09-09 17:59:40.036452320 +0200
***
*** 194,199 
--- 194,200 
test_system.res \
test_tcl.res \
test_terminal.res \
+   test_terminal_fail.res \
test_textobjects.res \
test_undo.res \
test_usercommands.res \
*** ../vim-8.0.1082/src/version.c   2017-09-09 18:10:56.707952547 +0200
--- src/version.c   2017-09-09 18:12:35.703295786 +0200
***
*** 771,772 
--- 771,774 
  {   /* Add new patch number below this line */
+ /**/
+ 1083,
  /**/

-- 
I AM THANKFUL...
...for the mess to clean after a party because it means I have
been surrounded by friends.

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.


Patch 8.0.1082

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1082
Problem:Tests fail when run under valgrind.
Solution:   Increase waiting times.
Files:  src/testdir/test_clientserver.vim, src/testdir/test_terminal.vim


*** ../vim-8.0.1081/src/testdir/test_clientserver.vim   2017-06-10 
17:06:12.904454422 +0200
--- src/testdir/test_clientserver.vim   2017-09-09 16:47:46.265594805 +0200
***
*** 35,41 
endif
  
" Takes a short while for the server to be active.
!   call WaitFor('serverlist() =~ "' . name . '"')
call assert_match(name, serverlist())
  
call remote_foreground(name)
--- 35,42 
endif
  
" Takes a short while for the server to be active.
!   " When using valgrind it takes much longer.
!   call WaitFor('serverlist() =~ "' . name . '"', 5000)
call assert_match(name, serverlist())
  
call remote_foreground(name)
*** ../vim-8.0.1081/src/testdir/test_terminal.vim   2017-09-08 
14:39:25.646102836 +0200
--- src/testdir/test_terminal.vim   2017-09-09 18:10:04.244300511 +0200
***
*** 104,109 
--- 104,118 
let g:buf = 0
  endfunc
  
+ func Get_cat_123_cmd()
+   if has('win32')
+ return 'cmd /c "cls && color 2 && echo 123"'
+   else
+ call writefile(["\[32m123"], 'Xtext')
+ return "cat Xtext"
+   endif
+ endfunc
+ 
  func Test_terminal_nasty_cb()
let cmd = Get_cat_123_cmd()
let g:buf = term_start(cmd, {'exit_cb': function('s:Nasty_exit_cb')})
***
*** 143,157 
call assert_equal('123', l)
  endfunc
  
- func Get_cat_123_cmd()
-   if has('win32')
- return 'cmd /c "cls && color 2 && echo 123"'
-   else
- call writefile(["\[32m123"], 'Xtext')
- return "cat Xtext"
-   endif
- endfunc
- 
  func Test_terminal_scrape_123()
let cmd = Get_cat_123_cmd()
let buf = term_start(cmd)
--- 152,157 
***
*** 393,399 
call assert_equal(2, winnr('$'))
call assert_equal(4, winheight(0))
bwipe
- 
  endfunc
  
  func Test_terminal_cwd()
--- 393,398 
***
*** 613,618 
--- 612,618 
  call term_wait(buf)
  call WaitFor('len(readfile("Xfile")) > 0')
  call assert_match('executing job failed', readfile('Xfile')[0])
+ call WaitFor('!')
  call delete('Xfile')
  bwipe
  
*** ../vim-8.0.1081/src/version.c   2017-09-09 16:42:49.803605912 +0200
--- src/version.c   2017-09-09 18:07:18.185401504 +0200
***
*** 771,772 
--- 771,774 
  {   /* Add new patch number below this line */
+ /**/
+ 1082,
  /**/

-- 
I AM THANKFUL...
...for the taxes that I pay because it means that I am employed.

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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: Test Failure on 8.0.1077 linux-ppc

2017-09-09 Fir de Conversatie Elimar Riesebieter
* Elimar Riesebieter  [2017-09-09 09:21 +]:

> Hi all,
> 
> building 8.0.1077 on linux-ppc with clang-5.0 I get:
> 
> >From test_channel.vim:
> Found errors in Test_exit_callback_interval():
> First run:
> function RunTheTest[24]..Test_exit_callback_interval line 29: Expected True 
> but got 0
> Second run:
> function RunTheTest[24]..Test_exit_callback_interval line 29: Expected True 
> but got 0
> TEST FAILURE
> 
> On amd64/clang-5.0 all went fine.

Fiddled with hardening options, seems to be ok now.

Elimar
-- 
  You cannot propel yourself forward by
  patting yourself on the back.

-- 
-- 
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.


Patch 8.0.1081

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1081
Problem:Memory leak for the channel write queue.
Solution:   Free the write queue when clearing a channel.
Files:  src/channel.c


*** ../vim-8.0.1080/src/channel.c   2017-09-08 20:46:55.902059559 +0200
--- src/channel.c   2017-09-09 16:21:11.604483605 +0200
***
*** 2930,2943 
  ch_close_part(channel, PART_IN);
  }
  
  /*
   * Clear the read buffer on "channel"/"part".
   */
  static void
  channel_clear_one(channel_T *channel, ch_part_T part)
  {
! jsonq_T *json_head = >ch_part[part].ch_json_head;
! cbq_T   *cb_head = >ch_part[part].ch_cb_head;
  
  while (channel_peek(channel, part) != NULL)
vim_free(channel_get(channel, part));
--- 2930,2955 
  ch_close_part(channel, PART_IN);
  }
  
+ static void
+ remove_from_writeque(writeq_T *wq, writeq_T *entry)
+ {
+ ga_clear(>wq_ga);
+ wq->wq_next = entry->wq_next;
+ if (wq->wq_next == NULL)
+   wq->wq_prev = NULL;
+ else
+   wq->wq_next->wq_prev = NULL;
+ }
+ 
  /*
   * Clear the read buffer on "channel"/"part".
   */
  static void
  channel_clear_one(channel_T *channel, ch_part_T part)
  {
! chanpart_T *ch_part = >ch_part[part];
! jsonq_T *json_head = _part->ch_json_head;
! cbq_T   *cb_head = _part->ch_cb_head;
  
  while (channel_peek(channel, part) != NULL)
vim_free(channel_get(channel, part));
***
*** 2957,2966 
remove_json_node(json_head, json_head->jq_next);
  }
  
! free_callback(channel->ch_part[part].ch_callback,
!   channel->ch_part[part].ch_partial);
! channel->ch_part[part].ch_callback = NULL;
! channel->ch_part[part].ch_partial = NULL;
  }
  
  /*
--- 2969,2981 
remove_json_node(json_head, json_head->jq_next);
  }
  
! free_callback(ch_part->ch_callback, ch_part->ch_partial);
! ch_part->ch_callback = NULL;
! ch_part->ch_partial = NULL;
! 
! while (ch_part->ch_writeque.wq_next != NULL)
!   remove_from_writeque(_part->ch_writeque,
!ch_part->ch_writeque.wq_next);
  }
  
  /*
***
*** 3719,3730 
if (entry != NULL)
{
/* Remove the entry from the write queue. */
!   ga_clear(>wq_ga);
!   wq->wq_next = entry->wq_next;
!   if (wq->wq_next == NULL)
!   wq->wq_prev = NULL;
!   else
!   wq->wq_next->wq_prev = NULL;
continue;
}
if (did_use_queue)
--- 3734,3740 
if (entry != NULL)
{
/* Remove the entry from the write queue. */
!   remove_from_writeque(wq, entry);
continue;
}
if (did_use_queue)
*** ../vim-8.0.1080/src/version.c   2017-09-09 16:34:28.867014115 +0200
--- src/version.c   2017-09-09 16:41:04.308321765 +0200
***
*** 771,772 
--- 771,774 
  {   /* Add new patch number below this line */
+ /**/
+ 1081,
  /**/

-- 
>From "know your smileys":
 %  Bike accident.  A bit far-fetched, I suppose; although...
 o  _ _ _
 _o /\_   _ \\o  (_)\__/o  (_)
   _< \_   _>(_) (_)/<_\_| \   _|/' \/
  (_)>(_) (_)(_)   (_)(_)'  _\o_

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.


Patch 8.0.1080

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1080
Problem:Memory leak for eof_chars terminal option and buffer name.
Solution:   Free job options. Free the buffer name
Files:  src/terminal.c


*** ../vim-8.0.1079/src/terminal.c  2017-09-08 20:46:55.902059559 +0200
--- src/terminal.c  2017-09-09 16:24:34.179091583 +0200
***
*** 38,43 
--- 38,44 
   * in tl_scrollback are no longer used.
   *
   * TODO:
+  * - check for memory leaks
   * - patch to use GUI or cterm colors for vterm. Yasuhiro, #2067
   * - Redirecting output does not work on MS-Windows.
   * - implement term_setsize()
***
*** 393,398 
--- 394,400 
vim_snprintf((char *)p, len, "!%s (%d)", cmd, i);
if (buflist_findname(p) == NULL)
{
+   vim_free(curbuf->b_ffname);
curbuf->b_ffname = p;
break;
}
***
*** 552,557 
--- 554,560 
  argvar[1].v_type = VAR_UNKNOWN;
  term_start(argvar, , eap->forceit);
  vim_free(tofree);
+ vim_free(opt.jo_eof_chars);
  }
  
  /*
*** ../vim-8.0.1079/src/version.c   2017-09-09 16:25:49.158576736 +0200
--- src/version.c   2017-09-09 16:33:24.771452964 +0200
***
*** 771,772 
--- 771,774 
  {   /* Add new patch number below this line */
+ /**/
+ 1080,
  /**/

-- 
Momento mori, ergo carpe diem

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.


Patch 8.0.1079

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1079
Problem:Memory leak when remote_foreground() fails.
Solution:   Free the error message.
Files:  src/evalfunc.c, src/if_xcmdsrv.c


*** ../vim-8.0.1078/src/evalfunc.c  2017-09-08 14:39:25.642102863 +0200
--- src/evalfunc.c  2017-09-09 15:01:09.769950325 +0200
***
*** 8638,8644 
--- 8638,8647 
  # endif
  {
if (r != NULL)
+   {
EMSG(r);/* sending worked but evaluation failed */
+   vim_free(r);
+   }
else
EMSG2(_("E241: Unable to send to %s"), server_name);
return;
***
*** 8698,8703 
--- 8701,8708 
  argvars[1].v_type = VAR_STRING;
  argvars[1].vval.v_string = vim_strsave((char_u *)"foreground()");
  argvars[2].v_type = VAR_UNKNOWN;
+ rettv->v_type = VAR_STRING;
+ rettv->vval.v_string = NULL;
  remote_common(argvars, rettv, TRUE);
  vim_free(argvars[1].vval.v_string);
  # endif
*** ../vim-8.0.1078/src/if_xcmdsrv.c2017-03-19 21:20:45.885034380 +0100
--- src/if_xcmdsrv.c2017-09-09 15:10:17.490195547 +0200
***
*** 420,425 
--- 420,426 
{
LookupName(dpy, loosename ? loosename : name,
   /*DELETE=*/TRUE, NULL);
+   vim_free(loosename);
continue;
}
}
*** ../vim-8.0.1078/src/version.c   2017-09-09 15:28:08.146515551 +0200
--- src/version.c   2017-09-09 16:25:24.906743248 +0200
***
*** 771,772 
--- 771,774 
  {   /* Add new patch number below this line */
+ /**/
+ 1079,
  /**/

-- 
There's no place like $(HOME)!

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.


Patch 8.0.1078

2017-09-09 Fir de Conversatie Bram Moolenaar

Patch 8.0.1078
Problem:Using freed memory with ":hi Normal".
Solution:   Get "item" again after updating the table.
Files:  src/syntax.c


*** ../vim-8.0.1077/src/syntax.c2017-09-08 12:37:43.381853448 +0200
--- src/syntax.c2017-09-09 15:26:58.911020802 +0200
***
*** 7381,7386 
--- 7381,7389 
  # define is_menu_group 0
  # define is_tooltip_group 0
  #endif
+ #if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
+ int   did_highlight_changed = FALSE;
+ #endif
  
  /*
   * If no argument, list current highlighting.
***
*** 7568,7575 
  #if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
if (USE_24BIT)
highlight_gui_started();
  #endif
!   highlight_changed();
redraw_later_clear();
return;
}
--- 7571,7579 
  #if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
if (USE_24BIT)
highlight_gui_started();
+   else
  #endif
!   highlight_changed();
redraw_later_clear();
return;
}
***
*** 8174,8180 
--- 8178,8189 
  #endif
  #if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
if (USE_24BIT)
+   {
highlight_gui_started();
+   item = _TABLE()[idx]; /* table may have changed */
+   did_highlight_changed = TRUE;
+   redraw_all_later(NOT_VALID);
+   }
  #endif
}
  #ifdef FEAT_GUI_X11
***
*** 8210,8216 
  
  /* Only call highlight_changed() once, after a sequence of highlight
   * commands, and only if an attribute actually changed. */
! if (memcmp(item, _before, sizeof(item_before)) != 0)
  {
redraw_all_later(NOT_VALID);
need_highlight_changed = TRUE;
--- 8219,8229 
  
  /* Only call highlight_changed() once, after a sequence of highlight
   * commands, and only if an attribute actually changed. */
! if (memcmp(item, _before, sizeof(item_before)) != 0
! #if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
!   && !did_highlight_changed
! #endif
!)
  {
redraw_all_later(NOT_VALID);
need_highlight_changed = TRUE;
*** ../vim-8.0.1077/src/version.c   2017-09-08 20:49:47.620907422 +0200
--- src/version.c   2017-09-09 15:27:53.342623343 +0200
***
*** 771,772 
--- 771,774 
  {   /* Add new patch number below this line */
+ /**/
+ 1078,
  /**/

-- 
>From "know your smileys":
 @:-()  Elvis Presley

 /// Bram Moolenaar -- b...@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///

-- 
-- 
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.


Update to CMake runtime files

2017-09-09 Fir de Conversatie Dimitri Merejkowsky
Hi all,

Please find attached a new version of CMake's runtime files for Vim.
(both for syntax and indent)

Source: Patrick Boettcher repository:
https://github.com/pboettch/vim-cmake-syntax

License is the same as CMake, so should be compatible with Vim's.

Thanks!

-- 
-- 
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.


cmake.vim
Description: Binary data


cmake.vim
Description: Binary data


Test Failure on 8.0.1077 linux-ppc

2017-09-09 Fir de Conversatie Elimar Riesebieter
Hi all,

building 8.0.1077 on linux-ppc with clang-5.0 I get:

>From test_channel.vim:
Found errors in Test_exit_callback_interval():
First run:
function RunTheTest[24]..Test_exit_callback_interval line 29: Expected True but 
got 0
Second run:
function RunTheTest[24]..Test_exit_callback_interval line 29: Expected True but 
got 0
TEST FAILURE

On amd64/clang-5.0 all went fine.

Elimar
-- 
  Experience is something you don't get until
  just after you need it!

-- 
-- 
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.