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