/* * Stream the three temp files to an archive */ void install(char *arname, Arfile *astart, Arfile *amiddle, Arfile *aend, int createflag) { int fd; if(allobj && dupfound) { fprint(2, "%s not changed\n", arname); return; } if(createflag) fprint(2, "ar: creating %s\n", arname); fd = arcreate(arname); if(allobj) rl(fd); if (astart) { arstream(fd, astart); arfree(astart); } if (amiddle) { arstream(fd, amiddle); arfree(amiddle); } if (aend) { arstream(fd, aend); arfree(aend); } close(fd); }
/* * Stream the three temp files to an archive */ void install(char *arname, Arfile *astart, Arfile *amiddle, Arfile *aend, int createflag) { int fd; if(allobj && dupfound) { fprint(2, "%s not changed\n", arname); return; } /* leave note group behind when copying back; i.e. sidestep interrupts */ rfork(RFNOTEG); if(createflag) fprint(2, "ar: creating %s\n", arname); fd = arcreate(arname); if(allobj) rl(fd); if (astart) { arstream(fd, astart); arfree(astart); } if (amiddle) { arstream(fd, amiddle); arfree(amiddle); } if (aend) { arstream(fd, aend); arfree(aend); } close(fd); }