@c This is part of the Emacs manual.
-@c Copyright (C) 2000 Free Software Foundation, Inc.
+@c Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Mac OS, MS-DOS, Antinews, Top
@appendix Emacs and the Mac OS
@cindex Mac OS
@cindex Macintosh
- Emacs built on the Mac OS supports many of its major features:
+ Emacs built on Mac OS X supports most of its major features:
multiple frames, colors, scroll bars, menu bars, use of the mouse,
-fontsets, international characters, input methods, coding systems, and
-synchronous subprocesses (@code{call-process}). Much of this works in
-the same way as on other platforms and is therefore documented in the
-rest of this manual. This section describes the peculiarities of using
-Emacs under the Mac OS.
-
- The following features of Emacs are not yet supported on the Mac:
-unexec (@code{dump-emacs}), asynchronous subprocesses
-(@code{start-process}), and networking (@code{open-network-connection}).
-As a result, packages such as Gnus, Ispell, and Comint do not work.
-
- Since external Unix programs to handle commands such as
-@code{print-buffer} and @code{diff} are not available on the Mac OS,
-they are not supported in the Mac OS version.
+fontsets, international characters, input methods, coding systems,
+asynchronous and synchronous subprocesses, unexec (@code{dump-emacs}),
+and networking (@code{open-network-stream}). Support for various
+image file formats has not been implemented yet.
+
+ The following features of Emacs are not yet supported on the Mac OS
+8 or 9: unexec (@code{dump-emacs}), asynchronous subprocesses
+(@code{start-process}), and networking (@code{open-network-stream}).
+As a result, packages such as Gnus, GUD, and Comint do not work.
+However, synchronous subprocesses (@code{call-process}) are supported.
+Since external programs to handle commands such as @code{print-buffer}
+and @code{diff} are not available on Mac OS 8 or 9, they are not
+supported.
+
+ Most of the features that are supported work in the same way as on
+other platforms and are therefore documented in the rest of this
+manual. This section describes the peculiarities of using Emacs under
+the Mac OS.
@menu
* Input: Mac Input. Keyboard input on the Mac.
@node Mac Input
@section Keyboard Input on the Mac
-@cindex Meta (under Mac OS)
-@cindex Mac keyboard coding
+@cindex Meta (Mac OS)
+@cindex keyboard coding (Mac OS)
@vindex mac-command-key-is-meta
@vindex mac-keyboard-text-encoding
On the Mac, Emacs can use either the @key{option} key or the
@key{command} key as the @key{META} key. If the value of the variable
@code{mac-command-key-is-meta} is non-@code{nil} (its default value),
-Emacs uses the @key{command} key as the @key{META} key. Otherwise it uses the
-@key{option} key as the @key{META} key.
+Emacs uses the @key{command} key as the @key{META} key. Otherwise it
+uses the @key{option} key as the @key{META} key.
Most people should want to use the @key{command} key as the @key{META} key,
so that dead-key processing with the @key{option} key will still work. This is
The Mac keyboard ordinarily generates characters in the Mac Roman
encoding. To use it for entering ISO Latin-1 characters directly, set
the value of the variable @code{mac-keyboard-text-encoding} to
-@code{kTextEncodingISOLatin1}. Note that that not all Mac Roman
-characters that can be entered at the keyboard can be converted to ISO
-Latin-1 characters.
+@code{kTextEncodingISOLatin1}. Note that not all Mac Roman characters
+that can be entered at the keyboard can be converted to ISO Latin-1
+characters.
- To enter ISO Latin-2 characters directly from the Mac keyboard. Set
+ To enter ISO Latin-2 characters directly from the Mac keyboard, set
the value of @code{mac-keyboard-text-encoding} to
@code{kTextEncodingISOLatin2}. Then let Emacs know that the keyboard
-generates Latin-2 codes by typink @kbd{C-x RET k iso-latin-2 RET}. To
-make this setting permanent, put this in your @file{.emacs} init file:
+generates Latin-2 codes, by typing @kbd{C-x @key{RET} k iso-latin-2
+@key{RET}}. To make this setting permanent, put this in your
+@file{.emacs} init file:
@lisp
(set-keyboard-coding-system 'iso-latin-2)
@node Mac International
@section International Character Set Support on the Mac
@cindex Mac Roman coding system
-@cindex Mac clipboard support
+@cindex clipboard support (Mac OS)
The Mac uses a non-standard encoding for the upper 128 single-byte
-characters. It also deviates from the ISO 2022 standard by using code
-points in the range 128-159. The coding system @code{mac-roman} is used
-to represent this Mac encoding. It is used for editing files stored in
-this native encoding, and for displaying file names in Dired mode.
+characters. It also deviates from the ISO 2022 standard by using
+character codes in the range 128-159. The coding system
+@code{mac-roman} is used to represent this Mac encoding. It is used
+for editing files stored in this native encoding, and for displaying
+file names in Dired mode.
Any native (non-symbol) Mac font can be used to correctly display
characters in the @code{mac-roman} coding system.
- The fontset @code{fontset-mac} is created automatically when Emacs is
-run on the Mac by the following expression. It displays characters in
-the @code{mac-roman} coding system using 12-point Monaco.
+ The fontset @code{fontset-mac} is created automatically when Emacs
+is run on the Mac. It displays characters in the @code{mac-roman}
+coding system using 12-point Monaco.
To insert characters directly in the @code{mac-roman} coding system,
-type @kbd{C-x RET k mac-roman RET}, or put this in your @file{.emacs}
-init file:
+type @kbd{C-x @key{RET} k mac-roman @key{RET}}, customize the option
+@code{keyboard-coding-system}, or put this in your init file:
@lisp
(set-keyboard-coding-system 'mac-roman)
Methods}) or the Mac OS to enter international characters.
To use the former, see the International Character Set Support section
-of the manual.
+of the manual (@pxref{International}).
To use input methods provided by the Mac OS, set the keyboard coding
-system accordingly using the @kbd{C-x RET k} command
+system accordingly using the @kbd{C-x @key{RET} k} command
(@code{set-keyboard-coding-system}). For example, for Traditional
Chinese, use @samp{chinese-big5} as keyboard coding system; for
Japanese, use @samp{sjis}, etc. Then select the desired input method in
one in another Mac application and yank it into a Emacs buffer.
The encoding of text selections must be specified using the commands
-@kbd{C-x RET x} (@code{set-selection-coding-system}) or @kbd{C-x RET X}
-(@code{set-next-selection-coding-system}) (e.g., for Traditional
-Chinese, use @samp{chinese-big5-mac} and for Japanese,
+@kbd{C-x @key{RET} x} (@code{set-selection-coding-system}) or @kbd{C-x
+@key{RET} X} (@code{set-next-selection-coding-system}) (e.g., for
+Traditional Chinese, use @samp{chinese-big5-mac} and for Japanese,
@samp{sjis-mac}). @xref{Specify Coding}, for more details.
@node Mac Environment Variables
@section Environment Variables and Command Line Arguments.
-@cindex Mac environment variables
+@cindex environment variables (Mac OS)
+
+ On Mac OS X, when Emacs is run in a terminal, it inherits the values
+of environment variables from the shell from which it is invoked.
+However, when it is run from the Finder as a GUI application, it
+inherits no environment variable values.
- Environment variables and command line arguments for Emacs can be set
-by modifying the @samp{STR#} resources 128 and 129, respectively. A common
-environment variable that one may want to set is @samp{HOME}.
+ On Mac OS 8 or 9, environment variables and command line arguments
+for Emacs can be set by modifying the @samp{STR#} resources 128 and
+129, respectively. A common environment variable that one may want to
+set is @samp{HOME}.
The way to set an environment variable is by adding a string of the
form
@node Mac Directories
@section Volumes and Directories on the Mac
-@cindex file names under Mac OS
+@cindex file names (Mac OS)
- The directory structure in the Mac OS is seen by Emacs as
+ The directory structure in the Mac OS is seen by Emacs as
@example
/@var{volumename}/@var{filename}
@end example
So when Emacs requests a file name, doing file name completion on
-@file{/} will display all volumes on the system. As in Unix, @file{..}
-can be used to go up a directory level.
+@file{/} will display all volumes on the system. You can use @file{..}
+to go up a directory level.
- To access files and folders on the desktop, look in the folder
-@file{Desktop Folder} in your boot volume (this folder is usually
-invisible in the Mac @code{Finder}).
+ On Mac OS 8 or 9, to access files and folders on the desktop, look
+in the folder @file{Desktop Folder} in your boot volume (this folder
+is usually invisible in the Mac @code{Finder}).
- Emacs creates the Mac folder @file{:Preferences:Emacs:} in the
-@file{System Folder} and uses it as the temporary directory. The Unix
-emulation code maps the Unix directory @file{/tmp} to it. Therefore it
-is best to avoid naming a volume @file{tmp}. If everything works
-correctly, the program should leave no files in it when it exits. You
-should be able to set the environment variable @code{TMPDIR} to use
-another directory but this folder will still be created.
+ On Mac OS 8 or 9, Emacs creates the Mac folder
+@file{:Preferences:Emacs:} in the @file{System Folder} and uses it as
+the temporary directory. Emacs maps the directory name @file{/tmp/}
+to that. Therefore it is best to avoid naming a volume @file{tmp}.
+If everything works correctly, the program should leave no files in it
+when it exits. You should be able to set the environment variable
+@code{TMPDIR} to use another directory but this folder will still be
+created.
@node Mac Font Specs
@section Specifying Fonts on the Mac
-@cindex font names under Mac OS
+@cindex font names (Mac OS)
- Fonts are specified to Emacs on the Mac in the form of a standard X
-font name. I.e.,
+ It is rare that you need to specify a font name in Emacs; usually
+you specify face attributes instead. But when you do need to specify
+a font name in Emacs on the Mac, use a standard X font name:
@smallexample
--@var{foundry}-@var{family}-@var{weight}-@var{slant}-@var{width}--@var{pixels}-@var{points}-@var{hres}-@var{vres}-@var{spacing}-@var{avewidth}-@var{charset}
+-@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{}
+@dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{charset}
@end smallexample
@noindent
-where the fields refer to foundry, font family, weight, slant, width,
-pixels, point size, horizontal resolution, vertical resolution,
-spacing, average width, and character set, respectively. Wildcards
-are supported as they are on X.
+@xref{Font X}. Wildcards are supported as they are on X.
- Native Apple fonts in Mac Roman encoding has foundry name @code{apple}
+ Native Apple fonts in Mac Roman encoding has maker name @code{apple}
and charset @code{mac-roman}. For example 12-point Monaco can be
specified by the name @samp{-apple-monaco-*-12-*-mac-roman}.
Native Apple Traditional Chinese, Simplified Chinese, Japanese, and
-Korean fonts have charsets @samp{big5-0}, @samp{gb2312-0},
-@samp{jisx0208.1983-sjis}, and @samp{ksc5601-1}, respectively.
+Korean fonts have charsets @samp{big5-0}, @samp{gb2312.1980-0},
+@samp{jisx0208.1983-sjis}, and @samp{ksc5601.1989-0}, respectively.
Single-byte fonts converted from GNU fonts in BDF format, which are not
in the Mac Roman encoding, have foundry, family, and character sets
@node Mac Functions
-@section Mac Specific Lisp Functions
-@cindex Lisp functions on the Mac OS
+@section Mac-Specific Lisp Functions
+@cindex Lisp functions specific to Mac OS
@findex do-applescript
The function @code{do-applescript} takes a string argument,
executes it as an AppleScript command, and returns the result as a
string.
-@findex mac-filename-to-unix
-@findex unix-filename-to-mac
- The function @code{mac-filename-to-unix} takes a Mac file name and
-returns the Unix equivalent. The function @code{unix-filename-to-mac}
-performs the opposite conversion. They are useful for constructing
-AppleScript commands to be passed to @code{do-applescript}.
+@findex mac-file-name-to-posix
+@findex posix-file-name-to-mac
+ The function @code{mac-file-name-to-posix} takes a Mac file name and
+returns the GNU or Unix equivalent. The function
+@code{posix-file-name-to-mac} performs the opposite conversion. They
+are useful for constructing AppleScript commands to be passed to
+@code{do-applescript}.