summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-04-23 15:41:49 +0200
committerBram Moolenaar <Bram@vim.org>2020-04-23 15:41:49 +0200
commitbeae4084fd34c56d43787be73588070ddc474251 (patch)
tree33f63f17814157cb1a4c2d5bb9cf3f006dd32ed2
parent95a467e7eeab664a71446e320d328d1d7c52a35a (diff)
downloadvim-git-beae4084fd34c56d43787be73588070ddc474251.tar.gz
patch 8.2.0622: Haiku: GUI does not compilev8.2.0622
Problem: Haiku: GUI does not compile. Solution: Various fixes. (Emir Sari, closes #5961)
-rw-r--r--Filelist1
-rw-r--r--README.md5
-rw-r--r--READMEdir/README_haiku.txt13
-rw-r--r--src/Makefile4
-rw-r--r--src/beval.h4
-rw-r--r--src/gui_haiku.cc12
-rw-r--r--src/proto/gui_haiku.pro2
-rw-r--r--src/version.c2
8 files changed, 33 insertions, 10 deletions
diff --git a/Filelist b/Filelist
index 422a0d0ba..581a72d1a 100644
--- 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 \
diff --git a/README.md b/README.md
index 4e3d8433c..d42680c6b 100644
--- a/README.md
+++ b/README.md
@@ -26,8 +26,8 @@ All commands are given with normal keyboard characters, so those who can type
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.
diff --git a/READMEdir/README_haiku.txt b/READMEdir/README_haiku.txt
new file mode 100644
index 000000000..7eeb0bbf3
--- /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 b110f9113..19453c742 100644
--- 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
# }}}
diff --git a/src/beval.h b/src/beval.h
index f44620038..433238964 100644
--- 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
diff --git a/src/gui_haiku.cc b/src/gui_haiku.cc
index b7ecf6440..f26e9035a 100644
--- 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, int grey)
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;
}
diff --git a/src/proto/gui_haiku.pro b/src/proto/gui_haiku.pro
index 4d4c7d30d..f39223331 100644
--- 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);
diff --git a/src/version.c b/src/version.c
index e446e6bfa..7bfe8b050 100644
--- 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,