@@ -312,9 +312,10 @@ register context *ctx;
312312register 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