1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-04 11:40:22 +00:00
emacs/mac/ChangeLog

521 lines
16 KiB
Plaintext
Raw Normal View History

2002-10-14 09:57:39 +00:00
2002-10-14 Andreas Schwab <schwab@suse.de>
* make-package: Fix syntax for find.
2002-10-08 Steven Tamm <steventamm@mac.com>
* make-package: Added ability to pass command line options
through to make and configure (-m, & -c,).
Added option to not copy Application into installer, the default
for X11 builds. Does not copy CVS directories into installer.
Clarified some of the usage notes.
2002-10-07 Steven Tamm <steventamm@mac.com>
* make-package: Now calls make bootstrap if .elc files are missing
2002-08-27 Andrew Choi <akochoi@shaw.ca>
* INSTALL: Add information on starting Emacs as a GUI application
from the terminal.
2002-08-15 Andrew Choi <akochoi@shaw.ca>
* INSTALL: Add instructions for building Carbon version on Macs
with X Window installed.
2002-07-31 Andrew Choi <akochoi@shaw.ca>
* Emacs.app/Contents/PkgInfo, Emacs.app/Contents/Info.plist:
change creator code from ???? to EMAx.
* INSTALL: Add instructions for building X Window version.
2002-07-11 Andrew Choi <akochoi@shaw.ca>
* make-package: Change -a option to -R for cp command.
2002-07-05 Andrew Choi <akochoi@shaw.ca>
* make-package: Add ability to handle options --help, --prefix,
--no-conf, and --with-x.
2002-07-04 Andrew Choi <akochoi@shaw.ca>
* make-package: New file.
2002-07-01 Andrew Choi <akochoi@shaw.ca>
* Emacs.app/Contents/Resources/Emacs.icns: New file.
* Emacs.app/Contents/Info.plist: Add CFBundleDocumentTypes and
CFBundleIconFile entries.
2002-04-13 Andrew Choi <akochoi@shaw.ca>
* Emacs.app/Contents/Info.plist: New file.
* Emacs.app/Contents/PkgInfo: New file.
* Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings:
New file.
* cw5-mcp.xml: Remove file.
* inc/defs-cw5.h: Remove file.
* cw6-mcp.xml: Update with new version.
* mac/inc/defs-cw6.h: New constant MAC_OS8. Remove definition
of constant CODEWARRIOR_VERSION_6.
* mac/src/mac.c:
* mac/src/macmenu.c:
* mac/src/macterm.c:
Test constant __MSL__ instead of CODEWARRIOR_VERSION_6.
* src/Carbon.r: New File.
* makefile.MPW: Define MAC_OS and MAC_OS8. Update with change of
locations for mac.c, macfns.c, macgui.h, macmenu.c, macterm.c, and
macterm.h. Generate DOC from .el instead of .elc versions of
files listed in DONTCOMPILE in lisp/Makefile.in.
* INSTALL: Add installation instructions for Mac OS X.
* README: Add information for Mac OS X.
* src/mac.c, inc/macgui.h, src/macfns.c, src/macmenu.c,
src/macterm.c, inc/macterm.h: Remove from here and move to src.
2002-04-12 Andrew Choi <akochoi@shaw.ca>
* src/mac.c (select): Under Carbon, always return true so
XTread_socket is called to poll input.
(run_mac_command): Not implemented under Carbon.
(get_wd): Call PBHGetVolSync and path_from_vol_dir_name to
establish pathname.
(do_applescript): Use Carbon routines AEGetDescDatASize and
AEGetDescData.
(Fmac_paste_function): Use Carbon routines GetCurrentScrap,
GetScrapFlavorFlags, GetScrapFlavorSize, and GetScrapFlavorData.
(Fmac_cut_function): Use Carbon routines ClearCurrentScrap,
GetCurrentScrap, and PutScrapFlavor.
(Fx_selection_exists_p): Use Carbon routines GetCurrentScrap and
GetScrapFlavorFlags.
* src/macfns.c: Synchronize with changes in w32fns.c.
[MAC_OSX]: Include Carbon headers.
(x_real_positions): Use Carbon routine GetWindowPortBounds.
(x_set_scroll_bar_width): Set width of scroll bar to 16.
(x_make_gc): Remove static qualifier.
* src/macmenu.c: Synchronize with changes in w32menu.c.
[MAC_OSX]: Include Carbon headers.
(set_frame_menubar): Check equality of vector representation of
scroll bars using Fequal instead of EQ.
(mac_menu_show): Use Carbon routine GetWindowPort.
(mac_dialog): Likewise.
(add_menu_item): Use Carbon routines CountMenuItems,
EnableMenuItem, and DisableMenuItem.
* src/macterm.c: Synchronize with changes in w32term.c.
[MAC_OSX]: Include Carbon headers.
(XDrawLine): Use Carbon routine GetWindowPort.
(XClearArea): Likewise.
(XClearWindow): Use Carbon routines GetWindowPort and
GetWindowPortBounds.
(mac_draw_bitmap): Use Carbon routines GetWindowPort and
GetPortPixMap.
(mac_set_clip_rectangle): Use Carbon routine GetWindowPort.
(mac_reset_clipping): Use Carbon routine GetWindowPort.
(XFillRectangle): Likewise.
(mac_draw_rectangle): Likewise.
(mac_draw_rectangle_to_pixmap): Likewise.
(mac_draw_string_common): Likewise.
(mac_copy_area): Use Carbon routines GetWindowPort and
GetPortPixMap.
(mac_scroll_area): Use Carbon routines GetWindowPort and
GetQDGlobalsScreenBits.
(x_flush): Call Carbon routine QDFlushPortBuffer.
(x_update_end): Use Carbon routine GetWindowPort; call x_flush.
(x_draw_fringe_bitmap): Call mac_reset_clipping before returning.
(x_draw_image_glyph_string): Likewise.
(x_draw_stretch_glyph_string): Likewise.
(construct_mouse_click): Call Carbon routine GetWindowPort.
(note_mouse_movement): Call Carbon routine GetWindowPortBounds.
(XTmouse_position): Call Carbon routine GetWindowPort.
(x_scroll_bar_create): Create scroll bar with proc
kControlScrollBarProc.
(XTset_vertical_scroll_bar) [MAC_OSX]: Set width to 16.
(activate_scroll_bar): Call ActivateControl instead of
SetControlMaximum.
(deactivate_scroll_bar): Call DeactivateControl instead of
SetControlMaximum.
(x_scroll_bar_handle_click): Use default case for scroll
indicator.
(x_scroll_bar_report_motion): Call Carbon routine GetWindowPort.
(x_calc_absolute_position): Call Carbon routines GetWindowPort and
GetWindowPortBounds.
(init_font_name_table): Call Carbon Font Manager routines to
iterate through all fonts.
(XLoadQueryFont): Call Carbon routines GetPortTextFont,
GetPortTextSize, and GetPortTextFace.
(do_init_managers): Do not initialize Mac Toolbox under Carbon.
(is_emacs_window): New function to filter out non-Emacs windows
passed back by WaitNextEvent.
(do_mouse_moved): Call Carbon routine GetWindowPort.
(do_apple_menu): No apple menu handler under Carbon.
(do_zoom_window): Call Carbon routines GetWindowPort,
GetQDGlobalsScreenBits, SetWindowStandardState, and
GetWindowPortBounds.
(init_required_apple_events): Use UPP procedure type converter.
(main): Don't define for Carbon version.
(XTread_socket): Don't check interrupt_input_blocked. Don't call
check_alarm. Call Carbon routines GetWindowPort,
GetQDGlobalScreenBits, GetWindowPortBounds, and InvalWindowRect.
(NewMacWindow): Set making_terminal_window to 0. Call Carbon
routine GetWindowPort.
(mac_initialize): Rename from x_initialize. Use new Doc string
format.
* inc/macterm.h: Synchronize with changes in w32term.h.
* inc/macgui.h [MAC_OSX]: Use OpaqueWindowPtr* instead of
WindowPtr.
2002-01-28 22:54:54 +00:00
2002-01-28 Kim F. Storm <storm@cua.dk>
* src/macterm.c (x_erase_phys_cursor): Don't erase cursor if
cursor row is invisible. This can happen if cursor is on top line
of a window, and we switch to a buffer with a header line.
2001-12-22 Pavel Jan,Am(Bk <Pavel@Janik.cz>
2001-12-22 13:57:51 +00:00
* cw5-mcp.xml, cw6-mcp.xml, makefile.MPW: Remove mocklisp files.
2001-12-13 10:02:26 +00:00
2001-12-13 Eli Zaretskii <eliz@is.elta.co.il>
* src/macfns.c (x_report_frame_params): Make the scroll-bar-width
frame parameter have a numeric value all the time.
2001-12-08 Pavel Jan,Am(Bk <Pavel@Janik.cz>
2001-12-08 21:06:01 +00:00
* COPYING: New file.
2001-12-05 23:03:44 +00:00
2001-12-06 Kim F. Storm <storm@cua.dk>
* src/macfns.c (x_report_frame_params): Return actual fringe widths.
2001-12-01 01:36:04 +00:00
2001-12-01 Kim F. Storm <storm@cua.dk>
The following changes add left-fringe and right-fringe
frame parameters to adjust fringe widths, or remove one or
both fringes. See ../src/ChangeLog for details.
* inc/macterm.h: Merged changes from xterm.h.
* src/macterm.c: Merged changes from xterm.c.
* src/macfns.c: Merged changes from xfns.c.
2001-11-16 Pavel Jan,Am(Bk <Pavel@Janik.cz>
2001-11-16 22:54:22 +00:00
2001-11-18 08:37:52 +00:00
* src/macterm.c (waiting_for_input): Remove unnecessary declaration.
2001-11-16 22:54:22 +00:00
2001-11-16 13:21:09 +00:00
2001-11-16 Kim F. Storm <storm@cua.dk>
The following changes are made to clean up the various internal
references to the fringes to actually use the term `fringe'.
* src/macfns.c: Use renamed symbols.
* src/macterm.c: Comment fixes. Use renamed symbols.
(fringe_bitmap_type): Renamed from bitmap_type.
(NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
(x_draw_fringe_bitmap): Renamed from x_draw_bitmap.
(x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
* inc/macterm.h: Comment fixes. Use renamed symbols.
(fringes_extra): Renamed from flags_areas_extra.
(FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
(FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
(FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
(FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
(FRAME_X_LEFT_FRINGE_WIDTH): Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
(FRAME_X_RIGHT_FRINGE_WIDTH): Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
2001-10-21 09:04:46 +00:00
2001-10-20 Gerd Moellmann <gerd@gnu.org>
2001-10-21 17:41:43 +00:00
* (Version 21.1 released.)
2001-10-21 09:04:46 +00:00
2001-10-12 03:37:43 +00:00
2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
* src/macfns.c (x_create_bitmap_from_file, x_find_image_file):
* src/mac.c (run_mac_command): Update calls to openp.
2001-10-08 11:46:44 +00:00
2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
* src/macmenu.c (Fx_popup_menu): Use Fkeymap_prompt.
* src/macterm.c: Include keymap.h.
(note_mode_line_highlight): Use KEYMAPP.
2001-10-10 09:43:20 +00:00
2001-10-05 Gerd Moellmann <gerd@gnu.org>
* Branch for 21.1.
2001-10-12 03:37:43 +00:00
2001-09-04 Andrew Choi <akochoi@cse.cuhk.edu.hk>
* src/macmenu.c (mac_menu_show): Use refcon of selected menu item.
* src/macterm.c (XTread_socket): Read all pending events in the
event queue instead of one.
(mac_to_x_fontname): Return name with jisx0201.1976-0 encoding if
a script code of -smJapanese is specified.
(x_font_name_to_mac_font_name): Also recognize the jisx0201.1976-0
encoding.
(init_font_name_table): Use a script code of -smJapanese instead
of smRoman for the second entry of a Japanese font.
(XLoadQueryFont): Recognize a font as having the smRoman script
code if its encoding is jisx0201.1976-0.
2001-10-08 11:46:44 +00:00
* makefile.MPW: Generate etc/DOC file from .elc files instead of
.el files.
* src/mac.c (stat): Don't fail for aliases.
(sys_open) [__MRC__]: Set file creator and type for newly-created
files.
(sleep) [__MRC__]: Place loop around WaitNextEvent to check time
elapsed instead of use WaitNextEvent call as a delay.
2001-10-08 11:46:44 +00:00
2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
* src/macterm.c (init_font_name_table): Add an additional entry to
the font table with the script code smRoman for each Apple
Japanese font.
(XLoadQueryFont): Recognize a font as having the smRoman script
code even when FontToScript returns smJapanese if it is one of
those created above.
2001-08-21 Andrew Choi <akochoi@cse.cuhk.edu.hk>
* INSTALL: Add to the note on using -opt speed in MPW the function
macterm.c (x_draw_hollow_cursor).
* src/macterm.c (mac_scroll_area): Call CopyBits with local
coordinates and portBits instead of global coordinates and
screenBits. Set fore color and back color to black and white,
respectively, before calling CopyBits.
* src/macterm.c (local_to_global_coord): Comment out.
* src/mac.c (mac-filename-to-unix): Change to
mac-file-name-to-posix.
(unix-filename-to-mac): Change to posix-file-name-to-mac.
(mac_to_unix_pathname): Change to mac_to_posix_pathname.
(unix_to_mac_pathname): Change to posix_to_mac_pathname.
* src/macterm.c (do_ae_open_documents): Change call to
mac_to_unix_pathname to mac_to_posix_pathname.
2001-07-26 Andrew Choi <akochoi@i-cable.com>
* inc/macterm.h (x_display_list): Declare extern.
2001-07-20 Pavel Jan,Am(Bk <Pavel@Janik.cz>
2001-07-20 11:00:46 +00:00
* src/macterm.c (xim_open_dpy): Fix typo.
2001-06-26 Andrew Choi <akochoi@i-cable.com>
* README: Change references to SourceForge site to
ftp://ftp.gnu.org/gnu/mac/emacs/.
2001-05-15 12:23:56 +00:00
2001-05-15 Gerd Moellmann <gerd@gnu.org>
* src/macterm.c (clear_mouse_face): Check for nil tip_frame.
2001-05-15 Andrew Choi <akochoi@i-cable.com>
* src/Emacs.r: Change About box message.
* makefile.MPW: Add md5.c.x to EmacsObjects.
* src/mac.c (select): Call WaitNextEvent instead of Delay.
(pause): Ditto.
(sleep): Ditto.
* src/macterm.c (do_app_resume): Set cursor to arrow.
(clear_mouse_face): check for NIL Lisp object instead of null
pointer.
* INSTALL: Delete note on compiling Lisp files on a Unix system.
Add note on turning off end of line conversion.
2001-02-27 Andrew Choi <akochoi@i-cable.com>
* src/macfns.c: Rename everything containing *busy_cursor* and
similar to *hourglass*.
Change IMAGE_POSITIVE_INTEGER_VALUE to
IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR throughout.
(x_set_font): If font hasn't changed, avoid recomputing faces and
other things, as in xfns.c.
(Qcancel_timer): New variable.
(syms_of_macfns): Rename x-busy-pointer-shape to
x-hourglass-pointer-shape, display-busy-cursor to
display-hourglass, busy-cursor-delay to hourglass-delay, as in
xfns.c.
(x_set_tool_bar_lines): Modify as in xfns.c
(x_change_window_heights): New function.
* inc/macterm.h (struct x_output): Rename busy_cursor to
hourglass_cursor, busy_window to hourglass_window, busy_p to
hourglass_p, as in xterm.h.
* src/macmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
safe_run_hooks, as in xmenu.c.
* src/macterm.c (do_check_ram_size): New function.
* src/Emacs.r: Add ALRT resource #129 for alert when there is over
256 MB RAM.
2001-02-20 16:28:31 +00:00
2001-02-20 Andrew Choi <akochoi@i-cable.com>
* mac/INSTALL:
* mac/README:
* mac/cw5-mcp.xml:
* mac/cw6-mcp.xml:
* mac/inc/alloca.h:
* mac/inc/defs-cw5.h:
* mac/inc/defs-cw6.h: Added copyright notice.
2001-01-28 Andrew Choi <akochoi@i-cable.com>
* src/macterm.c (mac_font_pattern_match): Allocate three more
bytes to regex for '^', '$', and '\0'.
* src/macterm.c (x_list_fonts): Protect pattern and newlist from
garbage collection.
* src/macfns.c (QCconversion): Replaces QCalgorithm.
* src/macfns.c (image_ascent, lookup_image): Adapt to change of
image margins.
* src/macterm.c (x_produce_image_glyph, x_draw_image_foreground)
(x_draw_image_relief, x_draw_image_foreground_1)
(x_draw_image_glyph_string): Adapt to change of image margins.
* src/macterm.c (mac_to_x_fontname): Change charset name of
Simplify Chinese fonts from gb2312 to gb2312.1980 and Korean fonts
from ksc5601 to ksc5601.1989.
2000-12-12 Andrew Choi <akochoi@i-cable.com>
* cw5-mcp.xml: add md5.c to project.
* cw6-mcp.xml: add md5.c to project.
* src/macfns.c (x_create_tip_frame, Fx_hide_tip): change to handle
Lisp_Object type tip_frame (was struct frame *) as in xfns.c.
2000-11-26 Andrew Choi <akochoi@i-cable.com>
* src/macterm.c (x_handle_tool_bar_click):
(note_tool_bar_highlight): change references to members deleted
from struct frame as in xterm.c.
* inc/epaths.h: set PATH_EXEC to ~emacs/mac instead of
~emacs/mac/bin.
2000-10-25 Andrew Choi <akochoi@i-cable.com>
* cw5-mcp.xml: renamed from emacs-cw5.mcp.xml.
* cw6-mcp.xml: renamed from emacs-cw6.mcp.xml.
* inc/defs-cw5.h: renamed from inc/cmdline-defs-cw5.h.
* inc/defs-cw6.h: renamed from inc/cmdline-defs-cw6.h.
2000-10-25 11:48:28 +00:00
2000-10-24 Andrew Choi <akochoi@i-cable.com>
* src/macterm.c (XTread_socket): check whether Lisp variable
mac-ready-for-drag-n-drop is bound rather than non-nil value.
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.
2000-10-22 16:50:16 +00:00
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.
2001-10-06 09:57:20 +00:00
2001-12-22 14:18:08 +00:00
;; Local Variables:
;; coding: iso-2022-7bit-unix
;; End:
2001-10-06 09:57:20 +00:00
Copyright (C) 2001 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.