示例#1
0
void cm3DebugRegs::printDebugRegisters(debug_regs flags)
{
    const int c = 4;
    if (flags.testFlag(FPB))
        systemPrint(printFPBRegisters(),c);
    if (flags.testFlag(ITM))
        systemPrint(printITMRegisters(),c);
    if (flags.testFlag(TPI))
        systemPrint(printTPIRegisters(),c);
    if (flags.testFlag(CORE))
        systemPrint(printCoreDebugRegs(),c);
}
示例#2
0
void System::saveFile(TextEditInput *edit, strlib::String &path) {
  if (!edit->save(path)) {
    systemPrint("\nfailed to save: %s. error: %s\n", path.c_str(), strerror(errno));
    alert(strerror(errno), "Failed to save file");
  } else {
    _modifiedTime = getModifiedTime();
  }
}
示例#3
0
char *System::loadResource(const char *fileName) {
  char *buffer = NULL;
  if (strstr(fileName, "://") != NULL) {
    String *cached = _cache.get(fileName);
    if (cached != NULL) {
      int len = cached->length();
      buffer = (char *)malloc(len + 1);
      memcpy(buffer, cached->c_str(), len);
      buffer[len] = '\0';
    } else {
      int handle = 1;
      var_t *var_p = v_new();
      dev_file_t *f = dev_getfileptr(handle);
      _output->setStatus("Loading...");
      _output->redraw();
      if (dev_fopen(handle, fileName, 0)) {
        if (http_read(f, var_p) == 0) {
          systemPrint("\nfailed to read %s\n", fileName);
        } else {
          int len = var_p->v.p.length;
          buffer = (char *)malloc(len + 1);
          memcpy(buffer, var_p->v.p.ptr, len);
          buffer[len] = '\0';
          _cache.add(fileName, buffer);
        }
      } else {
        systemPrint("\nfailed to open %s\n", fileName);
      }
      _output->setStatus(NULL);
      dev_fclose(handle);
      v_free(var_p);
      v_detach(var_p);
      opt_file_permitted = 0;
    }
  }
  if (buffer == NULL) {
    // remove failed item from history
    strlib::String *old = _history.peek();
    if (old && old->equals(fileName)) {
      delete _history.pop();
    }
  }
  return buffer;
}
示例#4
0
char *System::readSource(const char *fileName) {
  _activeFile.clear();
  char *buffer;
  if (!_mainBas && _editor != NULL && _loadPath.equals(fileName)) {
    buffer = _editor->getTextSelection();
  } else {
    buffer = loadResource(fileName);
    if (!buffer) {
      int h = open(fileName, O_BINARY | O_RDONLY, 0644);
      if (h != -1) {
        struct stat st;
        if (fstat(h, &st) == 0) {
          int len = st.st_size;
          buffer = (char *)malloc(len + 1);
          len = read(h, buffer, len);
          buffer[len] = '\0';
          _modifiedTime = st.st_mtime;
          char fullPath[PATH_MAX + 1];
          char *path = realpath(fileName, fullPath);
          if (path != NULL) {
            // set full path for getModifiedTime()
            _activeFile = fullPath;
          } else {
            _activeFile = fileName;
          }
        }
        close(h);
      }
    }
  }
  if (buffer != NULL) {
    delete [] _programSrc;
    int len = strlen(buffer);
    _programSrc = new char[len + 1];
    strncpy(_programSrc, buffer, len);
    _programSrc[len] = '\0';
    _srcRendered = false;
    systemPrint("Opened: %s %d bytes\n", fileName, len);
  }
  return buffer;
}