Initial check-in: changes for building Emacs under Mac OS.
2000-10-23 Andrew Choi <akochoi@i-cable.com> * dispextern.h [macintosh]: Include macgui.h instead of macterm.h. * dispnew.c [macintosh]: Include macterm.h. (init_display) [macintosh]: initialization for window system. * emacs.c (main) [macintosh]: Call syms_of_textprop, syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm, syms_of_search, x_term_init, and init_keyboard before calling init_window_once. Also, call syms_of_xmenu. * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of default fontset to Monaco. * frame.c [macintosh]: Include macterm.h. Remove declarations of NewMacWindow and DisposeMacWindow. (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame instead of calling NewMacWindow and setting fields of f->output_data.mac directly. Call init_frame_faces. (Fdelete_frame) [macintosh]: Remove unused code. (Fmodify_frame_parameters) [macintosh]: Call x_set_frame_parameters instead of mac_set_frame_parameters. * frame.h [macintosh]: Define menu_bar_lines field in struct frame. Define FRAME_EXTERNAL_MENU_BAR macro. * keyboard.c [macintosh]: Include macterm.h. (kbd_buffer_get_event) [macintosh]: Generate delete_window_event and menu_bar_activate_event type events as for X and NT. (make_lispy_event) [macintosh]: Construct lisp events of type MENU_BAR_EVENT as for X and NT. * sysdep.c [macintosh]: Remove declaration for sys_signal. Include stdlib.h. Remove definition of Vx_bitmap_file_path. (sys_subshell) [macintosh]: Remove definition entirely. (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and Vwindow_system_version here. Remove initialization of Vx_bitmap_file_path. (read_input_waiting): Correct the number of parameters passed to read_socket_hook. Move all Macintosh functions to mac/mac.c. * term.c [macintosh]: Include macterm.h. * window.c [macintosh]: Include macterm.h. * xdisp.c [macintosh]: Include macterm.h. Declare set_frame_menubar and pending_menu_activation. (echo_area_display) [macintosh]: Do not return if terminal frame is the selected frame. (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f). Allow only the selected frame to set menu bar. (redisplay_window) [macintosh]: Obtain menu bar to redisplay by calling FRAME_EXTERNAL_MENU_BAR (f). (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f). * xfaces.c [macintosh]: Include macterm.h. Define x_display_info and check_x. Declare XCreateGC. Define x_create_gc and x_free_gc. Initialize font_sort_order. (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT, but call x_list_fonts instead of w32_list_fonts. (Finternal_face_x_get_resource) [macintosh]: Do not call display_x_get_resource. (prepare_face_for_display) [macintosh]: Set xgcv.font. (realize_x_face) [macintosh]: Load the font if it is specified in ATTRS. (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt. * cus-edit.el (custom-button-face): Use 3D look for mac. (custom-button-pressed-face): Likewise. * faces.el (set-face-attributes-from-resources): Handle mac frames in the same way as x and w32 frames. (face-valid-attribute-values): Likewise. (read-face-attribute): Likewise. (defined-colors): Likewise. (color-defined-p): Likewise. (color-values): Likewise. (display-grayscale-p): Likewise. (face-set-after-frame-default): Likewise. (mode-line): Same default face as for x and w32. (tool-bar): Likewise. * frame.el: Remove call to frame-notice-user-settings at end of the file. * info.el (Info-fontify-node): make underlines invisible for mac as for x, pc, and w32 frame types. * term/mac-win.el: New file.
This commit is contained in:
parent
d371949a0f
commit
1a578e9be2
53 changed files with 37472 additions and 1627 deletions
|
|
@ -1,3 +1,28 @@
|
|||
2000-10-23 Andrew Choi <akochoi@i-cable.com>
|
||||
|
||||
* cus-edit.el (custom-button-face): Use 3D look for mac.
|
||||
(custom-button-pressed-face): Likewise.
|
||||
|
||||
* faces.el (set-face-attributes-from-resources): Handle mac frames
|
||||
in the same way as x and w32 frames.
|
||||
(face-valid-attribute-values): Likewise.
|
||||
(read-face-attribute): Likewise.
|
||||
(defined-colors): Likewise.
|
||||
(color-defined-p): Likewise.
|
||||
(color-values): Likewise.
|
||||
(display-grayscale-p): Likewise.
|
||||
(face-set-after-frame-default): Likewise.
|
||||
(mode-line): Same default face as for x and w32.
|
||||
(tool-bar): Likewise.
|
||||
|
||||
* frame.el: Remove call to frame-notice-user-settings at end of
|
||||
the file.
|
||||
|
||||
* info.el (Info-fontify-node): make underlines invisible for mac
|
||||
as for x, pc, and w32 frame types.
|
||||
|
||||
* term/mac-win.el: New file.
|
||||
|
||||
2000-10-22 Dave Love <fx@gnu.org>
|
||||
|
||||
* textmodes/refill.el: New file.
|
||||
|
|
|
|||
|
|
@ -1711,6 +1711,9 @@ and `face'."
|
|||
(((type w32) (class color)) ; Like default modeline
|
||||
(:box (:line-width 2 :style released-button)
|
||||
:background "lightgrey" :foreground "black"))
|
||||
(((type mac) (class color)) ; Like default modeline
|
||||
(:box (:line-width 2 :style released-button)
|
||||
:background "lightgrey" :foreground "black"))
|
||||
(t
|
||||
nil))
|
||||
"Face used for buttons in customization buffers."
|
||||
|
|
@ -1724,6 +1727,9 @@ and `face'."
|
|||
(((type w32) (class color))
|
||||
(:box (:line-width 2 :style pressed-button)
|
||||
:background "lightgrey" :foreground "black"))
|
||||
(((type mac) (class color))
|
||||
(:box (:line-width 2 :style pressed-button)
|
||||
:background "lightgrey" :foreground "black"))
|
||||
(t
|
||||
(:inverse-video t)))
|
||||
"Face used for buttons in customization buffers."
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ specifies an invalid attribute."
|
|||
|
||||
(defun set-face-attributes-from-resources (face frame)
|
||||
"Set attributes of FACE from X resources for FRAME."
|
||||
(when (memq (framep frame) '(x w32))
|
||||
(when (memq (framep frame) '(x w32 mac))
|
||||
(dolist (definition face-x-resources)
|
||||
(let ((attribute (car definition)))
|
||||
(dolist (entry (cdr definition))
|
||||
|
|
@ -777,7 +777,7 @@ an integer value."
|
|||
((:height)
|
||||
'integerp)
|
||||
(:stipple
|
||||
(and (memq window-system '(x w32))
|
||||
(and (memq window-system '(x w32 mac))
|
||||
(mapcar #'list
|
||||
(apply #'nconc
|
||||
(mapcar (lambda (dir)
|
||||
|
|
@ -1231,7 +1231,7 @@ is used. If nil or omitted, use the selected frame."
|
|||
The argument FRAME specifies which frame to try.
|
||||
The value may be different for frames on different display types.
|
||||
If FRAME doesn't support colors, the value is nil."
|
||||
(if (memq (framep (or frame (selected-frame))) '(x w32))
|
||||
(if (memq (framep (or frame (selected-frame))) '(x w32 mac))
|
||||
(xw-defined-colors frame)
|
||||
(mapcar 'car (tty-color-alist frame))))
|
||||
(defalias 'x-defined-colors 'defined-colors)
|
||||
|
|
@ -1243,7 +1243,7 @@ If COLOR is the symbol `unspecified' or one of the strings
|
|||
\"unspecified-fg\" or \"unspecified-bg\", the value is nil."
|
||||
(if (member color '(unspecified "unspecified-bg" "unspecified-fg"))
|
||||
nil
|
||||
(if (member (framep (or frame (selected-frame))) '(x w32))
|
||||
(if (member (framep (or frame (selected-frame))) '(x w32 mac))
|
||||
(xw-color-defined-p color frame)
|
||||
(numberp (tty-color-translate color frame)))))
|
||||
(defalias 'x-color-defined-p 'color-defined-p)
|
||||
|
|
@ -1258,7 +1258,7 @@ If COLOR is the symbol `unspecified' or one of the strings
|
|||
\"unspecified-fg\" or \"unspecified-bg\", the value is nil."
|
||||
(if (member color '(unspecified "unspecified-fg" "unspecified-bg"))
|
||||
nil
|
||||
(if (memq (framep (or frame (selected-frame))) '(x w32))
|
||||
(if (memq (framep (or frame (selected-frame))) '(x w32 mac))
|
||||
(xw-color-values color frame)
|
||||
(tty-color-values color frame))))
|
||||
(defalias 'x-color-values 'color-values)
|
||||
|
|
@ -1268,7 +1268,7 @@ If COLOR is the symbol `unspecified' or one of the strings
|
|||
The optional argument DISPLAY specifies which display to ask about.
|
||||
DISPLAY should be either a frame or a display name (a string).
|
||||
If omitted or nil, that stands for the selected frame's display."
|
||||
(if (memq (framep-on-display display) '(x w32))
|
||||
(if (memq (framep-on-display display) '(x w32 mac))
|
||||
(xw-display-color-p display)
|
||||
(tty-display-color-p display)))
|
||||
(defalias 'x-display-color-p 'display-color-p)
|
||||
|
|
@ -1445,7 +1445,7 @@ Initialize colors of certain faces from frame parameters."
|
|||
(when spec
|
||||
(face-spec-set face spec frame))
|
||||
(internal-merge-in-global-face face frame)
|
||||
(when (memq window-system '(x w32))
|
||||
(when (memq window-system '(x w32 mac))
|
||||
(make-face-x-resource-internal face frame))))
|
||||
|
||||
;; Initialize attributes from frame parameters.
|
||||
|
|
@ -1527,7 +1527,7 @@ created."
|
|||
|
||||
|
||||
(defface mode-line
|
||||
'((((type x w32) (class color))
|
||||
'((((type x w32 mac) (class color))
|
||||
(:box (:line-width 2 :style released-button)
|
||||
:background "grey75" :foreground "black"))
|
||||
(t
|
||||
|
|
@ -1572,7 +1572,7 @@ created."
|
|||
|
||||
|
||||
(defface tool-bar
|
||||
'((((type x w32) (class color))
|
||||
'((((type x w32 mac) (class color))
|
||||
(:box (:line-width 1 :style released-button)
|
||||
:background "grey75" :foreground "black"))
|
||||
(((type x) (class mono))
|
||||
|
|
|
|||
|
|
@ -1164,4 +1164,3 @@ If nil, don't show a cursor except in the selected window."
|
|||
(provide 'frame)
|
||||
|
||||
;;; frame.el ends here
|
||||
(frame-notice-user-settings):
|
||||
|
|
|
|||
|
|
@ -2427,7 +2427,7 @@ the variable `Info-file-list-for-emacs'."
|
|||
;; This is a serious problem for trying to handle multiple
|
||||
;; frame types at once. We want this text to be invisible
|
||||
;; on frames that can display the font above.
|
||||
(if (memq (framep (selected-frame)) '(x pc w32))
|
||||
(if (memq (framep (selected-frame)) '(x pc w32 mac))
|
||||
(add-text-properties (match-end 1) (match-end 2)
|
||||
'(invisible t intangible t))))
|
||||
(goto-char (point-min))
|
||||
|
|
|
|||
1075
lisp/term/mac-win.el
Normal file
1075
lisp/term/mac-win.el
Normal file
File diff suppressed because it is too large
Load diff
10
mac/.emacs
Normal file
10
mac/.emacs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
; MPW does not allow saving a file with name beginning with a period.
|
||||
; Use Emacs or SimpleText to edit and save this file instead.
|
||||
|
||||
(cond ((fboundp 'global-font-lock-mode)
|
||||
;; Turn on font-lock in all modes that support it
|
||||
(global-font-lock-mode t)
|
||||
;; Maximum colors
|
||||
(setq font-lock-maximum-decoration t)))
|
||||
|
||||
(setq default-frame-alist '((font . "fontset-mac")))
|
||||
67
mac/ChangeLog
Normal file
67
mac/ChangeLog
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
2000-10-20 Andrew Choi <akochoi@users.sourceforge.net>
|
||||
|
||||
* INSTALL: New file.
|
||||
|
||||
* README: New file.
|
||||
|
||||
* TODO: New file.
|
||||
|
||||
* emacs-cw5.mcp.xml: New file.
|
||||
|
||||
* emacs-cw6.mcp.xml: New file.
|
||||
|
||||
* makefile.MPW: New file.
|
||||
|
||||
* inc/alloca.h: New file.
|
||||
|
||||
* inc/cmdline-defs-cw5.h: New file.
|
||||
|
||||
* inc/cmdline-defs-cw6.h: New file.
|
||||
|
||||
* inc/config.h: New file.
|
||||
|
||||
* inc/dirent.h: New file.
|
||||
|
||||
* inc/epaths.h: New file.
|
||||
|
||||
* inc/m-mac.h: New file.
|
||||
|
||||
* inc/macgui.h: New file.
|
||||
|
||||
* inc/macterm.h: New file.
|
||||
|
||||
* inc/pwd.h: New file.
|
||||
|
||||
* inc/s-mac.h: New file.
|
||||
|
||||
* inc/termio.h: New file.
|
||||
|
||||
* inc/utime.h: New file.
|
||||
|
||||
* inc/utsname.h: New file.
|
||||
|
||||
* inc/sys/file.h: New file.
|
||||
|
||||
* inc/sys/ioctl.h: New file.
|
||||
|
||||
* inc/sys/param.h: New file.
|
||||
|
||||
* inc/sys/stat.h: New file.
|
||||
|
||||
* inc/sys/time.h: New file.
|
||||
|
||||
* inc/sys/types.h: New file.
|
||||
|
||||
* src/Emacs.r: New file.
|
||||
|
||||
* src/EmacsMPW.r: New file.
|
||||
|
||||
* src/chdir.c: New file.
|
||||
|
||||
* src/mac.c: New file.
|
||||
|
||||
* src/macfns.c: New file.
|
||||
|
||||
* src/macmenu.c: New file.
|
||||
|
||||
* src/macterm.c: New file.
|
||||
105
mac/INSTALL
Normal file
105
mac/INSTALL
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
* BUILDING EMACS ON THE MAC OS -*- outline -*-
|
||||
|
||||
You can use either Metrowerks CodeWarrior Pro 5 or 6 or MPW-GM
|
||||
(Aug. 2000) to build Emacs. MPW-GM can be downloaded free of charge
|
||||
from Apple at
|
||||
|
||||
http://developer.apple.com/tools/mpw-tools/
|
||||
|
||||
You will need MPW-GM to build the make-docfile utility and to generate
|
||||
the doc string file DOC.
|
||||
|
||||
To decompress files, you can use MacGzip from
|
||||
|
||||
http://persephone.cps.unizar.es/~spd/gzip
|
||||
|
||||
and to untar them, you can use tar 4.0 from
|
||||
|
||||
http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/cmp/tar-40b.hqx
|
||||
|
||||
(Optional) If you wish to fetch files from the Emacs CVS repository
|
||||
directly to your Mac, you can use the CVS client MacCVS, which can be
|
||||
downloaded from
|
||||
|
||||
http://www.wincvs.org/
|
||||
|
||||
(Optional) A subset of the fonts from the GNU intlfonts-1.2
|
||||
distribution converted to NFNT format can be obtained from
|
||||
|
||||
ftp://mac-emacs.sourceforge.net/pub/mac-emacs/GNU-fonts.smi.bin
|
||||
|
||||
* BUILDING EMACS
|
||||
|
||||
To build Emacs in the MPW Shell, simply set the directory to
|
||||
...:emacs:mac: and build the target Emacs of the make file
|
||||
makefile.mpw. I.e., execute the commands
|
||||
|
||||
make Emacs -f makefile.MPW > Emacs.MakeScript
|
||||
Emacs.MakeScript
|
||||
|
||||
To build Emacs using CodeWarrior, start up the CodeWarrior IDE, choose
|
||||
File->Import Project... and select the file emacs-cw5.mcp.xml or
|
||||
emacs-cw6.mcp.xml, depending on which verison of CodeWarrior used.
|
||||
When prompted to save the project, navigate to same directory as the
|
||||
file emacs-cw[56].mcp.xml, name it emacs-cw5.mcp or emacs-cw6.mcp, and
|
||||
save it there. Then choose Project->Make. Note that this does not
|
||||
build the DOC file. To do so, use MPW and build the target "Doc" in
|
||||
makefile.MPW.
|
||||
|
||||
Once built, the Emacs application (Emacs CW or Emacs MPW) can be
|
||||
launched where it is created.
|
||||
|
||||
To build an optimized version of Emacs in CodeWarrior, change the
|
||||
value in the Emacs Settings->Code Generation->Global Optimization
|
||||
dialog. To build a version for profiling, check the Profiler
|
||||
Information box in the Emacs Settings->Code Generation->PPC Processor
|
||||
dialog and include the Profiler PPC.Lib library.
|
||||
|
||||
To build optimized or debugging version of Emacs in MPW, follow the
|
||||
comment in makefile.MPW to enable the -opt speed or -sym on option
|
||||
(see note below).
|
||||
|
||||
The Mac version requires compiled Lisp files to be present in the lisp
|
||||
directory to run properly. It is cumbersome to bootstrap from only
|
||||
the Lisp source files. One way of getting the compiled Lisp files is
|
||||
to build Emacs once on, say, a Unix system and transfer that directory
|
||||
to the Mac. Note that linefeed conversion must be disabled when
|
||||
transferring compiled Lisp files.
|
||||
|
||||
An alternative is to unzip and untar the archive lisp-elc.tgz. An
|
||||
older version of frame.elc in the archive may cause a problem when the
|
||||
Mac version starts up. If this is the case, simply remove or rename
|
||||
that file. Then once Emacs runs, you can invoke
|
||||
byte-recompile-directory on the lisp directory to byte-compile all
|
||||
out-of-date Lisp files.
|
||||
|
||||
You may also need to run update-autoloads-from-directories on the lisp
|
||||
directory to bring loaddefs.el up-to-date.
|
||||
|
||||
* NOTES
|
||||
|
||||
Emacs should build and run on a PowerMac running Mac OS 8.1 - 9.0.
|
||||
|
||||
You will need around 100 MB of disk space for the source files and
|
||||
intermediate files.
|
||||
|
||||
It will not run on machines with more than 256 MB of physical or
|
||||
virtual memory.
|
||||
|
||||
Currently there is no support for building the LEIM directory on the
|
||||
Mac. However, it can be built on another platform and transferred to
|
||||
the Mac.
|
||||
|
||||
When Emacs is built with "-opt speed" enabled in makefile.MPW,
|
||||
optimization causes the functions reset_buffer_local_variables in
|
||||
buffer.c and syms_of_lread in lread.c to crash. Avoid this by
|
||||
enclosing them in the following pragmas.
|
||||
|
||||
#pragma options opt off
|
||||
|
||||
<function definition...>
|
||||
|
||||
#pragma options opt reset
|
||||
|
||||
To use the same icon as when Emacs is built on Windows NT, define
|
||||
GNU_ICON in mac/src/Emacs.r.
|
||||
33
mac/README
Normal file
33
mac/README
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
GNU Emacs for Mac OS
|
||||
|
||||
This directory contains the files needed to build GNU Emacs on the Mac
|
||||
OS (8.1-9.0). Many of the major features of the Unix version are
|
||||
supported: multiple frames, colors, scroll bars, menu bars, use of the
|
||||
mouse, fontsets, international characters, input methods, and coding
|
||||
systems.
|
||||
|
||||
Mac OS specific support includes document drag-and-drop in the Finder,
|
||||
transfer of text to and from other applications via the clipboard, and
|
||||
sending AppleScript commands to other applications from Emacs.
|
||||
|
||||
The following are not yet supported: unexec (dump-emacs), asynchronous
|
||||
subprocesses (start-process), and networking
|
||||
(open-network-connection).
|
||||
|
||||
There is basic support for synchronous subprocesses (call-process)
|
||||
although Unix commands that are used will need to be ported to the
|
||||
Mac.
|
||||
|
||||
Metrowerks CodeWarrior Pro 5 or Pro 6 or MPW-GM (August 2000) can be
|
||||
used to build Emacs on the Mac OS. See the INSTALL file in this
|
||||
directory for instructions on building Emacs.
|
||||
|
||||
Binary distributions are available at
|
||||
|
||||
http://mac-emacs.sourceforge.net/index.html
|
||||
|
||||
At this site you can also find an FAQ, mailing lists, and dicussion
|
||||
forums for discussing issues related to running GNU Emacs on Mac OS.
|
||||
|
||||
Andrew.
|
||||
<akochoi@users.sourceforge.net>
|
||||
2053
mac/emacs-cw5.mcp.xml
Normal file
2053
mac/emacs-cw5.mcp.xml
Normal file
File diff suppressed because it is too large
Load diff
2309
mac/emacs-cw6.mcp.xml
Normal file
2309
mac/emacs-cw6.mcp.xml
Normal file
File diff suppressed because it is too large
Load diff
8
mac/inc/alloca.h
Normal file
8
mac/inc/alloca.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef _ALLOCA_H_
|
||||
#define _ALLOCA_H_
|
||||
|
||||
#if __MRC__
|
||||
void *__alloca(size_t size);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
2
mac/inc/cmdline-defs-cw5.h
Normal file
2
mac/inc/cmdline-defs-cw5.h
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#define emacs 1
|
||||
#define HAVE_CONFIG_H
|
||||
4
mac/inc/cmdline-defs-cw6.h
Normal file
4
mac/inc/cmdline-defs-cw6.h
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#define emacs 1
|
||||
#define HAVE_CONFIG_H
|
||||
|
||||
#define CODEWARRIOR_VERSION_6
|
||||
570
mac/inc/config.h
Normal file
570
mac/inc/config.h
Normal file
|
|
@ -0,0 +1,570 @@
|
|||
/* Handcrafted Emacs site configuration file for Mac OS. -*- C -*- */
|
||||
|
||||
/* GNU Emacs site configuration template file. -*- C -*-
|
||||
Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* No code in Emacs #includes config.h twice, but some of the code
|
||||
intended to work with other packages as well (like gmalloc.c)
|
||||
think they can include it as many times as they like. */
|
||||
#ifndef EMACS_CONFIG_H
|
||||
#define EMACS_CONFIG_H
|
||||
|
||||
/* These are all defined in the top-level Makefile by configure.
|
||||
They're here only for reference. */
|
||||
|
||||
/* Define GNU_MALLOC if you want to use the GNU memory allocator. */
|
||||
/* #undef GNU_MALLOC */
|
||||
|
||||
/* Define if you are using the GNU C Library. */
|
||||
/* #undef DOUG_LEA_MALLOC */
|
||||
|
||||
/* Define REL_ALLOC if you want to use the relocating allocator for
|
||||
buffer space. */
|
||||
/* #undef REL_ALLOC */
|
||||
|
||||
/* Define HAVE_X_WINDOWS if you want to use the X window system. */
|
||||
/* #undef HAVE_X_WINDOWS */
|
||||
|
||||
/* Define HAVE_X11 if you want to use version 11 of X windows.
|
||||
Otherwise, Emacs expects to use version 10. */
|
||||
/* #undef HAVE_X11 */
|
||||
|
||||
/* Define if using an X toolkit. */
|
||||
/* #undef USE_X_TOOLKIT */
|
||||
|
||||
/* Define this if you're using XFree386. */
|
||||
/* #undef HAVE_XFREE386 */
|
||||
|
||||
/* Define this if you have Motif 2.1 or newer. */
|
||||
/* #undef HAVE_MOTIF_2_1 */
|
||||
|
||||
/* Define HAVE_MENUS if you have mouse menus.
|
||||
(This is automatic if you use X, but the option to specify it remains.)
|
||||
It is also defined with other window systems that support xmenu.c. */
|
||||
#define HAVE_MENUS 1
|
||||
|
||||
/* Define if we have the X11R6 or newer version of Xt. */
|
||||
/* #undef HAVE_X11XTR6 */
|
||||
|
||||
/* Define if we have the X11R6 or newer version of Xlib. */
|
||||
/* #undef HAVE_X11R6 */
|
||||
|
||||
/* Define if we have the X11R5 or newer version of Xlib. */
|
||||
/* #undef HAVE_X11R5 */
|
||||
|
||||
/* Define if we have the XPM libary. */
|
||||
/* #undef HAVE_XPM */
|
||||
|
||||
/* Define if we have the PNG library. */
|
||||
/* #undef HAVE_PNG */
|
||||
|
||||
/* Define if we have the JPEG library. */
|
||||
/* #undef HAVE_JPEG */
|
||||
|
||||
/* Define if we have the TIFF library. */
|
||||
/* #undef HAVE_TIFF */
|
||||
|
||||
/* Define if we have the GIF library. */
|
||||
/* #undef HAVE_GIF */
|
||||
|
||||
/* Define if libXaw3d is available. */
|
||||
/* #undef HAVE_XAW3D */
|
||||
|
||||
/* Define if we should use toolkit scroll bars. */
|
||||
/* #undef USE_TOOLKIT_SCROLL_BARS */
|
||||
|
||||
/* Define if we should use XIM, if it is available. */
|
||||
/* #undef USE_XIM */
|
||||
|
||||
/* Define if netdb.h declares h_errno. */
|
||||
/* #undef HAVE_H_ERRNO */
|
||||
|
||||
/* If we're using any sort of window system, define some consequences. */
|
||||
#ifdef HAVE_X_WINDOWS
|
||||
#define HAVE_WINDOW_SYSTEM
|
||||
#define MULTI_KBOARD
|
||||
#define HAVE_MOUSE
|
||||
#endif
|
||||
|
||||
/* Define for MacOS */
|
||||
#define HAVE_WINDOW_SYSTEM 1
|
||||
#define HAVE_MOUSE 1
|
||||
|
||||
/* Define USER_FULL_NAME to return a string
|
||||
that is the user's full name.
|
||||
It can assume that the variable `pw'
|
||||
points to the password file entry for this user.
|
||||
|
||||
At some sites, the pw_gecos field contains
|
||||
the user's full name. If neither this nor any other
|
||||
field contains the right thing, use pw_name,
|
||||
giving the user's login name, since that is better than nothing. */
|
||||
#define USER_FULL_NAME pw->pw_name
|
||||
|
||||
/* Define AMPERSAND_FULL_NAME if you use the convention
|
||||
that & in the full name stands for the login id. */
|
||||
/* Turned on June 1996 supposing nobody will mind it. */
|
||||
/* #undef AMPERSAND_FULL_NAME */
|
||||
|
||||
/* Things set by --with options in the configure script. */
|
||||
|
||||
/* Define to support POP mail retrieval. */
|
||||
/* #undef MAIL_USE_POP 1 */
|
||||
|
||||
/* Define to support Kerberos-authenticated POP mail retrieval. */
|
||||
/* #undef KERBEROS */
|
||||
/* Define to use Kerberos 5 instead of Kerberos 4 */
|
||||
/* #undef KERBEROS5 */
|
||||
/* Define to support GSS-API in addition to (or instead of) Kerberos */
|
||||
/* #undef GSSAPI */
|
||||
|
||||
/* Define to support using a Hesiod database to find the POP server. */
|
||||
/* #undef HESIOD */
|
||||
|
||||
/* Header for Voxware or PCM sound card driver. */
|
||||
/* #undef HAVE_MACHINE_SOUNDCARD_H */
|
||||
/* #undef HAVE_SYS_SOUNDCARD_H */
|
||||
/* #undef HAVE_SOUNDCARD_H */
|
||||
|
||||
/* Define HAVE_SOUND if we have sound support. We know it works
|
||||
and compiles only on the specified platforms. For others,
|
||||
it probably doesn't make sense to try. */
|
||||
|
||||
#if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
|
||||
#ifdef HAVE_MACHINE_SOUNDCARD_H
|
||||
#define HAVE_SOUND 1
|
||||
#endif
|
||||
#ifdef HAVE_SYS_SOUNDCARD_H
|
||||
#define HAVE_SOUND 1
|
||||
#endif
|
||||
#ifdef HAVE_SOUNDCARD_H
|
||||
#define HAVE_SOUND 1
|
||||
#endif
|
||||
#endif /* __FreeBSD__ || __NetBSD__ || __linux__ */
|
||||
|
||||
/* Some things figured out by the configure script, grouped as they are in
|
||||
configure.in. */
|
||||
#ifndef _ALL_SOURCE /* suppress warning if this is pre-defined */
|
||||
/* #undef _ALL_SOURCE */
|
||||
#endif
|
||||
|
||||
/* #undef HAVE_SYS_SELECT_H */
|
||||
/* #undef HAVE_SYS_TIMEB_H */
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
|
||||
#ifdef __MRC__
|
||||
#undef HAVE_UNISTD_H
|
||||
#else /* CodeWarrior */
|
||||
#define HAVE_UNISTD_H 1
|
||||
#endif
|
||||
|
||||
#define HAVE_UTIME_H 1
|
||||
/* #undef HAVE_LINUX_VERSION_H */
|
||||
/* #undef HAVE_SYS_SYSTEMINFO_H */
|
||||
/* #undef HAVE_TERMIOS_H */
|
||||
#define HAVE_LIMITS_H 1
|
||||
#define HAVE_STRING_H 1
|
||||
/* #undef HAVE_STDLIB_H */
|
||||
/* #undef HAVE_TERMCAP_H */
|
||||
/* #undef HAVE_TERM_H */
|
||||
/* #undef HAVE_STDIO_EXT_H */
|
||||
/* #undef STDC_HEADERS */
|
||||
/* #undef TIME_WITH_SYS_TIME */
|
||||
/* #undef HAVE_VFORK_H */
|
||||
#define HAVE_FCNTL_H 1
|
||||
/* #undef HAVE_SETITIMER */
|
||||
/* #undef HAVE_UALARM */
|
||||
/* #undef HAVE_SYS_WAIT_H */
|
||||
|
||||
/* #undef HAVE_LIBDNET */
|
||||
/* #undef HAVE_LIBPTHREADS */
|
||||
/* #undef HAVE_LIBRESOLV */
|
||||
/* #undef HAVE_LIBXMU */
|
||||
/* #undef HAVE_LIBNCURSES */
|
||||
/* #undef HAVE_LIBINTL */
|
||||
/* #undef HAVE_LIBXP */
|
||||
|
||||
/* movemail Kerberos support */
|
||||
/* libraries */
|
||||
/* #undef HAVE_LIBKRB */
|
||||
/* #undef HAVE_LIBKRB4 */
|
||||
/* #undef HAVE_LIBDES */
|
||||
/* #undef HAVE_LIBDES425 */
|
||||
/* #undef HAVE_LIBKRB5 */
|
||||
/* #undef HAVE_LIBCRYPTO */
|
||||
/* #undef HAVE_LIBCOM_ERR */
|
||||
/* header files */
|
||||
/* #undef HAVE_KRB5_H */
|
||||
/* #undef HAVE_DES_H */
|
||||
/* #undef HAVE_KRB_H */
|
||||
/* #undef HAVE_KERBEROSIV_DES_H */
|
||||
/* #undef HAVE_KERBEROSIV_KRB_H */
|
||||
/* #undef HAVE_KERBEROS_DES_H */
|
||||
/* #undef HAVE_KERBEROS_KRB_H */
|
||||
/* #undef HAVE_COM_ERR_H */
|
||||
|
||||
/* GSS-API libraries and headers */
|
||||
/* #undef HAVE_LIBGSSAPI_KRB5 */
|
||||
/* #undef HAVE_LIBGSSAPI */
|
||||
/* #undef HAVE_GSSAPI_H */
|
||||
|
||||
/* Mail-file locking */
|
||||
/* #undef HAVE_LIBMAIL */
|
||||
/* #undef HAVE_MAILLOCK_H */
|
||||
/* #undef HAVE_TOUCHLOCK */
|
||||
|
||||
/* #undef HAVE_ALLOCA_H */
|
||||
|
||||
/* #undef HAVE_DEV_PTMX */
|
||||
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
/* If we don't have gettimeofday,
|
||||
the test for GETTIMEOFDAY_ONE_ARGUMENT may succeed,
|
||||
but we should ignore it. */
|
||||
#ifdef HAVE_GETTIMEOFDAY
|
||||
#define GETTIMEOFDAY_ONE_ARGUMENT 1
|
||||
#endif
|
||||
/* #undef HAVE_GETHOSTNAME */
|
||||
/* #undef HAVE_GETDOMAINNAME */
|
||||
/* #undef HAVE_DUP2 */
|
||||
#define HAVE_RENAME 1
|
||||
#define HAVE_CLOSEDIR 1
|
||||
|
||||
/* #undef TM_IN_SYS_TIME */
|
||||
/* #undef HAVE_TM_ZONE */
|
||||
/* #undef HAVE_TZNAME */
|
||||
/* #undef HAVE_TM_GMTOFF */
|
||||
|
||||
/* #undef const */
|
||||
|
||||
/* #undef HAVE_LONG_FILE_NAMES */
|
||||
|
||||
/* #undef CRAY_STACKSEG_END */
|
||||
|
||||
/* #undef UNEXEC_SRC unexelf.c
|
||||
|
||||
/* #undef HAVE_LIBXBSD */
|
||||
/* #undef HAVE_XRMSETDATABASE */
|
||||
/* #undef HAVE_XSCREENRESOURCESTRING */
|
||||
/* #undef HAVE_XSCREENNUMBEROFSCREEN */
|
||||
/* #undef HAVE_XSETWMPROTOCOLS */
|
||||
|
||||
#define HAVE_MKDIR 1
|
||||
#define HAVE_RMDIR 1
|
||||
/* #undef HAVE_SYSINFO */
|
||||
/* #undef HAVE_RANDOM */
|
||||
/* #undef HAVE_LRAND48 */
|
||||
/* #undef HAVE_BCOPY */
|
||||
/* #undef HAVE_BCMP */
|
||||
#define HAVE_LOGB 1
|
||||
#define HAVE_FREXP 1
|
||||
#define HAVE_FMOD 1
|
||||
|
||||
#ifdef __MRC__
|
||||
#undef HAVE_RINT
|
||||
#else /* CodeWarrior */
|
||||
#define HAVE_RINT
|
||||
#endif
|
||||
|
||||
/* #undef HAVE_CBRT */
|
||||
/* #undef HAVE_FTIME */
|
||||
/* #undef HAVE_RES_INIT */ /* For -lresolv on Suns. */
|
||||
/* #undef HAVE_SETSID */
|
||||
/* #undef HAVE_FPATHCONF */
|
||||
#define HAVE_SELECT 1
|
||||
/* #undef HAVE_MKTIME */
|
||||
/* #undef BROKEN_MKTIME */ /* have mktime but it's broken */
|
||||
/* #undef HAVE_EUIDACCESS */
|
||||
/* #undef HAVE_GETPAGESIZE */
|
||||
/* #undef HAVE_TZSET */
|
||||
#define HAVE_SETLOCALE 1
|
||||
/* #undef HAVE_UTIMES */
|
||||
/* #undef HAVE_SETRLIMIT */
|
||||
/* #undef HAVE_SETPGID */
|
||||
/* #undef HAVE_GETCWD */
|
||||
#define HAVE_GETWD 1
|
||||
/* #undef HAVE_SHUTDOWN */
|
||||
#define HAVE_STRFTIME 1
|
||||
/* #undef HAVE_GETADDRINFO */
|
||||
/* #undef HAVE___FPENDING */
|
||||
/* #undef HAVE_FTELLO */
|
||||
/* #undef HAVE_GETLOADAVG */
|
||||
/* #undef NLIST_STRUCT */
|
||||
/* #undef NLIST_NAME_UNION */
|
||||
/* #undef HAVE_MBLEN */
|
||||
/* #undef HAVE_MBRLEN */
|
||||
/* #undef HAVE_STRSIGNAL */
|
||||
/* #undef HAVE_GRANTPT */
|
||||
/* #undef HAVE_GETPT */
|
||||
/* #undef HAVE_SPEED_T */ /* speed_t typedef in termios.h */
|
||||
/* #undef HAVE_STRUCT_TIMEZONE */
|
||||
|
||||
/* #undef LOCALTIME_CACHE */
|
||||
/* #undef HAVE_INET_SOCKETS */
|
||||
|
||||
/* #undef HAVE_AIX_SMT_EXP */
|
||||
|
||||
/* #undef vfork */
|
||||
|
||||
/* Define if you have the ANSI `strerror' function.
|
||||
Otherwise you must have the variable `char *sys_errlist[]'. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define if `sys_siglist' is declared by <signal.h>. */
|
||||
/* #undef SYS_SIGLIST_DECLARED */
|
||||
|
||||
/* Define if `struct utimbuf' is declared by <utime.h>. */
|
||||
#define HAVE_STRUCT_UTIMBUF 1
|
||||
|
||||
/* Define if `struct timeval' is declared by <sys/time.h>. */
|
||||
#define HAVE_TIMEVAL 1
|
||||
|
||||
/* If using GNU, then support inline function declarations. */
|
||||
/* Don't try to switch on inline handling as detected by AC_C_INLINE
|
||||
generally, because even if non-gcc compilers accept `inline', they
|
||||
may reject `extern inline'. */
|
||||
#ifdef __GNUC__
|
||||
#define INLINE __inline__
|
||||
#else
|
||||
#define INLINE
|
||||
#endif
|
||||
|
||||
/* Define this if you don't have struct exception in math.h. */
|
||||
/* #undef NO_MATHERR */
|
||||
|
||||
/* Define as `void' if your compiler accepts `void *'; otherwise
|
||||
define as `char'. */
|
||||
#define POINTER_TYPE void
|
||||
#define PTR POINTER_TYPE * /* For strftime.c. */
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
/* #undef _FILE_OFFSET_BITS */
|
||||
/* Define to make ftello visible on some hosts (e.g. HP-UX 10.20). */
|
||||
/* #undef _LARGEFILE_SOURCE */
|
||||
/* Define for large files, on AIX-style hosts. */
|
||||
/* #undef _LARGE_FILES */
|
||||
/* Define to make ftello visible on some hosts (e.g. glibc 2.1.3). */
|
||||
/* #undef _XOPEN_SOURCE */
|
||||
|
||||
#ifdef __MRC__
|
||||
#define EMACS_CONFIGURATION "macos-mpw"
|
||||
#else /* Assume CodeWarrior */
|
||||
#define EMACS_CONFIGURATION "macos-cw"
|
||||
#endif
|
||||
|
||||
#define EMACS_CONFIG_OPTIONS ""
|
||||
|
||||
/* The configuration script defines opsysfile to be the name of the
|
||||
s/SYSTEM.h file that describes the system type you are using. The file
|
||||
is chosen based on the configuration name you give.
|
||||
|
||||
See the file ../etc/MACHINES for a list of systems and the
|
||||
configuration names to use for them.
|
||||
|
||||
See s/template.h for documentation on writing s/SYSTEM.h files. */
|
||||
#undef config_opsysfile
|
||||
#include "s-mac.h"
|
||||
|
||||
/* The configuration script defines machfile to be the name of the
|
||||
m/MACHINE.h file that describes the machine you are using. The file is
|
||||
chosen based on the configuration name you give.
|
||||
|
||||
See the file ../etc/MACHINES for a list of machines and the
|
||||
configuration names to use for them.
|
||||
|
||||
See m/template.h for documentation on writing m/MACHINE.h files. */
|
||||
#undef config_machfile
|
||||
#include "m-mac.h"
|
||||
|
||||
/* Load in the conversion definitions if this system
|
||||
needs them and the source file being compiled has not
|
||||
said to inhibit this. There should be no need for you
|
||||
to alter these lines. */
|
||||
|
||||
#ifdef SHORTNAMES
|
||||
#ifndef NO_SHORTNAMES
|
||||
#include "../shortnames/remap.h"
|
||||
#endif /* not NO_SHORTNAMES */
|
||||
#endif /* SHORTNAMES */
|
||||
|
||||
/* If no remapping takes place, static variables cannot be dumped as
|
||||
pure, so don't worry about the `static' keyword. */
|
||||
#ifdef NO_REMAP
|
||||
/* #undef static */
|
||||
#endif
|
||||
|
||||
/* Define `subprocesses' should be defined if you want to
|
||||
have code for asynchronous subprocesses
|
||||
(as used in M-x compile and M-x shell).
|
||||
These do not work for some USG systems yet;
|
||||
for the ones where they work, the s/SYSTEM.h file defines this flag. */
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef USG
|
||||
/* #define subprocesses */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Define LD_SWITCH_SITE to contain any special flags your loader may need. */
|
||||
/* #undef LD_SWITCH_SITE */
|
||||
|
||||
/* Define C_SWITCH_SITE to contain any special flags your compiler needs. */
|
||||
/* #undef C_SWITCH_SITE */
|
||||
|
||||
/* Define LD_SWITCH_X_SITE to contain any special flags your loader
|
||||
may need to deal with X Windows. For instance, if you've defined
|
||||
HAVE_X_WINDOWS above and your X libraries aren't in a place that
|
||||
your loader can find on its own, you might want to add "-L/..." or
|
||||
something similar. */
|
||||
/* #undef LD_SWITCH_X_SITE */
|
||||
|
||||
/* Define LD_SWITCH_X_SITE_AUX with an -R option
|
||||
in case it's needed (for Solaris, for example). */
|
||||
/* #undef LD_SWITCH_X_SITE_AUX */
|
||||
|
||||
/* Define C_SWITCH_X_SITE to contain any special flags your compiler
|
||||
may need to deal with X Windows. For instance, if you've defined
|
||||
HAVE_X_WINDOWS above and your X include files aren't in a place
|
||||
that your compiler can find on its own, you might want to add
|
||||
"-I/..." or something similar. */
|
||||
/* #undef C_SWITCH_X_SITE */
|
||||
|
||||
/* Define STACK_DIRECTION here, but not if m/foo.h did. */
|
||||
#ifndef STACK_DIRECTION
|
||||
/* #undef STACK_DIRECTION */
|
||||
#endif
|
||||
|
||||
/* Define the return type of signal handlers if the s-xxx file
|
||||
did not already do so. */
|
||||
#define RETSIGTYPE void
|
||||
|
||||
/* SIGTYPE is the macro we actually use. */
|
||||
#ifndef SIGTYPE
|
||||
#define SIGTYPE RETSIGTYPE
|
||||
#endif
|
||||
|
||||
#ifdef emacs /* Don't do this for lib-src. */
|
||||
/* Tell regex.c to use a type compatible with Emacs. */
|
||||
#define RE_TRANSLATE_TYPE Lisp_Object
|
||||
#define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
|
||||
#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0)
|
||||
#endif
|
||||
|
||||
/* Avoid link-time collision with system mktime if we will use our own. */
|
||||
#if ! HAVE_MKTIME || BROKEN_MKTIME
|
||||
#define mktime emacs_mktime
|
||||
#endif
|
||||
|
||||
/* The rest of the code currently tests the CPP symbol BSTRING.
|
||||
Override any claims made by the system-description files.
|
||||
Note that on some SCO version it is possible to have bcopy and not bcmp. */
|
||||
/* #undef BSTRING */
|
||||
#if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
|
||||
#define BSTRING
|
||||
#endif
|
||||
|
||||
/* Define to empty if the keyword `volatile' does not work. Warning:
|
||||
valid code using `volatile' can become incorrect without. Disable
|
||||
with care. */
|
||||
/* #undef volatile */
|
||||
|
||||
/* Some of the files of Emacs which are intended for use with other
|
||||
programs assume that if you have a config.h file, you must declare
|
||||
the type of getenv.
|
||||
|
||||
This declaration shouldn't appear when alloca.s or Makefile.in
|
||||
includes config.h. */
|
||||
#ifndef NOT_C_CODE
|
||||
extern char *getenv ();
|
||||
#endif
|
||||
|
||||
#endif /* EMACS_CONFIG_H */
|
||||
|
||||
/* These default definitions are good for almost all machines.
|
||||
The exceptions override them in m/MACHINE.h. */
|
||||
|
||||
#ifndef BITS_PER_CHAR
|
||||
#define BITS_PER_CHAR 8
|
||||
#endif
|
||||
|
||||
#ifndef BITS_PER_SHORT
|
||||
#define BITS_PER_SHORT 16
|
||||
#endif
|
||||
|
||||
/* Note that lisp.h uses this in a preprocessor conditional, so it
|
||||
would not work to use sizeof. That being so, we do all of them
|
||||
without sizeof, for uniformity's sake. */
|
||||
#ifndef BITS_PER_INT
|
||||
#define BITS_PER_INT 32
|
||||
#endif
|
||||
|
||||
#ifndef BITS_PER_LONG
|
||||
#ifdef _LP64
|
||||
#define BITS_PER_LONG 64
|
||||
#else
|
||||
#define BITS_PER_LONG 32
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Define if the compiler supports function prototypes. It may do so
|
||||
but not define __STDC__ (e.g. DEC C by default) or may define it as
|
||||
zero. */
|
||||
/* #undef PROTOTYPES */
|
||||
/* For mktime.c: */
|
||||
#ifndef __P
|
||||
# if defined PROTOTYPES
|
||||
# define __P(args) args
|
||||
# else
|
||||
# define __P(args) ()
|
||||
# endif /* GCC. */
|
||||
#endif /* __P */
|
||||
|
||||
|
||||
/* Don't include "string.h" or <stdlib.h> in non-C code. */
|
||||
#ifndef NOT_C_CODE
|
||||
#ifdef HAVE_STRING_H
|
||||
#include "string.h"
|
||||
#endif
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Define HAVE_X_I18N if we have usable i18n support. */
|
||||
|
||||
#ifdef HAVE_X11R6
|
||||
#define HAVE_X_I18N
|
||||
#elif defined HAVE_X11R5 && !defined X11R5_INHIBIT_I18N
|
||||
#define HAVE_X_I18N
|
||||
#endif
|
||||
|
||||
/* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support. */
|
||||
|
||||
#if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
|
||||
#define HAVE_X11R6_XIM
|
||||
#endif
|
||||
|
||||
/* Should we enable expensive run-time checking of data types? */
|
||||
/* #undef ENABLE_CHECKING */
|
||||
|
||||
/* #define GLYPH_DEBUG 1 */
|
||||
|
||||
#define NO_RETURN /* nothing */
|
||||
48
mac/inc/dirent.h
Normal file
48
mac/inc/dirent.h
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/* Replacement dirent.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _DIRENT_H
|
||||
#define _DIRENT_H
|
||||
|
||||
/* for definition of FSSpec */
|
||||
#include <Files.h>
|
||||
|
||||
/* for definition of ino_t */
|
||||
#include <sys/types.h>
|
||||
|
||||
struct dirent {
|
||||
ino_t d_ino;
|
||||
char *d_name;
|
||||
};
|
||||
|
||||
typedef struct DIR {
|
||||
long dir_id;
|
||||
short vol_ref_num;
|
||||
long current_index;
|
||||
int getting_volumes; /* true if this DIR struct refers to the root directory */
|
||||
} DIR;
|
||||
|
||||
extern DIR *opendir(const char *);
|
||||
extern int closedir(DIR *);
|
||||
extern struct dirent *readdir(DIR *);
|
||||
|
||||
#endif /* _DIRENT_H */
|
||||
61
mac/inc/epaths.h
Normal file
61
mac/inc/epaths.h
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
/* Hey Emacs, this is -*- C -*- code! */
|
||||
|
||||
/* Handcrafted epaths.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
/* The default search path for Lisp function "load".
|
||||
This sets load-path. */
|
||||
#define PATH_LOADSEARCH "~emacs/lisp:~emacs/leim:~emacs/lisp/calendar:~emacs/lisp/emacs-lisp:~emacs/lisp/emulation:~emacs/lisp/progmodes:~emacs/lisp/textmodes:~emacs/lisp/international:~emacs/lisp/language:~emacs/lisp/play"
|
||||
|
||||
/* Like PATH_LOADSEARCH, but used only when Emacs is dumping. This
|
||||
path is usually identical to PATH_LOADSEARCH except that the entry
|
||||
for the directory containing the installed lisp files has been
|
||||
replaced with ../lisp. */
|
||||
#define PATH_DUMPLOADSEARCH "~emacs/lisp"
|
||||
|
||||
/* The extra search path for programs to invoke. This is appended to
|
||||
whatever the PATH environment variable says to set the Lisp
|
||||
variable exec-path and the first file name in it sets the Lisp
|
||||
variable exec-directory. exec-directory is used for finding
|
||||
executables and other architecture-dependent files. */
|
||||
#define PATH_EXEC "~emacs/mac/bin"
|
||||
|
||||
/* Where Emacs should look for its architecture-independent data
|
||||
files, like the NEWS file. The lisp variable data-directory
|
||||
is set to this value. */
|
||||
#define PATH_DATA "~emacs/data"
|
||||
|
||||
/* Where Emacs should look for X bitmap files.
|
||||
The lisp variable x-bitmap-file-path is set based on this value. */
|
||||
/* #define PATH_BITMAPS "/usr/include/X11/bitmaps" */
|
||||
|
||||
/* Where Emacs should look for its docstring file. The lisp variable
|
||||
doc-directory is set to this value. */
|
||||
#define PATH_DOC "../etc"
|
||||
|
||||
/* Where the configuration process believes the info tree lives. The
|
||||
lisp variable configure-info-directory gets its value from this
|
||||
macro, and is then used to set the Info-default-directory-list. */
|
||||
#define PATH_INFO "~emacs/info"
|
||||
|
||||
/* Where Emacs should look for the application default file. */
|
||||
/* #define PATH_X_DEFAULTS "/usr/lib/X11/%L/%T/%N%C%S:/usr/lib/X11/%l/%T/%N%C%S:/usr/lib/X11/%T/%N%C%S:/usr/lib/X11/%L/%T/%N%S:/usr/lib/X11/%l/%T/%N%S:/usr/lib/X11/%T/%N%S" */
|
||||
140
mac/inc/m-mac.h
Normal file
140
mac/inc/m-mac.h
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
/* Handcrafted m-mac.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
/* The following line tells the configuration script what sort of
|
||||
operating system this machine is likely to run.
|
||||
USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */
|
||||
|
||||
/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
|
||||
is the most significant byte. */
|
||||
|
||||
#define WORDS_BIG_ENDIAN
|
||||
|
||||
/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
|
||||
* group of arguments and treat it as an array of the arguments. */
|
||||
|
||||
#define NO_ARG_ARRAY
|
||||
|
||||
/* Define WORD_MACHINE if addresses and such have
|
||||
* to be corrected before they can be used as byte counts. */
|
||||
|
||||
/* #define WORD_MACHINE */
|
||||
|
||||
/* Now define a symbol for the cpu type, if your compiler
|
||||
does not define it automatically:
|
||||
Ones defined so far include vax, m68000, ns16000, pyramid,
|
||||
orion, tahoe, APOLLO and many others */
|
||||
|
||||
/* Use type int rather than a union, to represent Lisp_Object */
|
||||
/* This is desirable for most machines. */
|
||||
|
||||
#define NO_UNION_TYPE
|
||||
|
||||
/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
|
||||
the 24-bit bit field into an int. In other words, if bit fields
|
||||
are always unsigned.
|
||||
|
||||
If you use NO_UNION_TYPE, this flag does not matter. */
|
||||
|
||||
#define EXPLICIT_SIGN_EXTEND
|
||||
|
||||
/* Data type of load average, as read out of kmem. */
|
||||
|
||||
/* #define LOAD_AVE_TYPE long */
|
||||
|
||||
/* Convert that into an integer that is 100 for a load average of 1.0 */
|
||||
|
||||
/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
|
||||
|
||||
/* Define CANNOT_DUMP on machines where unexec does not work.
|
||||
Then the function dump-emacs will not be defined
|
||||
and temacs will do (load "loadup") automatically unless told otherwise. */
|
||||
|
||||
#define CANNOT_DUMP
|
||||
|
||||
/* Define VIRT_ADDR_VARIES if the virtual addresses of
|
||||
pure and impure space as loaded can vary, and even their
|
||||
relative order cannot be relied on.
|
||||
|
||||
Otherwise Emacs assumes that text space precedes data space,
|
||||
numerically. */
|
||||
|
||||
#define VIRT_ADDR_VARIES
|
||||
|
||||
/* Define C_ALLOCA if this machine does not support a true alloca
|
||||
and the one written in C should be used instead.
|
||||
Define HAVE_ALLOCA to say that the system provides a properly
|
||||
working alloca function and it should be used.
|
||||
Define neither one if an assembler-language alloca
|
||||
in the file alloca.s should be used. */
|
||||
|
||||
#define C_ALLOCA
|
||||
/* #define HAVE_ALLOCA */
|
||||
|
||||
/* Define NO_REMAP if memory segmentation makes it not work well
|
||||
to change the boundary between the text section and data section
|
||||
when Emacs is dumped. If you define this, the preloaded Lisp
|
||||
code will not be sharable; but that's better than failing completely. */
|
||||
|
||||
/* #define NO_REMAP */
|
||||
|
||||
/* Some really obscure 4.2-based systems (like Sequent DYNIX)
|
||||
* do not support asynchronous I/O (using SIGIO) on sockets,
|
||||
* even though it works fine on tty's. If you have one of
|
||||
* these systems, define the following, and then use it in
|
||||
* config.h (or elsewhere) to decide when (not) to use SIGIO.
|
||||
*
|
||||
* You'd think this would go in an operating-system description file,
|
||||
* but since it only occurs on some, but not all, BSD systems, the
|
||||
* reasonable place to select for it is in the machine description
|
||||
* file.
|
||||
*/
|
||||
|
||||
#define NO_SOCK_SIGIO
|
||||
|
||||
|
||||
/* After adding support for a new system, modify the large case
|
||||
statement in the `configure' script to recognize reasonable
|
||||
configuration names, and add a description of the system to
|
||||
`etc/MACHINES'.
|
||||
|
||||
If you've just fixed a problem in an existing configuration file,
|
||||
you should also check `etc/MACHINES' to make sure its descriptions
|
||||
of known problems in that configuration should be updated. */
|
||||
|
||||
/* MPW build crashes if this is not defined. */
|
||||
#ifdef __MRC__
|
||||
#define IEEE_FLOATING_POINT 1
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
/* The usual definition of XINT, which involves shifting, does not
|
||||
sign-extend properly on this machine. */
|
||||
|
||||
#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
|
||||
? (sign_extend_temp | 0xFF000000) \
|
||||
: (sign_extend_temp & 0x00FFFFFF))
|
||||
|
||||
#ifdef emacs /* Don't do this when making xmakefile! */
|
||||
extern int sign_extend_temp;
|
||||
#endif
|
||||
#endif
|
||||
155
mac/inc/macgui.h
Normal file
155
mac/inc/macgui.h
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
/* Definitions and headers for communication on the Mac OS.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef EMACS_MACGUI_H
|
||||
#define EMACS_MACGUI_H
|
||||
|
||||
#include <MacTypes.h>
|
||||
#include <Quickdraw.h>
|
||||
|
||||
typedef int Pixmap;
|
||||
typedef int Bitmap;
|
||||
|
||||
typedef int Display; /* fix later */
|
||||
|
||||
typedef unsigned long Time;
|
||||
typedef RGBColor Color;
|
||||
typedef WindowPtr Window;
|
||||
|
||||
#define FACE_DEFAULT (~0)
|
||||
|
||||
|
||||
/* Emulate XCharStruct. */
|
||||
typedef struct _XCharStruct
|
||||
{
|
||||
int rbearing;
|
||||
int lbearing;
|
||||
int width;
|
||||
int ascent;
|
||||
int descent;
|
||||
} XCharStruct;
|
||||
|
||||
struct MacFontStruct {
|
||||
char *fontname;
|
||||
|
||||
SInt16 mac_fontnum; /* font number of font used in this window */
|
||||
int mac_fontsize; /* size of font */
|
||||
Style mac_fontface; /* plain, bold, italics, etc. */
|
||||
short mac_scriptcode; /* Mac OS script code for font used */
|
||||
|
||||
#if 0
|
||||
SInt16 mFontNum; /* font number of font used in this window */
|
||||
short mScriptCode; /* Mac OS script code for font used */
|
||||
int mFontSize; /* size of font */
|
||||
Style mFontFace; /* plain, bold, italics, etc. */
|
||||
int mHeight; /* height of one line of text in pixels */
|
||||
int mWidth; /* width of one character in pixels */
|
||||
int mAscent;
|
||||
int mDescent;
|
||||
int mLeading;
|
||||
char mTwoByte; /* true for two-byte font */
|
||||
#endif
|
||||
|
||||
/* from Xlib.h */
|
||||
#if 0
|
||||
XExtData *ext_data; /* hook for extension to hang data */
|
||||
Font fid; /* Font id for this font */
|
||||
unsigned direction; /* hint about the direction font is painted */
|
||||
#endif
|
||||
unsigned min_char_or_byte2;/* first character */
|
||||
unsigned max_char_or_byte2;/* last character */
|
||||
unsigned min_byte1; /* first row that exists */
|
||||
unsigned max_byte1; /* last row that exists */
|
||||
#if 0
|
||||
Bool all_chars_exist; /* flag if all characters have nonzero size */
|
||||
unsigned default_char; /* char to print for undefined character */
|
||||
int n_properties; /* how many properties there are */
|
||||
XFontProp *properties; /* pointer to array of additional properties */
|
||||
#endif
|
||||
XCharStruct min_bounds; /* minimum bounds over all existing char */
|
||||
XCharStruct max_bounds; /* maximum bounds over all existing char */
|
||||
XCharStruct *per_char; /* first_char to last_char information */
|
||||
int ascent; /* logical extent above baseline for spacing */
|
||||
int descent; /* logical decent below baseline for spacing */
|
||||
};
|
||||
|
||||
typedef struct MacFontStruct MacFontStruct;
|
||||
typedef struct MacFontStruct XFontStruct;
|
||||
|
||||
|
||||
/* Emulate X GC's by keeping color and font info in a structure. */
|
||||
typedef struct _XGCValues
|
||||
{
|
||||
unsigned long foreground;
|
||||
unsigned long background;
|
||||
XFontStruct *font;
|
||||
} XGCValues;
|
||||
|
||||
typedef XGCValues *GC;
|
||||
|
||||
extern XGCValues *
|
||||
XCreateGC (void *, Window, unsigned long, XGCValues *);
|
||||
|
||||
#define GCForeground 0x01
|
||||
#define GCBackground 0x02
|
||||
#define GCFont 0x03
|
||||
#define GCGraphicsExposures 0
|
||||
|
||||
/* Bit Gravity */
|
||||
|
||||
#define ForgetGravity 0
|
||||
#define NorthWestGravity 1
|
||||
#define NorthGravity 2
|
||||
#define NorthEastGravity 3
|
||||
#define WestGravity 4
|
||||
#define CenterGravity 5
|
||||
#define EastGravity 6
|
||||
#define SouthWestGravity 7
|
||||
#define SouthGravity 8
|
||||
#define SouthEastGravity 9
|
||||
#define StaticGravity 10
|
||||
|
||||
#define NoValue 0x0000
|
||||
#define XValue 0x0001
|
||||
#define YValue 0x0002
|
||||
#define WidthValue 0x0004
|
||||
#define HeightValue 0x0008
|
||||
#define AllValues 0x000F
|
||||
#define XNegative 0x0010
|
||||
#define YNegative 0x0020
|
||||
|
||||
#define USPosition (1L << 0) /* user specified x, y */
|
||||
#define USSize (1L << 1) /* user specified width, height */
|
||||
|
||||
#define PPosition (1L << 2) /* program specified position */
|
||||
#define PSize (1L << 3) /* program specified size */
|
||||
#define PMinSize (1L << 4) /* program specified minimum size */
|
||||
#define PMaxSize (1L << 5) /* program specified maximum size */
|
||||
#define PResizeInc (1L << 6) /* program specified resize increments */
|
||||
#define PAspect (1L << 7) /* program specified min and max aspect ratios */
|
||||
#define PBaseSize (1L << 8) /* program specified base for incrementing */
|
||||
#define PWinGravity (1L << 9) /* program specified window gravity */
|
||||
|
||||
extern int XParseGeometry ();
|
||||
|
||||
#endif /* EMACS_MACGUI_H */
|
||||
|
||||
665
mac/inc/macterm.h
Normal file
665
mac/inc/macterm.h
Normal file
|
|
@ -0,0 +1,665 @@
|
|||
/* Display module for Mac OS.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#include "macgui.h"
|
||||
#include "frame.h"
|
||||
|
||||
/* The class of this X application. */
|
||||
#define EMACS_CLASS "Emacs"
|
||||
|
||||
#define RGB_TO_ULONG(r, g, b) (((r) << 16) | ((g) << 8) | (b))
|
||||
|
||||
#define RED_FROM_ULONG(color) ((color) >> 16)
|
||||
#define GREEN_FROM_ULONG(color) (((color) >> 8) & 0xff)
|
||||
#define BLUE_FROM_ULONG(color) ((color) & 0xff)
|
||||
|
||||
#define BLACK_PIX_DEFAULT(f) RGB_TO_ULONG(0,0,0)
|
||||
#define WHITE_PIX_DEFAULT(f) RGB_TO_ULONG(255,255,255)
|
||||
|
||||
#define FONT_WIDTH(f) ((f)->max_bounds.width)
|
||||
#define FONT_HEIGHT(f) ((f)->ascent + (f)->descent)
|
||||
#define FONT_BASE(f) ((f)->ascent)
|
||||
#define FONT_DESCENT(f) ((f)->descent)
|
||||
|
||||
#define FONT_MAX_WIDTH(f) FONT_WIDTH(f) /* fix later */
|
||||
|
||||
enum text_cursor_kinds {
|
||||
NO_CURSOR = -1,
|
||||
FILLED_BOX_CURSOR,
|
||||
HOLLOW_BOX_CURSOR,
|
||||
BAR_CURSOR
|
||||
};
|
||||
|
||||
/* Structure recording bitmaps and reference count.
|
||||
If REFCOUNT is 0 then this record is free to be reused. */
|
||||
|
||||
struct mac_bitmap_record
|
||||
{
|
||||
char *bitmap_data;
|
||||
int refcount;
|
||||
int height, width;
|
||||
};
|
||||
|
||||
|
||||
/* For each display (currently only one on mac), we have a structure that
|
||||
records information about it. */
|
||||
|
||||
struct mac_display_info
|
||||
{
|
||||
/* Chain of all mac_display_info structures. */
|
||||
struct mac_display_info *next;
|
||||
|
||||
/* This is a cons cell of the form (NAME . FONT-LIST-CACHE).
|
||||
The same cons cell also appears in x_display_name_list. */
|
||||
Lisp_Object name_list_element;
|
||||
|
||||
/* Number of frames that are on this display. */
|
||||
int reference_count;
|
||||
|
||||
/* Dots per inch of the screen. */
|
||||
double resx, resy;
|
||||
|
||||
/* Number of planes on this screen. */
|
||||
int n_planes;
|
||||
|
||||
/* Number of bits per pixel on this screen. */
|
||||
int n_cbits;
|
||||
|
||||
/* Dimensions of this screen. */
|
||||
int height, width;
|
||||
#if 0
|
||||
int height_in,width_in;
|
||||
#endif
|
||||
|
||||
/* Mask of things that cause the mouse to be grabbed. */
|
||||
int grabbed;
|
||||
|
||||
#if 0
|
||||
/* Emacs bitmap-id of the default icon bitmap for this frame.
|
||||
Or -1 if none has been allocated yet. */
|
||||
int icon_bitmap_id;
|
||||
|
||||
#endif
|
||||
/* The root window of this screen. */
|
||||
Window root_window;
|
||||
|
||||
/* The cursor to use for vertical scroll bars. */
|
||||
Cursor vertical_scroll_bar_cursor;
|
||||
|
||||
#if 0
|
||||
/* color palette information. */
|
||||
int has_palette;
|
||||
struct w32_palette_entry * color_list;
|
||||
unsigned num_colors;
|
||||
HPALETTE palette;
|
||||
|
||||
/* deferred action flags checked when starting frame update. */
|
||||
int regen_palette;
|
||||
|
||||
/* Keystroke that has been faked by Emacs and will be ignored when
|
||||
received; value is reset after key is received. */
|
||||
int faked_key;
|
||||
|
||||
#endif
|
||||
|
||||
/* A table of all the fonts we have already loaded. */
|
||||
struct font_info *font_table;
|
||||
|
||||
/* The current capacity of font_table. */
|
||||
int font_table_size;
|
||||
|
||||
/* The number of fonts actually stored in the font table.
|
||||
font_table[n] is used and valid iff 0 <= n < n_fonts. 0 <=
|
||||
n_fonts <= font_table_size. and font_table[i].name != 0. */
|
||||
int n_fonts;
|
||||
|
||||
/* Minimum width over all characters in all fonts in font_table. */
|
||||
int smallest_char_width;
|
||||
|
||||
/* Minimum font height over all fonts in font_table. */
|
||||
int smallest_font_height;
|
||||
|
||||
/* Reusable Graphics Context for drawing a cursor in a non-default face. */
|
||||
XGCValues *scratch_cursor_gc;
|
||||
|
||||
/* These variables describe the range of text currently shown in its
|
||||
mouse-face, together with the window they apply to. As long as
|
||||
the mouse stays within this range, we need not redraw anything on
|
||||
its account. Rows and columns are glyph matrix positions in
|
||||
MOUSE_FACE_WINDOW. */
|
||||
int mouse_face_beg_row, mouse_face_beg_col;
|
||||
int mouse_face_beg_x, mouse_face_beg_y;
|
||||
int mouse_face_end_row, mouse_face_end_col;
|
||||
int mouse_face_end_x, mouse_face_end_y;
|
||||
int mouse_face_past_end;
|
||||
|
||||
Lisp_Object mouse_face_window;
|
||||
|
||||
int mouse_face_face_id;
|
||||
|
||||
/* 1 if a mouse motion event came and we didn't handle it right away because
|
||||
gc was in progress. */
|
||||
int mouse_face_deferred_gc;
|
||||
|
||||
/* FRAME and X, Y position of mouse when last checked for
|
||||
highlighting. X and Y can be negative or out of range for the frame. */
|
||||
struct frame *mouse_face_mouse_frame;
|
||||
|
||||
int mouse_face_mouse_x, mouse_face_mouse_y;
|
||||
|
||||
/* Nonzero means defer mouse-motion highlighting. */
|
||||
int mouse_face_defer;
|
||||
|
||||
int mouse_face_image_state;
|
||||
|
||||
char *mac_id_name;
|
||||
|
||||
/* Pointer to bitmap records. */
|
||||
struct mac_bitmap_record *bitmaps;
|
||||
|
||||
/* Allocated size of bitmaps field. */
|
||||
int bitmaps_size;
|
||||
|
||||
/* Last used bitmap index. */
|
||||
int bitmaps_last;
|
||||
|
||||
/* The frame (if any) which has the window that has keyboard focus.
|
||||
Zero if none. This is examined by Ffocus_frame in w32fns.c. Note
|
||||
that a mere EnterNotify event can set this; if you need to know the
|
||||
last frame specified in a FocusIn or FocusOut event, use
|
||||
w32_focus_event_frame. */
|
||||
struct frame *x_focus_frame;
|
||||
|
||||
/* The last frame mentioned in a FocusIn or FocusOut event. This is
|
||||
separate from w32_focus_frame, because whether or not LeaveNotify
|
||||
events cause us to lose focus depends on whether or not we have
|
||||
received a FocusIn event for it. */
|
||||
struct frame *x_focus_event_frame;
|
||||
|
||||
/* The frame which currently has the visual highlight, and should get
|
||||
keyboard input (other sorts of input have the frame encoded in the
|
||||
event). It points to the focus frame's selected window's
|
||||
frame. It differs from w32_focus_frame when we're using a global
|
||||
minibuffer. */
|
||||
struct frame *x_highlight_frame;
|
||||
|
||||
/* Cache of images. */
|
||||
struct image_cache *image_cache;
|
||||
};
|
||||
|
||||
#define x_display_info mac_display_info
|
||||
|
||||
/* This is a chain of structures for all the displays currently in use. */
|
||||
extern struct mac_display_info one_mac_display_info;
|
||||
|
||||
/* This is a list of cons cells, each of the form (NAME . FONT-LIST-CACHE),
|
||||
one for each element of w32_display_list and in the same order.
|
||||
NAME is the name of the frame.
|
||||
FONT-LIST-CACHE records previous values returned by x-list-fonts. */
|
||||
extern Lisp_Object x_display_name_list;
|
||||
|
||||
/* A flag to control how to display unibyte 8-bit character. */
|
||||
extern int unibyte_display_via_language_environment;
|
||||
|
||||
extern struct x_display_info *x_display_info_for_display P_ ((Display *));
|
||||
extern struct x_display_info *x_display_info_for_name P_ ((Lisp_Object));
|
||||
|
||||
extern struct mac_display_info *mac_term_init ();
|
||||
|
||||
/* The collection of data describing a window on the Mac. Functions
|
||||
defined in macterm.c */
|
||||
struct mac_output {
|
||||
WindowPtr mWP; /* pointer to QuickDraw window */
|
||||
FRAME_PTR mFP; /* points back to the frame struct */
|
||||
|
||||
#if 0
|
||||
int mNumCols; /* number of characters per column */
|
||||
int mNumRows; /* number of characters per row */
|
||||
int mLineHeight; /* height of one line of text in pixels */
|
||||
int mCharWidth; /* width of one character in pixels */
|
||||
int mHomeX; /* X pixel coordinate of lower left corner of character at (0, 0) */
|
||||
int mHomeY; /* Y pixel coordinate of lower left corner of character at (0, 0) */
|
||||
int mHighlight; /* current highlight state (0 = off). */
|
||||
int mTermWinSize; /* num of lines from top of window affected by ins_del_lines; set by set_terminal_window. */
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
/* stuffs used by xfaces.c */
|
||||
struct face **param_faces;
|
||||
int n_param_faces;
|
||||
struct face **computed_faces;
|
||||
int n_computed_faces;
|
||||
int size_computed_faces;
|
||||
#endif
|
||||
|
||||
unsigned long background_pixel;
|
||||
unsigned long foreground_pixel;
|
||||
|
||||
/* Position of the Mac window (x and y offsets in global coordinates). */
|
||||
int left_pos;
|
||||
int top_pos;
|
||||
|
||||
/* Border width of the W32 window as known by the window system. */
|
||||
int border_width;
|
||||
|
||||
/* Size of the W32 window in pixels. */
|
||||
int pixel_height, pixel_width;
|
||||
|
||||
/* Height of a line, in pixels. */
|
||||
int line_height;
|
||||
|
||||
/* Here are the Graphics Contexts for the default font. */
|
||||
GC normal_gc; /* Normal video */
|
||||
GC reverse_gc; /* Reverse video */
|
||||
GC cursor_gc; /* cursor drawing */
|
||||
|
||||
/* Width of the internal border. This is a line of background color
|
||||
just inside the window's border. When the frame is selected,
|
||||
a highlighting is displayed inside the internal border. */
|
||||
int internal_border_width;
|
||||
|
||||
/* The window used for this frame.
|
||||
May be zero while the frame object is being created
|
||||
and the window has not yet been created. */
|
||||
Window window_desc;
|
||||
|
||||
/* The window that is the parent of this window.
|
||||
Usually this is a window that was made by the window manager,
|
||||
but it can be the root window, and it can be explicitly specified
|
||||
(see the explicit_parent field, below). */
|
||||
Window parent_desc;
|
||||
|
||||
/* Default ASCII font of this frame. */
|
||||
XFontStruct *font;
|
||||
|
||||
/* The baseline offset of the default ASCII font. */
|
||||
int baseline_offset;
|
||||
|
||||
/* If a fontset is specified for this frame instead of font, this
|
||||
value contains an ID of the fontset, else -1. */
|
||||
int fontset;
|
||||
|
||||
/* Pixel values used for various purposes.
|
||||
border_pixel may be -1 meaning use a gray tile. */
|
||||
unsigned long cursor_pixel;
|
||||
unsigned long border_pixel;
|
||||
unsigned long mouse_pixel;
|
||||
unsigned long cursor_foreground_pixel;
|
||||
|
||||
/* Foreground color for scroll bars. A value of -1 means use the
|
||||
default (black for non-toolkit scroll bars). */
|
||||
unsigned long scroll_bar_foreground_pixel;
|
||||
|
||||
/* Background color for scroll bars. A value of -1 means use the
|
||||
default (background color of the frame for non-toolkit scroll
|
||||
bars). */
|
||||
unsigned long scroll_bar_background_pixel;
|
||||
|
||||
/* Descriptor for the cursor in use for this window. */
|
||||
Cursor text_cursor;
|
||||
Cursor nontext_cursor;
|
||||
Cursor modeline_cursor;
|
||||
Cursor cross_cursor;
|
||||
Cursor busy_cursor;
|
||||
#if 0
|
||||
/* Window whose cursor is busy_cursor. This window is temporarily
|
||||
mapped to display a busy-cursor. */
|
||||
Window busy_window;
|
||||
|
||||
/* Non-zero means busy cursor is currently displayed. */
|
||||
unsigned busy_p : 1;
|
||||
|
||||
/* Flag to set when the window needs to be completely repainted. */
|
||||
int needs_exposure;
|
||||
|
||||
#endif
|
||||
|
||||
/* What kind of text cursor is drawn in this window right now?
|
||||
(If there is no cursor (phys_cursor_x < 0), then this means nothing.) */
|
||||
enum text_cursor_kinds current_cursor;
|
||||
|
||||
/* What kind of text cursor should we draw in the future?
|
||||
This should always be filled_box_cursor or bar_cursor. */
|
||||
enum text_cursor_kinds desired_cursor;
|
||||
|
||||
/* Width of bar cursor (if we are using that). */
|
||||
int cursor_width;
|
||||
|
||||
#if 0
|
||||
DWORD dwStyle;
|
||||
#endif
|
||||
|
||||
/* The size of the extra width currently allotted for vertical
|
||||
scroll bars, in pixels. */
|
||||
int vertical_scroll_bar_extra;
|
||||
|
||||
/* The extra width currently allotted for the areas in which
|
||||
truncation marks, continuation marks, and overlay arrows are
|
||||
displayed. */
|
||||
int flags_areas_extra;
|
||||
|
||||
/* This is the gravity value for the specified window position. */
|
||||
int win_gravity;
|
||||
|
||||
/* The geometry flags for this window. */
|
||||
int size_hint_flags;
|
||||
|
||||
/* This is the Emacs structure for the display this frame is on. */
|
||||
/* struct w32_display_info *display_info; */
|
||||
|
||||
/* Nonzero means our parent is another application's window
|
||||
and was explicitly specified. */
|
||||
char explicit_parent;
|
||||
|
||||
/* Nonzero means tried already to make this frame visible. */
|
||||
char asked_for_visible;
|
||||
|
||||
/* Nonzero means menubar is currently active. */
|
||||
char menubar_active;
|
||||
|
||||
/* Always contains NULL on the Mac OS because the menu bar is shared. */
|
||||
int menubar_widget;
|
||||
|
||||
#if 0
|
||||
/* Nonzero means menubar is about to become active, but should be
|
||||
brought up to date first. */
|
||||
volatile char pending_menu_activation;
|
||||
|
||||
#endif
|
||||
/* Relief GCs, colors etc. */
|
||||
struct relief
|
||||
{
|
||||
XGCValues *gc;
|
||||
unsigned long pixel;
|
||||
int allocated_p;
|
||||
}
|
||||
black_relief, white_relief;
|
||||
|
||||
/* The background for which the above relief GCs were set up.
|
||||
They are changed only when a different background is involved. */
|
||||
unsigned long relief_background;
|
||||
};
|
||||
|
||||
typedef struct mac_output mac_output;
|
||||
|
||||
/* Return the Mac window used for displaying data in frame F. */
|
||||
#define FRAME_MAC_WINDOW(f) ((f)->output_data.mac->mWP)
|
||||
|
||||
#define FRAME_FOREGROUND_PIXEL(f) ((f)->output_data.mac->foreground_pixel)
|
||||
#define FRAME_BACKGROUND_PIXEL(f) ((f)->output_data.mac->background_pixel)
|
||||
|
||||
#define FRAME_FONT(f) ((f)->output_data.mac->font)
|
||||
#define FRAME_FONTSET(f) ((f)->output_data.mac->fontset)
|
||||
|
||||
#define FRAME_INTERNAL_BORDER_WIDTH(f) ((f)->output_data.mac->internal_border_width)
|
||||
#define FRAME_LINE_HEIGHT(f) ((f)->output_data.mac->line_height)
|
||||
/* Width of the default font of frame F. Must be defined by each
|
||||
terminal specific header. */
|
||||
#define FRAME_DEFAULT_FONT_WIDTH(F) FONT_WIDTH (FRAME_FONT (F))
|
||||
#define FRAME_BASELINE_OFFSET(f) ((f)->output_data.mac->baseline_offset)
|
||||
|
||||
/* This gives the w32_display_info structure for the display F is on. */
|
||||
#define FRAME_MAC_DISPLAY_INFO(f) (&one_mac_display_info)
|
||||
#define FRAME_X_DISPLAY_INFO(f) (&one_mac_display_info)
|
||||
|
||||
/* This is the `Display *' which frame F is on. */
|
||||
#define FRAME_MAC_DISPLAY(f) (0)
|
||||
|
||||
/* This is the 'font_info *' which frame F has. */
|
||||
#define FRAME_MAC_FONT_TABLE(f) (FRAME_MAC_DISPLAY_INFO (f)->font_table)
|
||||
|
||||
/* These two really ought to be called FRAME_PIXEL_{WIDTH,HEIGHT}. */
|
||||
#define PIXEL_WIDTH(f) ((f)->output_data.mac->pixel_width)
|
||||
#define PIXEL_HEIGHT(f) ((f)->output_data.mac->pixel_height)
|
||||
|
||||
#define FRAME_DESIRED_CURSOR(f) ((f)->output_data.mac->desired_cursor)
|
||||
|
||||
/* Value is the smallest width of any character in any font on frame F. */
|
||||
|
||||
#define FRAME_SMALLEST_CHAR_WIDTH(F) \
|
||||
FRAME_MAC_DISPLAY_INFO(F)->smallest_char_width
|
||||
|
||||
/* Value is the smallest height of any font on frame F. */
|
||||
|
||||
#define FRAME_SMALLEST_FONT_HEIGHT(F) \
|
||||
FRAME_MAC_DISPLAY_INFO(F)->smallest_font_height
|
||||
|
||||
/* Return a pointer to the image cache of frame F. */
|
||||
|
||||
#define FRAME_X_IMAGE_CACHE(F) FRAME_MAC_DISPLAY_INFO ((F))->image_cache
|
||||
|
||||
|
||||
/* Pixel width of the bitmaps drawn to indicate truncation,
|
||||
continuation etc. */
|
||||
|
||||
#define FRAME_FLAGS_BITMAP_WIDTH(f) 8
|
||||
#define FRAME_FLAGS_BITMAP_HEIGHT(f) 8
|
||||
|
||||
/* Total width of areas reserved for drawing truncation bitmaps,
|
||||
continuation bitmaps and alike. The width is in canonical char
|
||||
units of the frame. This must currently be the case because window
|
||||
sizes aren't pixel values. If it weren't the case, we wouldn't be
|
||||
able to split windows horizontally nicely. */
|
||||
|
||||
#define FRAME_X_FLAGS_AREA_COLS(F) \
|
||||
((2 * FRAME_FLAGS_BITMAP_WIDTH ((F)) + CANON_X_UNIT ((F)) - 1) \
|
||||
/ CANON_X_UNIT ((F)))
|
||||
|
||||
/* Total width of flags areas in pixels. */
|
||||
|
||||
#define FRAME_X_FLAGS_AREA_WIDTH(F) \
|
||||
(FRAME_X_FLAGS_AREA_COLS ((F)) * CANON_X_UNIT ((F)))
|
||||
|
||||
/* Pixel-width of the left flags area. */
|
||||
|
||||
#define FRAME_X_LEFT_FLAGS_AREA_WIDTH(F) \
|
||||
(FRAME_X_FLAGS_AREA_WIDTH (F) / 2)
|
||||
|
||||
/* Pixel-width of the right flags area. Note that we are doing
|
||||
integer arithmetic here, so don't loose a pixel if the total
|
||||
width is an odd number. */
|
||||
|
||||
#define FRAME_X_RIGHT_FLAGS_AREA_WIDTH(F) \
|
||||
(FRAME_X_FLAGS_AREA_WIDTH (F) - FRAME_X_FLAGS_AREA_WIDTH (F) / 2)
|
||||
|
||||
|
||||
|
||||
/* Mac-specific scroll bar stuff. */
|
||||
|
||||
/* We represent scroll bars as lisp vectors. This allows us to place
|
||||
references to them in windows without worrying about whether we'll
|
||||
end up with windows referring to dead scroll bars; the garbage
|
||||
collector will free it when its time comes.
|
||||
|
||||
We use struct scroll_bar as a template for accessing fields of the
|
||||
vector. */
|
||||
|
||||
struct scroll_bar {
|
||||
|
||||
/* These fields are shared by all vectors. */
|
||||
EMACS_INT size_from_Lisp_Vector_struct;
|
||||
struct Lisp_Vector *next_from_Lisp_Vector_struct;
|
||||
|
||||
/* The window we're a scroll bar for. */
|
||||
Lisp_Object window;
|
||||
|
||||
/* The next and previous in the chain of scroll bars in this frame. */
|
||||
Lisp_Object next, prev;
|
||||
|
||||
/* The Mac control handle of this scroll bar. Since this is a full
|
||||
32-bit quantity, we store it split into two 32-bit values. */
|
||||
Lisp_Object control_handle_low, control_handle_high;
|
||||
|
||||
/* The position and size of the scroll bar in pixels, relative to the
|
||||
frame. */
|
||||
Lisp_Object top, left, width, height;
|
||||
|
||||
/* The starting and ending positions of the handle, relative to the
|
||||
handle area (i.e. zero is the top position, not
|
||||
SCROLL_BAR_TOP_BORDER). If they're equal, that means the handle
|
||||
hasn't been drawn yet.
|
||||
|
||||
These are not actually the locations where the beginning and end
|
||||
are drawn; in order to keep handles from becoming invisible when
|
||||
editing large files, we establish a minimum height by always
|
||||
drawing handle bottoms VERTICAL_SCROLL_BAR_MIN_HANDLE pixels below
|
||||
where they would be normally; the bottom and top are in a
|
||||
different co-ordinate system. */
|
||||
Lisp_Object start, end;
|
||||
|
||||
/* If the scroll bar handle is currently being dragged by the user,
|
||||
this is the number of pixels from the top of the handle to the
|
||||
place where the user grabbed it. If the handle isn't currently
|
||||
being dragged, this is Qnil. */
|
||||
Lisp_Object dragging;
|
||||
};
|
||||
|
||||
/* The number of elements a vector holding a struct scroll_bar needs. */
|
||||
#define SCROLL_BAR_VEC_SIZE \
|
||||
((sizeof (struct scroll_bar) \
|
||||
- sizeof (EMACS_INT) - sizeof (struct Lisp_Vector *)) \
|
||||
/ sizeof (Lisp_Object))
|
||||
|
||||
/* Turning a lisp vector value into a pointer to a struct scroll_bar. */
|
||||
#define XSCROLL_BAR(vec) ((struct scroll_bar *) XVECTOR (vec))
|
||||
|
||||
|
||||
/* Building a 32-bit C integer from two 16-bit lisp integers. */
|
||||
#define SCROLL_BAR_PACK(low, high) (XINT (high) << 16 | XINT (low))
|
||||
|
||||
/* Setting two lisp integers to the low and high words of a 32-bit C int. */
|
||||
#define SCROLL_BAR_UNPACK(low, high, int32) \
|
||||
(XSETINT ((low), (int32) & 0xffff), \
|
||||
XSETINT ((high), ((int32) >> 16) & 0xffff))
|
||||
|
||||
|
||||
/* Extract the Mac control handle of the scroll bar from a struct scroll_bar. */
|
||||
#define SCROLL_BAR_CONTROL_HANDLE(ptr) \
|
||||
((ControlHandle) SCROLL_BAR_PACK ((ptr)->control_handle_low, (ptr)->control_handle_high))
|
||||
|
||||
/* Store a Mac control handle in a struct scroll_bar. */
|
||||
#define SET_SCROLL_BAR_CONTROL_HANDLE(ptr, id) \
|
||||
(SCROLL_BAR_UNPACK ((ptr)->control_handle_low, (ptr)->control_handle_high, (int) id))
|
||||
|
||||
/* Return the inside width of a vertical scroll bar, given the outside
|
||||
width. */
|
||||
#define VERTICAL_SCROLL_BAR_INSIDE_WIDTH(f,width) \
|
||||
((width) \
|
||||
- VERTICAL_SCROLL_BAR_LEFT_BORDER \
|
||||
- VERTICAL_SCROLL_BAR_RIGHT_BORDER \
|
||||
- VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2)
|
||||
|
||||
/* Return the length of the rectangle within which the top of the
|
||||
handle must stay. This isn't equivalent to the inside height,
|
||||
because the scroll bar handle has a minimum height.
|
||||
|
||||
This is the real range of motion for the scroll bar, so when we're
|
||||
scaling buffer positions to scroll bar positions, we use this, not
|
||||
VERTICAL_SCROLL_BAR_INSIDE_HEIGHT. */
|
||||
#define VERTICAL_SCROLL_BAR_TOP_RANGE(f,height) \
|
||||
(VERTICAL_SCROLL_BAR_INSIDE_HEIGHT (f, height) - VERTICAL_SCROLL_BAR_MIN_HANDLE - UP_AND_DOWN_ARROWS)
|
||||
|
||||
/* Return the inside height of vertical scroll bar, given the outside
|
||||
height. See VERTICAL_SCROLL_BAR_TOP_RANGE too. */
|
||||
#define VERTICAL_SCROLL_BAR_INSIDE_HEIGHT(f,height) \
|
||||
((height) - VERTICAL_SCROLL_BAR_TOP_BORDER - VERTICAL_SCROLL_BAR_BOTTOM_BORDER)
|
||||
|
||||
|
||||
/* Border widths for scroll bars.
|
||||
|
||||
Scroll bar windows don't have any borders; their border width is
|
||||
set to zero, and we redraw borders ourselves. This makes the code
|
||||
a bit cleaner, since we don't have to convert between outside width
|
||||
(used when relating to the rest of the screen) and inside width
|
||||
(used when sizing and drawing the scroll bar window itself).
|
||||
|
||||
The handle moves up and down/back and forth in a rectangle inset
|
||||
from the edges of the scroll bar. These are widths by which we
|
||||
inset the handle boundaries from the scroll bar edges. */
|
||||
#define VERTICAL_SCROLL_BAR_LEFT_BORDER (0)
|
||||
#define VERTICAL_SCROLL_BAR_RIGHT_BORDER (0)
|
||||
#define VERTICAL_SCROLL_BAR_TOP_BORDER (0)
|
||||
#define VERTICAL_SCROLL_BAR_BOTTOM_BORDER (0)
|
||||
|
||||
/* Minimum lengths for scroll bar handles, in pixels. */
|
||||
#define VERTICAL_SCROLL_BAR_MIN_HANDLE (16)
|
||||
|
||||
/* Combined length of up and down arrow boxes in scroll bars, in pixels. */
|
||||
#define UP_AND_DOWN_ARROWS (32)
|
||||
|
||||
/* Trimming off a few pixels from each side prevents
|
||||
text from glomming up against the scroll bar */
|
||||
#define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0)
|
||||
|
||||
|
||||
/* Manipulating pixel sizes and character sizes.
|
||||
Knowledge of which factors affect the overall size of the window should
|
||||
be hidden in these macros, if that's possible.
|
||||
|
||||
Return the upper/left pixel position of the character cell on frame F
|
||||
at ROW/COL. */
|
||||
#define CHAR_TO_PIXEL_ROW(f, row) \
|
||||
((f)->output_data.mac->internal_border_width \
|
||||
+ (row) * (f)->output_data.mac->line_height)
|
||||
#define CHAR_TO_PIXEL_COL(f, col) \
|
||||
((f)->output_data.mac->internal_border_width \
|
||||
+ (col) * FONT_WIDTH ((f)->output_data.mac->font))
|
||||
|
||||
/* Return the pixel width/height of frame F if it has
|
||||
WIDTH columns/HEIGHT rows. */
|
||||
#define CHAR_TO_PIXEL_WIDTH(f, width) \
|
||||
(CHAR_TO_PIXEL_COL (f, width) \
|
||||
+ (f)->output_data.mac->vertical_scroll_bar_extra \
|
||||
+ (f)->output_data.mac->flags_areas_extra \
|
||||
+ (f)->output_data.mac->internal_border_width)
|
||||
#define CHAR_TO_PIXEL_HEIGHT(f, height) \
|
||||
(CHAR_TO_PIXEL_ROW (f, height) \
|
||||
+ (f)->output_data.mac->internal_border_width)
|
||||
|
||||
|
||||
/* Return the row/column (zero-based) of the character cell containing
|
||||
the pixel on FRAME at ROW/COL. */
|
||||
#define PIXEL_TO_CHAR_ROW(f, row) \
|
||||
(((row) - (f)->output_data.mac->internal_border_width) \
|
||||
/ (f)->output_data.mac->line_height)
|
||||
#define PIXEL_TO_CHAR_COL(f, col) \
|
||||
(((col) - (f)->output_data.mac->internal_border_width) \
|
||||
/ FONT_WIDTH ((f)->output_data.mac->font))
|
||||
|
||||
/* How many columns/rows of text can we fit in WIDTH/HEIGHT pixels on
|
||||
frame F? */
|
||||
#define PIXEL_TO_CHAR_WIDTH(f, width) \
|
||||
(PIXEL_TO_CHAR_COL (f, ((width) \
|
||||
- (f)->output_data.mac->internal_border_width \
|
||||
- (f)->output_data.mac->flags_areas_extra \
|
||||
- (f)->output_data.mac->vertical_scroll_bar_extra)))
|
||||
#define PIXEL_TO_CHAR_HEIGHT(f, height) \
|
||||
(PIXEL_TO_CHAR_ROW (f, ((height) \
|
||||
- (f)->output_data.mac->internal_border_width)))
|
||||
|
||||
struct frame * check_x_frame (Lisp_Object);
|
||||
|
||||
/* Dummy entry for defining tty_display in frame.c. */
|
||||
struct x_output
|
||||
{
|
||||
char _dummy;
|
||||
};
|
||||
37
mac/inc/pwd.h
Normal file
37
mac/inc/pwd.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/* Replacement pwd.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _PWD_H
|
||||
#define _PWD_H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Emacs uses only pw_name and pw_dir: let's just simulate these */
|
||||
struct passwd {
|
||||
char *pw_name; /* user name */
|
||||
char *pw_dir; /* home directory */
|
||||
};
|
||||
|
||||
struct passwd *getpwuid(uid_t);
|
||||
struct passwd *getpwnam(const char *);
|
||||
|
||||
#endif /* _PWD_H */
|
||||
320
mac/inc/s-mac.h
Normal file
320
mac/inc/s-mac.h
Normal file
|
|
@ -0,0 +1,320 @@
|
|||
/* Handcrafted s-mac.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
/*
|
||||
* Define symbols to identify the version of Unix this is.
|
||||
* Define all the symbols that apply correctly.
|
||||
*/
|
||||
|
||||
/* #define UNIPLUS */
|
||||
/* #define USG5 */
|
||||
/* #define USG */
|
||||
/* #define HPUX */
|
||||
/* #define UMAX */
|
||||
/* #define BSD4_1 */
|
||||
/* #define BSD4_2 */
|
||||
/* #define BSD4_3 */
|
||||
/* #define BSD_SYSTEM */
|
||||
/* #define VMS */
|
||||
|
||||
/* SYSTEM_TYPE should indicate the kind of system you are using.
|
||||
It sets the Lisp variable system-type. */
|
||||
|
||||
#define SYSTEM_TYPE "macos"
|
||||
|
||||
/* NOMULTIPLEJOBS should be defined if your system's shell
|
||||
does not have "job control" (the ability to stop a program,
|
||||
run some other program, then continue the first one). */
|
||||
|
||||
#define NOMULTIPLEJOBS
|
||||
|
||||
/* Emacs can read input using SIGIO and buffering characters itself,
|
||||
or using CBREAK mode and making C-g cause SIGINT.
|
||||
The choice is controlled by the variable interrupt_input.
|
||||
|
||||
Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
|
||||
|
||||
Emacs uses the presence or absence of the SIGIO macro to indicate
|
||||
whether or not signal-driven I/O is possible. It uses
|
||||
INTERRUPT_INPUT to decide whether to use it by default.
|
||||
|
||||
SIGIO can be used only on systems that implement it (4.2 and 4.3).
|
||||
CBREAK mode has two disadvantages
|
||||
1) At least in 4.2, it is impossible to handle the Meta key properly.
|
||||
I hear that in system V this problem does not exist.
|
||||
2) Control-G causes output to be discarded.
|
||||
I do not know whether this can be fixed in system V.
|
||||
|
||||
Another method of doing input is planned but not implemented.
|
||||
It would have Emacs fork off a separate process
|
||||
to read the input and send it to the true Emacs process
|
||||
through a pipe. */
|
||||
|
||||
/* #define INTERRUPT_INPUT */
|
||||
|
||||
/* Letter to use in finding device name of first pty,
|
||||
if system supports pty's. 'a' means it is /dev/ptya0 */
|
||||
|
||||
/* #define FIRST_PTY_LETTER 'a' */
|
||||
|
||||
/*
|
||||
* Define HAVE_TERMIOS if the system provides POSIX-style
|
||||
* functions and macros for terminal control.
|
||||
*
|
||||
* Define HAVE_TERMIO if the system provides sysV-style ioctls
|
||||
* for terminal control.
|
||||
*
|
||||
* Do not define both. HAVE_TERMIOS is preferred, if it is
|
||||
* supported on your system.
|
||||
*/
|
||||
|
||||
/* #define HAVE_TERMIOS */
|
||||
#define HAVE_TERMIO
|
||||
|
||||
/*
|
||||
* Define HAVE_PTYS if the system supports pty devices.
|
||||
*/
|
||||
|
||||
/* #define HAVE_PTYS */
|
||||
|
||||
/*
|
||||
* Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
|
||||
* The 4.2 opendir, etc., library functions.
|
||||
*/
|
||||
|
||||
/* #define NONSYSTEM_DIR_LIBRARY */
|
||||
|
||||
/* Define this symbol if your system has the functions bcopy, etc. */
|
||||
|
||||
/* #define BSTRING */
|
||||
|
||||
/* subprocesses should be defined if you want to
|
||||
have code for asynchronous subprocesses
|
||||
(as used in M-x compile and M-x shell).
|
||||
This is generally OS dependent, and not supported
|
||||
under most USG systems. */
|
||||
|
||||
/* #define subprocesses */
|
||||
|
||||
/* If your system uses COFF (Common Object File Format) then define the
|
||||
preprocessor symbol "COFF". */
|
||||
|
||||
/* #define COFF */
|
||||
|
||||
/* define MAIL_USE_FLOCK if the mailer uses flock
|
||||
to interlock access to /usr/spool/mail/$USER.
|
||||
The alternative is that a lock file named
|
||||
/usr/spool/mail/$USER.lock. */
|
||||
|
||||
/* #define MAIL_USE_FLOCK */
|
||||
|
||||
/* Define CLASH_DETECTION if you want lock files to be written
|
||||
so that Emacs can tell instantly when you try to modify
|
||||
a file that someone else has modified in his Emacs. */
|
||||
|
||||
/* #define CLASH_DETECTION */
|
||||
|
||||
/* Define this if your operating system declares signal handlers to
|
||||
have a type other than the usual. `The usual' is `void' for ANSI C
|
||||
systems (i.e. when the __STDC__ macro is defined), and `int' for
|
||||
pre-ANSI systems. If you're using GCC on an older system, __STDC__
|
||||
will be defined, but the system's include files will still say that
|
||||
signal returns int or whatever; in situations like that, define
|
||||
this to be what the system's include files want. */
|
||||
/* #define SIGTYPE int */
|
||||
|
||||
/* If the character used to separate elements of the executable path
|
||||
is not ':', #define this to be the appropriate character constant. */
|
||||
/* #define SEPCHAR ':' */
|
||||
|
||||
/* ============================================================ */
|
||||
|
||||
/* Here, add any special hacks needed
|
||||
to make Emacs work on this system. For example,
|
||||
you might define certain system call names that don't
|
||||
exist on your system, or that do different things on
|
||||
your system and must be used only through an encapsulation
|
||||
(Which you should place, by convention, in sysdep.c). */
|
||||
|
||||
/* Some compilers tend to put everything declared static
|
||||
into the initialized data area, which becomes pure after dumping Emacs.
|
||||
On these systems, you must #define static as nothing to foil this.
|
||||
Note that emacs carefully avoids static vars inside functions. */
|
||||
|
||||
/* #define static */
|
||||
|
||||
/* ============================================================ */
|
||||
|
||||
/* After adding support for a new system, modify the large case
|
||||
statement in the `configure' script to recognize reasonable
|
||||
configuration names, and add a description of the system to
|
||||
`etc/MACHINES'.
|
||||
|
||||
If you've just fixed a problem in an existing configuration file,
|
||||
you should also check `etc/MACHINES' to make sure its descriptions
|
||||
of known problems in that configuration should be updated. */
|
||||
|
||||
#ifdef __MRC__
|
||||
#define __signal_max SIGTERM /* largest one in signal.h */
|
||||
#endif
|
||||
|
||||
#define SIGHUP (__signal_max+1)
|
||||
#define SIGQUIT (__signal_max+2)
|
||||
#define SIGTRAP (__signal_max+3)
|
||||
#define SIGKILL (__signal_max+4)
|
||||
#define SIGALRM (__signal_max+5)
|
||||
#define SIGPIPE (__signal_max+6)
|
||||
#define NSIG (__signal_max+6)
|
||||
|
||||
#ifdef __MRC__
|
||||
#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)
|
||||
#elif __MWERKS__
|
||||
#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->buffer_ptr - (FILE)->buffer)
|
||||
#endif
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include <errno.h>
|
||||
#ifndef ENOENT
|
||||
#define ENOENT 100
|
||||
#endif
|
||||
#ifndef EXDEV
|
||||
#define EXDEV 101
|
||||
#endif
|
||||
#ifndef EEXIST
|
||||
#define EEXIST 102
|
||||
#endif
|
||||
#ifndef EINTR
|
||||
#define EINTR 102
|
||||
#endif
|
||||
#ifndef EACCES
|
||||
#define EACCES 103
|
||||
#endif
|
||||
#ifndef ENOTDIR
|
||||
#define ENOTDIR 104
|
||||
#endif
|
||||
#ifndef EIO
|
||||
#define EIO 105
|
||||
#endif
|
||||
#ifndef EBADF
|
||||
#define EBADF 106
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define SYSTEM_PURESIZE_EXTRA (200*1024)
|
||||
|
||||
/* don't know what this will do, but sysdep.c needs it */
|
||||
#define DATA_START 0
|
||||
|
||||
/* Limited by CW's 32K limit on local data! */
|
||||
#define READ_BUF_SIZE (8 << 10)
|
||||
|
||||
#include <utsname.h>
|
||||
void read_input_waiting ();
|
||||
|
||||
/* #define GETTIMEOFDAY_ONE_ARGUMENT */
|
||||
|
||||
#define SYSV_SYSTEM_DIR
|
||||
|
||||
#define SYSTEM_MALLOC
|
||||
|
||||
/* Constants such as O_RDONLY are defined in fcntl.h. Best solution is
|
||||
really to patch individual files to include it: callproc.c, doc.c,
|
||||
fileio.c, getloadavg.c, lread.c, and termcap.c. */
|
||||
#include <fcntl.h>
|
||||
|
||||
#define _setjmp setjmp
|
||||
#define _longjmp longjmp
|
||||
|
||||
#define _exit exit
|
||||
|
||||
#define main emacs_main
|
||||
|
||||
/* Include this here so it won't be include again when #include in emacs
|
||||
sources. Then undefine the macro definitions in it for unlink, read,
|
||||
write, access, and rmdir. */
|
||||
#ifdef __MWERKS__
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#undef unlink
|
||||
#define unlink sys_unlink
|
||||
#undef read
|
||||
#define read sys_read
|
||||
#undef write
|
||||
#define write sys_write
|
||||
#undef access
|
||||
#define access sys_access
|
||||
#undef rmdir
|
||||
#define rmdir sys_rmdir
|
||||
|
||||
#define open sys_open
|
||||
#define creat sys_creat
|
||||
|
||||
#define rename sys_rename
|
||||
#define fopen sys_fopen
|
||||
#define signal sys_signal
|
||||
|
||||
#define gmtime sys_gmtime
|
||||
#define localtime sys_localtime
|
||||
#define ctime sys_ctime
|
||||
#define time sys_time
|
||||
|
||||
#ifndef bcmp
|
||||
#define bcmp(s1, s2, n) memcmp ((s1), (s2), (n))
|
||||
#endif
|
||||
#ifndef bcopy
|
||||
#define bcopy(s, d, n) memcpy ((d), (s), (n))
|
||||
#endif
|
||||
#ifndef bzero
|
||||
#define bzero(s, n) memset ((s), 0, (n))
|
||||
#endif
|
||||
|
||||
extern char *index (const char *, int);
|
||||
|
||||
/* MPW strftime broken for "%p" format */
|
||||
#ifdef __MRC__
|
||||
#define strftime sys_strftime
|
||||
#endif
|
||||
|
||||
#include <time.h>
|
||||
/* Editfns.c includes types.h which indirectly includes time.h before config.h.
|
||||
So gmtime (localtime) is defined and not sys_gmtime (sys_localtime). Define
|
||||
here explicitly. */
|
||||
extern struct tm *sys_gmtime (const time_t *);
|
||||
extern struct tm *sys_localtime (const time_t *);
|
||||
extern char *sys_ctime (const time_t *);
|
||||
extern time_t sys_time (time_t *);
|
||||
|
||||
/* Emacs.c includes signal.h before config.h. Define this to make it happy. */
|
||||
#ifdef __MRC__
|
||||
#include <signal.h>
|
||||
extern __sigfun sys_signal (int signal_num, __sigfun signal_func);
|
||||
#elif __MWERKS__
|
||||
#include <signal.h>
|
||||
extern __signal_func_ptr sys_signal (int signal_num, __signal_func_ptr signal_func);
|
||||
#endif
|
||||
|
||||
extern double atof (const char *);
|
||||
|
||||
#define volatile
|
||||
|
||||
#define SYMS_SYSTEM syms_of_mac()
|
||||
59
mac/inc/sys/file.h
Normal file
59
mac/inc/sys/file.h
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/* Replacement sys/file.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _SYS_FILE_H
|
||||
#define _SYS_FILE_H
|
||||
|
||||
#include <Files.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef __MRC__
|
||||
#undef open
|
||||
#undef creat
|
||||
|
||||
#define open mpw_open
|
||||
#define creat mpw_creat
|
||||
|
||||
#include <fcntl.h>
|
||||
|
||||
#undef open
|
||||
#undef creat
|
||||
|
||||
#define open sys_open
|
||||
#define creat sys_creat
|
||||
#endif
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include <unix.h>
|
||||
#endif
|
||||
|
||||
mode_t umask(mode_t);
|
||||
|
||||
void abort(void);
|
||||
void _exit(int);
|
||||
int kill(int,int);
|
||||
int alarm(int);
|
||||
int pause(void);
|
||||
char *getwd(char *);
|
||||
|
||||
#endif /* _SYS_FILE_H */
|
||||
31
mac/inc/sys/ioctl.h
Normal file
31
mac/inc/sys/ioctl.h
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
/* Replacement sys/ioctl.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _SYS_IOCTL_H
|
||||
#define _SYS_IOCTL_H
|
||||
|
||||
int ioctl(int, int, void *);
|
||||
|
||||
#define FIONREAD 1
|
||||
#define TCGETA 2
|
||||
|
||||
#endif /* _SYS_IOCTL_H */
|
||||
28
mac/inc/sys/param.h
Normal file
28
mac/inc/sys/param.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/* Replacement sys/param.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _SYS_PARAM_H
|
||||
#define _SYS_PARAM_H
|
||||
|
||||
#define MAXPATHLEN 255
|
||||
|
||||
#endif /* _SYS_PARAM_H */
|
||||
86
mac/inc/sys/stat.h
Normal file
86
mac/inc/sys/stat.h
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
/* Replacement sys/stat.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _SYS_STAT_H
|
||||
#define _SYS_STAT_H
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include <stat.mac.h>
|
||||
|
||||
#ifdef CODEWARRIOR_VERSION_6
|
||||
#define fstat _fstat
|
||||
#endif
|
||||
|
||||
#undef S_IFMT
|
||||
#undef S_IFBLK
|
||||
#undef S_IFCHR
|
||||
#undef S_IFIFO
|
||||
#undef S_IFREG
|
||||
#undef S_IFDIR
|
||||
#undef S_IFLNK
|
||||
|
||||
#undef S_IRUSR
|
||||
#undef S_IWUSR
|
||||
#undef S_IXUSR
|
||||
|
||||
#endif /* __MWERKS__ */
|
||||
|
||||
/* Need to redefine these for CW, filemode.c assumes Unix definitions which are
|
||||
inconsistent with CW definitions because CW uses bits 8-12 for S_IFMT info.
|
||||
Bit 8 is used by S_IRUSR on Unix! */
|
||||
#define S_IFMT 0170000 /* type of file */
|
||||
#define S_IFBLK 0060000 /* block special */
|
||||
#define S_IFCHR 0020000 /* character special */
|
||||
#define S_IFIFO 0010000 /* FIFO special */
|
||||
#define S_IFREG 0100000 /* regular */
|
||||
#define S_IFDIR 0040000 /* directory */
|
||||
#define S_IFLNK 0030000 /* symbolic link */
|
||||
|
||||
#define S_IREAD 00400
|
||||
#define S_IWRITE 00200
|
||||
#define S_IEXEC 00100
|
||||
|
||||
/* Need to redefine these for because mode_string in filemode.c assumes Unix
|
||||
values in the lower 9 bits which are different from CW values. */
|
||||
#define S_IRUSR S_IREAD
|
||||
#define S_IWUSR S_IWRITE
|
||||
#define S_IXUSR S_IEXEC
|
||||
|
||||
#ifdef __MRC__
|
||||
typedef unsigned long dev_t;
|
||||
|
||||
struct stat {
|
||||
dev_t st_dev; /* ID of device containing file */
|
||||
int st_ino; /* file serial number */
|
||||
unsigned short st_mode; /* mode of file */
|
||||
int st_nlink; /* number of links to the file */
|
||||
int st_uid; /* user ID of file */
|
||||
int st_gid; /* group ID of file */
|
||||
int st_rdev; /* device ID (if file is character or block special) */
|
||||
int st_size; /* file size in bytes (if file is a regular file) */
|
||||
int st_atime; /* time of last access */
|
||||
int st_mtime; /* time of last data modification */
|
||||
int st_ctime; /* time of last status change */
|
||||
};
|
||||
#endif /* __MRC__ */
|
||||
|
||||
#endif /* _SYS_STAT_H */
|
||||
31
mac/inc/sys/time.h
Normal file
31
mac/inc/sys/time.h
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
/* Replacement sys/time.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _SYS_TIME_H
|
||||
#define _SYS_TIME_H
|
||||
|
||||
struct timeval {
|
||||
long tv_sec; /* seconds */
|
||||
long tv_usec; /* microseconds */
|
||||
};
|
||||
|
||||
#endif /* _SYS_TYPES_H */
|
||||
40
mac/inc/sys/types.h
Normal file
40
mac/inc/sys/types.h
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/* Replacement sys/types.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _SYS_TYPES_H
|
||||
#define _SYS_TYPES_H
|
||||
|
||||
#ifdef __MWERKS__
|
||||
/* Need definitions of uid_t from stat.h */
|
||||
#include <stat.h>
|
||||
#endif /* __MWERKS__ */
|
||||
|
||||
#ifdef __MRC__
|
||||
typedef long uid_t;
|
||||
typedef long gid_t;
|
||||
typedef long off_t;
|
||||
typedef long ino_t;
|
||||
|
||||
typedef unsigned long mode_t;
|
||||
#endif /* __MRC__ */
|
||||
|
||||
#endif /* _SYS_TYPES_H */
|
||||
68
mac/inc/termio.h
Normal file
68
mac/inc/termio.h
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
/* Replacement termio.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _SYS_TERMIO_H
|
||||
#define _SYS_TERMIO_H
|
||||
|
||||
typedef unsigned char cc_t;
|
||||
typedef unsigned short tcflag_t;
|
||||
|
||||
#define NCCS 32
|
||||
|
||||
struct termio {
|
||||
tcflag_t c_iflag; /* input modes */
|
||||
tcflag_t c_oflag; /* output modes */
|
||||
tcflag_t c_cflag; /* control modes */
|
||||
tcflag_t c_lflag; /* local modes */
|
||||
cc_t c_cc[NCCS]; /* control chars */
|
||||
};
|
||||
|
||||
/* c_cc subscript names */
|
||||
#define VINTR 1
|
||||
#define VQUIT 2
|
||||
#define VERASE 3
|
||||
#define VTIME 4
|
||||
#define VMIN 5
|
||||
|
||||
/* c_iflag fields */
|
||||
#define IGNBRK 0x1 /* ignore break condition */
|
||||
#define ICRNL 0x2 /* map CR to NL on input */
|
||||
#define IXON 0x4 /* enable start/stop output control */
|
||||
|
||||
/* c_oflag fields */
|
||||
#define ONLCR 0x1 /* map CR to NL on output */
|
||||
#define TABDLY 0x2 /* horizontal tab delays */
|
||||
#define TAB3 0x4 /* expand tab to spaces */
|
||||
|
||||
/* c_cflag fields */
|
||||
#define CBAUD 0x1
|
||||
#define B9600 0x2
|
||||
|
||||
/* c_lflag fields */
|
||||
#define ISIG 0x1 /* enable signals */
|
||||
#define ICANON 0x2 /* canonical input (erase and kill processing) */
|
||||
#define ECHO 0x3 /* enable echo */
|
||||
|
||||
#define TCSETAW 4
|
||||
#define TCSETAF 5
|
||||
|
||||
#endif /* _SYS_TERMIO_H */
|
||||
37
mac/inc/utime.h
Normal file
37
mac/inc/utime.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/* Replacement utime.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _UTIME_H_
|
||||
#define _UTIME_H_
|
||||
|
||||
#include <time.h>
|
||||
|
||||
#define _mac_unix_epoch_offset_ (365L * 4L) * 24L * 60L * 60L
|
||||
|
||||
struct utimbuf {
|
||||
time_t actime; /* access time (ignored on the Mac) */
|
||||
time_t modtime; /* modification time */
|
||||
};
|
||||
|
||||
int utime(const char *path, const struct utimbuf *buf);
|
||||
|
||||
#endif
|
||||
32
mac/inc/utsname.h
Normal file
32
mac/inc/utsname.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/* Replacement utsname.h file for building GNU Emacs on the Macintosh.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#ifndef _UTSNAME_H
|
||||
#define _UTSNAME_H
|
||||
|
||||
struct utsname {
|
||||
char nodename[255];
|
||||
};
|
||||
|
||||
int uname(struct utsname *name);
|
||||
|
||||
#endif
|
||||
1127
mac/makefile.MPW
Normal file
1127
mac/makefile.MPW
Normal file
File diff suppressed because it is too large
Load diff
700
mac/src/Emacs.r
Normal file
700
mac/src/Emacs.r
Normal file
|
|
@ -0,0 +1,700 @@
|
|||
/* Resource definitions for GNU Emacs on the Macintosh.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#include "Types.r"
|
||||
/* added for finder icon balloon help --ben */
|
||||
#include "Balloons.r"
|
||||
|
||||
/* Define to use gnu icon */
|
||||
/* #define GNU_ICON 1 */
|
||||
|
||||
resource 'STR#' (128) {
|
||||
{
|
||||
"TERM=macterm",
|
||||
"TERMCAP=macterm:co#80:li#40:up=up:do=do:le=le:nd=nd:cm=cm:cs=cs:ce=ce:cd=cd:cl=cl:al=al:dl=dl:",
|
||||
/* "HOME=/Ix/Data Files/Emacs Mac Port/emacs-20.4/mac/", */
|
||||
/* "MAIL=/Ix/System Folder/Eudora Folder/In" */
|
||||
}
|
||||
};
|
||||
|
||||
resource 'STR#' (129) {
|
||||
{
|
||||
"emacs",
|
||||
"-l",
|
||||
"loadup"
|
||||
}
|
||||
};
|
||||
|
||||
/* added for finder icon balloon help --ben */
|
||||
resource 'hfdr' (-5696) { /*help for emacs icon*/
|
||||
/*header component*/
|
||||
HelpMgrVersion, hmDefaultOptions, 0, 0,
|
||||
{ /*icon component*/
|
||||
HMSTRResItem { /*use 'STR ' resource 128*/
|
||||
128
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* added for finder icon balloon help --ben */
|
||||
resource 'STR ' (128) { /*help message for emacs icon*/
|
||||
"GNU Emacs\0xd1the extensible, customizable, self-documenting real-time display editor."
|
||||
};
|
||||
|
||||
resource 'MENU' (128, preload) {
|
||||
128,
|
||||
textMenuProc,
|
||||
0x7FFFFFFD,
|
||||
enabled,
|
||||
apple,
|
||||
{ /* array: 2 elements */
|
||||
/* [1] */
|
||||
"About Emacs\0xc9", noIcon, noKey, noMark, plain,
|
||||
/* [2] */
|
||||
"-", noIcon, noKey, noMark, plain
|
||||
}
|
||||
};
|
||||
|
||||
resource 'MBAR' (128, "MBAR for Menus1", preload) {
|
||||
{ /* array MenuArray: 1 element */
|
||||
/* [1] */
|
||||
128
|
||||
}
|
||||
};
|
||||
|
||||
resource 'WIND' (128, "Window", purgeable) {
|
||||
{68, 33, 554, 754},
|
||||
kWindowFullZoomGrowDocumentProc,
|
||||
invisible,
|
||||
goAway,
|
||||
0x0,
|
||||
"Terminal",
|
||||
kWindowStaggerMainScreen
|
||||
};
|
||||
|
||||
resource 'WIND' (129, "Terminal window", purgeable) {
|
||||
{32, 8, 76, 620},
|
||||
kWindowModalDialogProc,
|
||||
invisible,
|
||||
goAway,
|
||||
0x0,
|
||||
"Terminal",
|
||||
kWindowDefaultPosition
|
||||
};
|
||||
|
||||
resource 'WIND' (130, "Dialog window", purgeable) {
|
||||
{32, 8, 42, 18},
|
||||
kWindowModalDialogProc,
|
||||
invisible,
|
||||
goAway,
|
||||
0x0,
|
||||
"Terminal",
|
||||
kWindowDefaultPosition
|
||||
};
|
||||
|
||||
resource 'ALRT' (128, "About Box", purgeable) {
|
||||
{40, 20, 160, 297},
|
||||
128,
|
||||
{ /* array: 4 elements */
|
||||
/* [1] */
|
||||
OK, visible, silent,
|
||||
/* [2] */
|
||||
OK, visible, silent,
|
||||
/* [3] */
|
||||
OK, visible, silent,
|
||||
/* [4] */
|
||||
OK, visible, silent
|
||||
},
|
||||
centerMainScreen
|
||||
};
|
||||
|
||||
resource 'DITL' (128, purgeable) {
|
||||
{ /* array DITLarray: 2 elements */
|
||||
/* [1] */
|
||||
{88, 185, 108, 265},
|
||||
Button {
|
||||
enabled,
|
||||
"OK"
|
||||
},
|
||||
/* [2] */
|
||||
{10, 60, 72, 278},
|
||||
StaticText {
|
||||
disabled,
|
||||
"GNU Emacs 21.0.90 for Mac OS\n"
|
||||
"(11 October 2000 release)\n"
|
||||
"Report bugs to akochoi@users.sourceforge.net"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
resource 'BNDL' (128) {
|
||||
'EMAx',
|
||||
0,
|
||||
{ /* array TypeArray: 2 elements */
|
||||
/* [1] */
|
||||
'FREF',
|
||||
{ /* array IDArray: 2 elements */
|
||||
/* [1] */
|
||||
0, 128,
|
||||
/* [2] */
|
||||
1, 129
|
||||
},
|
||||
/* [2] */
|
||||
'ICN#',
|
||||
{ /* array IDArray: 2 elements */
|
||||
/* [1] */
|
||||
0, 128,
|
||||
/* [2] */
|
||||
1, 129
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
resource 'FREF' (128) {
|
||||
'APPL',
|
||||
0,
|
||||
""
|
||||
};
|
||||
|
||||
resource 'FREF' (129) {
|
||||
'TEXT',
|
||||
1,
|
||||
""
|
||||
};
|
||||
|
||||
resource 'vers' (1) {
|
||||
0x1,
|
||||
0x0,
|
||||
development,
|
||||
0x0,
|
||||
0,
|
||||
"d6",
|
||||
"GNU Emacs 21.1 for Mac OS\n\0xa9 2"
|
||||
"000 Free Software Foundation"
|
||||
};
|
||||
|
||||
data 'EMAx' (0, "Owner resource") {
|
||||
$"00" /* . */
|
||||
};
|
||||
|
||||
#ifdef GNU_ICON
|
||||
resource 'ICN#' (128) {
|
||||
{ /* array: 2 elements */
|
||||
/* [1] */
|
||||
$"0000 0000 0000 0000 0000 0080 0000 0040"
|
||||
$"0100 0030 0203 5808 0408 8400 0418 0220"
|
||||
$"0420 0008 0464 9C80 04C1 0018 0000 0004"
|
||||
$"118B 0120 000A 0000 0614 8180 0204 2080"
|
||||
$"0468 0080 0480 4480 0000 0080 0148 08C0"
|
||||
$"0120 00C0 0182 4020 0388 0120 0181 2040"
|
||||
$"01E8 B040 00E0 70C0 0078 9880 003A 9880"
|
||||
$"001E 4000 000F C0",
|
||||
/* [2] */
|
||||
$"0000 0000 0000 0100 0000 0180 0000 00E0"
|
||||
$"0100 3030 0203 F818 063F FC18 0E3F FE38"
|
||||
$"1C7F FF78 1CFF FFF8 1CFF FFF8 1E7F FFFC"
|
||||
$"1FFF FF38 1FFF FF80 0FFF FF80 07FF FF80"
|
||||
$"0FFF FF80 0FFF FFC0 01FF FFC0 03FF FFC0"
|
||||
$"03FF FFC0 03FF FFE0 03FF FFE0 03FF FFE0"
|
||||
$"01FF FFC0 01FF FFC0 00FF FFC0 007F FF80"
|
||||
$"001F E700 000F C000 0004 80"
|
||||
}
|
||||
};
|
||||
#else
|
||||
resource 'ICN#' (128) {
|
||||
{ /* array: 2 elements */
|
||||
/* [1] */
|
||||
$"0000 0000 0000 0000 0001 F000 07DE 0F60"
|
||||
$"0860 0090 1200 0028 1200 0008 0800 0008"
|
||||
$"0800 0008 1000 0004 1000 0004 2000 0004"
|
||||
$"2000 0044 4018 12C2 4018 0002 4018 0082"
|
||||
$"4002 0C42 2000 1E02 2004 1E42 2004 0C02"
|
||||
$"2004 0042 2002 0082 5001 8F05 8800 7004"
|
||||
$"0800 0008 0400 0010 0200 0060 01C0 0380"
|
||||
$"003F FC00 2000 0000 4000 0000 80",
|
||||
/* [2] */
|
||||
$"0000 0000 0000 0000 0001 F000 07DF FF60"
|
||||
$"0FFF FFF0 1FFF FFF8 1FFF FFF8 0FFF FFF8"
|
||||
$"0FFF FFF8 1FFF FFFC 1FFF FFFC 3FFF FFFC"
|
||||
$"3FFF FFFC 7FFF FFFE 7FFF FFFE 7FFF FFFE"
|
||||
$"7FFF FFFE 3FFF FFFE 3FFF FFFE 3FFF FFFE"
|
||||
$"3FFF FFFE 3FFF FFFE 7FFF FFFF FFFF FFFF"
|
||||
$"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
|
||||
$"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef GNU_ICON
|
||||
resource 'icl4' (128) {
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 000C 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 000C F000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 CFD0 0000"
|
||||
$"0000 000F 0000 0000 00CC 0000 00FF 0000"
|
||||
$"0000 00F0 0000 00FF CFCF F000 000C F000"
|
||||
$"0000 0FD0 00CD FD0C F000 CF00 000C D000"
|
||||
$"0000 CFC0 00DF F000 C000 00F0 00FC C000"
|
||||
$"000C DF00 0DFD 0CD0 0000 DCDD 0DC0 F000"
|
||||
$"000D 0F00 DFFC 0F00 FDDF FFDD FC0D D000"
|
||||
$"000C 0F00 FFC0 DCDF 0000 DC00 00CF F000"
|
||||
$"000C 0CD0 0C0C CDC0 000C 0CCD CCCC CF00"
|
||||
$"000F 00CF F0DC FCFF DDC0 CDDF 00FD C000"
|
||||
$"000D D000 CDC0 FCFC 0CDC CCCD C000 0000"
|
||||
$"0000 CFF0 D00F 0F0C F0CD CCCF F000 0000"
|
||||
$"0000 0CFC 00CD 0F0D D0FD CCCD F000 0000"
|
||||
$"0000 CFCC DFF0 FC0C DCCC CCCC F000 0000"
|
||||
$"0000 DFC0 FDDC 0C0C DFC0 CEDC FC00 0000"
|
||||
$"0000 000C DDCC CDC0 C00C CCCC FC00 0000"
|
||||
$"0000 00CF CF0C FC0C 0000 F00D FF00 0000"
|
||||
$"0000 00CF D0FC 0CCC C000 0CCC FF00 0000"
|
||||
$"0000 00CF F0DC 0CFC CFCD DDDC DCF0 0000"
|
||||
$"0000 00FF FCD0 FDCC DDC0 00DF 0DF0 0000"
|
||||
$"0000 00CF FDCD 0DCF CDFC CC0D 0FC0 0000"
|
||||
$"0000 000F FFFC FCD0 F0FF C000 DF00 0000"
|
||||
$"0000 000C FFF0 CDCD DFFF DCCC FF00 0000"
|
||||
$"0000 0000 CFFF FC0D F0CF F000 FC00 0000"
|
||||
$"0000 0000 0CFF FDF0 F0DF FDDD F000 0000"
|
||||
$"0000 0000 000F FFFC CFC0 0DDD 0000 0000"
|
||||
$"0000 0000 0000 FFFF FF00 0000 0000 0000"
|
||||
$"0000 0000 0000 0C00 C0"
|
||||
};
|
||||
#else
|
||||
resource 'icl4' (128) {
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 000F FFFF 0000 0000 0000"
|
||||
$"0000 0FFF FF0F FFF0 0000 FFFF 0FF0 0000"
|
||||
$"0000 FCCC CFF0 0000 0000 0000 FCCF 0000"
|
||||
$"000F 0DED CC00 0000 0000 0000 0DEC F000"
|
||||
$"000F 0DED C000 0000 0000 0000 00DD F000"
|
||||
$"0000 F0D0 0000 0000 0000 0000 0000 F000"
|
||||
$"0000 FC00 0000 0000 0000 0000 0000 F000"
|
||||
$"000F 0000 0000 0000 0000 0000 0000 0F00"
|
||||
$"000F 0000 0000 0000 0000 0000 0000 0F00"
|
||||
$"00F0 0000 0000 0000 0000 0000 0000 0F00"
|
||||
$"00F0 0000 0000 0000 0000 0000 DEC0 0F00"
|
||||
$"0F00 0000 00CE EC00 0CCC CCCC FFC0 00F0"
|
||||
$"0F00 0000 0CDF FD0C C000 000D CDC0 00F0"
|
||||
$"0F00 0000 00CE ECD0 0000 CC00 D000 00F0"
|
||||
$"0F00 0000 0000 00D0 000C EEC0 0D00 00F0"
|
||||
$"00F0 0000 0000 0D00 00CE AAEC 0D00 00F0"
|
||||
$"00F0 0000 0000 0D00 00CE AAEC 0D00 00F0"
|
||||
$"00F0 0000 0000 0D00 000C EEC0 0D00 00F0"
|
||||
$"00F0 0000 0000 0D00 0000 CC00 0D00 00F0"
|
||||
$"00F0 0000 0000 0CD0 0000 0000 E000 00F0"
|
||||
$"0F0F 0000 0000 00CD D000 EEEE 0000 0F0F"
|
||||
$"F000 F000 0000 0000 0EEE 0000 0000 0F00"
|
||||
$"0000 F000 0000 0000 0000 0D00 0000 FC00"
|
||||
$"0000 0F00 0000 0000 0000 0D00 000F C000"
|
||||
$"0000 00F0 0000 0000 0000 0C00 0FFC C000"
|
||||
$"0000 C00F FF00 0000 0000 00EE ECCC 0000"
|
||||
$"000D 0000 0CFF FFFF FEEE EECC CCC0 0000"
|
||||
$"0CF0 0000 0000 CCCC CCCC CC0C 0C00 0C00"
|
||||
$"CEC0 0000 0000 0000 0000 0000 0000 0DC0"
|
||||
$"FD00 0000 0000 0000 0000 0000 0000 00D0"
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef GNU_ICON
|
||||
resource 'icl8' (128) {
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 002B 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 002B FF00 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 2BFF F900 0000 0000"
|
||||
$"0000 0000 0000 00FF 0000 0000 0000 0000"
|
||||
$"0000 2B2B 0000 0000 0000 FFFF 0000 0000"
|
||||
$"0000 0000 0000 FF00 0000 0000 0000 FFFF"
|
||||
$"2BFF 2BFF FF00 0000 0000 002B FF00 0000"
|
||||
$"0000 0000 00FF F900 0000 2BF9 FFF9 002B"
|
||||
$"FF00 0000 2BFF 0000 0000 002B F900 0000"
|
||||
$"0000 0000 2BFF 2B00 0000 F9FF FF00 0000"
|
||||
$"2B00 0000 0000 FF00 0000 FF2B 2B00 0000"
|
||||
$"0000 002B F9FF 0000 00F9 FFF9 002B F900"
|
||||
$"0000 0000 F92B F9F9 00F9 2B00 FF00 0000"
|
||||
$"0000 00F9 00FF 0000 F9FF FF2B 00FF 0000"
|
||||
$"FFF9 F9FF FFFF F9F9 FF2B 00F9 F900 0000"
|
||||
$"0000 002B 00FF 0000 FFFF 2B00 F92B F9FF"
|
||||
$"0000 0000 F92B 0000 0000 2BFF FF00 0000"
|
||||
$"0000 002B 002B F900 002B 002B 2BF9 2B00"
|
||||
$"0000 002B 002B 2BF9 2B2B 2B2B 2BFF 0000"
|
||||
$"0000 00FF 0000 2BFF FF00 F92B FF2B FFFF"
|
||||
$"F9F9 2B00 2BF9 F9FF 0000 FFF9 2B00 0000"
|
||||
$"0000 00F9 F900 0000 2BF9 2B00 FF2B FF2B"
|
||||
$"002B F92B 2B2B 2BF9 2B00 0000 0000 0000"
|
||||
$"0000 0000 2BFF FF00 F900 00FF 00FF 002B"
|
||||
$"FF00 2BF9 2B2B 2BFF FF00 0000 0000 0000"
|
||||
$"0000 0000 002B FF2B 0000 2BF9 00FF 00F9"
|
||||
$"F900 FFF9 2B2B 2BF9 FF00 0000 0000 0000"
|
||||
$"0000 0000 2BFF 2B2B F9FF FF00 FF2B 002B"
|
||||
$"F92B 2B2B 2B2B 2B2B FF00 0000 0000 0000"
|
||||
$"0000 0000 F9FF 2B00 FFF9 F92B 002B 002B"
|
||||
$"F9FF 2B00 2BFC F92B FF2B 0000 0000 0000"
|
||||
$"0000 0000 0000 002B F9F9 2B2B 2BF9 2B00"
|
||||
$"2B00 002B 2B2B 2B2B FF2B 0000 0000 0000"
|
||||
$"0000 0000 0000 2BFF 2BFF 002B FF2B 002B"
|
||||
$"0000 0000 FF00 00F9 FFFF 0000 0000 0000"
|
||||
$"0000 0000 0000 2BFF F900 FF2B 002B 2B2B"
|
||||
$"2B00 0000 002B 2B2B FFFF 0000 0000 0000"
|
||||
$"0000 0000 0000 2BFF FF00 F92B 002B FF2B"
|
||||
$"2BFF 2BF9 F9F9 F92B F92B FF00 0000 0000"
|
||||
$"0000 0000 0000 FFFF FF2B F900 FFF9 2B2B"
|
||||
$"F9F9 2B00 0000 F9FF 00F9 FF00 0000 0000"
|
||||
$"0000 0000 0000 2BFF FFF9 2BF9 00F9 2BFF"
|
||||
$"2BF9 FF2B 2B2B 00F9 00FF 2B00 0000 0000"
|
||||
$"0000 0000 0000 00FF FFFF FF2B FF2B F900"
|
||||
$"FF00 FFFF 2B00 0000 F9FF 0000 0000 0000"
|
||||
$"0000 0000 0000 002B FFFF FF00 2BF9 2BF9"
|
||||
$"F9FF FFFF F92B 2B2B FFFF 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 2BFF FFFF FF2B 00F9"
|
||||
$"FF00 2BFF FF00 0000 FF2B 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 002B FFFF FFF9 FF00"
|
||||
$"FF00 F9FF FFF9 F9F9 FF00 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 00FF FFFF FF2B"
|
||||
$"2BFF 2B00 00F9 F9F9 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 FFFF FFFF"
|
||||
$"FFFF 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 002B 0000"
|
||||
$"2B"
|
||||
};
|
||||
#else
|
||||
resource 'icl8' (128) {
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 00FF"
|
||||
$"FFFF FFFF 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 00FF FFFF FFFF F5FF FFFF FFF5"
|
||||
$"F5F5 F5F5 FFFF FFFF 00FF FF00 0000 0000"
|
||||
$"0000 0000 FFF6 F6F6 F6FF FFF5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 FFF7 F6FF 0000 0000"
|
||||
$"0000 00FF F5F9 FBF9 F7F7 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F9 FCF6 FF00 0000"
|
||||
$"0000 00FF F5F9 FBF9 F7F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F9F9 FF00 0000"
|
||||
$"0000 0000 FFF5 F9F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 FF00 0000"
|
||||
$"0000 0000 FFF7 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 FF00 0000"
|
||||
$"0000 00FF F5F5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5FF 0000"
|
||||
$"0000 00FF F5F5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5FF 0000"
|
||||
$"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5FF 0000"
|
||||
$"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F9FC F6F5 F5FF 0000"
|
||||
$"00FF F5F5 F5F5 F5F5 F5F5 F7FB FBF7 F5F5"
|
||||
$"F5F6 F6F7 F7F7 F7F8 FFFF F7F5 F5F5 FF00"
|
||||
$"00FF F5F5 F5F5 F5F5 F5F6 F9FF FFF9 F5F7"
|
||||
$"F7F5 F5F5 F5F5 F5F9 F7F9 F6F5 F5F5 FF00"
|
||||
$"00FF F5F5 F5F5 F5F5 F5F5 F7FB FCF7 F9F5"
|
||||
$"F5F5 F5F5 F6F6 F5F5 F9F5 F5F5 F5F5 FF00"
|
||||
$"00FF F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F9F5"
|
||||
$"F5F5 F5F7 FBFB F7F5 F5F9 F5F5 F5F5 FF00"
|
||||
$"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F9 F5F5"
|
||||
$"F5F5 F7FB FDFD ACF7 F5F9 F5F5 F5F5 FF00"
|
||||
$"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F9 F5F5"
|
||||
$"F5F5 F7FB FDFD ACF7 F5F9 F5F5 F5F5 FE00"
|
||||
$"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F9 F5F5"
|
||||
$"F5F5 F5F7 FBFB F7F5 F5F9 F5F5 F5F5 FE00"
|
||||
$"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F9 F5F5"
|
||||
$"F5F5 F5F5 F7F7 F5F5 F5FA F5F5 F5F5 FE00"
|
||||
$"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F5F7 F9F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 FBF5 F5F5 F5F5 FF00"
|
||||
$"00FF F5FF F5F5 F5F5 F5F5 F5F5 F5F5 F7F9"
|
||||
$"F9F5 F5F5 FBFB FBFB F5F5 F5F5 F5FE F5FF"
|
||||
$"FFF5 F5F5 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5FB FBFB F5F5 F5F5 F5F5 F5F5 F5FF F5F5"
|
||||
$"F5F5 F5F5 FFF5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F9 F5F5 F5F5 F5F5 FFF6 F5F5"
|
||||
$"F5F5 F5F5 F5FF F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F9 F5F5 F5F5 F5FF F6F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 FFF5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F6 F5F5 F5FF FFF7 F6F5 F5F5"
|
||||
$"F5F5 F5F5 F7F5 F5FF FFFF F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 ACAC ACF7 F6F6 F5F5 F5F5"
|
||||
$"F5F5 F5F9 F5F5 F5F5 F5F7 FFFF FFFF FFFF"
|
||||
$"FFFC FCAC ACAC F6F6 F7F6 F6F5 F5F5 F5F5"
|
||||
$"F5F6 FFF5 F5F5 F5F5 F5F5 F5F5 F6F7 F6F7"
|
||||
$"F6F7 F6F6 F6F6 F5F6 F5F6 F5F5 F5F7 F5F5"
|
||||
$"F6FC F7F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F9 F7F5"
|
||||
$"FFF9 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F9F5"
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef GNU_ICON
|
||||
resource 'ics#' (128) {
|
||||
{ /* array: 2 elements */
|
||||
/* [1] */
|
||||
$"0000 0008 11E6 26B4 2EEA 2906 5B14 36D8"
|
||||
$"2EA8 1A28 1D8C 1B5C 1EC8 0FE8 0780",
|
||||
/* [2] */
|
||||
$"0010 001C 11FE 37FE 7FFE 7FFE 7FFE 3FF8"
|
||||
$"3FF8 1FF8 1FFC 1FFC 1FF8 0FF8 07F0 0280"
|
||||
}
|
||||
};
|
||||
#else
|
||||
resource 'ics#' (128) {
|
||||
{ /* array: 2 elements */
|
||||
/* [1] */
|
||||
$"0000 0000 0001 604B 6000 6002 0831 0078"
|
||||
$"1079 1030 1001 0802 063C 01C0",
|
||||
/* [2] */
|
||||
$"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
|
||||
$"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef GNU_ICON
|
||||
resource 'ics4' (128) {
|
||||
$"0000 0000 000C 0000 0000 0000 000C FD00"
|
||||
$"000F 000F FFF0 0FF0 00FD 0FFC F0FF 0FD0"
|
||||
$"0DF0 FFFD FFFD FDF0 0CFD FCDF 0CDD CFF0"
|
||||
$"0FDF FDFF DDDF CFC0 00FF DFFD FFCF F000"
|
||||
$"00FC FFFC FCED F000 000F FCFC CCFD F000"
|
||||
$"000F FFCF FDDD FF00 000F FDFF DFCF FF00"
|
||||
$"000F FFFD FFDC F000 0000 FFFF FFFD F000"
|
||||
$"0000 0FFF FCDD 0000 0000 00C0 C0"
|
||||
};
|
||||
#else
|
||||
resource 'ics4' (128) {
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 00DE CEEC 000C CCCC CCFF"
|
||||
$"DFFD 0CC0 0000 0DCD CEEC D000 00CC 00D0"
|
||||
$"0000 D000 0CEE C00D 000D 0000 CEAA EC0D"
|
||||
$"000D 0000 CEAA EC0D 000D 0000 0CEE C00D"
|
||||
$"000D 0000 00CC 000D 000C D000 0000 00E0"
|
||||
$"0000 CDD0 00EE EE00 0000 000E EE00 0000"
|
||||
$"0000 0000 000D 0000 0000 0000 000D"
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef GNU_ICON
|
||||
resource 'ics8' (128) {
|
||||
$"0000 0000 0000 0000 0000 002B 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 002B FFF9 0000"
|
||||
$"0000 00FF 0000 00FF FFFF FF00 00FF FF00"
|
||||
$"0000 FFF9 00FF FF2B FF00 FFFF 00FF F900"
|
||||
$"00F9 FF00 FFFF FFF9 FFFF FFF9 FFF9 FF00"
|
||||
$"002B FFF9 FF2B F9FF 002B F9F9 2BFF FF00"
|
||||
$"00FF F9FF FFF9 FFFF F9F9 F9FF 2BFF 2B00"
|
||||
$"0000 FFFF F9FF FFF9 FFFF 2BFF FF00 0000"
|
||||
$"0000 FF2B FFFF FF2B FF2B FCF9 FF00 0000"
|
||||
$"0000 00FF FF2B FF2B 2B2B FFF9 FF00 0000"
|
||||
$"0000 00FF FFFF 2BFF FFF9 F9F9 FFFF 0000"
|
||||
$"0000 00FF FFF9 FFFF F9FF 2BFF FFFF 0000"
|
||||
$"0000 00FF FFFF FFF9 FFFF F92B FF00 0000"
|
||||
$"0000 0000 FFFF FFFF FFFF FFF9 FF00 0000"
|
||||
$"0000 0000 00FF FFFF FF2B F9F9 0000 0000"
|
||||
$"0000 0000 0000 2B00 2B"
|
||||
};
|
||||
#else
|
||||
resource 'ics8' (128) {
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F5F5 F9FC"
|
||||
$"F7FB FBF7 F5F5 F5F6 F6F7 F7F7 F7F8 FFFF"
|
||||
$"F9FF FFF9 F5F7 F7F5 F5F5 F5F5 F5F9 F7F9"
|
||||
$"F7FB FCF7 F9F5 F5F5 F5F5 F6F6 F5F5 F9F5"
|
||||
$"F5F5 F5F5 F9F5 F5F5 F5F7 FBFB F7F5 F5F9"
|
||||
$"F5F5 F5F9 F5F5 F5F5 F7FB FDFD ACF7 F5F9"
|
||||
$"F5F5 F5F9 F5F5 F5F5 F7FB FDFD ACF7 F5F9"
|
||||
$"F5F5 F5F9 F5F5 F5F5 F5F7 FBFB F7F5 F5F9"
|
||||
$"F5F5 F5F9 F5F5 F5F5 F5F5 F7F7 F5F5 F5FA"
|
||||
$"F5F5 F5F7 F9F5 F5F5 F5F5 F5F5 F5F5 FBF5"
|
||||
$"F5F5 F5F5 F7F9 F9F5 F5F5 FBFB FBFB F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5FB FBFB F5F5 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F9 F5F5 F5F5"
|
||||
$"F5F5 F5F5 F5F5 F5F5 F5F5 F5F9 F5F5 F5F5"
|
||||
};
|
||||
#endif
|
||||
|
||||
resource 'ICN#' (129) {
|
||||
{ /* array: 2 elements */
|
||||
/* [1] */
|
||||
$"0000 0300 0000 1C80 0000 E0B0 0007 00F0"
|
||||
$"0038 0070 01C0 0038 0E00 8038 7008 4038"
|
||||
$"8008 2038 8004 0038 8080 041C C086 301C"
|
||||
$"C087 311C 4007 BB8C 6167 378C 6170 070E"
|
||||
$"2130 6006 3031 FC06 3047 FE06 10E7 FF02"
|
||||
$"1867 FF82 1847 FF03 080F FE07 0C1F E03C"
|
||||
$"0C0F C1F0 0406 0F80 0400 7C00 0203 E000"
|
||||
$"031F 0000 01F8 0000 00C0",
|
||||
/* [2] */
|
||||
$"0000 0300 0000 1F80 0000 FFB0 0007 FFF0"
|
||||
$"003F FFF0 01FF FFF8 0FFF FFF8 7FFF FFF8"
|
||||
$"FFFF FFF8 FFFF FFF8 FFFF FFFC FFFF FFFC"
|
||||
$"FFFF FFFC 7FFF FFFC 7FFF FFFC 7FFF FFFE"
|
||||
$"3FFF FFFE 3FFF FFFE 3FFF FFFE 1FFF FFFE"
|
||||
$"1FFF FFFE 1FFF FFFF 0FFF FFFF 0FFF FFFC"
|
||||
$"0FFF FFF0 07FF FF80 07FF FC00 03FF E000"
|
||||
$"03FF 0000 01F8 0000 00C0"
|
||||
}
|
||||
};
|
||||
|
||||
resource 'icl4' (129) {
|
||||
$"0000 0000 0000 0000 0000 00FF 0000 0000"
|
||||
$"0000 0000 0000 0000 000F FF0C F000 0000"
|
||||
$"0000 0000 0000 0000 FFF0 0000 F0FF 0000"
|
||||
$"0000 0000 0000 0FFF 0000 0000 FFDF 0000"
|
||||
$"0000 0000 00FF F000 0000 0000 CFEF 0000"
|
||||
$"0000 000F FF00 0000 0000 0000 00ED F000"
|
||||
$"0000 FFF0 0000 0000 DC00 0000 00AD F000"
|
||||
$"0FFF 0000 0000 E000 0DC0 0000 00FE F000"
|
||||
$"F000 0000 0000 DC00 0CD0 0000 00FE F000"
|
||||
$"F000 0000 CC00 CC00 00C0 0C00 00FA F000"
|
||||
$"F000 0000 D000 00C0 00C0 0DCC 00CF EF00"
|
||||
$"EF00 0000 E000 0EED C0ED C0DD 000F EF00"
|
||||
$"EFC0 0000 DC00 CEEF CCEF D0DD 000F AF00"
|
||||
$"DFC0 000C 00C0 CEFE D0EF D0ED E00C FF00"
|
||||
$"0EFC 00CD 0EDC 0DDE 00DF CDEE EC00 FF00"
|
||||
$"0EFC 000E 0DEE 00CC 00CC CDFE D000 FFF0"
|
||||
$"0DFC 000D CCFE C00C DEDD 0CDC 0000 CFF0"
|
||||
$"00EF C00C 0CDE 00CE FFFF AE00 0000 0FF0"
|
||||
$"00EF C000 DD0C 0DEE FFFF FEED C000 0FF0"
|
||||
$"00DF C000 DFE0 CDFF FFFF FFAF C000 0CF0"
|
||||
$"000E FC00 DEE0 CAFF FFFF FFFE D000 0CFD"
|
||||
$"000E FC00 CED0 DEFF FFFF FFFE C000 0CFF"
|
||||
$"000D FC00 0C0C EFFF FFFF AEDD 00CC CFFF"
|
||||
$"0000 EF00 000D EFFF FADD C00C CCFF FED0"
|
||||
$"0000 EF00 000C FAFF AED0 CCCF FFEE D000"
|
||||
$"0000 DF00 000C DEED CCCC FFFE ED00 0000"
|
||||
$"0000 0E00 0000 0CCC CFFF EED0 0000 0000"
|
||||
$"0000 0DFD 0000 CCFF FEED 0000 0000 0000"
|
||||
$"0000 00EF DDDF FFEE D000 0000 0000 0000"
|
||||
$"0000 000E FFFE ED00 0000 0000 0000 0000"
|
||||
$"0000 0000 DDD0"
|
||||
};
|
||||
|
||||
resource 'icl8' (129) {
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 FFFF 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 00FF FFFF 00F7 FF00 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"FFFF FF00 0000 0000 FF00 FFFF 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 00FF FFFF"
|
||||
$"0000 0000 0000 0000 FFFF FAFF 0000 0000"
|
||||
$"0000 0000 0000 0000 0000 FFFF FF00 0000"
|
||||
$"0000 0000 0000 0000 F7FF FCFF 0000 0000"
|
||||
$"0000 0000 0000 00FF FFFF 0000 0000 0000"
|
||||
$"F500 0000 0000 0000 0000 FCFA FF00 0000"
|
||||
$"0000 0000 FFFF FF00 0000 0000 0000 0000"
|
||||
$"812B 0000 0000 0000 0000 FDFA FF00 0000"
|
||||
$"00FF FFFF 0000 0000 0000 0000 FBF5 0000"
|
||||
$"0081 2B00 0000 0000 0000 FFFC FF00 0000"
|
||||
$"FF00 0000 0000 0000 00F5 0000 F9F8 0000"
|
||||
$"00F8 FA00 0000 0000 0000 FFFC FF00 0000"
|
||||
$"FF00 0000 0000 0000 F8F8 0000 F7F8 0000"
|
||||
$"00F5 2B00 002B 0000 0000 FFFD FF00 0000"
|
||||
$"FF00 0000 0000 00F5 FA00 0000 00F5 F800"
|
||||
$"0000 2B00 00FA F8F6 0000 F7FF FCFF 0000"
|
||||
$"FCFF 0000 0000 0000 FB00 0000 00FB FCF9"
|
||||
$"F600 FBFA F700 5656 0000 00FF FCFF 0000"
|
||||
$"FCFF F700 0000 0000 81F6 0000 F8FC ACFE"
|
||||
$"F72B ACFE 5600 F9FA 0000 00FF FDFF 0000"
|
||||
$"F9FF F700 0000 F5F7 F500 F600 2BAC FEFC"
|
||||
$"FA00 FCFF 81F5 FB81 FBF5 00F7 FFFF 0000"
|
||||
$"00FC FFF6 0000 2B81 00FC 81F8 0081 81FC"
|
||||
$"F500 FAFF 2B81 ACFC FCF6 0000 FFFF 0000"
|
||||
$"00FC FFF6 0000 00FB 0081 FCAC F500 F82B"
|
||||
$"0000 F8F8 2B81 FFAC F900 0000 FFFF FF00"
|
||||
$"00F9 FFF6 0000 0081 F6F8 FFAC F700 00F8"
|
||||
$"F9FC FA56 00F6 562B 0000 0000 F7FF FF00"
|
||||
$"0000 FCFF F700 00F7 002B FAFB F500 F7FC"
|
||||
$"FEFF FFFF FDFB F500 0000 0000 00FF FF00"
|
||||
$"0000 FCFF F700 0000 F9FA F5F8 0081 FCAC"
|
||||
$"FFFF FFFF FFFC AC56 2B00 0000 00FF FF00"
|
||||
$"0000 F9FF F700 0000 81FF AC00 F781 FFFF"
|
||||
$"FFFF FFFF FFFF FDFE F800 0000 00F7 FF00"
|
||||
$"0000 00FC FFF7 0000 56FC FBF5 F7FD FFFF"
|
||||
$"FFFF FFFF FFFF FFAC 8100 0000 00F6 FFF9"
|
||||
$"0000 00FC FFF7 0000 2BAC 5600 F9FC FFFF"
|
||||
$"FFFF FFFF FFFF FFFB F700 0000 00F7 FFFF"
|
||||
$"0000 00F9 FFF7 0000 F5F6 002B FBFE FFFF"
|
||||
$"FFFF FFFE FDFC FA56 0000 F7F7 F7FF FFFF"
|
||||
$"0000 0000 FCFF 0000 0000 00FA ACFF FFFF"
|
||||
$"FFFD 8156 2BF5 00F7 F7F7 FFFF FFFC F900"
|
||||
$"0000 0000 FCFF 0000 0000 00F7 FEFD FFFE"
|
||||
$"FDFC F900 F7F7 F7FF FFFF FCFC F900 0000"
|
||||
$"0000 0000 F9FF 0000 0000 00F6 56AC FBF9"
|
||||
$"F7F6 F7F7 FFFF FFFC FCF9 0000 0000 0000"
|
||||
$"0000 0000 00FC 0000 0000 0000 002B F7F7"
|
||||
$"F7FF FFFF FCFC F900 0000 0000 0000 0000"
|
||||
$"0000 0000 00F9 FFF9 0000 0000 F7F7 FFFF"
|
||||
$"FFFC FCF9 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 FCFF F9F9 F9FF FFFF FCFC"
|
||||
$"F900 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 00FC FFFF FFFC FCF9 0000"
|
||||
$"0000 0000 0000 0000 0000 0000 0000 0000"
|
||||
$"0000 0000 0000 0000 FAFA F9"
|
||||
};
|
||||
|
||||
resource 'ics#' (129) {
|
||||
{ /* array: 2 elements */
|
||||
/* [1] */
|
||||
$"0030 01CC 0E04 7006 8006 8006 8352 4412"
|
||||
$"44C3 49F1 2BF1 23C7 23B8 01C0 1E",
|
||||
/* [2] */
|
||||
$"0030 01FC 0FFC 7FFE FFFE FFFE FFFE 7FFE"
|
||||
$"7FFF 7FFF 3FFF 3FFF 3FF8 3FC0 1E"
|
||||
}
|
||||
};
|
||||
|
||||
resource 'ics4' (129) {
|
||||
$"0000 0000 0CFF C000 0000 0CCF FFC0 EE00"
|
||||
$"00CC FFFC 0000 CEC0 CFFF C0C0 C000 0ED0"
|
||||
$"F000 C0C0 CC00 0FD0 F000 C0CD 0CCC 0DA0"
|
||||
$"FC0C C0DF CACD CCF0 DF0C DFCD 0DDA C0FC"
|
||||
$"CF0C CD0C EEDC 00EF 0FC0 FCCF FFFE C0DF"
|
||||
$"0DF0 DCDF FFFA C0CF 0CF0 0CAF FEDC CFFD"
|
||||
$"00F0 0CEE DCFF FDC0 00CD 00CF FFDC 0000"
|
||||
$"000D FFFD C000 0000 0000 CC"
|
||||
};
|
||||
|
||||
resource 'ics8' (129) {
|
||||
$"0000 0000 0000 0000 F5F7 FFFF 2BF5 0000"
|
||||
$"0000 0000 00F6 F7FF FFFF F600 ACAC 0000"
|
||||
$"0000 F6F7 FFFF FFF6 0000 0000 F8AC F700"
|
||||
$"2BFF FFFF F600 F600 F8F5 0000 00AC FA00"
|
||||
$"FFF5 0000 F6F5 F700 F6F6 F500 F5FE FA00"
|
||||
$"FFF5 00F5 F700 F756 F5F8 2BF7 0081 FDF5"
|
||||
$"FF2B 00F6 F700 FAFE F7FD F8FA 2BF7 FF00"
|
||||
$"56FF 00F7 56FF 2B56 F556 56FD F800 FEF7"
|
||||
$"2BFF F5F6 F7FA F5F8 ACFC F92B 0000 FBFF"
|
||||
$"00FF F700 FFF8 F8FE FFFF FFFC F600 56FF"
|
||||
$"0056 FF00 FAF7 81FF FFFF FFFD 2B00 F6FF"
|
||||
$"002B FFF5 002B FDFF FFFC 56F7 F7FF FF81"
|
||||
$"0000 FFF5 00F6 FCFB FAF7 FFFF FFF9 F600"
|
||||
$"0000 F8F9 0000 F7FF FFFF F9F6 0000 0000"
|
||||
$"0000 0081 FFFF FFF9 F600 0000 0000 0000"
|
||||
$"0000 0000 F8F6"
|
||||
};
|
||||
47
mac/src/EmacsMPW.r
Normal file
47
mac/src/EmacsMPW.r
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/* Resource definitions for GNU Emacs on the Macintosh when building
|
||||
under MPW.
|
||||
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#include "Types.r"
|
||||
#include "CodeFragmentTypes.r"
|
||||
|
||||
resource 'SIZE' (-1) {
|
||||
reserved,
|
||||
acceptSuspendResumeEvents,
|
||||
reserved,
|
||||
canBackground,
|
||||
doesActivateOnFGSwitch,
|
||||
backgroundAndForeground,
|
||||
dontGetFrontClicks,
|
||||
ignoreAppDiedEvents,
|
||||
is32BitCompatible,
|
||||
isHighLevelEventAware,
|
||||
onlyLocalHLEvents,
|
||||
notStationeryAware,
|
||||
dontUseTextEditServices,
|
||||
reserved,
|
||||
reserved,
|
||||
reserved,
|
||||
16777216,
|
||||
16777216
|
||||
};
|
||||
43
mac/src/chdir.c
Normal file
43
mac/src/chdir.c
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/* Implementation of chdir on the Mac for use with make-docfile.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Andrew Choi (akochoi@users.sourceforge.net). */
|
||||
|
||||
#include <string.h>
|
||||
#include <Files.h>
|
||||
#include <TextUtils.h>
|
||||
|
||||
int chdir(const char *path)
|
||||
{
|
||||
WDPBRec wdpb;
|
||||
|
||||
Str255 mypath;
|
||||
OSErr error;
|
||||
|
||||
strcpy(mypath, path);
|
||||
c2pstr(mypath);
|
||||
|
||||
wdpb.ioNamePtr = mypath;
|
||||
wdpb.ioVRefNum = 0;
|
||||
wdpb.ioWDDirID = 0;
|
||||
error = PBHSetVolSync(&wdpb);
|
||||
|
||||
return error == noErr ? 0 : -1;
|
||||
}
|
||||
2637
mac/src/mac.c
Normal file
2637
mac/src/mac.c
Normal file
File diff suppressed because it is too large
Load diff
9913
mac/src/macfns.c
Normal file
9913
mac/src/macfns.c
Normal file
File diff suppressed because it is too large
Load diff
2206
mac/src/macmenu.c
Normal file
2206
mac/src/macmenu.c
Normal file
File diff suppressed because it is too large
Load diff
12446
mac/src/macterm.c
Normal file
12446
mac/src/macterm.c
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,3 +1,73 @@
|
|||
2000-10-23 Andrew Choi <akochoi@i-cable.com>
|
||||
|
||||
* dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
|
||||
|
||||
* dispnew.c [macintosh]: Include macterm.h.
|
||||
(init_display) [macintosh]: initialization for window system.
|
||||
|
||||
* emacs.c (main) [macintosh]: Call syms_of_textprop,
|
||||
syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
|
||||
syms_of_search, x_term_init, and init_keyboard before calling
|
||||
init_window_once. Also, call syms_of_xmenu.
|
||||
|
||||
* fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
|
||||
default fontset to Monaco.
|
||||
|
||||
* frame.c [macintosh]: Include macterm.h. Remove declarations of
|
||||
NewMacWindow and DisposeMacWindow.
|
||||
(make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
|
||||
instead of calling NewMacWindow and setting fields of
|
||||
f->output_data.mac directly. Call init_frame_faces.
|
||||
(Fdelete_frame) [macintosh]: Remove unused code.
|
||||
(Fmodify_frame_parameters) [macintosh]: Call
|
||||
x_set_frame_parameters instead of mac_set_frame_parameters.
|
||||
|
||||
* frame.h [macintosh]: Define menu_bar_lines field in struct
|
||||
frame. Define FRAME_EXTERNAL_MENU_BAR macro.
|
||||
|
||||
* keyboard.c [macintosh]: Include macterm.h.
|
||||
(kbd_buffer_get_event) [macintosh]: Generate delete_window_event
|
||||
and menu_bar_activate_event type events as for X and NT.
|
||||
(make_lispy_event) [macintosh]: Construct lisp events of type
|
||||
MENU_BAR_EVENT as for X and NT.
|
||||
|
||||
* sysdep.c [macintosh]: Remove declaration for sys_signal.
|
||||
Include stdlib.h. Remove definition of Vx_bitmap_file_path.
|
||||
(sys_subshell) [macintosh]: Remove definition entirely.
|
||||
(init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
|
||||
Vwindow_system_version here. Remove initialization of
|
||||
Vx_bitmap_file_path.
|
||||
(read_input_waiting): Correct the number of parameters passed to
|
||||
read_socket_hook.
|
||||
Move all Macintosh functions to mac/mac.c.
|
||||
|
||||
* term.c [macintosh]: Include macterm.h.
|
||||
|
||||
* window.c [macintosh]: Include macterm.h.
|
||||
|
||||
* xdisp.c [macintosh]: Include macterm.h. Declare
|
||||
set_frame_menubar and pending_menu_activation.
|
||||
(echo_area_display) [macintosh]: Do not return if terminal frame
|
||||
is the selected frame.
|
||||
(update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
|
||||
Allow only the selected frame to set menu bar.
|
||||
(redisplay_window) [macintosh]: Obtain menu bar to redisplay by
|
||||
calling FRAME_EXTERNAL_MENU_BAR (f).
|
||||
(display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
|
||||
|
||||
* xfaces.c [macintosh]: Include macterm.h. Define x_display_info
|
||||
and check_x. Declare XCreateGC. Define x_create_gc and
|
||||
x_free_gc. Initialize font_sort_order.
|
||||
(x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
|
||||
but call x_list_fonts instead of w32_list_fonts.
|
||||
(Finternal_face_x_get_resource) [macintosh]: Do not call
|
||||
display_x_get_resource.
|
||||
(prepare_face_for_display) [macintosh]: Set xgcv.font.
|
||||
(realize_x_face) [macintosh]: Load the font if it is specified in
|
||||
ATTRS.
|
||||
(syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
|
||||
to Qt.
|
||||
|
||||
2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
|
||||
|
||||
* keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#endif
|
||||
|
||||
#ifdef macintosh
|
||||
#include "macterm.h"
|
||||
#include "macgui.h"
|
||||
#endif
|
||||
|
||||
/* Structure forward declarations. Some are here because function
|
||||
|
|
|
|||
|
|
@ -60,6 +60,10 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "w32term.h"
|
||||
#endif /* HAVE_NTGUI */
|
||||
|
||||
#ifdef macintosh
|
||||
#include "macterm.h"
|
||||
#endif /* macintosh */
|
||||
|
||||
/* Include systime.h after xterm.h to avoid double inclusion of time.h. */
|
||||
|
||||
#include "systime.h"
|
||||
|
|
@ -6087,6 +6091,16 @@ init_display ()
|
|||
}
|
||||
#endif /* HAVE_NTGUI */
|
||||
|
||||
#ifdef macintosh
|
||||
if (!inhibit_window_system)
|
||||
{
|
||||
Vwindow_system = intern ("mac");
|
||||
Vwindow_system_version = make_number (1);
|
||||
adjust_frame_glyphs_initially ();
|
||||
return;
|
||||
}
|
||||
#endif /* macintosh */
|
||||
|
||||
/* If no window system has been specified, try to use the terminal. */
|
||||
if (! isatty (0))
|
||||
{
|
||||
|
|
|
|||
37
src/emacs.c
37
src/emacs.c
|
|
@ -1110,6 +1110,25 @@ main (argc, argv, envp)
|
|||
CANNOT_DUMP is defined. */
|
||||
syms_of_keyboard ();
|
||||
|
||||
#ifdef macintosh
|
||||
/* init_window_once calls make_terminal_frame which on Mac OS creates
|
||||
a full-fledge output_mac type frame. This does not work correctly
|
||||
before syms_of_textprop, syms_of_macfns, syms_of_ccl,
|
||||
syms_of_fontset, syms_of_xterm, syms_of_search, x_term_init, and
|
||||
init_keyboard have already been called. */
|
||||
syms_of_textprop ();
|
||||
syms_of_macfns ();
|
||||
syms_of_ccl ();
|
||||
syms_of_fontset ();
|
||||
syms_of_macterm ();
|
||||
syms_of_macmenu ();
|
||||
syms_of_data ();
|
||||
syms_of_search ();
|
||||
|
||||
x_term_init ();
|
||||
init_keyboard ();
|
||||
#endif
|
||||
|
||||
init_window_once (); /* Init the window system */
|
||||
init_fileio_once (); /* Must precede any path manipulation. */
|
||||
}
|
||||
|
|
@ -1306,7 +1325,10 @@ main (argc, argv, envp)
|
|||
/* The basic levels of Lisp must come first */
|
||||
/* And data must come first of all
|
||||
for the sake of symbols like error-message */
|
||||
#ifndef macintosh
|
||||
/* Called before init_window_once for Mac OS. */
|
||||
syms_of_data ();
|
||||
#endif
|
||||
syms_of_alloc ();
|
||||
syms_of_lread ();
|
||||
syms_of_print ();
|
||||
|
|
@ -1322,7 +1344,10 @@ main (argc, argv, envp)
|
|||
syms_of_casetab ();
|
||||
syms_of_callproc ();
|
||||
syms_of_category ();
|
||||
#ifndef macintosh
|
||||
/* Called before init_window_once for Mac OS. */
|
||||
syms_of_ccl ();
|
||||
#endif
|
||||
syms_of_charset ();
|
||||
syms_of_cmds ();
|
||||
#ifndef NO_DIR_LIBRARY
|
||||
|
|
@ -1345,7 +1370,10 @@ main (argc, argv, envp)
|
|||
syms_of_minibuf ();
|
||||
syms_of_mocklisp ();
|
||||
syms_of_process ();
|
||||
#ifndef macintosh
|
||||
/* Called before init_window_once for Mac OS. */
|
||||
syms_of_search ();
|
||||
#endif
|
||||
syms_of_frame ();
|
||||
syms_of_syntax ();
|
||||
syms_of_term ();
|
||||
|
|
@ -1353,8 +1381,10 @@ main (argc, argv, envp)
|
|||
#ifdef HAVE_SOUND
|
||||
syms_of_sound ();
|
||||
#endif
|
||||
|
||||
#ifndef macintosh
|
||||
/* Called before init_window_once for Mac OS. */
|
||||
syms_of_textprop ();
|
||||
#endif
|
||||
syms_of_composite ();
|
||||
#ifdef VMS
|
||||
syms_of_vmsproc ();
|
||||
|
|
@ -1374,8 +1404,10 @@ main (argc, argv, envp)
|
|||
#endif /* HAVE_X_WINDOWS */
|
||||
|
||||
#ifndef HAVE_NTGUI
|
||||
#ifndef macintosh
|
||||
syms_of_xmenu ();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NTGUI
|
||||
syms_of_w32term ();
|
||||
|
|
@ -1411,7 +1443,10 @@ main (argc, argv, envp)
|
|||
#endif /* VMS */
|
||||
init_display (); /* Determine terminal type. init_sys_modes uses results */
|
||||
}
|
||||
#ifndef macintosh
|
||||
/* Called before init_window_once for Mac OS. */
|
||||
init_keyboard (); /* This too must precede init_sys_modes */
|
||||
#endif
|
||||
#ifdef VMS
|
||||
init_vmsproc (); /* And this too. */
|
||||
#endif /* VMS */
|
||||
|
|
|
|||
|
|
@ -1397,9 +1397,15 @@ syms_of_fontset ()
|
|||
FONTSET_ID (Vdefault_fontset) = make_number (0);
|
||||
FONTSET_NAME (Vdefault_fontset)
|
||||
= build_string ("-*-*-*-*-*-*-*-*-*-*-*-*-fontset-default");
|
||||
#ifdef macintosh
|
||||
FONTSET_ASCII (Vdefault_fontset)
|
||||
= Fcons (make_number (0),
|
||||
build_string ("-apple-monaco-medium-r-*--*-120-*-*-*-*-mac-roman"));
|
||||
#else
|
||||
FONTSET_ASCII (Vdefault_fontset)
|
||||
= Fcons (make_number (0),
|
||||
build_string ("-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1"));
|
||||
#endif
|
||||
AREF (Vfontset_table, 0) = Vdefault_fontset;
|
||||
next_fontset_id = 1;
|
||||
|
||||
|
|
|
|||
39
src/frame.c
39
src/frame.c
|
|
@ -29,6 +29,9 @@ Boston, MA 02111-1307, USA. */
|
|||
#ifdef WINDOWSNT
|
||||
#include "w32term.h"
|
||||
#endif
|
||||
#ifdef macintosh
|
||||
#include "macterm.h"
|
||||
#endif
|
||||
#include "buffer.h"
|
||||
/* These help us bind and responding to switch-frame events. */
|
||||
#include "commands.h"
|
||||
|
|
@ -45,11 +48,6 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "dosfns.h"
|
||||
#endif
|
||||
|
||||
#ifdef macintosh
|
||||
extern struct mac_output *NewMacWindow ();
|
||||
extern void DisposeMacWindow (struct mac_output *);
|
||||
#endif
|
||||
|
||||
/* Evaluate this expression to rebuild the section of syms_of_frame
|
||||
that initializes and staticpros the symbols declared below. Note
|
||||
that Emacs 18 has a bug that keeps C-x C-e from being able to
|
||||
|
|
@ -582,25 +580,15 @@ make_terminal_frame ()
|
|||
f->output_method = output_termcap;
|
||||
#else
|
||||
#ifdef macintosh
|
||||
f->output_data.mac = NewMacWindow(f);
|
||||
f->output_data.mac->background_pixel = 0xffffff;
|
||||
f->output_data.mac->foreground_pixel = 0;
|
||||
f->output_data.mac->n_param_faces = 0;
|
||||
f->output_data.mac->n_computed_faces = 0;
|
||||
f->output_data.mac->size_computed_faces = 0;
|
||||
f->output_method = output_mac;
|
||||
f->auto_raise = 1;
|
||||
f->auto_lower = 1;
|
||||
init_frame_faces (f);
|
||||
#else /* !macintosh */
|
||||
make_mac_terminal_frame (f);
|
||||
#else
|
||||
f->output_data.x = &tty_display;
|
||||
#endif /* !macintosh */
|
||||
#endif /* macintosh */
|
||||
#endif /* MSDOS */
|
||||
|
||||
#ifndef macintosh
|
||||
if (!noninteractive)
|
||||
init_frame_faces (f);
|
||||
#endif
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
|
|
@ -1288,14 +1276,6 @@ but if the second optional argument FORCE is non-nil, you may do so.")
|
|||
x_destroy_window (f);
|
||||
#endif
|
||||
|
||||
/* Done by x_destroy_window above already */
|
||||
#if 0
|
||||
#ifdef macintosh
|
||||
if (FRAME_MAC_P (f))
|
||||
DisposeMacWindow (f->output_data.mac);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
f->output_data.nothing = 0;
|
||||
|
||||
/* If we've deleted the last_nonminibuf_frame, then try to find
|
||||
|
|
@ -2229,11 +2209,6 @@ enabled such bindings for that variable with `make-variable-frame-local'.")
|
|||
IT_set_frame_parameters (f, alist);
|
||||
else
|
||||
#endif
|
||||
#ifdef macintosh
|
||||
if (FRAME_MAC_P (f))
|
||||
mac_set_frame_parameters (f, alist);
|
||||
else
|
||||
#endif
|
||||
|
||||
{
|
||||
int length = XINT (Flength (alist));
|
||||
|
|
|
|||
|
|
@ -259,7 +259,7 @@ struct frame
|
|||
/* Number of lines of menu bar. */
|
||||
int menu_bar_lines;
|
||||
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
/* Nonzero means using a menu bar that comes from the X toolkit. */
|
||||
int external_menu_bar;
|
||||
#endif
|
||||
|
|
@ -442,7 +442,7 @@ typedef struct frame *FRAME_PTR;
|
|||
|
||||
/* Nonzero if this frame should display a menu bar
|
||||
in a way that does not use any text lines. */
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
#define FRAME_EXTERNAL_MENU_BAR(f) (f)->external_menu_bar
|
||||
#else
|
||||
#define FRAME_EXTERNAL_MENU_BAR(f) 0
|
||||
|
|
|
|||
|
|
@ -70,6 +70,10 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "w32term.h"
|
||||
#endif /* HAVE_NTGUI */
|
||||
|
||||
#ifdef macintosh
|
||||
#include "macterm.h"
|
||||
#endif
|
||||
|
||||
/* Include systime.h after xterm.h to avoid double inclusion of time.h. */
|
||||
#include "systime.h"
|
||||
|
||||
|
|
@ -93,7 +97,7 @@ extern int input_fd;
|
|||
#ifdef HAVE_WINDOW_SYSTEM
|
||||
/* Make all keyboard buffers much bigger when using X windows. */
|
||||
#ifdef macintosh
|
||||
/* But not too big (local data > 32K error) if on macintosh */
|
||||
/* But not too big (local data > 32K error) if on macintosh. */
|
||||
#define KBD_BUFFER_SIZE 512
|
||||
#else
|
||||
#define KBD_BUFFER_SIZE 4096
|
||||
|
|
@ -3474,7 +3478,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu)
|
|||
abort ();
|
||||
#endif
|
||||
}
|
||||
#if defined (HAVE_X11) || defined (HAVE_NTGUI)
|
||||
#if defined (HAVE_X11) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
else if (event->kind == delete_window_event)
|
||||
{
|
||||
/* Make an event (delete-frame (FRAME)). */
|
||||
|
|
@ -3482,6 +3486,8 @@ kbd_buffer_get_event (kbp, used_mouse_menu)
|
|||
obj = Fcons (Qdelete_frame, Fcons (obj, Qnil));
|
||||
kbd_fetch_ptr = event + 1;
|
||||
}
|
||||
#endif
|
||||
#if defined (HAVE_X11) || defined (HAVE_NTGUI)
|
||||
else if (event->kind == iconify_event)
|
||||
{
|
||||
/* Make an event (iconify-frame (FRAME)). */
|
||||
|
|
@ -3503,7 +3509,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu)
|
|||
XSETBUFFER (obj, current_buffer);
|
||||
kbd_fetch_ptr = event + 1;
|
||||
}
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
else if (event->kind == menu_bar_activate_event)
|
||||
{
|
||||
kbd_fetch_ptr = event + 1;
|
||||
|
|
@ -5093,7 +5099,7 @@ make_lispy_event (event)
|
|||
}
|
||||
#endif /* HAVE_MOUSE */
|
||||
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
case MENU_BAR_EVENT:
|
||||
if (EQ (event->arg, event->frame_or_window))
|
||||
/* This is the prefix key. We translate this to
|
||||
|
|
|
|||
1574
src/sysdep.c
1574
src/sysdep.c
File diff suppressed because it is too large
Load diff
|
|
@ -51,6 +51,9 @@ extern int tgetnum P_ ((char *id));
|
|||
#ifdef HAVE_X_WINDOWS
|
||||
#include "xterm.h"
|
||||
#endif
|
||||
#ifdef macintosh
|
||||
#include "macterm.h"
|
||||
#endif
|
||||
|
||||
static void turn_on_face P_ ((struct frame *, int face_id));
|
||||
static void turn_off_face P_ ((struct frame *, int face_id));
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ Boston, MA 02111-1307, USA. */
|
|||
#ifdef MSDOS
|
||||
#include "msdos.h"
|
||||
#endif
|
||||
#ifdef macintosh
|
||||
#include "macterm.h"
|
||||
#endif
|
||||
|
||||
#ifndef max
|
||||
#define max(a, b) ((a) < (b) ? (b) : (a))
|
||||
|
|
|
|||
28
src/xdisp.c
28
src/xdisp.c
|
|
@ -194,13 +194,16 @@ Boston, MA 02111-1307, USA. */
|
|||
#ifdef WINDOWSNT
|
||||
#include "w32term.h"
|
||||
#endif
|
||||
#ifdef macintosh
|
||||
#include "macterm.h"
|
||||
#endif
|
||||
|
||||
#define min(a, b) ((a) < (b) ? (a) : (b))
|
||||
#define max(a, b) ((a) > (b) ? (a) : (b))
|
||||
|
||||
#define INFINITY 10000000
|
||||
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
extern void set_frame_menubar P_ ((struct frame *f, int, int));
|
||||
extern int pending_menu_activation;
|
||||
#endif
|
||||
|
|
@ -767,7 +770,7 @@ window_text_bottom_y (w)
|
|||
{
|
||||
struct frame *f = XFRAME (w->frame);
|
||||
int height = XFASTINT (w->height) * CANON_Y_UNIT (f);
|
||||
|
||||
|
||||
if (WINDOW_WANTS_MODELINE_P (w))
|
||||
height -= CURRENT_MODE_LINE_HEIGHT (w);
|
||||
return height;
|
||||
|
|
@ -6392,6 +6395,8 @@ echo_area_display (update_frame_p)
|
|||
if (!FRAME_VISIBLE_P (f) || !f->glyphs_initialized_p)
|
||||
return 0;
|
||||
|
||||
/* The terminal frame is used as the first Emacs frame on the Mac OS. */
|
||||
#ifndef macintosh
|
||||
#ifdef HAVE_WINDOW_SYSTEM
|
||||
/* When Emacs starts, selected_frame may be a visible terminal
|
||||
frame, even if we run under a window system. If we let this
|
||||
|
|
@ -6400,6 +6405,7 @@ echo_area_display (update_frame_p)
|
|||
&& !NILP (Vwindow_system))
|
||||
return 0;
|
||||
#endif /* HAVE_WINDOW_SYSTEM */
|
||||
#endif
|
||||
|
||||
/* Redraw garbaged frames. */
|
||||
if (frame_garbaged)
|
||||
|
|
@ -6732,7 +6738,7 @@ update_menu_bar (f, save_match_data)
|
|||
|
||||
if (FRAME_WINDOW_P (f)
|
||||
?
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
FRAME_EXTERNAL_MENU_BAR (f)
|
||||
#else
|
||||
FRAME_MENU_BAR_LINES (f) > 0
|
||||
|
|
@ -6779,8 +6785,14 @@ update_menu_bar (f, save_match_data)
|
|||
FRAME_MENU_BAR_ITEMS (f) = menu_bar_items (FRAME_MENU_BAR_ITEMS (f));
|
||||
|
||||
/* Redisplay the menu bar in case we changed it. */
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
|
||||
if (FRAME_WINDOW_P (f))
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
if (FRAME_WINDOW_P (f)
|
||||
#if defined (macintosh)
|
||||
/* All frames on Mac OS share the same menubar. So only the
|
||||
selected frame should be allowed to set it. */
|
||||
&& f == SELECTED_FRAME ()
|
||||
#endif
|
||||
)
|
||||
set_frame_menubar (f, 0, 0);
|
||||
else
|
||||
/* On a terminal screen, the menu bar is an ordinary screen
|
||||
|
|
@ -9666,7 +9678,7 @@ redisplay_window (window, just_this_one_p)
|
|||
|
||||
if (FRAME_WINDOW_P (f))
|
||||
{
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
|
||||
#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (macintosh)
|
||||
redisplay_menu_p = FRAME_EXTERNAL_MENU_BAR (f);
|
||||
#else
|
||||
redisplay_menu_p = FRAME_MENU_BAR_LINES (f) > 0;
|
||||
|
|
@ -12113,6 +12125,10 @@ display_menu_bar (w)
|
|||
if (FRAME_X_P (f))
|
||||
return;
|
||||
#endif
|
||||
#ifdef macintosh
|
||||
if (FRAME_MAC_P (f))
|
||||
return;
|
||||
#endif
|
||||
|
||||
#ifdef USE_X_TOOLKIT
|
||||
xassert (!FRAME_WINDOW_P (f));
|
||||
|
|
|
|||
60
src/xfaces.c
60
src/xfaces.c
|
|
@ -218,6 +218,33 @@ Boston, MA 02111-1307, USA. */
|
|||
#define FONT_WIDTH FONT_MAX_WIDTH
|
||||
#endif /* WINDOWSNT */
|
||||
|
||||
#ifdef macintosh
|
||||
#include "macterm.h"
|
||||
#define x_display_info mac_display_info
|
||||
#define check_x check_mac
|
||||
|
||||
extern XGCValues *XCreateGC (void *, WindowPtr, unsigned long, XGCValues *);
|
||||
|
||||
static INLINE GC
|
||||
x_create_gc (f, mask, xgcv)
|
||||
struct frame *f;
|
||||
unsigned long mask;
|
||||
XGCValues *xgcv;
|
||||
{
|
||||
GC gc;
|
||||
gc = XCreateGC (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), mask, xgcv);
|
||||
return gc;
|
||||
}
|
||||
|
||||
static INLINE void
|
||||
x_free_gc (f, gc)
|
||||
struct frame *f;
|
||||
GC gc;
|
||||
{
|
||||
XFreeGC (FRAME_MAC_DISPLAY (f), gc);
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "buffer.h"
|
||||
#include "dispextern.h"
|
||||
#include "blockinput.h"
|
||||
|
|
@ -1304,7 +1331,6 @@ defined_color (f, color_name, color_def, alloc)
|
|||
#endif
|
||||
#ifdef macintosh
|
||||
else if (FRAME_MAC_P (f))
|
||||
/* FIXME: mac_defined_color doesn't exist! */
|
||||
return mac_defined_color (f, color_name, color_def, alloc);
|
||||
#endif
|
||||
else
|
||||
|
|
@ -1800,8 +1826,11 @@ static struct frame *font_frame;
|
|||
font height, then for weight, then for slant.' This variable can be
|
||||
set via set-face-font-sort-order. */
|
||||
|
||||
#ifdef macintosh
|
||||
static int font_sort_order[4] = { XLFD_SWIDTH, XLFD_POINT_SIZE, XLFD_WEIGHT, XLFD_SLANT };
|
||||
#else
|
||||
static int font_sort_order[4];
|
||||
|
||||
#endif
|
||||
|
||||
/* Look up FONT.fields[FIELD_INDEX] in TABLE which has DIM entries.
|
||||
TABLE must be sorted by TABLE[i]->name in ascending order. Value
|
||||
|
|
@ -2242,7 +2271,7 @@ x_face_list_fonts (f, pattern, fonts, nfonts, try_alternatives_p,
|
|||
names = XListFonts (dpy, pattern, nfonts, &n);
|
||||
UNBLOCK_INPUT;
|
||||
#endif /* HAVE_X_WINDOWS */
|
||||
#ifdef WINDOWSNT
|
||||
#if defined (WINDOWSNT) || defined (macintosh)
|
||||
/* NTEMACS_TODO : currently this uses w32_list_fonts, but it may be
|
||||
better to do it the other way around. */
|
||||
Lisp_Object lfonts;
|
||||
|
|
@ -2255,7 +2284,11 @@ x_face_list_fonts (f, pattern, fonts, nfonts, try_alternatives_p,
|
|||
|
||||
/* Get the list of fonts matching PATTERN. */
|
||||
BLOCK_INPUT;
|
||||
#ifdef WINDOWSNT
|
||||
lfonts = w32_list_fonts (f, lpattern, 0, nfonts);
|
||||
#else /* macintosh */
|
||||
lfonts = x_list_fonts (f, lpattern, 0, nfonts);
|
||||
#endif
|
||||
UNBLOCK_INPUT;
|
||||
|
||||
/* Count fonts returned */
|
||||
|
|
@ -2273,7 +2306,7 @@ x_face_list_fonts (f, pattern, fonts, nfonts, try_alternatives_p,
|
|||
names[i] = XSTRING (XCAR (tem))->data;
|
||||
tem = XCDR (tem);
|
||||
}
|
||||
#endif /* WINDOWSNT */
|
||||
#endif /* defined (WINDOWSNT) || defined (macintosh) */
|
||||
|
||||
if (names)
|
||||
{
|
||||
|
|
@ -4121,6 +4154,7 @@ DEFUN ("internal-face-x-get-resource", Finternal_face_x_get_resource,
|
|||
{
|
||||
Lisp_Object value = Qnil;
|
||||
#ifndef WINDOWSNT
|
||||
#ifndef macintosh
|
||||
CHECK_STRING (resource, 0);
|
||||
CHECK_STRING (class, 1);
|
||||
CHECK_LIVE_FRAME (frame, 2);
|
||||
|
|
@ -4128,6 +4162,7 @@ DEFUN ("internal-face-x-get-resource", Finternal_face_x_get_resource,
|
|||
value = display_x_get_resource (FRAME_X_DISPLAY_INFO (XFRAME (frame)),
|
||||
resource, class, Qnil, Qnil);
|
||||
UNBLOCK_INPUT;
|
||||
#endif /* not macintosh */
|
||||
#endif /* not WINDOWSNT */
|
||||
return value;
|
||||
}
|
||||
|
|
@ -4872,6 +4907,9 @@ prepare_face_for_display (f, face)
|
|||
#endif
|
||||
#ifdef WINDOWSNT
|
||||
xgcv.font = face->font;
|
||||
#endif
|
||||
#ifdef macintosh
|
||||
xgcv.font = face->font;
|
||||
#endif
|
||||
mask |= GCFont;
|
||||
}
|
||||
|
|
@ -6181,6 +6219,18 @@ realize_x_face (cache, attrs, c, base_face)
|
|||
fontset = default_face->fontset;
|
||||
face->fontset = make_fontset_for_ascii_face (f, fontset);
|
||||
face->font = NULL; /* to force realize_face to load font */
|
||||
|
||||
#ifdef macintosh
|
||||
/* Load the font if it is specified in ATTRS. This fixes
|
||||
changing frame font on the Mac. */
|
||||
if (STRINGP (attrs[LFACE_FONT_INDEX]))
|
||||
{
|
||||
struct font_info *font_info =
|
||||
FS_LOAD_FONT (f, 0, XSTRING (attrs[LFACE_FONT_INDEX])->data, -1);
|
||||
if (font_info)
|
||||
face->font = font_info->font;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Load colors, and set remaining attributes. */
|
||||
|
|
@ -7037,7 +7087,7 @@ A value of nil means don't allow any scalable fonts.\n\
|
|||
A value of t means allow any scalable font.\n\
|
||||
Otherwise, value must be a list of regular expressions. A font may be\n\
|
||||
scaled if its name matches a regular expression in the list.");
|
||||
#ifdef WINDOWSNT
|
||||
#if defined (WINDOWSNT) || defined (macintosh)
|
||||
/* Windows uses mainly truetype fonts, so disallowing scalable fonts
|
||||
by default limits the fonts available severely. */
|
||||
Vscalable_fonts_allowed = Qt;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue