@c This is part of the Emacs manual.
-@c Copyright (C) 2000 Free Software Foundation, Inc.
+@c Copyright (C) 2000,2001 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
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.
+(@code{start-process}), and networking (@code{open-network-stream}).
+As a result, packages such as Gnus, GUD, and Comint do not work.
- Since external Unix programs to handle commands such as
+ Since external 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.
@menu
-* Mac Input:: Keyboard input on the Mac.
-* Mac International:: International character set support on the Mac.
-* Mac Environment Variables:: Setting environment variables for Emacs.
-* Mac Directories:: Volumes and directories on the Mac.
-* Mac Font Specs:: Specifying fonts on the Mac.
-* Mac Functions:: Mac specific Lisp functions.
+* Input: Mac Input. Keyboard input on the Mac.
+* Intl: Mac International. International character sets on the Mac.
+* Env: Mac Environment Variables. Setting environment variables for Emacs.
+* Directories: Mac Directories. Volumes and directories on the Mac.
+* Font: Mac Font Specs. Specifying fonts on the Mac.
+* Functions: Mac Functions. Mac-specific Lisp functions.
@end menu
-
@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)
+(set-keyboard-coding-system 'iso-latin-2)
@end lisp
@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 filenames 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)
Environment variables and command line arguments for Emacs can be set
by modifying the @samp{STR#} resources 128 and 129, respectively. A common
@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
@example
-/<volumename>/<pathname>
+/@var{volumename}/@var{filename}
@end example
-So when Emacs requests a file name, doing filename completion on
-@file{/} will display all volumes on the system. As in Unix, @file{..}
-can be used to go up a directory level.
+So when Emacs requests a file name, doing file name completion on
+@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}).
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
+@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
@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:
-@example
- -FOUNDRY-FAMILY-WEIGHT-SLANT-WIDTH--PIXELS-POINTS-
- HRES-VRES-SPACING-AVEWIDTH-CHARSET
-@end example
+@smallexample
+-@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
-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.
+@noindent
+@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 pathname 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}.