=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cdio/rip.c,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** src/usr.bin/cdio/rip.c 2007/05/29 21:13:09 1.5 --- src/usr.bin/cdio/rip.c 2007/07/31 21:21:11 1.6 *************** *** 1,3 **** --- 1,5 ---- + /* $OpenBSD: rip.c,v 1.6 2007/07/31 21:21:11 deraadt Exp $ */ + /* * Copyright (c) 2007 Alexey Vatchenko * *************** *** 356,361 **** --- 358,364 ---- int read_track(int fd, struct track_info *ti) { + struct timeval tv, otv, atv; u_int32_t i, blksize, n_sec; u_char *sec; int error; *************** *** 366,374 **** if (sec == NULL) return (-1); for (i = 0; i < n_sec; ) { ! fprintf(stderr, "track %u '%c' %08u/%08u %3u%%\r", ti->track, ! (ti->isaudio) ? 'a' : 'd', i, n_sec, 100 * i / n_sec); error = read_data_sector(i + ti->start_lba, sec, blksize); if (error == 0) { --- 369,387 ---- if (sec == NULL) return (-1); + timerclear(&otv); + atv.tv_sec = 1; + atv.tv_usec = 0; + for (i = 0; i < n_sec; ) { ! gettimeofday(&tv, NULL); ! if (timercmp(&tv, &otv, >)) { ! fprintf(stderr, "\rtrack %u '%c' %08u/%08u %3u%%", ! ti->track, ! (ti->isaudio) ? 'a' : 'd', i, n_sec, ! 100 * i / n_sec); ! timeradd(&tv, &atv, &otv); ! } error = read_data_sector(i + ti->start_lba, sec, blksize); if (error == 0) { *************** *** 388,394 **** } free(sec); ! fprintf(stderr, "track %u '%c' %08u/%08u 100%%\n", ti->track, (ti->isaudio) ? 'a' : 'd', i, n_sec); return (0); } --- 401,408 ---- } free(sec); ! fprintf(stderr, "\rtrack %u '%c' %08u/%08u 100%%\n", ! ti->track, (ti->isaudio) ? 'a' : 'd', i, n_sec); return (0); }