struct getwordstruct gwarea;
struct generalitemstruct item;
longline line;
+ const struct userinfostruct *uinfo;
snprintf(wger,sizeof(wger),"%s/sarg-general",dirname);
if((fp_in=fopen(wger,"r"))==NULL) {
unlink(top2);
- if((fp_top1=fopen(top1,"a"))==NULL) {
- debuga(_("(email) Cannot open file %s\n"),top1);
- exit(EXIT_FAILURE);
- }
-#if defined(__FreeBSD__)
- fprintf(fp_top1,"TOTAL\t%qu\t%qu\t%qu\n",ttnbytes,ttnacc,ttnelap);
-#else
- fprintf(fp_top1,"TOTAL\t%"PRIu64"\t%"PRIu64"\t%"PRIu64"\n",(uint64_t)ttnbytes,(uint64_t)ttnacc,(uint64_t)ttnelap);
-#endif
- fclose(fp_top1);
-
if((fp_top1=fopen(top1,"r"))==NULL) {
debuga(_("(email) Cannot open file %s\n"),top1);
exit(EXIT_FAILURE);
exit(EXIT_FAILURE);
}
+ uinfo=userinfo_find_from_id(user);
+ if (!uinfo) {
+ debuga(_("Unknown user ID %s in file %s\n"),user,top1);
+ exit(EXIT_FAILURE);
+ }
+
perc=(ttnbytes) ? nbytes * 100. / ttnbytes : 0;
perc2=(ttnelap) ? elap * 100. / ttnelap : 0;
posicao++;
- if(strcmp(user,"TOTAL") == 0){
- fputs("------- -------------------- -------- --------------- ------- ---------- ---------- -------\n",fp_top3);
#if defined(__FreeBSD__)
- fprintf(fp_top3,"%-7s %20s %8qu %15s %8s %9s %10qu\n",_("TOTAL")," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap);
+ fprintf(fp_top3,"%7d %20s %8lld %15s %3.2lf%% %10s %10qu %3.2lf%%\n",posicao,uinfo->label,nacc,fixnum(nbytes,1),perc,buildtime(elap),elap,perc2);
#else
- fprintf(fp_top3,"%-7s %20s %8"PRIu64" %15s %8s %9s %10"PRIu64"\n",_("TOTAL")," ",(uint64_t)ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),(uint64_t)ttnelap);
+ fprintf(fp_top3,"%7d %20s %8"PRIu64" %15s %3.2lf%% %10s %10"PRIu64" %3.2lf%%\n",posicao,uinfo->label,(uint64_t)nacc,fixnum(nbytes,1),perc,buildtime(elap),(uint64_t)elap,perc2);
#endif
- } else {
+ }
+
+ // output total
+ fputs("------- -------------------- -------- --------------- ------- ---------- ---------- -------\n",fp_top3);
#if defined(__FreeBSD__)
- fprintf(fp_top3,"%7d %20s %8lld %15s %3.2lf%% %10s %10qu %3.2lf%%\n",posicao,user,nacc,fixnum(nbytes,1),perc,buildtime(elap),elap,perc2);
+ fprintf(fp_top3,"%-7s %20s %8qu %15s %8s %9s %10qu\n",_("TOTAL")," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap);
#else
- fprintf(fp_top3,"%7d %20s %8"PRIu64" %15s %3.2lf%% %10s %10"PRIu64" %3.2lf%%\n",posicao,user,(uint64_t)nacc,fixnum(nbytes,1),perc,buildtime(elap),(uint64_t)elap,perc2);
+ fprintf(fp_top3,"%-7s %20s %8"PRIu64" %15s %8s %9s %10"PRIu64"\n",_("TOTAL")," ",(uint64_t)ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),(uint64_t)ttnelap);
#endif
- }
- }
+ // compute and write average
if (totuser>0) {
tnbytes=(totuser) ? ttnbytes / totuser : 0;
avgacc=ttnacc/totuser;