ALT Linux repositórios
S: | 4.0.43-alt1 |
5.0: | 3.9.11.20070601-alt2 |
4.1: | 3.9.11.20070601-alt1 |
4.0: | 3.9.10.20060626-alt1 |
3.0: | 3.9.10-alt1 |
Group :: Ferramentas de Arquivo
RPM: mtools
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: mtools-3.9.10-20060626.diff
Download
Download
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/Changelog mtools/Changelog
--- mtools-3.9.10/Changelog 2005-03-02 22:18:39.000000000 +0100
+++ mtools/Changelog 2006-06-26 13:10:13.000000000 +0200
@@ -1,3 +1,23 @@
+v20060626
+ Merged Redhat/Fedora patches
+v20060531
+ #ifdef linux-dependant code in mformat.c
+v20060525
+ Fix gcc4 warnings
+ Fix reading of boot sector (block size)
+v20060228b
+ Do no longer open floppy devices with O_EXCL, in order to enable
+ work-around against broken cache.
+v20060228
+ If no info dir exists at all, assume dir
+v20060227
+ Support for DESTDIR
+v20051011
+ Fix Unix loop
+v20050410
+ Cygwin compatibility
+v20050317
+ Solaris 8 compatibility
v20050302
Released 3.9.10
v20050228
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/Makefile.in mtools/Makefile.in
--- mtools-3.9.10/Makefile.in 2004-02-28 20:06:35.000000000 +0100
+++ mtools/Makefile.in 2006-02-28 09:55:15.000000000 +0100
@@ -61,10 +61,10 @@
mkmanifest.1 mlabel.1 mmd.1 mmount.1 mmove.1 mpartition.1 \
mrd.1 mren.1 mshowfat.1 mtoolstest.1 mtools.1 mtype.1 mzip.1
MAN1EXT = 1
-MAN1DIR = $(mandir)/man${MAN1EXT}
+MAN1DIR = $(DESTDIR)$(mandir)/man${MAN1EXT}
MAN5 = mtools.5
MAN5EXT = 5
-MAN5DIR = $(mandir)/man${MAN5EXT}
+MAN5DIR = $(DESTDIR)$(mandir)/man${MAN5EXT}
# all files in this directory included in the distribution
DIST = \
@@ -195,30 +195,29 @@
# Don't cd, to avoid breaking install-sh references.
install-info: info
- $(top_srcdir)/mkinstalldirs $(infodir)
+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(infodir)
if test -f mtools.info; then \
for i in mtools.info*; do \
- $(INSTALL_DATA) $$i $(infodir)/$$i; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i; \
done; \
else \
for i in $(srcdir)/mtools.info*; do \
- $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
done; \
fi; \
if [ -n "$(INSTALL_INFO)" ] ; then \
- if [ -f $(infodir)/dir.info ] ; then \
- $(INSTALL_INFO) $(infodir)/mtools.info $(infodir)/dir.info; \
- fi; \
- if [ -f $(infodir)/dir ] ; then \
- $(INSTALL_INFO) $(infodir)/mtools.info $(infodir)/dir; \
+ if [ -f $(DESTDIR)$(infodir)/dir.info ] ; then \
+ $(INSTALL_INFO) $(DESTDIR)$(infodir)/mtools.info $(DESTDIR)$(infodir)/dir.info; \
+ else \
+ $(INSTALL_INFO) $(DESTDIR)$(infodir)/mtools.info $(DESTDIR)$(infodir)/dir; \
fi; \
fi
uninstall-info:
- cd $(infodir) && rm -f mtools.info*
+ cd $(DESTDIR)$(infodir) && rm -f mtools.info*
-install: $(bindir)/mtools @BINFLOPPYD@ install-man install-links \
- $(bindir)/mkmanifest install-scripts install-info
+install: $(DESTDIR)$(bindir)/mtools @BINFLOPPYD@ install-man install-links \
+ $(DESTDIR)$(bindir)/mkmanifest install-scripts install-info
uninstall: uninstall-bin uninstall-man uninstall-links \
uninstall-scripts
@@ -228,41 +227,41 @@
maintainer-clean: distclean
-$(bindir)/floppyd: floppyd
- $(top_srcdir)/mkinstalldirs $(bindir)
- $(INSTALL_PROGRAM) floppyd $(bindir)/floppyd
-
-$(bindir)/floppyd_installtest: floppyd_installtest
- $(top_srcdir)/mkinstalldirs $(bindir)
- $(INSTALL_PROGRAM) floppyd_installtest $(bindir)/floppyd_installtest
-
-$(bindir)/mtools: mtools
- $(top_srcdir)/mkinstalldirs $(bindir)
- $(INSTALL_PROGRAM) mtools $(bindir)/mtools
-
-$(bindir)/mkmanifest: mkmanifest
- $(top_srcdir)/mkinstalldirs $(bindir)
- $(INSTALL_PROGRAM) mkmanifest $(bindir)/mkmanifest
+$(DESTDIR)$(bindir)/floppyd: floppyd
+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) floppyd $(DESTDIR)$(bindir)/floppyd
+
+$(DESTDIR)$(bindir)/floppyd_installtest: floppyd_installtest
+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) floppyd_installtest $(DESTDIR)$(bindir)/floppyd_installtest
+
+$(DESTDIR)$(bindir)/mtools: mtools
+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) mtools $(DESTDIR)$(bindir)/mtools
+
+$(DESTDIR)$(bindir)/mkmanifest: mkmanifest
+ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) mkmanifest $(DESTDIR)$(bindir)/mkmanifest
#$(ETCDIR)/mtools: mtools.etc
# cp mtools.etc $(ETCDIR)/mtools
-install-links: $(bindir)/mtools
+install-links: $(DESTDIR)$(bindir)/mtools
@for j in $(LINKS); do \
- rm -f $(bindir)/$$j ; \
- $(LN_S) mtools $(bindir)/$$j ; \
- echo $(bindir)/$$j ; \
+ rm -f $(DESTDIR)$(bindir)/$$j ; \
+ $(LN_S) mtools $(DESTDIR)$(bindir)/$$j ; \
+ echo $(DESTDIR)$(bindir)/$$j ; \
done
## "z" is the older version of "gz"; the name is just *too* short
-install-scripts: $(bindir)/mtools
- @$(top_srcdir)/mkinstalldirs $(bindir)
+install-scripts: $(DESTDIR)$(bindir)/mtools
+ @$(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
@for j in $(SCRIPTS) ; do \
- $(INSTALL_PROGRAM) $(srcdir)/scripts/$$j $(bindir)/$$j ; \
- echo $(bindir)/$$j ; \
+ $(INSTALL_PROGRAM) $(srcdir)/scripts/$$j $(DESTDIR)$(bindir)/$$j ; \
+ echo $(DESTDIR)$(bindir)/$$j ; \
done
- rm -f $(bindir)/lz
- $(LN_S) uz $(bindir)/lz
+ rm -f $(DESTDIR)$(bindir)/lz
+ $(LN_S) uz $(DESTDIR)$(bindir)/lz
install-man:
@$(top_srcdir)/mkinstalldirs $(MAN1DIR)
@@ -278,14 +277,14 @@
uninstall-bin:
@for j in mtools mkmanifest; do \
- rm -f $(bindir)/$$j ; \
- echo $(bindir)/$$j ; \
+ rm -f $(DESTDIR)$(bindir)/$$j ; \
+ echo $(DESTDIR)$(bindir)/$$j ; \
done
uninstall-scripts:
@for j in $(SCRIPTS); do \
- rm -f $(bindir)/$$j ; \
- echo $(bindir)/$$j ; \
+ rm -f $(DESTDIR)$(bindir)/$$j ; \
+ echo $(DESTDIR)$(bindir)/$$j ; \
done
uninstall-man:
@@ -300,8 +299,8 @@
uninstall-links:
@for j in $(LINKS); \
- do rm -f $(bindir)/$$j ; \
- echo $(bindir)/$$j ; \
+ do rm -f $(DESTDIR)$(bindir)/$$j ; \
+ echo $(DESTDIR)$(bindir)/$$j ; \
done
depend: $(SRCS)
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/codepage.c mtools/codepage.c
--- mtools-3.9.10/codepage.c 2002-05-01 11:57:01.000000000 +0200
+++ mtools/codepage.c 2005-04-10 09:19:16.000000000 +0200
@@ -87,7 +87,7 @@
return;
}
- fd = open(filename, O_RDONLY | O_LARGEFILE);
+ fd = open(filename, O_RDONLY | O_BINARY | O_LARGEFILE);
if(fd < 0) {
perror("open country.sys");
exit(1);
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/config.c mtools/config.c
--- mtools-3.9.10/config.c 2004-02-28 18:40:23.000000000 +0100
+++ mtools/config.c 2005-10-11 22:56:37.000000000 +0200
@@ -34,6 +34,8 @@
struct device *devices; /* the device table */
static int token_nr; /* number of tokens in line */
+static char default_drive='\0'; /* default drive */
+
/* "environment" variables */
unsigned int mtools_skip_check=0;
unsigned int mtools_fat_compatibility=0;
@@ -152,6 +154,23 @@
{ "BLOCKSIZE", OFFS(blocksize), T_UINT }
};
+static void maintain_default_drive(char drive)
+{
+ if(default_drive == ':')
+ return; /* we have an image */
+ if(default_drive == '\0' ||
+ default_drive > drive)
+ default_drive = drive;
+}
+
+char get_default_drive(void)
+{
+ if(default_drive != '\0')
+ return default_drive;
+ else
+ return 'A';
+}
+
static void syntax(const char *msg, int thisLine)
{
char drive='\0';
@@ -495,6 +514,7 @@
void set_cmd_line_image(char *img, int flags) {
prepend();
devices[cur_dev].drive = ':';
+ default_drive = ':';
devices[cur_dev].name = strdup(img);
devices[cur_dev].fat_bits = 0;
devices[cur_dev].tracks = 0;
@@ -549,6 +569,7 @@
}
devices[cur_dev].drive = toupper(devices[cur_dev].drive);
+ maintain_default_drive(devices[cur_dev].drive);
if (!(devices[cur_dev].name = strdup(name))) {
printOom();
exit(1);
@@ -589,6 +610,7 @@
trusted = privilege;
flag_mask = 0;
devices[cur_dev].drive = toupper(token[0]);
+ maintain_default_drive(devices[cur_dev].drive);
expect_char(':');
return 1;
}
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/config.h.in mtools/config.h.in
--- mtools-3.9.10/config.h.in 2005-02-28 23:10:39.000000000 +0100
+++ mtools/config.h.in 2005-03-17 20:47:11.000000000 +0100
@@ -126,6 +126,9 @@
/* Define to 1 if you have the `random' function. */
#undef HAVE_RANDOM
+/* Define to 1 if you have the `setenv' function. */
+#undef HAVE_SETENV
+
/* Define to 1 if you have the `seteuid' function. */
#undef HAVE_SETEUID
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/configure mtools/configure
--- mtools-3.9.10/configure 2005-02-28 23:10:33.000000000 +0100
+++ mtools/configure 2006-02-27 17:36:50.000000000 +0100
@@ -5171,9 +5171,11 @@
+
for ac_func in strerror random srandom strchr strrchr lockf flock \
strcasecmp strncasecmp atexit on_exit getpass memmove \
-strdup strcspn strspn strtoul strtol memcpy strpbrk memset seteuid setresuid \
+strdup strcspn strspn strtoul strtol memcpy strpbrk memset setenv \
+seteuid setresuid \
tcsetattr tcflush basename fchdir media_oldaliases llseek lseek64 \
snprintf stat64
do
@@ -7737,7 +7739,7 @@
exit 1
fi
FLOPPYD="floppyd floppyd_installtest"
- BINFLOPPYD="\$(bindir)/floppyd \$(bindir)/floppyd_installtest"
+ BINFLOPPYD="\$(DESTDIR)\$(bindir)/floppyd \$(DESTDIR)\$(bindir)/floppyd_installtest"
cat >>confdefs.h <<\_ACEOF
#define USE_FLOPPYD 1
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/configure.in mtools/configure.in
--- mtools-3.9.10/configure.in 2003-02-16 16:13:25.000000000 +0100
+++ mtools/configure.in 2006-02-27 17:36:44.000000000 +0100
@@ -135,7 +135,8 @@
AC_TYPE_SIGNAL
AC_CHECK_FUNCS(strerror random srandom strchr strrchr lockf flock \
strcasecmp strncasecmp atexit on_exit getpass memmove \
-strdup strcspn strspn strtoul strtol memcpy strpbrk memset seteuid setresuid \
+strdup strcspn strspn strtoul strtol memcpy strpbrk memset setenv \
+seteuid setresuid \
tcsetattr tcflush basename fchdir media_oldaliases llseek lseek64 \
snprintf stat64)
AC_FUNC_SETPGRP
@@ -343,7 +344,7 @@
exit 1
fi
FLOPPYD="floppyd floppyd_installtest"
- BINFLOPPYD="\$(bindir)/floppyd \$(bindir)/floppyd_installtest"
+ BINFLOPPYD="\$(DESTDIR)\$(bindir)/floppyd \$(DESTDIR)\$(bindir)/floppyd_installtest"
AC_DEFINE([USE_FLOPPYD],1,[Define when you want to include floppyd support])
else
FLOPPYD=
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/devices.c mtools/devices.c
--- mtools-3.9.10/devices.c 2003-05-24 22:54:27.000000000 +0200
+++ mtools/devices.c 2006-05-25 22:33:49.000000000 +0200
@@ -717,8 +717,8 @@
#define predefined_devices
struct device devices[] = {
- {"/dev/fd0", 'A', 0, O_EXCL, 80,2, 18,0, MDEF_ARG},
- {"/dev/fd1", 'B', 0, O_EXCL, 0,0, 0,0, FDEF_ARG},
+ {"/dev/fd0", 'A', 0, 0, 80,2, 18,0, MDEF_ARG},
+ {"/dev/fd1", 'B', 0, 0, 0,0, 0,0, FDEF_ARG},
/* we assume that the Zip or Jaz drive is the second on the SCSI bus */
{"/dev/sdb4",'J', GENHD },
{"/dev/sdb4",'Z', GENHD },
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/fat.c mtools/fat.c
--- mtools-3.9.10/fat.c 2004-05-05 21:19:52.000000000 +0200
+++ mtools/fat.c 2006-06-26 12:57:16.000000000 +0200
@@ -4,8 +4,6 @@
#include "mtools.h"
#include "fsP.h"
-extern Stream_t *default_drive;
-
#ifdef HAVE_LONG_LONG
typedef long long fatBitMask;
#else
@@ -447,8 +445,8 @@
InfoSector_t *infoSector;
infoSector = (InfoSector_t *) safe_malloc(This->sector_size);
set_dword(infoSector->signature1, INFOSECT_SIGNATURE1);
- memset(infoSector->filler1, sizeof(infoSector->filler1),0);
- memset(infoSector->filler2, sizeof(infoSector->filler2),0);
+ memset(infoSector->filler1, 0, sizeof(infoSector->filler1));
+ memset(infoSector->filler2, 0, sizeof(infoSector->filler2));
set_dword(infoSector->signature2, INFOSECT_SIGNATURE2);
set_dword(infoSector->pos, This->last);
set_dword(infoSector->count, This->freeSpace);
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/floppyd.1 mtools/floppyd.1
--- mtools-3.9.10/floppyd.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/floppyd.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH floppyd 1 "28Feb05" mtools-3.9.10
+.TH floppyd 1 "02Mar05" mtools-3.9.10
.SH Name
floppyd - floppy daemon for remote access to floppy drive
floppyd_installtest - tests whether floppyd is installed and running
@@ -81,7 +81,7 @@
.PP
\&\fIdevicenames\fR is a list of device nodes to be opened. Default
is \fR\&\f(CW/dev/fd0\fR. Multiple devices are only supported on mtools
-versions newer than February 28th 2005
+versions newer than 3.9.10.
.PP
.SH Connecting\ to\ floppyd
.PP
@@ -94,7 +94,7 @@
\&\fIbaseport\fR+\fIdisplaynumber\fR at \fIhostname\fR. By default
\&\fIbaseport\fR is 5703. The drive parameter is to distinguish among
multiple drives associated with a single display (only mtools versions
-more recent than February 28th 2005)
+more recent than 3.9.10)
.PP
.SH Examples:
.PP
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/floppyd.c mtools/floppyd.c
--- mtools-3.9.10/floppyd.c 2005-02-28 00:33:37.000000000 +0100
+++ mtools/floppyd.c 2006-05-25 22:34:39.000000000 +0200
@@ -384,6 +384,7 @@
static char *dispName;
+static char XAUTHORITY[]="XAUTHORITY";
char do_auth(io_buffer sock, int *version)
{
@@ -452,7 +453,17 @@
destroyPacket(mit_cookie);
return 0;
}
- setenv("XAUTHORITY", authFile, 1);
+#ifdef HAVE_SETENV
+ setenv(XAUTHORITY, authFile, 1);
+#else
+ {
+ char *buffer=malloc(strlen(XAUTHORITY)+strlen(authFile)+2);
+ strcpy(buffer, XAUTHORITY);
+ strcat(buffer, "=");
+ strcat(buffer, authFile);
+ putenv(buffer);
+ }
+#endif
ptr = template;
ptr[4095] = 0;
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/floppyd_installtest.1 mtools/floppyd_installtest.1
--- mtools-3.9.10/floppyd_installtest.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/floppyd_installtest.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH floppyd_installtest 1 "28Feb05" mtools-3.9.10
+.TH floppyd_installtest 1 "02Mar05" mtools-3.9.10
.SH Name
floppyd_installtest - tests whether floppyd is installed and running
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/floppyd_installtest.c mtools/floppyd_installtest.c
--- mtools-3.9.10/floppyd_installtest.c 2002-05-01 12:48:11.000000000 +0200
+++ mtools/floppyd_installtest.c 2006-05-25 22:19:31.000000000 +0200
@@ -69,7 +69,7 @@
{
Byte val[4];
- read(handle, val, 4);
+ read(handle, (char *) val, 4);
return byte2dword(val);
}
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/floppyd_io.c mtools/floppyd_io.c
--- mtools-3.9.10/floppyd_io.c 2005-02-27 23:32:57.000000000 +0100
+++ mtools/floppyd_io.c 2006-05-25 22:02:42.000000000 +0200
@@ -81,7 +81,7 @@
{
Byte val[4];
- read(handle, val, 4);
+ read(handle, (char *)val, 4);
return byte2dword(val);
}
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/init.c mtools/init.c
--- mtools-3.9.10/init.c 2002-05-01 11:57:02.000000000 +0200
+++ mtools/init.c 2006-05-25 21:59:07.000000000 +0200
@@ -30,8 +30,8 @@
/* read the first sector, or part of it */
if(!size)
size = BOOTSIZE;
- if(size > 1024)
- size = 1024;
+ if(size > MAX_BOOT)
+ size = MAX_BOOT;
if (force_read(Stream, (char *) boot, 0, size) != size)
return -1;
@@ -196,8 +196,9 @@
struct device dev;
mt_size_t maxSize;
- struct bootsector boot0;
-#define boot (&boot0)
+ unsigned char boot0[MAX_BOOT];
+ struct bootsector *boot = (struct bootsector *) boot0;
+
Fs_t *This;
This = New(Fs_t);
@@ -216,7 +217,7 @@
This->drive = drive;
This->last = 0;
- This->Direct = find_device(drive, mode, &dev, &boot0, name, &media,
+ This->Direct = find_device(drive, mode, &dev, boot, name, &media,
&maxSize);
if(!This->Direct)
return NULL;
@@ -268,16 +269,16 @@
nhs = WORD(nhs);
- This->cluster_size = boot0.clsiz;
+ This->cluster_size = boot->clsiz;
This->fat_start = WORD(nrsvsect);
This->fat_len = WORD(fatlen);
This->dir_len = WORD(dirents) * MDIR_SIZE / This->sector_size;
- This->num_fat = boot0.nfat;
+ This->num_fat = boot->nfat;
if (This->fat_len) {
- labelBlock = &boot0.ext.old.labelBlock;
+ labelBlock = &boot->ext.old.labelBlock;
} else {
- labelBlock = &boot0.ext.fat32.labelBlock;
+ labelBlock = &boot->ext.fat32.labelBlock;
}
if(labelBlock->dos4 == 0x29) {
@@ -293,8 +294,9 @@
if(!mtools_skip_check && (tot_sectors % dev.sectors)){
fprintf(stderr,
- "Total number of sectors not a multiple of"
- " sectors per track!\n");
+ "Total number of sectors (%d) not a multiple of"
+ " sectors per track (%d)!\n", tot_sectors,
+ dev.sectors);
fprintf(stderr,
"Add mtools_skip_check=1 to your .mtoolsrc file "
"to skip this test\n");
@@ -347,7 +349,7 @@
}
/* read the FAT sectors */
- if(fat_read(This, &boot0, dev.fat_bits, tot_sectors, dev.use_2m&0x7f)){
+ if(fat_read(This, boot, dev.fat_bits, tot_sectors, dev.use_2m&0x7f)){
This->num_fat = 1;
FREE(&This->Next);
Free(This->Next);
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mainloop.c mtools/mainloop.c
--- mtools-3.9.10/mainloop.c 2002-05-01 12:17:50.000000000 +0200
+++ mtools/mainloop.c 2006-06-26 12:53:41.000000000 +0200
@@ -14,14 +14,68 @@
#include "file.h"
+/* Fix the info in the MCWD file to be a proper directory name.
+ * Always has a leading separator. Never has a trailing separator
+ * (unless it is the path itself). */
+
+static const char *fix_mcwd(char *ans)
+{
+ FILE *fp;
+ char *s;
+ char buf[MAX_PATH];
+
+ fp = open_mcwd("r");
+ if(!fp || !fgets(buf, MAX_PATH, fp)) {
+ if(fp)
+ fclose(fp);
+ ans[0] = get_default_drive();
+ strcpy(ans+1, ":/");
+ return ans;
+ }
+
+ buf[strlen(buf) -1] = '\0';
+ fclose(fp);
+ /* drive letter present? */
+ s = buf;
+ if (buf[0] && buf[1] == ':') {
+ strncpy(ans, buf, 2);
+ ans[2] = '\0';
+ s = &buf[2];
+ } else {
+ ans[0] = get_default_drive();
+ strcpy(ans+1, ":");
+ }
+ /* add a leading separator */
+ if (*s != '/' && *s != '\\') {
+ strcat(ans, "/");
+ strcat(ans, s);
+ } else
+ strcat(ans, s);
+
+#if 0
+ /* translate to upper case */
+ for (s = ans; *s; ++s) {
+ *s = toupper(*s);
+ if (*s == '\\')
+ *s = '/';
+ }
+#endif
+ /* if only drive, colon, & separator */
+ if (strlen(ans) == 3)
+ return(ans);
+ /* zap the trailing separator */
+ if (*--s == '/')
+ *s = '\0';
+ return ans;
+}
+
int unix_dir_loop(Stream_t *Stream, MainParam_t *mp);
int unix_loop(Stream_t *Stream, MainParam_t *mp, char *arg,
int follow_dir_link);
static int _unix_loop(Stream_t *Dir, MainParam_t *mp, const char *filename)
{
- unix_dir_loop(Dir, mp);
- return GOT_ONE;
+ return unix_dir_loop(Dir, mp);
}
int unix_loop(Stream_t *Stream, MainParam_t *mp, char *arg, int follow_dir_link)
@@ -328,7 +382,7 @@
return ERROR_ONE;
if(got_signal)
return ret | ERROR_ONE;
- if(doing_mcwd & !have_one)
+ if(doing_mcwd && !have_one)
return NO_CWD;
return ret;
}
@@ -355,7 +409,7 @@
drive = mp->mcwd[0];
cwd = mp->mcwd+2;
} else {
- drive = 'A';
+ drive = get_default_drive();
}
if(*pathname=='/') /* absolute path name */
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mattrib.1 mtools/mattrib.1
--- mtools-3.9.10/mattrib.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mattrib.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mattrib 1 "28Feb05" mtools-3.9.10
+.TH mattrib 1 "02Mar05" mtools-3.9.10
.SH Name
mattrib - change MSDOS file attribute flags
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mbadblocks.1 mtools/mbadblocks.1
--- mtools-3.9.10/mbadblocks.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mbadblocks.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mbadblocks 1 "28Feb05" mtools-3.9.10
+.TH mbadblocks 1 "02Mar05" mtools-3.9.10
.SH Name
mbadblocks - tests a floppy disk, and marks the bad blocks in the FAT
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mcat.1 mtools/mcat.1
--- mtools-3.9.10/mcat.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mcat.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mcat 1 "28Feb05" mtools-3.9.10
+.TH mcat 1 "02Mar05" mtools-3.9.10
.SH Name
mcat - dump raw disk image
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mcd.1 mtools/mcd.1
--- mtools-3.9.10/mcd.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mcd.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mcd 1 "28Feb05" mtools-3.9.10
+.TH mcd 1 "02Mar05" mtools-3.9.10
.SH Name
mcd - change MSDOS directory
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mclasserase.1 mtools/mclasserase.1
--- mtools-3.9.10/mclasserase.1 2005-02-28 23:14:33.000000000 +0100
+++ mtools/mclasserase.1 2005-03-02 21:56:05.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mclasserase 1 "28Feb05" mtools-3.9.10
+.TH mclasserase 1 "02Mar05" mtools-3.9.10
.SH Name
mclasserase - erase memory cards
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mclasserase.c mtools/mclasserase.c
--- mtools-3.9.10/mclasserase.c 2004-02-28 19:42:27.000000000 +0100
+++ mtools/mclasserase.c 2006-05-25 22:36:45.000000000 +0200
@@ -59,12 +59,12 @@
void do_mclasserase(char drive,int debug)
{
struct device dev; /* Device information structure */
- struct bootsector boot0;
+ unsigned char boot0[MAX_BOOT];
/* Bootsector information structure
has to be here. some compilers don't do preprocessor statements if
they're not in first row.
*/
-#define boot (&boot0)
+ struct bootsector *boot = (struct bootsector *) boot0;
int media; /* Just used to enter some in find_device */
char name[EXPAND_BUF];
Stream_t *Stream;
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mcopy.1 mtools/mcopy.1
--- mtools-3.9.10/mcopy.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mcopy.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mcopy 1 "28Feb05" mtools-3.9.10
+.TH mcopy 1 "02Mar05" mtools-3.9.10
.SH Name
mcopy - copy MSDOS files to/from Unix
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mdel.1 mtools/mdel.1
--- mtools-3.9.10/mdel.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mdel.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mdel 1 "28Feb05" mtools-3.9.10
+.TH mdel 1 "02Mar05" mtools-3.9.10
.SH Name
mdel - delete an MSDOS file
mdeltree - recursively delete an MSDOS directory and its contents
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mdel.c mtools/mdel.c
--- mtools-3.9.10/mdel.c 2005-02-13 15:49:22.000000000 +0100
+++ mtools/mdel.c 2005-10-11 23:20:06.000000000 +0200
@@ -125,7 +125,7 @@
fprintf(stderr,
"Mtools version %s, dated %s\n", mversion, mdate);
fprintf(stderr,
- "Usage: %s [-v] msdosfile [msdosfiles...]", progname);
+ "Usage: %s [-v] msdosfile [msdosfiles...]\n", progname);
exit(1);
}
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mdeltree.1 mtools/mdeltree.1
--- mtools-3.9.10/mdeltree.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mdeltree.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mdeltree 1 "28Feb05" mtools-3.9.10
+.TH mdeltree 1 "02Mar05" mtools-3.9.10
.SH Name
mdeltree - recursively delete an MSDOS directory and its contents
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mdir.1 mtools/mdir.1
--- mtools-3.9.10/mdir.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mdir.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mdir 1 "28Feb05" mtools-3.9.10
+.TH mdir 1 "02Mar05" mtools-3.9.10
.SH Name
mdir - display an MSDOS directory
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mdu.1 mtools/mdu.1
--- mtools-3.9.10/mdu.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mdu.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mdu 1 "28Feb05" mtools-3.9.10
+.TH mdu 1 "02Mar05" mtools-3.9.10
.SH Name
mdu - display the amount of space occupied by an MSDOS directory
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mformat.1 mtools/mformat.1
--- mtools-3.9.10/mformat.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mformat.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mformat 1 "28Feb05" mtools-3.9.10
+.TH mformat 1 "02Mar05" mtools-3.9.10
.SH Name
mformat - add an MSDOS filesystem to a low-level formatted floppy disk
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mformat.c mtools/mformat.c
--- mtools-3.9.10/mformat.c 2004-05-04 20:18:31.000000000 +0200
+++ mtools/mformat.c 2006-05-31 15:38:35.000000000 +0200
@@ -689,6 +689,53 @@
exit(1);
}
+#ifdef OS_linux
+static int get_block_geom(int fd, struct MT_STAT *buf, struct device *dev,
+ char *errmsg) {
+ struct hd_geometry geom;
+ long size;
+ int heads=dev->heads;
+ int sectors=dev->sectors;
+ int sect_per_track;
+
+ if (ioctl(fd, HDIO_GETGEO, &geom) < 0) {
+ sprintf(errmsg, "Could not get geometry of device (%s)",
+ strerror(errno));
+ return -1;
+ }
+
+ if (ioctl(fd, BLKGETSIZE, &size) < 0) {
+ sprintf(errmsg, "Could not get size of device (%s)",
+ strerror(errno));
+ return -1;
+ }
+
+ if(!heads)
+ heads = geom.heads;
+ if(!sectors)
+ sectors = geom.sectors;
+
+ sect_per_track = heads * sectors;
+ if(!dev->hidden) {
+ int hidden;
+ hidden = geom.start % sect_per_track;
+ if(hidden && hidden != sectors) {
+ sprintf(errmsg,
+ "Hidden (%d) does not match sectors (%d)\n",
+ hidden, sectors);
+ return -1;
+ }
+ dev->hidden = hidden;
+ }
+ dev->heads = heads;
+ dev->sectors = sectors;
+ if(!dev->tracks)
+ dev->tracks = (size + dev->hidden) / sect_per_track;
+ size = dev->tracks * dev->heads * dev->sectors + dev->hidden;
+ return 0;
+}
+#endif
+
void mformat(int argc, char **argv, int dummy)
{
int r; /* generic return value */
@@ -997,29 +1044,9 @@
continue;
}
- if (S_ISBLK(buf.st_mode)) {
- struct hd_geometry geom;
- long size;
- int sect_per_track;
-
- if (ioctl(fd, HDIO_GETGEO, &geom) < 0) {
- sprintf(errmsg, "Could not get geometry of device (%s)",
- strerror(errno));
- continue;
- }
-
- if (ioctl(fd, BLKGETSIZE, &size) < 0) {
- sprintf(errmsg, "Could not get size of device (%s)",
- strerror(errno));
- continue;
- }
-
- sect_per_track = geom.heads * geom.sectors;
- used_dev.heads = geom.heads;
- used_dev.sectors = geom.sectors;
- used_dev.hidden = geom.start % sect_per_track;
- used_dev.tracks = (size + used_dev.hidden) / sect_per_track;
- }
+ if (S_ISBLK(buf.st_mode) &&
+ get_block_geom(fd, &buf, &used_dev, errmsg) < 0)
+ continue;
}
#endif
@@ -1091,7 +1118,7 @@
if(bootSector) {
int fd;
- fd = open(bootSector, O_RDONLY | O_LARGEFILE);
+ fd = open(bootSector, O_RDONLY | O_BINARY | O_LARGEFILE);
if(fd < 0) {
perror("open boot sector");
exit(1);
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/minfo.1 mtools/minfo.1
--- mtools-3.9.10/minfo.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/minfo.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH minfo 1 "28Feb05" mtools-3.9.10
+.TH minfo 1 "02Mar05" mtools-3.9.10
.SH Name
minfo - print the parameters of a MSDOS filesystem
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/minfo.c mtools/minfo.c
--- mtools-3.9.10/minfo.c 2003-05-17 15:01:29.000000000 +0200
+++ mtools/minfo.c 2006-05-25 21:59:57.000000000 +0200
@@ -42,8 +42,9 @@
void minfo(int argc, char **argv, int type)
{
- struct bootsector boot0;
-#define boot (&boot0)
+ unsigned char boot0[MAX_BOOT];
+ struct bootsector *boot = (struct bootsector *) boot0;
+
char name[EXPAND_BUF];
int media;
int tot_sectors;
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/misc.c mtools/misc.c
--- mtools-3.9.10/misc.c 2002-05-01 11:57:02.000000000 +0200
+++ mtools/misc.c 2005-10-11 23:14:10.000000000 +0200
@@ -103,58 +103,6 @@
}
-/* Fix the info in the MCWD file to be a proper directory name.
- * Always has a leading separator. Never has a trailing separator
- * (unless it is the path itself). */
-
-const char *fix_mcwd(char *ans)
-{
- FILE *fp;
- char *s;
- char buf[MAX_PATH];
-
- fp = open_mcwd("r");
- if(!fp){
- strcpy(ans, "A:/");
- return ans;
- }
-
- if (!fgets(buf, MAX_PATH, fp))
- return("A:/");
-
- buf[strlen(buf) -1] = '\0';
- fclose(fp);
- /* drive letter present? */
- s = buf;
- if (buf[0] && buf[1] == ':') {
- strncpy(ans, buf, 2);
- ans[2] = '\0';
- s = &buf[2];
- } else
- strcpy(ans, "A:");
- /* add a leading separator */
- if (*s != '/' && *s != '\\') {
- strcat(ans, "/");
- strcat(ans, s);
- } else
- strcat(ans, s);
-
-#if 0
- /* translate to upper case */
- for (s = ans; *s; ++s) {
- *s = toupper(*s);
- if (*s == '\\')
- *s = '/';
- }
-#endif
- /* if only drive, colon, & separator */
- if (strlen(ans) == 3)
- return(ans);
- /* zap the trailing separator */
- if (*--s == '/')
- *s = '\0';
- return ans;
-}
void *safe_malloc(size_t size)
{
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mkmanifest.1 mtools/mkmanifest.1
--- mtools-3.9.10/mkmanifest.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mkmanifest.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mkmanifest 1 "28Feb05" mtools-3.9.10
+.TH mkmanifest 1 "02Mar05" mtools-3.9.10
.SH Name
mkmanifest - makes list of file names and their DOS 8+3 equivalent
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mlabel.1 mtools/mlabel.1
--- mtools-3.9.10/mlabel.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mlabel.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mlabel 1 "28Feb05" mtools-3.9.10
+.TH mlabel 1 "02Mar05" mtools-3.9.10
.SH Name
mlabel - make an MSDOS volume label
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mmd.1 mtools/mmd.1
--- mtools-3.9.10/mmd.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mmd.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mmd 1 "28Feb05" mtools-3.9.10
+.TH mmd 1 "02Mar05" mtools-3.9.10
.SH Name
mmd - make an MSDOS subdirectory
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mmount.1 mtools/mmount.1
--- mtools-3.9.10/mmount.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mmount.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mmount 1 "28Feb05" mtools-3.9.10
+.TH mmount 1 "02Mar05" mtools-3.9.10
.SH Name
mmount - mount an MSDOS disk
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mmount.c mtools/mmount.c
--- mtools-3.9.10/mmount.c 2002-11-02 00:16:50.000000000 +0100
+++ mtools/mmount.c 2006-05-25 22:01:44.000000000 +0200
@@ -27,7 +27,8 @@
struct device dev;
char name[EXPAND_BUF];
int media;
- struct bootsector boot;
+ unsigned char boot0[MAX_BOOT];
+ struct bootsector *boot = (struct bootsector *) boot0;
Stream_t *Stream;
if (argc<2 || !argv[1][0] || argv[1][1] != ':' || argv[1][2]){
@@ -35,7 +36,7 @@
exit(1);
}
drive = toupper(argv[1][0]);
- Stream = find_device(drive, O_RDONLY, &dev, &boot, name, &media, 0);
+ Stream = find_device(drive, O_RDONLY, &dev, boot, name, &media, 0);
if(!Stream)
exit(1);
FREE(&Stream);
@@ -55,12 +56,12 @@
exit(1);
case 0:
close(2);
- open("/dev/null", O_RDWR | O_LARGEFILE);
+ open("/dev/null", O_RDWR | O_BINARY | O_LARGEFILE);
argv[1] = strdup("mount");
if ( argc > 2 )
execvp("mount", argv + 1 );
else
- execlp("mount", "mount", name, 0);
+ execlp("mount", "mount", name, NULL);
perror("exec mount");
exit(1);
default:
@@ -77,7 +78,7 @@
if ( argc > 2 )
execvp("mount", argv);
else
- execlp("mount", "mount","-r", name, 0);
+ execlp("mount", "mount","-r", name, NULL);
exit(1);
}
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mmove.1 mtools/mmove.1
--- mtools-3.9.10/mmove.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mmove.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mmove 1 "28Feb05" mtools-3.9.10
+.TH mmove 1 "02Mar05" mtools-3.9.10
.SH Name
mmove - move or rename an MSDOS file or subdirectory
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mpartition.1 mtools/mpartition.1
--- mtools-3.9.10/mpartition.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mpartition.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mpartition 1 "28Feb05" mtools-3.9.10
+.TH mpartition 1 "02Mar05" mtools-3.9.10
.SH Name
mpartition - partition an MSDOS hard disk
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mpartition.c mtools/mpartition.c
--- mtools-3.9.10/mpartition.c 2003-05-17 15:25:48.000000000 +0200
+++ mtools/mpartition.c 2006-06-26 12:53:41.000000000 +0200
@@ -78,11 +78,12 @@
}
int consistencyCheck(struct partition *partTable, int doprint, int verbose,
- int *has_activated, unsigned int *last_end, int *j,
+ int *has_activated, unsigned int *last_end,
+ unsigned int *j,
struct device *used_dev, int target_partition)
{
- int i;
- int inconsistency;
+ unsigned int i;
+ unsigned int inconsistency;
*j = 0;
*last_end = 1;
@@ -250,7 +251,7 @@
fprintf(stderr,
"Mtools version %s, dated %s\n", mversion, mdate);
fprintf(stderr,
- "Usage: %s [-pradcv] [-I [-B bootsect-template] [-s sectors] "
+ "Usage: %s [-pradcv] [-I] [-B bootsect-template] [-s sectors] "
"[-t cylinders] "
"[-h heads] [-T type] [-b begin] [-l length] "
"drive\n", progname);
@@ -504,7 +505,7 @@
if(initialize) {
if (bootSector) {
int fd;
- fd = open(bootSector, O_RDONLY | O_LARGEFILE);
+ fd = open(bootSector, O_RDONLY | O_BINARY | O_LARGEFILE);
if (fd < 0) {
perror("open boot sector");
exit(1);
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mrd.1 mtools/mrd.1
--- mtools-3.9.10/mrd.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mrd.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mrd 1 "28Feb05" mtools-3.9.10
+.TH mrd 1 "02Mar05" mtools-3.9.10
.SH Name
mrd - remove an MSDOS subdirectory
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mren.1 mtools/mren.1
--- mtools-3.9.10/mren.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mren.1 2005-03-02 21:56:04.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mren 1 "28Feb05" mtools-3.9.10
+.TH mren 1 "02Mar05" mtools-3.9.10
.SH Name
mren - rename an existing MSDOS file
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/msdos.h mtools/msdos.h
--- mtools-3.9.10/msdos.h 2003-05-17 15:00:22.000000000 +0200
+++ mtools/msdos.h 2006-05-25 21:58:51.000000000 +0200
@@ -162,6 +162,8 @@
struct oldboot_t old;
} ext;
};
+#define MAX_BOOT 4096
+
#define CHAR(x) (boot->x[0])
#define WORD(x) (_WORD(boot->x))
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mshowfat.1 mtools/mshowfat.1
--- mtools-3.9.10/mshowfat.1 2005-02-28 23:14:32.000000000 +0100
+++ mtools/mshowfat.1 2005-03-02 21:56:05.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mshowfat 1 "28Feb05" mtools-3.9.10
+.TH mshowfat 1 "02Mar05" mtools-3.9.10
.SH Name
mshowfat - shows FAT clusters allocated to file
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mtools.1 mtools/mtools.1
--- mtools-3.9.10/mtools.1 2005-02-28 23:14:33.000000000 +0100
+++ mtools/mtools.1 2005-03-02 21:56:05.000000000 +0100
@@ -1,5 +1,5 @@
'\" t
-.TH mtools.1 3 "28Feb05" mtools-3.9.10
+.TH mtools.1 3 "02Mar05" mtools-3.9.10
.SH Name
mtools - utilities to access DOS disks in Unix.
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mtools.5 mtools/mtools.5
--- mtools-3.9.10/mtools.5 2005-02-28 23:14:33.000000000 +0100
+++ mtools/mtools.5 2005-03-02 21:56:05.000000000 +0100
@@ -1,5 +1,5 @@
'\" t
-.TH mtools.1 3 "28Feb05" MTOOLS MTOOLS
+.TH mtools.1 3 "02Mar05" MTOOLS MTOOLS
.SH Name
mtools.conf - mtools configuration files
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mtools.h mtools/mtools.h
--- mtools-3.9.10/mtools.h 2005-02-13 14:41:29.000000000 +0100
+++ mtools/mtools.h 2006-05-25 22:33:32.000000000 +0200
@@ -156,6 +156,7 @@
extern int batchmode;
+char get_default_drive(void);
void set_cmd_line_image(char *img, int flags);
void read_config(void);
extern struct device *devices;
@@ -224,7 +225,6 @@
char *get_homedir(void);
#define EXPAND_BUF 2048
const char *expand(const char *, char *);
-const char *fix_mcwd(char *);
FILE *open_mcwd(const char *mode);
void unlink_mcwd(void);
@@ -233,4 +233,8 @@
#define ROUND_DOWN(value, grain) ((value) - (value) % (grain))
#define ROUND_UP(value, grain) ROUND_DOWN((value) + (grain)-1, (grain))
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
#endif
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mtools.spec mtools/mtools.spec
--- mtools-3.9.10/mtools.spec 2005-03-02 22:18:40.000000000 +0100
+++ mtools/mtools.spec 2005-11-15 22:18:55.000000000 +0100
@@ -1,10 +1,11 @@
Summary: mtools, read/write/list/format DOS disks under Unix
Name: mtools
Version: 3.9.10
-Release: 1
+Release: 2
Group: Utilities/System
URL: http://mtools.linux.lu
Source0: mtools-%{version}.tar.gz
+Patch1: mtools-%{version}-20051011.diff.gz
Buildroot: %{_tmppath}/%{name}-%{version}-buildroot
License: GPL
%description
@@ -16,6 +17,7 @@
%prep
%setup -q
+%patch1 -p1
./configure --prefix=%{buildroot}%{_prefix} --sysconfdir=/etc --infodir=%{buildroot}%{_infodir} --mandir=%{buildroot}%{_mandir}
%build
@@ -30,6 +32,7 @@
strip %{buildroot}%{_bindir}/mtools %{buildroot}%{_bindir}/mkmanifest %{buildroot}%{_bindir}/floppyd
%files
+%defattr(-,root,root)
%{_infodir}/mtools.info*
%{_mandir}/man1/floppyd.1*
%{_mandir}/man1/floppyd_installtest.1.gz
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mtoolstest.1 mtools/mtoolstest.1
--- mtools-3.9.10/mtoolstest.1 2005-02-28 23:14:33.000000000 +0100
+++ mtools/mtoolstest.1 2005-03-02 21:56:05.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mtoolstest 1 "28Feb05" mtools-3.9.10
+.TH mtoolstest 1 "02Mar05" mtools-3.9.10
.SH Name
mtoolstest - tests and displays the configuration
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mtype.1 mtools/mtype.1
--- mtools-3.9.10/mtype.1 2005-02-28 23:14:33.000000000 +0100
+++ mtools/mtype.1 2005-03-02 21:56:05.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mtype 1 "28Feb05" mtools-3.9.10
+.TH mtype 1 "02Mar05" mtools-3.9.10
.SH Name
mtype - display contents of an MSDOS file
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/mzip.1 mtools/mzip.1
--- mtools-3.9.10/mzip.1 2005-02-28 23:14:33.000000000 +0100
+++ mtools/mzip.1 2005-03-02 21:56:05.000000000 +0100
@@ -1,4 +1,4 @@
-.TH mzip 1 "28Feb05" mtools-3.9.10
+.TH mzip 1 "02Mar05" mtools-3.9.10
.SH Name
mzip - change protection mode and eject disk on Zip/Jaz drive
'\" t
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/partition.h mtools/partition.h
--- mtools-3.9.10/partition.h 2003-05-17 15:27:13.000000000 +0200
+++ mtools/partition.h 2006-05-25 22:04:31.000000000 +0200
@@ -24,7 +24,8 @@
#define sys_ind end.byte0
int consistencyCheck(struct partition *partTable, int doprint, int verbose,
- int *has_activated, unsigned int *last_end, int *j,
+ int *has_activated, unsigned int *last_end,
+ unsigned int *j,
struct device *used_dev, int target_partition);
void setBeginEnd(struct partition *partTable, int begin, int end,
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/patchlevel.c mtools/patchlevel.c
--- mtools-3.9.10/patchlevel.c 2005-03-02 22:18:58.000000000 +0100
+++ mtools/patchlevel.c 2006-06-26 12:53:28.000000000 +0200
@@ -1,2 +1,5 @@
const char *mversion="3.9.10";
-const char *mdate = "March 2nd, 2005";
+
+/* Multiple releases on same day should be marked with (b), (cd), (d) after
+ * date string below */
+const char *mdate = "Jun 26th, 2006";
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/plain_io.c mtools/plain_io.c
--- mtools-3.9.10/plain_io.c 2005-02-22 23:13:37.000000000 +0100
+++ mtools/plain_io.c 2006-05-25 22:18:23.000000000 +0200
@@ -17,10 +17,6 @@
#include "partition.h"
#include "llong.h"
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
typedef struct SimpleFile_t {
Class_t *Class;
int refs;
@@ -673,7 +669,8 @@
while(!(mode2 & NO_OFFSET) &&
dev && dev->partition && dev->partition <= 4) {
- int has_activated, last_end, j;
+ int has_activated;
+ unsigned int last_end, j;
unsigned char buf[2048];
struct partition *partTable=(struct partition *)(buf+ 0x1ae);
size_t partOff;
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/scripts/mcomp mtools/scripts/mcomp
--- mtools-3.9.10/scripts/mcomp 2002-05-01 11:49:05.000000000 +0200
+++ mtools/scripts/mcomp 2006-06-26 12:56:42.000000000 +0200
@@ -1,5 +1,10 @@
#!/bin/sh
+if [ $# -lt 2 ]; then
+ echo "usage: $0 dosfile [cmpoptions] unixfile"
+ exit 1
+fi
+
dosfile=$1
shift
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/scsi.c mtools/scsi.c
--- mtools-3.9.10/scsi.c 2002-11-02 13:09:28.000000000 +0100
+++ mtools/scsi.c 2005-04-10 09:20:04.000000000 +0200
@@ -73,7 +73,7 @@
else
return -1;
#else
- return open(name, O_RDONLY | O_LARGEFILE |
+ return open(name, O_RDONLY | O_LARGEFILE | O_BINARY |
#ifdef O_NDELAY
O_NDELAY
#endif
diff -ur --new-file --exclude-from=/home/aknaff/Projects/exclude mtools-3.9.10/stream.h mtools/stream.h
--- mtools-3.9.10/stream.h 2002-05-01 11:57:02.000000000 +0200
+++ mtools/stream.h 2006-06-26 12:53:52.000000000 +0200
@@ -25,10 +25,10 @@
} Class_t;
#define READS(stream, buf, address, size) \
-(stream)->Class->read( (stream), (char *) (buf), (address), (size) )
+((stream)->Class->read)( (stream), (char *) (buf), (address), (size) )
#define WRITES(stream, buf, address, size) \
-(stream)->Class->write( (stream), (char *) (buf), (address), (size) )
+((stream)->Class->write)( (stream), (char *) (buf), (address), (size) )
#define SET_GEOM(stream, dev, orig_dev, media, boot) \
(stream)->Class->set_geom( (stream), (dev), (orig_dev), (media), (boot) )
@@ -58,8 +58,6 @@
int force_write(Stream_t *Stream, char *buf, mt_off_t start, size_t len);
int force_read(Stream_t *Stream, char *buf, mt_off_t start, size_t len);
-extern struct Stream_t *default_drive;
-
int get_data_pass_through(Stream_t *Stream, time_t *date, mt_size_t *size,
int *type, int *address);