summaryrefslogtreecommitdiff
path: root/libcons/vcons-input.c
diff options
context:
space:
mode:
authorMarco Gerards <marco@gnu.org>2005-01-06 21:53:26 +0000
committerMarco Gerards <marco@gnu.org>2005-01-06 21:53:26 +0000
commitf7cecd976b196288bd734eace2acff798a36513f (patch)
tree5e1015cbb3742b8167b4b53f395f273c4352503e /libcons/vcons-input.c
parent38fc4e4d1cef98a8b3d60b717647a9c65d91307f (diff)
2005-01-06 Marco Gerards <metgerards@student.han.nl>
* Makefile (SRCS): Add `vcons-move-mouse.c' and `vcons-event.c'. * cons.h (mouse_movement): New enum. (mouse_button): Likewise. (mouse_event): New struct. (mouse_event_t): New type. (cons_vcons_set_mousecursor_pos): New prototype. (cons_vcons_set_mousecursor_status): Likewise. (cons_vcons_move_mouse): Likewise. * file-changed.c (cons_S_file_changed): Generate the `CONS_EVT_OUTPUT' event, in case there was output. * opts-std-startup.c (OPT_MOUSE_SHOW, OPT_MOUSE_HIDE) (OPT_MOUSE_SENS, DEFAULT_MOUSE_SENS, DEFAULT_MOUSE_SENS_STRING): New macros. (_cons_show_mouse, _cons_hide_mouse, _cons_mouse_sens): New variables. (startup_options): Add the options `--mouse-show-on', `--mouse-hide-on' and `--mouse-sensitivity'. (parse_startup_opt): Parse the options that were added to `startup_options' using the new local function `parse_events'. * priv.h (CONS_EVT_MOUSE_MOVE, CONS_EVT_MOUSE_BUTTON) (CONS_EVT_KEYPRESS, CONS_EVT_OUTPUT): New macros. (_cons_show_mouse, _cons_hide_mouse, _cons_mouse_sens): New declarations. (_cons_vcons_input): New prototype. (_cons_vcons_console_event): Likewise. * vcons-event.c: New file. * vcons-move-mouse.c: Likewise. * vcons-input.c (_cons_vcons_input): New function. (cons_vcons_input): Rewritten to use _cons_vcons_input and report the `CONS_EVT_KEYPRESS' event. * vcons-refresh.c: Include "priv.h". (cons_vcons_refresh): Report the `CONS_EVT_OUTPUT' event. * vcons-scrollback.c: Include "priv.h". (cons_vcons_scrollback): Report the `CONS_EVT_OUTPUT' event.
Diffstat (limited to 'libcons/vcons-input.c')
-rw-r--r--libcons/vcons-input.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/libcons/vcons-input.c b/libcons/vcons-input.c
index 95f2b972..e008b9c9 100644
--- a/libcons/vcons-input.c
+++ b/libcons/vcons-input.c
@@ -1,5 +1,5 @@
/* vcons-input.c - Add input to a virtual console.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
Written by Marcus Brinkmann.
This file is part of the GNU Hurd.
@@ -24,18 +24,12 @@
#include "cons.h"
#include "priv.h"
-/* Enter SIZE bytes from the buffer BUF into the virtual console
- VCONS. */
+/* Non-locking version of cons_vcons_input. */
error_t
-cons_vcons_input (vcons_t vcons, char *buf, size_t size)
+_cons_vcons_input (vcons_t vcons, char *buf, size_t size)
{
int ret;
- mutex_lock (&vcons->lock);
-
- if (vcons->scrolling && _cons_jump_down_on_input)
- _cons_vcons_scrollback (vcons, CONS_SCROLL_ABSOLUTE_LINE, 0);
-
do
{
ret = write (vcons->input, buf, size);
@@ -47,8 +41,24 @@ cons_vcons_input (vcons_t vcons, char *buf, size_t size)
}
while (size && (ret != -1 || errno == EINTR));
- mutex_unlock (&vcons->lock);
return 0;
}
+/* Enter SIZE bytes from the buffer BUF into the virtual console
+ VCONS. */
+error_t
+cons_vcons_input (vcons_t vcons, char *buf, size_t size)
+{
+ mutex_lock (&vcons->lock);
+
+ _cons_vcons_console_event (vcons, CONS_EVT_KEYPRESS);
+
+ if (vcons->scrolling && _cons_jump_down_on_input)
+ _cons_vcons_scrollback (vcons, CONS_SCROLL_ABSOLUTE_LINE, 0);
+
+ _cons_vcons_input (vcons, buf, size);
+
+ mutex_unlock (&vcons->lock);
+ return 0;
+}