To: Will Day <
[email protected]>
Cc: VIM Development Mailing List <
[email protected]>
Subject: patch 5.4.x2 (was: patch: BeOS paste/acquire_sem_etc() problems)
In-Reply-To: <
[email protected]>
Fcc: outbox
From: Bram Moolenaar <
[email protected]>
------------
Will Day wrote:
> Attached is a patch to fix a problem I've been having with pasting in vim
> 5.4 under BeOS R4.5/x86.
Thanks for fixing this. I was already wondering if someone was using Vim on
BeOS these days.
Since os_beos.c is in the extra archive, this will be an "x" patch.
Patch 5.4.x2
Problem: BeOS: When pasting text, one character was moved to the end.
Solution: Re-enable the BeOS code in fill_input_buf(), and fix timing out
with acquire_sem_etc(). (Will Day)
Files: src/os_beos.c, src/ui.c
*** ../vim-5.4/src/os_beos.c Sun Jul 25 22:02:17 1999
--- src/os_beos.c Sun Aug 8 14:04:49 1999
***************
*** 186,198 ****
if (tmo == 0)
tmo = 1.0;
} else {
- tmo = B_INFINITE_TIMEOUT;
check_for_bebox();
}
#if TRY_ABORT
release_sem(character_wanted);
#endif
! acquired = acquire_sem_etc(character_present, 1, B_TIMEOUT, tmo);
if (acquired == B_NO_ERROR) {
if (charcount > 0) {
add_to_input_buf(&charbuf, 1);
--- 186,200 ----
if (tmo == 0)
tmo = 1.0;
} else {
check_for_bebox();
}
#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);
*** ../vim-5.4/src/ui.c Sun Jul 25 22:02:19 1999
--- src/ui.c Sun Aug 8 13:53:18 1999
***************
*** 1245,1261 ****
* If we can't get any, and there isn't any in the buffer, we give up and
* exit Vim.
*/
! /* make sure we have all macros defined... */
! # if defined(__BEOS__)
! # ifndef B_BEOS_VERSION_4_5
! # define B_BEOS_VERSION 4_5 0x0450
! # endif
! # endif
! /* Genki (R4.5) doesn't seem to like the following (exits immediately on
! * startup)
! *
[email protected] Jul 99
! */
! # if defined(__BEOS__) && B_BEOS_VERSION < B_BEOS_VERSION_4_5
/*
* On the BeBox version (for now), all input is secretly performed within
* beos_select() which is called from RealWaitForChar().
--- 1245,1251 ----
* 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().
--
DENNIS: Look, strange women lying on their backs in ponds handing out
swords ... that's no basis for a system of government. Supreme
executive power derives from a mandate from the masses, not from some
farcical aquatic ceremony.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
--/-/---- Bram Moolenaar ----
[email protected] ----
[email protected] ---\-\--
\ \ www.vim.org/iccf www.moolenaar.net www.vim.org / /