view src/msdos.h @ 26847:2f17ea330dae

Include composite.h. (DECODE_CHARACTER_ASCII): Don't handle composition here. (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity of multibyte code here. (DECODE_CHARACTER_DIMENSION2): Likewise. (detect_coding_emacs_mule): Change the case label from EMACS_leading_code_composition to 0x80. (detect_coding_iso2022): Handle new composition sequence. (DECODE_ISO_CHARACTER): Likewise. (check_composing_code): Deleted. (coding_allocate_composition_data): New function. (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END) (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START) (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros. (decode_coding_iso2022): Handle new composition sequence. (ENCODE_ISO_CHARACTER): Don't check composition here. (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros. (ENCODE_COMPOSITION_NO_RULE_START) (ENCODE_COMPOSITION_WITH_RULE_START): Deleted. (ENCODE_COMPOSITION_END): Handle new composition sequence. (ENCODE_COMPOSITION_FAKE_START): New macro. (encode_coding_iso2022): Handle new composition sequence. (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail. (encode_coding_sjis_big5): Ignore composition. (setup_coding_system): Initialize new members of struct coding_system. Enable composition only when the coding system has `composition' property t. (coding_free_composition_data) (coding_adjust_composition_offset) (coding_save_composition) (coding_restore_composition): New functions. (code_convert_region): Call coding_save_composition for encoding and coding_allocate_composition_data for decoding. Don't skip ASCII characters if we handle composition on encoding. Call signal_after_change with Check_BORDER. (code_convert_string): Call coding_save_composition for encoding and coding_allocate_composition_data for decoding. Don't skip ASCII characters if we handle composition on encoding. (code_convert_string1): Set Vlast_coding_system_used after calling code_convert_string. (code_convert_string_norecord): Disable composition. (Fset_terminal_coding_system_internal): Likewise. (Fset_safe_terminal_coding_system_internal): Likewise. (Fset_keyboard_coding_system_internal): Likewise. (init_coding_once): Set emacs_code_class[0x80] to EMACS_invalid_code.
author Kenichi Handa <handa@m17n.org>
date Wed, 15 Dec 1999 00:06:45 +0000
parents f5dded41adcc
children c56e0e887ba4
line wrap: on
line source

/* MS-DOS specific C utilities, interface.
   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 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.  */

#ifndef _MSDOS_H_
#define _MSDOS_H_

#include <dpmi.h>

int dos_ttraw ();
int dos_ttcooked ();
int dos_get_saved_screen (char **, int *, int *);
int dos_set_keyboard (int, int);
void dos_set_window_size (int *, int *);

int getdefdir (int, char*);
void unixtodos_filename (char *);
void dostounix_filename (char *);
char *rootrelativepath (char *);
void init_environment ();
void internal_terminal_init ();
void ctrl_break_func (_go32_dpmi_registers *);
void install_ctrl_break_check ();

extern int have_mouse;
void mouse_init ();
void mouse_on ();
void mouse_off ();
void mouse_moveto (int, int);

#ifndef HAVE_X_WINDOWS
/* Dummy types.  */
typedef int XFontStruct;
typedef int GC;
typedef int Pixmap;
typedef int Display;
typedef int Window;
typedef int XRectangle;
#define PIX_TYPE int
#define XDISPLAY

/* This is a cut-down version of the one in xterm.h, which see.  */
struct x_output
{
  int left_pos;			/* used in xmenu_show (xmenu.c) */
  int top_pos;			/* ditto */
  int line_height;		/* used in x-popup-menu (xmenu.c) */
  PIX_TYPE background_pixel;	/* used in xfaces.c and lots of other places */
  PIX_TYPE foreground_pixel;	/* ditto */
  XFontStruct *font;		/* used in x-popup-menu (xmenu.c) */
  Window busy_window;		/* currently unused (but maybe some day) */
  unsigned busy_p : 1;		/* ditto */
};

extern struct x_output the_only_x_display;

#define FRAME_X_DISPLAY(f) ((Display *) 0)
#define FRAME_FOREGROUND_PIXEL(f) (the_only_x_display.foreground_pixel)
#define FRAME_BACKGROUND_PIXEL(f) (the_only_x_display.background_pixel)
#define FRAME_FONT(f) (the_only_x_display.font)

/* Prototypes.  */

/* Forward declarations for prototypes.  */
struct frame;
struct window;

/* From xterm.c; emulated on msdos.c */

extern void pixel_to_glyph_coords P_ ((struct frame *f, int pix_x, int pix_y,
				       int *x, int *y, XRectangle *bounds,
				       int noclip));
extern void glyph_to_pixel_coords P_ ((struct frame *f, int x, int y,
				       int *pix_x, int *pix_y));

/* Defined in xfns.c; emulated on msdos.c */

extern int have_menus_p P_ ((void));
extern void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
extern int x_pixel_width P_ ((struct frame *));
extern int x_pixel_height P_ ((struct frame *));

#define XFreeGC (void)
#define x_destroy_bitmap(p1,p2)
#define load_pixmap(p1,p2,p3,p4) (0)
#define XGetGeometry(p1,p2,p3,p4,p5,p6,p7,p8,p9)
#define DisplayWidth(p1,p2) (SELECTED_FRAME()->width)
#define DisplayHeight(p1,p2) (SELECTED_FRAME()->height)
#define XMenuSetAEQ (void)
#define XMenuSetFreeze (void)
#define XMenuRecompute (void)
#define FONT_WIDTH(foo) 1
#define XM_FAILURE -1
#define XM_SUCCESS 1
#define XM_NO_SELECT 2
#define XM_IA_SELECT 3
#define ButtonReleaseMask 0

typedef struct x_menu_struct
{
  int count;
  char **text;
  struct x_menu_struct **submenu;
  int *panenumber; /* Also used as enable.  */
  int allocated;
  int panecount;
  int width;
} XMenu;

XMenu *XMenuCreate (Display *, Window, char *);
int XMenuAddPane (Display *, XMenu *, char *, int);
int XMenuAddSelection (Display *, XMenu *, int, int, char *, int);
void XMenuLocate (Display *, XMenu *, int, int, int, int,
		  int *, int *, int *, int *);
int XMenuActivate (Display *, XMenu *, int *, int *, int, int, unsigned, char **);
void XMenuDestroy (Display *, XMenu *);

#endif /* not HAVE_X_WINDOWS */

#endif /* not _MSDOS_H_ */