aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2016-04-30 13:45:33 +0300
committerEli Zaretskii2016-04-30 13:45:33 +0300
commitccdaf04cfdaa42fb85d456274405cce32ee9f5d4 (patch)
tree631c59e4dad1db81cca00edeaa721ae8c0e522e5 /src
parentffe701cb07cfb3584c4e4894976f0c9487d02c59 (diff)
downloademacs-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.c4
-rw-r--r--src/conf_post.h3
-rw-r--r--src/deps.mk4
-rw-r--r--src/dosfns.h4
-rw-r--r--src/emacs.c1
-rw-r--r--src/filelock.c19
-rw-r--r--src/fns.c5
-rw-r--r--src/frame.c11
-rw-r--r--src/lread.c4
-rw-r--r--src/msdos.c36
-rw-r--r--src/msdos.h14
-rw-r--r--src/process.c39
-rw-r--r--src/w16select.c5
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
35static struct atimer *free_atimers; 39static 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
37atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \ 37atimer.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)
39bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \ 39bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \
40 globals.h $(config_h) 40 globals.h $(config_h)
41buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \ 41buffer.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 \
92emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \ 92emacs.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
96fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \ 96fileio.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/>. */
24extern unsigned char dos_country_info[DOS_COUNTRY_INFO]; 24extern unsigned char dos_country_info[DOS_COUNTRY_INFO];
25extern int dos_memory_info (unsigned long *, unsigned long *, 25extern int dos_memory_info (unsigned long *, unsigned long *,
26 unsigned long *, unsigned long *); 26 unsigned long *, unsigned long *);
27void dos_cleanup (void);
28void syms_of_dosfns (void);
29void init_dosfns (void);
30
27#ifndef HAVE_X_WINDOWS 31#ifndef HAVE_X_WINDOWS
28extern int msdos_stdcolor_idx (const char *); 32extern int msdos_stdcolor_idx (const char *);
29extern Lisp_Object msdos_stdcolor_name (int); 33extern 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 */
748void
749lock_file (Lisp_Object fn)
750{
751}
752
753void
754unlock_file (Lisp_Object fn)
755{
756}
757
758#endif /* MSDOS */
759
745void 760void
746unlock_all_files (void) 761unlock_all_files (void)
747{ 762{
@@ -805,6 +820,9 @@ The value is nil if the FILENAME is not locked,
805t if it is locked by you, else a string saying which user has locked it. */) 820t 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
830void 849void
diff --git a/src/fns.c b/src/fns.c
index 47ed2d82207..a65863ce0e8 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -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
35static void sort_vector_copy (Lisp_Object, ptrdiff_t, 36static void sort_vector_copy (Lisp_Object, ptrdiff_t,
36 Lisp_Object [restrict], Lisp_Object [restrict]); 37 Lisp_Object [restrict], Lisp_Object [restrict]);
38#else
39static void sort_vector_copy (Lisp_Object, ptrdiff_t,
40 Lisp_Object [], Lisp_Object []);
41#endif
37static bool internal_equal (Lisp_Object, Lisp_Object, int, bool, Lisp_Object); 42static bool internal_equal (Lisp_Object, Lisp_Object, int, bool, Lisp_Object);
38 43
39DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, 44DEFUN ("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. */
423static unsigned short screen_virtual_segment = 0; 429static unsigned short screen_virtual_segment = 0;
424static unsigned short screen_virtual_offset = 0; 430static unsigned short screen_virtual_offset = 0;
425extern Lisp_Object Qcursor_type;
426extern 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
1387extern Lisp_Object Qbackground_color;
1388extern Lisp_Object Qforeground_color;
1389Lisp_Object Qreverse;
1390extern 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
3712int 3711int
3713run_msdos_command (unsigned char **argv, const char *working_dir, 3712run_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);
41void mouse_off (void); 41void mouse_off (void);
42void mouse_moveto (int, int); 42void mouse_moveto (int, int);
43 43
44void 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
48int readlink (const char *, char *, size_t); 52int readlink (const char *, char *, size_t);
@@ -50,6 +54,16 @@ int readlink (const char *, char *, size_t);
50ssize_t readlinkat (int, const char *, char *, size_t); 54ssize_t readlinkat (int, const char *, char *, size_t);
51int fstatat (int, char const *, struct stat *, int); 55int fstatat (int, char const *, struct stat *, int);
52int unsetenv (const char *); 56int unsetenv (const char *);
57int faccessat (int, const char *, int, int);
58void msdos_fatal_signal (int);
59void syms_of_msdos (void);
60int pthread_sigmask (int, const sigset_t *, sigset_t *);
61int dos_keysns (void);
62int dos_keyread (void);
63int run_msdos_command (char **, const char *, int, int, int, char **);
64
65void 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
4091Lisp_Object
4092remove_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
4103static void 4090static 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
7111Lisp_Object
7112remove_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
7123void 7123void
@@ -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);
65unsigned close_clipboard (void); 65unsigned close_clipboard (void);
66unsigned clipboard_compact (unsigned); 66unsigned clipboard_compact (unsigned);
67 67
68Lisp_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. */
72static struct { 70static struct {
@@ -719,8 +717,7 @@ variable is set, it is used for the next communication only.
719After the communication, this variable is set to nil. */); 717After 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 */