root/src/msdos.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


     1 /* MS-DOS specific C utilities, interface.
     2    Copyright (C) 1993, 2001-2023 Free Software Foundation, Inc.
     3 
     4 This file is part of GNU Emacs.
     5 
     6 GNU Emacs is free software: you can redistribute it and/or modify
     7 it under the terms of the GNU General Public License as published by
     8 the Free Software Foundation, either version 3 of the License, or (at
     9 your option) any later version.
    10 
    11 GNU Emacs is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
    18 
    19 #ifndef EMACS_MSDOS_H
    20 #define EMACS_MSDOS_H
    21 
    22 #include <dpmi.h>
    23 
    24 #include "termhooks.h"          /* struct terminal */
    25 struct terminal;
    26 
    27 extern unsigned int _dos_commit(int);
    28 #define tcdrain(f) _dos_commit(f)
    29 
    30 int dos_ttraw (struct tty_display_info *);
    31 int dos_ttcooked (void);
    32 int dos_get_saved_screen (char **, int *, int *);
    33 int dos_set_keyboard (int, int);
    34 void dos_set_window_size (int *, int *);
    35 
    36 int getdefdir (int, char*);
    37 void unixtodos_filename (char *);
    38 void dostounix_filename (char *);
    39 char *rootrelativepath (char *);
    40 void init_environment (int, char **, int);
    41 void internal_terminal_init (void);
    42 void initialize_msdos_display (struct terminal *);
    43 
    44 extern int have_mouse;
    45 void mouse_init (void);
    46 void mouse_on (void);
    47 void mouse_off (void);
    48 void mouse_moveto (int, int);
    49 
    50 void IT_set_frame_parameters (struct frame *, Lisp_Object);
    51 
    52 #include <sys/types.h>
    53 #include <sys/stat.h>
    54 #include <pc.h>
    55 #include <signal.h>
    56 
    57 #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
    58 int readlink (const char *, char *, size_t);
    59 #endif
    60 ssize_t readlinkat (int, const char *, char *, size_t);
    61 int fstatat (int, char const *, struct stat *, int);
    62 int unsetenv (const char *);
    63 int faccessat (int, const char *, int, int);
    64 int openat (int, const char *, int, int);
    65 int fchmodat (int, const char *, mode_t, int);
    66 int futimens (int, const struct timespec[2]);
    67 int utimensat (int, const char *, const struct timespec[2], int);
    68 
    69 void msdos_fatal_signal (int);
    70 void syms_of_msdos (void);
    71 int pthread_sigmask (int, const sigset_t *, sigset_t *);
    72 int dos_keysns (void);
    73 int dos_keyread (void);
    74 int run_msdos_command (char **, const char *, int, int, int, char **);
    75 
    76 void syms_of_win16select (void);
    77 
    78 
    79 /* Constants.  */
    80 #define EINPROGRESS 112
    81 #define ENOTSUP     ENOSYS
    82 /* Gnulib sets O_CLOEXEC to O_NOINHERIT, which gets in the way when we
    83    need to redirect standard handles for subprocesses using temporary
    84    files created by mkostemp, see callproc.c.  */
    85 #ifdef O_CLOEXEC
    86 # undef O_CLOEXEC
    87 #endif
    88 #define O_CLOEXEC 0
    89 
    90 
    91 #ifndef HAVE_X_WINDOWS
    92 /* Dummy types.  */
    93 typedef int XFontStruct;
    94 typedef int GC;
    95 typedef int Pixmap;
    96 typedef int Display;
    97 typedef int Window;
    98 
    99 #define FRAME_X_DISPLAY(ignored) NULL
   100 #define PIX_TYPE unsigned long
   101 #define XDISPLAY
   102 
   103 typedef struct tty_display_info Display_Info;
   104 
   105 extern struct tty_display_info the_only_display_info;
   106 extern struct tty_output the_only_tty_output;
   107 
   108 #define FRAME_FONT(f) ((f)->output_data.tty->font)
   109 #define FRAME_DISPLAY_INFO(f) (&the_only_display_info)
   110 
   111 /* Prototypes.  */
   112 
   113 /* Forward declarations for prototypes.  */
   114 struct frame;
   115 struct window;
   116 
   117 /* Defined in xfns.c; emulated on msdos.c */
   118 
   119 extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
   120 
   121 #define XFreeGC (void)
   122 #define x_destroy_bitmap(p1,p2)
   123 #define XGetGeometry(p1,p2,p3,p4,p5,p6,p7,p8,p9)
   124 #define DisplayWidth(p1,p2) (SELECTED_FRAME()->text_cols)
   125 #define DisplayHeight(p1,p2) (SELECTED_FRAME()->text_lines)
   126 #define XMenuSetFreeze (void)
   127 #define XMenuRecompute (void)
   128 #define XM_FAILURE -1
   129 #define XM_SUCCESS 1
   130 #define XM_NO_SELECT 2
   131 #define XM_IA_SELECT 3
   132 #define ButtonReleaseMask 0
   133 
   134 typedef struct x_menu_struct
   135 {
   136   int count;
   137   char **text;
   138   struct x_menu_struct **submenu;
   139   int *panenumber; /* Also used as enable.  */
   140   int allocated;
   141   int panecount;
   142   int width;
   143   const char **help_text;
   144 } XMenu;
   145 
   146 XMenu *XMenuCreate (Display *, Window, char *);
   147 int XMenuAddPane (Display *, XMenu *, char const *, int);
   148 int XMenuAddSelection (Display *, XMenu *, int, int, char *, int, char const *);
   149 void XMenuLocate (Display *, XMenu *, int, int, int, int,
   150                   int *, int *, int *, int *);
   151 int XMenuActivate (Display *, XMenu *, int *, int *, int, int, unsigned,
   152                    char **, void (*callback)(char const *, int, int));
   153 void XMenuDestroy (Display *, XMenu *);
   154 
   155 #endif /* not HAVE_X_WINDOWS */
   156 
   157 #endif /* not EMACS_MSDOS_H */

/* [<][>][^][v][top][bottom][index][help] */