@@ -312,9 +312,10 @@ register context *ctx;
312
312
register pointer p ;
313
313
{ register int i ,s ;
314
314
315
- if (isnum (p ) || pissymbol (p )) return ;
315
+ if (isnum (p ) || ( pissymbol (p ) && p -> c . sym . homepkg != NIL ) ) return ;
316
316
if (!p_marked (p )) {
317
317
p_mark_on (p );
318
+ if (pissymbol (p )) return ;
318
319
if (pisvector (p )) {
319
320
if (elmtypeof (p )< ELM_POINTER ) return ;
320
321
s = vecsize (p );
@@ -560,8 +561,7 @@ register int prlevel;
560
561
if ((x < (pointer )(ctx -> stack )) && ((pointer )(ctx -> stacklimit )< x )){
561
562
printint (ctx ,(eusinteger_t )x ,f ,intval (Spevalof (PRINTBASE )),0 ,0 ); return ;}
562
563
#endif
563
- if (pissymbol (x )) { printsym (ctx ,x ,f ); return ;}
564
- else if (pisratio (x )) {
564
+ if (pisratio (x )) {
565
565
printnum (ctx ,x ,f ,intval (Spevalof (PRINTBASE )),0 ,0 ); return ;}
566
566
else if (pisbignum (x )) {
567
567
printnum (ctx ,x ,f ,intval (Spevalof (PRINTBASE )),0 ,0 );
@@ -580,6 +580,7 @@ register int prlevel;
580
580
return ; }
581
581
else fobj = x -> c .obj .iv [0 ];
582
582
if (classof (x )== C_CONS ) printlist (ctx ,x ,f ,fobj ,prlevel - 1 );
583
+ else if (pissymbol (x )) { printsym (ctx ,x ,f ); return ;}
583
584
else if (pisvector (x )) printvector (ctx ,x ,f ,fobj ,prlevel - 1 );
584
585
else if (Spevalof (PROBJECT )!= NIL ) prinxobj (ctx ,x ,f ,fobj ,prlevel - 1 );
585
586
else if (pisarray (x ) && (classof (x )== C_ARRAY )) printarray (ctx ,x ,f ,prlevel - 1 );
0 commit comments