annotate oldXMenu/insque.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 695cf19ef79e
children 3861ff8f4bf1 375f2633d815
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
1 /* This file implements the emacs_insque and emacs_remque functions,
Dave Love <fx@gnu.org>
parents:
diff changeset
2 copies of the insque and remque functions of BSD. They and all
Dave Love <fx@gnu.org>
parents:
diff changeset
3 their callers have been renamed to emacs_mumble to allow us to
Dave Love <fx@gnu.org>
parents:
diff changeset
4 include this file in the menu library on all systems. */
Dave Love <fx@gnu.org>
parents:
diff changeset
5
Dave Love <fx@gnu.org>
parents:
diff changeset
6
Dave Love <fx@gnu.org>
parents:
diff changeset
7 struct qelem {
Dave Love <fx@gnu.org>
parents:
diff changeset
8 struct qelem *q_forw;
Dave Love <fx@gnu.org>
parents:
diff changeset
9 struct qelem *q_back;
Dave Love <fx@gnu.org>
parents:
diff changeset
10 char q_data[1];
Dave Love <fx@gnu.org>
parents:
diff changeset
11 };
Dave Love <fx@gnu.org>
parents:
diff changeset
12
Dave Love <fx@gnu.org>
parents:
diff changeset
13 /* Insert ELEM into a doubly-linked list, after PREV. */
Dave Love <fx@gnu.org>
parents:
diff changeset
14
Dave Love <fx@gnu.org>
parents:
diff changeset
15 void
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
16 emacs_insque (elem, prev)
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
17 struct qelem *elem, *prev;
Dave Love <fx@gnu.org>
parents:
diff changeset
18 {
Dave Love <fx@gnu.org>
parents:
diff changeset
19 struct qelem *next = prev->q_forw;
Dave Love <fx@gnu.org>
parents:
diff changeset
20 prev->q_forw = elem;
Dave Love <fx@gnu.org>
parents:
diff changeset
21 if (next)
Dave Love <fx@gnu.org>
parents:
diff changeset
22 next->q_back = elem;
Dave Love <fx@gnu.org>
parents:
diff changeset
23 elem->q_forw = next;
Dave Love <fx@gnu.org>
parents:
diff changeset
24 elem->q_back = prev;
Dave Love <fx@gnu.org>
parents:
diff changeset
25 }
Dave Love <fx@gnu.org>
parents:
diff changeset
26
Dave Love <fx@gnu.org>
parents:
diff changeset
27 /* Unlink ELEM from the doubly-linked list that it is in. */
Dave Love <fx@gnu.org>
parents:
diff changeset
28
Dave Love <fx@gnu.org>
parents:
diff changeset
29 emacs_remque (elem)
Dave Love <fx@gnu.org>
parents:
diff changeset
30 struct qelem *elem;
Dave Love <fx@gnu.org>
parents:
diff changeset
31 {
Dave Love <fx@gnu.org>
parents:
diff changeset
32 struct qelem *next = elem->q_forw;
Dave Love <fx@gnu.org>
parents:
diff changeset
33 struct qelem *prev = elem->q_back;
Dave Love <fx@gnu.org>
parents:
diff changeset
34 if (next)
Dave Love <fx@gnu.org>
parents:
diff changeset
35 next->q_back = prev;
Dave Love <fx@gnu.org>
parents:
diff changeset
36 if (prev)
Dave Love <fx@gnu.org>
parents:
diff changeset
37 prev->q_forw = next;
Dave Love <fx@gnu.org>
parents:
diff changeset
38 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
39
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
40 /* arch-tag: a8719d1a-5c3f-4bce-b36b-173106d36165
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
41 (do not change this comment) */