• Karoly Lorentey's avatar
    A few more bugfixes and new features. · 819b8f00
    Karoly Lorentey authored
    (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
    819b8f00
server.el 26.4 KB