patch 8.2.0622: Haiku: GUI does not compile
Problem: Haiku: GUI does not compile.
Solution: Various fixes. (Emir Sari, closes #5961)
diff --git a/Filelist b/Filelist
index 422a0d0..581a72d 100644
--- a/Filelist
+++ b/Filelist
@@ -607,6 +607,7 @@
# 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 \
diff --git a/README.md b/README.md
index 4e3d843..d42680c 100644
--- a/README.md
+++ b/README.md
@@ -26,8 +26,8 @@
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 @@
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.
diff --git a/READMEdir/README_haiku.txt b/READMEdir/README_haiku.txt
new file mode 100644
index 0000000..7eeb0bb
--- /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.
diff --git a/src/Makefile b/src/Makefile
index b110f91..19453c7 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1404,8 +1404,8 @@
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
# }}}
diff --git a/src/beval.h b/src/beval.h
index f446200..4332389 100644
--- a/src/beval.h
+++ b/src/beval.h
@@ -79,6 +79,10 @@
#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
diff --git a/src/gui_haiku.cc b/src/gui_haiku.cc
index b7ecf64..f26e903 100644
--- a/src/gui_haiku.cc
+++ b/src/gui_haiku.cc
@@ -2916,6 +2916,7 @@
menu->button = NULL;
}
}
+ return true;
}
bool
@@ -2926,6 +2927,7 @@
if(index >= 0)
menu->button->SetEnabled(grey ? false : true);
}
+ return true;
}
void
@@ -3563,7 +3565,7 @@
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 @@
}
}
-#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 @@
* 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 @@
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 @@
if (gui.in_focus)
gui_mch_start_blink();
else
- gui_mch_stop_blink();
+ gui_mch_stop_blink(TRUE);
focus = gui.in_focus;
}
diff --git a/src/proto/gui_haiku.pro b/src/proto/gui_haiku.pro
index 4d4c7d3..f392233 100644
--- a/src/proto/gui_haiku.pro
+++ b/src/proto/gui_haiku.pro
@@ -6,7 +6,7 @@
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);
diff --git a/src/version.c b/src/version.c
index e446e6b..7bfe8b0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 622,
+/**/
621,
/**/
620,