changeset 20134:352701a626ed v8.2.0622

patch 8.2.0622: Haiku: GUI does not compile Commit: https://github.com/vim/vim/commit/beae4084fd34c56d43787be73588070ddc474251 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Apr 23 15:41:49 2020 +0200 patch 8.2.0622: Haiku: GUI does not compile Problem: Haiku: GUI does not compile. Solution: Various fixes. (Emir Sari, closes https://github.com/vim/vim/issues/5961)
author Bram Moolenaar <Bram@vim.org>
date Thu, 23 Apr 2020 16:15:04 +0200
parents fa4ed8427c0c
children 571f632f0aa2
files Filelist README.md READMEdir/README_haiku.txt src/Makefile src/beval.h src/gui_haiku.cc src/proto/gui_haiku.pro src/version.c
diffstat 8 files changed, 33 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -607,6 +607,7 @@ SRC_AMI =	\
 
 # source files for Haiku (also in the extra archive)
 SRC_HAIKU =	\
+		README_haiku.txt \
 		src/os_haiku.h \
 		src/os_haiku.rdef \
 		src/gui_haiku.cc \
--- a/README.md
+++ b/README.md
@@ -26,8 +26,8 @@ All commands are given with normal keybo
 with ten fingers can work very fast.  Additionally, function keys can be
 mapped to commands by the user, and the mouse can be used.
 
-Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, VMS and almost all
-flavours of UNIX.  Porting to other systems should not be very difficult.
+Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, Haiku, VMS and almost
+all flavours of UNIX.  Porting to other systems should not be very difficult.
 Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
 Atari MiNT, BeOS, RISC OS and OS/2.  These are no longer maintained.
 
@@ -72,6 +72,7 @@ archive):
 	README_unix.txt		Unix
 	README_dos.txt		MS-DOS and MS-Windows
 	README_mac.txt		Macintosh
+	README_haiku.txt	Haiku
 	README_vms.txt		VMS
 
 There are other `README_*.txt` files, depending on the distribution you used.
new file mode 100644
--- /dev/null
+++ b/READMEdir/README_haiku.txt
@@ -0,0 +1,13 @@
+README_haiku.txt for version 8.2 of Vim: Vi IMproved.
+
+This file explains the installation of Vim on Haiku operating system.
+See "README.txt" for general information about Vim.
+
+Preferred (and easy) way to get Vim on Haiku is to use default Haiku
+software repository HaikuPorts. To get Vim:
+
+- Open HaikuDepot application and search for "vim" package, then install,
+- Open a Terminal and type "pkgman install vim", then follow instructions.
+
+If you prefer to install Vim from source, follow the instructions on
+"runtime/doc/os_haiku.txt", "Compiling Haiku" section.
--- a/src/Makefile
+++ b/src/Makefile
@@ -1404,8 +1404,8 @@ HAIKUGUI_TESTTARGET = gui
 HAIKUGUI_BUNDLE =
 
 # All GUI files
-ALL_GUI_SRC  = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_xmdlg.c gui_xmebw.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c
-ALL_GUI_PRO  = gui.pro gui_gtk.pro gui_motif.pro gui_xmdlg.pro gui_athena.pro gui_gtk_x11.pro gui_x11.pro gui_w32.pro gui_photon.pro
+ALL_GUI_SRC  = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_xmdlg.c gui_xmebw.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c gui_haiku.cc
+ALL_GUI_PRO  = gui.pro gui_gtk.pro gui_motif.pro gui_xmdlg.pro gui_athena.pro gui_gtk_x11.pro gui_x11.pro gui_w32.pro gui_photon.pro gui_haiku.pro
 
 # }}}
 
--- a/src/beval.h
+++ b/src/beval.h
@@ -79,6 +79,10 @@ typedef struct BalloonEvalStruct
 #ifdef FEAT_GUI_MSWIN
     void		*tofree;
 #endif
+#ifdef FEAT_GUI_HAIKU
+    int			x;
+    int			y;
+#endif
 } BalloonEval;
 
 #define EVAL_OFFSET_X 15 // displacement of beval topleft corner from pointer
--- a/src/gui_haiku.cc
+++ b/src/gui_haiku.cc
@@ -2916,6 +2916,7 @@ VimToolbar::RemoveButton(vimmenu_T *menu
 			menu->button = NULL;
 		}
 	}
+	return true;
 }
 
 	bool
@@ -2926,6 +2927,7 @@ VimToolbar::GrayButton(vimmenu_T *menu, 
 		if(index >= 0)
 			menu->button->SetEnabled(grey ? false : true);
 	}
+	return true;
 }
 
 	void
@@ -3563,7 +3565,7 @@ gui_mch_set_text_area_pos(
 		gui.vimTextArea->MoveTo(x, y);
 		gui.vimTextArea->ResizeTo(w - PEN_WIDTH, h - PEN_WIDTH);
 
-/*#ifdef FEAT_GUI_TABLINE
+#ifdef FEAT_GUI_TABLINE
 		if(gui.vimForm->TabLine() != NULL) {
 			gui.vimForm->TabLine()->ResizeTo(w, gui.vimForm->TablineHeight());
 		}
@@ -3679,7 +3681,7 @@ gui_mch_create_scrollbar(
 	}
 }
 
-#if defined(FEAT_WINDOWS) || defined(PROTO)
+#if defined(FEAT_WINDOWS) || defined(FEAT_GUI_HAIKU) || defined(PROTO)
 void
 gui_mch_destroy_scrollbar(
 		scrollbar_T	*sb)
@@ -3736,7 +3738,7 @@ gui_mch_set_blinking(
  * Stop the cursor blinking.  Show the cursor if it wasn't shown.
  */
 	void
-gui_mch_stop_blink()
+gui_mch_stop_blink(int may_call_gui_update_cursor)
 {
 	// TODO
 	if (blink_timer != 0)
@@ -3870,7 +3872,7 @@ gui_mch_get_font(
 		hl_set_font_name((char_u*)font_name);
 
 		//  Set guifont to the name of the selected font.
-		char_u* new_p_guifont = alloc(STRLEN(font_name) + 1);
+		char_u* new_p_guifont = (char_u*)alloc(STRLEN(font_name) + 1);
 		if (new_p_guifont != NULL) {
 			STRCPY(new_p_guifont, font_name);
 			vim_free(p_guifont);
@@ -4488,7 +4490,7 @@ gui_mch_wait_for_chars(
 			if (gui.in_focus)
 				gui_mch_start_blink();
 			else
-				gui_mch_stop_blink();
+				gui_mch_stop_blink(TRUE);
 			focus = gui.in_focus;
 		}
 
--- a/src/proto/gui_haiku.pro
+++ b/src/proto/gui_haiku.pro
@@ -6,7 +6,7 @@ int gui_mch_open(void);
 void gui_mch_exit(int vim_exitcode);
 int gui_mch_init_check(void);
 void gui_mch_flush(void);
-
+int gui_mch_is_blink_off(void);
 void gui_mch_new_colors(void);
 void gui_mch_set_bg_color(guicolor_T color);
 void gui_mch_set_fg_color(guicolor_T color);
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    622,
+/**/
     621,
 /**/
     620,