void hiccough(char *s) { if(rescuing) exit(EXIT_FAILURE); if(s) dprint(L"%s\n", s); resetcmd(); resetxec(); resetsys(); if(io > 0) close(io); if(undobuf->nrunes) Bdelete(undobuf, (Posn)0, undobuf->nrunes); update(); if (curfile) { if (curfile->state==Unread) curfile->state = Clean; else if (downloaded) outTs(Hcurrent, curfile->tag); } longjmp(mainloop, 1); }
void hiccough(char *s) { File *f; int i; if(rescuing) exits("rescue"); if(s) dprint("%s\n", s); resetcmd(); resetxec(); resetsys(); if(io > 0) close(io); /* * back out any logged changes & restore old sequences */ for(i=0; i<file.nused; i++) { f = file.filepptr[i]; if(f==cmd) continue; if(f->seq==seq) { bufdelete(&f->epsilon, 0, f->epsilon.nc); f->seq = f->prevseq; f->dot.r = f->prevdot; f->mark = f->prevmark; state(f, f->prevmod ? Dirty: Clean); } } update(); if (curfile) { if (curfile->unread) curfile->unread = FALSE; else if (downloaded) outTs(Hcurrent, curfile->tag); } longjmp(mainloop, 1); }