@@ -530,7 +530,7 @@ void plugprtth(FILE *f, int fmt) {
530
530
531
531
switch (fmt ) {
532
532
case FMT_TEXT :
533
- fprintf (f ," C Size ratio%% C MB/s D MB/s Name File\n" );
533
+ fprintf (f ," C Size ratio%% C MB/s D MB/s SCORE Name File\n" );
534
534
break ;
535
535
case FMT_VBULLETIN :
536
536
fprintf (f ,"[table]C Size|ratio%|C MB/s|D MB/s|Name|File (MB=1.000.0000)\n" );
@@ -581,11 +581,12 @@ void plugprttf(FILE *f, int fmt) {
581
581
582
582
#define RATIO (_clen_ , _len_ ) ((double)_clen_*100.0/_len_)
583
583
#define FACTOR (_clen_ , _len_ ) ((double)_len_/(double)_clen_)
584
+ #define SCORE (_clen_ , _len_ ,_tc_ ,_td_ ) (_tc_ + 2.0 * _td_ + (double)_clen_/1000000.0)
584
585
585
586
void plugprt (struct plug * plug , long long totinlen , char * finame , int fmt , double * ptc , double * ptd , FILE * f ) {
586
587
double ratio = RATIO (plug -> len ,totinlen ),
587
588
//ratio = FACTOR(plug->len,totinlen),
588
- tc = TMBS (totinlen ,plug -> tc ), td = TMBS (totinlen ,plug -> td );
589
+ tc = TMBS (totinlen ,plug -> tc ), td = TMBS (totinlen ,plug -> td ), score = SCORE ( plug -> len , totinlen , plug -> tc , plug -> td ) ;
589
590
char name [256 ];
590
591
if (plug -> lev != INVLEV )
591
592
sprintf (name , "%s%s %d%s" , plug -> err ?"?" :"" , plug -> s , plug -> lev , plug -> prm );
@@ -601,25 +602,31 @@ void plugprt(struct plug *plug, long long totinlen, char *finame, int fmt, doubl
601
602
#ifdef _WIN32
602
603
HANDLE h = GetStdHandle (STD_OUTPUT_HANDLE );
603
604
fprintf (f , "%12" PRId64 " %5.1f " , plug -> len , ratio );
604
- #define BBOLD 15
605
+ #define BBOLD 2 //2=green, 15=white
605
606
if (c ) SetConsoleTextAttribute (h , BBOLD );
606
607
fprintf (f , "%8.2f " , tc );
607
608
if (c ) SetConsoleTextAttribute (h , 7 );
609
+
608
610
if (d ) SetConsoleTextAttribute (h , BBOLD );
609
611
fprintf (f , "%8.2f " , td );
610
612
if (d ) SetConsoleTextAttribute (h , 7 );
613
+
611
614
if (n ) SetConsoleTextAttribute (h , BBOLD );
612
- fprintf (f , "%-16s " , name );
615
+ fprintf (f , "%8.2f " , score );
613
616
if (n ) SetConsoleTextAttribute (h , 7 );
617
+
618
+ if (n ) SetConsoleTextAttribute (h , BBOLD );
619
+ fprintf (f , "%-16s" , name );
620
+ if (n ) SetConsoleTextAttribute (h , 7 );
614
621
fprintf (f , "%s\n" , finame );
615
622
#undef BBOLD
616
623
#else
617
- fprintf (f , "%12" PRId64 " %5.1f %s%8.2f%s %s%8.2f%s %s%-16s%s%s\n" ,
618
- plug -> len , ratio , c ?BOLDB :"" , tc , c ?BOLDE :"" , d ?BOLDB :"" , td , d ?BOLDE :"" , n ?BOLDB :"" , name , n ?BOLDE :"" , finame );
624
+ fprintf (f , "%12" PRId64 " %5.1f %s%8.2f%s %s%8.2f%s %s%8.2f%s %s% -16s%s%s\n" ,
625
+ plug -> len , ratio , c ?BOLDB :"" , tc , c ?BOLDE :"" , d ?BOLDB :"" , td , d ?BOLDE :"" , n ?BOLDB :"" , score , n ? BOLDE : "" , n ? BOLDB : "" , name , n ?BOLDE :"" , finame );
619
626
#endif
620
627
}
621
628
else
622
- fprintf (f ,"%12" PRId64 " %5.1f %8.2f %8.2f %-32s %s\n" , plug -> len , ratio , tc , td , name , finame );
629
+ fprintf (f ,"%12" PRId64 " %5.1f %8.2f %8.2f %8.2f % -32s %s\n" , plug -> len , ratio , tc , td , score , name , finame );
623
630
break ;
624
631
case FMT_VBULLETIN :
625
632
fprintf (f , "%12" PRId64 "|%5.1f|%s%8.2f%s|%s%8.2f%s|%s%-16s%s|%s\n" ,
@@ -1185,7 +1192,7 @@ unsigned long long plugfile(struct plug *plug, char *finame, unsigned long long
1185
1192
1186
1193
unsigned char * _cpy = _in , * out = (unsigned char * )_valloc (outsize ,2 ); if (!out ) die ("malloc error out size=%u\n" , outsize );
1187
1194
1188
- if ((cmp || tid ) && insizem && !(_cpy = _valloc (insizem ,3 )))
1195
+ if ((cmp || tid ) && insizem && !(_cpy = _valloc (insizem * 3 ,3 )))
1189
1196
die ("malloc error cpy size=%u\n" , insizem );
1190
1197
1191
1198
codini (insize , plug -> id , plug -> lev , plug -> prm );
0 commit comments