Skip to content

Commit fab69d9

Browse files
authored
Merge pull request #271 from Affonso-Gui/master
Share uninterned symbols in *print-circle*
2 parents 10158f9 + d61db91 commit fab69d9

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lisp/c/printer.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,10 @@ register context *ctx;
312312
register pointer p;
313313
{ register int i,s;
314314

315-
if (isnum(p) || pissymbol(p)) return;
315+
if (isnum(p) || (pissymbol(p) && p->c.sym.homepkg != NIL) ) return;
316316
if (!p_marked(p)) {
317317
p_mark_on(p);
318+
if (pissymbol(p)) return;
318319
if (pisvector(p)) {
319320
if (elmtypeof(p)<ELM_POINTER) return;
320321
s=vecsize(p);
@@ -560,8 +561,7 @@ register int prlevel;
560561
if ((x<(pointer)(ctx->stack)) && ((pointer)(ctx->stacklimit)<x)){
561562
printint(ctx,(eusinteger_t)x,f,intval(Spevalof(PRINTBASE)),0,0); return;}
562563
#endif
563-
if (pissymbol(x)) { printsym(ctx,x,f); return;}
564-
else if (pisratio(x)) {
564+
if (pisratio(x)) {
565565
printnum(ctx,x,f,intval(Spevalof(PRINTBASE)),0,0); return;}
566566
else if (pisbignum(x)) {
567567
printnum(ctx,x,f,intval(Spevalof(PRINTBASE)),0,0);
@@ -580,6 +580,7 @@ register int prlevel;
580580
return; }
581581
else fobj=x->c.obj.iv[0];
582582
if (classof(x)==C_CONS) printlist(ctx,x,f,fobj,prlevel-1);
583+
else if (pissymbol(x)) { printsym(ctx,x,f); return;}
583584
else if (pisvector(x)) printvector(ctx,x,f,fobj,prlevel-1);
584585
else if (Spevalof(PROBJECT)!=NIL) prinxobj(ctx,x,f,fobj,prlevel-1);
585586
else if (pisarray(x) && (classof(x)==C_ARRAY)) printarray(ctx,x,f,prlevel-1);

0 commit comments

Comments
 (0)