SCP: Add -A option to ATTACH command to open in append mode
This commit is contained in:
parent
b0a4fb443c
commit
5b9a0724d3
1 changed files with 9 additions and 0 deletions
9
scp.c
9
scp.c
|
@ -6879,6 +6879,7 @@ return attach_unit (uptr, (CONST char *)cptr); /* no, std routine */
|
||||||
t_stat attach_unit (UNIT *uptr, CONST char *cptr)
|
t_stat attach_unit (UNIT *uptr, CONST char *cptr)
|
||||||
{
|
{
|
||||||
DEVICE *dptr;
|
DEVICE *dptr;
|
||||||
|
t_bool open_rw = FALSE;
|
||||||
|
|
||||||
if (!(uptr->flags & UNIT_ATTABLE)) /* not attachable? */
|
if (!(uptr->flags & UNIT_ATTABLE)) /* not attachable? */
|
||||||
return SCPE_NOATT;
|
return SCPE_NOATT;
|
||||||
|
@ -6932,6 +6933,8 @@ else {
|
||||||
sim_messagef (SCPE_OK, "%s: creating new file\n", sim_dname (dptr));
|
sim_messagef (SCPE_OK, "%s: creating new file\n", sim_dname (dptr));
|
||||||
}
|
}
|
||||||
} /* end if null */
|
} /* end if null */
|
||||||
|
else
|
||||||
|
open_rw = TRUE;
|
||||||
} /* end else */
|
} /* end else */
|
||||||
}
|
}
|
||||||
if (uptr->flags & UNIT_BUFABLE) { /* buffer? */
|
if (uptr->flags & UNIT_BUFABLE) { /* buffer? */
|
||||||
|
@ -6947,6 +6950,12 @@ if (uptr->flags & UNIT_BUFABLE) { /* buffer? */
|
||||||
}
|
}
|
||||||
uptr->flags = uptr->flags | UNIT_ATT;
|
uptr->flags = uptr->flags | UNIT_ATT;
|
||||||
uptr->pos = 0;
|
uptr->pos = 0;
|
||||||
|
if (open_rw && /* open for write in append mode? */
|
||||||
|
(sim_switches & SWMASK ('A')) &&
|
||||||
|
(uptr->flags & UNIT_SEQ) &&
|
||||||
|
(!(uptr->flags & UNIT_MUSTBUF)) &&
|
||||||
|
(0 == sim_fseek (uptr->fileref, 0, SEEK_END)))
|
||||||
|
uptr->pos = (t_addr)sim_ftell (uptr->fileref); /* Position at end of file */
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue