diff --git a/lisp/c/printer.c b/lisp/c/printer.c index 662fc7efa..eba30121a 100644 --- a/lisp/c/printer.c +++ b/lisp/c/printer.c @@ -312,9 +312,10 @@ register context *ctx; register pointer p; { register int i,s; - if (isnum(p) || pissymbol(p)) return; + if (isnum(p) || (pissymbol(p) && p->c.sym.homepkg != NIL) ) return; if (!p_marked(p)) { p_mark_on(p); + if (pissymbol(p)) return; if (pisvector(p)) { if (elmtypeof(p)stack)) && ((pointer)(ctx->stacklimit)c.obj.iv[0]; if (classof(x)==C_CONS) printlist(ctx,x,f,fobj,prlevel-1); + else if (pissymbol(x)) { printsym(ctx,x,f); return;} else if (pisvector(x)) printvector(ctx,x,f,fobj,prlevel-1); else if (Spevalof(PROBJECT)!=NIL) prinxobj(ctx,x,f,fobj,prlevel-1); else if (pisarray(x) && (classof(x)==C_ARRAY)) printarray(ctx,x,f,prlevel-1);