changeset 15077:e6464ccca756

(getdefdir) [DJGPP > 1]: Use 32-bit ESI to pass buffer address to `intdos' instead of SI which can be 16-bit.
author Richard M. Stallman <rms@gnu.org>
date Fri, 26 Apr 1996 11:56:25 +0000
parents 5e9132ff1d88
children a295c26b5d67
files src/msdos.c
diffstat 1 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/msdos.c	Fri Apr 26 03:03:28 1996 +0000
+++ b/src/msdos.c	Fri Apr 26 11:56:25 1996 +0000
@@ -2093,7 +2093,14 @@
 
   *dst++ = '/';
   regs.h.dl = drive;
+#if __DJGPP__ > 1
+  /* regs.x.si can be 16 or 32 bits, depending on whether _NAIVE_DOS_REGS
+     or _BORLAND_DOS_REGS have or haven't been defined.  We should work
+     with either, so use regs.d.esi which is always 32 bit-wide.  */
+  regs.d.esi = (int) dst;
+#else
   regs.x.si = (int) dst;
+#endif
   regs.h.ah = 0x47;
   intdos (&regs, &regs);
   return !regs.x.cflag;