register lispval ret
, temp
;
register lispval ret
, temp
;
register lispval fd
, type
;
if ( (ptr
=fdopen((int)fd
->i
, (char *)type
->a
.pname
))==NULL
)
lispval fname
, arglist
, envlist
, temp
;
char *args
[100], *envs
[100], estrs
[1024];
if (TYPE(arglist
)!=DTPR
&& arglist
!=nil
)
for (sp
=args
; arglist
!=nil
; arglist
=arglist
->d
.cdr
) {
if (TYPE(envlist
)!=DTPR
&& envlist
!=nil
)
for (sp
=envs
,cp
=estrs
; envlist
!=nil
; envlist
=envlist
->d
.cdr
) {
if (TYPE(temp
)!=DTPR
|| TYPE(temp
->d
.car
)!=ATOM
|| TYPE(temp
->d
.cdr
)!=ATOM
)
for (p
=temp
->d
.car
->a
.pname
; (*cp
++ = *p
++);) ;
for (p
=temp
->d
.cdr
->a
.pname
; (*cp
++ = *p
++);) ;
execve(fname
->a
.pname
, args
, envs
);
if (arg
!= nil
&& TYPE(arg
)==ATOM
)
leader
= arg
->a
.pname
[0];
sprintf(strbuf
, "%c%05d", leader
, counter
++);
return((lispval
)newatom());
type_len
; /* note type_len is in units of int */
register struct argent
*argp
;
register lispval pptr
, ind
, opptr
;
register struct argent
*lbot
, *np
;
errorh(Vermisc
, "remprop: Illegal first argument :",
if (TYPE(pptr
->cdr
)!=DTPR
)
errorh(Vermisc
, "remprop: Bad property list",
opptr
->cdr
= pptr
->cdr
->cdr
;
atm
->cdr
= pptr
->cdr
->cdr
;
nilplist
= pptr
->cdr
->cdr
;
atm
->plist
= pptr
->cdr
->cdr
;
if ((pptr
->cdr
)->cdr
== nil
) return(nil
);
error("ONLY ATOMS HAVE FUNCTION BINDINGS", FALSE
);
if (TYPE(lbot
->val
)==STRNG
)
if (TYPE(lbot
->val
)==ATOM
)
temp
->a
.pname
= (char *)CNIL
;
temp
->a
.clb
=(lispval
)atom_str
.next_free
;
atom_str
.next_free
=(char *) temp
;
register lispval work
, prev
;
char *front
, *temp
; int clean
;
sprintf(ctemp
,"%d",a
->i
);
sprintf(ctemp
,"%f",a
->r
);
if (*temp
== '-') temp
++;
clean
= clean
&& (ctable
[*temp
] != VNUM
);
clean
= (!(ctable
[*temp
++] & QUTMASK
));
strcpyn(ctemp
, front
, 99);
sprintf(ctemp
,"\"%s\"",front
);
error("prname does not support this type", FALSE
);
protect(ret
= prev
= newdot());
prev
->cdr
= work
= newdot();
register lispval handy
, work
;
register char *cp
= strbuf
;
extern int atmlen
; /* used by newatom and getatom */
for(handy
= lbot
->val
; handy
!=nil
; handy
= handy
->cdr
)
errorh(Vermisc
,"maknam/impode argument exceeds buffer",nil
,FALSE
,43,lbot
->val
);
work
= errorh(Vermisc
,"implode/maknam: Illegal type for this arg:",nil
,FALSE
,44,work
);
if(unintern
) return((lispval
)newatom());
else return((lispval
) getatom());
return(Iimplode(TRUE
)); /* unintern result */
return(Iimplode(FALSE
)); /* intern result */