Exemple #1
0
static TermEntry* mergeFirst(TermEntry** termEntries, unsigned int nbFiles,
                             FILE** openFiles) {
  int nbElected = 0;
  int* indexes = electedEntries(termEntries, nbFiles, &nbElected);

  if (!nbElected) {
    pFree(indexes, nbElected * sizeof(int));
    indexes = NULL;
    return NULL;  // Finished
  }

  TermEntry* merged = NULL;
  if (!initTerm(&merged, termEntries[indexes[0]]->token)) return NULL;

  for (int i = 0; i < nbElected; ++i) {
    if (!merge(merged, termEntries[indexes[i]])) {
      pFreeTerm(termEntries[indexes[i]]);
      termEntries[indexes[i]] = NULL;
      pFree(indexes, nbElected * sizeof(int));
      indexes = NULL;
      return NULL;
    }
    pFreeTerm(termEntries[indexes[i]]);
    termEntries[indexes[i]] = NULL;

    termEntries[indexes[i]] = readTermEntry(openFiles[indexes[i]]);
  }

  pFree(indexes, nbElected * sizeof(int));
  indexes = NULL;
  return merged;
}
Exemple #2
0
int main() {
  char c;
  initTerm();
  while ( (c=getCharInBuff())!='a' ) {
    //printf("Loop");
    printf("%c", c);
  }
  resetTerm();
}
void createTerm (Term * t , char * w) {
	initTerm (t) ; 
	t->word = strdup(w) ;
}