Mercurial > emacs
view etc/DISTRIB @ 53341:d4e6a050c9b1
Bugfix festival.
lib-src/emacsclient.c (main_argc, main_argv): New variables.
(main): Initialize them.
(fail): Use them.
(window_change, copy_from_to): Don't kill if emacs_pid is zero.
(pty_conversation): Watch the command socket, too. Read emacs_pid
here. Emacs and emacsclient could deadlock if Emacs tried to do a
reset_sys_modes before sending its pid.
lisp/server.el: Automatically delete the client frame when done editing.
(server-frames): New variable.
(server-process-filter, server-sentinel, server-buffer-done): Use it.
(server-process-filter): Do a redisplay before evaluating other
parameters. (Prevents "emacsclient -h -e '(delete-frame)'" from
messing up the system.
src/dispextern.h: Update prototypes.
src/dispnew.c (window_change_signal): Do nothing if !term_initted.
(init_display): Set the frame size from the tty data after term_init.
src/emacs.c (main): Make sure things that init_sys_modes needs are
initialized before init_display (which calls init_sys_modes now).
(sort_args): Use xfree, not free.
(shut_down_emacs) [!EMACS_HAVE_TTY_PGRP]: Use reset_all_sys_modes
instead of reset_sys_modes.
src/frame.c (make_terminal_frame): Sigh. Move terminal initialization
back to the middle of frame setup. Handle errors by making sure that
the delete_tty() called from term_init() will see and delete this
frame.
(Fdelete_frame): Kill the frame before calling delete_tty(). Fix
condition for tty deletion.
src/keyboard.c (Fset_input_mode): Use reset_sys_modes on the current
terminal only.
src/lisp.h: Remove duplicate prototypes.
src/msdos.c (croak): use reset_all_sys_modes().
src/sysdeps.c (init_baud_rate): Added tty parameter, use it instead of CURTTY.
(child_setup_tty): Reset sigio on stdin, not CURTTY().
(reset_sigio): Added fd parameter, put explicit fcntl there.
(request_sigio, unrequest_sigio)[FASYNC]: Simply block/unblock the
SIGIO signal, don't touch the file params. There are multiple ttys
now, and we can't disable the SIGIO from emacsclient.
(get_tty_size)[VMS]: Use tty_out instead of CURTTY().
(reset_sys_modes): Don't call cursor_to, clear_end_of_line; call
cmgoto and tty_clear_end_of_line instead. The frame may already be
dead. Updated reset_sigio call.
src/term.c (clear_and_of_line): Separate tty-dependent stuff to
tty_clear_end_of_line() for reset_sys_modes.
(tty_clear_end_of_line): New function.
(term_init): Added frame parameter, don't use selected_frame.
Set the frame's output_data.tty value (in case there is an error
later). Set the frame size in Wcm, not in the frame. Only free the
termcap buffer if there is a termcap-related error. Call
init_sys_modes last, not first.
(deleting_tty): New variable.
(delete_tty): Use it for handling recursive calls. Free deleted tty,
except its Wcm (there is still a dangling reference somewhere).
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-19
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Mon, 29 Dec 2003 07:16:26 +0000 |
parents | 58e60480bcdd |
children | 18c8da5d961a |
line wrap: on
line source
-*- text -*- For an order form for all Emacs and FSF distributions deliverable from the USA, see http://www.gnu.org/order/order.html. GNU Emacs availability information, October 2000 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 2000 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document provided that the copyright notice and this permission notice are preserved. GNU Emacs is legally owned by the Free Software Foundation, but we regard the foundation more as its custodian on behalf of the public. In the GNU project, when we speak of "free software", this refers to liberty, not price. Specifically, it refers to the users' freedom to study, copy, change and improve the software. Sometimes users pay money for copies of GNU software, and sometimes they get copies at no charge. But regardless of how they got the software, or whether it was modified by anyone else along the way, they have the freedom to copy and change it--those freedoms are what "free software" means. The precise conditions for copying and modification are stated in the document "GNU General Public License," a copy of which is required to be distributed with every copy of GNU Emacs. It is usually in a file named `COPYING' in the same directory as this file. These conditions are designed to make sure that everyone who has a copy of GNU Emacs (including modified versions) has the freedom to redistribute and change it. If you do not know anyone to get a copy of GNU Emacs from, you can order a cd-rom from the Free Software Foundation. We distribute several Emacs versions. We also distribute nicely typeset copies of the Emacs user manual, Emacs Lisp Reference Manual, the Emacs reference card, etc. See http://www.gnu.org/order/order.html. If you have Internet access, you can copy the latest Emacs distribution from hosts, such as ftp.gnu.org. There are several ways to do this; see http://www.gnu.org/software/software.html for more information. Emacs has been run on GNU/Linux, FreeBSD, NetBSD, OpenBSD, and on many Unix systems, on a variety of types of cpu, as well as on MSDOS, Windows and MacOS. It also formerly worked on VMS and on Apollo computers, though with some deficiencies that reflect problems in these operating systems. See the file `MACHINES' in this directory (see above) for a full list of machines that GNU Emacs has been tested on, with machine-specific installation notes and warnings. Note that there is significant variation between Unix systems supposedly running the same version of Unix; it is possible that what works in GNU Emacs for me does not work on your system due to such an incompatibility. Since I must avoid reading Unix source code, I cannot even guess what such problems may exist. GNU Emacs is distributed with no warranty (see the General Public License for full details, in the file `COPYING' in this directory (see above)), and neither I nor the Free Software Foundation promises any kind of support or assistance to users. The foundation keeps a list of people who are willing to offer support and assistance for hire. See http://www.gnu.org/help/gethelp.html. However, we plan to continue to improve GNU Emacs and keep it reliable, so please send me any complaints and suggestions you have. I will probably fix anything that I consider a malfunction. I may make improvements that are suggested, but I may choose not to. If you are on the Internet, report bugs to bug-gnu-emacs@gnu.org. You can use the Emacs command M-x report-bug RET to mail a bug report. Please read the Bugs section of the Emacs manual before reporting bugs. General questions about the GNU Project can be asked of gnu@gnu.org. If you are a computer manufacturer, I encourage you to ship a copy of GNU Emacs with every computer you deliver. The same copying permission terms apply to computer manufacturers as to everyone else. You should consider making a donation to help support the GNU project; if you estimate what it would cost to distribute some commercial product and divide it by five, that is a good amount. If you like GNU Emacs, please express your satisfaction with a donation: send me or the Foundation what you feel Emacs has been worth to you. If you are glad that I developed GNU Emacs and distribute it as freeware, rather than following the obstructive and antisocial practices typical of software developers, reward me. If you would like the Foundation to develop more free software, contribute. Your donations will help to support the development of additional GNU software. GNU/Linux systems (variants of GNU, based on the kernel Linux) have millions of users, but there is still much to be done. For more information on GNU, see the file `GNU' in this directory (see above). Richard M Stallman Chief GNUisance, President of the Free Software Foundation