#include <unistd.h> /* for chdir, dup, dup2, etc. */
#include <dir.h> /* for getdisk */
#if __DJGPP__ >= 2
+#pragma pack(0) /* dir.h does a pack(4), which isn't GCC's default */
#include <fcntl.h>
#include <io.h> /* for setmode */
#include <dpmi.h> /* for __dpmi_xxx stuff */
/* A flag to control how to display unibyte 8-bit characters. */
extern int unibyte_display_via_language_environment;
-Lisp_Object Qbar, Qhbar;
+extern Lisp_Object Qcursor_type;
+extern Lisp_Object Qbar, Qhbar;
/* The screen colors of the current frame, which serve as the default
colors for newly-created frames. */
static void
clear_mouse_face (struct display_info *dpyinfo)
{
- if (! NILP (dpyinfo->mouse_face_window))
+ if (!dpyinfo->mouse_face_hidden && ! NILP (dpyinfo->mouse_face_window))
show_mouse_face (dpyinfo, 0);
dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1;
FRAME_X_DISPLAY_INFO (f)->mouse_face_defer = 0;
}
-Lisp_Object Qcursor_type;
-
static void
IT_frame_up_to_date (struct frame *f)
{
union REGS regs;
struct display_info *dpyinfo = FRAME_X_DISPLAY_INFO (SELECTED_FRAME());
EVENT_INIT (event);
-
+
#ifndef HAVE_X_WINDOWS
/* Maybe put the cursor where it should be. */
IT_cmgoto (SELECTED_FRAME());
if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight))
{
- dpyinfo->mouse_face_hidden = 1;
clear_mouse_face (dpyinfo);
+ dpyinfo->mouse_face_hidden = 1;
}
if (code >= 0x100)
for (i = 0; i < imax ; i++)
{
const char *tmp = tempdirs[i];
+ char buf[FILENAME_MAX];
if (*tmp == '$')
- tmp = getenv (tmp + 1);
+ {
+ int tmp_len;
+
+ tmp = getenv (tmp + 1);
+ if (!tmp)
+ continue;
+
+ /* Some lusers set TMPDIR=e:, probably because some losing
+ programs cannot handle multiple slashes if they use e:/.
+ e: fails in `access' below, so we interpret e: as e:/. */
+ tmp_len = strlen(tmp);
+ if (tmp[tmp_len - 1] != '/' && tmp[tmp_len - 1] != '\\')
+ {
+ strcpy(buf, tmp);
+ buf[tmp_len++] = '/', buf[tmp_len] = 0;
+ tmp = buf;
+ }
+ }
+
/* Note that `access' can lie to us if the directory resides on a
read-only filesystem, like CD-ROM or a write-protected floppy.
The only way to be really sure is to actually create a file and
#ifndef HAVE_X_WINDOWS
/* The following two are from xfns.c: */
- Qbar = intern ("bar");
- staticpro (&Qbar);
- Qhbar = intern ("hbar");
- staticpro (&Qhbar);
- Qcursor_type = intern ("cursor-type");
- staticpro (&Qcursor_type);
Qreverse = intern ("reverse");
staticpro (&Qreverse);
DEFVAR_LISP ("dos-unsupported-char-glyph", &Vdos_unsupported_char_glyph,
doc: /* *Glyph to display instead of chars not supported by current codepage.
-
This variable is used only by MSDOS terminals. */);
Vdos_unsupported_char_glyph = '\177';