int save_errno;
unsigned char *fn;
struct stat st;
- int tem, tem2;
+ int tem;
int count = specpdl_ptr - specpdl;
#ifdef VMS
unsigned char *fname = 0; /* If non-0, original filename (must rename) */
}
else if (XINT (start) != XINT (end))
{
- tem2 = 1;
+ int nwritten = 0;
if (XINT (start) < GPT)
{
register int end1 = XINT (end);
tem = XINT (start);
failure = 0 > a_write (desc, &FETCH_CHAR (tem),
- min (GPT, end1) - tem, 1, &annotations);
- tem2 += min (GPT, end1) - tem;
+ min (GPT, end1) - tem, tem, &annotations);
+ nwritten += min (GPT, end1) - tem;
save_errno = errno;
}
tem = XINT (start);
tem = max (tem, GPT);
failure = 0 > a_write (desc, &FETCH_CHAR (tem), XINT (end) - tem,
- tem2, &annotations);
- tem2 += XINT (end) - tem;
+ tem, &annotations);
+ nwritten += XINT (end) - tem;
save_errno = errno;
}
- if (tem2 == 1)
+
+ if (nwritten == 0)
{
/* If file was empty, still need to write the annotations */
- failure = 0 > a_write (desc, "", 0, 1, &annotations);
+ failure = 0 > a_write (desc, "", 0, XINT (start), &annotations);
save_errno = errno;
}
}