Mail Archives: djgpp-workers/2001/12/25/13:17:32
Updated patch (dosexec.c removed for the moment):
Index: djgpp//src/libc/ansi/stdio/doprnt.c
===================================================================
RCS file: /cvs/djgpp/djgpp/src/libc/ansi/stdio/doprnt.c,v
retrieving revision 1.9
diff -p -u -r1.9 doprnt.c
--- djgpp//src/libc/ansi/stdio/doprnt.c 2001/06/09 20:33:22 1.9
+++ djgpp//src/libc/ansi/stdio/doprnt.c 2001/12/25 18:12:43
@@ -35,7 +35,7 @@ static char decimal = '.';
flags&LONGDBL ? va_arg(argp, long long basetype) : \
flags&LONGINT ? va_arg(argp, long basetype) : \
flags&SHORTINT ? (short basetype)va_arg(argp, int) : \
- va_arg(argp, int)
+ (basetype)va_arg(argp, int)
static int nan_p = 0;
Index: djgpp//src/libc/compat/stdlib/fcvtbuf.c
===================================================================
RCS file: /cvs/djgpp/djgpp/src/libc/compat/stdlib/fcvtbuf.c,v
retrieving revision 1.1
diff -p -u -r1.1 fcvtbuf.c
--- djgpp//src/libc/compat/stdlib/fcvtbuf.c 1998/07/25 18:58:44 1.1
+++ djgpp//src/libc/compat/stdlib/fcvtbuf.c 2001/12/25 18:12:44
@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <unistd.h>
#include <float.h>
#include <locale.h>
@@ -27,8 +28,11 @@ fcvtbuf (double value, int ndigits, int
/* Where's the decimal point? */
dot = strchr (s, decimal);
- *decpt = dot ? dot - s : strlen (s);
-
+ if( dot )
+ *decpt = dot - s;
+ else
+ *decpt = strlen (s);
+
/* SunOS docs says if NDIGITS is 8 or more, produce "Infinity"
instead of "Inf". */
if (strncmp (s, "Inf", 3) == 0)
Index: djgpp//src/libc/compat/unistd/_irdlink.c
===================================================================
RCS file: /cvs/djgpp/djgpp/src/libc/compat/unistd/_irdlink.c,v
retrieving revision 1.3
diff -p -u -r1.3 _irdlink.c
--- djgpp//src/libc/compat/unistd/_irdlink.c 2001/06/27 17:42:32 1.3
+++ djgpp//src/libc/compat/unistd/_irdlink.c 2001/12/25 18:12:44
@@ -115,7 +115,8 @@ int __internal_readlink(const char * __p
data_buf = buf + _SYMLINK_PREFIX_LEN;
bytes_read = strchr(data_buf, '\n') - data_buf;
- bytes_read = ((unsigned)bytes_read > __max) ? __max : bytes_read;
+ if( (unsigned)bytes_read > __max )
+ bytes_read = __max;
memcpy(__buf, data_buf, bytes_read);
return bytes_read;
}
Index: djgpp//src/libc/posix/sys/stat/lstat.c
===================================================================
RCS file: /cvs/djgpp/djgpp/src/libc/posix/sys/stat/lstat.c,v
retrieving revision 1.8
diff -p -u -r1.8 lstat.c
--- djgpp//src/libc/posix/sys/stat/lstat.c 2001/12/01 20:22:37 1.8
+++ djgpp//src/libc/posix/sys/stat/lstat.c 2001/12/25 18:12:46
@@ -325,9 +325,20 @@ get_inode_from_sda(const char *mybasenam
unsigned short our_mem_base = _my_ds();
char * dot = strchr(mybasename, '.');
size_t total_len = strlen(mybasename);
- int name_len = dot ? dot - mybasename : total_len;
- int ext_len = dot ? total_len - name_len - 1 : 0;
+ int name_len;
+ int ext_len;
int cluster_offset = offsetof(struct full_dirent, fcluster);
+
+ if( dot )
+ {
+ name_len = dot - mybasename;
+ ext_len = total_len - name_len - 1;
+ }
+ else
+ {
+ name_len = total_len;
+ ext_len = 0;
+ }
/* Restore failure bits set by last call to init_dirent_table(), so
they will be reported as if it were called now. */
- Raw text -