/** * Increment the occurrences count of t and its subtrees */ void Occurrences::countOccurrences(Tree t) { setCount(t, getCount(t)+1); // increment t occurrences count for (int i=0; i<t->arity(); i++) { countOccurrences(t->branch(i)); } }
/** * Count the number of occurrences of each subtree of root */ Occurrences::Occurrences(Tree root) { fKey = specificKey(root); countOccurrences(root); setCount(root, 0); // root as no occurences in itself }
int Recurrence::countOccurrences(const QDate &enddate) const { return countOccurrences(d_startdate, enddate); }
char *htmlFormCgiVars(struct htmlPage *page, struct htmlForm *form, char *buttonName, char *buttonVal, struct dyString *dyHeader) /* Return cgi vars in name=val format from use having pressed * submit button of given name and value. */ { struct dyString *dy = newDyString(0); struct htmlFormVar *var; boolean isMime = isMimeEncoded(form); int mimeParts = 0; char boundary[256]; while(TRUE) { if (isMime) { /* choose a new string for the boundary */ /* Set initial seed */ int i = 0; safef(boundary,sizeof(boundary),"%s", "---------"); srand( (unsigned)time( NULL ) ); for(i=strlen(boundary);i<41;++i) { int r = (int) 26 * (rand() / (RAND_MAX + 1.0)); boundary[i] = r+'A'; } boundary[i] = 0; } if (form == NULL) form = page->forms; if (buttonName != NULL && !isMime) appendCgiVar(dy, buttonName, buttonVal); for (var = form->vars; var != NULL; var = var->next) { if (sameWord(var->tagName, "SELECT") || sameWord(var->tagName, "TEXTAREA") || (var->type != NULL && ((sameWord(var->type, "RADIO") || sameWord(var->type, "TEXTBOX") || sameWord(var->type, "PASSWORD") || sameWord(var->type, "HIDDEN") || sameWord(var->type, "TEXT") || sameWord(var->type, "FILE"))))) { char *val = var->curVal; if (val == NULL) val = ""; if (isMime) { ++mimeParts; appendMimeVar(dy, var->name, val, var->type, boundary); } else appendCgiVar(dy, var->name, val); } else if (var->type != NULL && sameWord(var->type, "CHECKBOX")) { if (var->curVal != NULL) { if (isMime) { ++mimeParts; appendMimeVar(dy, var->name, var->curVal, var->type, boundary); } else appendCgiVar(dy, var->name, var->curVal); } } else if (isMime && buttonName && sameWord(buttonName,var->name)) { ++mimeParts; appendMimeVar(dy, buttonName, buttonVal, NULL, boundary); } } if (isMime) { ++mimeParts; appendMimeTerminus(dy,boundary); if (countOccurrences(boundary,strlen(boundary),dy->string,dy->stringSize) != mimeParts) { /* boundary was found in input! # occurrences not as expected */ dyStringClear(dy); continue; /* if at first you don't succeed, try another boundary string */ } dyStringPrintf(dyHeader, "Content-type: multipart/form-data, boundary=%s\r\n",boundary); if (isMime && verboseLevel() == 2) { mustWrite(stderr, dyHeader->string, dyHeader->stringSize); mustWrite(stderr, dy->string, dy->stringSize); } } break; } return dyStringCannibalize(&dy); }