コード例 #1
0
/* 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;
}
コード例 #2
0
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;
	}
}
コード例 #3
0
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();
}
コード例 #4
0
ファイル: ejsCgi.c プロジェクト: doghell/appweb-3
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;
}