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