| 1 | Copyright (C) 2008, 2009 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. |
| 3 | |
| 4 | This directory contains the files needed to build Emacs on |
| 5 | Nextstep-based platforms, including GNUstep and Mac OS X. |
| 6 | |
| 7 | The Nextstep support code works on many POSIX systems (and possibly |
| 8 | W32) using the GNUstep libraries, and on MacOS X systems using the |
| 9 | Cocoa libraries. |
| 10 | |
| 11 | See the INSTALL file in this directory for compilation instructions. |
| 12 | |
| 13 | Those primarily responsible for the port were, in chronological order: |
| 14 | Michael Brouwer, Carl Edman, Christian Limpach, Scott Bender, |
| 15 | Christophe de Dinechin, and Adrian Robert. |
| 16 | |
| 17 | Peter Dyballa assisted in a variety of ways to improve text rendering |
| 18 | and keyboard handling, Adam Ratcliffe documented the Preferences |
| 19 | panel, David M. Cooke contributed fixes to XPM handling, and Carsten |
| 20 | Bormann helped get dired working for non-ASCII filenames. People who |
| 21 | provided additional assistance include Adam Fedor, Fred Kiefer, M. Uli |
| 22 | Klusterer, Alexander Malmberg, Jonas Matton, and Riccardo Mottola. |
| 23 | See AUTHORS file and "Release History" below for more information. |
| 24 | |
| 25 | |
| 26 | Requirements |
| 27 | ------------ |
| 28 | MacOS X 10.3 or later |
| 29 | |
| 30 | - or - |
| 31 | |
| 32 | GNUstep "Startup 0.13" or later |
| 33 | Tested on GNU/Linux, should work on other systems, perhaps with minor |
| 34 | build tweaking. |
| 35 | |
| 36 | |
| 37 | Background |
| 38 | ---------- |
| 39 | Within Emacs, the port and its code are referred to using the term |
| 40 | "Nextstep", despite the fact that no system or API has been released |
| 41 | under this name in more than 10 years. Here's some background on why: |
| 42 | |
| 43 | NeXT, Inc. introduced the NeXTstep API with its computer and operating |
| 44 | system in the late 1980's. Later on, in collaboration with Sun, this |
| 45 | API was published as a specification called OpenStep. The GNUstep |
| 46 | project started in the early 1990's to provide a free implementation |
| 47 | of this API. Later on, Apple bought NeXT (some would say "NeXT bought |
| 48 | Apple") and made OpenStep the basis of OS X, calling the API "Cocoa". |
| 49 | Since then, Cocoa has evolved beyond the OpenStep specification, and |
| 50 | GNUstep has followed it. |
| 51 | |
| 52 | Thus, calling this port "OpenStep" is not technically accurate, and in |
| 53 | the absence of any other determinant, we are using the term |
| 54 | "Nextstep", both because it signifies the original inspiration that |
| 55 | created these APIs, and because all of the classes and functions still |
| 56 | begin with the letters "NS". |
| 57 | |
| 58 | (See http://en.wikipedia.org/wiki/Nextstep) |
| 59 | |
| 60 | This Emacs port was first released in the early 1990's on the NeXT |
| 61 | computer, and was successively updated to OpenStep, Rhapsody, OS X, |
| 62 | and then finally GNUstep, tracking GNU emacs core releases in the |
| 63 | meantime. |
| 64 | |
| 65 | |
| 66 | Release History |
| 67 | --------------- |
| 68 | |
| 69 | 1990-1992 1.0-3.0 (?) Michael Brouwer's socket/terminal communication |
| 70 | based version (GUI ran as a separate process.) |
| 71 | |
| 72 | 1993/10/25 3.0.1 Last (?) release of Brouwer version. Supports |
| 73 | NeXTstep 3.x and below. |
| 74 | |
| 75 | 1994/04/24 4.0 Carl Edman's version using direct API following |
| 76 | the X-Windows port. NeXTstep 3.x only. |
| 77 | |
| 78 | 1995/06/15 4.1 Second (and last) Carl Edman release, based on |
| 79 | Emacs 19.28. |
| 80 | |
| 81 | 1996/07/28 4.2 First Christian Limpach release, based on |
| 82 | Emacs 19.29. |
| 83 | |
| 84 | ?? 5.0 ?? |
| 85 | |
| 86 | 1997/12/?? 6.0b1 Ported to OpenStep by Scott Bender. Updated |
| 87 | to Emacs 20.2. |
| 88 | |
| 89 | ?? 6.0b2 (?) Scott Bender: ported to Rhapsody. |
| 90 | |
| 91 | 1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3. |
| 92 | |
| 93 | 2001/06/25 7.0 Ported to MacOS X (10.1) by Christophe de |
| 94 | Dinechin. Release based on Emacs 20.7. Hosting |
| 95 | moved to SourceForge. |
| 96 | |
| 97 | 2002/01/03 7.0.1 Bug fixes. |
| 98 | |
| 99 | 2002/08/27 7.0.2 Jaguar (OS X 10.2) support. Added an autoconf |
| 100 | option for sys_nerr being in stdio. Added |
| 101 | libncurses to the build libraries. Fixed a |
| 102 | problem with ns-alternate-is-meta. Changed the |
| 103 | icon color to blue, since Jaguar is yellow. |
| 104 | |
| 105 | 2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert. |
| 106 | |
| 107 | 2004/11/04 8.0-pre2 Restored functionality on OS X (menu code |
| 108 | cleanup). Improved scrollbar handling and |
| 109 | paste from other applications. File icons |
| 110 | obtained properly from NSWorkspace. Dropped |
| 111 | Gorm and Nib files. Background refresh bug |
| 112 | fixed (in GNUstep). Various small fixes and |
| 113 | code cleanups. Now starts up under Art. |
| 114 | |
| 115 | 2005/01/27 8.0-pre3 Bold and italic faces supported. Cursor and |
| 116 | mouse highlighting rendering bugs |
| 117 | fixed. Drag/drop and cut/paste interaction |
| 118 | w/external apps fixed. File load/save panels |
| 119 | available. Stability and rendering speed |
| 120 | improvements. Some ObjC and VC mode bugs fixed. |
| 121 | |
| 122 | 2005/02/27 8.0-rc1 Dynamic path detection at startup so Emacs.app |
| 123 | can be moved anywhere. Added binary packages |
| 124 | and simplified source installation to running |
| 125 | two scripts. Thorough cleanup of menu code; |
| 126 | now fully functional. Fixed all detected |
| 127 | memory leaks. Minor frame focus and title |
| 128 | bugs fixed. |
| 129 | |
| 130 | 2005/03/30 8.0-rc2 "Configure" info directory now uses dynamic |
| 131 | path setting, so info files can go under .app. |
| 132 | Improved select() handling and PTY fixes so |
| 133 | shell mode and tramp run smoothly. |
| 134 | Significant rendering optimizations under |
| 135 | GNUstep, and now works under Art backend. |
| 136 | Non-Latin text rendering works (but not |
| 137 | fontsets), and LEIM is bundled. UTF8 is used |
| 138 | for clipboard interaction. |
| 139 | Arrow cursor now used on scrollbar. |
| 140 | objc-mode and tramp now bundled in site-lisp. |
| 141 | |
| 142 | 2005/05/30 8.0-rc3 Fixed bug with parsing of "easymenu" menus. |
| 143 | Many problems with modes such as SLIME, MatLab, |
| 144 | and Planner go away. Improved scrollbar |
| 145 | handling and rendering speed. Color panel |
| 146 | and other bug fixes. mac-fix-env utility. |
| 147 | Font handling improvements (OS X 10.3, 10.4): |
| 148 | - heed 'GSFontAntiAlias' default |
| 149 | - heed system antialiasing threshold |
| 150 | - added 'UseQuickdrawSmoothing' default to |
| 151 | invoke less heavy antialiasing |
| 152 | |
| 153 | 2005/07/05 8.0-rc4 Added a Preferences panel. Cleaned up |
| 154 | rendering for synthetic italic fonts. Further |
| 155 | improved menu parsing. Use system highlight |
| 156 | color. Added previous- and next-mark history |
| 157 | navigation commmands bound to M-p,M-n. |
| 158 | Miscellaneous bug fixes. |
| 159 | |
| 160 | 2005/08/04 8.0-rc5 All internal string handling changed to UTF-8. |
| 161 | This means menu items, color and color list |
| 162 | names, and a few other things will now display |
| 163 | properly. It does NOT mean UTF-8 filenames |
| 164 | are displayed correctly in the minibuffer. |
| 165 | Also relating to UTF-8, contents of files |
| 166 | using this coding can now be displayed (though |
| 167 | not auto-recognized; add extensions to your |
| 168 | default coding alist). Limited mac-roman |
| 169 | support was also added (also sans recognition). |
| 170 | Certain characters are not displayed properly |
| 171 | due to a translation problem. (UTF-8 based on |
| 172 | work by Otfried Cheong; mac-roman from |
| 173 | emacs-21.) Partial support for "dead-key" |
| 174 | handling now added. Transparency (e.g., M-x |
| 175 | set-background-color ARGB88FFFFFF) improved: |
| 176 | only the background is made transparent. |
| 177 | Cursor drawing glitches fixed. Preferences |
| 178 | handling improved. Fixed some portability |
| 179 | problems on Tiger and Puma. |
| 180 | |
| 181 | 2005/09/12 8.0 Bundled ispell on OS X. Minor bug fixes and |
| 182 | stability improvements. Compiles under gcc-4. |
| 183 | |
| 184 | 2005/09/26 8.0.1 Correct clipped rendering for synthetic |
| 185 | italics. Include the info directory. |
| 186 | Fix grabenv. Bundle whitespace package. |
| 187 | |
| 188 | 2005/10/27 8.0.2 Correct rendering for wide characters during |
| 189 | cursor movement. Fix bungled hack in ispell |
| 190 | bundling. |
| 191 | |
| 192 | 2005/11/05 9.0-pre1 Updated to latest Emacs CVS code on unicode-2 |
| 193 | branch (proposed to be released 2006/2007 as |
| 194 | Emacs 23). |
| 195 | |
| 196 | 2005/11/11 9.0-pre2 Fix crashes for deiconifying and loading |
| 197 | certain images. Improve vertical font metrics |
| 198 | (fixes inaccurate page up/down, window size, |
| 199 | and partial lines). Support better remapping |
| 200 | of Alt/Opt and remapping of Command. More |
| 201 | insistent defaulting of scrollbar to right. |
| 202 | Modest improvements to build process. |
| 203 | |
| 204 | 2006/04/22 9.0-pre2a Stopgap interim release to sync w/latest |
| 205 | unicode-2 CVS. Includes XPM and partial |
| 206 | toolbar support. |
| 207 | |
| 208 | 2006/06/08 9.0-pre3 Major upgrade to keyboard handling: |
| 209 | system-selected compositional input methods |
| 210 | should now work, as well as more keys / |
| 211 | keyboards. XPM, toolbar, and tooltip support. |
| 212 | Some improvements to scrollbars, zoom, italic |
| 213 | rendering, pasting, Color panel. Added function |
| 214 | ns-set-background-alpha to work around |
| 215 | inability to customize with numeric colors. |
| 216 | |
| 217 | 2006/12/24 9.0-rc1 Reworked font handling and text rendering to |
| 218 | use Kenichi Handa's new font back-end system. |
| 219 | Font sets are now supported and automatically |
| 220 | created when a font is selected. Added recent |
| 221 | X11 colors to Emacs.clr (remove |
| 222 | ~/Library/Colors/Emacs.clr to pick up). Added |
| 223 | ns-option-modifier, ns-control-modifier, |
| 224 | ns-function-modifier customization variables. |
| 225 | Update menus to Emacs 21+ conventions. Right |
| 226 | mouse button now generates mouse-3 events. |
| 227 | Various bug fixes and rendering improvements. |
| 228 | |
| 229 | 2007/09/10 9.0-rc2 Improve menubar, popup menu, and scrollbar |
| 230 | behavior, let accented char entry work in |
| 231 | isearch, follow system keymap for shortcut |
| 232 | keys, fix border and box drawing, remove |
| 233 | glitches in modeline drawing, support |
| 234 | overstrike for unavailable bold fonts, fix XPM |
| 235 | related crasher bugs. Incremental font |
| 236 | metrics caching and other performance |
| 237 | improvements. Shared-lisp builds now possible. |
| 238 | |
| 239 | 2007/09/20 9.0-rc2a Interim release. New features: composed |
| 240 | character display, colored fringe bitmaps, |
| 241 | colored relief drawing, dynamic resizing, |
| 242 | Bug fixes: popup menu position and selection, |
| 243 | font width calculation, face color adaptation |
| 244 | to background, submenu keyboard navigation. |
| 245 | NOT TESTED ON GNUSTEP. |
| 246 | |
| 247 | 2007/11/19 9.0-rc3 Integrated the multi-TTY functionality from |
| 248 | emacs core (however, mixed TTY and GUI |
| 249 | sessions are not working yet). Support 10.5. |
| 250 | Give site-lisp load precedence over lisp and |
| 251 | add a compile option to prefer an additional |
| 252 | directory, use miniaturized miniwindow images |
| 253 | in some cases, rename cursor types for |
| 254 | consistency w/other emacs terms, improved font |
| 255 | selection for symbol scripts. |
| 256 | Bug fixes: fringe and bitmap, frame deletion, |
| 257 | resizing, cursor blink, workspace open-file, |
| 258 | image backgrounds, toolbar item enablement, |
| 259 | context menu positioning. |
| 260 | |
| 261 | 2008/07/15 (none) Merge to GNU Emacs CVS trunk. |
| 262 | |
| 263 | \f |
| 264 | This file is part of GNU Emacs. |
| 265 | |
| 266 | GNU Emacs is free software: you can redistribute it and/or modify |
| 267 | it under the terms of the GNU General Public License as published by |
| 268 | the Free Software Foundation, either version 3 of the License, or |
| 269 | (at your option) any later version. |
| 270 | |
| 271 | GNU Emacs is distributed in the hope that it will be useful, |
| 272 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 273 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 274 | GNU General Public License for more details. |
| 275 | |
| 276 | You should have received a copy of the GNU General Public License |
| 277 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |