view src/s/sunos4-0.h @ 83525:b2e7507b55c6

Fix C-x 5 2 on the controlling tty; fix some possible crash conditions and a memory leak. * src/frame.c (make_terminal_frame): Don't create frames on a terminal that is being deleted. * src/xfns.c (Fx_create_frame, x_create_tip_frame): Ditto. * src/keyboard.c (tty_read_avail_input): Don't read from a terminal that is being deleted. * src/term.c (get_named_tty): Abort if tty name is NULL. Simplify accordingly. * src/term.c (Ftty_type): Return nil if terminal is not on a tty instead of throwing an error. Doc update. * src/term.c (init_tty): Set name before calling `get_named_tty'. * src/term.c (delete_tty): Let delete_terminal delete the frames. Plug memory leak caused by tty->name. Remove reference to `deleting_tty'. * src/term.c (syms_of_term) <Vsuspend_tty_functions, Vresume_tty_functions>: Doc update. * src/termhooks.h (terminal) <name>: Explain why identifying terminals by name is a bad idea. * src/terminal.c (delete_terminal): Doc update. * src/xterm.c (XTread_socket): Disable loop on all X displays. * src/xterm.c (x_delete_display): Doc update to reflect changes in delete_terminal. * src/xterm.c (x_delete_terminal): Don't set terminal->deleted and let delete_terminal delete the frames on the terminal. * src/xterm.h (x_display_info) <terminal>: Move member earlier in the struct. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-565
author Karoly Lorentey <lorentey@elte.hu>
date Sat, 20 May 2006 17:12:43 +0000
parents 695cf19ef79e
children bbb115bb1b44 375f2633d815
line wrap: on
line source

#include "bsd4-2.h"

#ifndef SUNOS4
#define SUNOS4
#endif

#if 0  /* This may have been needed for an earlier version of Sun OS 4.
	  It seems to cause warnings in 4.0.3 and 4.1.  */
#define O_NDELAY        FNDELAY /* Non-blocking I/O (4.2 style) */
#endif

/* We use the Sun syntax -Bstatic unconditionally, because even when we
   use GCC, these are passed through to the linker, not handled by GCC
   directly.  */
#define LD_SWITCH_SYSTEM -Bstatic

/* We use this for linking temacs, but not for other programs
   or for tests in configure.  */
#define LD_SWITCH_SYSTEM_TEMACS -e __start

/* In SunOS 4.1, a static function called by tzsetwall reportedly
   clears the byte just past an eight byte region it mallocs, corrupting
   GNU malloc's memory pool.  But Sun's malloc doesn't seem to mind. */

#define SYSTEM_MALLOC

/* SunOS 4.x cc <stdlib.h> declares abort and free to return int.  */

#ifndef __STDC__
#define ABORT_RETURN_TYPE int
#define FREE_RETURN_TYPE int
#endif

#ifdef __GNUC__
/* We must define mkdir with this arg prototype
   to match GCC's fixed stat.h.  */
#define MKDIR_PROTOTYPE \
  int mkdir (const char *dpath, unsigned short dmode)
#endif /* __GNUC__ */

/* Must use the system's termcap, if we use any termcap.
   It does special things.  */

#ifndef TERMINFO
#define LIBS_TERMCAP -ltermcap
#endif

#define GC_SETJMP_WORKS 1
#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS

/* arch-tag: 362f3bfc-810d-4f6e-9b83-5a32f8f1a926
   (do not change this comment) */