SHA256
1
0
forked from pool/emacs
emacs/emacs-23.1-bnc556175.patch

72 lines
2.0 KiB
Diff

--- src/term.c
+++ src/term.c 2009-11-26 14:09:38.631431310 +0100
@@ -37,6 +37,7 @@ along with GNU Emacs. If not, see <http
#include <signal.h>
#include <stdarg.h>
+#include <setjmp.h>
#include "lisp.h"
#include "termchar.h"
@@ -1650,7 +1651,7 @@ produce_glyphs (it)
if (unibyte_display_via_language_environment
&& (it->c >= 0240))
{
- it->char_to_display = unibyte_char_to_multibyte (it->c);
+ it->char_to_display = BYTE8_TO_CHAR (it->c);
it->pixel_width = CHAR_WIDTH (it->char_to_display);
it->nglyphs = it->pixel_width;
if (it->glyph_row)
@@ -3467,9 +3465,7 @@ init_tty (char *name, char *terminal_typ
tty->type = xstrdup (terminal_type);
-#ifdef subprocesses
add_keyboard_wait_descriptor (fileno (tty->input));
-#endif
#endif /* !DOS_NT */
@@ -3959,8 +3957,6 @@ static void
delete_tty (struct terminal *terminal)
{
struct tty_display_info *tty;
- Lisp_Object tail, frame;
- int last_terminal;
/* Protect against recursive calls. delete_frame in
delete_terminal calls us back when it deletes our last frame. */
@@ -3972,19 +3968,6 @@ delete_tty (struct terminal *terminal)
tty = terminal->display_info.tty;
- last_terminal = 1;
- FOR_EACH_FRAME (tail, frame)
- {
- struct frame *f = XFRAME (frame);
- if (FRAME_LIVE_P (f) && (!FRAME_TERMCAP_P (f) || FRAME_TTY (f) != tty))
- {
- last_terminal = 0;
- break;
- }
- }
- if (last_terminal)
- error ("Attempt to delete the sole terminal device with live frames");
-
if (tty == tty_list)
tty_list = tty->next;
else
@@ -4025,10 +4008,8 @@ delete_tty (struct terminal *terminal)
xfree (tty->old_tty);
xfree (tty->Wcm);
- if (tty->termcap_strings_buffer)
- xfree (tty->termcap_strings_buffer);
- if (tty->termcap_term_buffer)
- xfree (tty->termcap_term_buffer);
+ xfree (tty->termcap_strings_buffer);
+ xfree (tty->termcap_term_buffer);
bzero (tty, sizeof (struct tty_display_info));
xfree (tty);