Mercurial > emacs
annotate oldXMenu/AddSel.c @ 83065:a871be7b26a5
Implemented suspending of emacsclient frames.
lib-src/emacsclient.c (quote_file_name): Renamed to quote_argument.
(unquote_argument, handle_sigcont, handle_sigtstp): New functions.
(out, in): New global variables for communicating with the Emacs process.
(init_signals): Set up handlers for SIGCONT, SIGTSTP and SIGTTOU.
(main): Changed out and in to global variables. Prepend `-eval' or
'-file' to each argument. Use fsync to force sending the strings to Emacs.
Removed obsolete -bad-version code. Support the -suspend command.
Cleaned up newline handling.
lisp/frame.el (suspend-frame): New function.
Substitute key definition of suspend-emacs with suspend-frame.
lisp/server.el (server-log): Cosmetic change in log format.
(server-handle-delete-tty, server-handle-delete-frame): Added logging.
(server-handle-suspend-tty, server-quote-arg): New functions.
(server-start): Install server-handle-suspend-tty.
(server-process-filter): Reorganized source code for clarity.
Implemented -resume, -suspend and -ignore commands.
lisp/term/x-win.el (x-initialize-window-system): Don't change the
binding of C-z.
src/cm.c: Replaced TTY_INPUT, TTY_OUTPUT, TTY_TERMSCRIPT calls with
their macro expansion.
src/dispnew.c: Ditto.
src/frame.c: Ditto.
src/keyboard.c: Ditto.
src/sysdep.c: Ditto.
src/keyboard.c (tty_read_avail_input): Don't read if the terminal is
suspended.
src/sysdep.c (discard_tty_input, init_sys_modes, reset_sys_modes): Ditto.
src/term.c (tty_set_terminal_modes, tty_reset_terminal_modes): Ditto.
src/term.c (Vsuspend_tty_functions, Vresume_tty_functions): New hooks.
(syms_of_term): Defvar them.
(term_init): Don't allow opening a new frame on a suspended tty device.
(Fsuspend_tty, Fresume_tty): New functions.
(syms_of_term): Defsubr them.
src/termchar.c (struct tty_display_info): Update documentation of
input and output.
(TTY_INPUT, TTY_OUTPUT, TTY_TERMSCRIPT): Removed.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-105
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sat, 28 Feb 2004 01:23:39 +0000 |
parents | f0eb34e60705 |
children | 8e5779acd195 |
rev | line source |
---|---|
25858 | 1 #include "copyright.h" |
2 | |
53224
f0eb34e60705
tag of miles@gnu.org--gnu-2003/emacs--cvs-trunk--0--patch-137
Karoly Lorentey <lorentey@elte.hu>
parents:
52401
diff
changeset
|
3 /* $Header: /cvsroot/emacs/emacs/oldXMenu/AddSel.c,v 1.4 2003/09/01 15:45:47 miles Exp $ */ |
25858 | 4 /* Copyright Massachusetts Institute of Technology 1985 */ |
5 | |
6 /* | |
7 * XMenu: MIT Project Athena, X Window system menu package | |
8 * | |
9 * XMenuAddSelection - Adds a selection to an XMenu object. | |
10 * | |
11 * Author: Tony Della Fera, DEC | |
12 * August, 1985 | |
13 * | |
14 */ | |
15 | |
16 #include <config.h> | |
17 #include "XMenuInt.h" | |
18 | |
19 int | |
27455
d93b1a9c3c96
(XMenuAddSelection): Add parameter HELP.
Gerd Moellmann <gerd@gnu.org>
parents:
25858
diff
changeset
|
20 XMenuAddSelection(display, menu, p_num, data, label, active, help) |
25858 | 21 Display *display; |
22 register XMenu *menu; /* Menu object to be modified. */ | |
23 register int p_num; /* Pane number to be modified. */ | |
24 char *data; /* Data value. */ | |
25 char *label; /* Selection label. */ | |
26 int active; /* Make selection active? */ | |
27455
d93b1a9c3c96
(XMenuAddSelection): Add parameter HELP.
Gerd Moellmann <gerd@gnu.org>
parents:
25858
diff
changeset
|
27 char *help; /* Help string */ |
25858 | 28 { |
29 register XMPane *pane; /* Pane containing the new selection. */ | |
30 register XMSelect *select; /* Newly created selection. */ | |
31 | |
32 | |
33 int label_length; /* Label lenght in characters. */ | |
34 int label_width; /* Label width in pixels. */ | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
27455
diff
changeset
|
35 |
25858 | 36 /* |
37 * Check for NULL pointers! | |
38 */ | |
39 if (label == NULL) { | |
40 _XMErrorCode = XME_ARG_BOUNDS; | |
41 return(XM_FAILURE); | |
42 } | |
43 /* | |
44 * Find the right pane. | |
45 */ | |
46 pane = _XMGetPanePtr(menu, p_num); | |
47 if (pane == NULL) return(XM_FAILURE); | |
48 | |
49 /* | |
50 * Calloc the XMSelect structure. | |
51 */ | |
52 select = (XMSelect *)calloc(1, sizeof(XMSelect)); | |
53 if (select == NULL) { | |
54 _XMErrorCode = XME_CALLOC; | |
55 return(XM_FAILURE); | |
56 } | |
57 /* | |
58 * Determine label size. | |
59 */ | |
60 label_length = strlen(label); | |
61 label_width = XTextWidth(menu->s_fnt_info, label, label_length); | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
27455
diff
changeset
|
62 |
25858 | 63 /* |
64 * Fill the XMSelect structure. | |
65 */ | |
66 if (!strcmp (label, "--") || !strcmp (label, "---")) | |
67 { | |
68 select->type = SEPARATOR; | |
69 select->active = 0; | |
70 } | |
71 else | |
72 { | |
73 select->type = SELECTION; | |
74 select->active = active; | |
75 } | |
76 | |
77 select->serial = -1; | |
78 select->label = label; | |
79 select->label_width = label_width; | |
80 select->label_length = label_length; | |
81 select->data = data; | |
82 select->parent_p = pane; | |
27455
d93b1a9c3c96
(XMenuAddSelection): Add parameter HELP.
Gerd Moellmann <gerd@gnu.org>
parents:
25858
diff
changeset
|
83 select->help_string = help; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
27455
diff
changeset
|
84 |
25858 | 85 /* |
86 * Insert the selection at the end of the selection list. | |
87 */ | |
88 emacs_insque(select, pane->s_list->prev); | |
89 | |
90 /* | |
91 * Update the selection count. | |
92 */ | |
93 pane->s_count++; | |
94 | |
95 /* | |
96 * Schedule a recompute. | |
97 */ | |
98 menu->recompute = 1; | |
99 | |
100 /* | |
101 * Return the selection number just added. | |
102 */ | |
103 _XMErrorCode = XME_NO_ERROR; | |
104 return((pane->s_count - 1)); | |
105 } | |
52401 | 106 |
107 /* arch-tag: 0161f024-c739-440d-9498-050280c6c355 | |
108 (do not change this comment) */ |