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); }
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(); } }
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; }
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; }