////////// // // Called to make sure enough information is populated currently in the sem->ecCursorLine->sourceCode // buffer for the new indicated line length. // ////// bool iSEMLine_ensureLineLength(SThisCode* thisCode, SEM* sem, s32 newLineLength) { SLine* line; // Make sure the environment is sane if (sem && sem->line_cursor) { // Has this line had its data allocated? line = sem->line_cursor; if (!line->sourceCode) { // We need to allocate the initial data block iDatum_allocateSpace(line->sourceCode, max((s32)_ECM_MINIMUM_LINE_ALLOCATION_LENGTH, newLineLength)); line->sourceCode_populatedLength = 0; } // Is there room from where we are to the new line length? if (line->sourceCode->length > newLineLength) return(true); // We're good // If we get here, we need to reallocate return(iDatum_resize(line->sourceCode, newLineLength + _ECM_MINIMUM_LINE_ALLOCATION_LENGTH)); } // If we get here, failure return(false); }
void iVjr_init_createConstants(void) { s32 lnValue; f32 lfValue; // System constants used internally cvarSpace1 = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, cgc_spaceText, 1, false); cvarEmptyString = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, (cu8*)NULL, 0, false); cvarSpace2000 = iVariable_create(NULL, _VAR_TYPE_CHARACTER, NULL, true); cvarTrue = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_LOGICAL, (cu8*)NULL, 0, false); cvarFalse = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_LOGICAL, (cu8*)NULL, 0, false); cvarZero = iVariable_create(NULL, _VAR_TYPE_S64, NULL, true); lnValue = 6; cvarSix = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_S32, (cu8*)&lnValue, 4, false); lnValue = 8; cvarEight = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_S32, (cu8*)&lnValue, 4, false); lnValue = 16; cvarSixteen = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_S32, (cu8*)&lnValue, 4, false); lnValue = 32; cvarThirtyTwo = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_S32, (cu8*)&lnValue, 4, false); lnValue = 64; cvarSixtyFour = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_S32, (cu8*)&lnValue, 4, false); lnValue = 255; cvarTwoFiftyFive = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_S32, (cu8*)&lnValue, 4, false); lfValue = 0.5f; cvarFiftyPercent = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_F32, (cu8*)&lfValue, 4, false); lfValue = 0.5f; cvarOneHundredPercent = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_F32, (cu8*)&lfValue, 4, false); // 2000 blank spaces iDatum_allocateSpace(&cvarSpace2000->value, 2000); memset(cvarSpace2000->value.data, 32, 2000); // Constant logical *cvarTrue->value.data_s8 = (s8)_LOGICAL_TRUE; *cvarFalse->value.data_s8 = (s8)_LOGICAL_FALSE; // Datetime constants for parsing cvarSetDateAmerican = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "11/22/3333 12:34:56.000 AP", -1, true); cvarSetDateAnsi = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "3333.22.11 12:34:56.000 AP", -1, true); cvarSetDateBritish = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "22/11/3333 12:34:56.000 AP", -1, true); cvarSetDateFrench = cvarSetDateBritish; cvarSetDateGerman = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "22.11.3333 12:34:56.000 AP", -1, true); cvarSetDateItalian = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "22-11-3333 12:34:56.000 AP", -1, true); cvarSetDateJapan = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "3333/11/22 12:34:56.000 AP", -1, true); cvarSetDateTaiwan = cvarSetDateJapan; cvarSetDateLong = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "Dow, Mon 22, 3333 12:34:56.000 AP", -1, true); cvarSetDateShort = cvarSetDateAmerican; cvarSetDateUsa = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "11-22-33333 12:34:56.000 AP", -1, true); cvarSetDateDmy = cvarSetDateBritish; cvarSetDateMdy = cvarSetDateAmerican; cvarSetDateYmd = cvarSetDateJapan; // Other datetime constants for fixed date types varSetDateYyyyMmDdTHhMmSsMss = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "3333-11-22 12:34:56.000 AP", -1, true); varSetDateYyyyMmDdTHhMmSs = iVariable_createAndPopulate_byText(NULL, _VAR_TYPE_CHARACTER, "3333-11-22 12:34:56 AP", -1, true); }