diff options
| author | Eli Zaretskii | 2016-04-30 13:45:33 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2016-04-30 13:45:33 +0300 |
| commit | ccdaf04cfdaa42fb85d456274405cce32ee9f5d4 (patch) | |
| tree | 631c59e4dad1db81cca00edeaa721ae8c0e522e5 /src | |
| parent | ffe701cb07cfb3584c4e4894976f0c9487d02c59 (diff) | |
| download | emacs-ccdaf04cfdaa42fb85d456274405cce32ee9f5d4.tar.gz emacs-ccdaf04cfdaa42fb85d456274405cce32ee9f5d4.zip | |
Fix the MSDOS build
* config.bat:
* msdos/sedlisp.inp:
* msdos/sedlibmk.inp:
* msdos/sedleim.inp:
* msdos/sedadmin.inp:
* msdos/sed6.inp:
* msdos/sed3v2.inp:
* msdos/sed2v2.inp:
* msdos/sed1v2.inp: Adapt to Emacs 25.
* src/process.c (remove_slash_colon): Move out of "#ifdef
subprocesses" block, as it its called unconditionally. Move
ADD_SUBFEATURE calls into "#ifdef subprocesses" block, as they
reference variables only defined in that block.
* src/msdos.h: Provide prototypes for IT_set_frame_parameters,
faccessat, msdos_fatal_signal, syms_of_msdos, pthread_sigmask,
dos_keysns, dos_keyread, run_msdos_command, and
syms_of_win16select, to avoid compiler warnings.
* src/msdos.c (SYS_ENVIRON): Define to either '_environ' or
'environ', depending on the DJGPP version.
Remove declarations of externally-visible Lisp objects, like
Qbackground_color and Qreverse.
(run_msdos_command): First argument is not signed, not unsigned.
Use SYS_ENVIRON.
(sys_select): Use 'timespec_cmp' instead of 'timespec_sign', as
the latter doesn't work when 'time_t' is an unsigned data type.
This caused idle timers to behave incorrectly: they only fired
after a keyboard input event.
* src/frame.c (adjust_frame_size) [MSDOS]: Account for
FRAME_TOP_MARGIN that isn't counted in the frame's number of
lines, but dos_set_window_size needs it to be added.
* src/lread.c (INFINITY, NAN) [DJGPP < 2.05]: Provide definitions.
* src/fns.c (sort_vector_copy) [__GNUC__ < 4]: Provide a prototype
that works around compilation errors with older GCC versions.
* src/w16select.c: Don't declare QCLIPBOARD and QPRIMARY as Lisp
Objects.
* src/filelock.c [MSDOS]: Ifdef away most of the code. Provide
no-op implementations for 'lock_file' and 'unlock_file'.
(Ffile_locked_p) [MSDOS]: Always return nil. This avoids multiple
ifdefs in all users of filelock.c functionality.
* src/conf_post.h (EOVERFLOW, SIZE_MAX) [DJGPP < 2.04]: Define.
* src/emacs.c [MSDOS]: Include dosfns.h, to avoid compiler
warnings.
* src/dosfns.h: Provide prototypes for dos_cleanup,
syms_of_dosfns, and init_dosfns.
* src/deps.mk (atimer.o): Depend on msdos.h.
(emacs.o): Depend on dosfns.h.
* src/atimer.c [MSDOS]: Include msdos.h, to avoid compiler
warnings.
* lisp/window.el (window--adjust-process-windows): Skip the body
if 'process-list' is not available. This avoids failure to start
up on MS-DOS.
* lisp/vc/diff.el (diff-no-select): Test 'make-process', not
'start-process', as the latter is now available on all platforms.
* lisp/textmodes/ispell.el (ispell-async-processp): Replace
'start-process' with 'make-process' in a comment.
* lisp/term/internal.el (IT-unicode-translations): Modify and add
a few translations to display Info files with Unicode markup. Fix
an ancient off-by-one mismatch error with Unicode codepoints.
* lisp/progmodes/compile.el (compilation-start): Test
'make-process', not 'start-process', as the latter is now
available on all platforms.
* lisp/man.el (Man-build-man-command, Man-getpage-in-background):
Test 'make-process', not 'start-process', as the latter is now
available on all platforms.
* lisp/international/mule-cmds.el (set-coding-system-map): Test
'make-process', not 'start-process', as the latter is now
available on all platforms.
* lisp/eshell/esh-cmd.el (eshell-do-pipelines-synchronously): Doc
fix.
(eshell-execute-pipeline): Test 'make-process', not
'start-process', as the latter is now available on all platforms.
Diffstat (limited to 'src')
| -rw-r--r-- | src/atimer.c | 4 | ||||
| -rw-r--r-- | src/conf_post.h | 3 | ||||
| -rw-r--r-- | src/deps.mk | 4 | ||||
| -rw-r--r-- | src/dosfns.h | 4 | ||||
| -rw-r--r-- | src/emacs.c | 1 | ||||
| -rw-r--r-- | src/filelock.c | 19 | ||||
| -rw-r--r-- | src/fns.c | 5 | ||||
| -rw-r--r-- | src/frame.c | 11 | ||||
| -rw-r--r-- | src/lread.c | 4 | ||||
| -rw-r--r-- | src/msdos.c | 36 | ||||
| -rw-r--r-- | src/msdos.h | 14 | ||||
| -rw-r--r-- | src/process.c | 39 | ||||
| -rw-r--r-- | src/w16select.c | 5 |
13 files changed, 102 insertions, 47 deletions
diff --git a/src/atimer.c b/src/atimer.c index 70d9bf52bc2..64c9e8ab6cb 100644 --- a/src/atimer.c +++ b/src/atimer.c | |||
| @@ -30,6 +30,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 30 | # include <sys/timerfd.h> | 30 | # include <sys/timerfd.h> |
| 31 | #endif | 31 | #endif |
| 32 | 32 | ||
| 33 | #ifdef MSDOS | ||
| 34 | #include "msdos.h" | ||
| 35 | #endif | ||
| 36 | |||
| 33 | /* Free-list of atimer structures. */ | 37 | /* Free-list of atimer structures. */ |
| 34 | 38 | ||
| 35 | static struct atimer *free_atimers; | 39 | static struct atimer *free_atimers; |
diff --git a/src/conf_post.h b/src/conf_post.h index d0f04b63700..209f60792cf 100644 --- a/src/conf_post.h +++ b/src/conf_post.h | |||
| @@ -145,6 +145,9 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ | |||
| 145 | # define HAVE_LSTAT 1 | 145 | # define HAVE_LSTAT 1 |
| 146 | #else | 146 | #else |
| 147 | # define lstat stat | 147 | # define lstat stat |
| 148 | /* DJGPP 2.03 and older don't have the next two. */ | ||
| 149 | # define EOVERFLOW ERANGE | ||
| 150 | # define SIZE_MAX 4294967295U | ||
| 148 | #endif | 151 | #endif |
| 149 | 152 | ||
| 150 | /* We must intercept 'opendir' calls to stash away the directory name, | 153 | /* We must intercept 'opendir' calls to stash away the directory name, |
diff --git a/src/deps.mk b/src/deps.mk index 0295e705a9c..72f68cabfc3 100644 --- a/src/deps.mk +++ b/src/deps.mk | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | ### Code: | 35 | ### Code: |
| 36 | 36 | ||
| 37 | atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \ | 37 | atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \ |
| 38 | globals.h ../lib/unistd.h $(config_h) | 38 | globals.h ../lib/unistd.h msdos.h $(config_h) |
| 39 | bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \ | 39 | bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \ |
| 40 | globals.h $(config_h) | 40 | globals.h $(config_h) |
| 41 | buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \ | 41 | buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \ |
| @@ -92,7 +92,7 @@ editfns.o: editfns.c window.h buffer.h systime.h $(INTERVALS_H) character.h \ | |||
| 92 | emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \ | 92 | emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \ |
| 93 | termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) lisp.h $(config_h) \ | 93 | termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) lisp.h $(config_h) \ |
| 94 | globals.h ../lib/unistd.h window.h dispextern.h keyboard.h keymap.h \ | 94 | globals.h ../lib/unistd.h window.h dispextern.h keyboard.h keymap.h \ |
| 95 | frame.h coding.h gnutls.h msdos.h unexec.h | 95 | frame.h coding.h gnutls.h msdos.h dosfns.h unexec.h |
| 96 | fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \ | 96 | fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \ |
| 97 | coding.h msdos.h blockinput.h atimer.h lisp.h $(config_h) frame.h \ | 97 | coding.h msdos.h blockinput.h atimer.h lisp.h $(config_h) frame.h \ |
| 98 | commands.h globals.h ../lib/unistd.h | 98 | commands.h globals.h ../lib/unistd.h |
diff --git a/src/dosfns.h b/src/dosfns.h index 9fbf7eda192..849fb91a7af 100644 --- a/src/dosfns.h +++ b/src/dosfns.h | |||
| @@ -24,6 +24,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 24 | extern unsigned char dos_country_info[DOS_COUNTRY_INFO]; | 24 | extern unsigned char dos_country_info[DOS_COUNTRY_INFO]; |
| 25 | extern int dos_memory_info (unsigned long *, unsigned long *, | 25 | extern int dos_memory_info (unsigned long *, unsigned long *, |
| 26 | unsigned long *, unsigned long *); | 26 | unsigned long *, unsigned long *); |
| 27 | void dos_cleanup (void); | ||
| 28 | void syms_of_dosfns (void); | ||
| 29 | void init_dosfns (void); | ||
| 30 | |||
| 27 | #ifndef HAVE_X_WINDOWS | 31 | #ifndef HAVE_X_WINDOWS |
| 28 | extern int msdos_stdcolor_idx (const char *); | 32 | extern int msdos_stdcolor_idx (const char *); |
| 29 | extern Lisp_Object msdos_stdcolor_name (int); | 33 | extern Lisp_Object msdos_stdcolor_name (int); |
diff --git a/src/emacs.c b/src/emacs.c index d1d649dfcfd..5c187e76ba1 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -54,6 +54,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 54 | 54 | ||
| 55 | #ifdef MSDOS | 55 | #ifdef MSDOS |
| 56 | #include <binary-io.h> | 56 | #include <binary-io.h> |
| 57 | #include "dosfns.h" | ||
| 57 | #endif | 58 | #endif |
| 58 | 59 | ||
| 59 | #ifdef HAVE_WINDOW_SYSTEM | 60 | #ifdef HAVE_WINDOW_SYSTEM |
diff --git a/src/filelock.c b/src/filelock.c index bc3a6209a8d..8aaa656438d 100644 --- a/src/filelock.c +++ b/src/filelock.c | |||
| @@ -53,6 +53,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 53 | #include "w32.h" /* for dostounix_filename */ | 53 | #include "w32.h" /* for dostounix_filename */ |
| 54 | #endif | 54 | #endif |
| 55 | 55 | ||
| 56 | #ifndef MSDOS | ||
| 57 | |||
| 56 | #ifdef HAVE_UTMP_H | 58 | #ifdef HAVE_UTMP_H |
| 57 | #include <utmp.h> | 59 | #include <utmp.h> |
| 58 | #endif | 60 | #endif |
| @@ -742,6 +744,19 @@ unlock_file (Lisp_Object fn) | |||
| 742 | SAFE_FREE (); | 744 | SAFE_FREE (); |
| 743 | } | 745 | } |
| 744 | 746 | ||
| 747 | #else /* MSDOS */ | ||
| 748 | void | ||
| 749 | lock_file (Lisp_Object fn) | ||
| 750 | { | ||
| 751 | } | ||
| 752 | |||
| 753 | void | ||
| 754 | unlock_file (Lisp_Object fn) | ||
| 755 | { | ||
| 756 | } | ||
| 757 | |||
| 758 | #endif /* MSDOS */ | ||
| 759 | |||
| 745 | void | 760 | void |
| 746 | unlock_all_files (void) | 761 | unlock_all_files (void) |
| 747 | { | 762 | { |
| @@ -805,6 +820,9 @@ The value is nil if the FILENAME is not locked, | |||
| 805 | t if it is locked by you, else a string saying which user has locked it. */) | 820 | t if it is locked by you, else a string saying which user has locked it. */) |
| 806 | (Lisp_Object filename) | 821 | (Lisp_Object filename) |
| 807 | { | 822 | { |
| 823 | #ifdef MSDOS | ||
| 824 | return Qnil; | ||
| 825 | #else | ||
| 808 | Lisp_Object ret; | 826 | Lisp_Object ret; |
| 809 | char *lfname; | 827 | char *lfname; |
| 810 | int owner; | 828 | int owner; |
| @@ -825,6 +843,7 @@ t if it is locked by you, else a string saying which user has locked it. */) | |||
| 825 | 843 | ||
| 826 | SAFE_FREE (); | 844 | SAFE_FREE (); |
| 827 | return ret; | 845 | return ret; |
| 846 | #endif | ||
| 828 | } | 847 | } |
| 829 | 848 | ||
| 830 | void | 849 | void |
| @@ -32,8 +32,13 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 32 | #include "intervals.h" | 32 | #include "intervals.h" |
| 33 | #include "window.h" | 33 | #include "window.h" |
| 34 | 34 | ||
| 35 | #if __GNUC__ >= 4 | ||
| 35 | static void sort_vector_copy (Lisp_Object, ptrdiff_t, | 36 | static void sort_vector_copy (Lisp_Object, ptrdiff_t, |
| 36 | Lisp_Object [restrict], Lisp_Object [restrict]); | 37 | Lisp_Object [restrict], Lisp_Object [restrict]); |
| 38 | #else | ||
| 39 | static void sort_vector_copy (Lisp_Object, ptrdiff_t, | ||
| 40 | Lisp_Object [], Lisp_Object []); | ||
| 41 | #endif | ||
| 37 | static bool internal_equal (Lisp_Object, Lisp_Object, int, bool, Lisp_Object); | 42 | static bool internal_equal (Lisp_Object, Lisp_Object, int, bool, Lisp_Object); |
| 38 | 43 | ||
| 39 | DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, | 44 | DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, |
diff --git a/src/frame.c b/src/frame.c index 53ff05965c1..00f25f7e911 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -509,10 +509,13 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, | |||
| 509 | block_input (); | 509 | block_input (); |
| 510 | 510 | ||
| 511 | #ifdef MSDOS | 511 | #ifdef MSDOS |
| 512 | /* We only can set screen dimensions to certain values supported | 512 | /* We only can set screen dimensions to certain values supported by |
| 513 | by our video hardware. Try to find the smallest size greater | 513 | our video hardware. Try to find the smallest size greater or |
| 514 | or equal to the requested dimensions. */ | 514 | equal to the requested dimensions, while accounting for the fact |
| 515 | dos_set_window_size (&new_lines, &new_cols); | 515 | that the menu-bar lines are not counted in the frame height. */ |
| 516 | int dos_new_lines = new_lines + FRAME_TOP_MARGIN (f); | ||
| 517 | dos_set_window_size (&dos_new_lines, &new_cols); | ||
| 518 | new_lines = dos_new_lines - FRAME_TOP_MARGIN (f); | ||
| 516 | #endif | 519 | #endif |
| 517 | 520 | ||
| 518 | if (new_windows_width != old_windows_width) | 521 | if (new_windows_width != old_windows_width) |
diff --git a/src/lread.c b/src/lread.c index 91469230b7e..d374406e7b9 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -46,6 +46,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 46 | 46 | ||
| 47 | #ifdef MSDOS | 47 | #ifdef MSDOS |
| 48 | #include "msdos.h" | 48 | #include "msdos.h" |
| 49 | #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 5 | ||
| 50 | # define INFINITY __builtin_inf() | ||
| 51 | # define NAN __builtin_nan("") | ||
| 52 | #endif | ||
| 49 | #endif | 53 | #endif |
| 50 | 54 | ||
| 51 | #ifdef HAVE_NS | 55 | #ifdef HAVE_NS |
diff --git a/src/msdos.c b/src/msdos.c index 84e8c39ec0c..62411ea2f6d 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -59,6 +59,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 59 | #include <libc/dosio.h> /* for _USE_LFN */ | 59 | #include <libc/dosio.h> /* for _USE_LFN */ |
| 60 | #include <conio.h> /* for cputs */ | 60 | #include <conio.h> /* for cputs */ |
| 61 | 61 | ||
| 62 | #if (__DJGPP__ + (__DJGPP_MINOR__ > 3)) >= 3 | ||
| 63 | #define SYS_ENVIRON _environ | ||
| 64 | #else | ||
| 65 | #define SYS_ENVIRON environ | ||
| 66 | #endif | ||
| 67 | |||
| 62 | #include "msdos.h" | 68 | #include "msdos.h" |
| 63 | #include "systime.h" | 69 | #include "systime.h" |
| 64 | #include "frame.h" | 70 | #include "frame.h" |
| @@ -422,8 +428,6 @@ static unsigned long screen_old_address = 0; | |||
| 422 | /* Segment and offset of the virtual screen. If 0, DOS/V is NOT loaded. */ | 428 | /* Segment and offset of the virtual screen. If 0, DOS/V is NOT loaded. */ |
| 423 | static unsigned short screen_virtual_segment = 0; | 429 | static unsigned short screen_virtual_segment = 0; |
| 424 | static unsigned short screen_virtual_offset = 0; | 430 | static unsigned short screen_virtual_offset = 0; |
| 425 | extern Lisp_Object Qcursor_type; | ||
| 426 | extern Lisp_Object Qbar, Qhbar; | ||
| 427 | 431 | ||
| 428 | /* The screen colors of the current frame, which serve as the default | 432 | /* The screen colors of the current frame, which serve as the default |
| 429 | colors for newly-created frames. */ | 433 | colors for newly-created frames. */ |
| @@ -1384,11 +1388,6 @@ IT_delete_glyphs (struct frame *f, int n) | |||
| 1384 | 1388 | ||
| 1385 | /* This was copied from xfaces.c */ | 1389 | /* This was copied from xfaces.c */ |
| 1386 | 1390 | ||
| 1387 | extern Lisp_Object Qbackground_color; | ||
| 1388 | extern Lisp_Object Qforeground_color; | ||
| 1389 | Lisp_Object Qreverse; | ||
| 1390 | extern Lisp_Object Qtitle; | ||
| 1391 | |||
| 1392 | /* IT_set_terminal_modes is called when emacs is started, | 1391 | /* IT_set_terminal_modes is called when emacs is started, |
| 1393 | resumed, and whenever the screen is redrawn! */ | 1392 | resumed, and whenever the screen is redrawn! */ |
| 1394 | 1393 | ||
| @@ -3710,7 +3709,7 @@ dos_ttcooked (void) | |||
| 3710 | file TEMPOUT and stderr to TEMPERR. */ | 3709 | file TEMPOUT and stderr to TEMPERR. */ |
| 3711 | 3710 | ||
| 3712 | int | 3711 | int |
| 3713 | run_msdos_command (unsigned char **argv, const char *working_dir, | 3712 | run_msdos_command (char **argv, const char *working_dir, |
| 3714 | int tempin, int tempout, int temperr, char **envv) | 3713 | int tempin, int tempout, int temperr, char **envv) |
| 3715 | { | 3714 | { |
| 3716 | char *saveargv1, *saveargv2, *lowcase_argv0, *pa, *pl; | 3715 | char *saveargv1, *saveargv2, *lowcase_argv0, *pa, *pl; |
| @@ -3796,8 +3795,8 @@ run_msdos_command (unsigned char **argv, const char *working_dir, | |||
| 3796 | ; | 3795 | ; |
| 3797 | if (*cmnd) | 3796 | if (*cmnd) |
| 3798 | { | 3797 | { |
| 3799 | extern char **environ; | 3798 | extern char **SYS_ENVIRON; |
| 3800 | char **save_env = environ; | 3799 | char **save_env = SYS_ENVIRON; |
| 3801 | int save_system_flags = __system_flags; | 3800 | int save_system_flags = __system_flags; |
| 3802 | 3801 | ||
| 3803 | /* Request the most powerful version of `system'. We need | 3802 | /* Request the most powerful version of `system'. We need |
| @@ -3809,16 +3808,16 @@ run_msdos_command (unsigned char **argv, const char *working_dir, | |||
| 3809 | | __system_handle_null_commands | 3808 | | __system_handle_null_commands |
| 3810 | | __system_emulate_chdir); | 3809 | | __system_emulate_chdir); |
| 3811 | 3810 | ||
| 3812 | environ = envv; | 3811 | SYS_ENVIRON = envv; |
| 3813 | result = system (cmnd); | 3812 | result = system (cmnd); |
| 3814 | __system_flags = save_system_flags; | 3813 | __system_flags = save_system_flags; |
| 3815 | environ = save_env; | 3814 | SYS_ENVIRON = save_env; |
| 3816 | } | 3815 | } |
| 3817 | else | 3816 | else |
| 3818 | result = 0; /* emulate Unixy shell behavior with empty cmd line */ | 3817 | result = 0; /* emulate Unixy shell behavior with empty cmd line */ |
| 3819 | } | 3818 | } |
| 3820 | else | 3819 | else |
| 3821 | result = spawnve (P_WAIT, argv[0], (char **)argv, envv); | 3820 | result = spawnve (P_WAIT, argv[0], argv, envv); |
| 3822 | 3821 | ||
| 3823 | dup2 (inbak, 0); | 3822 | dup2 (inbak, 0); |
| 3824 | dup2 (outbak, 1); | 3823 | dup2 (outbak, 1); |
| @@ -4085,11 +4084,14 @@ sys_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds, | |||
| 4085 | gettime (&t); | 4084 | gettime (&t); |
| 4086 | clnow = make_timespec (t.tv_sec, t.tv_nsec); | 4085 | clnow = make_timespec (t.tv_sec, t.tv_nsec); |
| 4087 | cldiff = timespec_sub (clnow, cllast); | 4086 | cldiff = timespec_sub (clnow, cllast); |
| 4087 | /* Stop when timeout value is about to cross zero. */ | ||
| 4088 | if (timespec_cmp (*timeout, cldiff) <= 0) | ||
| 4089 | { | ||
| 4090 | timeout->tv_sec = 0; | ||
| 4091 | timeout->tv_nsec = 0; | ||
| 4092 | return 0; | ||
| 4093 | } | ||
| 4088 | *timeout = timespec_sub (*timeout, cldiff); | 4094 | *timeout = timespec_sub (*timeout, cldiff); |
| 4089 | |||
| 4090 | /* Stop when timeout value crosses zero. */ | ||
| 4091 | if (timespec_sign (*timeout) <= 0) | ||
| 4092 | return 0; | ||
| 4093 | cllast = clnow; | 4095 | cllast = clnow; |
| 4094 | dos_yield_time_slice (); | 4096 | dos_yield_time_slice (); |
| 4095 | } | 4097 | } |
diff --git a/src/msdos.h b/src/msdos.h index 863ca486e8d..0c3ba2bfa16 100644 --- a/src/msdos.h +++ b/src/msdos.h | |||
| @@ -41,8 +41,12 @@ void mouse_on (void); | |||
| 41 | void mouse_off (void); | 41 | void mouse_off (void); |
| 42 | void mouse_moveto (int, int); | 42 | void mouse_moveto (int, int); |
| 43 | 43 | ||
| 44 | void IT_set_frame_parameters (struct frame *, Lisp_Object); | ||
| 45 | |||
| 44 | #include <sys/types.h> | 46 | #include <sys/types.h> |
| 45 | #include <sys/stat.h> | 47 | #include <sys/stat.h> |
| 48 | #include <pc.h> | ||
| 49 | #include <signal.h> | ||
| 46 | 50 | ||
| 47 | #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4 | 51 | #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4 |
| 48 | int readlink (const char *, char *, size_t); | 52 | int readlink (const char *, char *, size_t); |
| @@ -50,6 +54,16 @@ int readlink (const char *, char *, size_t); | |||
| 50 | ssize_t readlinkat (int, const char *, char *, size_t); | 54 | ssize_t readlinkat (int, const char *, char *, size_t); |
| 51 | int fstatat (int, char const *, struct stat *, int); | 55 | int fstatat (int, char const *, struct stat *, int); |
| 52 | int unsetenv (const char *); | 56 | int unsetenv (const char *); |
| 57 | int faccessat (int, const char *, int, int); | ||
| 58 | void msdos_fatal_signal (int); | ||
| 59 | void syms_of_msdos (void); | ||
| 60 | int pthread_sigmask (int, const sigset_t *, sigset_t *); | ||
| 61 | int dos_keysns (void); | ||
| 62 | int dos_keyread (void); | ||
| 63 | int run_msdos_command (char **, const char *, int, int, int, char **); | ||
| 64 | |||
| 65 | void syms_of_win16select (void); | ||
| 66 | |||
| 53 | 67 | ||
| 54 | /* Constants. */ | 68 | /* Constants. */ |
| 55 | #define EINPROGRESS 112 | 69 | #define EINPROGRESS 112 |
diff --git a/src/process.c b/src/process.c index dd508836f79..2c758a4c9a7 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -4085,19 +4085,6 @@ Data that is unavailable is returned as nil. */) | |||
| 4085 | #endif | 4085 | #endif |
| 4086 | } | 4086 | } |
| 4087 | 4087 | ||
| 4088 | /* If program file NAME starts with /: for quoting a magic | ||
| 4089 | name, remove that, preserving the multibyteness of NAME. */ | ||
| 4090 | |||
| 4091 | Lisp_Object | ||
| 4092 | remove_slash_colon (Lisp_Object name) | ||
| 4093 | { | ||
| 4094 | return | ||
| 4095 | ((SBYTES (name) > 2 && SREF (name, 0) == '/' && SREF (name, 1) == ':') | ||
| 4096 | ? make_specified_string (SSDATA (name) + 2, SCHARS (name) - 2, | ||
| 4097 | SBYTES (name) - 2, STRING_MULTIBYTE (name)) | ||
| 4098 | : name); | ||
| 4099 | } | ||
| 4100 | |||
| 4101 | /* Turn off input and output for process PROC. */ | 4088 | /* Turn off input and output for process PROC. */ |
| 4102 | 4089 | ||
| 4103 | static void | 4090 | static void |
| @@ -7118,6 +7105,19 @@ add_timer_wait_descriptor (int fd) | |||
| 7118 | 7105 | ||
| 7119 | #endif /* HAVE_TIMERFD */ | 7106 | #endif /* HAVE_TIMERFD */ |
| 7120 | 7107 | ||
| 7108 | /* If program file NAME starts with /: for quoting a magic | ||
| 7109 | name, remove that, preserving the multibyteness of NAME. */ | ||
| 7110 | |||
| 7111 | Lisp_Object | ||
| 7112 | remove_slash_colon (Lisp_Object name) | ||
| 7113 | { | ||
| 7114 | return | ||
| 7115 | ((SBYTES (name) > 2 && SREF (name, 0) == '/' && SREF (name, 1) == ':') | ||
| 7116 | ? make_specified_string (SSDATA (name) + 2, SCHARS (name) - 2, | ||
| 7117 | SBYTES (name) - 2, STRING_MULTIBYTE (name)) | ||
| 7118 | : name); | ||
| 7119 | } | ||
| 7120 | |||
| 7121 | /* Add DESC to the set of keyboard input descriptors. */ | 7121 | /* Add DESC to the set of keyboard input descriptors. */ |
| 7122 | 7122 | ||
| 7123 | void | 7123 | void |
| @@ -7643,13 +7643,6 @@ The variable takes effect when `start-process' is called. */); | |||
| 7643 | defsubr (&Sset_process_filter_multibyte); | 7643 | defsubr (&Sset_process_filter_multibyte); |
| 7644 | defsubr (&Sprocess_filter_multibyte_p); | 7644 | defsubr (&Sprocess_filter_multibyte_p); |
| 7645 | 7645 | ||
| 7646 | #endif /* subprocesses */ | ||
| 7647 | |||
| 7648 | defsubr (&Sget_buffer_process); | ||
| 7649 | defsubr (&Sprocess_inherit_coding_system_flag); | ||
| 7650 | defsubr (&Slist_system_processes); | ||
| 7651 | defsubr (&Sprocess_attributes); | ||
| 7652 | |||
| 7653 | { | 7646 | { |
| 7654 | Lisp_Object subfeatures = Qnil; | 7647 | Lisp_Object subfeatures = Qnil; |
| 7655 | const struct socket_options *sopt; | 7648 | const struct socket_options *sopt; |
| @@ -7684,4 +7677,10 @@ The variable takes effect when `start-process' is called. */); | |||
| 7684 | Fprovide (intern_c_string ("make-network-process"), subfeatures); | 7677 | Fprovide (intern_c_string ("make-network-process"), subfeatures); |
| 7685 | } | 7678 | } |
| 7686 | 7679 | ||
| 7680 | #endif /* subprocesses */ | ||
| 7681 | |||
| 7682 | defsubr (&Sget_buffer_process); | ||
| 7683 | defsubr (&Sprocess_inherit_coding_system_flag); | ||
| 7684 | defsubr (&Slist_system_processes); | ||
| 7685 | defsubr (&Sprocess_attributes); | ||
| 7687 | } | 7686 | } |
diff --git a/src/w16select.c b/src/w16select.c index 434a5987893..208cfccf11a 100644 --- a/src/w16select.c +++ b/src/w16select.c | |||
| @@ -65,8 +65,6 @@ unsigned get_clipboard_data (unsigned, void *, unsigned, int); | |||
| 65 | unsigned close_clipboard (void); | 65 | unsigned close_clipboard (void); |
| 66 | unsigned clipboard_compact (unsigned); | 66 | unsigned clipboard_compact (unsigned); |
| 67 | 67 | ||
| 68 | Lisp_Object QCLIPBOARD, QPRIMARY; | ||
| 69 | |||
| 70 | /* The segment address and the size of the buffer in low | 68 | /* The segment address and the size of the buffer in low |
| 71 | memory used to move data between us and WinOldAp module. */ | 69 | memory used to move data between us and WinOldAp module. */ |
| 72 | static struct { | 70 | static struct { |
| @@ -719,8 +717,7 @@ variable is set, it is used for the next communication only. | |||
| 719 | After the communication, this variable is set to nil. */); | 717 | After the communication, this variable is set to nil. */); |
| 720 | Vnext_selection_coding_system = Qnil; | 718 | Vnext_selection_coding_system = Qnil; |
| 721 | 719 | ||
| 722 | QPRIMARY = intern ("PRIMARY"); staticpro (&QPRIMARY); | 720 | DEFSYM (QCLIPBOARD, "CLIPBOARD"); |
| 723 | QCLIPBOARD = intern ("CLIPBOARD"); staticpro (&QCLIPBOARD); | ||
| 724 | } | 721 | } |
| 725 | 722 | ||
| 726 | #endif /* MSDOS */ | 723 | #endif /* MSDOS */ |