struct func_result_t Open(int entryStatus)
{
    gcInitBuiltinEnv();

    if (BUILTIN_FRAG->length < 2)
        PRINT_AND_EXIT(TOO_FEW_ARGUMENTS);

    if (_memMngr.vterms[BUILTIN_FRAG->offset].tag != V_CHAR_TAG)
        FMT_PRINT_AND_EXIT(BAD_FILE_OPEN_MODE, "Open");

    uint8_t mode = getOpenMode(BUILTIN_FRAG);
    uint8_t descr = getDescr(BUILTIN_FRAG);

    gcOpenFile(BUILTIN_FRAG, mode, descr);

    return (struct func_result_t){.status = OK_RESULT, .fieldChain = 0, .callChain = 0};
}

void gcOpenDefaultFile(uint8_t descr, uint8_t mode)
{
    checkAndCleanHeaps(0, PATTERN_FILE_NAME_LENGHT);
    char* fileName = (char*)(_memMngr.data + _memMngr.dataOffset);

    snprintf(fileName, PATTERN_FILE_NAME_LENGHT, FILE_NAME_PATTERN, descr);

    openFileWithName(fileName, mode, descr);
}
Exemple #2
0
bool Movie::equals(const Movie&mv) const{
    if(getId() == mv.getId() &&
       getTitle() == mv.getTitle() &&
       getFile() == mv.getFile() &&
       getThumbsFile() == mv.getThumbsFile() &&
       getDescr() == mv.getDescr() &&
       getPosterFile() == mv.getPosterFile() &&
       getYear() == mv.getYear() &&
       getRating() == mv.getRating())
        return true;
    else
        return false;
}
Exemple #3
0
void Cocoon::featureSpecific_examine() {
  if(itemContainer_.items_.empty() && isContentKnown_) {
    eng->log->addMessage("The cocoon is empty.");
  } else {
    vector<CocoonAction_t> possibleActions;
    getPossibleActions(possibleActions);

    vector<string> actionLabels;
    getChoiceLabels(possibleActions, actionLabels);

    string descr = "";
    getDescr(descr);

    const int CHOICE_NR = eng->popup->showMultiChoiceMessage(
                            descr, true, actionLabels, "A cocoon");
    doAction(possibleActions.at(static_cast<unsigned int>(CHOICE_NR)));
  }
}