/* Return true (1) if and only if the supplied filter is NULL or * the programme struct matches both the re_date and re_time regular * expressions. The re_date expression must match the date when * formatted by the dateString function and the re_time expression must * match the 4-digit formatted start time. A NULL regular expression * always matches. */ int progMatches(const Programme *pProg, const Filter *pFilter){ int isMatch = 0; char dateStringBuffer[DATE_TIME_BUFF_SIZE]; char timeStringBuffer[DATE_TIME_BUFF_SIZE]; makeDateString(&pProg->start,dateStringBuffer); makeTimeString(&pProg->start,timeStringBuffer); if ((!regexec(pFilter->re_date,dateStringBuffer,0,NULL,0) && !regexec(pFilter->re_time,timeStringBuffer,0,NULL,0)) || pFilter == NULL){ isMatch = 1; } return isMatch; }
void dialCalendar::MessageReceived(BMessage *Message) { switch (Message->what) { case BUT_PREVY: year--; RefreshCalendar(); break; case BUT_PREVM: month--; if (month==0) { month = 12; year--; } RefreshCalendar(); break; case BUT_NEXTM: month++; if (month==13) { month = 1; year++; } RefreshCalendar(); break; case BUT_NEXTY: year++; RefreshCalendar(); break; case BUT_CAL: { int32 x,y; if (Message->FindInt32("_x", &x) == B_OK) { if (Message->FindInt32("_y", &y) == B_OK) { day = caldaytab[x][y]; RefreshCalendar(); } } break; } case BUT_OK: { // set new value dateField->Looper()->Lock(); dateField->SetText(makeDateString()); dateField->Looper()->Unlock(); // notify owner handler->Looper()->PostMessage(new BMessage(msgdc)); Quit(); break; } default: BWindow::MessageReceived(Message); break; } }
void dialCalendar::RefreshCalendar(void) { BString tmp; int d = getdayofweek(year,month,1); int m = daysinmonth(year,month); int i = 0; int j = 0; int k = 1; // 1st line while (i<d) { caldaytab[i][j] = -1; caltab[i][j]->SetLabel(""); caltab[i][j]->SetEnabled(false); i++; }; // next lines while (k<=m) { tmp = ""; tmp << k; caldaytab[i][j] = k; caltab[i][j]->SetLabel(tmp.String()); caltab[i][j]->SetEnabled(true); i++; k++; if (i>=7) { i=0; j++; } } // finish last lines while (j<6) { caldaytab[i][j] = -1; caltab[i][j]->SetLabel(""); caltab[i][j]->SetEnabled(false); i++; if (i>=7) { i=0; j++; } } monthyear->SetText(makeDateString()); this->UpdateIfNeeded(); }
MAIN(ejsCgiMain, int argc, char **argv) { cchar *searchPath, *argp; int nextArg, err; /* * Create the Embedthis Portable Runtime (MPR) and setup a memory failure handler */ mpr = mprCreate(argc, argv, ejsMemoryFailure); mprSetAppName(mpr, argv[0], 0, 0); if (strcmp(mprGetAppName(mpr), "ejscgi-debug") == 0) { debug++; } if (mprStart(mpr, MPR_START_EVENTS_THREAD) < 0) { mprError(mpr, "Can't start mpr services"); return EJS_ERR; } for (err = 0, nextArg = 1; nextArg < argc; nextArg++) { argp = argv[nextArg]; if (*argp != '-') { break; } if (strcmp(argp, "--debug") == 0 || strcmp(argp, "-d") == 0) { debug++; #if BLD_DEBUG } else if (strcmp(argp, "--dummy") == 0) { dummy++; #endif } else if (strcmp(argp, "--log") == 0 || strcmp(argp, "-l") == 0) { if (nextArg >= argc) { err++; } else { ejsStartLogging(mpr, argv[++nextArg]); } } else if (strcmp(argp, "--searchpath") == 0) { if (nextArg >= argc) { err++; } else { searchPath = argv[++nextArg]; } } else if (strcmp(argp, "--version") == 0 || strcmp(argp, "-V") == 0) { mprPrintfError(mpr, "%s %s\n" "Copyright (C) Embedthis Software 2003-2011\n" "Copyright (C) Michael O'Brien 2003-2011\n", BLD_NAME, BLD_VERSION); exit(0); } else { err++; break; } } if (err) { mprPrintfError(mpr, "Usage: %s [options]\n" " Options:\n" " --log logSpec # Diagnostic trace\n" " --searchpath ejsPath # Module search path\n" " --version # Emit the program version information\n\n", mpr->name); return -1; } if (initControlBlock() < 0) { error(NULL, 0, "Can't initialize control block"); exit(1); } // FAST CGI must update this currentDate = makeDateString(0); if (getRequest() < 0) { error(NULL, 0, "Can't get request"); } else { processRequest(); } if (responseCode && responseMsg) { fprintf(stderr, "ejscgi: ERROR: %s\n", responseMsg); } return 0; }