@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
-useful for entering non-ASCII Latin characters directly from the Mac
+useful for entering non-@acronym{ASCII} Latin characters directly from the Mac
keyboard, for example.
Emacs recognizes the setting in the Keyboard control panel and
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 variable
+@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
+@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}.
+
+@ignore
+ arch-tag: a822c2ab-4273-4997-927e-c153bb71dcf6
+@end ignore