Commit 87485d6f authored by Morten Welinder's avatar Morten Welinder

*** empty log message ***

parent ef88bd2d
......@@ -141,11 +141,14 @@ against the file name, and TYPE is nil for text, t for binary.")
(defsubst intdos (regs)
(int86 33 regs))
;;; Fix interface to (X-specific) mouse.el
(defalias 'window-frame 'ignore)
(defalias 'x-set-selection 'ignore)
(fset 'x-get-selection '(lambda (&rest rest) ""))
(fmakunbound 'font-menu-add-default)
(global-unset-key [C-down-mouse-1])
(global-unset-key [C-down-mouse-2])
(global-unset-key [C-down-mouse-3])
;; Extra stub to functions in src/frame.c
;; Emacs aborts during dump if the following don't have a doc string.
(defun window-frame (window)
"Return the frame that WINDOW resides on."
(selected-frame))
(defun raise-frame (frame)
"Raise FRAME to the top of the desktop."
nil)
(defun select-frame (frame &optional no-enter)
"Select FRAME for input events."
(selected-frame))
......@@ -842,7 +842,7 @@ selected frame."
(let ((frames (frame-list)))
(while frames
(if (eq (framep (car frames)) 'x)
(if (framep (car frames))
(let ((frame (car frames))
(rest global-face-data))
(while rest
......
......@@ -1495,7 +1495,7 @@ Advanced commands:
(make-local-variable 'Info-tag-table-marker)
(make-local-variable 'Info-history)
(make-local-variable 'Info-index-alternatives)
(if (eq (framep (selected-frame)) 'x)
(if (memq (framep (selected-frame)) '(x pc))
(progn
(make-face 'info-node)
(make-face 'info-menu-5)
......
......@@ -100,12 +100,16 @@
(progn
(load "ls-lisp")
(garbage-collect)
(load "mouse")
(garbage-collect)
(load "dos-fns")
(garbage-collect)
(load "disp-table") ; needed to setup ibm-pc char set, see internal.el
(garbage-collect)))
(garbage-collect)
(if (not (fboundp 'delete-frame))
(progn
(load "mouse")
(garbage-collect)
(load "faces")
(garbage-collect)))))
(if (fboundp 'atan) ; preload some constants and
(progn ; floating pt. functions if
(garbage-collect) ; we have float support.
......@@ -156,7 +160,8 @@
"-"
(substring name (match-end 0)))))
(if (eq system-type 'ms-dos)
(setq name (expand-file-name "../etc/DOC"))
(setq name (expand-file-name
(if (fboundp 'make-frame) "DOC-X" "DOC") "../etc"))
(setq name (concat (expand-file-name "../etc/DOC-") name))
(if (file-exists-p name)
(delete-file name))
......
......@@ -300,7 +300,7 @@ This should be bound to a mouse drag event."
(goto-char (posn-point posn)))
;; If mark is highlighted, no need to bounce the cursor.
(or (and transient-mark-mode
(eq (framep (selected-frame)) 'x))
(framep (selected-frame)))
(sit-for 1))
(push-mark)
(set-mark (point))
......
......@@ -4,7 +4,6 @@
s/^#.*//
s/^[ \f\t][ \f\t]*$//
s/^ / /
/^obj=/s!$! dosfns.o msdos.o!
s/\.h\.in/.h-in/
s!^ \./temacs! go32 temacs!
s!/bin/sh!command.com!
......@@ -19,7 +18,9 @@ s!/bin/sh!command.com!
/^M_FILE *=/s!@[^@\n]*@!m/intel386.h!
/^S_FILE *=/s!@[^@\n]*@!s/msdos.h!
/^@SET_MAKE@$/s/@SET_MAKE@//
/^.\${libsrc}make-docfile.*>/s!make-docfile!make-docfile -o ../etc/DOC!
/^.\${libsrc}make-doc/s!>.*$!!
/^.\${libsrc}make-docfile/s!make-docfile!make-docfile -o ../etc/DOC!
/^.\${libsrc}make-docfile/s/\$/go32 $/
/^[ ]*$/d
/^temacs:/s/prefix-args//
/^ #/d
......@@ -3,7 +3,9 @@
# ----------------------------------------------------------------------
/^#undef LISP_FLOAT_TYPE *$/s/undef/define/
/^#undef GNU_MALLOC *$/s/undef/define/
# To use the djgpp malloc, deactivate the following line and active the next
/^#undef REL_ALLOC *$/s/undef/define/
# /^#define GNU_MALLOC *$/s/GNU_MALLOC/SYSTEM_MALLOC/
/^#undef HAVE_SYS_TIMEB_H *$/s/undef/define/
/^#undef HAVE_SYS_TIME_H *$/s/undef/define/
# /^#undef HAVE_UNISTD_H *$/s/undef/define/
......@@ -23,8 +25,10 @@
/^#undef HAVE_FREXP *$/s/undef/define/
/^#undef HAVE_FTIME *$/s/undef/define/
/^#undef HAVE_STRERROR *$/s/undef/define/
/^#undef HAVE_MKTIME *$/s/undef/define/
s/^#define USER_FULL_NAME .*$/#define USER_FULL_NAME (getenv ("NAME"))/
s/^#undef STACK_DIRECTION *$/#define STACK_DIRECTION -1/
s/^#undef EMACS_CONFIGURATION *$/#define EMACS_CONFIGURATION "i386-unknown-msdos"/
s/^#undef EMACS_CONFIG_OPTIONS *$/#define EMACS_CONFIG_OPTIONS "-"/
s!^#undef config_opsysfile *$!#define config_opsysfile "s/msdos.h"!
s!^#undef config_machfile *$!#define config_machfile "m/intel386.h"!
......@@ -455,6 +455,17 @@ ALL_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_MACHINE LD_SWITCH_SITE $(LDFLAGS)
#define MKTIME_OBJ mktime.o
#endif
#ifdef MSDOS
#ifdef HAVE_X_WINDOWS
#define MSDOS_OBJ dosfns.o msdos.o
#else
#define MSDOS_OBJ dosfns.o msdos.o xfaces.o xmenu.o
#endif
#else
#define MSDOS_OBJ
#endif
/* lastfile must follow all files
whose initialized data areas should be dumped as pure by dump-emacs. */
obj= dispnew.o frame.o scroll.o xdisp.o window.o \
......@@ -468,7 +479,7 @@ obj= dispnew.o frame.o scroll.o xdisp.o window.o \
abbrev.o syntax.o UNEXEC mocklisp.o bytecode.o \
process.o callproc.o \
region-cache.o \
doprnt.o strftime.o MKTIME_OBJ GETLOADAVG_OBJ
doprnt.o strftime.o MKTIME_OBJ GETLOADAVG_OBJ MSDOS_OBJ
/* Object files used on some machine or other.
These go in the DOC file on all machines
......@@ -551,7 +562,7 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(allocaobj) $(widgetobj)
#endif
#ifdef MSDOS
#define MSDOS_SUPPORT ${lispdir}ls-lisp.elc ${lispdir}disp-tab.elc ${lispdir}dos-fns.elc ${lispdir}mouse.elc
#define MSDOS_SUPPORT ${lispdir}ls-lisp.elc ${lispdir}disp-tab.elc ${lispdir}dos-fns.elc ${lispdir}mouse.elc ${lispdir}faces.elc
#else
#define MSDOS_SUPPORT
#endif
......@@ -808,6 +819,7 @@ dispnew.o: dispnew.c commands.h frame.h window.h buffer.h dispextern.h \
termchar.h termopts.h termhooks.h cm.h disptab.h systty.h systime.h $(config_h)
doc.o: doc.c $(config_h) paths.h buffer.h keyboard.h
doprnt.o: doprnt.c $(config_h)
dosfns.o: buffer.h termchar.h termhooks.h frame.h msdos.h dosfns.h $(config_h)
editfns.o: editfns.c window.h buffer.h systime.h INTERVAL_SRC $(config_h)
emacs.o: emacs.c commands.h systty.h syssignal.h process.h INTERVAL_SRC $(config_h)
fileio.o: fileio.c window.h buffer.h systime.h INTERVAL_SRC $(config_h)
......@@ -825,6 +837,8 @@ keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
lastfile.o: lastfile.c $(config_h)
macros.o: macros.c window.h buffer.h commands.h macros.h $(config_h)
malloc.o: malloc.c $(config_h)
msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h \
termopts.h frame.h window.h $(config_h)
mktime.o: mktime.c $(config_h)
gmalloc.o: gmalloc.c $(config_h)
ralloc.o: ralloc.c $(config_h)
......
......@@ -64,9 +64,11 @@ and this notice must be preserved on all copies. */
/* Define if netdb.h declares h_errno. */
#undef HAVE_H_ERRNO
/* If we're using any sort of window system, define MULTI_FRAME. */
/* If we're using any sort of window system, define some consequences. */
#ifdef HAVE_X_WINDOWS
#define MULTI_FRAME
#define HAVE_FACES
#define HAVE_MOUSE
#endif
/* Define USE_TEXT_PROPERTIES to support visual and other properties
......
......@@ -17,13 +17,22 @@ You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef _DISPEXTERN_H_
#define _DISPEXTERN_H_
/* Nonzero means last display completed and cursor is really at
cursX, cursY. Zero means it was preempted. */
extern int display_completed;
#ifdef HAVE_X_WINDOWS
#include <X11/Xlib.h>
#endif
#ifdef MSDOS
#include "msdos.h"
#endif
#ifdef HAVE_FACES
struct face
{
/* If this is non-zero, it is a GC we can use without modification
......@@ -62,7 +71,7 @@ typedef struct face *FACE;
#define FACE_STIPPLE(f) ((f)->stipple)
#define FACE_UNDERLINE_P(f) ((f)->underline)
#else /* Not X */
#else /* not HAVE_FACES */
typedef int FACE;
......@@ -73,7 +82,8 @@ typedef int FACE;
#define FACE_HIGHLIGHT(f) ((f) & 0x1)
#define FACE_UNDERLINE(f) ((f) & 0x2)
#endif /* Not X */
#endif /* not HAVE_FACES */
/* This structure is used for the actual display of text on a frame.
......@@ -164,3 +174,5 @@ struct frame_glyphs
extern void get_display_line ();
extern Lisp_Object sit_for ();
#endif /* not _DISPEXTERN_H_ */
......@@ -121,13 +121,15 @@ Lisp_Object Vstandard_display_table;
int cursor_in_echo_area;
/* The currently selected frame.
In a single-frame version, this variable always remains 0. */
In a single-frame version, this variable always holds the address of
the_only_frame. */
FRAME_PTR selected_frame;
/* A frame which is not just a minibuffer, or 0 if there are no such
frames. This is usually the most recent such frame that was
selected. In a single-frame version, this variable always remains 0. */
selected. In a single-frame version, this variable always holds
the address of the_only_frame. */
FRAME_PTR last_nonminibuf_frame;
/* In a single-frame version, the information that would otherwise
......@@ -1086,7 +1088,7 @@ direct_output_for_insert (g)
{
int face = 0;
#ifdef HAVE_X_WINDOWS
#ifdef HAVE_FACES
int dummy;
if (FRAME_X_P (frame))
......
......@@ -137,6 +137,37 @@ REGISTERS should be a vector produced by `make-register' and\n\
return regs;
}
#ifndef HAVE_X_WINDOWS
/* Later we might want to control the mouse interface with this function,
e.g., with respect to non-80 column screen modes. */
DEFUN ("msdos-mouse-p", Fmsdos_mouse_p, Smsdos_mouse_p, 0, 0, 0, "\
Report whether a mouse is present.")
()
{
if (have_mouse)
return Qt;
else
return Qnil;
}
DEFUN ("set-mouse-position", Fset_mouse_position, Sset_mouse_position, 3, 3, 0,
"Move the mouse pointer to the center of character cell (X,Y) in FRAME.\n\
WARNING: If you use this under X windows,\n\
you should call `unfocus-frame' afterwards.")
(frame, x, y)
Lisp_Object frame, x, y;
{
mouse_moveto (XINT (x), XINT (y));
}
/* Function to translate colour names to integers. See lisp/term/pc-win.el
for its definition. */
Lisp_Object Qmsdos_color_translate;
#endif
int dos_country_code;
int dos_codepage;
Lisp_Object Vdos_version;
......@@ -148,7 +179,9 @@ init_dosfns ()
_go32_dpmi_seginfo info;
_go32_dpmi_registers dpmiregs;
#ifndef SYSTEM_MALLOC
get_lim_data (); /* why the hell isn't this called elsewhere? */
#endif
regs.x.ax = 0x3000;
intdos (&regs, &regs);
......@@ -195,6 +228,13 @@ syms_of_dosfns ()
defsubr (&Smode25);
defsubr (&Smode4350);
defsubr (&Sint86);
#ifndef HAVE_X_WINDOWS
defsubr (&Smsdos_mouse_p);
defsubr (&Sset_mouse_position);
Qmsdos_color_translate = intern ("msdos-color-translate");
staticpro (&Qmsdos_color_translate);
#endif
DEFVAR_INT ("dos-country-code", &dos_country_code,
"The country code returned by Dos when Emacs was started.\n\
......
......@@ -21,3 +21,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
extern int dos_country_code;
extern int dos_codepage;
extern Lisp_Object Vdos_version;
#ifndef HAVE_X_WINDOWS
extern Lisp_Object Qmsdos_color_translate;
#endif
......@@ -64,7 +64,14 @@ init_editfns ()
#endif /* not CANNOT_DUMP */
pw = (struct passwd *) getpwuid (getuid ());
#ifdef MSDOS
/* We let the real user name default to "root" because that's quite
accurate on MSDOG and because it lets Emacs find the init file.
(The DVX libraries override the Djgpp libraries here.) */
Vuser_real_name = build_string (pw ? pw->pw_name : "root");
#else
Vuser_real_name = build_string (pw ? pw->pw_name : "unknown");
#endif
/* Get the effective user name, by consulting environment variables,
or the effective uid if those are unset. */
......@@ -483,19 +490,30 @@ If POS is out of range, the value is nil.")
return val;
}
DEFUN ("user-login-name", Fuser_login_name, Suser_login_name, 0, 0, 0,
DEFUN ("user-login-name", Fuser_login_name, Suser_login_name, 0, 1, 0,
"Return the name under which the user logged in, as a string.\n\
This is based on the effective uid, not the real uid.\n\
Also, if the environment variable LOGNAME or USER is set,\n\
that determines the value of this function.")
()
that determines the value of this function.\n\n\
If optional argument UID is an integer, return the login name of the user\n\
with that uid, or nil if there is no such user.")
(uid)
Lisp_Object uid;
{
struct passwd *pw;
/* Set up the user name info if we didn't do it before.
(That can happen if Emacs is dumpable
but you decide to run `temacs -l loadup' and not dump. */
if (INTEGERP (Vuser_name))
init_editfns ();
return Vuser_name;
if (NILP (uid))
return Vuser_name;
CHECK_NUMBER (uid, 0);
pw = (struct passwd *) getpwuid (XINT (uid));
return (pw ? build_string (pw->pw_name) : Qnil);
}
DEFUN ("user-real-login-name", Fuser_real_login_name, Suser_real_login_name,
......
......@@ -787,6 +787,11 @@ Usage: %s [-t term] [--terminal term] [-nw] [--no-windows] [--batch]\n\
#endif /* HAVE_X_MENU */
#endif /* HAVE_X_WINDOWS */
#if defined (MSDOS) && !defined (HAVE_X_WINDOWS)
syms_of_xfaces ();
syms_of_xmenu ();
#endif
#ifdef SYMS_SYSTEM
SYMS_SYSTEM;
#endif
......
......@@ -753,7 +753,13 @@ See also the function `substitute-in-file-name'.")
The EQ test avoids infinite recursion. */
if (! NILP (defalt) && !EQ (defalt, name)
/* This saves time in a common case. */
#ifdef MSDOS
&& (XSTRING (defalt)->size < 3
|| XSTRING (defalt)->data[1] != ':'
|| XSTRING (defalt)->data[2] != '/'))
#else
&& XSTRING (defalt)->data[0] != '/')
#endif
{
struct gcpro gcpro1;
......
......@@ -24,6 +24,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "frame.h"
#include "termhooks.h"
#include "window.h"
#ifdef MSDOS
#include "msdos.h"
#endif
#ifdef MULTI_FRAME
......@@ -95,7 +98,8 @@ extern Lisp_Object Fredirect_frame_focus ();
DEFUN ("framep", Fframep, Sframep, 1, 1, 0,
"Return non-nil if OBJECT is a frame.\n\
Value is t for a termcap frame (a character-only terminal),\n\
`x' for an Emacs frame that is really an X window.\n\
`x' for an Emacs frame that is really an X window,\n\
`pc' for a direct-write MS-DOS frame.\n\
Also see `live-frame-p'.")
(object)
Lisp_Object object;
......@@ -108,6 +112,7 @@ Also see `live-frame-p'.")
return Qt;
case output_x_window:
return Qx;
/* The `pc' case is in the Fframep below. */
default:
abort ();
}
......@@ -1855,6 +1860,8 @@ DEFUN ("selected-frame", Fselected_frame, Sselected_frame, 0, 0, 0,
0)
()
{
/* For your possible information, this code is unfolded into the
second WINDOW_FRAME in frame.h. */
Lisp_Object tem;
XSETFASTINT (tem, 0);
return tem;
......@@ -1888,6 +1895,10 @@ DEFUN ("framep", Fframep, Sframep, 1, 1, 0,
(object)
Lisp_Object object;
{
#ifdef MSDOS
if (FRAME_X_P (object))
return intern ("pc");
#endif
return Qnil;
}
......@@ -2029,6 +2040,22 @@ DEFUN ("mouse-position", Fmouse_position, Smouse_position, 0, 0, 0,
0)
()
{
#ifdef HAVE_MOUSE
if (mouse_position_hook)
{
FRAME_PTR f;
Lisp_Object lispy_dummy;
enum scroll_bar_part party_dummy;
Lisp_Object x, y;
unsigned long long_dummy;
(*mouse_position_hook) (&f,
&lispy_dummy, &party_dummy,
&x, &y,
&long_dummy);
return Fcons (Fselected_frame (), Fcons (x, y));
}
#endif
return Fcons (Qnil, Fcons (Qnil, Qnil));
}
......@@ -2068,6 +2095,22 @@ DEFUN ("frame-parameters", Fframe_parameters, Sframe_parameters, 0, 1, 0,
return Qnil;
alist = Qnil;
#ifdef MSDOS
if (FRAME_X_P (f))
{
static char *colornames[16] =
{
"black", "blue", "green", "cyan", "red", "magenta", "brown",
"lightgray", "darkgray", "lightblue", "lightgreen", "lightcyan",
"lightred", "lightmagenta", "yellow", "white"
};
store_in_alist (&alist, intern ("foreground-color"),
build_string (colornames[FRAME_FOREGROUND_PIXEL (f)]));
store_in_alist (&alist, intern ("background-color"),
build_string (colornames[FRAME_BACKGROUND_PIXEL (f)]));
}
#endif
store_in_alist (&alist, intern ("font"), build_string ("default"));
store_in_alist (&alist, Qname, build_string ("emacs"));
store_in_alist (&alist, Qheight, make_number (FRAME_HEIGHT (f)));
store_in_alist (&alist, Qwidth, make_number (FRAME_WIDTH (f)));
......@@ -2087,6 +2130,10 @@ DEFUN ("modify-frame-parameters", Fmodify_frame_parameters,
(frame, alist)
Lisp_Object frame, alist;
{
#ifdef MSDOS
if (FRAME_X_P (frame))
IT_set_frame_parameters (XFRAME (frame), alist);
#endif
return Qnil;
}
......@@ -2100,6 +2147,15 @@ DEFUN ("frame-live-p", Fframe_live_p, Sframe_live_p, 1, 1, 0,
return Qt;
}
DEFUN ("frame-list", Fframe_list, Sframe_list, 0, 0, 0,
/* Don't confuse make-docfile by having two doc strings for this function.
make-docfile does not pay attention to #if, for good reason! */
0)
()
{
return Fcons (Fselected_frame (), Qnil);
}
syms_of_frame ()
{
Qheight = intern ("height");
......@@ -2141,6 +2197,18 @@ syms_of_frame ()
defsubr (&Sframe_parameters);
defsubr (&Smodify_frame_parameters);
defsubr (&Sframe_live_p);
defsubr (&Sframe_list);
#ifdef MSDOS
/* A comment in dispnew.c says the_only_frame is not protected. */
the_only_frame.face_alist = Qnil;
staticpro (&the_only_frame.face_alist);
the_only_frame.menu_bar_items = Qnil;
staticpro (&the_only_frame.menu_bar_items);
the_only_frame.menu_bar_vector = Qnil;
staticpro (&the_only_frame.menu_bar_vector);
the_only_frame.menu_bar_items = menu_bar_items (Qnil);
#endif
}
keys_of_frame ()
......
......@@ -37,7 +37,7 @@ extern int message_buf_print;
having miscellaneous random variables scattered about. */
enum output_method
{ output_termcap, output_x_window };
{ output_termcap, output_x_window, output_msdos_raw };
struct frame
{
......@@ -382,23 +382,35 @@ extern Lisp_Object Vterminal_frame;
/* These definitions are used in a single-frame version of Emacs. */
#define FRAME_PTR int
/* A frame we use to store all the data concerning the screen when we
don't have multiple frames. Remember, if you store any data in it
which needs to be protected from GC, you should staticpro that
element explicitly. */
extern struct frame the_only_frame;
extern EMACS_INT selected_frame;
extern EMACS_INT last_nonminibuf_frame;
typedef struct frame *FRAME_PTR;
#ifdef __GNUC__
/* A function call for always getting 0 is overkill, so... */
#define WINDOW_FRAME(w) ({ Lisp_Object tem; XSETFASTINT (tem, 0); tem; })
#else
#define WINDOW_FRAME(w) (Fselected_frame ())
#endif
#define XSETFRAME(p, v) (p = WINDOW_FRAME (***bogus***))
#define XFRAME(frame) (&the_only_frame)
#define XFRAME(f) selected_frame
#define WINDOW_FRAME(w) selected_frame
extern FRAME_PTR selected_frame;
extern FRAME_PTR last_nonminibuf_frame;
#define FRAME_LIVE_P(f) 1
#ifdef MSDOS
/* The following definitions could also be used in the non-MSDOS case,
but the constants below lead to better code. */
#define FRAME_TERMCAP_P(f) (the_only_frame.output_method == output_termcap)
#define FRAME_X_P(f) (the_only_frame.output_method != output_termcap)
#else
#define FRAME_TERMCAP_P(f) 1
#define FRAME_X_P(f) 0
#endif
#define FRAME_MINIBUF_ONLY_P(f) 0
#define FRAME_HAS_MINIBUF_P(f) 1
#define FRAME_CURRENT_GLYPHS(f) (the_only_frame.current_glyphs)
......@@ -455,7 +467,7 @@ extern EMACS_INT last_nonminibuf_frame;
`for' loop which traverses Vframe_list using LIST_VAR and
FRAME_VAR. */
#define FOR_EACH_FRAME(list_var, frame_var) \
for (list_var = Qt; XSETFASTINT (frame_var, selected_frame), ! NILP (list_var); list_var = Qnil)
for (list_var = Qt; frame_var = WINDOW_FRAME (***bogus***), ! NILP (list_var); list_var = Qnil)
#endif /* not MULTI_FRAME */
......
......@@ -2228,7 +2228,7 @@ kbd_buffer_get_event ()
}
#endif
#if defined(MULTI_FRAME) || defined(HAVE_MOUSE)
#if defined (MULTI_FRAME) || defined (HAVE_MOUSE)
/* If we didn't decide to make a switch-frame event, go ahead and
return a mouse-motion event. */
if (NILP (obj))
......@@ -2617,7 +2617,7 @@ make_lispy_event (event)
/ sizeof (lispy_function_keys[0])));
break;
#if defined(MULTI_FRAME) || defined(HAVE_MOUSE)
#if defined (MULTI_FRAME) || defined (HAVE_MOUSE)
/* A mouse click. Figure out where it is, decide whether it's
a press, click or drag, and build the appropriate structure. */
case mouse_click:
......@@ -2861,7 +2861,7 @@ make_lispy_event (event)
}
}
#if defined(MULTI_FRAME) || defined(HAVE_MOUSE)
#if defined (MULTI_FRAME) || defined (HAVE_MOUSE)
static Lisp_Object
make_lispy_movement (frame, bar_window, part, x, y, time)
......@@ -3430,7 +3430,6 @@ gobble_input (expected)
sigsetmask (mask);
}
else
#endif
#ifdef POLL_FOR_INPUT
if (read_socket_hook && !interrupt_input && poll_suppress_count == 0)
{
......@@ -3440,6 +3439,7 @@ gobble_input (expected)
sigsetmask (mask);
}
else
#endif
#endif
read_avail_input (expected);
#endif
......@@ -4058,8 +4058,7 @@ read_char_x_menu_prompt (nmaps, maps, prev_event, used_mouse_menu)
if (mapno >= nmaps)
return Qnil;
#ifdef HAVE_X_WINDOWS
#ifdef HAVE_X_MENU
#if (defined (HAVE_X_WINDOWS) && defined (HAVE_X_MENU)) || defined (MSDOS)
/* If we got to this point via a mouse click,
use a real menu for mouse selection. */
if (EVENT_HAS_PARAMETERS (prev_event))
......@@ -4091,8 +4090,7 @@ read_char_x_menu_prompt (nmaps, maps, prev_event, used_mouse_menu)
*used_mouse_menu = 1;
return value;
}
#endif /* HAVE_X_MENU */
#endif /* HAVE_X_WINDOWS */
#endif /* (HAVE_X_WINDOWS && HAVE_X_MENU) || MSDOS */
return Qnil ;
}
......
......@@ -697,7 +697,7 @@ typedef unsigned char UCHAR;
pretty quickly. */
#define GLYPH unsigned int
#ifdef HAVE_X_WINDOWS
#ifdef HAVE_FACES
/* The FAST macros assume that we already know we're in an X window. */