mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-24 07:20:37 +00:00
314 lines
12 KiB
Plaintext
314 lines
12 KiB
Plaintext
Copyright (C) 2008-2024 Free Software Foundation, Inc.
|
||
See the end of the file for license conditions.
|
||
|
||
This file contains information about GNU Emacs on "Nextstep" platforms.
|
||
The Nextstep support code works on many POSIX systems (and possibly
|
||
W32) using the GNUstep libraries, and on macOS systems using the Cocoa
|
||
libraries.
|
||
|
||
Background
|
||
----------
|
||
Within Emacs, the port and its code are referred to using the term
|
||
"Nextstep", despite the fact that no system or API has been released
|
||
under this name in more than 10 years. Here's some background on why:
|
||
|
||
NeXT, Inc. introduced the NeXTstep API with its computer and operating
|
||
system in the late 1980's. Later on, in collaboration with Sun, this
|
||
API was published as a specification called OpenStep. The GNUstep
|
||
project started in the early 1990's to provide a free implementation
|
||
of this API. Later on, Apple bought NeXT (some would say "NeXT bought
|
||
Apple") and made OpenStep the basis of Mac OS X, calling the API
|
||
"Cocoa". Since then, Cocoa has evolved beyond the OpenStep
|
||
specification, and GNUstep has followed it.
|
||
|
||
Thus, calling this port "OpenStep" is not technically accurate, and in
|
||
the absence of any other determinant, we are using the term
|
||
"Nextstep", both because it signifies the original inspiration that
|
||
created these APIs, and because all of the classes and functions still
|
||
begin with the letters "NS".
|
||
|
||
(See https://en.wikipedia.org/wiki/Nextstep)
|
||
|
||
This Emacs port was first released in the early 1990's on the NeXT
|
||
computer, and was successively updated to OpenStep, Rhapsody, Mac OS
|
||
X, and then finally GNUstep, tracking GNU Emacs core releases in the
|
||
meantime.
|
||
|
||
|
||
Release History
|
||
---------------
|
||
|
||
1990-1992 1.0-3.0 (?) Michael Brouwer's socket/terminal communication
|
||
based version (GUI ran as a separate process.)
|
||
|
||
1993/10/25 3.0.1 Last (?) release of Brouwer version. Supports
|
||
NeXTstep 3.x and below.
|
||
|
||
1994/04/24 4.0 Carl Edman's version using direct API following
|
||
the X-Windows port. NeXTstep 3.x only.
|
||
|
||
1995/06/15 4.1 Second (and last) Carl Edman release, based on
|
||
Emacs 19.28.
|
||
|
||
1996/07/28 4.2 First Christian Limpach release, based on
|
||
Emacs 19.29.
|
||
|
||
?? 5.0 ??
|
||
|
||
1997/12/?? 6.0b1 Ported to OpenStep by Scott Bender. Updated
|
||
to Emacs 20.2.
|
||
|
||
?? 6.0b2 (?) Scott Bender: ported to Rhapsody.
|
||
|
||
1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3.
|
||
|
||
2001/06/25 7.0 Ported to Mac OS X (10.1) by Christophe de
|
||
Dinechin. Release based on Emacs 20.7. Hosting
|
||
moved to SourceForge.
|
||
|
||
2002/01/03 7.0.1 Bug fixes.
|
||
|
||
2002/08/27 7.0.2 Jaguar (Mac OS X 10.2) support. Added autoconf
|
||
option for sys_nerr being in stdio. Added
|
||
libncurses to the build libraries. Fixed a
|
||
problem with ns-alternate-is-meta. Changed the
|
||
icon color to blue, since Jaguar is yellow.
|
||
|
||
2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert.
|
||
|
||
2004/11/04 8.0-pre2 Restored functionality on Mac OS X (menu code
|
||
cleanup). Improved scrollbar handling and
|
||
paste from other applications. File icons
|
||
obtained properly from NSWorkspace. Dropped
|
||
Gorm and Nib files. Background refresh bug
|
||
fixed (in GNUstep). Various small fixes and
|
||
code cleanups. Now starts up under Art.
|
||
|
||
2005/01/27 8.0-pre3 Bold and italic faces supported. Cursor and
|
||
mouse highlighting rendering bugs
|
||
fixed. Drag/drop and cut/paste interaction
|
||
w/external apps fixed. File load/save panels
|
||
available. Stability and rendering speed
|
||
improvements. Some ObjC and VC mode bugs fixed.
|
||
|
||
2005/02/27 8.0-rc1 Dynamic path detection at startup so Emacs.app
|
||
can be moved anywhere. Added binary packages
|
||
and simplified source installation to running
|
||
two scripts. Thorough cleanup of menu code;
|
||
now fully functional. Fixed all detected
|
||
memory leaks. Minor frame focus and title
|
||
bugs fixed.
|
||
|
||
2005/03/30 8.0-rc2 "Configure" info directory now uses dynamic
|
||
path setting, so info files can go under .app.
|
||
Improved select() handling and PTY fixes so
|
||
shell mode and tramp run smoothly.
|
||
Significant rendering optimizations under
|
||
GNUstep, and now works under Art backend.
|
||
Non-Latin text rendering works (but not
|
||
fontsets), and LEIM is bundled. UTF8 is used
|
||
for clipboard interaction.
|
||
Arrow cursor now used on scrollbar.
|
||
objc-mode and tramp now bundled in site-lisp.
|
||
|
||
2005/05/30 8.0-rc3 Fixed bug with parsing of "easymenu" menus.
|
||
Many problems with modes such as SLIME, MatLab,
|
||
and Planner go away. Improved scrollbar
|
||
handling and rendering speed. Color panel
|
||
and other bug fixes. mac-fix-env utility.
|
||
Font handling improvements (Mac OS X 10.3,
|
||
10.4):
|
||
- heed 'GSFontAntiAlias' default
|
||
- heed system antialiasing threshold
|
||
- added 'UseQuickdrawSmoothing' default to
|
||
invoke less heavy antialiasing
|
||
|
||
2005/07/05 8.0-rc4 Added a Preferences panel. Cleaned up
|
||
rendering for synthetic italic fonts. Further
|
||
improved menu parsing. Use system highlight
|
||
color. Added previous- and next-mark history
|
||
navigation commands bound to M-p,M-n.
|
||
Miscellaneous bug fixes.
|
||
|
||
2005/08/04 8.0-rc5 All internal string handling changed to UTF-8.
|
||
This means menu items, color and color list
|
||
names, and a few other things will now display
|
||
properly. It does NOT mean UTF-8 filenames
|
||
are displayed correctly in the minibuffer.
|
||
Also relating to UTF-8, contents of files
|
||
using this coding can now be displayed (though
|
||
not auto-recognized; add extensions to your
|
||
default coding alist). Limited mac-roman
|
||
support was also added (also sans recognition).
|
||
Certain characters are not displayed properly
|
||
due to a translation problem. (UTF-8 based on
|
||
work by Otfried Cheong; mac-roman from
|
||
emacs-21.) Partial support for "dead-key"
|
||
handling now added. Transparency (e.g., M-x
|
||
set-background-color ARGB88FFFFFF) improved:
|
||
only the background is made transparent.
|
||
Cursor drawing glitches fixed. Preferences
|
||
handling improved. Fixed some portability
|
||
problems on Tiger and Puma.
|
||
|
||
2005/09/12 8.0 Bundled ispell on Mac OS X. Minor bug fixes
|
||
and stability improvements. Compiles under
|
||
gcc-4.
|
||
|
||
2005/09/26 8.0.1 Correct clipped rendering for synthetic
|
||
italics. Include the info directory.
|
||
Fix grabenv. Bundle whitespace package.
|
||
|
||
2005/10/27 8.0.2 Correct rendering for wide characters during
|
||
cursor movement. Fix bungled hack in ispell
|
||
bundling.
|
||
|
||
2005/11/05 9.0-pre1 Updated to latest Emacs CVS code on unicode-2
|
||
branch (proposed to be released 2006/2007 as
|
||
Emacs 23).
|
||
|
||
2005/11/11 9.0-pre2 Fix crashes for deiconifying and loading
|
||
certain images. Improve vertical font metrics
|
||
(fixes inaccurate page up/down, window size,
|
||
and partial lines). Support better remapping
|
||
of Alt/Opt and remapping of Command. More
|
||
insistent defaulting of scrollbar to right.
|
||
Modest improvements to build process.
|
||
|
||
2006/04/22 9.0-pre2a Stopgap interim release to sync w/latest
|
||
unicode-2 CVS. Includes XPM and partial
|
||
toolbar support.
|
||
|
||
2006/06/08 9.0-pre3 Major upgrade to keyboard handling:
|
||
system-selected compositional input methods
|
||
should now work, as well as more keys /
|
||
keyboards. XPM, toolbar, and tooltip support.
|
||
Some improvements to scrollbars, zoom, italic
|
||
rendering, pasting, Color panel. Added function
|
||
ns-set-background-alpha to work around
|
||
inability to customize with numeric colors.
|
||
|
||
2006/12/24 9.0-rc1 Reworked font handling and text rendering to
|
||
use Kenichi Handa's new font back-end system.
|
||
Font sets are now supported and automatically
|
||
created when a font is selected. Added recent
|
||
X11 colors to Emacs.clr (remove
|
||
~/Library/Colors/Emacs.clr to pick up). Added
|
||
ns-option-modifier, ns-control-modifier,
|
||
ns-function-modifier customization variables.
|
||
Update menus to Emacs 21+ conventions. Right
|
||
mouse button now generates mouse-3 events.
|
||
Various bug fixes and rendering improvements.
|
||
|
||
2007/09/10 9.0-rc2 Improve menubar, popup menu, and scrollbar
|
||
behavior, let accented char entry work in
|
||
isearch, follow system keymap for shortcut
|
||
keys, fix border and box drawing, remove
|
||
glitches in modeline drawing, support
|
||
overstrike for unavailable bold fonts, fix XPM
|
||
related crashes. Incremental font
|
||
metrics caching and other performance
|
||
improvements. Shared-lisp builds now possible.
|
||
|
||
2007/09/20 9.0-rc2a Interim release. New features: composed
|
||
character display, colored fringe bitmaps,
|
||
colored relief drawing, dynamic resizing,
|
||
Bug fixes: popup menu position and selection,
|
||
font width calculation, face color adaptation
|
||
to background, submenu keyboard navigation.
|
||
NOT TESTED ON GNUSTEP.
|
||
|
||
2007/11/19 9.0-rc3 Integrated the multi-TTY functionality from
|
||
emacs core (however, mixed TTY and GUI
|
||
sessions are not working yet). Support 10.5.
|
||
Give site-lisp load precedence over lisp and
|
||
add a compile option to prefer an additional
|
||
directory, use miniaturized miniwindow images
|
||
in some cases, rename cursor types for
|
||
consistency w/other emacs terms, improved font
|
||
selection for symbol scripts.
|
||
Bug fixes: fringe and bitmap, frame deletion,
|
||
resizing, cursor blink, workspace open-file,
|
||
image backgrounds, toolbar item enablement,
|
||
context menu positioning.
|
||
|
||
2008/07/15 (none) Merge to GNU Emacs CVS trunk.
|
||
|
||
|
||
Contributors
|
||
------------
|
||
In addition to the folks listed in etc/AUTHORS responsible for GNU Emacs
|
||
itself, the NeXTstep port owes to the following people:
|
||
|
||
Carl Edman
|
||
original author and maintainer, mainly UI
|
||
Michael Brouwer
|
||
heavy contributor, input handling and other areas
|
||
Christian Limpach
|
||
help / maintenance on NeXTstep
|
||
Scott Bender
|
||
OpenStep, Rhapsody ports
|
||
Christophe de Dinechin
|
||
macOS port
|
||
Adrian Robert
|
||
GNUstep port, update Emacs 20 -> 21+
|
||
|
||
Joe Reiss
|
||
popup menu, dialog boxes; icons
|
||
Andrew Athan
|
||
font panel integration
|
||
Scott Byer
|
||
improved rendering code
|
||
Scott Hess
|
||
keyboard handling suggestions
|
||
|
||
Rahul Abrol
|
||
"hide others" patch
|
||
Adam Ratcliffe
|
||
preferences panel documentation
|
||
Peter Dyballa
|
||
assistance with non-ASCII rendering and keyboard handling
|
||
David M. Cooke
|
||
fix to XPM crash bug
|
||
Carsten Bormann
|
||
initial patch and assistance getting dired working for non-ASCII filenames
|
||
Andrew Moore
|
||
assistance on ns-mark-nav extension
|
||
|
||
The GNUstep port was made possible through the assistance of Adam
|
||
Fedor, Fred Kiefer, M. Uli Klusterer, Alexander Malmberg, Jonas
|
||
Matton, and Riccardo Mottola. Leigh Smith maintained the SourceForge
|
||
project for a period.
|
||
|
||
Suggestions from Darcy Brockbank, Timothy Bissell, Scott Byer, David
|
||
Griffiths, Scott Hess, Eberhard Mandler, John C. Randolph, and Bradley
|
||
Taylor all helped things along at one point or another. Axel Seibert
|
||
and Paul J. Sanchez offered their time and machines to make a
|
||
binary release possible.
|
||
|
||
We would also like to thank a number of people who kept up the
|
||
constant supply of bug reports, suggested features and praise: Hardy
|
||
Mayer, Gisli Ottarsson, Anthony Heading, David Bau, Jamie Zawinski,
|
||
Martin Moncrieffe, Simson L. Garfinkel, Richard Stallman, Stephen
|
||
Anderson, Ivo Welch, Magnus Nordborg, Tom Epperly, Andreas Koenig,
|
||
Yves Arrouye, Anil Somayaji, Gregor Hoffleit; and the few hundred
|
||
other people on the mailing list from whom we didn't hear much, but
|
||
the presence of which assured us that maybe this project was actually
|
||
worth doing.
|
||
|
||
|
||
This file is part of GNU Emacs.
|
||
|
||
GNU Emacs is free software: you can redistribute it and/or modify
|
||
it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation, either version 3 of the License, or
|
||
(at your option) any later version.
|
||
|
||
GNU Emacs is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
GNU General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License
|
||
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|