Submitted By: Jonathan Norman Date: 2009-07-12 Initial Package Version: 1.4.14 Upstream Status: From Upstream Origin: Ben Collins Description: Patch between 1.4.14 tarball and git pull from Thu, 21 Aug 2008 diff -Naur silo-1.4.14/common/printf.c silo-git/common/printf.c --- silo-1.4.14/common/printf.c 2008-06-12 16:39:12.000000000 +0000 +++ silo-git/common/printf.c 2009-07-12 22:17:53.000000000 +0000 @@ -21,6 +21,7 @@ USA. */ #include "promlib.h" +#include /* * This part is rewritten by Igor Timkin . Than I @@ -147,3 +148,91 @@ vprintf (fmt, x1); va_end (x1); } + +static int sprintn (char *str, long long n, int b) +{ + static char prbuf[33]; + register char *cp; + int count = 0; + + if (b == 10 && n < 0) { + memset (str + count, '-', 1); + count++; + n = -n; + } + cp = prbuf; + do + *cp++ = "0123456789ABCDEF"[(unsigned int) (((unsigned long)n) % b)]; + while ((n = ((unsigned long long)n) / b & 0x0FFFFFFFFFFFFFFFULL)); + do { + memset (str + count, *--cp, 1); + count++; + } while (cp > prbuf); + + return count; +} + +int vsprintf (char *str, char *fmt, va_list adx) +{ + register int c; + char *s; + int count = 0; + + for (;;) { + while ((c = *fmt++) != '%') { + memset (str + count, c, 1); + if (c == '\0') { + return count; + } + } + c = *fmt++; + if (c == 'd' || c == 'o' || c == 'x' || c == 'X') { + count += sprintn (str + count, (long long) va_arg (adx, unsigned), + c == 'o' ? 8 : (c == 'd' ? 10 : 16)); + } else if (c == 'c') { + memset (str + count, va_arg (adx, unsigned), 1); + count++; + } else if (c == 's') { + if ((s = va_arg (adx, char *)) == NULL) + s = (char *)"(null)"; + while ((c = *s++)) { + memset (str + count, c, 1); + count++; + } + } else if (c == 'l' || c == 'O') { + count += sprintn (str + count, (long long) va_arg (adx, long), c == 'l' ? 10 : 8); + } else if (c == 'L') { + int hex = 0; + if (*fmt == 'x') { + fmt++; + hex = 1; + } + count += sprintn (str + count, (long long) va_arg (adx, long long), hex ? 16 : 10); + } else { + /* This is basically what libc's printf does */ + memset (str + count, '%', 1); + count++; + memset (str + count, c, 1); + count++; + } + } + + return count; +} + +/* + * Scaled down version of C Library sprintf. + * Only %c %s %d (==%u) %o %x %X %l %O are recognized. + */ + +int sprintf (char *s, char *format, ...) +{ + va_list arg; + int done; + + va_start (arg, format); + done = vsprintf (s, format, arg); + va_end (arg); + + return done; +} diff -Naur silo-1.4.14/include/ext2fs/ext2fs.h silo-git/include/ext2fs/ext2fs.h --- silo-1.4.14/include/ext2fs/ext2fs.h 2008-06-12 16:39:12.000000000 +0000 +++ silo-git/include/ext2fs/ext2fs.h 2009-07-12 22:17:53.000000000 +0000 @@ -39,7 +39,7 @@ */ #define EXT2_LIB_CURRENT_REV 0 -#ifdef HAVE_SYS_TYPES_H +#if defined(HAVE_SYS_TYPES_H) && !defined(_LINUX_TYPES_H) #include #endif diff -Naur silo-1.4.14/include/silo.h silo-git/include/silo.h --- silo-1.4.14/include/silo.h 2008-06-12 16:39:12.000000000 +0000 +++ silo-git/include/silo.h 2009-07-12 22:17:53.000000000 +0000 @@ -87,6 +87,8 @@ void silo_disk_close(void); /* printf.c */ int vprintf (char *, va_list); +int vsprintf (char *str, char *fmt, va_list adx); +int sprintf (char *s, char *format, ...); int putchar (int); /* malloc.c */ void *malloc (int); diff -Naur silo-1.4.14/second/Makefile silo-git/second/Makefile --- silo-1.4.14/second/Makefile 2008-06-12 16:39:12.000000000 +0000 +++ silo-git/second/Makefile 2009-07-12 22:17:53.000000000 +0000 @@ -58,13 +58,13 @@ $(AR) rc $@ $(FS_OBJS) second: $(OBJS) mark.o - $(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) -lext2fs mark.o - $(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) -lext2fs mark.o + $(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) -lext2fs mark.o `$(CC) -print-libgcc-file-name` + $(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) -lext2fs mark.o `$(CC) -print-libgcc-file-name` $(NM) second | grep -v '*ABS*' | sort > second.map silotftp: $(OBJSNET) mark.o - $(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) -lext2fs mark.o - $(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) -lext2fs mark.o + $(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) -lext2fs mark.o `$(CC) -print-libgcc-file-name` + $(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) -lext2fs mark.o `$(CC) -print-libgcc-file-name` $(NM) silotftp | grep -v '*ABS*' | sort > silotftp.map second.l: second diff -Naur silo-1.4.14/second/main.c silo-git/second/main.c --- silo-1.4.14/second/main.c 2008-06-12 16:39:12.000000000 +0000 +++ silo-git/second/main.c 2009-07-12 22:17:53.000000000 +0000 @@ -25,8 +25,7 @@ /* TODO: This file is a good candidate for rewrite from scratch. */ #include -#include -#include +#include #include #ifndef NULL