* s/ms-w32.h (MULTI_KBOARD): Remove.

* xterm.c:
* xselect.c:
* xfns.c:
* window.c:
* w32term.c:
* w32fns.c:
* terminal.c:
* termhooks.h:
* term.c:
* sysdep.c:
* keyboard.h:
* keyboard.c:
* frame.h:
* frame.c:
* frame.c: Remove references to MULTI_KBOARD, it is now the
default.
* config.in: Regenerate.

* config.nt (MULTI_KBOARD): Remove.

* configure.in (MULTI_KBOARD): Remove.
This commit is contained in:
Dan Nicolaescu 2008-07-31 02:47:32 +00:00
parent a36abf0ef3
commit 69ab3201ca
23 changed files with 35 additions and 134 deletions

View file

@ -1,3 +1,7 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* configure.in (MULTI_KBOARD): Remove.
2008-07-30 Dan Nicolaescu <dann@ics.uci.edu>
* configure.in (DO_BLOCK_INPUT): Remove, unused.

View file

@ -235,7 +235,6 @@ MAXPATHLEN
MAX_PRINT_CHARS
MIN_PTY_KERNEL_VERSION -- only used on Mac
MODE_LINE_BINARY_TEXT
MULTI_KBOARD
MUST_UNDEF__STDC__
NARROWPROTO
NEED_BSDTTY

12
configure vendored
View file

@ -18679,13 +18679,11 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <sys/types.h> /* for off_t */
#include <stdio.h>
#include <stdio.h>
int
main ()
{
int (*fp) (FILE *, off_t, int) = fseeko;
return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
;
return 0;
}
@ -18725,13 +18723,11 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#define _LARGEFILE_SOURCE 1
#include <sys/types.h> /* for off_t */
#include <stdio.h>
#include <stdio.h>
int
main ()
{
int (*fp) (FILE *, off_t, int) = fseeko;
return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
;
return 0;
}

View file

@ -2541,16 +2541,9 @@ AH_BOTTOM([
/* If we're using X11/Carbon/GNUstep, define some consequences. */
#if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
#define HAVE_WINDOW_SYSTEM
#define MULTI_KBOARD
#define HAVE_MOUSE
#endif
/* Multi-tty support relies on MULTI_KBOARD. It seems safe to turn it
on unconditionally. */
#ifndef MULTI_KBOARD
#define MULTI_KBOARD
#endif
/* Sadly for now, GNUstep dump does not work. */
#ifdef NS_IMPL_GNUSTEP
#define CANNOT_DUMP

View file

@ -1,3 +1,7 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* config.nt (MULTI_KBOARD): Remove.
2008-07-23 Jason Rumney <jasonr@gnu.org>
* configure.bat: New option --profile.

View file

@ -81,7 +81,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* If we're using any sort of window system, define some consequences. */
#ifdef HAVE_X_WINDOWS
#define HAVE_WINDOW_SYSTEM
#define MULTI_KBOARD
#define HAVE_MOUSE
#endif

View file

@ -1,3 +1,24 @@
2008-07-31 Dan Nicolaescu <dann@ics.uci.edu>
* s/ms-w32.h (MULTI_KBOARD): Remove.
* xterm.c:
* xselect.c:
* xfns.c:
* window.c:
* w32term.c:
* w32fns.c:
* terminal.c:
* termhooks.h:
* term.c:
* sysdep.c:
* keyboard.h:
* keyboard.c:
* frame.h:
* frame.c:
* frame.c: Remove references to MULTI_KBOARD, it is now the
default.
* config.in: Regenerate.
2008-07-30 Jason Rumney <jasonr@gnu.org>
* w32font.h (struct w32font_info): Use unicode version of textmetrics.

View file

@ -979,16 +979,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* If we're using X11/Carbon/GNUstep, define some consequences. */
#if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
#define HAVE_WINDOW_SYSTEM
#define MULTI_KBOARD
#define HAVE_MOUSE
#endif
/* Multi-tty support relies on MULTI_KBOARD. It seems safe to turn it
on unconditionally. */
#ifndef MULTI_KBOARD
#define MULTI_KBOARD
#endif
/* Sadly for now, GNUstep dump does not work. */
#ifdef NS_IMPL_GNUSTEP
#define CANNOT_DUMP

View file

@ -433,11 +433,9 @@ make_frame_without_minibuffer (mini_window, kb, display)
if (!NILP (mini_window))
CHECK_LIVE_WINDOW (mini_window);
#ifdef MULTI_KBOARD
if (!NILP (mini_window)
&& FRAME_KBOARD (XFRAME (XWINDOW (mini_window)->frame)) != kb)
error ("Frame and minibuffer must be on the same terminal");
#endif
/* Make a frame containing just a root window. */
f = make_frame (0);
@ -1513,10 +1511,8 @@ But FORCE inhibits this too. */)
kb = NULL;
Fdelete_terminal (tmp, NILP (force) ? Qt : force);
}
#ifdef MULTI_KBOARD
else
kb = terminal->kboard;
#endif
}
/* If we've deleted the last_nonminibuf_frame, then try to find

View file

@ -498,11 +498,7 @@ struct frame
unsigned long foreground_pixel;
};
#ifdef MULTI_KBOARD
#define FRAME_KBOARD(f) ((f)->terminal->kboard)
#else
#define FRAME_KBOARD(f) (&the_only_kboard)
#endif
/* Return a pointer to the image cache of frame F. */
#define FRAME_IMAGE_CACHE(F) ((F)->terminal->image_cache)

View file

@ -95,14 +95,10 @@ int interrupt_input_pending;
#define KBD_BUFFER_SIZE 4096
#ifdef MULTI_KBOARD
KBOARD *initial_kboard;
KBOARD *current_kboard;
KBOARD *all_kboards;
int single_kboard;
#else
KBOARD the_only_kboard;
#endif
/* Non-nil disable property on a command means
do not execute it; call disabled-command-function's value instead. */
@ -635,9 +631,7 @@ static void save_getcjmp ();
static void restore_getcjmp P_ ((jmp_buf));
static Lisp_Object apply_modifiers P_ ((int, Lisp_Object));
static void clear_event P_ ((struct input_event *));
#ifdef MULTI_KBOARD
static Lisp_Object restore_kboard_configuration P_ ((Lisp_Object));
#endif
static SIGTYPE interrupt_signal P_ ((int signalnum));
static void handle_interrupt P_ ((void));
static void timer_start_idle P_ ((void));
@ -1031,7 +1025,6 @@ recursive_edit_unwind (buffer)
static void
any_kboard_state ()
{
#ifdef MULTI_KBOARD
#if 0 /* Theory: if there's anything in Vunread_command_events,
it will right away be read by read_key_sequence,
and then if we do switch KBOARDS, it will go into the side
@ -1045,7 +1038,6 @@ any_kboard_state ()
Vunread_command_events = Qnil;
#endif
single_kboard = 0;
#endif
}
/* Switch to the single-kboard state, making current_kboard
@ -1054,9 +1046,7 @@ any_kboard_state ()
void
single_kboard_state ()
{
#ifdef MULTI_KBOARD
single_kboard = 1;
#endif
}
#endif
@ -1067,10 +1057,8 @@ void
not_single_kboard_state (kboard)
KBOARD *kboard;
{
#ifdef MULTI_KBOARD
if (kboard == current_kboard)
single_kboard = 0;
#endif
}
/* Maintain a stack of kboards, so other parts of Emacs
@ -1089,7 +1077,6 @@ void
push_kboard (k)
struct kboard *k;
{
#ifdef MULTI_KBOARD
struct kboard_stack *p
= (struct kboard_stack *) xmalloc (sizeof (struct kboard_stack));
@ -1098,13 +1085,11 @@ push_kboard (k)
kboard_stack = p;
current_kboard = k;
#endif
}
void
pop_kboard ()
{
#ifdef MULTI_KBOARD
struct terminal *t;
struct kboard_stack *p = kboard_stack;
int found = 0;
@ -1125,7 +1110,6 @@ pop_kboard ()
}
kboard_stack = p->next;
xfree (p);
#endif
}
/* Switch to single_kboard mode, making current_kboard the only KBOARD
@ -1142,7 +1126,6 @@ void
temporarily_switch_to_single_kboard (f)
struct frame *f;
{
#ifdef MULTI_KBOARD
int was_locked = single_kboard;
if (was_locked)
{
@ -1167,7 +1150,6 @@ temporarily_switch_to_single_kboard (f)
single_kboard = 1;
record_unwind_protect (restore_kboard_configuration,
(was_locked ? Qt : Qnil));
#endif
}
#if 0 /* This function is not needed anymore. */
@ -1181,7 +1163,6 @@ record_single_kboard_state ()
}
#endif
#ifdef MULTI_KBOARD
static Lisp_Object
restore_kboard_configuration (was_locked)
Lisp_Object was_locked;
@ -1199,7 +1180,6 @@ restore_kboard_configuration (was_locked)
}
return Qnil;
}
#endif
/* Handle errors that are not handled at inner levels
@ -1249,10 +1229,8 @@ cmd_error (data)
Vinhibit_quit = Qnil;
#if 0 /* This shouldn't be necessary anymore. --lorentey */
#ifdef MULTI_KBOARD
if (command_loop_level == 0 && minibuf_level == 0)
any_kboard_state ();
#endif
#endif
return make_number (0);
@ -1532,9 +1510,7 @@ command_loop_1 ()
int prev_modiff = 0;
struct buffer *prev_buffer = NULL;
#if 0 /* This shouldn't be necessary anymore. --lorentey */
#ifdef MULTI_KBOARD
int was_locked = single_kboard;
#endif
#endif
int already_adjusted = 0;
@ -1987,10 +1963,8 @@ command_loop_1 ()
&& NILP (current_kboard->Vprefix_arg))
finalize_kbd_macro_chars ();
#if 0 /* This shouldn't be necessary anymore. --lorentey */
#ifdef MULTI_KBOARD
if (!was_locked)
any_kboard_state ();
#endif
#endif
}
}
@ -2780,7 +2754,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
if (!NILP (Vinhibit_quit))
Vquit_flag = Qnil;
#ifdef MULTI_KBOARD
{
KBOARD *kb = FRAME_KBOARD (XFRAME (selected_frame));
if (kb != current_kboard)
@ -2808,7 +2781,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
return make_number (-2); /* wrong_kboard_jmpbuf */
}
}
#endif
goto non_reread;
}
@ -2984,7 +2956,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
}
}
#ifdef MULTI_KBOARD
/* If current_kboard's side queue is empty check the other kboards.
If one of them has data that we have not yet seen here,
switch to it and process the data waiting for it.
@ -3006,7 +2977,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
return make_number (-2); /* wrong_kboard_jmpbuf */
}
}
#endif
wrong_kboard:
@ -3036,7 +3006,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
c = kbd_buffer_get_event (&kb, used_mouse_menu, end_time);
restore_getcjmp (save_jump);
#ifdef MULTI_KBOARD
if (! NILP (c) && (kb != current_kboard))
{
Lisp_Object link = kb->kbd_queue;
@ -3061,7 +3030,6 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
UNGCPRO;
return make_number (-2);
}
#endif
}
/* Terminate Emacs in batch mode if at eof. */
@ -3704,7 +3672,6 @@ readable_events (flags)
/* Set this for debugging, to have a way to get out */
int stop_character;
#ifdef MULTI_KBOARD
static KBOARD *
event_to_kboard (event)
struct input_event *event;
@ -3724,7 +3691,6 @@ event_to_kboard (event)
else
return FRAME_KBOARD (XFRAME (frame));
}
#endif
Lisp_Object Vthrow_on_input;
@ -3774,7 +3740,6 @@ kbd_buffer_store_event_hold (event, hold_quit)
if (c == quit_char)
{
#ifdef MULTI_KBOARD
KBOARD *kb = FRAME_KBOARD (XFRAME (event->frame_or_window));
struct input_event *sp;
@ -3798,7 +3763,6 @@ kbd_buffer_store_event_hold (event, hold_quit)
}
return;
}
#endif
if (hold_quit)
{
@ -4109,13 +4073,9 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time)
last_event_timestamp = event->timestamp;
#ifdef MULTI_KBOARD
*kbp = event_to_kboard (event);
if (*kbp == 0)
*kbp = current_kboard; /* Better than returning null ptr? */
#else
*kbp = &the_only_kboard;
#endif
obj = Qnil;
@ -9399,14 +9359,11 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
else
{
{
#ifdef MULTI_KBOARD
KBOARD *interrupted_kboard = current_kboard;
struct frame *interrupted_frame = SELECTED_FRAME ();
#endif
key = read_char (NILP (prompt), nmaps,
(Lisp_Object *) submaps, last_nonmenu_event,
&used_mouse_menu, NULL);
#ifdef MULTI_KBOARD
if (INTEGERP (key) && XINT (key) == -2) /* wrong_kboard_jmpbuf */
{
int found = 0;
@ -9455,7 +9412,6 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
orig_keymap = get_local_map (PT, current_buffer, Qkeymap);
goto replay_sequence;
}
#endif
}
/* read_char returns t when it shows a menu and the user rejects it.
@ -11541,8 +11497,6 @@ wipe_kboard (kb)
xfree (kb->kbd_macro_buffer);
}
#ifdef MULTI_KBOARD
/* Free KB and memory referenced from it. */
void
@ -11571,8 +11525,6 @@ delete_kboard (kb)
xfree (kb);
}
#endif /* MULTI_KBOARD */
void
init_keyboard ()
{
@ -11599,9 +11551,7 @@ init_keyboard ()
internal_last_event_frame = Qnil;
Vlast_event_frame = internal_last_event_frame;
#ifdef MULTI_KBOARD
current_kboard = initial_kboard;
#endif
/* Re-initialize the keyboard again. */
wipe_kboard (current_kboard);
init_kboard (current_kboard);
@ -12444,14 +12394,12 @@ Help functions bind this to allow help on disabled menu items
and tool-bar buttons. */);
Venable_disabled_menus_and_buttons = Qnil;
#ifdef MULTI_KBOARD
/* Create the initial keyboard. */
initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
init_kboard (initial_kboard);
/* Vwindow_system is left at t for now. */
initial_kboard->next_kboard = all_kboards;
all_kboards = initial_kboard;
#endif
}
void

View file

@ -171,7 +171,6 @@ struct kboard
char echo_after_prompt;
};
#ifdef MULTI_KBOARD
/* Temporarily used before a frame has been opened. */
extern KBOARD *initial_kboard;
@ -188,12 +187,6 @@ extern KBOARD *all_kboards;
/* Nonzero in the single-kboard state, 0 in the any-kboard state. */
extern int single_kboard;
#else
extern KBOARD the_only_kboard;
#define current_kboard (&the_only_kboard)
#define all_kboards (&the_only_kboard)
#define single_kboard 1
#endif
/* Total number of times read_char has returned. */
extern int num_input_events;

View file

@ -206,8 +206,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define HAVE_MOUSE 1
#define HAVE_H_ERRNO 1
#define MULTI_KBOARD 1
#ifdef HAVE_NTGUI
#define HAVE_WINDOW_SYSTEM 1
#define HAVE_MENUS 1

View file

@ -3176,8 +3176,7 @@ rename (from, to)
#endif
#ifdef HPUX
#ifndef HAVE_PERROR
#if defined(HPUX) && !defined(HAVE_PERROR)
/* HPUX curses library references perror, but as far as we know
it won't be called. Anyway this definition will do for now. */
@ -3185,9 +3184,7 @@ rename (from, to)
perror ()
{
}
#endif /* not HAVE_PERROR */
#endif /* HPUX */
#endif /* HPUX and not HAVE_PERROR */
#ifndef HAVE_DUP2

View file

@ -3571,7 +3571,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
tty->TF_teleray = tgetflag ("xt");
#endif /* !WINDOWSNT */
#ifdef MULTI_KBOARD
terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
init_kboard (terminal->kboard);
terminal->kboard->Vwindow_system = Qnil;
@ -3585,10 +3584,7 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
current_kboard = terminal->kboard;
#ifndef WINDOWSNT
term_get_fkeys (address, terminal->kboard);
#endif
#endif
#ifndef WINDOWSNT
/* Get frame size from system, or else from termcap. */
{
int height, width;

View file

@ -342,10 +342,8 @@ struct terminal
times. */
char *name;
#ifdef MULTI_KBOARD
/* The terminal's keyboard object. */
struct kboard *kboard;
#endif
#ifdef HAVE_WINDOW_SYSTEM
/* Cache of images. */

View file

@ -284,13 +284,11 @@ delete_terminal (struct terminal *terminal)
xfree (terminal->terminal_coding);
terminal->terminal_coding = NULL;
#ifdef MULTI_KBOARD
if (terminal->kboard && --terminal->kboard->reference_count == 0)
{
delete_kboard (terminal->kboard);
terminal->kboard = NULL;
}
#endif
}
Lisp_Object Qrun_hook_with_args;
@ -535,9 +533,7 @@ init_initial_terminal (void)
initial_terminal = create_terminal ();
initial_terminal->type = output_initial;
initial_terminal->name = xstrdup ("initial_terminal");
#ifdef MULTI_KBOARD
initial_terminal->kboard = initial_kboard;
#endif
initial_terminal->delete_terminal_hook = &delete_initial_terminal;
/* All other hooks are NULL. */

View file

@ -4290,11 +4290,7 @@ This function is an internal primitive--use `make-frame' instead. */)
if (EQ (display, Qunbound))
display = Qnil;
dpyinfo = check_x_display_info (display);
#ifdef MULTI_KBOARD
kb = dpyinfo->terminal->kboard;
#else
kb = &the_only_kboard;
#endif
if (!dpyinfo->terminal->name)
error ("Terminal is not live, can't create new frames on it");
@ -5411,11 +5407,7 @@ x_create_tip_frame (dpyinfo, parms, text)
this frame has a specified name. */
Vx_resource_name = Vinvocation_name;
#ifdef MULTI_KBOARD
kb = dpyinfo->terminal->kboard;
#else
kb = &the_only_kboard;
#endif
/* Get the name of the frame to use for resource lookup. */
name = x_get_arg (dpyinfo, parms, Qname, "name", "Name", RES_TYPE_STRING);
@ -5464,9 +5456,7 @@ x_create_tip_frame (dpyinfo, parms, text)
image_cache_refcount = FRAME_IMAGE_CACHE (f)->refcount;
dpyinfo_refcount = dpyinfo->reference_count;
#endif /* GLYPH_DEBUG */
#ifdef MULTI_KBOARD
FRAME_KBOARD (f) = kb;
#endif
f->output_data.w32->parent_desc = FRAME_W32_DISPLAY_INFO (f)->root_window;
f->output_data.w32->explicit_parent = 0;

View file

@ -6108,7 +6108,6 @@ w32_create_terminal (struct w32_display_info *dpyinfo)
terminal->memory_below_frame = 0; /* We don't remember what scrolls
off the bottom. */
#ifdef MULTI_KBOARD
/* We don't yet support separate terminals on W32, so don't try to share
keyboards between virtual terminals that are on the same physical
terminal like X does. */
@ -6123,7 +6122,6 @@ w32_create_terminal (struct w32_display_info *dpyinfo)
if (current_kboard == initial_kboard)
current_kboard = terminal->kboard;
terminal->kboard->reference_count++;
#endif
return terminal;
}

View file

@ -2533,7 +2533,6 @@ void
replace_buffer_in_all_windows (buffer)
Lisp_Object buffer;
{
#ifdef MULTI_KBOARD
Lisp_Object tail, frame;
/* A single call to window_loop won't do the job
@ -2541,9 +2540,6 @@ replace_buffer_in_all_windows (buffer)
So loop manually over frames, and handle each one. */
FOR_EACH_FRAME (tail, frame)
window_loop (UNSHOW_BUFFER, buffer, 1, frame);
#else
window_loop (UNSHOW_BUFFER, buffer, 1, Qt);
#endif
}
/* Set the height of WINDOW and all its inferiors. */

View file

@ -3143,11 +3143,7 @@ This function is an internal primitive--use `make-frame' instead. */)
if (EQ (display, Qunbound))
display = Qnil;
dpyinfo = check_x_display_info (display);
#ifdef MULTI_KBOARD
kb = dpyinfo->terminal->kboard;
#else
kb = &the_only_kboard;
#endif
if (!dpyinfo->terminal->name)
error ("Terminal is not live, can't create new frames on it");

View file

@ -1015,7 +1015,6 @@ x_handle_selection_clear (event)
TRACE0 ("x_handle_selection_clear");
#ifdef MULTI_KBOARD
/* If the new selection owner is also Emacs,
don't clear the new selection. */
BLOCK_INPUT;
@ -1034,7 +1033,6 @@ x_handle_selection_clear (event)
}
}
UNBLOCK_INPUT;
#endif
selection_symbol = x_atom_to_symbol (display, selection);

View file

@ -9859,7 +9859,6 @@ static int x_initialized;
static int x_session_initialized;
#endif
#ifdef MULTI_KBOARD
/* Test whether two display-name strings agree up to the dot that separates
the screen number from the server number. */
static int
@ -9906,7 +9905,6 @@ same_x_server (name1, name2)
&& (*name1 == '.' || *name1 == '\0')
&& (*name2 == '.' || *name2 == '\0'));
}
#endif
/* Count number of set bits in mask and number of bits to shift to
get to the first bit. With MASK 0x7e0, *BITS is set to 6, and *OFFSET
@ -10105,7 +10103,6 @@ x_term_init (display_name, xrm_option, resource_name)
terminal = x_create_terminal (dpyinfo);
#ifdef MULTI_KBOARD
{
struct x_display_info *share;
Lisp_Object tail;
@ -10142,7 +10139,6 @@ x_term_init (display_name, xrm_option, resource_name)
}
terminal->kboard->reference_count++;
}
#endif
/* Put this display on the chain. */
dpyinfo->next = x_display_list;