diff options
Diffstat (limited to 'debian/patches/libcons_repeater.patch')
-rw-r--r-- | debian/patches/libcons_repeater.patch | 525 |
1 files changed, 0 insertions, 525 deletions
diff --git a/debian/patches/libcons_repeater.patch b/debian/patches/libcons_repeater.patch deleted file mode 100644 index 21df71d9..00000000 --- a/debian/patches/libcons_repeater.patch +++ /dev/null @@ -1,525 +0,0 @@ -Common subdirectories: ../libcons.cvs/CVS and ./CVS -diff -upN ../libcons.cvs/Makefile ./Makefile ---- libcons.cvs/Makefile 2002-09-13 23:40:10.000000000 +0000 -+++ libcons/Makefile 2004-04-02 07:44:48.000000000 +0000 -@@ -23,7 +23,7 @@ SRCS= demuxer.c init-init.c init-loop.c - dir-changed.c file-changed.c opts-std-startup.c cons-lookup.c \ - cons-switch.c vcons-remove.c vcons-add.c vcons-open.c \ - vcons-close.c vcons-destroy.c vcons-refresh.c vcons-scrollback.c \ -- vcons-input.c -+ vcons-input.c vcons-move-mouse.c vcons-event.c - LCLHDRS = priv.h mutations.h - installhdrs = cons.h - -diff -upN ../libcons.cvs/cons.h ./cons.h ---- libcons.cvs/cons.h 2003-08-16 18:06:23.000000000 +0000 -+++ libcons/cons.h 2004-04-02 07:42:20.000000000 +0000 -@@ -123,6 +123,31 @@ struct cons - int slack; - }; - -+ -+enum mouse_movement -+ { -+ MOUSE_MOVE_REL, -+ MOUSE_MOVE_ABS, -+ MOUSE_MOVE_PROC -+ }; -+ -+enum mouse_button -+ { -+ MOUSE_BUTTON_NO_OP, -+ MOUSE_BUTTON_PRESSED, -+ MOUSE_BUTTON_RELEASED -+ }; -+ -+typedef struct mouse_event -+{ -+ enum mouse_movement mouse_movement; -+ float x; -+ float y; -+ -+ enum mouse_button mouse_button; -+ int button; -+} *mouse_event_t; -+ - - /* The user must define this variable. Set this to the name of the - console client. */ -@@ -256,6 +281,14 @@ typedef enum - down. */ - int cons_vcons_scrollback (vcons_t vcons, cons_scroll_t type, float value); - -+/* Set the mouse cursor position to X, Y. VCONS is locked. */ -+error_t cons_vcons_set_mousecursor_pos (vcons_t vcons, float x, float y); -+ -+/* If STATUS is set to 0, hide the mouse cursor, otherwise show -+ it. VCONS is locked. */ -+error_t cons_vcons_set_mousecursor_status (vcons_t vcons, int status); -+ -+ - - extern const struct argp cons_startup_argp; - -@@ -286,4 +319,6 @@ void cons_vcons_destroy (void *port); - /* Redraw the virtual console VCONS, which is locked. */ - void cons_vcons_refresh (vcons_t vcons); - -+error_t cons_vcons_move_mouse (vcons_t vcons, mouse_event_t ev); -+ - #endif /* hurd/cons.h */ -diff -upN ../libcons.cvs/file-changed.c ./file-changed.c ---- libcons.cvs/file-changed.c 2003-08-02 21:43:46.000000000 +0000 -+++ libcons/file-changed.c 2004-04-02 07:02:31.000000000 +0000 -@@ -1,5 +1,5 @@ - /* file-changed.c - Handling file changed notifications. -- Copyright (C) 2002, 2003 Free Software Foundation, Inc. -+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. - Written by Marcus Brinkmann. - - This file is part of the GNU Hurd. -@@ -93,6 +93,7 @@ cons_S_file_changed (cons_notify_t notif - /* The cursor was visible before. */ - cons_vcons_set_cursor_status (vcons, CONS_CURSOR_INVISIBLE); - -+ _cons_vcons_console_event (vcons, CONSEVT_OUTPUT); - cons_vcons_update (vcons); - } - if (change.what.cursor_status) -@@ -185,6 +186,7 @@ cons_S_file_changed (cons_notify_t notif - end - size + 1, - 0, (size - vis_start) - / vcons->state.screen.width); -+ _cons_vcons_console_event (vcons, CONSEVT_OUTPUT); - cons_vcons_update (vcons); - } - vcons->state.screen.cur_line = new_cur_line; -@@ -342,6 +344,7 @@ cons_S_file_changed (cons_notify_t notif - (size - rotate) - / vcons->state.screen.width); - } -+ _cons_vcons_console_event (vcons, CONSEVT_OUTPUT); - cons_vcons_update (vcons); - } - } -diff -upN ../libcons.cvs/opts-std-startup.c ./opts-std-startup.c ---- libcons.cvs/opts-std-startup.c 2003-08-02 21:43:46.000000000 +0000 -+++ libcons/opts-std-startup.c 2004-04-02 00:35:20.000000000 +0000 -@@ -1,5 +1,5 @@ - /* opts-std-startup.c - Standard startup-time command line parser. -- Copyright (C) 1995,96,97,98,99,2001,02,2003 Free Software Foundation, Inc. -+ Copyright (C) 1995,96,97,98,99,2001,02,2003,2004 Free Software Foundation, Inc. - Written by Miles Bader <miles@gnu.org> and Marcus Brinkmann. - - This file is part of the GNU Hurd. -@@ -25,7 +25,7 @@ - #include "priv.h" - - --/* Option keys for long-only options in diskfs_common_options. */ -+/* Option keys for long-only options in argp_option. */ - #define OPT_SLACK 600 /* --slack */ - #define OPT_JUMP_DOWN_ON_INPUT 601 /* --jump-down-on-input */ - #define OPT_NO_JUMP_DOWN_ON_INPUT 602 /* --no-jump-down-on-input */ -@@ -33,13 +33,20 @@ - #define OPT_NO_JUMP_DOWN_ON_OUTPUT 604 /* --no-jump-down-on-output */ - #define OPT_VISUAL_BELL 605 /* --visual-bell */ - #define OPT_AUDIBLE_BELL 606 /* --audible-bell */ -+#define OPT_MOUSE_SHOW 607 /* --mouse-show */ -+#define OPT_MOUSE_HIDE 608 /* --mouse-hide */ -+#define OPT_MOUSE_SENS 609 /* --mouse-sensitivity */ - --/* Common value for diskfs_common_options and diskfs_default_sync_interval. */ -+/* The number of records the client is allowed to lag behind the server. */ - #define DEFAULT_SLACK 100 - #define DEFAULT_SLACK_STRING STRINGIFY(DEFAULT_SLACK) - #define STRINGIFY(x) STRINGIFY_1(x) - #define STRINGIFY_1(x) #x - -+/* The mouse sensitivity. */ -+#define DEFAULT_MOUSE_SENS 3.0 -+#define DEFAULT_MOUSE_SENS_STRING STRINGIFY(DEFAULT_SLACK) -+ - /* Number of records the client is allowed to lag behind the - server. */ - int _cons_slack = DEFAULT_SLACK; -@@ -59,6 +66,15 @@ bell_type_t _cons_visual_bell = BELL_VIS - /* The type of bell used for the audible bell. */ - bell_type_t _cons_audible_bell = BELL_AUDIBLE; - -+/* The type of events that will make the mouse cursor visible. */ -+int _cons_show_mouse = CONSEVT_MOUSEMOVE; -+ -+/* The type of events that will hide the mouse cursor. */ -+int _cons_hide_mouse = CONSEVT_KEYPRESS; -+ -+/* The mouse sensitivity. */ -+float _cons_mouse_sens = DEFAULT_MOUSE_SENS; -+ - static const struct argp_option - startup_options[] = - { -@@ -76,6 +92,15 @@ startup_options[] = - "off, visual, audible" }, - { "audible-bell", OPT_AUDIBLE_BELL, "BELL", 0, "Audible bell: on (default), " - "off, visual, audible" }, -+ { "mouse-show", OPT_MOUSE_SHOW, "EVENTS", 0, "One or more of the events" -+ " MOUSEMOVE, MOUSEBUTTON, KEYPRESS, OUTPUT (default is MOUSEMOVE), if one" -+ " of these events occur the mouse cursor will be made visible" }, -+ { "mouse-hide", OPT_MOUSE_HIDE, "EVENTS", 0, "One or more of the events" -+ " MOUSEMOVE, MOUSEBUTTON, KEYPRESS, OUTPUT (default is KEYPRESS), if one" -+ " of these events occur the mouse cursor will be hidden " }, -+ { "mouse-sensitivity", OPT_MOUSE_SENS, "SENSITIVITY", 0, "The mouse" -+ " sensitivity (default " DEFAULT_MOUSE_SENS_STRING "). A lower value" -+ " means more sensitive" }, - { 0, 0 } - }; - -@@ -86,6 +111,30 @@ static const char doc[] = "A console cli - static error_t - parse_startup_opt (int opt, char *arg, struct argp_state *state) - { -+ int parse_events (char *events) -+ { -+ char *evtstr = strdupa (events); -+ char *tok = strtok (evtstr, ","); -+ int evmask = 0; -+ -+ while (tok) -+ { -+ if (!strcasecmp ("mousemove", tok)) -+ evmask |= CONSEVT_MOUSEMOVE; -+ else if (!strcasecmp ("mousebutton", tok)) -+ evmask |= CONSEVT_MOUSEBUTTON; -+ else if (!strcasecmp ("keypress", tok)) -+ evmask |= CONSEVT_KEYPRESS; -+ else if (!strcasecmp ("output", tok)) -+ evmask |= CONSEVT_OUTPUT; -+ else -+ argp_error (state, "The event can be one of: MOUSEMOVE," -+ " MOUSEBUTTON, KEYPRESS or OUTPUT"); -+ tok = strtok (NULL, ","); -+ } -+ return evmask; -+ } -+ - switch (opt) - { - case OPT_SLACK: -@@ -131,7 +180,28 @@ parse_startup_opt (int opt, char *arg, s - argp_error (state, "The visual bell can be one of: on, off, visual, " - "audible"); - break; -- -+ -+ case OPT_MOUSE_SHOW: -+ _cons_show_mouse = parse_events (arg); -+ break; -+ -+ case OPT_MOUSE_HIDE: -+ _cons_hide_mouse = parse_events (arg); -+ break; -+ -+ case OPT_MOUSE_SENS: -+ { -+ char *tail; -+ -+ errno = 0; -+ _cons_mouse_sens = strtod (arg, &tail); -+ if (tail == NULL || tail == arg || *tail != '\0') -+ argp_error (state, "SENSITIVITY is not a number: %s", arg); -+ if (errno) -+ argp_error (state, "Overflow in argument SENSITIVITY %s", arg); -+ break; -+ } -+ - case ARGP_KEY_ARG: - if (state->arg_num > 0) - /* Too many arguments. */ -diff -upN ../libcons.cvs/priv.h ./priv.h ---- libcons.cvs/priv.h 2003-08-02 21:43:46.000000000 +0000 -+++ libcons/priv.h 2004-04-02 00:52:07.000000000 +0000 -@@ -29,6 +29,11 @@ typedef enum - BELL_AUDIBLE - } bell_type_t; - -+#define CONSEVT_MOUSEMOVE (1 << 1) -+#define CONSEVT_MOUSEBUTTON (1 << 2) -+#define CONSEVT_KEYPRESS (1 << 4) -+#define CONSEVT_OUTPUT (1 << 8) -+ - - /* Number of records the client is allowed to lag behind the - server. */ -@@ -49,11 +54,26 @@ extern bell_type_t _cons_visual_bell; - /* The type of bell used for the audible bell. */ - extern bell_type_t _cons_audible_bell; - -+/* The type of events that will make the mouse cursor visible. */ -+extern int _cons_show_mouse; -+ -+/* The type of events that will hide the mouse cursor. */ -+extern int _cons_hide_mouse; -+ -+/* The mouse sensitivity. */ -+extern float _cons_mouse_sens; -+ - - /* Non-locking version of cons_vcons_scrollback. Does also not update - the display. */ - int _cons_vcons_scrollback (vcons_t vcons, cons_scroll_t type, float value); - -+/* Non-locking version of cons_vcons_input. */ -+error_t _cons_vcons_input (vcons_t vcons, char *buf, size_t size); -+ -+/* Generate the console event EVENT for console VCONS. */ -+void _cons_vcons_console_event (vcons_t vcons, int event); -+ - - /* Called by MiG to translate ports into cons_notify_t. mutations.h - arranges for this to happen for the fs_notify interfaces. */ -diff -upN ../libcons.cvs/vcons-event.c ./vcons-event.c ---- libcons.cvs/vcons-event.c 1970-01-01 00:00:00.000000000 +0000 -+++ libcons/vcons-event.c 2004-04-02 07:39:07.000000000 +0000 -@@ -0,0 +1,31 @@ -+/* vcons-event.c - Handle console events. -+ Copyright (C) 2004 Free Software Foundation, Inc. -+ Written by Marco Gerards. -+ -+ This file is part of the GNU Hurd. -+ -+ The GNU Hurd is free software; you can redistribute it and/or -+ modify it under the terms of the GNU General Public License as -+ published by the Free Software Foundation; either version 2, or (at -+ your option) any later version. -+ -+ The GNU Hurd is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, write to the Free Software -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ -+ -+#include "cons.h" -+#include "priv.h" -+ -+void -+_cons_vcons_console_event (vcons_t vcons, int event) -+{ -+ if (_cons_show_mouse & event) -+ cons_vcons_set_mousecursor_status (vcons, 1); -+ else if (_cons_hide_mouse & event) -+ cons_vcons_set_mousecursor_status (vcons, 0); -+} -diff -upN ../libcons.cvs/vcons-input.c ./vcons-input.c ---- libcons.cvs/vcons-input.c 2002-09-13 23:53:55.000000000 +0000 -+++ libcons/vcons-input.c 2004-04-02 07:02:54.000000000 +0000 -@@ -1,5 +1,5 @@ - /* vcons-input.c - Add input to a virtual console. -- Copyright (C) 2002 Free Software Foundation, Inc. -+ Copyright (C) 2002, 2004 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 *b - } - 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, CONSEVT_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; -+} -diff -upN ../libcons.cvs/vcons-move-mouse.c ./vcons-move-mouse.c ---- libcons.cvs/vcons-move-mouse.c 1970-01-01 00:00:00.000000000 +0000 -+++ libcons/vcons-move-mouse.c 2004-07-27 07:07:34.000000000 +0000 -@@ -0,0 +1,98 @@ -+/* vcons-move-mouse.c - Catch mouse events. -+ Copyright (C) 2004 Free Software Foundation, Inc. -+ Written by Marco Gerards. -+ -+ This file is part of the GNU Hurd. -+ -+ The GNU Hurd is free software; you can redistribute it and/or -+ modify it under the terms of the GNU General Public License as -+ published by the Free Software Foundation; either version 2, or (at -+ your option) any later version. -+ -+ The GNU Hurd is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, write to the Free Software -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ -+ -+#include <errno.h> -+#include <unistd.h> -+ -+#include "cons.h" -+#include "priv.h" -+ -+static float mousepos_x; -+static float mousepos_y; -+ -+error_t -+cons_vcons_move_mouse (vcons_t vcons, mouse_event_t ev) -+{ -+ int ret; -+ char event[CONS_MOUSE_EVENT_LENGTH]; -+ uint32_t report_events = vcons->display->flags & CONS_FLAGS_TRACK_MOUSE; -+ -+ mutex_lock (&vcons->lock); -+ -+ switch (ev->mouse_movement) -+ { -+ case MOUSE_MOVE_REL: -+ mousepos_x += ((float) ev->x / _cons_mouse_sens); -+ mousepos_y += ((float) ev->y / _cons_mouse_sens); -+ break; -+ -+ case MOUSE_MOVE_PROC: -+ case MOUSE_MOVE_ABS: -+ break; -+ } -+ -+ /* Keep the mouse cursor in range of the VC. */ -+ if (mousepos_x < 0) -+ mousepos_x = 0; -+ if (mousepos_y < 0) -+ mousepos_y = 0; -+ if (mousepos_x >= (float) vcons->state.screen.width) -+ mousepos_x = vcons->state.screen.width - 1; -+ if (mousepos_y >= (float) vcons->state.screen.height) -+ mousepos_y = vcons->state.screen.height - 1; -+ -+ cons_vcons_set_mousecursor_pos (vcons, (float) mousepos_x, (float) mousepos_y); -+ -+ /* Report a mouse movement event. */ -+ if (ev->x || ev->y) -+ _cons_vcons_console_event (vcons, CONSEVT_MOUSEMOVE); -+ -+ /* Report a mouse button event. */ -+ if (ev->mouse_button != MOUSE_BUTTON_NO_OP) -+ _cons_vcons_console_event (vcons, CONSEVT_MOUSEBUTTON); -+ -+ if (report_events) -+ { -+ switch (ev->mouse_button) -+ { -+ case MOUSE_BUTTON_NO_OP: -+ break; -+ -+ case MOUSE_BUTTON_PRESSED: -+ /* Make a xterm like event string. */ -+ CONS_MOUSE_EVENT (event, ev->button, (int) mousepos_x + 1, (int) mousepos_y + 1); -+ -+ _cons_vcons_input (vcons, event, CONS_MOUSE_EVENT_LENGTH); -+ /* And send it to the server. */ -+ break; -+ -+ case MOUSE_BUTTON_RELEASED: -+ /* Make a xterm like event string. */ -+ CONS_MOUSE_EVENT (event, CONS_MOUSE_RELEASE, (int) mousepos_x + 1, (int) mousepos_y + 1); -+ -+ /* And send it to the server. */ -+ _cons_vcons_input (vcons, event, CONS_MOUSE_EVENT_LENGTH); -+ break; -+ } -+ } -+ -+ mutex_unlock (&vcons->lock); -+ return 0; -+} -diff -upN ../libcons.cvs/vcons-refresh.c ./vcons-refresh.c ---- libcons.cvs/vcons-refresh.c 2003-08-15 21:04:10.000000000 +0000 -+++ libcons/vcons-refresh.c 2004-04-02 07:03:08.000000000 +0000 -@@ -1,5 +1,5 @@ - /* vcons-refresh.c - Redraw a virtual console. -- Copyright (C) 2002, 2003 Free Software Foundation, Inc. -+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. - Written by Marcus Brinkmann. - - This file is part of the GNU Hurd. -@@ -22,6 +22,7 @@ - #include <assert.h> - - #include "cons.h" -+#include "priv.h" - - /* Redraw the virtual console VCONS, which is locked. */ - void -@@ -70,5 +71,6 @@ cons_vcons_refresh (vcons_t vcons) - cons_vcons_set_cursor_status (vcons, vcons->state.cursor.status); - cons_vcons_set_scroll_lock (vcons, vcons->state.flags - & CONS_FLAGS_SCROLL_LOCK); -+ _cons_vcons_console_event (vcons, CONSEVT_OUTPUT); - cons_vcons_update (vcons); - } -diff -upN ../libcons.cvs/vcons-scrollback.c ./vcons-scrollback.c ---- libcons.cvs/vcons-scrollback.c 2002-09-17 11:47:15.000000000 +0000 -+++ libcons/vcons-scrollback.c 2004-04-02 07:03:15.000000000 +0000 -@@ -1,5 +1,5 @@ - /* vcons-scrollback.c - Move forward and backward in the scrollback buffer. -- Copyright (C) 2002 Free Software Foundation, Inc. -+ Copyright (C) 2002, 2004 Free Software Foundation, Inc. - Written by Marcus Brinkmann. - - This file is part of the GNU Hurd. -@@ -23,6 +23,7 @@ - #include <cthreads.h> - - #include "cons.h" -+#include "priv.h" - - /* Non-locking version of cons_vcons_scrollback. Does also not update - the display. */ -@@ -155,6 +156,7 @@ cons_vcons_scrollback (vcons_t vcons, co - - mutex_lock (&vcons->lock); - ret = _cons_vcons_scrollback (vcons, type, value); -+ _cons_vcons_console_event (vcons, CONSEVT_OUTPUT); - cons_vcons_update (vcons); - mutex_unlock (&vcons->lock); - return ret; |