示例#1
0
文件: sam.c 项目: deadpixi/sam
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);
}
示例#2
0
文件: sam.c 项目: nivertech/plan9
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);
}