+1998-12-24 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.7 is released.
+
+1998-12-23 Martin Buchholz <martin@xemacs.org>
+
+ * glyphs.c (decode_device_ii_format):
+ - Fix indentation.
+ - Use GET_C_STRING_FILENAME_DATA_ALLOCA with char *, not Extbyte *.
+
+ * glyphs-x.c (x_subwindow_instantiate):
+ - A image instance mask was being assigned to a image instance type!
+ - X_SUBWINDOW_INSTANCE_DATA (ii) is not an lvalue in C++.
+
+ * glyphs-msw.c (mswindows_initialize_dibitmap_image_instance):
+ Fix indentation.
+ * glyphs-x.h: Make indentation consistent.
+
+ * emacs.c (Fdump_emacs): Remove Steve Martin merge artifacts.
+
+ * glyphs-widget.c (check_valid_glyph): Warning suppression.
+ - Make it static
+ - #ifdef it out, since it's not actually used yet (FIX THIS!)
+
+ * glyphs-widget.c:
+ * glyphs.h:
+ Move declarations of decode_device_ii_format and
+ decode_image_instantiator_format into glyphs.h where they belong.
+
+1998-12-22 Martin Buchholz <martin@xemacs.org>
+
+ * frame-x.c (x_delete_frame): Revert part of my changes at the
+ suggestion of Gunnar Evermann - unfortunately no one really
+ understands this code.
+
+ * callproc.c (init_callproc): code cleanup.
+
+ * free-hook.c (malloc):
+ (check_malloc):
+ (__free_hook):
+ (__malloc_hook):
+ (__realloc_hook):
+ (block_input_malloc):
+ (block_input_realloc):
+ * device-x.c (x_delete_device):
+ * emacs.c (voodoo_free_hook):
+ * events.c (print_event):
+ (CHECK_EVENT_TYPE):
+ (CHECK_EVENT_TYPE2):
+ (CHECK_EVENT_TYPE3):
+ Use proper prototypes.
+ Make C_E_T macros a little faster.
+ Pedantic fiddly little changes. You really don't care.
+
+1998-12-22 Andy Piper <andy@xemacs.org>
+
+ * redisplay-output.c (redisplay_clear_region): make sure that
+ fg/bg colors get set even when we are in the border area.
+
+1998-12-13 Martin Buchholz <martin@xemacs.org>
+
+ * console-msw.c: Function definitions follow coding standards
+ - This prevents e.g. find-tag on Lisp_Event finding DEVENT
+
+1998-12-11 Martin Buchholz <martin@xemacs.org>
+
+ * events.h (struct timeout_data):
+ * event-tty.c (tty_timeout_to_emacs_event):
+ * event-msw.c (mswindows_wm_timer_callback):
+ * event-Xt.c (Xt_timeout_to_emacs_event):
+ * event-msw.c (mswindows_cancel_dispatch_event):
+ Make sure Lisp_Objects inside events are initialized to Qnil, not
+ Qnull_pointer, which is now illegal.
+
+1998-12-10 Martin Buchholz <martin@xemacs.org>
+
+ * lisp.h: Fix up prototypes to match alloc.c
+
+1998-12-08 Martin Buchholz <martin@xemacs.org>
+
+ * windowsnt.h: Remove `support' for using index and rindex
+
+ * filelock.c (current_lock_owner):
+ - Change uses of index -> strchr, rindex -> strrchr
+
+1998-12-07 Martin Buchholz <martin@xemacs.org>
+
+ * sysdep.c (set_descriptor_non_blocking):
+ Since O_NONBLOCK is now always #defined, make use of fcntl
+ conditional on F_SETFL being defined.
+
+ * console-msw.c (DHEADgER):
+ (DOPAQUE_DATA):
+ (DEVENT):
+ (DCONS):
+ (DCONSCDR):
+ (DSTRING):
+ (DVECTOR):
+ (DSYMBOL):
+ (DSYMNAME):
+ - max_align_t should not be visible to the user of the
+ XOPAQUE_DATA macro.
+ - use Bufbyte instead of char
+ - parens around (FOOP (obj)) are always redundant.
+ If they were necessary, we should fix the macro instead.
+ - Always use string_data(foo) instead of foo->data.
+
+
+1998-12-06 Martin Buchholz <martin@xemacs.org>
+
+ * frame-msw.c (mswindows_init_frame_1):
+ - use make_lisp_hash_table, not Fmake_hash_table
+ - include elhash.h
+
+ * lisp.h:
+ * alloc.c (make_vector): remove travesty
+ (Fmake_vector):
+ (make_pure_vector):
+ (pure_cons):
+ (make_bit_vector_internal):
+ (make_bit_vector):
+ (make_bit_vector_from_byte_vector):
+ (Fmake_bit_vector):
+ - make vector_equal a little faster.
+ - Don't use variable name `new'.
+ - Use size_t instead of EMACS_INT.
+ - usual Martin-style pointless bit-twiddling.
+
+ * fns.c (mapcar1):
+ (Fmapconcat):
+ (Fmapcar):
+ (Fmapvector):
+ Make mapcar faster. In particular, make
+ (mapc #'identity long-string)
+ MUCH faster under Mule.
+ * tests/automated/lisp-tests.el: Test 'em!
+
+ * bytecode.c (Ffetch_bytecode): Fix crash when loading lazy-loaded
+ bytecode.
+
+1998-12-01 Martin Buchholz <martin@xemacs.org>
+
+ * menubar-x.c (menu_item_descriptor_to_widget_value_1): Always use
+ Qnil, not NULL, to initialize `null' Lisp_Objects.
+
+1998-11-29 Hrvoje Niksic <hniksic@srce.hr>
+
+ * specifier.c (display_table_validate): Update.
+
+ * redisplay.c (create_text_block): Use them.
+
+ * glyphs.c (display_table_entry): New function.
+ (get_display_tables): Ditto.
+
+1998-12-15 Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
+
+ * eldap.c (toplevel): Mention that eldap.c compiles with
+ OpenLDAP libs
+ (Fldap_open): Use `GET_C_STRING_OS_DATA_ALLOCA'
+ (Fldap_search_internal): Ditto
+
+1998-12-11 Martin Buchholz <martin@xemacs.org>
+
+ * event-msw.c (mswindows_cancel_dispatch_event):
+ Gratuitous code prettification
+
+
+1998-12-07 Hrvoje Niksic <hniksic@srce.hr>
+
+ * fns.c (Fnconc): Fix use of wrong_type_argument().
+
+ * floatfns.c (Ffloat): Fix docstring.
+ (Ffloat): Fix use of wrong_type_argument().
+ (Fabs): Ditto.
+ (extract_float): Ditto.
+ (Fceiling): Ditto.
+ (Fround): Ditto.
+ (Ftruncate): Ditto.
+
+1998-12-06 Martin Buchholz <martin@xemacs.org>
+
+ * frame-msw.c (mswindows_init_frame_1):
+ - use make_lisp_hash_table, not Fmake_hash_table
+ - include elhash.h
+
+ * lisp.h:
+ * alloc.c (make_vector): remove travesty
+ (Fmake_vector):
+ (make_pure_vector):
+ (pure_cons):
+ (make_bit_vector_internal):
+ (make_bit_vector):
+ (make_bit_vector_from_byte_vector):
+ (Fmake_bit_vector):
+ - make vector_equal a little faster.
+ - Don't use variable name `new'.
+ - Use size_t instead of EMACS_INT.
+ - usual Martin-style pointless bit-twiddling.
+
+ * fns.c (mapcar1):
+ (Fmapconcat):
+ (Fmapcar):
+ (Fmapvector):
+ Make mapcar faster. In particular, make
+ (mapc #'identity long-string)
+ MUCH faster under Mule.
+ * tests/automated/lisp-tests.el: Test 'em!
+
+ * bytecode.c (Ffetch_bytecode): Fix crash when loading lazy-loaded
+ bytecode.
+
+1998-12-02 Didier Verna <verna@inf.enst.fr>
+
+ * menubar-x.c (menu_item_descriptor_to_widget_value_1): set the
+ accelerator field to nil for labels.
+
+1998-12-16 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * menubar-msw.c (displayable_menu_item):
+ Escape occurrences of '&' and support occurrences of the
+ '%_' accelerator indicator in menus.
+
+1998-11-26 Didier Verna <verna@inf.enst.fr>
+
+ * dired.c (Fdirectory_files): use make_string instead of
+ make_ext_string on the filename. The conversion external->internal
+ format is already done in sys_readdir.
+
+1998-12-15 Gunnar Evermann <ge204@eng.cam.ac.uk>
+
+ * glyphs.c (normalize_image_instantiator): GCPRO instantiator
+
+1998-12-16 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * event-msw.c
+ (Belatedly) added Kirill to list of file's authors.
+ emacs_mswindows_quit_p: Don't process WM_PAINT messages in
+ quit checking. WM_PAINT messages cause redisplay, but
+ windows' states are not necessarily stable when this function
+ gets called.
+
+1998-12-17 Andy Piper <andy@xemacs.org>
+
+ * strftime.c (zone_name): CONSTify.
+
+1998-12-15 Andy Piper <andy@xemacs.org>
+
+ * glyphs-msw.c (mswindows_combo_instantiate): ditto.
+ (mswindows_widget_property): return Qunbound when no property available.
+ (mswindows_button_property): ditto.
+ (mswindows_combo_property): ditto.
+ (mswindows_widget_set_property): ditto.
+
+ * glyphs-widget.c (check_valid_item_list): use properties.
+
+ * glyphs.h (struct Lisp_Image_Instance): we have properties now.
+
+ * glyphs.c (Fset_image_instance_property): allow setting of arbitrary properties.
+ (Fimage_instance_property): ditto.
+ * glyphs-widget.c (widget_property): ditto.
+ (widget_set_property): ditto.
+
+ * frame-msw.c (mswindows_set_frame_pointer): SetCursor() as well
+ as setting the class cursor so that GC actually changes the
+ cursor.
+
+ * config.h: don't undef MAIL_USE_POP.
+
+1998-12-13 Andy Piper <andy@xemacs.org>
+
+ * glyphs-msw.c
+ (image_instantiator_format_create_glyphs_mswindows): line ->
+ label.
+ (mswindows_label_instantiate): ditto. Play with window flags.
+ (image_instantiator_format_create_glyphs_mswindows): ditto.
+ (vars_of_glyphs_mswindows): provide Qlabel as we support it now.
+
+ * glyphs-widget.c (widget_instantiate_1): re-jig autosizing to
+ cope with lines and labels.
+ (static_instantiate): use widget_instantiate_1.
+ line -> label.
+ (image_instantiator_format_create_glyphs_widget): ditto.
+
+1998-12-10 Andy Piper <andy@xemacs.org>
+
+ * Makefile.in.in (objs): add gui.o
+
+1998-12-10 Andy Piper <andy@xemacs.org>
+
+ * gui.c: adjust defines of HAVE_POPUPS so that we can build with
+ no window system.
+
+1998-12-09 Andy Piper <andy@xemacs.org>
+
+ * glyphs.c (finalize_image_instance): mark glyphs changed when an
+ image instance is removed so that the subwindow cache gets reset
+ and thus destroyed images get GC'd.
+
+1998-12-08 Andy Piper <andy@xemacs.org>
+
+ * gui-msw.c (mswindows_handle_gui_wm_command): call
+ MARK_SUBWINDOWS_CHANGED.
+
+ * glyphs-msw.c (mswindows_finalize_image_instance): make sure
+ subwindows really get deleted.
+
+ * redisplay.c: new variable subwindows_changed[_set].
+ (redisplay_window): use it.
+ (redisplay_frame): ditto.
+ (redisplay_device): ditto.
+ (redisplay_without_hooks): ditto.
+
+ * device.h (MARK_DEVICE_SUBWINDOWS_CHANGED): new macro for
+ subwindows redisplay as per glyphs equivalent.
+ * redisplay.h: ditto.
+ (MARK_SUBWINDOWS_CHANGED): ditto.
+ (RESET_CHANGED_SET_FLAGS): ditto.
+ * frame.h (MARK_FRAME_SUBWINDOWS_CHANGED): ditto.
+
+1998-12-07 Andy Piper <andy@xemacs.org>
+
+ * frame.c (Fmake_frame): reset subwindow cachels on non-stream
+ frames.
+
+ * redisplay.c (redisplay_frame): invalidate subwindow cachels.
+
+ * event-msw.c (mswindows_wnd_proc): catch the various WM_CTLCOLOR*
+ messages and paint widget glyphs as appropriate with their face fg
+ & bg.
+
+1998-12-06 Andy Piper <andy@xemacs.org>
+
+ * glyphs-msw.c (vars_of_glyphs_mswindows): provide widget types
+ here rather than in glyphs-widget - do this because we only want
+ to provide what is really available.
+
+ * glyphs.c (Fimage_instance_property): new function to get the
+ properties of image instances. wires through to console specific
+ methods and then to widget specific methods.
+ (Fset_image_instance_property): ditto but for setting widget properties.
+ (check_valid_face): make extern so that it can be used elsewhere.
+
+ * glyphs-widget.c (widget_property): new function. gets the
+ properties of widgets in general and wires the function through to
+ widget specific ones.
+ (widget_set_property): ditto but for setting widget properties.
+
+ * glyphs-msw.c (mswindows_combo_instantiate): Add functionality to
+ add items to the list. Play with window styles a bit to get the
+ desired effect.
+ (mswindows_widget_property): break out specific widget properties.
+ (mswindows_button_property): new function. gets the checked state
+ of a button.
+ (mswindows_combo_property): new function. gets the current
+ selection in the combo box.
+ (mswindows_widget_set_property): new function. sets specific
+ properties of specific widgets.
+
+ * glyphs-widget.c (check_valid_item_list): new function. check
+ that items for a combo-box are just a list of strings.
+ (combo_validate): new function. check there is an item list.
+ (widget_instantiate_1): new function. renamed from
+ widget_instantiate so that we can do slightly different things for
+ other widgets.
+ (widget_instantiate): call widget_instantiate_1.
+ (combo_instantiate): new function to instantiate combo boxes,
+ defaults height to the pixel height of the number of items in the
+ box.
+ (syms_of_glyphs_widget): move widget keywords here.
+ (image_instantiator_format_create_glyphs_widget): use new combo
+ functions.
+
+1998-12-04 Andy Piper <andy@xemacs.org>
+
+ * event-msw.c (mswindows_wnd_proc): mule-ize.
+
+ * glyphs.c (pixmap_to_lisp_data): mule-ize.
+
+ * glyphs-msw.c (extract_xpm_color_names): mule-ize.
+ (resource_name_to_resource): ditto.
+ (mswindows_resource_instantiate): ditto.
+ (mswindows_widget_instantiate): ditto.
+ (mswindows_widget_set_property): ditto.
+
+ * redisplay-output.c (redisplay_output_subwindow): don't show
+ subwindows if they are obscured at the edge of the frame, emacs
+ gets into some sort of redisplay loop otherwise.
+
+ * gui.h: prototype gui_item_selected_p.
+
+ * gui.c (gui_item_selected_p): new function to determine the
+ selected state of a gui_item.
+
+ * frame.h (struct frame): add subwindows_changed flag.
+
+ * redisplay.c (redisplay_frame): call update_frame_subwindows ().
+
+ * glyphs.c (update_subwindow): new function to update a
+ subwindow's state.
+ (update_frame_subwindows): new function to update all the
+ subwindows on a frame.
+
+ * console.h (struct console_methods): add update_subwindow.
+
+ * glyphs-msw.c (mswindows_widget_property): return selected state
+ for selected property.
+ (mswindows_update_subwindow): new function. updates widget glyphs
+ in redisplay as per menubars or toolbars e.g. selected state.
+ (console_type_create_glyphs_mswindows): add update_subwindow.
+
+1998-12-03 Andy Piper <andy@xemacs.org>
+
+ * console-tty.c (syms_of_console_tty): MULE -> FILE_CODING since
+ tty coding system things are such.
+
+ * glyphs-widget.c (widget_face_font_info): new function for
+ pulling out height and width metrics for a widget's face.
+ (widget_text_to_pixel_conversion): calculate pixel sizes of text
+ for widgets.
+
+ * event-msw.c (mswindows_drain_windows_queue): translate messages
+ that are destined for subwindows. This makes edit fields interact
+ with the keyboard correctly.
+ nuke warnings by #ifndef'ing out stuff not required by msg select().
+
+ * glyphs.h (INITIALIZE_IMAGE_INSTANTIATOR_FORMAT_NO_SYM): new
+ macro defining the iiforma without the symbol required by widget.
+ (INITIALIZE_IMAGE_INSTANTIATOR_FORMAT): use it.
+
+ * general.c (syms_of_general): add Qwidget, Qselected.
+
+ * faces.c (complex_vars_of_faces): add widget face inheriting from
+ gui-element face.
+
+1998-11-09 Andy Piper <andy@xemacs.org>
+
+ * window.h (struct window): add a cache of subwindows on a
+ per-window basis.
+
+ * window.c (mark_window): mark the subwindow_instance_cache.
+ (allocate_window): initialise the subwindow instance_cache.
+
+ * toolbar-x.c (x_output_toolbar): call redisplay_clear_region
+ instead of the devmeth.
+ (x_clear_toolbar): ditto.
+
+ * redisplay-x.c (x_output_display_block): call
+ redisplay_output_subwindow for subwindows and widgets.
+
+ * redisplay-tty.c (tty_output_display_block): add IMAGE_WIDGET to
+ types to do nothing for.
+
+ * lisp.h: declare new widget/subwindow symbols.
+
+ * glyphs.c (image_instantiate): cache subwindows on a per-window
+ basis.
+ (subwindow_possible_dest_types): new function for subwindow dest
+ types.
+ (subwindow_instantiate): generic instantiation of a
+ subwindow. specialised by device multi-methods.
+ (Fsubwindowp): moved from glyphs-x.c. adapted for glyph-based
+ subwindows.
+ (Fimage_instance_subwindow_id): ditto.
+ (Fresize_subwindow): ditto.
+ (Fforce_subwindow_map): ditto.
+
+ * glyphs-x.c (x_print_image_instance): remove subwindow
+ stuff. Handled genrically in glyphs.c.
+ (x_image_instance_equal): ditto.
+ (x_image_instance_hash): ditto.
+ (x_finalize_image_instance): delete subwindows when required.
+ (mark_subwindow) (print_subwindow) (finalize_subwindow)
+ (subwindow_hash) (Fmake_subwindow): deleted because of new,
+ glyph-based, subwindow implementation.
+ (Fsubwindow_height) (Fsubwindow_width) (Fsubwindow_xid): aliased
+ in glyphs.el
+ (Fsubwindowp) (Fresize_subwindow) (Fforce_subwindow_map): moved to
+ glyphs.c.
+ (x_unmap_subwindow): new function to unmap X subwindows.
+ (x_map_subwindow): new function to map X subwindows.
+ (x_subwindow_instantiate): new function to instantiate X
+ subwindows.
+ (x_resize_subwindow): new function to resize X subwindows.
+ (console_type_create_glyphs_x): add subwindow functions.
+ (image_instantiator_format_create_glyphs_x): add device
+ multi-methods for xpm, xbm and subwindow.
+
+ * glyphs.el (subwindow-xid): old alias for new subwindow functions.
+ (subwindow-width): ditto.
+ (subwindow-height): ditto.
+
+ * glyphs-msw.c (mswindows_widget_instantiate): new function for
+ generally instantiating ms subwindows. Used by
+ mswindows_*_instantiate.
+ (mswindows_edit_instantiate): instantiate an edit field on a
+ mswindows frame.
+
+1998-11-04 Andy Piper <andy@xemacs.org>
+
+ * symsinit.h: declare new functions.
+
+ * redisplay.h: declare new functions.
+
+ * redisplay-x.c (x_output_display_block): call
+ redisplay_clear_region rather than x_clear_region.
+ (x_output_string): ditto.
+ (x_output_pixmap): ditto.
+ (x_clear_to_window_end): ditto.
+ (x_output_eol_cursor): ditto.
+ (x_clear_region): only do X specific things. other duties handled
+ in redisplay_clear_region.
+
+ * redisplay-tty.c (tty_clear_region): do tty specific things - some
+ duties moved to redisplay_clear_region.
+
+ * redisplay-output.c (clear_left_border): use
+ redisplay_clear_region instead of device method.
+ (clear_right_border): ditto.
+ (output_display_line): ditto.
+ (redisplay_output_subwindow): ditto.
+ (redisplay_clear_top_of_window): ditto.
+ (redisplay_clear_region): perform duties previously handled by
+ device methods. call the appropriate device method at the
+ end. unmap subwindows if necessary.
+
+ * redisplay-msw.c (mswindows_output_string): use
+ redisplay_clear_region instead of mswindows_clear_region.
+ (mswindows_clear_to_window_end): ditto.
+ (mswindows_output_display_block): output subwindows when required.
+ (mswindows_clear_region): only do mswindows specific things,
+ everything else is now handled in redisplay_clear_region.
+
+ * gui.h: add item id hash defines and declare function prototypes.
+
+ * gui.c (mark_gui_item): new function for marking gui_items.
+ (gui_item_hash): generic hash function for generating command ids
+ for gui_items.
+
+ * gui-msw.c: new file.
+ (mswindows_handle_gui_wm_command): new function to handle widget
+ callbacks.
+
+ * glyphs.h (MAYBE_IIFORMAT_DEVMETH): new function for device
+ multi-methods.
+ (IIFORMAT_HAS_SHARED_METHOD): ditto.
+ (DEFINE_DEVICE_IIFORMAT): ditto.
+ (INITIALIZE_DEVICE_IIFORMAT): ditto.
+ (struct Lisp_Image_Instance): add widget and subwindow data plus
+ appropriate access functions.
+
+ * glyphs.c (decode_device_ii_format): new function for decoding
+ image instantiator functions based on a device type as well as an
+ image format.
+ (decode_image_instantiator_format): just call
+ decode_device_ii_format with nil device.
+ (add_entry_to_device_ii_format_list): new function for per device
+ method instances.
+ (add_entry_to_image_instantiator_format_list): just call
+ add_entry_to_device_ii_format_list with nil device.
+ (check_valid_vector): new function.
+ (instantiate_image_instantiator): instantiate using per-format
+ method and then per-format-per-device method (device
+ multi-methods). signal an error if neither is possible.
+ (mark_image_instance): cope with subwindows and widgets.
+ (print_image_instance): ditto.
+ (image_instance_equal): ditto.
+ (image_instance_hash): ditto.
+ (allocate_glyph): ditto.
+ (glyph_width): ditto.
+ (glyph_height_internal): ditto.
+ (xpm_instantiate): removed because of device multi-methods.
+ (mark_subwindow_cachels): new cachel functions for caching
+ instantiated subwindows on a per-frame basis. mostly copied from
+ glyph cachel functions.
+ (update_subwindow_cachel_data): ditto.
+ (add_subwindow_cachel): ditto.
+ (get_subwindow_cachel_index): ditto.
+ (reset_subwindow_cachels): ditto.
+ (mark_subwindow_cachels_as_not_updated): ditto.
+ (unmap_subwindow): generic unmapping of subwindows based on cachel
+ data.
+ (map_subwindow): ditto.
+ (initialize_subwindow_image_instance): generic initialisation of
+ subwindow data.
+ (syms_of_glyphs): add widget keywords.
+
+ * glyphs-x.h (struct x_subwindow_data): convert Lisp_Subwindow to
+ x_subwindow_data.
+
+1998-11-04 Andy Piper <andy@xemacs.org>
+
+ * glyphs-widget.c: new file for instantiating widget type glyphs.
+ (widget_possible_dest_types): new general dest type function for
+ widgets.
+ (widget_validate): ditto.
+ (initialize_widget_image_instance): ditto
+ (widget_instantiate): ditto. Sets up fg/bg, gui_item parsing
+ before handing on control to device multi-methods.
+ (syms_of_glyphs_widget): new function.
+ (image_instantiator_format_create_glyphs_widget): new function,
+ added placeholders for button, edit, combo, scrollbar
+ (vars_of_glyphs_widget): new function.
+
+ * glyphs-msw.h (WIDGET_INSTANCE_MSWINDOWS_HANDLE): new define for
+ storing window ids of widgets.
+
+ * glyphs-msw.c (mswindows_finalize_image_instance): cope with
+ deletion of widget and subwindow glyphs.
+ (mswindows_unmap_subwindow): new device function for unmapping
+ subwindows on a msw frame.
+ (mswindows_map_subwindow): ditto.
+ (mswindows_register_image_instance): register instantiated widgets
+ with the widget hastable.
+ (mswindows_button_instantiate): instantiate a button type widget
+ on an msw frame.
+ (mswindows_subwindow_instantiate): instanttiate a subwindow on a
+ mswindows frame.
+ (image_instantiator_format_create_glyphs_mswindows): add device
+ multi-methods for xbm, xpm, subwindow, edit and button.
+
+ * frame.h (struct frame): add subwindow_cachels dynarr for caching
+ information about subwindows visible on the current frame. used by
+ redisplay_clear_region to unmap subwindows as required.
+
+ * frame.c (mark_frame): mark subwindow_cachels.
+ (allocate_frame_core): instantiate subwindow_cachels.
+
+ * frame-msw.c (mswindows_init_frame_1): instntiate and mark the
+ widget hashtable.
+
+ * event-msw.c (mswindows_wnd_proc): add call to
+ mswindows_handle_gui_wm_command to handle widget callbacks.
+
+ * emacs.c (main_1): add calls to glyphs-widget initialisation
+ routines.
+
+ * console.h (struct console_methods): add
+ unmap/map_subwindow_method for use be redisplay_clear_region to
+ map and unmap subwindows. Remove xpm and xbm stuff - now dealt
+ with by image instantiator multi-methods. Add
+ resize_subwindow_method.
+
+ * console-stream.c (stream_clear_region): change signature to
+ match new generic clear region function.
+
+ * Makefile.in.in: add glyphs-widget.o to list of objects.
+
+ * console-msw.h (struct mswindows_frame): add widget hashtable for
+ wiring command ids to callbacks.
+
1998-12-16 Andy Piper <andy@xemacs.org>
* XEmacs 21.2.6 is released
- Don't use variable name `new'.
- Use size_t instead of EMACS_INT.
- usual Martin-style pointless bit-twiddling.
-
- * fns.c (mapcar1):
- (Fmapconcat):
- (Fmapcar):
- (Fmapvector):
+
+ * fns.c (mapcar1):
+ (Fmapconcat):
+ (Fmapcar):
+ (Fmapvector):
Make mapcar faster. In particular, make
(mapc #'identity long-string)
MUCH faster under Mule.
1998-12-06 Martin Buchholz <martin@xemacs.org>
- * bytecode.c (Ffetch_bytecode): Fix crash when loading lazy-loaded
+ * bytecode.c (Ffetch_bytecode): Fix crash when loading lazy-loaded
bytecode.
1998-12-13 Martin Buchholz <martin@xemacs.org>
1998-12-11 Martin Buchholz <martin@xemacs.org>
- * events.h (struct timeout_data):
- * event-tty.c (tty_timeout_to_emacs_event):
- * event-msw.c (mswindows_wm_timer_callback):
- * event-Xt.c (Xt_timeout_to_emacs_event):
+ * events.h (struct timeout_data):
+ * event-tty.c (tty_timeout_to_emacs_event):
+ * event-msw.c (mswindows_wm_timer_callback):
+ * event-Xt.c (Xt_timeout_to_emacs_event):
* event-msw.c (mswindows_cancel_dispatch_event):
Make sure Lisp_Objects inside events are initialized to Qnil, not
Qnull_pointer, which is now illegal.
1998-12-07 Martin Buchholz <martin@xemacs.org>
* opaque.h:
- * console-msw.c (DHEADER):
- (DOPAQUE_DATA):
- (DEVENT):
- (DCONS):
- (DCONSCDR):
- (DSTRING):
- (DVECTOR):
- (DSYMBOL):
- (DSYMNAME):
+ * console-msw.c (DHEADER):
+ (DOPAQUE_DATA):
+ (DEVENT):
+ (DCONS):
+ (DCONSCDR):
+ (DSTRING):
+ (DVECTOR):
+ (DSYMBOL):
+ (DSYMNAME):
- max_align_t should not be visible to the user of the
XOPAQUE_DATA macro.
- use Bufbyte instead of char
1998-12-07 Martin Buchholz <martin@xemacs.org>
- * sysdep.c (set_descriptor_non_blocking):
+ * sysdep.c (set_descriptor_non_blocking):
Since O_NONBLOCK is now always #defined, make use of fcntl
conditional on F_SETFL being defined.
* windowsnt.h: Remove `support' for using index and rindex
- * filelock.c (current_lock_owner):
+ * filelock.c (current_lock_owner):
- Change uses of index -> strchr, rindex -> strrchr
1998-12-06 Martin Buchholz <martin@xemacs.org>
- rewrite basic lisp functions for speed
- rewrite bytecode interpreter for speed
- rewrite list looping constructs for speed and safety using
- tortoise/hare.
+ tortoise/hare.
- use size_t where appropriate.
- new hashtable implementation
- cleanup implementation of opaques
- use O_RDONLY and O_RDWR instead of magic `0' and `2'.
- define (and maybe use!) STDERR_FILENO and friends.
- add support for macros defined in C
- - `when', `unless', `not' and `defalias' now defined in C,
+ - `when', `unless', `not' and `defalias' now defined in C,
so that they are universally available.
- rename defvar_mumble to defvar_magic
- rename RETURN__ to RETURN_SANS_WARNINGS
1998-11-27 Hrvoje Niksic <hniksic@srce.hr>
- * dired.c (make_directory_hash_table): make_string() is OK because
+ * dired.c (make_directory_hash_table): make_string() is OK because
readdir() Mule-encapsulates.
1998-11-26 Hrvoje Niksic <hniksic@srce.hr>
1998-11-25 Hrvoje Niksic <hniksic@srce.hr>
- * editfns.c (Ftranslate_region): Accept vectors and char-tables as
+ * editfns.c (Ftranslate_region): Accept vectors and char-tables as
well as strings.
(Ftranslate_region): Turn table into an array of Emchars for
larger regions.
* process-unix.c (unix_create_process): handle properly
Vfile_name_coding_system for converting the program and directory
- names.
+ names.
1998-11-27 SL Baur <steve@altair.xemacs.org>
* fns.c (free_malloced_ptr): New function.
(XMALLOC_OR_ALLOCA): New macro.
(XMALLOC_UNBIND): Ditto.
- (Fbase64_encode_region): Use malloc() for large blocks; arrange it
+ (Fbase64_encode_region): Use malloc() for large blocks; arrange it
to be freed in case of non-local exit.
(Fbase64_encode_string): Ditto.
(Fbase64_decode_region): Ditto.
1998-10-07 Jonathan Harris <jhar@tardis.ed.ac.uk>
- * scrollbar-msw.c: Use the same vertical scrollbar drag hack as
+ * scrollbar-msw.c: Use the same vertical scrollbar drag hack as
is used for Motif or Lucid scrollbars under X.
1998-10-08 Pierre Wendling <pw@ebc.vbe.dec.com>
mswindows_enumerate_fonts() function in objects-msw.c instead
of font_enum_callback_1() to enumerate fonts.
- font_enum_callback_1() and _2() moved to objects-msw.c.
+ font_enum_callback_1() and _2() moved to objects-msw.c.
- * faces.c (complex_vars_of_faces): Make the mswindows default
+ * faces.c (complex_vars_of_faces): Make the mswindows default
face font fully specified and provide some fallbacks.
* objects-msw.c: font_enum_callback_1() and _2() moved here
sig_enable_code_end() since they are now redundant.
send_signal() and enable_child_signals(): Don't try to work
- out the end of the code fragments passed to
+ out the end of the code fragments passed to
run_in_other_process()
1998-09-10 Kazuyuki IENAGA <ienaga@jsys.co.jp>
* filelock.c: Replaced by version from FSF 20.2. Now implements
locking by using symlinks which is NFS safe. However keep the
- GCPRO's in lock_file and the calls to callx_in_buffer like our old
+ GCPRO's in lock_file and the calls to callx_in_buffer like our old
version (and of course use ansi C, acessor macros, etc).
1998-09-06 Jan Vroonhof <vroonhof@math.ethz.ch>
* process-unix.c (unix_create_process): Reset SIGHUP handler to
SIG_DFL. We now try to conserve any inherted SIG_IGN settings
- in init_signals_very_early. However these should not be passed
+ in init_signals_very_early. However these should not be passed
on to children attached to the new pty.
1998-08-28 Andy Piper <andyp@parallax.co.uk>
1998-09-07 Jonathan Harris <jhar@tardis.ed.ac.uk>
* fileio.c (file-name-directory, file_name_as_directory):
- Don't call CORRECT_DIR_SEPS, even when #defined WINDOWSNT.
+ Don't call CORRECT_DIR_SEPS, even when #defined WINDOWSNT.
1998-09-02 Andy Piper <andyp@parallax.co.uk>
* frame-x.c (x_delete_frame): Flush the X output buffer after
calling XtDestroyWidget to ensure that the windows are really
- killed right now.
+ killed right now.
1998-08-26 Hrvoje Niksic <hniksic@srce.hr>
all the buffers.
(buffer_delete_range): Ditto.
- * marker.c (init_buffer_markers): Set point-marker to the value of
+ * marker.c (init_buffer_markers): Set point-marker to the value of
point in an indirect buffer.
1998-08-30 Hrvoje Niksic <hniksic@srce.hr>
1998-08-07 Matt Stupple <matts@tibco.com>
- * ntproc.c: don't wait on char_consumed at thread entry.
+ * ntproc.c: don't wait on char_consumed at thread entry.
Additionally, to get the 'process' marked as finished, ensure
that the CHILD_ACTIVE macro returns false, so before exiting
close char_avail and set it to NULL, and close other handles
1998-07-20 Martin Buchholz <martin@xemacs.org>
- * casefiddle.c (casify_object):
+ * casefiddle.c (casify_object):
Change algorithm from O(N**2) to O(N).
Code cleanup.
Doc string cleanup.
1998-07-16 Jan Vroonhof <vroonhof@math.ethz.ch>
* event-Xt.c (x_to_emacs_keysym): Return nil for modifier keysyms.
- (x_event_to_emacs_event): Let x_to_emacs_keysym check for modifier
+ (x_event_to_emacs_event): Let x_to_emacs_keysym check for modifier
keys thus no longer considering all keysyms on a key.
1998-07-19 SL Baur <steve@altair.xemacs.org>
* eval.c (run_hook_with_args_in_buffer): Check
default (non-buffer-local) value of hook for
- nil before treating it as a function. Don't initialize
+ nil before treating it as a function. Don't initialize
the `globals' variable twice.
1998-06-24 Jonathan Harris <jhar@tardis.ed.ac.uk>
* eval.c (run_hook_with_args_in_buffer): Don't treat
the default value of a buffer local hook as a list of
- hooks unless it is both a cons and the car of that cons
+ hooks unless it is both a cons and the car of that cons
is not Qlambda.
1998-06-29 SL Baur <steve@altair.xemacs.org>
* winslots.h: Rename.
* window.c (specifier_vars_of_window): Renamed
- vertical-divider-draggable-p to vertical-divider-always-visible-p,
+ vertical-divider-draggable-p to vertical-divider-always-visible-p,
as suggested by Ben Wing.
(specifier_vars_of_window): Fix docstrings.
Set last_known_column_point to the buffer position for
which the column was requested, not buffer's point.
- * redisplay.c (decode_mode_spec): for current-column, show
+ * redisplay.c (decode_mode_spec): for current-column, show
window's point's column, not buffer's point's column.
1998-06-23 Andy Piper <andyp@parallax.co.uk>
mswindows_size_frame_internal function and size frame if frame
parameters not just if init is finished - WM_SIZE happens too
early for some specs. (mswindows_size_frame_internal): new
- function abstracted from mswindows_set_frame_properties.
+ function abstracted from mswindows_set_frame_properties.
(Vmswindows_use_system_frame_size_defaults):
new variable controls whether to allow the system to pick frame
size defaults, defaults to nil.
1998-06-05 Hrvoje Niksic <hniksic@srce.hr>
- * eldap.c (Fldap_search_internal): Use build_ext_string instead of
+ * eldap.c (Fldap_search_internal): Use build_ext_string instead of
build_string to avoid crashes under Mule.
1998-06-13 Andy Piper <andyp@parallax.co.uk>
* glyphs-msw.c (read_bitmap_data) (NextInt)
(read_bitmap_data_from_file): new functions copied from Xmu
- sources.
+ sources.
(xbm_create_bitmap_from_data) from Ben <ben@666.com> convert
inline data to an mswindows bitmap.
(init_image_instance_from_xbm_inline) (xbm_instantiate_1)
Added prototype for mswindows_enqueue_misc_user_event().
* menubar-msw.c (mswindows_handle_wm_command): Use
- mswindows_enqueue_misc_user_event().
+ mswindows_enqueue_misc_user_event().
* toolbar-msw.c (mswindows_handle_toolbar_wm_command): Ditto.
1998-05-29 Greg Klanderman <greg@alphatech.com>
* window.c (Fwindow_displayed_text_pixel_height): was relying on
- incorrect semantics of vmotion_pixels which has been fixed. don't
+ incorrect semantics of vmotion_pixels which has been fixed. don't
use it anymore as it can't easily be used.
* indent.c (vmotion_pixels): fix off by one bug moving up. also
- the motion was reported incorrectly if you tried to go past end of
+ the motion was reported incorrectly if you tried to go past end of
buffer.
1998-05-30 Kirill M. Katsnelson <kkm@kis.ru>
1998-05-28 Martin Buchholz <martin@xemacs.org>
- * alloc.c (dbg_constants):
+ * alloc.c (dbg_constants):
* dbxrc:
* gdbinit:
Remove toolbar_data debugging code, since that lrecord has
- also been removed.
+ also been removed.
Wed May 27, 1998 Darryl Okahata <darrylo@sr.hp.com>
* fileio.c: replaced egetenv("HOME") with calls to the new
get_home_directory().
- * lisp.h: Added function prototypes for uncache_home_directory()
+ * lisp.h: Added function prototypes for uncache_home_directory()
and get_home_directory(), along with lisp prototypes for
Fuser_home_directory() and friends.
* event-msw.c (mswindows_wnd_proc, WM_KEYDOWN): Unconditionally
remove MOD_SHIFT from ASCII characters.
- (mswindows_wnd_proc, WM_KEYDOWN): Do not activate the menubar when
+ (mswindows_wnd_proc, WM_KEYDOWN): Do not activate the menubar when
F10 is pressed.
1998-05-24 Oliver Graf <ograf@fga.de>
(syms_of_indent): DEFSUBR.
* lisp.h: declaration for vmotion_pixels().
- * indent.c (Fvertical_motion): Add optional third argument PIXELS,
+ * indent.c (Fvertical_motion): Add optional third argument PIXELS,
to request returning motion in pixels.
(Fvertical_motion_pixels): Remove, functionality merged into
- Fvertical_motion.
+ Fvertical_motion.
* window.c (window_scroll): call Fvertical_motion with 3 arguments.
(Fmove_to_window_line): ditto.
* lisp.h: Change declaration for Fvertical_motion.
Tooltalk_Message_plist_str and Tooltalk_Pattern_plist_str
1998-05-27 Andy Piper <andyp@parallax.co.uk>
-
+
* faces.c: create a new 3d_object_face, make modeline and
vertical_divider faces fallback to this rather than the default.
* This patch is to fix compilation warnings under Windows.
* s/windowsnt.h: Encapsulate getpid with sys_getpid.
- Added prototypes for FSF inherited functions, with which XEmacs is
+ Added prototypes for FSF inherited functions, with which XEmacs is
sprinkled thoroughly.
- Removed some #if 0 code. Bracketed some more definitions, probably
+ Removed some #if 0 code. Bracketed some more definitions, probably
related to Visual C versions prior to 4 (we do not support them).
* sysfloat.h (logb): Finally, get logb() prototyped.
vars_of_dired_mswindows and init_ntproc (Grrr).
* realpath.c: Added Windows specific include files.
- (xrealpath): Conditionalized declaration of some auto variables on
+ (xrealpath): Conditionalized declaration of some auto variables on
S_IFLNK, to avoid warnings.
- * ntproc.c: Disabled some compiler warnings. This file is going to
+ * ntproc.c: Disabled some compiler warnings. This file is going to
die, so I have not cleaned it up much.
(set_process_dir): Const parameter.
(Fwin32_short_file_name): Down CHECK_* macros to one argument.
* symsinit.h: Prototyped the above functions.
- * dialog-x.c (x_popup_dialog_box): Moved dialog descriptor consistency
+ * dialog-x.c (x_popup_dialog_box): Moved dialog descriptor consistency
checks to dialog.c...
* dialog.c (Fpopup_dialog_box): ...right here. Added more checks: a
* EmacsFrame.c (Xt_StringToScrollBarPlacement): Added support for
{top,bottom}-{left,right} values in addition to
- {top,bottom}_{left,right}.
+ {top,bottom}_{left,right}.
1998-05-18 Hrvoje Niksic <hniksic@srce.hr>
1998-05-19 Martin Buchholz <martin@xemacs.org>
- * unexhp9k800.c:
- * sound.c (vars_of_sound):
- * sysdep.c (reset_sigio_on_device):
- * window.c (window_bottom_gutter_height):
+ * unexhp9k800.c:
+ * sound.c (vars_of_sound):
+ * sysdep.c (reset_sigio_on_device):
+ * window.c (window_bottom_gutter_height):
unexhp9k800.c:258: warning: implicit declaration of function
`calculate_checksum'
sound.c:604: warning: implicit declaration of function `vars_of_hpplay'
* frame-x.c (x_update_frame_external_traits): Start preprocessor
directives in column 1.
- * search.c (skip_chars): Avoid using xzero with arrays, since some
+ * search.c (skip_chars): Avoid using xzero with arrays, since some
compilers get confused by the construct &array.
1998-05-18 Kirill M. Katsnelson <kkm@kis.ru>
1998-05-18 Kirill M. Katsnelson <kkm@kis.ru>
* objects-msw.c (mswindows_initialize_font_instance): Use ANSI
- charset when creating font.
+ charset when creating font.
(mswindows_initialize_color_instance): Do not create brush along
with a color.
(mswindows_finalize_color_instance): Do not delete it then.
(compute_frame_toolbars_data): Removed unused second parameter;
Adjusted callers of this static function throughout the file.
(init_frame_toolbars): Initialize current_toolbar_size.
- (update_frame_toolbars): Use DEVICE_SUPPORTS_TOOLBARS_P instead of
+ (update_frame_toolbars): Use DEVICE_SUPPORTS_TOOLBARS_P instead of
what is its current expansion, for clarity.
(init_frame_toolbars): Ditto.
(init_device_toolbars): Ditto.
* emacs.c (main_1): Call syms_of_process_nt()
- * process-nt.c: Quote process arguments by a call to Lisp function
+ * process-nt.c: Quote process arguments by a call to Lisp function
`nt-quote-process-args'.
(syms_of_process_nt): New function.
(nt_send_process): Flush data stream after each write, to avoid
1998-05-17 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
- * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new unexaix.c.
+ * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new unexaix.c.
* s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
* bufslots.h: Removed buffer_file_type slot.
- * buffer.c (complex_vars_of_buffer): Removed buffer_file_type from
+ * buffer.c (complex_vars_of_buffer): Removed buffer_file_type from
buffer local flags.
(complex_vars_of_buffer): Removed buffer-file-type variable and
its default reference.
(x_divider_width): ditto.
* window.c (specifier_vars_of_window): new specifiers:
- vertical-divier -line-width and -spacing.
+ vertical-divier -line-width and -spacing.
(vertical_divider_global_width_changed): formerly known as
- vertical_divider_shadow_thickness_changed.
+ vertical_divider_shadow_thickness_changed.
* winslots.h: new slots: vertical_specifier _line_width and
_spacing. Plus corrected a comment typo.
(console_type_create_stream): And declaration for it.
* redisplay.c (pixel_to_glyph_translation): Use
- window_divider_width() instead of divider_width redisplay method.
+ window_divider_width() instead of divider_width redisplay method.
(pixel_to_glyph_translation): Fix top divider edge calculation
when scrollbar is on top.
(specifier_vars_of_window): For vertical-divider-{spacing,line-width}
specifiers, set fallback values differently on TTYs, and document
the behavior of these on TTYs in the docstrings.
-
+
* scrollbar.c (update_scrollbar_instance): Use
window_divider_width() instead of divider_width redisplay method.
* emacs.c (main_1): Call console_type_create_dialog_x().
- * dialog-x.c (x_popup_dialog_box): Old Fpopup_dialog_box converted
+ * dialog-x.c (x_popup_dialog_box): Old Fpopup_dialog_box converted
into this device method.
(console_type_create_dialog_x): New function.
(syms_of_dialog): Defsubr it.
* console.h (struct console_methods): Declared
- popup_dialog_box_method().
+ popup_dialog_box_method().
* symsinit.h: Defined console_type_create_dialog_{x,mswindows}
** Renamed window-divider-map => vertical-divider-map
and event-over-divider-p => event-over-vertical-divider-p,
in the following files/functions:
- * events.h:
- * events.c (Fevent_over_divider_p):
- * keymap.c (get_relevant_keymaps):
- (vars_of_keymap):
+ * events.h:
+ * events.c (Fevent_over_divider_p):
+ * keymap.c (get_relevant_keymaps):
+ (vars_of_keymap):
* redisplay.h (OVER_V_DIVIDER): Renamed so from OVER_DIVIDER.
* window.h: Prototype invalidate_vertical_divider_cache_in_window.
(struct window): Added need_vertical_divider_p and
- need_vertical_divider_valid_p.
+ need_vertical_divider_valid_p.
* winslots.h: Added vertical_divider_draggable_p slot.
thickness is negative.
* console-stream.c (stream_divider_width): pass a struct window *
- argument.
+ argument.
* redisplay-tty.c (tty_divider_width): ditto.
* redisplay.c (generate_modeline): ittod.
* scrollbar.c (update_scrollbar_instance): ttido.
-
- * redisplay-msw.c (mswindows_divider_width): ottid.
+
+ * redisplay-msw.c (mswindows_divider_width): ottid.
WARNING: this enables to compile, but the feature is not functional.
* window.h (struct window): new field
- vertical_divider_shadow_thickness.
+ vertical_divider_shadow_thickness.
* window.c (specifier_vars_of_window): new specifier
vertical-divider-shadow-thickness.
1998-05-10 Andy Piper <andyp@parallax.co.uk>
* redisplay-msw.c (mswindows_output_dibitmap_region): make sure
- multiple bitmaps are output vertically as well as horizontally.
+ multiple bitmaps are output vertically as well as horizontally.
* (mswindows_output_dibitmap): don't cope with bitmap boundaries
crossing lines this is handled by
mswindows_output_dibitmap_region.
* inline.c: Include eldap.h
- * menubar-x.c (x_update_frame_menubar_internal):
+ * menubar-x.c (x_update_frame_menubar_internal):
Remove: unused variable `container'
1998-05-11 Martin Buchholz <martin@xemacs.org>
* s/aix4.h: Allow AIX 4.3 XEmacs to compile cleanly.
Unfortunately, the resulting temacs still cannot dump.
- * symbols.c (symbol_is_constant):
- (verify_ok_for_buffer_local):
+ * symbols.c (symbol_is_constant):
+ (verify_ok_for_buffer_local):
-Wswitch Warning suppression - add default case to switches.
* redisplay.c (decode_mode_spec): Remove unused variables,
1998-05-12 Didier Verna <verna@inf.enst.fr>
* redisplay.c: removed the scrolling modeline code that didn't
- make it for 21.0. To be continued ...
+ make it for 21.0. To be continued ...
1998-05-13 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
(mswindows_output_vertical_divider): Always output the divider on
the right side of a window, down to bottom.
- * keymap.c (get_relevant_keymaps): Route mouse button events which
+ * keymap.c (get_relevant_keymaps): Route mouse button events which
happened over a window divider through window-divider-map.
(Fkey_binding): Documented that in the docstring.
Defined the variable Vwindow_divider_map.
(metrics); Changed parameters order and added DEFAULT parameter;
Unabbreviated some metric constants; Fixed and untabified doc string.
(Fdevice_system_metrics): Added. Returns a plist of all provided
- metrics.
+ metrics.
* device-msw.c (mswindows_device_system_metrics): Renamed
device_metrics enum constants.