X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/9b75c1e26efe96f0ed327ee06b0e046a9e5724ed..187bc86f15320f5680552b8bd692a62fb1a4b3ba:/src/dosfns.c diff --git a/src/dosfns.c b/src/dosfns.c index e57a6a197b..240f19c338 100644 --- a/src/dosfns.c +++ b/src/dosfns.c @@ -1,14 +1,14 @@ /* MS-DOS specific Lisp utilities. Coded by Manabu Higashida, 1991. Major changes May-July 1993 Morten Welinder (only 10% original code left) Copyright (C) 1991, 1993, 1996, 1997, 1998, 2001, 2002, 2003, 2004, - 2005, 2006, 2007 Free Software Foundation, Inc. + 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GNU Emacs. -GNU Emacs is free software; you can redistribute it and/or modify +GNU Emacs 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 Free Software Foundation, either version 3 of the License, or +(at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,9 +16,7 @@ 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 GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ +along with GNU Emacs. If not, see . */ #include @@ -31,14 +29,14 @@ Boston, MA 02110-1301, USA. */ #include "lisp.h" #include "buffer.h" #include "termchar.h" -#include "termhooks.h" #include "frame.h" +#include "termhooks.h" #include "blockinput.h" #include "window.h" #include "dosfns.h" #include "msdos.h" #include "dispextern.h" -#include "charset.h" +#include "character.h" #include "coding.h" #include #include @@ -422,7 +420,7 @@ msdos_stdcolor_idx (const char *name) int i; for (i = 0; i < sizeof (vga_colors) / sizeof (vga_colors[0]); i++) - if (strcasecmp (name, vga_colors[i]) == 0) + if (xstrcasecmp (name, vga_colors[i]) == 0) return i; return @@ -538,15 +536,27 @@ If the underlying system call fails, value is nil. */) void dos_cleanup (void) { + struct tty_display_info *tty; + #ifndef HAVE_X_WINDOWS restore_parent_vm_title (); #endif /* Make sure the termscript file is committed, in case we are crashing and some vital info was written there. */ - if (termscript) + if (FRAMEP (selected_frame)) { - fflush (termscript); - fsync (fileno (termscript)); + struct frame *sf = XFRAME (selected_frame); + + if (FRAME_LIVE_P (sf) + && (FRAME_MSDOS_P (sf) || FRAME_TERMCAP_P (sf))) + { + tty = CURTTY (); + if (tty->termscript) + { + fflush (tty->termscript); + fsync (fileno (tty->termscript)); + } + } } }