@@ -53,9 +53,10 @@ enum {
53
53
VTSF64 ,
54
54
};
55
55
56
- #define VECT_TYPE ( s ) ((s)->size & 0xff)
56
+ static REBCNT bit_sizes [ 4 ] = { 8 , 16 , 32 , 64 };
57
57
58
- static REBCNT bit_sizes [4 ] = {8 , 16 , 32 , 64 };
58
+ #define VECT_TYPE (s ) ((s)->size & 0xff)
59
+ #define VECT_BIT_SIZE (bits ) (bit_sizes[bits & 3])
59
60
60
61
REBU64 f_to_u64 (float n ) {
61
62
union {
@@ -621,6 +622,7 @@ void Set_Vector_Row(REBSER *ser, REBVAL *blk)
621
622
union {REBU64 i ; REBDEC d ;} v ;
622
623
REBYTE buf [32 ];
623
624
REBYTE l ;
625
+ REBOOL indented = !GET_MOPT (mold , MOPT_INDENT );
624
626
625
627
if (GET_MOPT (mold , MOPT_MOLD_ALL )) {
626
628
len = VAL_TAIL (value );
@@ -635,8 +637,11 @@ void Set_Vector_Row(REBSER *ser, REBVAL *blk)
635
637
Pre_Mold (value , mold );
636
638
if (!GET_MOPT (mold , MOPT_MOLD_ALL )) Append_Byte (mold -> series , '[' );
637
639
if (bits >= VTUI08 && bits <= VTUI64 ) Append_Bytes (mold -> series , "unsigned " );
638
- Emit (mold , "N I I [" , type + 1 , bit_sizes [bits & 3 ], len );
639
- if (len ) New_Indented_Line (mold );
640
+ Emit (mold , "N I I [" , type + 1 , VECT_BIT_SIZE (bits ), len );
641
+ if (indented && len > 10 ) {
642
+ mold -> indent = 1 ;
643
+ New_Indented_Line (mold );
644
+ }
640
645
}
641
646
642
647
c = 0 ;
@@ -648,8 +653,7 @@ void Set_Vector_Row(REBSER *ser, REBVAL *blk)
648
653
l = Emit_Decimal (buf , v .d , 0 , '.' , mold -> digits );
649
654
}
650
655
Append_Bytes_Len (mold -> series , buf , l );
651
-
652
- if ((++ c > 7 ) && (n + 1 < vect -> tail )) {
656
+ if (indented && (++ c > 9 ) && (n + 1 < vect -> tail )) {
653
657
New_Indented_Line (mold );
654
658
c = 0 ;
655
659
}
@@ -660,7 +664,10 @@ void Set_Vector_Row(REBSER *ser, REBVAL *blk)
660
664
if (len ) mold -> series -> tail -- ; // remove final space
661
665
662
666
if (molded ) {
663
- if (len ) New_Indented_Line (mold );
667
+ if (indented && len > 10 ) {
668
+ mold -> indent = 0 ;
669
+ New_Indented_Line (mold );
670
+ }
664
671
Append_Byte (mold -> series , ']' );
665
672
if (!GET_MOPT (mold , MOPT_MOLD_ALL )) {
666
673
Append_Byte (mold -> series , ']' );
0 commit comments