Patch 8.2.0849
Problem: BeOS code is not maintained and probably unused.
Solution: Remove the BeOS code. (Emir Sari, closes #5817)
Files: Filelist, src/Makefile, src/
configure.ac, src/auto/configure,
src/evalfunc.c, src/normal.c, src/os_beos.c, src/os_beos.h,
src/os_beos.rsrc, src/os_unix.c, src/proto.h,
src/proto/
os_beos.pro, src/pty.c, src/screen.c, src/term.c,
src/testdir/test_functions.vim, src/ui.c, src/vim.h
*** ../vim-8.2.0848/Filelist 2020-05-30 17:05:57.028692410 +0200
--- Filelist 2020-05-30 17:56:31.625218353 +0200
***************
*** 673,682 ****
src/Make_mint.mak \
src/infplist.xml \
src/link.390 \
- src/os_beos.c \
- src/os_beos.h \
- src/os_beos.rsrc \
- src/proto/
os_beos.pro \
src/os_mint.h \
src/
os_vms_fix.com \
src/toolbar.phi \
--- 673,678 ----
*** ../vim-8.2.0848/src/Makefile 2020-05-30 17:05:57.028692410 +0200
--- src/Makefile 2020-05-30 17:56:31.625218353 +0200
***************
*** 2026,2032 ****
RSRC_DIR = os_mac_rsrc
PRO_MANUAL =
os_amiga.pro os_win32.pro \
!
os_mswin.pro winclip.pro os_beos.pro os_vms.pro $(PERL_PRO)
# Default target is making the executable and tools
all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
--- 2026,2032 ----
RSRC_DIR = os_mac_rsrc
PRO_MANUAL =
os_amiga.pro os_win32.pro \
!
os_mswin.pro winclip.pro os_vms.pro $(PERL_PRO)
# Default target is making the executable and tools
all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
***************
*** 2193,2202 ****
$(CPROTO) -DWIN32 -UHAVE_CONFIG_H $< > proto/$@
echo "/* vim: set ft=c : */" >> proto/$@
-
os_beos.pro: os_beos.c
- $(CPROTO) -D__BEOS__ -UHAVE_CONFIG_H $< > proto/$@
- echo "/* vim: set ft=c : */" >> proto/$@
-
os_vms.pro: os_vms.c
# must use os_vms_conf.h for auto/config.h
mv auto/config.h auto/config.h.save
--- 2193,2198 ----
***************
*** 3394,3402 ****
objects/optionstr.o: optionstr.c
$(CCC_NF) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) $(RUBY_CFLAGS) $(TCL_CFLAGS) $(ALL_CFLAGS) -o $@ optionstr.c
- objects/os_beos.o: os_beos.c
- $(CCC) -o $@ os_beos.c
-
objects/os_qnx.o: os_qnx.c
$(CCC) -o $@ os_qnx.c
--- 3390,3395 ----
*** ../vim-8.2.0848/src/
configure.ac 2020-05-07 18:37:00.124512605 +0200
--- src/
configure.ac 2020-05-30 17:56:31.625218353 +0200
***************
*** 146,159 ****
OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
- dnl Check for BeOS, which needs an extra source file
- AC_MSG_CHECKING(for BeOS)
- case `uname` in
- BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
- BEOS=yes; AC_MSG_RESULT(yes);;
- *) BEOS=no; AC_MSG_RESULT(no);;
- esac
-
AC_MSG_CHECKING(for Haiku)
case `uname` in
Haiku) HAIKU=yes; AC_MSG_RESULT(yes);;
--- 146,151 ----
*** ../vim-8.2.0848/src/auto/configure 2020-05-07 18:37:00.124512605 +0200
--- src/auto/configure 2020-05-30 18:07:15.406341066 +0200
***************
*** 4533,4548 ****
OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BeOS" >&5
- $as_echo_n "checking for BeOS... " >&6; }
- case `uname` in
- BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
- BEOS=yes; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; };;
- *) BEOS=no; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; };;
- esac
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Haiku" >&5
$as_echo_n "checking for Haiku... " >&6; }
case `uname` in
--- 4533,4538 ----
*** ../vim-8.2.0848/src/evalfunc.c 2020-05-30 17:05:57.032692393 +0200
--- src/evalfunc.c 2020-05-30 17:58:57.604524479 +0200
***************
*** 3387,3399 ****
0
#endif
},
- {"beos",
- #ifdef __BEOS__
- 1
- #else
- 0
- #endif
- },
{"haiku",
#ifdef __HAIKU__
1
--- 3387,3392 ----
*** ../vim-8.2.0848/src/normal.c 2020-05-29 22:41:36.925691046 +0200
--- src/normal.c 2020-05-30 17:56:31.629218330 +0200
***************
*** 3385,3398 ****
{
if (!checkclearop(cap->oap))
{
- #if defined(__BEOS__) && !USE_THREAD_FOR_INPUT_WITH_TIMEOUT
- /*
- * Right now, the BeBox doesn't seem to have an easy way to detect
- * window resizing, so we cheat and make the user detect it
- * manually with CTRL-L instead
- */
- ui_get_shellsize();
- #endif
#ifdef FEAT_SYN_HL
// Clear all syntax states to force resyncing.
syn_stack_free_all(curwin->w_s);
--- 3385,3390 ----
*** ../vim-8.2.0848/src/os_beos.c 2019-12-05 20:15:31.000000000 +0100
--- src/os_beos.c 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,200 ****
- /* vi:set ts=8 sts=4 sw=4 noet:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- * BeBox port Copyright 1997 by Olaf Seibert.
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- * See README.txt for an overview of the Vim source code.
- */
- /*
- * os_beos.c Additional stuff for BeOS (rest is in os_unix.c)
- */
-
- #include <float.h>
- #include <termios.h>
- #ifndef PROTO
- # include <kernel/OS.h>
- #endif
-
- #include "vim.h"
-
- #if USE_THREAD_FOR_INPUT_WITH_TIMEOUT
-
- #ifdef PROTO // making prototypes on Unix
- #define sem_id int
- #define thread_id int
- #endif
-
- char_u charbuf;
- signed char charcount;
- sem_id character_present;
- sem_id character_wanted;
- thread_id read_thread_id;
-
- #define TRY_ABORT 0 // This code does not work so turn it off.
-
- #if TRY_ABORT
- static void
- mostly_ignore(int sig)
- {
- }
- #endif
-
- static long
- read_thread(void *dummy)
- {
- signal(SIGINT, SIG_IGN);
- signal(SIGQUIT, SIG_IGN);
- #if TRY_ABORT
- signal(SIGUSR1, mostly_ignore);
- #endif
-
- for (;;) {
- if (acquire_sem(character_wanted) != B_NO_ERROR)
- break;
- charcount = read(read_cmd_fd, &charbuf, 1);
- release_sem(character_present);
- }
-
- return 0;
- }
-
- void
- beos_cleanup_read_thread(void)
- {
- if (character_present > 0)
- delete_sem(character_present);
- character_present = 0;
- if (read_thread_id > 0)
- kill_thread(read_thread_id);
- read_thread_id = 0;
- }
-
- #endif
-
- /*
- * select() emulation. Hopefully, in DR9 there will be something
- * useful supplied by the system. ... Alas, not. Not in AAPR, nor
- * in PR or even PR2... R3 then maybe? I don't think so!
- */
-
- int
- beos_select(int nbits,
- struct fd_set *rbits,
- struct fd_set *wbits,
- struct fd_set *ebits,
- struct timeval *timeout)
- {
- bigtime_t tmo;
-
- if (nbits == 0) {
- // select is purely being used for delay
- snooze(timeout->tv_sec * 1e6 + timeout->tv_usec);
- return 0;
- }
- #if 0
- /*
- * This does not seem to work either. Reads here are not supposed to
- * block indefinitely, yet they do. This is most annoying.
- */
- if (FD_ISSET(0, rbits)) {
- char cbuf[1];
- int count;
- struct termios told;
- struct termios tnew;
- tcgetattr(0, &told);
- tnew = told;
- tnew.c_lflag &= ~ICANON;
- tnew.c_cc[VMIN] = 0;
- tnew.c_cc[VTIME] = timeout->tv_sec * 10 + timeout->tv_usec / 100000;
- tcsetattr(0, TCSANOW, &tnew);
-
- count = read(0, &cbuf, sizeof(cbuf));
- tcsetattr(0, TCSANOW, &told);
- if (count > 0) {
- add_to_input_buf(&cbuf[0], count);
- return 1;
- }
- return 0;
- }
- #endif
- #if USE_THREAD_FOR_INPUT_WITH_TIMEOUT
- /*
- * Check if the operation is really on stdin...
- */
- if (FD_ISSET(read_cmd_fd, rbits))
- {
- int acquired;
-
- /*
- * Is this the first time through?
- * Then start up the thread and initialise the semaphores.
- */
- if (character_present == 0) {
- character_present = create_sem(0, "vim character_present");
- character_wanted = create_sem(1, "vim character_wanted");
- read_thread_id = spawn_thread(read_thread, "vim async read",
- B_NORMAL_PRIORITY, NULL);
- atexit(beos_cleanup_read_thread);
- resume_thread(read_thread_id);
- }
-
- // timeout == NULL means "indefinitely"
- if (timeout) {
- tmo = timeout->tv_sec * 1e6 + timeout->tv_usec;
- // 0 means "don't wait, which is impossible to do exactly.
- if (tmo == 0)
- tmo = 1.0;
- }
- #if TRY_ABORT
- release_sem(character_wanted);
- #endif
- if (timeout)
- acquired = acquire_sem_etc(character_present, 1, B_TIMEOUT, tmo);
- else
- acquired = acquire_sem(character_present);
- if (acquired == B_NO_ERROR) {
- if (charcount > 0) {
- add_to_input_buf(&charbuf, 1);
- #if !TRY_ABORT
- release_sem(character_wanted);
- #endif
-
- return 1;
- } else {
- #if !TRY_ABORT
- release_sem(character_wanted);
- #endif
-
- return 0;
- }
- }
- #if TRY_ABORT
- else {
- /*
- * Timeout occurred. Break the read() call by sending
- * a signal. Problem: it may be just read()ing it now.
- * Therefore we still have to finish the handshake with
- * the thread and maybe remember the character.
- */
- kill(read_thread_id, SIGUSR1);
- /*
- * If some other error occurred, don't hang now.
- * (We will most likely hang later anyway...)
- */
- if (acquired == B_TIMED_OUT)
- acquire_sem(character_present);
- if (charcount > 0) {
- add_to_input_buf(&charbuf, 1);
- return 1;
- }
- return 0;
- }
- #endif
- }
- #endif
-
- return 0;
- }
-
--- 0 ----
*** ../vim-8.2.0848/src/os_beos.h 2019-11-30 18:47:31.000000000 +0100
--- src/os_beos.h 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,27 ****
- /* vi:set ts=8 sts=4 sw=4 noet:
- *
- * VIM - Vi IMproved by Bram Moolenaar
- * BeBox port by Olaf Seibert
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- */
-
- /*
- * os_beos.h
- */
-
- #undef USE_SYSTEM
- #define USE_THREAD_FOR_INPUT_WITH_TIMEOUT 1
- #define USE_TERM_CONSOLE
-
- #define HAVE_DROP_FILE
-
- #undef BEOS_DR8
- #define BEOS_PR_OR_BETTER
-
- // select emulation
-
- #ifndef PROTO
- # include <net/socket.h> // for typedefs and #defines only
- #endif
--- 0 ----
*** ../vim-8.2.0848/src/os_beos.rsrc 2010-05-15 13:04:12.000000000 +0200
--- src/os_beos.rsrc 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,33 ****
- Joy!resfü iPì ¼àì ¶Hþ 4631,4641 ****
if (!pipe_error) // pty or pipe opened or not used
{
SIGSET_DECL(curset)
-
- # if defined(__BEOS__) && USE_THREAD_FOR_INPUT_WITH_TIMEOUT
- beos_cleanup_read_thread();
- # endif
-
BLOCK_SIGNALS(&curset);
pid = fork(); // maybe we should use vfork()
if (pid == -1)
--- 4628,4633 ----
***************
*** 6075,6085 ****
* "interrupted" (if not NULL) is set to TRUE when no character is available
* but something else needs to be done.
*/
- #if defined(__BEOS__)
- int
- #else
static int
- #endif
RealWaitForChar(int fd, long msec, int *check_for_gpm UNUSED, int *interrupted)
{
int ret;
--- 6067,6073 ----
*** ../vim-8.2.0848/src/proto.h 2020-05-30 17:05:57.032692393 +0200
--- src/proto.h 2020-05-30 17:56:31.629218330 +0200
***************
*** 49,57 ****
# ifdef VMS
# include "
os_vms.pro"
# endif
- # ifdef __BEOS__
- # include "
os_beos.pro"
- # endif
# ifdef __QNX__
# include "
os_qnx.pro"
# endif
--- 49,54 ----
*** ../vim-8.2.0848/src/proto/
os_beos.pro 2019-12-12 12:55:42.000000000 +0100
--- src/proto/
os_beos.pro 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,4 ****
- /* os_beos.c */
- void beos_cleanup_read_thread(void);
- int beos_select(int nbits, struct fd_set *rbits, struct fd_set *wbits, struct fd_set *ebits, struct timeval *timeout);
- /* vim: set ft=c : */
--- 0 ----
*** ../vim-8.2.0848/src/pty.c 2020-02-26 16:15:31.072386953 +0100
--- src/pty.c 2020-05-30 17:56:31.629218330 +0200
***************
*** 386,392 ****
static char PtyProto[] = "/dev/ptym/ptyXY";
static char TtyProto[] = "/dev/pty/ttyXY";
# else
! # if defined (__BEOS__) || defined(__HAIKU__)
static char PtyProto[] = "/dev/pt/XY";
static char TtyProto[] = "/dev/tt/XY";
# else
--- 386,392 ----
static char PtyProto[] = "/dev/ptym/ptyXY";
static char TtyProto[] = "/dev/pty/ttyXY";
# else
! # ifdef(__HAIKU__)
static char PtyProto[] = "/dev/pt/XY";
static char TtyProto[] = "/dev/tt/XY";
# else
*** ../vim-8.2.0848/src/screen.c 2020-05-29 21:42:51.192004289 +0200
--- src/screen.c 2020-05-30 17:56:31.633218311 +0200
***************
*** 3868,3886 ****
type = USE_REDRAW;
else if (can_clear(T_CD) && result_empty)
type = USE_T_CD;
- #if defined(__BEOS__) && defined(BEOS_DR8)
- /*
- * USE_NL does not seem to work in Terminal of DR8 so we set T_DB="" in
- * its internal termcap... this works okay for tests which test *T_DB !=
- * NUL. It has the disadvantage that the user cannot use any :set t_*
- * command to get T_DB (back) to empty_option, only :set term=... will do
- * the trick...
- * Anyway, this hack will hopefully go away with the next OS release.
- * (Olaf Seibert)
- */
- else if (row == 0 && T_DB == empty_option
- && (line_count == 1 || *T_CDL == NUL))
- #else
else if (row == 0 && (
#ifndef AMIGA
// On the Amiga, somehow '\n' on the last line doesn't always scroll
--- 3868,3873 ----
***************
*** 3888,3894 ****
line_count == 1 ||
#endif
*T_CDL == NUL))
- #endif
type = USE_NL;
else if (*T_CDL != NUL && line_count > 1 && can_delete)
type = USE_T_CDL;
--- 3875,3880 ----
*** ../vim-8.2.0848/src/term.c 2020-05-30 17:49:21.755140563 +0200
--- src/term.c 2020-05-30 17:56:31.633218311 +0200
***************
*** 362,372 ****
{TERMCAP2KEY('*', '7'), "\233\065\065~"}, // shifted end key
# endif
! # if defined(__BEOS__) || defined(ALL_BUILTIN_TCAPS)
/*
! * almost standard ANSI terminal, default for bebox
*/
- {(int)KS_NAME, "beos-ansi"},
{(int)KS_CE, "\033[K"},
{(int)KS_CD, "\033[J"},
{(int)KS_AL, "\033[L"},
--- 362,371 ----
{TERMCAP2KEY('*', '7'), "\233\065\065~"}, // shifted end key
# endif
! # ifdef ALL_BUILTIN_TCAPS
/*
! * almost standard ANSI terminal
*/
{(int)KS_CE, "\033[K"},
{(int)KS_CD, "\033[J"},
{(int)KS_AL, "\033[L"},
***************
*** 381,393 ****
# else
{(int)KS_CDL, "\033[%dM"},
# endif
- #ifdef BEOS_PR_OR_BETTER
- # ifdef TERMINFO
- {(int)KS_CS, "\033[%i%p1%d;%p2%dr"},
- # else
- {(int)KS_CS, "\033[%i%d;%dr"}, // scroll region
- # endif
- #endif
{(int)KS_CL, "\033[H\033[2J"},
#ifdef notyet
{(int)KS_VI, "[VI]"}, // cursor invisible, VT320: CSI ? 25 l
--- 380,385 ----
***************
*** 425,433 ****
# else
{(int)KS_CRI, "\033[%dC"},
# endif
- # if defined(BEOS_DR8)
- {(int)KS_DB, ""}, // hack! see screen.c
- # endif
{K_UP, "\033[A"},
{K_DOWN, "\033[B"},
--- 417,422 ----
***************
*** 1415,1425 ****
# define DEFAULT_TERM (char_u *)"vt320"
#endif
- #ifdef __BEOS__
- # undef DEFAULT_TERM
- # define DEFAULT_TERM (char_u *)"beos-ansi"
- #endif
-
#ifdef __HAIKU__
# undef DEFAULT_TERM
# define DEFAULT_TERM (char_u *)"xterm"
--- 1404,1409 ----
***************
*** 2429,2445 ****
name = NULL; // empty name is equal to no name
term = name;
- #ifdef __BEOS__
- /*
- * TERM environment variable is normally set to 'ansi' on the Bebox;
- * Since the BeBox doesn't quite support full ANSI yet, we use our
- * own custom 'ansi-beos' termcap instead, unless the -T option has
- * been given on the command line.
- */
- if (term == NULL
- && strcmp((char *)mch_getenv((char_u *)"TERM"), "ansi") == 0)
- term = DEFAULT_TERM;
- #endif
#ifndef MSWIN
if (term == NULL)
term = mch_getenv((char_u *)"TERM");
--- 2413,2418 ----
*** ../vim-8.2.0848/src/testdir/test_functions.vim 2020-05-25 23:01:38.781393409 +0200
--- src/testdir/test_functions.vim 2020-05-30 17:56:31.633218311 +0200
***************
*** 1766,1776 ****
func Test_platform_name()
" The system matches at most only one name.
! let names = ['amiga', 'beos', 'bsd', 'hpux', 'linux', 'mac', 'qnx', 'sun', 'vms', 'win32', 'win32unix']
call assert_inrange(0, 1, len(filter(copy(names), 'has(v:val)')))
" Is Unix?
- call assert_equal(has('beos'), has('beos') && has('unix'))
call assert_equal(has('bsd'), has('bsd') && has('unix'))
call assert_equal(has('hpux'), has('hpux') && has('unix'))
call assert_equal(has('linux'), has('linux') && has('unix'))
--- 1766,1775 ----
func Test_platform_name()
" The system matches at most only one name.
! let names = ['amiga', 'bsd', 'hpux', 'linux', 'mac', 'qnx', 'sun', 'vms', 'win32', 'win32unix']
call assert_inrange(0, 1, len(filter(copy(names), 'has(v:val)')))
" Is Unix?
call assert_equal(has('bsd'), has('bsd') && has('unix'))
call assert_equal(has('hpux'), has('hpux') && has('unix'))
call assert_equal(has('linux'), has('linux') && has('unix'))
***************
*** 1782,1788 ****
if has('unix') && executable('uname')
let uname = system('uname')
- call assert_equal(uname =~? 'BeOS', has('beos'))
" GNU userland on BSD kernels (e.g., GNU/kFreeBSD) don't have BSD defined
call assert_equal(uname =~? '\%(GNU/k\w\+\)\@<!BSD\|DragonFly', has('bsd'))
call assert_equal(uname =~? 'HP-UX', has('hpux'))
--- 1781,1786 ----
*** ../vim-8.2.0848/src/ui.c 2020-03-24 21:41:38.031535404 +0100
--- src/ui.c 2020-05-30 17:56:31.633218311 +0200
***************
*** 554,560 ****
mch_suspend();
}
! #if !defined(UNIX) || !defined(SIGTSTP) || defined(PROTO) || defined(__BEOS__)
/*
* When the OS can't really suspend, call this function to start a shell.
* This is never called in the GUI.
--- 554,560 ----
mch_suspend();
}
! #if !defined(UNIX) || !defined(SIGTSTP) || defined(PROTO)
/*
* When the OS can't really suspend, call this function to start a shell.
* This is never called in the GUI.
***************
*** 912,928 ****
* If we can't get any, and there isn't any in the buffer, we give up and
* exit Vim.
*/
- # ifdef __BEOS__
- /*
- * On the BeBox version (for now), all input is secretly performed within
- * beos_select() which is called from RealWaitForChar().
- */
- while (!vim_is_input_buf_full() && RealWaitForChar(read_cmd_fd, 0, NULL))
- ;
- len = inbufcount;
- inbufcount = 0;
- # else
-
if (rest != NULL)
{
// Use remainder of previous call, starts with an invalid character
--- 912,917 ----
***************
*** 981,987 ****
if (!exit_on_error)
return;
}
- # endif
if (len <= 0 && !got_int)
read_error_exit();
if (len > 0)
--- 970,975 ----
*** ../vim-8.2.0848/src/vim.h 2020-05-24 23:00:06.444196001 +0200
--- src/vim.h 2020-05-30 17:56:31.633218311 +0200
***************
*** 220,229 ****
# include <clib/exec_protos.h>
#endif
- #ifdef __BEOS__
- # include "os_beos.h"
- #endif
-
#ifdef __HAIKU__
# include "os_haiku.h"
# define __ARGS(x) x
--- 220,225 ----
*** ../vim-8.2.0848/src/version.c 2020-05-30 17:49:21.759140547 +0200
--- src/version.c 2020-05-30 17:55:35.845493604 +0200
***************
*** 748,749 ****
--- 748,751 ----
{ /* Add new patch number below this line */
+ /**/
+ 849,
/**/
--
'Psychologist' -- Someone who looks at everyone else when
an attractive woman enters the room.
/// Bram Moolenaar -- Br...@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 ///