/*
- * Copyright (C) 1994-1997, Index Data I/S
+ * Copyright (C) 1994-1998, Index Data I/S
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: mfile.c,v $
- * Revision 1.26 1997-10-27 14:25:38 adam
+ * Revision 1.29 1998-05-27 14:28:34 adam
+ * Fixed bug in mf_write. 'Cap off' byte written at wrong offset.
+ *
+ * Revision 1.28 1998/05/20 10:00:35 adam
+ * Fixed register spec so that colon isn't treated as size separator
+ * unless followed by [0-9+-] in order to allow DOS drive specifications.
+ *
+ * Revision 1.27 1998/02/10 11:55:07 adam
+ * Minor changes.
+ *
+ * Revision 1.26 1997/10/27 14:25:38 adam
* Fixed memory leaks.
*
* Revision 1.25 1997/09/18 08:59:16 adam
ad++;
if (!*ad)
break;
- while (*ad && *ad != ':')
+ while (*ad)
{
+ if (*ad == ':' && strchr ("+-0123456789", ad[1]))
+ break;
if (i < FILENAME_MAX)
dirname[i++] = *ad;
ad++;
mf->files[mf->cur_file].path, nblocks);
if ((ps = file_position(mf,
(mf->cur_file ? mf->files[mf->cur_file-1].top : 0) +
- mf->files[mf->cur_file].blocks + nblocks, 0)) < 0)
+ mf->files[mf->cur_file].blocks + nblocks - 1, 0)) < 0)
exit(1);
+ logf (LOG_DEBUG, "ps = %d", ps);
if (write(mf->files[mf->cur_file].fd, &dummych, 1) < 1)
{
logf (LOG_ERRNO|LOG_FATAL, "write dummy");
towrite = num ? num : mf->blocksize;
if (write(mf->files[mf->cur_file].fd, buf, towrite) < towrite)
{
- logf (LOG_FATAL|LOG_ERRNO, "Write failed");
+ logf (LOG_FATAL|LOG_ERRNO, "Write failed for file %s part %d",
+ mf->name, mf->cur_file);
exit(1);
}
return 0;