franz/lam7.c
/*** Ibindvars :: lambda bind values to variables
	called with a list of variables and values.
	does the special binding and returns a fixnum which represents
	the value of bnp before the binding
	Use by compiled progv's.
 ***/
Ibindvars :: lambda bind values to variables
called with a list of variables and values.
does the special binding and returns a fixnum which represents
the value of bnp before the binding
Use by compiled progv's.
Ibindvars :: lambda bind values to variables called with a list of variables and values . does the special binding and returns a fixnum which represents the value of bnp before the binding Use by compiled progv ' s .
lispval
Ibindvars()
{
    register lispval vars,vals,handy;
    struct nament *oldbnp = bnp;
    chkarg(2,"int:bindvars");
    vars = lbot[0].val;
    vals = lbot[1].val;
    if(vars == nil) return(inewint(oldbnp));
    if(TYPE(vars) != DTPR)
      errorh1(Vermisc,"progv (int:bindvars): bad first argument ", nil,
      		FALSE,0,vars);
   if((vals != nil) && (TYPE(vals) != DTPR))
     errorh1(Vermisc,"progv (int:bindvars): bad second argument ",nil,
     		FALSE,0,vals);
   for( ; vars != nil ; vars = vars->d.cdr , vals=vals->d.cdr)
   {
       handy = vars->d.car;
       if(TYPE(handy) != ATOM)
          errorh1(Vermisc,"progv (int:bindvars): non symbol argument to bind ",
	  	nil,FALSE,0,handy);
       PUSHDOWN(handy,vals->d.car);
   }
   return(inewint(oldbnp));
}
lispval Ibindvars ( ) { register lispval vars , vals , handy ; struct nament * oldbnp = bnp ; chkarg ( 2 , " " ) ; vars = lbot [ 0 ] . val ; vals = lbot [ 1 ] . val ; if ( vars == nil ) return ( inewint ( oldbnp ) ) ; if ( TYPE ( vars ) != DTPR ) errorh1 ( Vermisc , " " , nil , FALSE , 0 , vars ) ; if ( ( vals != nil ) && ( TYPE ( vals ) != DTPR ) ) errorh1 ( Vermisc , " " , nil , FALSE , 0 , vals ) ; for ( ; vars != nil ; vars = vars -> d . cdr , vals = vals -> d . cdr ) { handy = vars -> d . car ; if ( TYPE ( handy ) != ATOM ) errorh1 ( Vermisc , " " , nil , FALSE , 0 , handy ) ; PUSHDOWN ( handy , vals -> d . car ) ; } return ( inewint ( oldbnp ) ) ; }
Ibindvars :: lambda bind values to variables
called with a list of variables and values.
Ibindvars :: lambda bind values to variables called with a list of variables and values .