comparison src/alloc.c @ 82988:f82e3a6f5ccb

A few more bugfixes and new features. (Sigh.) I obviously need to remember to separate individual changes to multiple commits. src/emacsclient.c: Improved error handling. (decode_options): Changed frame option (again) from -f to -t. (print_help_and_exit): Ditto. (copy_from_to): Check EINTR after write, not EAGAIN. Removed SIGIO hack. (pty_conversation): Handle errors transmitted through the socket. Handle pty errors by not reading from it anymore. (main): Restore correct errno after socket_status failed. Send -tty on -t, not -pty. lisp/server.el (server-process-filter): Watch -tty, not -pty. Use make-frame-on-tty instead of make-terminal-frame. Don't set newframe to t if make-frame-on-tty failed. Don't delete frames here. Print correct message when there are no files to edit, but a new frame was requested. (server-sentinel): Delete the frame after the process. (server-handle-delete-frame): New function for delete-frame-functions. (server-start): Add server-handle-delete-frame to delete-frame-functions. (server-buffer-done): Don't delete frames here. src/alloc.c (mark_ttys): Add prototype. (Fgarbage_collect): Call mark_ttys. src/emacs.c: (shut_down_emacs): Don't flush stdout before reset_sys_modes(). src/process.c (add_keyboard_wait_descriptor_called_flag): Removed. (add_keyboard_wait_descriptor): Removed stdin hack. src/sysdep.c: Unconditionally include sysselect.h. (old_fcntl_flags): Changed to an array. (init_sigio, reset_sigio): Use it. (narrow_foreground_group, widen_foreground_group): Use setpgid, not setpgrp. (old_fcntl_owner): Changed to an array. (init_sys_modes, reset_sys_modes): Use it. Fix fsync() and reset_sigio() calls. src/term.c (Qframe_tty_name, Qframe_tty_type): New variables. (syms_of_term): Initialize them. (Fframe_tty_name, Fframe_tty_type): New functions. (term_init): Call add_keyboard_wait_descriptor(). (Fdelete_tty): New function. (delete_tty): Call delete_keyboard_wait_descriptor(). (get_current_tty): Removed. (mark_ttys): New function. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-28
author Karoly Lorentey <lorentey@elte.hu>
date Wed, 31 Dec 2003 05:09:29 +0000
parents e8f5463f3d5b
children ae6d0d2ecb1d
comparison
equal deleted inserted replaced
82987:1682917e56b4 82988:f82e3a6f5ccb
254 Lisp_Object Vgc_elapsed; /* accumulated elapsed time in GC */ 254 Lisp_Object Vgc_elapsed; /* accumulated elapsed time in GC */
255 EMACS_INT gcs_done; /* accumulated GCs */ 255 EMACS_INT gcs_done; /* accumulated GCs */
256 256
257 static void mark_buffer P_ ((Lisp_Object)); 257 static void mark_buffer P_ ((Lisp_Object));
258 extern void mark_kboards P_ ((void)); 258 extern void mark_kboards P_ ((void));
259 extern void mark_ttys P_ ((void));
259 static void gc_sweep P_ ((void)); 260 static void gc_sweep P_ ((void));
260 static void mark_glyph_matrix P_ ((struct glyph_matrix *)); 261 static void mark_glyph_matrix P_ ((struct glyph_matrix *));
261 static void mark_face_cache P_ ((struct face_cache *)); 262 static void mark_face_cache P_ ((struct face_cache *));
262 263
263 #ifdef HAVE_WINDOW_SYSTEM 264 #ifdef HAVE_WINDOW_SYSTEM
4439 i = backlist->nargs - 1; 4440 i = backlist->nargs - 1;
4440 for (; i >= 0; i--) 4441 for (; i >= 0; i--)
4441 mark_object (backlist->args[i]); 4442 mark_object (backlist->args[i]);
4442 } 4443 }
4443 mark_kboards (); 4444 mark_kboards ();
4445 mark_ttys ();
4444 4446
4445 /* Look thru every buffer's undo list 4447 /* Look thru every buffer's undo list
4446 for elements that update markers that were not marked, 4448 for elements that update markers that were not marked,
4447 and delete them. */ 4449 and delete them. */
4448 { 4450 {