static void subsetFontRuns(const FontRuns *fontRuns, le_int32 start, le_int32 limit, FontRuns *sub) { le_int32 startRun = findRun(fontRuns, start); le_int32 endRun = findRun(fontRuns, limit - 1); sub->reset(); for (le_int32 run = startRun; run <= endRun; run += 1) { const LEFontInstance *runFont = fontRuns->getFont(run); le_int32 runLimit = fontRuns->getLimit(run) - start; if (run == endRun) { runLimit = limit - start; } sub->add(runFont, runLimit); } }
void addRun(Run r[], int numRuns) { char answer, name[20]; int index, h, m, s, totalSecs; printf("(a)dd run or (q)uit: "); scanf(" %c", &answer); while(answer == 'a') { printf("\nRun Name: "); scanf("%s", name); findRun(r, numRuns, name, &index); if(index == -1) { numRuns += 1; strcpy(r[numRuns - 1].name, name); printf("Distance in Miles: "); scanf("%lf", &r[numRuns - 1].distance); printf("Time (hh mm ss): "); scanf("%2d %2d %2d", &h, &m, &s); totalSecs = s + m * SECS_PER_MIN + h * SECS_PER_HOUR; r[numRuns - 1].prSec = totalSecs; r[numRuns - 1].count = 1; } else { printf("Time (hh mm ss): "); scanf("%2d %2d %2d", &h, &m, &s); totalSecs = s + m * SECS_PER_MIN + h * SECS_PER_HOUR; if(totalSecs < r[index].prSec) { r[index].prSec = totalSecs; } r[index].count += 1; } displayRuns(r, numRuns); printf("(a)dd run or (q)uit: "); scanf(" %c", &answer); } writeFile(r, numRuns); return; }
int addRun(Run r[], int numRuns) { int i, j; char name[20]; Time pr; printf("Run Name: "); scanf("%s", name); i = findRun(r, numRuns, name); if (i == -1) { for(j=0; j<strlen(name); j++) r[numRuns].name[j]=name[j]; r[numRuns].name[j] = '\0'; printf("Distance in Miles: "); scanf("%lf", &r[numRuns].distance); printf("Time (hh mm ss): "); scanf("%d %d %d", &pr.hours, &pr.minutes, &pr.seconds); r[numRuns].prSec = (pr.hours*3600 + pr.minutes*60 + pr.seconds); r[numRuns].count = 1; numRuns++; } else { printf("Time (hh mm ss): "); scanf("%d %d %d", &pr.hours, &pr.minutes, &pr.seconds); if ((pr.hours*3600 + pr.minutes*60 + pr.seconds) < r[i].prSec) r[i].prSec = (pr.hours*3600 + pr.minutes*60 + pr.seconds); r[i].count++; } return numRuns; }