(combine_bytes): New function.
(insert_1_both, insert_from_string_1, insert_from_buffer_1):
Simplify greatly by using combine_bytes near the end
to handle all aspects of combining except for undo-recording.
This means most of the code deals with the text as if there were
no combining.
(replace_range): Likewise. Also handle unibyte-multibyte conversion
as in insert_from_string_1.
(del_range_2): Handle combining of character before the deletion
with strays after the deletion.
(adjust_markers_for_delete): Delete debugging code for Z == Z_BYTE.
(adjust_markers_for_insert): Move Z == Z_BYTE debugging code
to before we relocate the marker.
/* The emacs frame widget private header file. Copyright (C) 1993 Free Software Foundation, Inc.This file is part of GNU Emacs.GNU Emacs is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Emacs; see the file COPYING. If not, write tothe Free Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA. *//* Emacs 19 face widget ported by Fred Pierresteguy */#ifndef _EmacsFrameP_h#define _EmacsFrameP_h#include <X11/IntrinsicP.h>#include <X11/CoreP.h>#include "widget.h"typedef struct { struct frame* frame; /* the *emacs* frame object */ /* Resources that can't be done from lisp. */ char* geometry; /* geometry spec of this frame */ Boolean iconic; /* whether this frame is iconic */ /* The rest of this is crap and should be deleted. */ int minibuffer; /* 0: normal frames with minibuffers. * 1: frames without minibuffers * 2: minibuffer only. */ Boolean unsplittable; /* frame can only have one window */ int internal_border_width; /* internal borders */ int interline; /* skips between lines */ XFontStruct* font; /* font */ Pixel foreground_pixel; /* foreground */ Pixel cursor_color; /* text cursor color */ Boolean bar_cursor; /* 1 if bar, 0 if block */ Boolean visual_bell; /* flash instead of beep */ int bell_volume; /* how loud is beep */ /* private state */} EmacsFramePart;typedef struct _EmacsFrameRec { /* full instance record */ CorePart core; EmacsFramePart emacs_frame;} EmacsFrameRec;typedef struct { /* new fields for EmacsFrame class */ int dummy;} EmacsFrameClassPart;typedef struct _EmacsFrameClassRec { /* full class record declaration */ CoreClassPart core_class; EmacsFrameClassPart emacs_frame_class;} EmacsFrameClassRec;extern EmacsFrameClassRec emacsFrameClassRec; /* class pointer */#endif /* _EmacsFrameP_h */