1 Copyright (C) 2008-2016 Free Software Foundation, Inc.
2 See the end of the file for license conditions.
4 This file contains information about GNU Emacs on "Nextstep" platforms.
5 The Nextstep support code works on many POSIX systems (and possibly
6 W32) using the GNUstep libraries, and on macOS systems using the Cocoa
11 Within Emacs, the port and its code are referred to using the term
12 "Nextstep", despite the fact that no system or API has been released
13 under this name in more than 10 years. Here's some background on why:
15 NeXT, Inc. introduced the NeXTstep API with its computer and operating
16 system in the late 1980's. Later on, in collaboration with Sun, this
17 API was published as a specification called OpenStep. The GNUstep
18 project started in the early 1990's to provide a free implementation
19 of this API. Later on, Apple bought NeXT (some would say "NeXT bought
20 Apple") and made OpenStep the basis of Mac OS X, calling the API
21 "Cocoa". Since then, Cocoa has evolved beyond the OpenStep
22 specification, and GNUstep has followed it.
24 Thus, calling this port "OpenStep" is not technically accurate, and in
25 the absence of any other determinant, we are using the term
26 "Nextstep", both because it signifies the original inspiration that
27 created these APIs, and because all of the classes and functions still
28 begin with the letters "NS".
30 (See http://en.wikipedia.org/wiki/Nextstep)
32 This Emacs port was first released in the early 1990's on the NeXT
33 computer, and was successively updated to OpenStep, Rhapsody, Mac OS
34 X, and then finally GNUstep, tracking GNU Emacs core releases in the
41 1990-1992 1.0-3.0 (?) Michael Brouwer's socket/terminal communication
42 based version (GUI ran as a separate process.)
44 1993/10/25 3.0.1 Last (?) release of Brouwer version. Supports
45 NeXTstep 3.x and below.
47 1994/04/24 4.0 Carl Edman's version using direct API following
48 the X-Windows port. NeXTstep 3.x only.
50 1995/06/15 4.1 Second (and last) Carl Edman release, based on
53 1996/07/28 4.2 First Christian Limpach release, based on
58 1997/12/?? 6.0b1 Ported to OpenStep by Scott Bender. Updated
61 ?? 6.0b2 (?) Scott Bender: ported to Rhapsody.
63 1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3.
65 2001/06/25 7.0 Ported to Mac OS X (10.1) by Christophe de
66 Dinechin. Release based on Emacs 20.7. Hosting
69 2002/01/03 7.0.1 Bug fixes.
71 2002/08/27 7.0.2 Jaguar (Mac OS X 10.2) support. Added autoconf
72 option for sys_nerr being in stdio. Added
73 libncurses to the build libraries. Fixed a
74 problem with ns-alternate-is-meta. Changed the
75 icon color to blue, since Jaguar is yellow.
77 2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert.
79 2004/11/04 8.0-pre2 Restored functionality on Mac OS X (menu code
80 cleanup). Improved scrollbar handling and
81 paste from other applications. File icons
82 obtained properly from NSWorkspace. Dropped
83 Gorm and Nib files. Background refresh bug
84 fixed (in GNUstep). Various small fixes and
85 code cleanups. Now starts up under Art.
87 2005/01/27 8.0-pre3 Bold and italic faces supported. Cursor and
88 mouse highlighting rendering bugs
89 fixed. Drag/drop and cut/paste interaction
90 w/external apps fixed. File load/save panels
91 available. Stability and rendering speed
92 improvements. Some ObjC and VC mode bugs fixed.
94 2005/02/27 8.0-rc1 Dynamic path detection at startup so Emacs.app
95 can be moved anywhere. Added binary packages
96 and simplified source installation to running
97 two scripts. Thorough cleanup of menu code;
98 now fully functional. Fixed all detected
99 memory leaks. Minor frame focus and title
102 2005/03/30 8.0-rc2 "Configure" info directory now uses dynamic
103 path setting, so info files can go under .app.
104 Improved select() handling and PTY fixes so
105 shell mode and tramp run smoothly.
106 Significant rendering optimizations under
107 GNUstep, and now works under Art backend.
108 Non-Latin text rendering works (but not
109 fontsets), and LEIM is bundled. UTF8 is used
110 for clipboard interaction.
111 Arrow cursor now used on scrollbar.
112 objc-mode and tramp now bundled in site-lisp.
114 2005/05/30 8.0-rc3 Fixed bug with parsing of "easymenu" menus.
115 Many problems with modes such as SLIME, MatLab,
116 and Planner go away. Improved scrollbar
117 handling and rendering speed. Color panel
118 and other bug fixes. mac-fix-env utility.
119 Font handling improvements (Mac OS X 10.3,
121 - heed 'GSFontAntiAlias' default
122 - heed system antialiasing threshold
123 - added 'UseQuickdrawSmoothing' default to
124 invoke less heavy antialiasing
126 2005/07/05 8.0-rc4 Added a Preferences panel. Cleaned up
127 rendering for synthetic italic fonts. Further
128 improved menu parsing. Use system highlight
129 color. Added previous- and next-mark history
130 navigation commands bound to M-p,M-n.
131 Miscellaneous bug fixes.
133 2005/08/04 8.0-rc5 All internal string handling changed to UTF-8.
134 This means menu items, color and color list
135 names, and a few other things will now display
136 properly. It does NOT mean UTF-8 filenames
137 are displayed correctly in the minibuffer.
138 Also relating to UTF-8, contents of files
139 using this coding can now be displayed (though
140 not auto-recognized; add extensions to your
141 default coding alist). Limited mac-roman
142 support was also added (also sans recognition).
143 Certain characters are not displayed properly
144 due to a translation problem. (UTF-8 based on
145 work by Otfried Cheong; mac-roman from
146 emacs-21.) Partial support for "dead-key"
147 handling now added. Transparency (e.g., M-x
148 set-background-color ARGB88FFFFFF) improved:
149 only the background is made transparent.
150 Cursor drawing glitches fixed. Preferences
151 handling improved. Fixed some portability
152 problems on Tiger and Puma.
154 2005/09/12 8.0 Bundled ispell on Mac OS X. Minor bug fixes
155 and stability improvements. Compiles under
158 2005/09/26 8.0.1 Correct clipped rendering for synthetic
159 italics. Include the info directory.
160 Fix grabenv. Bundle whitespace package.
162 2005/10/27 8.0.2 Correct rendering for wide characters during
163 cursor movement. Fix bungled hack in ispell
166 2005/11/05 9.0-pre1 Updated to latest Emacs CVS code on unicode-2
167 branch (proposed to be released 2006/2007 as
170 2005/11/11 9.0-pre2 Fix crashes for deiconifying and loading
171 certain images. Improve vertical font metrics
172 (fixes inaccurate page up/down, window size,
173 and partial lines). Support better remapping
174 of Alt/Opt and remapping of Command. More
175 insistent defaulting of scrollbar to right.
176 Modest improvements to build process.
178 2006/04/22 9.0-pre2a Stopgap interim release to sync w/latest
179 unicode-2 CVS. Includes XPM and partial
182 2006/06/08 9.0-pre3 Major upgrade to keyboard handling:
183 system-selected compositional input methods
184 should now work, as well as more keys /
185 keyboards. XPM, toolbar, and tooltip support.
186 Some improvements to scrollbars, zoom, italic
187 rendering, pasting, Color panel. Added function
188 ns-set-background-alpha to work around
189 inability to customize with numeric colors.
191 2006/12/24 9.0-rc1 Reworked font handling and text rendering to
192 use Kenichi Handa's new font back-end system.
193 Font sets are now supported and automatically
194 created when a font is selected. Added recent
195 X11 colors to Emacs.clr (remove
196 ~/Library/Colors/Emacs.clr to pick up). Added
197 ns-option-modifier, ns-control-modifier,
198 ns-function-modifier customization variables.
199 Update menus to Emacs 21+ conventions. Right
200 mouse button now generates mouse-3 events.
201 Various bug fixes and rendering improvements.
203 2007/09/10 9.0-rc2 Improve menubar, popup menu, and scrollbar
204 behavior, let accented char entry work in
205 isearch, follow system keymap for shortcut
206 keys, fix border and box drawing, remove
207 glitches in modeline drawing, support
208 overstrike for unavailable bold fonts, fix XPM
209 related crasher bugs. Incremental font
210 metrics caching and other performance
211 improvements. Shared-lisp builds now possible.
213 2007/09/20 9.0-rc2a Interim release. New features: composed
214 character display, colored fringe bitmaps,
215 colored relief drawing, dynamic resizing,
216 Bug fixes: popup menu position and selection,
217 font width calculation, face color adaptation
218 to background, submenu keyboard navigation.
219 NOT TESTED ON GNUSTEP.
221 2007/11/19 9.0-rc3 Integrated the multi-TTY functionality from
222 emacs core (however, mixed TTY and GUI
223 sessions are not working yet). Support 10.5.
224 Give site-lisp load precedence over lisp and
225 add a compile option to prefer an additional
226 directory, use miniaturized miniwindow images
227 in some cases, rename cursor types for
228 consistency w/other emacs terms, improved font
229 selection for symbol scripts.
230 Bug fixes: fringe and bitmap, frame deletion,
231 resizing, cursor blink, workspace open-file,
232 image backgrounds, toolbar item enablement,
233 context menu positioning.
235 2008/07/15 (none) Merge to GNU Emacs CVS trunk.
240 In addition to the folks listed in etc/AUTHORS responsible for GNU Emacs
241 itself, the NeXTstep port owes to the following people:
244 original author and maintainer, mainly UI
246 heavy contributor, input handling and other areas
248 help / maintenance on NeXTstep
250 OpenStep, Rhapsody ports
251 Christophe de Dinechin
254 GNUstep port, update Emacs 20 -> 21+
257 popup menu, dialog boxes; icons
259 font panel integration
261 improved rendering code
263 keyboard handling suggestions
268 preferences panel documentation
270 assistance with non-ASCII rendering and keyboard handling
274 initial patch and assistance getting dired working for non-ASCII filenames
276 assistance on ns-mark-nav extension
278 The GNUstep port was made possible through the assistance of Adam
279 Fedor, Fred Kiefer, M. Uli Klusterer, Alexander Malmberg, Jonas
280 Matton, and Riccardo Mottola. Leigh Smith maintained the SourceForge
281 project for a period.
283 Suggestions from Darcy Brockbank, Timothy Bissell, Scott Byer, David
284 Griffiths, Scott Hess, Eberhard Mandler, John C. Randolph, and Bradley
285 Taylor all helped things along at one point or another. Axel Seibert
286 and Paul J. Sanchez offered their time and machines to make a
287 binary release possible.
289 We would also like to thank a number of people who kept up the
290 constant supply of bug reports, suggested features and praise: Hardy
291 Mayer, Gisli Ottarsson, Anthony Heading, David Bau, Jamie Zawinski,
292 Martin Moncrieffe, Simson L. Garfinkel, Richard Stallman, Stephen
293 Anderson, Ivo Welch, Magnus Nordborg, Tom Epperly, Andreas Koenig,
294 Yves Arrouye, Anil Somayaji, Gregor Hoffleit; and the few hundred
295 other people on the mailing list from whom we didn't hear much, but
296 the presence of which assured us that maybe this project was actually
300 This file is part of GNU Emacs.
302 GNU Emacs is free software: you can redistribute it and/or modify
303 it under the terms of the GNU General Public License as published by
304 the Free Software Foundation, either version 3 of the License, or
305 (at your option) any later version.
307 GNU Emacs is distributed in the hope that it will be useful,
308 but WITHOUT ANY WARRANTY; without even the implied warranty of
309 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
310 GNU General Public License for more details.
312 You should have received a copy of the GNU General Public License
313 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.