view lispintro/README @ 83449:ff74a86c2b16

Overhaul and simplify single_kboard API. Allow calls to `recursive-edit' in process filters. Small fixes. * lisp/server.el (server-process-filter): Protect `display-splash-screen' call in a condition-case. Explain why. * src/callint.c (Fcall_interactively): Update call to `temporarily_switch_to_single_kboard'. * src/fns.c (Fy_or_n_p): Ditto. * src/frame.c (Fdelete_frame): Remove unused variable `count'. * src/keyboard.c (wrong_kboard_jmpbuf): Remove global variable. * src/keyboard.c (read_char): Add wrong_kboard_jmpbuf parameter to allow for recursive calls. Update longjmp invocations. Remember the original current_kboard, and longjmp to `wrong_kboard_jmpbuf' when a filter, timer or sentinel changes it. Comment out unnecessary calls to `record_single_kboard_state' and `any_kboard_state'. Update recursive calls. * src/keyboard.c (read_key_sequence): Add `wrong_kboard_jmpbuf' local variable. Update setjmp and read_char calls. Abort if interrupted_kboard died in read_char. * src/keyboard.c (any_kboard_state, single_kboard_state) (record_single_kboard_state): Comment out obsolete functions. (push_frame_kboard): Remove function. (pop_kboard): Switch out of single_kboard mode if the kboard has been deleted. (temporarily_switch_to_single_kboard): Change first parameter to a frame pointer. Throw an error when caller wants to change kboards while in single_kboard mode. (restore_kboard_configuration): Abort if pop_kboard changed the kboard in single_kboard mode. (Frecursive_edit): Switch to single_kboard mode only in nested command loops. (cmd_error, command_loop, command_loop_1, timer_check): Comment out unnecessary call to `any_kboard_state' and `record_single_kboard_state'. * src/keyboard.c (delete_kboard): Exit single_kboard mode if we have just deleted that kboard. * src/keyboard.c (interrupt_signal): Use `Fkill_emacs' to exit Emacs, not `fatal_error_signal'. * src/keyboard.h (read_char, single_kboard_state) (record_single_kboard_state): Remove. (temporarily_switch_to_single_kboard): Update. * src/lread.c: Include setjmp.h. Update declaration of `read_char'. (read_filtered_event): Call `read_char' with a local `wrong_kboard_jmpbuf'. * src/minibuf.c (read_minibuf): Update call to `temporarily_switch_to_single_kboard'. * src/termchar.h (tty_display_info): Rename `previous_terminal_frame' member to `previous_frame'. * src/xdisp.c (redisplay_internal): Update references to `previous_terminal_frame'. (display_mode_line, Fformat_mode_line): Replace calls to `push_frame_kboard' with `push_kboard'. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-489
author Karoly Lorentey <lorentey@elte.hu>
date Tue, 03 Jan 2006 01:50:46 +0000
parents 23a1cea22d13
children c84b73607df3
line wrap: on
line source

This directory contains the source of the "Introduction to programming
in Emacs Lisp" written by Robert J. Chassell, bob@gnu.org.  This
manual is an elementary introduction to programming in Emacs Lisp for
people who are not programmers, and who are not necessarily interested
in programming, but who do want to customize or extend their computing
environment.

This second edition of 2001 Nov 20 updates the previous editions to
GNU Emacs 21.

The Texinfo source file `emacs-lisp-intro.texi', formats without
error using TeX version 3.14159, `kpathsea' version 3.3.1,
`texinfo.tex' version 2001-05-24.08, and `makeinfo' version 4.0b.

Also, this tar file contains the following optional Encapsulated Post
Script figures.

    drawers.eps         7129 bytes
    cons-1.eps          12136
    cons-2.eps          12523
    cons-2a.eps         12420
    cons-3.eps          12984
    cons-4.eps          13866
    cons-5.eps          12986
    lambda-1.eps        10252
    lambda-2.eps        10278
    lambda-3.eps        10275

See the beginning of the `emacs-lisp-intro.texi' file for appropriate
settings.  These figures are not necessary; they are merely nice to
look at --- without them you get the same figures printed with ASCII
characters.

Whether and how you print PostScript depends on your site.  You not
only need to set 'print-postscript-figures' before creating the .dvi
file, but then must convert the .dvi file to .ps with a 'dvips' or
equivalent command.

On some systems you will see an error message when `psfig.tex' is
loaded for the last two .eps files:

            ! No room for a new \write .

If this happens, try `epsf.tex' instead of `psfig.tex', or try typing
RET at the error; the formatting may continue successfully.

Or else find the section that says:

 @c !!! Clear print-postscript-figures if the computer formatting this
 @c     document is too small and cannot handle all the diagrams and figures.
 @c clear print-postscript-figures

and change the file so it reads:   @clear print-postscript-figures
This will prevent TeX from attempting to load the last few .eps files.

You will find additional instructions on formatting in the beginning
of the Texinfo file 'emacs-lisp-intro.texi'.  Best Wishes!

2001 Nov  20
Robert J. Chassell, bob@gnu.org