Exemplo n.º 1
0
static int portaudio_error(PaError err, char *problem)
{
    char msgbuffer[256];
    if (err != paNoError) {
        snprintf(msgbuffer, sizeof(msgbuffer), 
                 "%s, error %d, %s.", problem, (int) err, 
                                Pa_GetErrorText(err));
        xlerrprint("warning", NULL, msgbuffer, s_unbound);
        return true;
    }
    return false;
}
Exemplo n.º 2
0
/* xlsignal - signal an error */
void xlsignal(const char *emsg, LVAL arg)
{
    XLCONTEXT *cptr;

    /* find an error catcher */
    for (cptr = xlcontext; cptr; cptr = cptr->c_xlcontext)
        if (cptr->c_flags & CF_ERROR) {
            if (cptr->c_expr && emsg)
                xlerrprint("error",NULL,emsg,arg);
            xljump(cptr,CF_ERROR,NIL);
        }
}
Exemplo n.º 3
0
static int breakloop(char *hdr, char *cmsg, char *emsg, NODE *arg, int cflag)
{
NODE ***oldstk,*expr,*val;
CONTEXT cntxt;
int type;
xlerrprint(hdr,cmsg,emsg,arg);
xlflush();
if (((s_tracenable)->n_info.n_xsym.xsy_value)) {
val = ((s_tlimit)->n_info.n_xsym.xsy_value);
xlbaktrace(((val) && (val)->n_type == 5) ? (int)((val)->n_info.n_xint.xi_int) : -1);
}
oldstk = xlsave(&expr,(NODE **)0);
xldebug++;
xlbegin(&cntxt,8|16|32,true);
for (type = 0; type == 0; ) {
if (type = setjmp(cntxt.c_jmpbuf))
switch (type) {
case 8:
xlflush();
type = 0;
continue;
case 16:
continue;
case 32:
if (cflag) {
stdputstr("[ continue from break loop ]\n");
continue;
}
else xlabort("this error can't be continued");
}
if (!xlread(((s_stdin)->n_info.n_xsym.xsy_value),&expr,0)) {
type = 16;
break;
}
expr = xleval(expr);
xlprint(((s_stdout)->n_info.n_xsym.xsy_value),expr,1);
xlterpri(((s_stdout)->n_info.n_xsym.xsy_value));
}
xlend(&cntxt);
xldebug--;
xlstack = oldstk;
if (type == 16) {
stdputstr("[ abort to previous level ]\n");
xlsignal(0,(NODE *)0);
}
}