mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-03 20:24:29 +00:00
Make emacsclient refuse to create a frame inside an Emacs term buffer.
lib-src/emacsclient.c (main): Exit with failure if the terminal type is `eterm' (Emacs term buffer). git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-104
This commit is contained in:
parent
f70dd00951
commit
2fc0cf2aef
@ -246,13 +246,6 @@ THINGS TO DO
|
||||
why raw terminal support is broken again. I really do need to
|
||||
understand input.)
|
||||
|
||||
** emacsclient -t from an Emacs term buffer does not work, complains
|
||||
about face problems. This can even lock up Emacs (if the recursive
|
||||
frame sets single_kboard). Update: the face problems are caused by
|
||||
bugs in term.el, not in multi-tty. The lockup is caused by
|
||||
single_kboard mode, and is not easily solvable. The best thing to
|
||||
do is to simply refuse to create a tty frame of type `eterm'.
|
||||
|
||||
** Maybe standard-display-table should be display-local.
|
||||
|
||||
DIARY OF CHANGES
|
||||
@ -663,4 +656,15 @@ DIARY OF CHANGES
|
||||
narrow_foreground_group. tcsetpgrp blocks if it is called from a
|
||||
process that is not in the same process group as the tty.)
|
||||
|
||||
-- emacsclient -t from an Emacs term buffer does not work, complains
|
||||
about face problems. This can even lock up Emacs (if the recursive
|
||||
frame sets single_kboard). Update: the face problems are caused by
|
||||
bugs in term.el, not in multi-tty. The lockup is caused by
|
||||
single_kboard mode, and is not easily solvable. The best thing to
|
||||
do is to simply refuse to create a tty frame of type `eterm'.
|
||||
|
||||
(Fixed, changed emacsclient to check for TERM=eterm. The face
|
||||
complaints seem to be caused by bugs in term.el; they are not
|
||||
related to multi-tty.)
|
||||
|
||||
;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d
|
||||
|
@ -588,15 +588,35 @@ To start the server in Emacs, type \"M-x server-start\".\n",
|
||||
if (tty)
|
||||
{
|
||||
char *tty_name = ttyname (fileno (stdin));
|
||||
char *type = getenv ("TERM");
|
||||
|
||||
if (! tty_name)
|
||||
fail ();
|
||||
{
|
||||
fprintf (stderr, "%s: could not get terminal name\n", progname);
|
||||
fail ();
|
||||
}
|
||||
|
||||
if (! type)
|
||||
{
|
||||
fprintf (stderr, "%s: please set the TERM variable to your terminal type\n",
|
||||
progname);
|
||||
fail ();
|
||||
}
|
||||
|
||||
if (! strcmp (type, "eterm"))
|
||||
{
|
||||
/* This causes nasty, MULTI_KBOARD-related input lockouts. */
|
||||
fprintf (stderr, "%s: opening a frame in an Emacs term buffer"
|
||||
" is not supported\n", progname);
|
||||
fail ();
|
||||
}
|
||||
|
||||
init_signals ();
|
||||
|
||||
fprintf (out, "-tty ");
|
||||
quote_file_name (tty_name, out);
|
||||
fprintf (out, " ");
|
||||
quote_file_name (getenv("TERM"), out);
|
||||
quote_file_name (type, out);
|
||||
fprintf (out, " ");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user