| 1 | Copyright (C) 2008-2014 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. |
| 3 | |
| 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 X systems using the |
| 7 | Cocoa libraries. |
| 8 | |
| 9 | Background |
| 10 | ---------- |
| 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: |
| 14 | |
| 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 OS X, calling the API "Cocoa". |
| 21 | Since then, Cocoa has evolved beyond the OpenStep specification, and |
| 22 | GNUstep has followed it. |
| 23 | |
| 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". |
| 29 | |
| 30 | (See http://en.wikipedia.org/wiki/Nextstep) |
| 31 | |
| 32 | This Emacs port was first released in the early 1990's on the NeXT |
| 33 | computer, and was successively updated to OpenStep, Rhapsody, OS X, |
| 34 | and then finally GNUstep, tracking GNU emacs core releases in the |
| 35 | meantime. |
| 36 | |
| 37 | |
| 38 | Release History |
| 39 | --------------- |
| 40 | |
| 41 | 1990-1992 1.0-3.0 (?) Michael Brouwer's socket/terminal communication |
| 42 | based version (GUI ran as a separate process.) |
| 43 | |
| 44 | 1993/10/25 3.0.1 Last (?) release of Brouwer version. Supports |
| 45 | NeXTstep 3.x and below. |
| 46 | |
| 47 | 1994/04/24 4.0 Carl Edman's version using direct API following |
| 48 | the X-Windows port. NeXTstep 3.x only. |
| 49 | |
| 50 | 1995/06/15 4.1 Second (and last) Carl Edman release, based on |
| 51 | Emacs 19.28. |
| 52 | |
| 53 | 1996/07/28 4.2 First Christian Limpach release, based on |
| 54 | Emacs 19.29. |
| 55 | |
| 56 | ?? 5.0 ?? |
| 57 | |
| 58 | 1997/12/?? 6.0b1 Ported to OpenStep by Scott Bender. Updated |
| 59 | to Emacs 20.2. |
| 60 | |
| 61 | ?? 6.0b2 (?) Scott Bender: ported to Rhapsody. |
| 62 | |
| 63 | 1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3. |
| 64 | |
| 65 | 2001/06/25 7.0 Ported to MacOS X (10.1) by Christophe de |
| 66 | Dinechin. Release based on Emacs 20.7. Hosting |
| 67 | moved to SourceForge. |
| 68 | |
| 69 | 2002/01/03 7.0.1 Bug fixes. |
| 70 | |
| 71 | 2002/08/27 7.0.2 Jaguar (OS X 10.2) support. Added an 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. |
| 76 | |
| 77 | 2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert. |
| 78 | |
| 79 | 2004/11/04 8.0-pre2 Restored functionality on 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. |
| 86 | |
| 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. |
| 93 | |
| 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 |
| 100 | bugs fixed. |
| 101 | |
| 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. |
| 113 | |
| 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 (OS X 10.3, 10.4): |
| 120 | - heed 'GSFontAntiAlias' default |
| 121 | - heed system antialiasing threshold |
| 122 | - added 'UseQuickdrawSmoothing' default to |
| 123 | invoke less heavy antialiasing |
| 124 | |
| 125 | 2005/07/05 8.0-rc4 Added a Preferences panel. Cleaned up |
| 126 | rendering for synthetic italic fonts. Further |
| 127 | improved menu parsing. Use system highlight |
| 128 | color. Added previous- and next-mark history |
| 129 | navigation commands bound to M-p,M-n. |
| 130 | Miscellaneous bug fixes. |
| 131 | |
| 132 | 2005/08/04 8.0-rc5 All internal string handling changed to UTF-8. |
| 133 | This means menu items, color and color list |
| 134 | names, and a few other things will now display |
| 135 | properly. It does NOT mean UTF-8 filenames |
| 136 | are displayed correctly in the minibuffer. |
| 137 | Also relating to UTF-8, contents of files |
| 138 | using this coding can now be displayed (though |
| 139 | not auto-recognized; add extensions to your |
| 140 | default coding alist). Limited mac-roman |
| 141 | support was also added (also sans recognition). |
| 142 | Certain characters are not displayed properly |
| 143 | due to a translation problem. (UTF-8 based on |
| 144 | work by Otfried Cheong; mac-roman from |
| 145 | emacs-21.) Partial support for "dead-key" |
| 146 | handling now added. Transparency (e.g., M-x |
| 147 | set-background-color ARGB88FFFFFF) improved: |
| 148 | only the background is made transparent. |
| 149 | Cursor drawing glitches fixed. Preferences |
| 150 | handling improved. Fixed some portability |
| 151 | problems on Tiger and Puma. |
| 152 | |
| 153 | 2005/09/12 8.0 Bundled ispell on OS X. Minor bug fixes and |
| 154 | stability improvements. Compiles under gcc-4. |
| 155 | |
| 156 | 2005/09/26 8.0.1 Correct clipped rendering for synthetic |
| 157 | italics. Include the info directory. |
| 158 | Fix grabenv. Bundle whitespace package. |
| 159 | |
| 160 | 2005/10/27 8.0.2 Correct rendering for wide characters during |
| 161 | cursor movement. Fix bungled hack in ispell |
| 162 | bundling. |
| 163 | |
| 164 | 2005/11/05 9.0-pre1 Updated to latest Emacs CVS code on unicode-2 |
| 165 | branch (proposed to be released 2006/2007 as |
| 166 | Emacs 23). |
| 167 | |
| 168 | 2005/11/11 9.0-pre2 Fix crashes for deiconifying and loading |
| 169 | certain images. Improve vertical font metrics |
| 170 | (fixes inaccurate page up/down, window size, |
| 171 | and partial lines). Support better remapping |
| 172 | of Alt/Opt and remapping of Command. More |
| 173 | insistent defaulting of scrollbar to right. |
| 174 | Modest improvements to build process. |
| 175 | |
| 176 | 2006/04/22 9.0-pre2a Stopgap interim release to sync w/latest |
| 177 | unicode-2 CVS. Includes XPM and partial |
| 178 | toolbar support. |
| 179 | |
| 180 | 2006/06/08 9.0-pre3 Major upgrade to keyboard handling: |
| 181 | system-selected compositional input methods |
| 182 | should now work, as well as more keys / |
| 183 | keyboards. XPM, toolbar, and tooltip support. |
| 184 | Some improvements to scrollbars, zoom, italic |
| 185 | rendering, pasting, Color panel. Added function |
| 186 | ns-set-background-alpha to work around |
| 187 | inability to customize with numeric colors. |
| 188 | |
| 189 | 2006/12/24 9.0-rc1 Reworked font handling and text rendering to |
| 190 | use Kenichi Handa's new font back-end system. |
| 191 | Font sets are now supported and automatically |
| 192 | created when a font is selected. Added recent |
| 193 | X11 colors to Emacs.clr (remove |
| 194 | ~/Library/Colors/Emacs.clr to pick up). Added |
| 195 | ns-option-modifier, ns-control-modifier, |
| 196 | ns-function-modifier customization variables. |
| 197 | Update menus to Emacs 21+ conventions. Right |
| 198 | mouse button now generates mouse-3 events. |
| 199 | Various bug fixes and rendering improvements. |
| 200 | |
| 201 | 2007/09/10 9.0-rc2 Improve menubar, popup menu, and scrollbar |
| 202 | behavior, let accented char entry work in |
| 203 | isearch, follow system keymap for shortcut |
| 204 | keys, fix border and box drawing, remove |
| 205 | glitches in modeline drawing, support |
| 206 | overstrike for unavailable bold fonts, fix XPM |
| 207 | related crasher bugs. Incremental font |
| 208 | metrics caching and other performance |
| 209 | improvements. Shared-lisp builds now possible. |
| 210 | |
| 211 | 2007/09/20 9.0-rc2a Interim release. New features: composed |
| 212 | character display, colored fringe bitmaps, |
| 213 | colored relief drawing, dynamic resizing, |
| 214 | Bug fixes: popup menu position and selection, |
| 215 | font width calculation, face color adaptation |
| 216 | to background, submenu keyboard navigation. |
| 217 | NOT TESTED ON GNUSTEP. |
| 218 | |
| 219 | 2007/11/19 9.0-rc3 Integrated the multi-TTY functionality from |
| 220 | emacs core (however, mixed TTY and GUI |
| 221 | sessions are not working yet). Support 10.5. |
| 222 | Give site-lisp load precedence over lisp and |
| 223 | add a compile option to prefer an additional |
| 224 | directory, use miniaturized miniwindow images |
| 225 | in some cases, rename cursor types for |
| 226 | consistency w/other emacs terms, improved font |
| 227 | selection for symbol scripts. |
| 228 | Bug fixes: fringe and bitmap, frame deletion, |
| 229 | resizing, cursor blink, workspace open-file, |
| 230 | image backgrounds, toolbar item enablement, |
| 231 | context menu positioning. |
| 232 | |
| 233 | 2008/07/15 (none) Merge to GNU Emacs CVS trunk. |
| 234 | |
| 235 | |
| 236 | Contributors |
| 237 | ------------ |
| 238 | In addition to the folks listed in etc/AUTHORS responsible for GNU Emacs |
| 239 | itself, the NeXTstep port owes to the following people: |
| 240 | |
| 241 | Carl Edman |
| 242 | original author and maintainer, mainly UI |
| 243 | Michael Brouwer |
| 244 | heavy contributor, input handling and other areas |
| 245 | Christian Limpach |
| 246 | help / maintenance on NeXTstep |
| 247 | Scott Bender |
| 248 | OpenStep, Rhapsody ports |
| 249 | Christophe de Dinechin |
| 250 | MacOS X port |
| 251 | Adrian Robert |
| 252 | GNUstep port, update Emacs 20 -> 21+ |
| 253 | |
| 254 | Joe Reiss |
| 255 | popup menu, dialog boxes; icons |
| 256 | Andrew Athan |
| 257 | font panel integration |
| 258 | Scott Byer |
| 259 | improved rendering code |
| 260 | Scott Hess |
| 261 | keyboard handling suggestions |
| 262 | |
| 263 | Rahul Abrol |
| 264 | "hide others" patch |
| 265 | Adam Ratcliffe |
| 266 | preferences panel documentation |
| 267 | Peter Dyballa |
| 268 | assistance with non-ASCII rendering and keyboard handling |
| 269 | David M. Cooke |
| 270 | fix to XPM crash bug |
| 271 | Carsten Bormann |
| 272 | initial patch and assistance getting dired working for non-ASCII filenames |
| 273 | Andrew Moore |
| 274 | assistance on ns-mark-nav extension |
| 275 | |
| 276 | The GNUstep port was made possible through the assistance of Adam |
| 277 | Fedor, Fred Kiefer, M. Uli Klusterer, Alexander Malmberg, Jonas |
| 278 | Matton, and Riccardo Mottola. Leigh Smith maintained the SourceForge |
| 279 | project for a period. |
| 280 | |
| 281 | Suggestions from Darcy Brockbank, Timothy Bissell, Scott Byer, David |
| 282 | Griffiths, Scott Hess, Eberhard Mandler, John C. Randolph, and Bradley |
| 283 | Taylor all helped things along at one point or another. Axel Seibert |
| 284 | and Paul J. Sanchez offered their time and machines to make a |
| 285 | binary release possible. |
| 286 | |
| 287 | We would also like to thank a number of people who kept up the |
| 288 | constant supply of bug reports, suggested features and praise: Hardy |
| 289 | Mayer, Gisli Ottarsson, Anthony Heading, David Bau, Jamie Zawinski, |
| 290 | Martin Moncrieffe, Simson L. Garfinkel, Richard Stallman, Stephen |
| 291 | Anderson, Ivo Welch, Magnus Nordborg, Tom Epperly, Andreas Koenig, |
| 292 | Yves Arrouye, Anil Somayaji, Gregor Hoffleit; and the few hundred |
| 293 | other people on the mailing list from whom we didn't hear much, but |
| 294 | the presence of which assured us that maybe this project was actually |
| 295 | worth doing. |
| 296 | |
| 297 | \f |
| 298 | This file is part of GNU Emacs. |
| 299 | |
| 300 | GNU Emacs is free software: you can redistribute it and/or modify |
| 301 | it under the terms of the GNU General Public License as published by |
| 302 | the Free Software Foundation, either version 3 of the License, or |
| 303 | (at your option) any later version. |
| 304 | |
| 305 | GNU Emacs is distributed in the hope that it will be useful, |
| 306 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 307 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 308 | GNU General Public License for more details. |
| 309 | |
| 310 | You should have received a copy of the GNU General Public License |
| 311 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |