view GETTING.GNU.SOFTWARE @ 1776:20c6f4aa5843

Make scrollbar structures into lisp objects, so that they can be GC'd; this allows windows and scrollbars can refer to each other without worrying about dangling pointers. * xterm.h (struct x_display): vertical_scrollbars and judge_timestamp members deleted. (struct scrollbar): Redesigned to be a template for a Lisp_Vector. (SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK, SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW, VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE, VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE): New macros, to help deal with the lispy structures, and deal with the graphics. * frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted. (struct frame): New fields `scrollbars' and `condemned_scrollbars', for use by the scrollbar implementation. [MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS, FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field. * window.h (struct window): Doc fix for vertical_scrollbar field. * frame.c (make_frame): Initialize the `scrollbars' and `condemned_scrollbars' fields of the new frame. * alloc.c (mark_object): Mark the `scrollbars' and `condemned_scrollbars' slots of frames. * xterm.c (x_window_to_scrollbar): Scrollbars are chained on frames' scrollbar field, not their x.display->vertical_scrollbars field. (x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move, x_scrollbar_remove, XTset_vertical_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars, x_scrollbar_expose, x_scrollbar_handle_click, x_scrollbar_handle_motion): Substantially rewritten to correct typos and brainos, and to accomodate the lispy structures. * frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as garbaged whenever it goes from invisible to visible. * dispextern.h (frame_garbaged): Move extern declaration from here... * frame.h (frame_garbaged): ... to here. The FRAME_SAMPLE_VISIBILITY macro uses it now, and this seems to be just as modular. Make a new page, just for this and message_buf_print. (struct frame): Doc fix for the `visible' field. * process.c: #include "frame.h" instead of "dispextern.h"; the only thing we care about from it is the frame_garbaged declaration. * ymakefile: Note dependency change.
author Jim Blandy <jimb@redhat.com>
date Thu, 14 Jan 1993 15:09:51 +0000
parents 508bb8dd1e88
children 784262b28079
line wrap: on
line source

-*- text -*-
		  Getting GNU Software, 20 Jan 92
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1992 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 and the Free Software Foundation

Project GNU is organized as part of the Free Software Foundation, Inc.
The Free Software Foundation has the following goals:
  1) to create GNU as a full development/operating system.
  2) to distribute GNU and other useful software with source code and
permission to copy and redistribute.

Further information on the rationale for GNU is in file
/pub/gnu/GNUinfo/GNU (All files referred to are on the Internet host
prep.ai.mit.edu.

Information on GNU Internet mailing lists and gnUSENET newsgroupscan
be found in file /pub/gnu/GNUinfo/MAILINGLISTS.

* How To Get The Software

The easiest way to get a copy of the distribution is from someone else
who has it.  You need not ask for permission to do so, or tell any one
else; just copy it.  The second easiest is to ftp it over the
Internet.  The third easiest way is to uucp it.  Ftp and uucp
information is in file /pub/gnu/GNUinfo/FTP.

If you cannot get a copy any of these ways, or if you would feel more
confident getting copies straight from us, or if you would like to get
some funds to us to help in our efforts, you can order one from the
Free Software Foundation.  See file /pub/gnu/GNUinfo/DISTRIB.

* Available Software

**  GNU Emacs

The GNU Emacs distribution includes:
	- manual source in TeX format.
	- an enhanced regex (regular expression) library.

See file /pub/gnu/GNUinfo/MACHINES for the status of porting Emacs to
various machines and operating systems.

** C Scheme - a block structured dialect of LISP.

The Free Software Foundation distributes C Scheme for the MIT Scheme
Project on it tapes.  A partial ftp distribution can be found on
prep.ai.mit.edu.  The full ftp distribution can be found on
zurich.ai.mit.edu.

Problems with the C Scheme distribution and its ftp distribution
should be referred to: <bug-cscheme@prep.ai.mit.edu>.  There are two
general mailing lists: <scheme@mc.lcs.mit.edu> and
<info-cscheme@prep.ai.mit.edu>.  Requests to join either list to:
<info-cscheme-request@prep.ai.mit.edu> or
<scheme-request@mc.lcs.mit.edu>.

** Other GNU Software

A fuller list of available software are in the files
/pub/gnu/GNUinfo/DISTRIB and /pub/gnu/GNUinfo/FTP.

* No Warranties

We distribute software in the hope that it will be useful, but without
any warranty.  No author or distributor of this software accepts
responsibility to anyone for the consequences of using it or for
whether it serves any particular purpose or works at all, unless he
says so in writing.

* If You Like The Software

If you like the software developed and distributed by the Free
Software Foundation, please express your satisfaction with a donation.
Your donations will help to support the foundation and make our future
efforts successful, including a complete development and operating
system, called GNU (Gnu's Not Un*x), which will run Un*x user
programs.  For more information on GNU and the Foundation, contact us
at Internet address <gnu@prep.ai.mit.edu> or the foundation's US Mail
address found in file /pub/gnu/GNUinfo/DISTRIB.