This file contains general information on building GNU Emacs.
-For more information specific to the MS-Windows, GNUstep/Mac OS X, and
+For more information specific to the MS-Windows, GNUstep/macOS, and
MS-DOS ports, also read the files nt/INSTALL, nextstep/INSTALL, and
msdos/INSTALL. For information about building from a repository checkout
(rather than a release), also read the file INSTALL.REPO.
DETAILED BUILDING AND INSTALLATION:
-(This is for a Unix or Unix-like system. For GNUstep and Mac OS X,
+(This is for a Unix or Unix-like system. For GNUstep and macOS,
see nextstep/INSTALL. For non-ancient versions of MS Windows, see
the file nt/INSTALL. For MS-DOS and MS Windows 3.X, see msdos/INSTALL.)
# ==================== Where To Install Things ====================
-# Location to install Emacs.app under GNUstep / Mac OS X.
+# Location to install Emacs.app under GNUstep / macOS.
# Later values may use these.
ns_appbindir=@ns_appbindir@
ns_appresdir=@ns_appresdir@
in Emacs Lisp manual.
'msdos' holds configuration files for compiling Emacs under MS-DOS.
'nextstep' holds instructions and some other files for compiling the
- Nextstep port of Emacs, for GNUstep and Mac OS X Cocoa.
-'nt' holds various command files and documentation files that pertain
- to building and running Emacs on Windows 9X/ME/NT/2000/XP.
+ Nextstep port of Emacs, for GNUstep and macOS Cocoa.
+'nt' holds code and documentation for building Emacs on MS-Windows.
'test' holds tests for various aspects of Emacs's functionality.
Building Emacs on non-Posix platforms requires tools that aren't part
__MINGW32__ Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC.
_MSC_VER Compiling the W32 port with the Microsoft C compiler.
MINGW_W64 Compiling the W32 port with the MinGW-w64 port of GCC.
-DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
+DARWIN_OS Compiling on macOS or pure Darwin (and using s/darwin.h).
SOLARIS2
USG
USG5_4
** Distinguishing GUIs **
HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
-HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
+HAVE_NS Use the NeXT/OpenStep/Cocoa UI under macOS or GNUstep.
NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
HAVE_X11 Compile support for the X11 GUI.
OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
AC_ARG_WITH([ns],[AS_HELP_STRING([--with-ns],
-[use Nextstep (OS X Cocoa or GNUstep) windowing system.
-On by default on Mac OS X.])],[],[with_ns=maybe])
+[use Nextstep (macOS Cocoa or GNUstep) windowing system.
+On by default on macOS.])],[],[with_ns=maybe])
OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI in a Cygwin build])
OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
opsys=openbsd
;;
- ## Apple Darwin / Mac OS X
+ ## Apple Darwin / macOS
*-apple-darwin* )
case "${canonical}" in
*-apple-darwin[0-9].*) unported=yes ;;
macfont_file=""
if test "${NS_IMPL_COCOA}" = "yes"; then
- AC_MSG_CHECKING([for OSX 10.6 or newer])
+ AC_MSG_CHECKING([for Mac OS X 10.6 or newer])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AppKit/AppKit.h>],
[
#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
; /* OK */
#else
- error "OSX 10.6 or newer required";
+ error "Mac OS X 10.6 or newer required";
#endif
#endif
])],
AC_MSG_RESULT([$ns_osx_have_106])
if test $ns_osx_have_106 = no; then
- AC_MSG_ERROR([OSX 10.6 or newer is required]);
+ AC_MSG_ERROR([Mac OS X 10.6 or newer is required]);
fi
fi
fi
GNUSTEP_CFLAGS=
### Use NeXTstep API to implement GUI.
if test "${HAVE_NS}" = "yes"; then
- AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
+ AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on macOS.])
if test "${NS_IMPL_COCOA}" = "yes"; then
- AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.])
+ AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under macOS.])
fi
if test "${NS_IMPL_GNUSTEP}" = "yes"; then
AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
;;
darwin)
- dnl Not __APPLE__, as this may not be defined on non-OSX Darwin.
+ dnl Not __APPLE__, as this may not be defined on non-macOS Darwin.
dnl Not DARWIN, because Panther and lower CoreFoundation.h use DARWIN to
- dnl distinguish OS X from pure Darwin.
+ dnl distinguish macOS from pure Darwin.
AC_DEFINE(DARWIN_OS, [], [Define if the system is Darwin.])
;;
@env{LANG} is not set. But if @env{LC_ALL} is specified, it overrides
the settings of all the other locale environment variables.
-On MS-Windows and OS X, if @env{LANG} is not already set in the
+On MS-Windows and macOS, if @env{LANG} is not already set in the
environment, Emacs sets it based on the system-wide default. You can
set this in the ``Regional Settings'' Control Panel on some versions
of MS-Windows, and in the ``Language and Region'' System Preference on
-OS X.
+macOS.
The value of the @env{LC_CTYPE} category is
matched against entries in @code{locale-language-names},
@c See file emacs.texi for copying conditions.
@node Mac OS / GNUstep
@appendix Emacs and Mac OS / GNUstep
-@cindex Mac OS X
+@cindex macOS
@cindex Macintosh
@cindex GNUstep
This section describes the peculiarities of using Emacs built with
the GNUstep libraries on GNU/Linux or other operating systems, or on
-Mac OS X with native window system support. On Mac OS X, Emacs can be
+macOS with native window system support. On macOS, Emacs can be
built either without window system support, with X11, or with the
Cocoa interface; this section only applies to the Cocoa build. This
-does not support versions of Mac OS X earlier than 10.6.
+does not support versions before Mac OS X 10.6.
For various historical and technical reasons, Emacs uses the term
-@samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for
+@samp{Nextstep} internally, instead of ``Cocoa'' or ``macOS''; for
instance, most of the commands and variables described in this section
begin with @samp{ns-}, which is short for @samp{Nextstep}. NeXTstep
was an application interface released by NeXT Inc during the 1980s, of
they would when launched from the shell.
For the PATH and MANPATH variables, a system-wide method
-of setting PATH is recommended on Mac OS X, using the
+of setting PATH is recommended on macOS, using the
@file{/etc/paths} files and the @file{/etc/paths.d} directory.
@node Mac / GNUstep Customization
Useful in this context is the listing of all faces obtained by
@kbd{M-x list-faces-display}.
-@cindex Core Text, on Mac OS X
-In Mac OS X, Emacs uses a Core Text based font backend
+@cindex Core Text, on macOS
+In macOS, Emacs uses a Core Text based font backend
by default. If you prefer the older font style, enter the following
at the command-line before starting Emacs:
Emulate Unix systems. Like @code{GNU}, but sets
@code{ls-lisp-verbosity} to @code{(links uid)}.
@item MacOS
-Emulate MacOS@. Sets @code{ls-lisp-ignore-case} to @code{t}, and
+Emulate macOS@. Sets @code{ls-lisp-ignore-case} to @code{t}, and
@code{ls-lisp-dirs-first} and @code{ls-lisp-verbosity} to @code{nil}.
@item MS-Windows
Emulate MS-Windows. Sets @code{ls-lisp-ignore-case} and
@item @dots{}-unix
Don't do any end-of-line conversion; assume the file uses
newline to separate lines. (This is the convention normally used
-on Unix and GNU systems, and Mac OS X.)
+on Unix and GNU systems, and macOS.)
@item @dots{}-dos
Assume the file uses carriage-return linefeed to separate lines, and do
@item @dots{}-mac
Assume the file uses carriage-return to separate lines, and do the
-appropriate conversion. (This was the convention used on the
-Macintosh system prior to OS X.)
+appropriate conversion. (This was the convention used in Classic Mac
+OS.)
@end table
These variant coding systems are omitted from the
@noindent
or just @samp{fontset-standard} for short.
- On GNUstep and Mac OS X, the standard fontset is created using the value of
+ On GNUstep and macOS, the standard fontset is created using the value of
@code{ns-standard-fontset-spec}, and on MS Windows it is
created using the value of @code{w32-standard-fontset-spec}.
Emacs is displaying the frame using native MS-Windows GUI.
@item ns
Emacs is displaying the frame using the Nextstep interface (used on
-GNUstep and Mac OS X).
+GNUstep and macOS).
@item pc
Emacs is displaying the frame using MS-DOS direct screen writes.
@item nil
character (also called newline). The DOS convention, used on
MS-Windows and MS-DOS systems, is to use a carriage-return and a
linefeed at the end of a line. The Mac convention is to use just
-carriage-return. (This was the convention used on the Macintosh
-system prior to OS X.)
+carriage-return. (This was the convention used in Classic Mac OS.)
@cindex base coding system
@cindex variant coding system
Cygwin, a Posix layer on top of MS-Windows.
@item darwin
-Darwin (Mac OS X).
+Darwin (macOS).
@item gnu
The GNU system (using the GNU kernel, which consists of the HURD and Mach).
@cindex NeXTstep port
@cindex GNUstep port
-@cindex Mac OS X Cocoa
+@cindex macOS Cocoa
@item
There is a new NeXTstep port of Emacs. This supports GNUstep and Mac OS
X (via the Cocoa libraries). The Carbon port of Emacs, which supported
* Emacs for MS-DOS::
* Emacs for MS-Windows::
* Emacs for GNUstep::
-* Emacs for Mac OS X::
+* Emacs for macOS::
@end menu
@node Finding Emacs on the Internet
Beginning with version 23.1, Emacs supports GNUstep natively.
See the file @file{nextstep/INSTALL} in the distribution.
-@node Emacs for Mac OS X
-@section Where can I get Emacs for Mac OS X?
+@node Emacs for macOS
+@section Where can I get Emacs for macOS?
@cindex Apple computers, Emacs for
@cindex Macintosh, Emacs for
-@cindex Mac OS X, Emacs for
+@cindex macOS, Emacs for
-Beginning with version 22.1, Emacs supports Mac OS X natively.
+Beginning with version 22.1, Emacs supports macOS natively.
See the file @file{nextstep/INSTALL} in the distribution.
@c ------------------------------------------------------------
Mairix is a tool for indexing and searching words in locally stored
mail. It was written by Richard Curnow and is licensed under the
GPL@. Mairix comes with most popular GNU/Linux distributions, but it also
-runs under Windows (with cygwin), Mac OS X and Solaris. The homepage can
+runs under Windows (with cygwin), macOS and Solaris. The homepage can
be found at
@uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
* Sources of Routine Info:: How does IDLWAVE know about routine XYZ
* HTML Help Browser Tips::
* Configuration Examples:: The user is king
-* Windows and MacOS:: What still works, and how
+* Windows and macOS:: What still works, and how
* Troubleshooting:: When good computers turn bad
* GNU Free Documentation License:: The license for this documentation.
* Index:: Fast access
@cindex Subprocess of Emacs, IDL
@cindex Comint, Emacs package
@cindex Windows
-@cindex MacOS
+@cindex macOS
The IDLWAVE shell is an Emacs major mode which permits running the IDL
program as an inferior process of Emacs, and works closely with the
Emacs packages which handles the communication with the IDL program.
Unfortunately, IDL for Windows does not have command-prompt versions and
thus do not allow the interaction with Emacs, so the IDLWAVE shell
-currently only works under Unix and MacOSX.
+currently works under only Unix and macOS.
@menu
* Starting the Shell:: How to launch IDL as a subprocess
@end defopt
@defopt idlwave-library-path
-IDL library path for Windows and MacOS@. Under Unix/MacOSX, will be
+IDL library path for Windows and macOS@. Under Unix/macOS, will be
obtained from the Shell when run.
@end defopt
@defopt idlwave-system-directory
-The IDL system directory for Windows and MacOS@. Also needed for
+The IDL system directory for Windows and macOS@. Also needed for
locating HTML help and the IDL Assistant for IDL v6.2 and later. Under
-Unix/MacOSX, will be obtained from the Shell and recorded, if run.
+Unix/macOS, will be obtained from the Shell and recorded, if run.
@end defopt
@defopt idlwave-config-directory (@file{~/.emacs.d/idlwave})
@cindex User catalog
@cindex IDL library routine info
@cindex Windows
-@cindex MacOS
+@cindex macOS
@cindex IDL variable @code{!DIR}
@cindex @code{!DIR}, IDL variable
also much slower than scanning library catalogs.
You can scan any of the directories on the currently known path. Under
-Windows and MacOS (not OSX), you need to specify the IDL search path in
+Windows, you need to specify the IDL search path in
the variable @code{idlwave-library-path}, and the location of the IDL
directory (the value of the @code{!DIR} system variable) in the variable
@code{idlwave-system-directory}, like this@footnote{The initial @samp{+}
many other reasons.
@cindex Windows
-@cindex MacOS
@cindex IDL variable @code{!DIR}
@cindex @code{!DIR}, IDL variable
-Users of Windows and MacOS (not X) also must set the variable
+Users of Windows also must set the variable
@code{idlwave-system-directory} to the value of the @code{!DIR} system
variable in IDL@. IDLWAVE appends @file{lib} to the value of this
variable and assumes that all files found on that path are system
@noindent Individual platform recommendations:
@itemize @bullet
-@item Unix/MacOSX: The @uref{http://www.w3m.org,@code{w3m}} browser
+@item Unix/macOS: The @uref{http://www.w3m.org,@code{w3m}} browser
and its associated
@uref{http://emacs-w3m.namazu.org/,@code{emacs-w3m}} emacs mode
provide in-buffer browsing with image display, and excellent speed and
@html
<A NAME="WINDOWS_MAC"></A>
@end html
-@node Windows and MacOS
-@appendix Windows and MacOS
+@node Windows and macOS
+@appendix Windows and macOS
@cindex Windows
-@cindex MacOS
-@cindex MacOSX
+@cindex macOS
IDLWAVE was developed on a UNIX system. However, thanks to the
portability of Emacs, much of IDLWAVE does also work under different
-operating systems like Windows (with NTEmacs or NTXEmacs) or MacOS.
+operating systems like Windows (with NTEmacs or NTXEmacs).
The only real problem is that there is no command-line version of IDL
-for Windows or MacOS(<=9) with which IDLWAVE can interact. As a
+for Windows with which IDLWAVE can interact. As a
result, the IDLWAVE Shell does not work and you have to rely on IDLDE
to run and debug your programs. However, editing IDL source files
with Emacs/IDLWAVE works with all bells and whistles, including
pathname to the idl program with the variable
@code{idlwave-shell-explicit-file-name}. Note that you may need to
set your shell search path in two places when running Emacs as an Aqua
-application with MacOSX; see the next topic.
+application with macOS; see the next topic.
@item @strong{IDLWAVE is disregarding my @samp{IDL_PATH} which I set
-under MacOSX}
+under macOS}
If you run Emacs directly as an Aqua application, rather than from the
console shell, the environment is set not from your usual shell
Mairix is a tool for indexing and searching words in locally stored
mail. It was written by Richard Curnow and is licensed under the
GPL@. Mairix comes with most popular GNU/Linux distributions, but it also
-runs under Windows (with cygwin), Mac OS X and Solaris. The homepage can
+runs under Windows (with cygwin), macOS and Solaris. The homepage can
be found at
@uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
@vindex org-clock-idle-time
By customizing the variable @code{org-clock-idle-time} to some integer, such
as 10 or 15, Emacs can alert you when you get back to your computer after
-being idle for that many minutes@footnote{On computers using Mac OS X,
+being idle for that many minutes@footnote{On computers using macOS,
idleness is based on actual user idleness, not just Emacs' idle time. For
X11, you can install a utility program @file{x11idle.c}, available in the
@code{contrib/scripts} directory of the Org git distribution, or install the
@cindex afp method
This method is for connecting to remote hosts with the Apple Filing
-Protocol for accessing files on Mac OS X volumes. @value{tramp} access
+Protocol for accessing files on macOS volumes. @value{tramp} access
syntax requires a leading volume (share) name, for example:
@file{@trampfn{afp,user@@host,/volume}}.
online store at http://shop.fsf.org.
Emacs has been run on GNU/Linux, FreeBSD, NetBSD, OpenBSD, and on many
-Unix systems, on a variety of types of cpu, as well as on MSDOS,
-Windows and MacOS. See the file 'etc/MACHINES' in the Emacs
+Unix systems, on a variety of types of CPU, as well as on MS-DOS,
+MS-Windows and macOS. See the file 'etc/MACHINES' in the Emacs
distribution for a full list of machines that GNU Emacs has been tested
on, with machine-specific installation notes and warnings.
This was tested on a little-endian sh4 system (cpu type SH7751R) running
Gentoo Linux 2008.0.
-** Mac OS X
+** macOS
- Version 10.6 or newer. PowerPC is not supported.
+ Mac OS X 10.6 or newer. PowerPC is not supported.
For installation instructions see the file nextstep/INSTALL.
** Microsoft Windows
unless gfile is explicitly requested via --with-file-notification='gfile'.
** 'configure' detects the kqueue file notification library on *BSD
-and Mac OS X machines.
+and macOS machines.
** The configure option '--with-pkg-config-prog' has been removed.
Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
** 'x-select-enable-clipboard' is renamed 'select-enable-clipboard'
and 'x-select-enable-primary' is renamed 'select-enable-primary'.
-Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
-name it), with the proviso that on some systems (e.g. Windows)
-'select-enable-primary' is ineffective since the system doesn't
-have the equivalent of a primary selection.
+Additionally they both now apply to all systems (macOS, GNUstep,
+MS-Windows, you name it), with the proviso that on some systems (e.g.,
+MS-Windows) 'select-enable-primary' is ineffective since the system
+doesn't have the equivalent of a primary selection.
** New option 'switch-to-buffer-in-dedicated-window' allows you to
customize how 'switch-to-buffer' proceeds interactively when the
** Tramp
-*** New connection method "afp", which allows you to access Mac OS X
+*** New connection method "afp", which allows you to access macOS
volumes via the Apple Filing Protocol.
*** New connection method "nc", which allows you to access dumb
** File Notifications
-*** The kqueue library is integrated for *BSD and Mac OS X machines.
+*** The kqueue library is integrated for *BSD and macOS machines.
*** The new event 'stopped' signals, that a file notification watch is
not active any longer.
** The byte counts in etags-generated TAGS files are now the same on
MS-Windows as they are on other platforms.
-** On OS X, configure creates a Cocoa ("Nextstep") build by default.
+** On macOS, configure creates a Cocoa ("Nextstep") build by default.
Pass '--without-ns' to configure to create an X11 build, the old default.
-** OS X 10.5 or older is no longer supported.
+** Mac OS X 10.5 or older is no longer supported.
-** OS X on PowerPC is no longer supported.
+** Mac OS X on PowerPC is no longer supported.
** New variable 'ns-use-fullscreen-animation' controls animation for
non-native NS fullscreen. The default is nil. Set to t to enable
-animation when entering and leaving fullscreen. For native OSX fullscreen
-this has no effect.
+animation when entering and leaving fullscreen. For native macOS
+fullscreen this has no effect.
-** On the OS X Cocoa ("Nextstep") port, multicolor font (such as color
+** On the macOS Cocoa ("Nextstep") port, multicolor font (such as color
emoji) display is disabled. This feature was accidentally added when
Emacs 24.4 included the new Core Text based font backend code that was
originally implemented for a non-mainline port. This will be enabled
You no longer need to download a separate tarball in order to build
Emacs with Leim.
-** Support for MacOS X was added.
+** Support for Mac OS X was added.
See the files mac/README and mac/INSTALL for build instructions.
** Mac OS 9 port now uses the Carbon API by default. You can also
*** display-battery-mode replaces display-battery.
-*** battery.el now works on recent versions of OS X.
+*** battery.el now works on recent versions of Mac OS X.
** Games
** Directories passed to configure option `--enable-locallisppath' are
no longer created during installation.
-** Emacs for Nextstep (Mac OS X, GNUstep) can be built with ImageMagick support.
+** Emacs for Nextstep (OS X, GNUstep) can be built with ImageMagick support.
This requires pkg-config to be available at build time.
\f
*** New input method `vietnamese-vni'.
-** Nextstep (GNUstep / Mac OS X) port
+** Nextstep (GNUstep / OS X) port
*** Support for fullscreen and the frame parameter fullscreen.
** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit
support for libxml2, even if its presence is detected.
-** On Mac OS X, the Nextstep port requires OS X 10.4 or later.
+** On OS X, the Nextstep port requires Mac OS X 10.4 or later.
-** On Mac OS X, configure no longer automatically adds the Fink "/sw"
+** On OS X, configure no longer automatically adds the Fink "/sw"
directories to the search path. You must add them yourself if you want them.
\f
(It is only used internally in the Emacs C code.)
** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but
-reappear on mouse-over. (Requires OS X 10.6 or later.)
+reappear on mouse-over. (Requires Mac OS X 10.6 or later.)
** On Mac OS X, dragging a file into Emacs visits the file, like on
other platforms, rather than inserting its contents into the buffer.
This file contains information about GNU Emacs on "Nextstep" platforms.
The Nextstep support code works on many POSIX systems (and possibly
-W32) using the GNUstep libraries, and on MacOS X systems using the
-Cocoa libraries.
+W32) using the GNUstep libraries, and on macOS systems using the Cocoa
+libraries.
Background
----------
API was published as a specification called OpenStep. The GNUstep
project started in the early 1990's to provide a free implementation
of this API. Later on, Apple bought NeXT (some would say "NeXT bought
-Apple") and made OpenStep the basis of OS X, calling the API "Cocoa".
-Since then, Cocoa has evolved beyond the OpenStep specification, and
-GNUstep has followed it.
+Apple") and made OpenStep the basis of Mac OS X, calling the API
+"Cocoa". Since then, Cocoa has evolved beyond the OpenStep
+specification, and GNUstep has followed it.
Thus, calling this port "OpenStep" is not technically accurate, and in
the absence of any other determinant, we are using the term
(See http://en.wikipedia.org/wiki/Nextstep)
This Emacs port was first released in the early 1990's on the NeXT
-computer, and was successively updated to OpenStep, Rhapsody, OS X,
-and then finally GNUstep, tracking GNU emacs core releases in the
+computer, and was successively updated to OpenStep, Rhapsody, Mac OS
+X, and then finally GNUstep, tracking GNU Emacs core releases in the
meantime.
1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3.
-2001/06/25 7.0 Ported to MacOS X (10.1) by Christophe de
+2001/06/25 7.0 Ported to Mac OS X (10.1) by Christophe de
Dinechin. Release based on Emacs 20.7. Hosting
moved to SourceForge.
2002/01/03 7.0.1 Bug fixes.
-2002/08/27 7.0.2 Jaguar (OS X 10.2) support. Added an autoconf
+2002/08/27 7.0.2 Jaguar (Mac OS X 10.2) support. Added autoconf
option for sys_nerr being in stdio. Added
libncurses to the build libraries. Fixed a
problem with ns-alternate-is-meta. Changed the
2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert.
-2004/11/04 8.0-pre2 Restored functionality on OS X (menu code
+2004/11/04 8.0-pre2 Restored functionality on Mac OS X (menu code
cleanup). Improved scrollbar handling and
paste from other applications. File icons
obtained properly from NSWorkspace. Dropped
and Planner go away. Improved scrollbar
handling and rendering speed. Color panel
and other bug fixes. mac-fix-env utility.
- Font handling improvements (OS X 10.3, 10.4):
+ Font handling improvements (Mac OS X 10.3,
+ 10.4):
- heed 'GSFontAntiAlias' default
- heed system antialiasing threshold
- added 'UseQuickdrawSmoothing' default to
handling improved. Fixed some portability
problems on Tiger and Puma.
-2005/09/12 8.0 Bundled ispell on OS X. Minor bug fixes and
- stability improvements. Compiles under gcc-4.
+2005/09/12 8.0 Bundled ispell on Mac OS X. Minor bug fixes
+ and stability improvements. Compiles under
+ gcc-4.
2005/09/26 8.0.1 Correct clipped rendering for synthetic
italics. Include the info directory.
Scott Bender
OpenStep, Rhapsody ports
Christophe de Dinechin
- MacOS X port
+ macOS port
Adrian Robert
GNUstep port, update Emacs 20 -> 21+
- New option [[doc:org-gnus-no-server][org-gnus-no-server]] to start Gnus with =gnus-no-server=
- Org is now distributed with =htmlize.el= version 1.43
- ~org-drill.el~ has been updated to version 2.3.7
-- ~org-mac-iCal.el~ now supports MacOSX version up to 10.8
+- ~org-mac-iCal.el~ now supports OS X versions up to 10.8
- Various improvements to ~org-contacts.el~ and =orgpan.el=
** Outside Org
When you have a large number of buffers running auto-revert-mode, and
Emacs is configured to use the kqueue file notification library, it
uses an own file descriptor for every watched file. On systems with a
-small limit of file descriptors allowed per process, like OS X, you
+small limit of file descriptors allowed per process, like macOS, you
could run out of file descriptors. You won't be able to open new files.
auto-revert-use-notify is set to nil in global-auto-revert-mode, therefore.
**** Support 'proced' (implement 'process-attributes')
Unfortunately, a user-level process like Emacs does not have the
-privileges to get information about other processes under OS X.
+privileges to get information about other processes under macOS.
There are other ways to do this:
3) Ask the user to self-sign Emacs, if this feature is of interest.
Anders Lindgren <andlind@gmail.com> has implemented
-'process-attributes' for OS X, which currently only work when
+'process-attributes' for macOS, which currently only work when
running Emacs as root.
See this article by Bozhidar Batsov for an overview of Proced:
*** New features
-This section contains features unique to Nextstep and/or OS X.
+This section contains features unique to Nextstep and/or macOS.
**** PressAndHold for writing accented character
-On OS X, many application support the press and hold pattern to
+On macOS, many application support the press and hold pattern to
invoke a menu of accented characters. (See example at
https://support.apple.com/en-us/HT201586 .)
**** Floating scroll bars
-In modern OS X applications, the scroll bar often floats over the
+In modern macOS applications, the scroll bar often floats over the
content, and is invisible unless actually used. This makes the user
interface less cluttered and more area could be used to contain text.
**** Key bindings of CMD and ALT
Currently in the "ns" port, ALT is bound to Meta and CMD is bound to
-Super -- allowing the user to use typical OS X commands like CMD-A to
+Super -- allowing the user to use typical macOS commands like CMD-A to
mark everything.
Unfortunately, when using an international keyboard, you can't type
consider if is really is "NS" specific, or if it should be applied to
all build versions.
-- With the "NS" interface. This is the normal way to build Emacs on OS X.
+- With the "NS" interface. This is the normal way to build Emacs on
+ macOS.
-- With the "X11" interface. On OS X, this is mainly of interest to
+- With the "X11" interface. On macOS, this is mainly of interest to
developers of Emacs to get a "reference" interface implementations.
However, it might be of interest for people working remotely, as X11
applications can be used over a network connection.
*** Bugs
-**** Incorrect translation of Super modifier with Ctrl or Meta on OS X
+**** Incorrect translation of Super modifier with Ctrl or Meta on macOS
When pressing 'M-s-a', Emacs replies "M-s-Ã¥ is undefined". What
happened is a mix of Emacs view that Meta and Super has been pressed,
-and OS X view that ALT-a should yield "Ã¥" (U+00E5 LATIN SMALL LETTER A
-WITH RING ABOVE).
+and macOS view that ALT-a should yield "Ã¥" (U+00E5 LATIN SMALL LETTER
+A WITH RING ABOVE).
The bug reports suggest two different patches; unfortunately, neither
works properly. For example:
# ==================== Where To Install Things ====================
-# Location to install Emacs.app under GNUstep / Mac OS X.
+# Location to install Emacs.app under GNUstep / macOS.
# Later values may use this.
ns_appbindir=@ns_appbindir@
;; converts "\" to "/".
;; - For 0 generic: generic_to_unix_filename() downcases if there's
;; no lower case already present, and converts "\" to "/".
- ;; - For 'm' MacOS: macos_to_unix_filename() changes "/" to ":" and
+ ;; - For 'm' macOS: macos_to_unix_filename() changes "/" to ":" and
;; ":" to "/"
(setq fiddle (cond ((= ?M osid) t)
((= 0 osid) (string= efnname (upcase efnname)))))
;;; Commentary:
-;; There is at present support for GNU/Linux, OS X and Windows. This
+;; There is at present support for GNU/Linux, macOS and Windows. This
;; library supports both the `/proc/apm' file format of Linux version
;; 1.3.58 or newer and the `/proc/acpi/' directory structure of Linux
-;; 2.4.20 and 2.6. Darwin (OS X) is supported by using the `pmset'
+;; 2.4.20 and 2.6. Darwin (macOS) is supported by using the `pmset'
;; program. Windows is supported by the GetSystemPowerStatus API call.
;;; Code:
(cons ?t (or remaining-time "N/A")))))
\f
-;;; `pmset' interface for Darwin (OS X).
+;;; `pmset' interface for Darwin (macOS).
(defun battery-pmset ()
"Get battery status information using `pmset'.
(setq semantic-lex-c-preprocessor-symbol-map nil))
(dolist (D defines)
(add-to-list 'semantic-lex-c-preprocessor-symbol-map D))
- ;; Needed for parsing OS X libc
+ ;; Needed for parsing macOS libc
(when (eq system-type 'darwin)
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("__i386__" . "")))
(when (featurep 'semantic/bovine/c)
"Courier 10 Pitch"
;; This looks good on MS-Windows and OS X.
"Consolas"
- ;; This looks good on OS X. "Courier" looks good too, but is
+ ;; This looks good on macOS. "Courier" looks good too, but is
;; jagged on GNU/Linux and so is listed later as "courier".
"Courier Std"
;; Although these are anti-aliased, they are a bit faint compared
;; Keychain collection matching any user, host, and protocol
((eq entry 'macos-keychain-generic)
(auth-source-backend-parse '(:source (:macos-keychain-generic default))))
- ;; take macos-keychain-internet:XYZ and recurse to get it as MacOS
+ ;; take macos-keychain-internet:XYZ and recurse to get it as macOS
;; Keychain "XYZ" matching any user, host, and protocol
((and (stringp entry) (string-match "^macos-keychain-internet:\\(.+\\)"
entry))
(auth-source-backend-parse `(:source (:macos-keychain-internet
,(match-string 1 entry)))))
- ;; take macos-keychain-generic:XYZ and recurse to get it as MacOS
+ ;; take macos-keychain-generic:XYZ and recurse to get it as macOS
;; Keychain "XYZ" matching any user, host, and protocol
((and (stringp entry) (string-match "^macos-keychain-generic:\\(.+\\)"
entry))
:search-function #'auth-source-netrc-search
:create-function #'auth-source-netrc-create)))
- ;; the MacOS Keychain
+ ;; the macOS Keychain
((and
(not (null (plist-get entry :source))) ; the source must not be nil
(listp (plist-get entry :source)) ; and it must be a list
&key backend create delete
type max
&allow-other-keys)
- "Search the MacOS Keychain; spec is like `auth-source'.
+ "Search the macOS Keychain; spec is like `auth-source'.
All search keys must match exactly. If you need substring
matching, do a wider search and narrow it down yourself.
field), :user maps to \"-a USER\", and :port maps to \"-s PORT\".
Here's an example that looks for the first item in the default
-generic MacOS Keychain:
+generic macOS Keychain:
(let ((auth-sources \\='(macos-keychain-generic)))
(auth-source-search :max 1)
Here's another that looks for the first item in the internet
-MacOS Keychain collection whose label is `gnus':
+macOS Keychain collection whose label is `gnus':
(let ((auth-sources \\='(macos-keychain-internet)))
(auth-source-search :max 1 :label \"gnus\")
"
;; TODO
(assert (not create) nil
- "The MacOS Keychain auth-source backend doesn't support creation yet")
+ "The macOS Keychain auth-source backend doesn't support creation yet")
;; TODO
;; (macos-keychain-delete-item coll elt)
(assert (not delete) nil
- "The MacOS Keychain auth-source backend doesn't support deletion yet")
+ "The macOS Keychain auth-source backend doesn't support deletion yet")
(let* ((coll (oref backend source))
(max (or max 5000)) ; sanity check: default to stop at 5K
;; On Darwin, file names are always encoded in utf-8, no matter
;; the locale.
(setq default-file-name-coding-system 'utf-8)
- ;; Mac OS X's Terminal.app by default uses utf-8 regardless of
+ ;; macOS's Terminal.app by default uses utf-8 regardless of
;; the locale.
(when (and (null window-system)
(equal (getenv "TERM_PROGRAM" frame) "Apple_Terminal"))
;;; coding-system definition
(define-coding-system 'utf-8-hfs
- "UTF-8 based coding system for MacOS HFS file names.
+ "UTF-8 based coding system for macOS HFS file names.
The singleton characters in HFS normalization exclusion will not
be decomposed."
:coding-type 'utf-8
((memq system-type '(hpux usg-unix-v irix berkeley-unix))
'UNIX)) ; very similar to GNU
;; Anything else defaults to nil, meaning GNU.
- "Platform to emulate: GNU (default), MacOS, MS-Windows, UNIX.
+ "Platform to emulate: GNU (default), macOS, MS-Windows, UNIX.
Corresponding value is one of: nil, `MacOS', `MS-Windows', `UNIX'.
Set this to your preferred value; it need not match the actual platform
you are using.
(defvar message-strip-special-text-properties)
(defun report-emacs-bug-can-use-osx-open ()
- "Return non-nil if the OS X \"open\" command is available for mailing."
+ "Return non-nil if the macOS \"open\" command is available for mailing."
(and (featurep 'ns)
(equal (executable-find "open") "/usr/bin/open")
(memq system-type '(darwin))))
(defun report-emacs-bug-insert-to-mailer ()
"Send the message to your preferred mail client.
-This requires either the OS X \"open\" command, or the freedesktop
+This requires either the macOS \"open\" command, or the freedesktop
\"xdg-email\" command to be available."
(interactive)
(save-excursion
(setq default-directory "/") ;; in case inherited doesn't exist
;; Actually for my `man' the arg is a regexp.
;; POSIX says it must be ERE and "man-db" seems to agree,
- ;; whereas under MacOSX it seems to be BRE-style and doesn't
+ ;; whereas under macOS it seems to be BRE-style and doesn't
;; accept backslashes at all. Let's not bother to
;; quote anything.
(let ((process-environment (copy-sequence process-environment)))
'(menu-item "Emacs Tutorial" help-with-tutorial
:help "Learn how to use Emacs"))
- ;; In OS X it's in the app menu already.
+ ;; In macOS it's in the app menu already.
;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu.
(and (featurep 'ns)
(not (eq system-type 'darwin))
:type 'regexp)
(defcustom ange-ftp-potential-error-msgs
- ;; On Mac OS X we sometimes get things like:
+ ;; On macOS we sometimes get things like:
;;
;; ftp> open ftp.nluug.nl
;; Trying 2001:610:1:80aa:192:87:102:36...
;; browse-url-text-* Any text browser 0
;; browse-url-generic arbitrary
;; browse-url-default-windows-browser MS-Windows browser
-;; browse-url-default-macosx-browser Mac OS X browser
+;; browse-url-default-macosx-browser macOS browser
;; browse-url-xdg-open Free Desktop xdg-open on Gnome, KDE, Xfce4, LXDE
;; browse-url-kde KDE konqueror (kfm)
;; browse-url-elinks Elinks Don't know (tried with 0.12.GIT)
:value browse-url-generic)
(function-item :tag "Default Windows browser"
:value browse-url-default-windows-browser)
- (function-item :tag "Default Mac OS X browser"
+ (function-item :tag "Default macOS browser"
:value browse-url-default-macosx-browser)
(function-item :tag "Default browser"
:value browse-url-default-browser)
(t (w32-shell-execute "open" url))))
(defun browse-url-default-macosx-browser (url &optional _new-window)
- "Invoke the MacOS X system's default Web browser.
+ "Invoke the macOS system's default Web browser.
The optional NEW-WINDOW argument is not used"
(interactive (browse-url-interactive-arg "URL: "))
(start-process (concat "open " url) nil "open" url))
res-uid res-gid res-size res-symlink-target)
(tramp-message vec 5 "file attributes with ls: %s" localname)
;; We cannot send all three commands combined, it could exceed
- ;; NAME_MAX or PATH_MAX. Happened on Mac OS X, for example.
+ ;; NAME_MAX or PATH_MAX. Happened on macOS, for example.
(when (or (tramp-send-command-and-check
vec
(format "%s %s"
(when (search-forward "\r" nil t)
(setq cs-decode (tramp-compat-coding-system-change-eol-conversion
cs-decode 'dos)))
- ;; Special setting for Mac OS X.
+ ;; Special setting for macOS.
(when (and (string-match "^Darwin" uname)
(memq 'utf-8-hfs (coding-system-list)))
(setq cs-decode 'utf-8-hfs
(tramp-send-command vec "stty tabs" t)
(tramp-send-command vec "stty tab0" t))
- ;; Set utf8 encoding. Needed for Mac OS X, for example. This is
+ ;; Set utf8 encoding. Needed for macOS, for example. This is
;; non-POSIX, so we must expect errors on some systems.
(tramp-send-command vec "stty iutf8 2>/dev/null" t)
:type '(choice (const nil) integer))
;; Logging in to a remote host normally requires obtaining a pty. But
-;; Emacs on MacOS X has process-connection-type set to nil by default,
+;; Emacs on macOS has process-connection-type set to nil by default,
;; so on those systems Tramp doesn't obtain a pty. Here, we allow
;; for an override of the system default.
(defcustom tramp-process-connection-type t
("eps.gz" . "gv %s")
("dvi" . "xdvi %s")
("fig" . "xfig %s"))
- "Default file applications on a MacOS X system.
+ "Default file applications on a macOS system.
The system \"open\" is known as a default, but we use X11 applications
for some files for which the OS does not have a good default.
See `org-file-apps'.")
(\"html\" . default) to the list as well.
t Default for files not matched by any of the other options.
`system' The system command to open files, like `open' on Windows
- and Mac OS X, and mailcap under GNU/Linux. This is the command
+ and macOS, and mailcap under GNU/Linux. This is the command
that will be selected if you call `C-c C-o' with a double
\\[universal-argument] \\[universal-argument] prefix.
* gv 3.5, June 1997
`http://www.cs.wisc.edu/~ghost/gv/gv_doc/gv.html'
-* MacGSView (MacOS)
+* MacGSView (Mac OS)
`http://www.cs.wisc.edu/~ghost/macos/index.htm'
"
:type '(string :tag "Ghostview Utility")
;; 2) Use MinGW GDB instead.
;; 3) Use cygwin-mount.el
-;;; Mac OSX:
+;;; macOS:
-;; GDB in Emacs on Mac OSX works best with FSF GDB as Apple have made
-;; some changes to the version that they include as part of Mac OSX.
-;; This requires GDB version 7.0 or later (estimated release date Aug 2009)
-;; as earlier versions do not compile on Mac OSX.
+;; GDB in Emacs on macOS works best with FSF GDB as Apple have made
+;; some changes to the version that they include as part of macOS.
+;; This requires GDB version 7.0 or later as earlier versions do not
+;; compile on macOS.
;;; Known Bugs:
:type 'integer)
(defcustom idlwave-library-path nil
- "Library path for Windows and MacOS (OS9). Not needed under UNIX.
+ "Library path for Windows and Mac OS (OS9). Not needed under UNIX.
When selecting the directories to scan for IDL user catalog routine
info, IDLWAVE can, under UNIX, query the shell for the exact search
-path \(the value of !PATH). However, under Windows and MacOS
-\(pre-OSX), the IDLWAVE shell does not work. In this case, this
-variable can be set to specify the paths where IDLWAVE can find PRO
-files. The shell will only be asked for a list of paths when this
-variable is nil. The value is a list of directories. A directory
+path (the value of !PATH). However, under MS-Windows, the
+IDLWAVE shell does not work. In this case, this variable can be
+set to specify the paths where IDLWAVE can find PRO files. The
+shell will only be asked for a list of paths when this variable
+is nil. The value is a list of directories. A directory
preceded by a `+' will be searched recursively. If you set this
-variable on a UNIX system, the shell will not be queried. See also
-`idlwave-system-directory'."
+variable on a UNIX system, the shell will not be queried. See
+also `idlwave-system-directory'."
:group 'idlwave-routine-info
:type '(repeat (directory)))
(defcustom idlwave-system-directory ""
- "The IDL system directory for Windows and MacOS. Not needed under
+ "The IDL system directory for Windows and Mac OS. Not needed under
UNIX. Set this to the value of the `!DIR' system variable in IDL.
IDLWAVE uses this to find out which of the library routines belong to
the official system library. All files inside the `lib' subdirectory
(defun python-shell-comint-end-of-output-p (output)
"Return non-nil if OUTPUT is ends with input prompt."
(string-match
- ;; XXX: It seems on OSX an extra carriage return is attached
+ ;; XXX: It seems on macOS an extra carriage return is attached
;; at the end of output, this handles that too.
(concat
"\r?\n?"
-;;; ns-win.el --- lisp side of interface with NeXT/Open/GNUstep/MacOS X window system -*- lexical-binding: t -*-
+;;; ns-win.el --- lisp side of interface with NeXT/Open/GNUstep/macOS window system -*- lexical-binding: t -*-
;; Copyright (C) 1993-1994, 2005-2016 Free Software Foundation, Inc.
;;; Code:
(eval-when-compile (require 'cl-lib))
(or (featurep 'ns)
- (error "%s: Loading ns-win.el but not compiled for GNUstep/MacOS"
+ (error "%s: Loading ns-win.el but not compiled for GNUstep/macOS"
(invocation-name)))
;; Documentation-purposes only: actually loaded in loadup.el.
(require 'ucs-normalize)
(defgroup ns nil
- "GNUstep/Mac OS X specific features."
+ "GNUstep/macOS specific features."
:group 'environment)
;;;; Command line argument handling.
(setq ns-working-overlay nil))
-;; OS X file system Unicode UTF-8 NFD (decomposed form) support.
+;; macOS file system Unicode UTF-8 NFD (decomposed form) support.
(when (eq system-type 'darwin)
;; Used prior to Emacs 25.
(define-coding-system-alias 'utf-8-nfd 'utf-8-hfs)
(set-frame-font ns-input-font))
-;; Default fontset for Mac OS X. This is mainly here to show how a fontset
+;; Default fontset for macOS. This is mainly here to show how a fontset
;; can be set up manually. Ordinarily, fontsets are auto-created whenever
;; a font is chosen by
(defvar ns-standard-fontset-spec
",")
"String of fontset spec of the standard fontset.
This defines a fontset consisting of the Courier and other fonts that
-come with OS X.
+come with macOS.
See the documentation of `create-fontset-from-fontset-spec' for the format.")
(defvar ns-reg-to-script) ; nsfont.m
(setq default-process-coding-system
'(utf-8-unix . utf-8-unix)))))
- ;; OS X Lion introduces PressAndHold, which is unsupported by this port.
+ ;; Mac OS X Lion introduces PressAndHold, which is unsupported by this port.
;; See this thread for more details:
;; http://lists.gnu.org/archive/html/emacs-devel/2011-06/msg00505.html
(ns-set-resource nil "ApplePressAndHoldEnabled" "NO")
;; Try to find out the type of terminal by sending a "Secondary
;; Device Attributes (DA)" query.
(xterm--query "\e[>0c"
- ;; Some terminals (like OS X's Terminal.app) respond to
+ ;; Some terminals (like macOS's Terminal.app) respond to
;; this query as if it were a "Primary Device Attributes"
;; query instead, so we should handle that too.
'(("\e[?" . xterm--version-handler)
;;
;; The adjustment function that adorns or rotates a section title.
(rst-define-key map [?\C-c ?\C-=] 'rst-adjust [?\C-c ?\C-a t])
- (rst-define-key map [?\C-=] 'rst-adjust) ; Does not work on the Mac OSX and
+ (rst-define-key map [?\C-=] 'rst-adjust) ; Does not work on macOS and
; on consoles.
;; \C-c \C-a is the keymap for adornments.
;; is accessed via SSH, a bad interaction between libc,
;; CVS and SSH can lead to garbled output.
;; It might be a glibc-specific problem (but it can also happens
- ;; under Mac OS X, it seems).
+ ;; under macOS, it seems).
;; It seems that using a pty can help circumvent the problem,
;; but at the cost of screwing up when the process thinks it
;; can ask for user input (such as password or host-key
OLD-FIS is the list of fileinfos on which the cvs command was applied and
which should be considered up-to-date if they are missing from the output."
(when (eq system-type 'darwin)
- ;; Fixup the ^D^H^H inserted at beginning of buffer sometimes on MacOSX
+ ;; Fixup the ^D^H^H inserted at beginning of buffer sometimes on macOS
;; because of the call to `process-send-eof'.
(save-excursion
(goto-char (point-min))
./configure --with-ns
-(On Mac OS X, --with-ns is enabled by default.)
+(On macOS, --with-ns is enabled by default.)
This will compile all the files, but emacs will not be able to be run except
in -nw (terminal) mode.
## Emacs.app.
ns_appdir = @ns_appdir@
-## GNUstep: ns_appdir; OS X: ns_appdir/Contents/MacOS
+## GNUstep: ns_appdir; macOS: ns_appdir/Contents/MacOS
ns_appbindir = @ns_appbindir@
## GNUstep/Emacs.base or Cocoa/Emacs.base.
ns_appsrc = @ns_appsrc@
## GNUstep: GNUstep/Emacs.base/Resources/Info-gnustep.plist
-## OS X: Cocoa/Emacs.base/Contents/Info.plist
+## macOS: Cocoa/Emacs.base/Contents/Info.plist
ns_check_file = @ns_appdir@/@ns_check_file@
.PHONY: all
- NS -- the Cocoa interface for OS X and compatible systems
- ---------------------------------------------------------
+ NS -- the Cocoa interface for macOS and compatible systems
+ ----------------------------------------------------------
This directory contains files needed to build Emacs on system based on
-NextStep (NS), including OS X (Mac) and GNUstep, using the Cocoa API.
+NextStep (NS), including macOS and GNUstep, using the Cocoa API.
HISTORY
adapted to GNUstep, a free OpenStep implementation, and in 2008 it was
merged to the GNU Emacs trunk and released with Emacs 23. Around the
same time a separate Mac-only port using the Carbon APIs and
-descending from a 2001 MacOS 8/9 port of Emacs 21 was removed. (It
+descending from a 2001 Mac OS 8/9 port of Emacs 21 was removed. (It
remains available externally under the name "mac".)
OVERVIEW OF COCOA AND OBJECTIVE-C
Cocoa is an API for the Objective-C language, an objective oriented
-superset of C. Anybody with experience with iOS or modern OS X
+superset of C. Anybody with experience with iOS or modern macOS
application development should feel at home.
A method call in Objective-C differs from most other languages in the
* Don't use macros and types intended for the XCode Interface Builder,
like 'IBAction'.
-* The NS interface should work on all version of OS X from 10.6.8
- (Snow Leopard) to the latest official release.
+* The NS interface should work on all version of macOS from Mac OS X
+ 10.6.8 (Snow Leopard) to the latest official release.
-* Under OS X, it is possible to build Emacs using NS, X11, or console
- only. A new OS X feature should work in all appropriate builds.
+* Under macOS, it is possible to build Emacs using NS, X11, or console
+ only. A new macOS feature should work in all appropriate builds.
TRACING SUPPORT
GNUSTEP AND OTHER COMPATIBLE SYSTEMS
-The NS interface works on system compatible with OS X, for example
+The NS interface works on systems compatible with macOS, for example
GNUstep. Even though they are less frequently used, this is important
for a number of reasons:
look-and-feel as the rest of the system.
* This allows other Emacs developers to test their changes on the NS
- interface without having access to an OS X machine.
+ interface without having access to a macOS machine.
* If a feature in the NS interface work on free systems like GNUstep,
this meets the FSF requirement that features in GNU software should
Version=@version@
Categories=GNUstep
Name=Emacs
-Comment=GNU Emacs for NeXT/Open/GNUstep and OS X
+Comment=GNU Emacs for NeXT/Open/GNUstep and macOS
Icon=emacs.tiff
Exec=openapp Emacs.app
#TryExec=Emacs.app
{
- ApplicationDescription = "GNU Emacs for GNUstep / OS X";
+ ApplicationDescription = "GNU Emacs for GNUstep / macOS";
ApplicationIcon = emacs.tiff;
ApplicationName = Emacs;
ApplicationRelease = "@version@";
Authors = (
"Adrian Robert (GNUstep)",
- "Christophe de Dinechin (MacOS X)",
+ "Christophe de Dinechin (macOS)",
"Scott Bender (OpenStep)",
"Christian Limpach (NeXTstep)",
"Carl Edman (NeXTstep)",
</dict>
</array>
- <!-- Export definitions so that OS X understands about the file types -->
+ <!-- Export definitions so that macOS understands about the file types -->
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
How text end-of-line is encoded depends on operating system. For
instance, Unix's format is just one byte of LF (line-feed) code,
whereas DOS's format is two-byte sequence of `carriage-return' and
- `line-feed' codes. MacOS's format is usually one byte of
+ `line-feed' codes. Classic Mac OS's format is usually one byte of
`carriage-return'.
Since text character encoding and end-of-line encoding are
#endif
#endif /* MSDOS */
-/* Mac OS X / GNUstep need a bit more pure memory. Of the existing knobs,
+/* macOS / GNUstep need a bit more pure memory. Of the existing knobs,
SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. */
#ifdef HAVE_NS
#if defined NS_IMPL_GNUSTEP
`gnu' compiled for a GNU Hurd system.
`gnu/linux' compiled for a GNU/Linux system.
`gnu/kfreebsd' compiled for a GNU system with a FreeBSD kernel.
- `darwin' compiled for Darwin (GNU-Darwin, Mac OS X, ...).
+ `darwin' compiled for Darwin (GNU-Darwin, macOS, ...).
`ms-dos' compiled as an MS-DOS application.
`windows-nt' compiled as a native W32 application.
`cygwin' compiled using the Cygwin library.
doc: /* Default position of vertical scroll bars on this window-system. */);
#ifdef HAVE_WINDOW_SYSTEM
#if defined (HAVE_NTGUI) || defined (NS_IMPL_COCOA) || (defined (USE_GTK) && defined (USE_TOOLKIT_SCROLL_BARS))
- /* MS-Windows, Mac OS X, and GTK have scroll bars on the right by
+ /* MS-Windows, macOS, and GTK have scroll bars on the right by
default. */
Vdefault_frame_scroll_bars = Qright;
#else
in the group. On exit, *GROUP contains the radio item group.
Unfortunately, keys don't line up as nicely as in Motif,
- but the MacOS X version doesn't either, so I guess that is OK. */
+ but the macOS version doesn't either, so I guess that is OK. */
static GtkWidget *
make_menu_item (const char *utf8_label,
-/* Interface definition for Mac OSX Core text font backend.
+/* Interface definition for macOS Core text font backend.
Copyright (C) 2009-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.
-/* Font driver on Mac OSX Core text.
+/* Font driver on macOS Core text.
Copyright (C) 2009-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.
and those start with ".". NULL means the cache has been invalidated.
Otherwise, the value is CFArray of CFStrings and the elements are
sorted in the canonical order (CTFontManagerCompareFontFamilyNames on
-OS X 10.6 and later). */
+Mac OS X 10.6 and later). */
static CFArrayRef macfont_available_families_cache = NULL;
void
syms_of_macfont (void)
{
- /* Core Text, for Mac OS X. */
+ /* Core Text, for macOS. */
DEFSYM (Qmac_ct, "mac-ct");
macfont_driver.type = Qmac_ct;
register_font_driver (&macfont_driver, NULL);
-/* Functions for the NeXT/Open/GNUstep and MacOSX window system.
+/* Functions for the NeXT/Open/GNUstep and macOS window system.
Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2016 Free Software
Foundation, Inc.
Originally by Carl Edman
Updated by Christian Limpach (chris@nice.ch)
OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com)
-MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
+macOS/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu)
*/
x_icon (struct frame *f, Lisp_Object parms)
/* --------------------------------------------------------------------------
Strangely-named function to set icon position parameters in frame.
- This is irrelevant under OS X, but might be needed under GNUstep,
+ This is irrelevant under macOS, but might be needed under GNUstep,
depending on the window manager used. Note, this is not a standard
frame parameter-setter; it is called directly from x-create-frame.
-------------------------------------------------------------------------- */
[svcs setAutoenablesItems: NO];
#ifdef NS_IMPL_COCOA
- [svcs update]; /* on OS X, converts from '/' structure */
+ [svcs update]; /* on macOS, converts from '/' structure */
#endif
ret = interpret_services_menu (svcs, Qnil, ret);
-/* Font back-end driver for the NeXT/Open/GNUstep and MacOSX window system.
+/* Font back-end driver for the NeXT/Open/GNUstep and macOS window system.
See font.h
Copyright (C) 2006-2016 Free Software Foundation, Inc.
{
NSCharacterSet *fset = [[fontMgr fontWithFamily: family
traits: 0 weight: 5 size: 12.0] coveredCharacterSet];
- /* Some fonts on OS X, maybe many on GNUstep, return nil. */
+ /* Some fonts on macOS, maybe many on GNUstep, return nil. */
if (fset == nil)
fset = [NSCharacterSet characterSetWithRange:
NSMakeRange (0, 127)];
-/* Image support for the NeXT/Open/GNUstep and MacOSX window system.
+/* Image support for the NeXT/Open/GNUstep and macOS window system.
Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2016 Free Software
Foundation, Inc.
Originally by Carl Edman
Updated by Christian Limpach (chris@nice.ch)
OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com)
-MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
+macOS/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu)
*/
-/* NeXT/Open/GNUstep and MacOSX Cocoa menu and toolbar module.
+/* NeXT/Open/GNUstep and macOS Cocoa menu and toolbar module.
Copyright (C) 2007-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.
/* --------------------------------------------------------------------------
Update menubar. Three cases:
1) ! deep_p, submenu = nil: Fresh switch onto a frame -- either set up
- just top-level menu strings (OS X), or goto case (2) (GNUstep).
+ just top-level menu strings (macOS), or goto case (2) (GNUstep).
2) deep_p, submenu = nil: Recompute all submenus.
3) deep_p, submenu = non-nil: Update contents of a single submenu.
-------------------------------------------------------------------------- */
return;
/*fprintf (stderr, "Updating menu '%s'\n", [[self title] UTF8String]); NSLog (@"%@\n", event); */
#ifdef NS_IMPL_GNUSTEP
- /* Don't know how to do this for anything other than OSX >= 10.5
+ /* Don't know how to do this for anything other than Mac OS X 10.5 and later.
This is wrong, as it might run Lisp code in the event loop. */
ns_update_menubar (frame, true, self);
#endif
keyEq = [self parseKeyEquiv: wv->key];
#ifdef NS_IMPL_COCOA
- /* OS X just ignores modifier strings longer than one character */
+ /* macOS just ignores modifier strings longer than one character */
if (keyEquivModMask == 0)
title = [title stringByAppendingFormat: @" (%@)", keyEq];
#endif
/* Check if this is a separator. */
if (EQ (TOOLPROP (TOOL_BAR_ITEM_TYPE), Qt))
{
- /* Skip separators. Newer OSX don't show them, and on GNUstep they
- are wide as a button, thus overflowing the toolbar most of
- the time. */
+ /* Skip separators. Newer macOS don't show them, and on
+ GNUstep they are wide as a button, thus overflowing the
+ toolbar most of the time. */
continue;
}
-/* NeXT/Open/GNUstep / MacOSX Cocoa selection processing for emacs.
+/* NeXT/Open/GNUstep / macOS Cocoa selection processing for emacs.
Copyright (C) 1993-1994, 2005-2006, 2008-2016 Free Software
Foundation, Inc.
Originally by Carl Edman
Updated by Christian Limpach (chris@nice.ch)
OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com)
-MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
+macOS/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu)
*/
-/* NeXT/Open/GNUstep / MacOSX communication module. -*- coding: utf-8 -*-
+/* NeXT/Open/GNUstep / macOS communication module. -*- coding: utf-8 -*-
Copyright (C) 1989, 1993-1994, 2005-2006, 2008-2016 Free Software
Foundation, Inc.
Originally by Carl Edman
Updated by Christian Limpach (chris@nice.ch)
OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com)
-MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
+macOS/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu)
*/
0x1B, 0x1B /* escape */
};
-/* On OS X picks up the default NSGlobalDomain AppleAntiAliasingThreshold,
+/* On macOS picks up the default NSGlobalDomain AppleAntiAliasingThreshold,
the maximum font size to NOT antialias. On GNUstep there is currently
no way to control this behavior. */
float ns_antialias_threshold;
void
ns_init_locale (void)
-/* OS X doesn't set any environment variables for the locale when run
+/* macOS doesn't set any environment variables for the locale when run
from the GUI. Get the locale from the OS and set LANG. */
{
NSLocale *locale = [NSLocale currentLocale];
@try
{
- /* It seems OS X should probably use UTF-8 everywhere.
+ /* It seems macOS should probably use UTF-8 everywhere.
'localeIdentifier' does not specify the encoding, and I can't
find any way to get the OS to tell us which encoding to use,
so hard-code '.UTF-8'. */
/* A screen margin between 1 and DOCK_IGNORE_LIMIT (inclusive) is
- assumed to contain a hidden dock. OS X currently use 4 pixels for
+ assumed to contain a hidden dock. macOS currently use 4 pixels for
this, however, to be future compatible, a larger value is used. */
#define DOCK_IGNORE_LIMIT 6
struct EmacsMargins margins = ns_screen_margins(screen);
- /* OS X (currently) reserved 4 pixels along the edge where a hidden
+ /* macOS (currently) reserved 4 pixels along the edge where a hidden
dock is located. Unfortunately, it's not possible to find the
location and information about if the dock is hidden. Instead,
it is assumed that if the margin of an edge is less than
{
margins.top = 0;
}
- /* Note: This doesn't occur in current versions of OS X, but
+ /* Note: This doesn't occur in current versions of macOS, but
included for completeness and future compatibility. */
if (margins.bottom <= DOCK_IGNORE_LIMIT)
{
#ifdef NS_IMPL_COCOA
if ([view isFullscreen] && [view fsIsNative])
{
- // Fix reappearing tool bar in fullscreen for OSX 10.7
+ // Fix reappearing tool bar in fullscreen for Mac OS X 10.7
BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (f) ? YES : NO;
NSToolbar *toolbar = [FRAME_NS_VIEW (f) toolbar];
if (! tbar_visible != ! [toolbar isVisible])
}
else if ([nsname isEqualToString: @"ns_selection_fg_color"])
{
- /* NOTE: OSX applications normally don't set foreground selection, but
- text may be unreadable if we don't.
+ /* NOTE: macOS applications normally don't set foreground
+ selection, but text may be unreadable if we don't.
*/
if ((new = [NSColor selectedTextColor]) != nil)
{
#ifdef NS_IMPL_COCOA
if (! send_appdefined)
{
- /* OSX 10.10.1 swallows the AppDefined event we are sending ourselves
+ /* OS X 10.10.1 swallows the AppDefined event we are sending ourselves
in certain situations (rapid incoming events).
So check if we have one, if not add one. */
NSEvent *appev = [NSApp nextEventMatchingMask:NSApplicationDefinedMask
[outerpool release];
outerpool = [[NSAutoreleasePool alloc] init];
- /* count object allocs (About, click icon); on OS X use ObjectAlloc tool */
+ /* count object allocs (About, click icon); on macOS use ObjectAlloc tool */
/*GSDebugAllocationActive (YES); */
block_input ();
ns_app_name = [[NSProcessInfo processInfo] processName];
- /* Set up OS X app menu */
+ /* Set up macOS app menu */
NSTRACE_MSG ("Menu init");
selector: @selector (trackingNotification:)
name: NSMenuDidEndTrackingNotification object: mainMenu];
}
-#endif /* MAC OS X menu setup */
+#endif /* macOS menu setup */
/* Register our external input/output types, used for determining
applicable services and also drag/drop eligibility. */
#ifdef NS_IMPL_COCOA
/* If no dialog and none of our frames have focus and it is a move, skip it.
- It is a mouse move in an auxiliary menu, i.e. on the top right on OSX,
+ It is a mouse move in an auxiliary menu, i.e. on the top right on macOS,
such as Wifi, sound, date or similar.
This prevents "spooky" highlighting in the frame under the menu. */
if (type == NSMouseMoved && [NSApp modalWindow] == nil)
NSTRACE ("[EmacsView keyDown:]");
- /* Rhapsody and OS X give up and down events for the arrow keys */
+ /* Rhapsody and macOS give up and down events for the arrow keys */
if (ns_fake_keydown == YES)
ns_fake_keydown = NO;
else if ([theEvent type] != NSKeyDown)
#ifdef NS_IMPL_COCOA
-/* Needed to pick up Ctrl-tab and possibly other events that OS X has
+/* Needed to pick up Ctrl-tab and possibly other events that Mac OS X
decided not to send key-down for.
See http://osdir.com/ml/editors.vim.mac/2007-10/msg00141.html
This only applies on Tiger and earlier.
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
unsigned val = (unsigned)[NSApp presentationOptions];
- // OSX 10.7 bug fix, the menu won't appear without this.
- // val is non-zero on other OSX versions.
+ // Mac OS X 10.7 bug fix, the menu won't appear without this.
+ // val is non-zero on other macOS versions.
if (val == 0)
{
NSApplicationPresentationOptions options
unblock_input ();
/*
- drawRect: may be called (at least in OS X 10.5) for invisible
+ drawRect: may be called (at least in Mac OS X 10.5) for invisible
views as well for some reason. Thus, do not infer visibility
here.
[self setEnabled: YES];
/* Ensure auto resizing of scrollbars occurs within the emacs frame's view
- locked against the top and bottom edges, and right edge on OS X, where
+ locked against the top and bottom edges, and right edge on macOS, where
scrollers are on right. */
#ifdef NS_IMPL_GNUSTEP
[self setAutoresizingMask: NSViewMaxXMargin | NSViewHeightSizable];
DEFVAR_LISP ("ns-auto-hide-menu-bar", ns_auto_hide_menu_bar,
doc: /* Non-nil means that the menu bar is hidden, but appears when the mouse is near.
-Only works on OSX 10.6 or later. */);
+Only works on Mac OS X 10.6 or later. */);
ns_auto_hide_menu_bar = Qnil;
DEFVAR_BOOL ("ns-use-native-fullscreen", ns_use_native_fullscreen,
- doc: /*Non-nil means to use native fullscreen on OSX >= 10.7.
+ doc: /*Non-nil means to use native fullscreen on Mac OS X 10.7 and later.
Nil means use fullscreen the old (< 10.7) way. The old way works better with
-multiple monitors, but lacks tool bar. This variable is ignored on OSX < 10.7.
-Default is t for OSX >= 10.7, nil otherwise. */);
+multiple monitors, but lacks tool bar. This variable is ignored on
+Mac OS X < 10.7. Default is t for 10.7 and later, nil otherwise. */);
#ifdef HAVE_NATIVE_FS
ns_use_native_fullscreen = YES;
#else
ns_use_fullscreen_animation = NO;
DEFVAR_BOOL ("ns-use-srgb-colorspace", ns_use_srgb_colorspace,
- doc: /*Non-nil means to use sRGB colorspace on OSX >= 10.7.
+ doc: /*Non-nil means to use sRGB colorspace on Mac OS X 10.7 and later.
Note that this does not apply to images.
-This variable is ignored on OSX < 10.7 and GNUstep. */);
+This variable is ignored on Mac OS X < 10.7 and GNUstep. */);
ns_use_srgb_colorspace = YES;
/* TODO: move to common code */
closed, and retrying the close could inadvertently close a file
descriptor allocated by some other thread. In other systems
(e.g., HP/UX) FD is not closed. And in still other systems
- (e.g., OS X, Solaris), maybe FD is closed, maybe not, and in a
+ (e.g., macOS, Solaris), maybe FD is closed, maybe not, and in a
multithreaded program there can be no way to tell.
So, in this case, pretend that the close succeeded. This works
-/* Dump Emacs in Mach-O format for use on Mac OS X.
+/* Dump Emacs in Mach-O format for use on macOS.
Copyright (C) 2001-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.
Mach-O format: the file loader.h, man pages for Mach-O and ld, old
NEXTSTEP documents of the Mach-O format. The tool otool dumps the
mach header (-h option) and the load commands (-l option) in a
- Mach-O file. The tool nm on Mac OS X displays the symbol table in
+ Mach-O file. The tool nm on macOS displays the symbol table in
a Mach-O file. For examples of unexec for the Mach-O format, see
the file unexnext.c in the GNU Emacs distribution, the file
unexdyld.c in the Darwin port of GNU Emacs 20.7, and unexdyld.c in
Read that to see what they do. This file was written completely
from scratch, making use of information from the above sources. */
-/* The Mac OS X implementation of unexec makes use of Darwin's `zone'
+/* The macOS implementation of unexec makes use of Darwin's `zone'
memory allocator. All calls to malloc, realloc, and free in Emacs
are redirected to unexec_malloc, unexec_realloc, and unexec_free in
this file. When temacs is run, all memory requests are handled in
block must be obtained by malloc and the old contents copied to
it. */
-/* Peculiarity of the Mach-O files generated by ld in Mac OS X
+/* Peculiarity of the Mach-O files generated by ld in macOS
(possible causes of future bugs if changed).
The file offset of the start of the __TEXT segment is zero. Since
#include <assert.h>
-/* LC_DATA_IN_CODE is not defined in mach-o/loader.h on OS X 10.7.
+/* LC_DATA_IN_CODE is not defined in mach-o/loader.h on Mac OS X 10.7.
But it is used if we build with "Command Line Tools for Xcode 4.5
- (OS X Lion) - September 2012". */
+ (Mac OS X Lion) - September 2012". */
#ifndef LC_DATA_IN_CODE
#define LC_DATA_IN_CODE 0x29 /* table of non-instructions in __text */
#endif