// Test nsIFile::CopyToNative, verifying that the file did not exist at the new location // before and does afterward, and that it does exist at the old location too static bool TestCopy(nsIFile* aBase, nsIFile* aDestDir, const char* aName, const char* aNewName) { gFunction = "TestCopy"; nsCOMPtr<nsIFile> file = NewFile(aBase); if (!file) return false; nsCString name = FixName(aName); nsresult rv = file->AppendNative(name); if (!VerifyResult(rv, "AppendNative")) return false; bool exists; rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (before)")) return false; if (!exists) { fail("%s File %s does not exist", gFunction, name.get()); return false; } nsCOMPtr<nsIFile> newFile = NewFile(file); nsCString newName = FixName(aNewName); rv = newFile->CopyToNative(aDestDir, newName); if (!VerifyResult(rv, "MoveToNative")) return false; bool equal; rv = file->Equals(newFile, &equal); if (!VerifyResult(rv, "Equals")) return false; if (!equal) { fail("%s file object updated unexpectedly", gFunction); return false; } rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (after)")) return false; if (!exists) { fail("%s File %s was removed", gFunction, name.get()); return false; } file = NewFile(aDestDir); if (!file) return false; rv = file->AppendNative(newName); if (!VerifyResult(rv, "AppendNative")) return false; rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (new after)")) return false; if (!exists) { fail("%s Destination file %s was not created", gFunction, newName.get()); return false; } return true; }
void CollectFiles(const char *basepath) { FindData fd; char findspec[256], path[256]; sprintf(findspec, "%s*", basepath); if (!FindFile_FindFirst(&fd, findspec)) { // The first file found! do { if (!Str_Compare(&fd.name, ".") || !Str_Compare(&fd.name, "..")) continue; sprintf(path, "%s%s", basepath, Str_Text(&fd.name)); if (fd.attrib & A_SUBDIR) { CollectFiles(path); } else { NewFile(path, fd.size); } } while (!FindFile_FindNext(&fd)); } FindFile_Finish(&fd); }
// Test nsIFile::Create, verifying that the file exists and did not exist before, // and leaving it there for future tests static bool TestCreate(nsIFile* aBase, const char* aName, int32_t aType, int32_t aPerm) { gFunction = "TestCreate"; nsCOMPtr<nsIFile> file = NewFile(aBase); if (!file) return false; nsCString name = FixName(aName); nsresult rv = file->AppendNative(name); if (!VerifyResult(rv, "AppendNative")) return false; bool exists; rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (before)")) return false; if (exists) { fail("%s File %s already exists", gFunction, name.get()); return false; } rv = file->Create(aType, aPerm); if (!VerifyResult(rv, "Create")) return false; rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (after)")) return false; if (!exists) { fail("%s File %s was not created", gFunction, name.get()); return false; } return true; }
void TGo4LogInfo::SaveLogInfo() { QString TextToSave; QFileDialog fd( this, "Save analysis log window", QString(), "Plain text (*.txt)"); fd.setFileMode( QFileDialog::AnyFile ); fd.setAcceptMode(QFileDialog::AcceptSave); if ( fd.exec() != QDialog::Accepted ) return; QStringList flst = fd.selectedFiles(); if (flst.isEmpty()) return; QString fileName = flst[0]; if(!fileName.endsWith(".txt")) fileName.append(".txt"); QFile NewFile(fileName); NewFile.open( QIODevice::ReadWrite | QIODevice::Append ); QTextStream t( &NewFile ); QTreeWidgetItemIterator it(LogText); while (*it) { QTreeWidgetItem* itm = *it++; t << itm->text(0) << " " << itm->text(1) << " " << itm->text(3) << "\n"; } NewFile.close(); }
// Test nsIFile::Remove, verifying that the file does not exist and did before static bool TestRemove(nsIFile* aBase, const char* aName, bool aRecursive) { gFunction = "TestDelete"; nsCOMPtr<nsIFile> file = NewFile(aBase); if (!file) return false; nsCString name = FixName(aName); nsresult rv = file->AppendNative(name); if (!VerifyResult(rv, "AppendNative")) return false; bool exists; rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (before)")) return false; if (!exists) { fail("%s File %s does not exist", gFunction, name.get()); return false; } rv = file->Remove(aRecursive); if (!VerifyResult(rv, "Remove")) return false; rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (after)")) return false; if (exists) { fail("%s File %s was not removed", gFunction, name.get()); return false; } return true; }
// Test nsIFile::Normalize and native path setting/getting static bool TestNormalizeNativePath(nsIFile* aBase, nsIFile* aStart) { gFunction = "TestNormalizeNativePath"; nsCOMPtr<nsIFile> file = NewFile(aStart); if (!file) return false; nsCAutoString path; nsresult rv = file->GetNativePath(path); VerifyResult(rv, "GetNativePath"); path.Append(FixName("/./..")); rv = file->InitWithNativePath(path); VerifyResult(rv, "InitWithNativePath"); rv = file->Normalize(); VerifyResult(rv, "Normalize"); rv = file->GetNativePath(path); VerifyResult(rv, "GetNativePath (after normalization)"); nsCAutoString basePath; rv = aBase->GetNativePath(basePath); VerifyResult(rv, "GetNativePath (base)"); if (!path.Equals(basePath)) { fail("%s Incorrect normalization"); return false; } return true; }
main() { HANDLE hFile; LPDWORD res; OVERLAPPED osReader = {0}; osReader.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); printf("Start\n"); printf("Openning file... "); hFile = NewFile("test.tmp"); printf("result:\t%d\n", hFile); WriteFile( hFile, // дескриптор файла "ddddd", // буфер данных 5, // число байтов для записи res, // число записанных байтов NULL // асинхронный буфер ); CloseHandle(hFile); printf("Press any key..."); char ch = getch(); }
int LoadFile(PHGlobal *global,PH_parameter *parameter) { if( access(parameter->szconfig,0) >= 0 && MyReadFile(parameter->szconfig,global,parameter) == 0 ) { int flag = -1; // memset(global->szHost,0,sizeof(global->szHost)); // GetValue("settings","szHost",global->szHost,global); if( strlen(global->szHost) == 0 ) { printf("no appointing szHost\n"); NewHost(global); flag=1; } // memset(global->szUserID,0,sizeof(global->szUserID)); // GetValue("settings","szUserID",&global->szUserID,global); if( strlen(global->szUserID) == 0 ) { printf("no appointing szUserID\n"); NewUserID(global); flag=1; } // memset(global->szUserPWD,0,sizeof(global->szUserPWD)); // GetValue("settings","szUserPWD",&global->szUserPWD,global); if( strlen(global->szUserPWD) == 0 ) { printf("no appointing szUserPWD\n"); NewUserPWD(global); flag=1; } // memset(global->nicName,0,sizeof(global->nicName)); // GetValue("settings","nicName",&global->nicName,global); if( strlen(parameter->nicName) == 0 ) { printf("no appointing nicName\n"); NewnicName(global,parameter); flag=1; } if( strlen(parameter->logfile) == 0 ) { printf("no appointing logfile\n"); NewFile(parameter); flag=1; } if(flag == 1) if( SaveFile(parameter->szconfig,global,parameter) != 0 ) return -1; } else { if( NewIni(parameter->szconfig,global,parameter) != 0 ) return -1; } return 0; }
void MainWindow::on_actionNew_triggered() { if (m_isSomethingChanged) { AutoSave(); } NewFile(); ui->actionSave->setEnabled(false); }
static File* GetFile (unsigned Name) /* Get a file entry with the given name. Create a new one if needed. */ { File* F = FindFile (Name); if (F == 0) { /* Create a new one */ F = NewFile (Name); } return F; }
int NewIni(char* save_file,PHGlobal *global,PH_parameter *parameter) { NewHost(global); NewUserID(global); NewUserPWD(global); NewnicName(global,parameter); NewFile(parameter); if( SaveFile(save_file,global,parameter) != 0 ) return -1; return 0; }
TWavFile::TWavFile() { FileName=""; SampleRate=0; NoSamples=0; Bits=8; Data.Data=NULL; Volume=0; Bias=0; NewFile(); }
// Test nsIFile::AppendNative, verifying that aName is not a valid file name static bool TestInvalidFileName(nsIFile* aBase, const char* aName) { gFunction = "TestInvalidFileName"; nsCOMPtr<nsIFile> file = NewFile(aBase); if (!file) return false; nsCString name = FixName(aName); nsresult rv = file->AppendNative(name); if (NS_SUCCEEDED(rv)) { fail("%s AppendNative with invalid filename %s", gFunction, name.get()); return false; } return true; }
void SettingsManager::SaveFile() { QFile NewFile(FilePath); NewFile.open(QIODevice::WriteOnly); QTextStream OutStream(&NewFile); QStringList Keys = Map.keys(); foreach(const QString &Key, Map.keys()) { OutStream << Key << "," << Map[Key] << "\n"; } NewFile.close(); }
bool SolveSpaceUI::OpenFile(const std::string &filename) { bool autosaveLoaded = LoadAutosaveFor(filename); bool fileLoaded = autosaveLoaded || LoadFromFile(filename); if(fileLoaded) saveFile = filename; bool success = fileLoaded && ReloadAllImported(/*canCancel=*/true); if(success) { RemoveAutosave(); AddToRecentList(filename); } else { saveFile = ""; NewFile(); } AfterNewFile(); unsaved = autosaveLoaded; return success; }
MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){ ui->setupUi(this); settings = new QSettings("lumina-desktop","lumina-textedit"); Custom_Syntax::SetupDefaultColors(settings); //pre-load any color settings as needed colorDLG = new ColorDialog(settings, this); this->setWindowTitle(tr("Text Editor")); ui->tabWidget->clear(); closeFindS = new QShortcut(QKeySequence(Qt::Key_Escape), this); connect(closeFindS, SIGNAL(activated()), this, SLOT(closeFindReplace()) ); ui->groupReplace->setVisible(false); //Update the menu of available syntax highlighting modes QStringList smodes = Custom_Syntax::availableRules(); for(int i=0; i<smodes.length(); i++){ ui->menuSyntax_Highlighting->addAction(smodes[i]); } ui->actionLine_Numbers->setChecked( settings->value("showLineNumbers",true).toBool() ); ui->actionWrap_Lines->setChecked( settings->value("wrapLines",true).toBool() ); //Setup any connections connect(ui->actionClose, SIGNAL(triggered()), this, SLOT(close()) ); connect(ui->actionNew_File, SIGNAL(triggered()), this, SLOT(NewFile()) ); connect(ui->actionOpen_File, SIGNAL(triggered()), this, SLOT(OpenFile()) ); connect(ui->actionClose_File, SIGNAL(triggered()), this, SLOT(CloseFile()) ); connect(ui->actionSave_File, SIGNAL(triggered()), this, SLOT(SaveFile()) ); connect(ui->actionSave_File_As, SIGNAL(triggered()), this, SLOT(SaveFileAs()) ); connect(ui->menuSyntax_Highlighting, SIGNAL(triggered(QAction*)), this, SLOT(UpdateHighlighting(QAction*)) ); connect(ui->tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tabChanged()) ); connect(ui->tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(tabClosed(int)) ); connect(ui->actionLine_Numbers, SIGNAL(toggled(bool)), this, SLOT(showLineNumbers(bool)) ); connect(ui->actionWrap_Lines, SIGNAL(toggled(bool)), this, SLOT(wrapLines(bool)) ); connect(ui->actionCustomize_Colors, SIGNAL(triggered()), this, SLOT(ModifyColors()) ); connect(ui->actionFind, SIGNAL(triggered()), this, SLOT(openFind()) ); connect(ui->actionReplace, SIGNAL(triggered()), this, SLOT(openReplace()) ); connect(ui->tool_find_next, SIGNAL(clicked()), this, SLOT(findNext()) ); connect(ui->tool_find_prev, SIGNAL(clicked()), this, SLOT(findPrev()) ); connect(ui->tool_replace, SIGNAL(clicked()), this, SLOT(replaceOne()) ); connect(ui->tool_replace_all, SIGNAL(clicked()), this, SLOT(replaceAll()) ); connect(ui->line_find, SIGNAL(returnPressed()), this, SLOT(findNext()) ); connect(ui->line_replace, SIGNAL(returnPressed()), this, SLOT(replaceOne()) ); connect(colorDLG, SIGNAL(colorsChanged()), this, SLOT(UpdateHighlighting()) ); updateIcons(); //Now load the initial size of the window QSize lastSize = settings->value("lastSize",QSize()).toSize(); if(lastSize.width() > this->sizeHint().width() && lastSize.height() > this->sizeHint().height() ){ this->resize(lastSize); } }
/* * OpenWindowOnFile - open a window on a file */ vi_rc OpenWindowOnFile( const char *data ) { vi_rc rc; window_id wid; data = SkipLeadingSpaces( data ); if( data[0] == '\0' ) { data = NULL; } wid = current_window_id; rc = NewFile( data, true ); if( rc == ERR_NO_ERR ) { InactiveWindow( wid ); DCDisplayAllLines(); } return( rc ); } /* OpenWindowOnFile */
bool NoFile::Copy(const NoString& sOldFileName, const NoString& sNewFileName, bool bOverwrite) { if ((!bOverwrite) && (NoFile::Exists(sNewFileName))) { errno = EEXIST; return false; } NoFile OldFile(sOldFileName); NoFile NewFile(sNewFileName); if (!OldFile.Open()) { return false; } if (!NewFile.Open(O_WRONLY | O_CREAT | O_TRUNC)) { return false; } char szBuf[8192]; ssize_t len = 0; while ((len = OldFile.Read(szBuf, 8192))) { if (len < 0) { NO_DEBUG("NoFile::Copy() failed: " << strerror(errno)); OldFile.Close(); // That file is only a partial copy, get rid of it NewFile.Close(); NewFile.Delete(); return false; } NewFile.Write(szBuf, len); } OldFile.Close(); NewFile.Close(); struct stat st; GetInfo(sOldFileName, st); Chmod(sNewFileName, st.st_mode); return true; }
void SettingsManager::LoadFile() { QFileInfo CheckFile(FilePath); if (CheckFile.exists() && CheckFile.isFile()) { QFile ExistingFile(FilePath); ExistingFile.open(QIODevice::ReadOnly); QTextStream InStream(&ExistingFile); while(!InStream.atEnd()) { QStringList Line = InStream.readLine().split(","); Set(Line[0], Line[1]); } ExistingFile.close(); } else { QFile NewFile(FilePath); NewFile.open(QIODevice::WriteOnly); QTextStream OutStream(&NewFile); OutStream << "RememberPos,0\n" //remember where the window is pos + size << "Size,0;0\n" << "Pos,0;0\n" << "HideWin,0\n" << "LockPos,0\n" << "HideBar,0\n" << "AutoLoad,1\n" << "LinkHistory,10\n" << "HotkeyOpen,ctrl+shift+Right\n" << "HotkeyClose,ctrl+shift+Left\n" << "HotkeyAuto,ctrl+shift+Down\n"; NewFile.close(); LoadFile(); } }
// Test nsIFile::CreateUnique, verifying that the new file exists and if it existed before, // the new file has a different name. // The new file is left in place. static bool TestCreateUnique(nsIFile* aBase, const char* aName, int32_t aType, int32_t aPerm) { gFunction = "TestCreateUnique"; nsCOMPtr<nsIFile> file = NewFile(aBase); if (!file) return false; nsCString name = FixName(aName); nsresult rv = file->AppendNative(name); if (!VerifyResult(rv, "AppendNative")) return false; bool existsBefore; rv = file->Exists(&existsBefore); if (!VerifyResult(rv, "Exists (before)")) return false; rv = file->CreateUnique(aType, aPerm); if (!VerifyResult(rv, "Create")) return false; bool existsAfter; rv = file->Exists(&existsAfter); if (!VerifyResult(rv, "Exists (after)")) return false; if (!existsAfter) { fail("%s File %s was not created", gFunction, name.get()); return false; } if (existsBefore) { nsCAutoString leafName; rv = file->GetNativeLeafName(leafName); if (!VerifyResult(rv, "GetNativeLeafName")) return false; if (leafName.Equals(name)) { fail("%s File %s was not given a new name by CreateUnique", gFunction, name.get()); return false; } } return true; }
/* * OpenWindowOnFile - open a window on a file */ vi_rc OpenWindowOnFile( char *data ) { char *name; vi_rc rc; window_id wn; RemoveLeadingSpaces( data ); name = data; if( data[0] == 0 ) { name = NULL; } wn = CurrentWindow; rc = NewFile( name, true ); if( rc == ERR_NO_ERR ) { InactiveWindow( wn ); DCDisplayAllLines(); } return( rc ); } /* OpenWindowOnFile */
// Test nsIFile::OpenNSPRFileDesc with DELETE_ON_CLOSE, verifying that the file exists // and did not exist before, and leaving it there for future tests static bool TestDeleteOnClose(nsIFile* aBase, const char* aName, int32_t aFlags, int32_t aPerm) { gFunction = "TestDeleteOnClose"; nsCOMPtr<nsIFile> file = NewFile(aBase); if (!file) return false; nsCString name = FixName(aName); nsresult rv = file->AppendNative(name); if (!VerifyResult(rv, "AppendNative")) return false; bool exists; rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (before)")) return false; if (exists) { fail("%s File %s already exists", gFunction, name.get()); return false; } PRFileDesc* fileDesc; rv = file->OpenNSPRFileDesc(aFlags | nsIFile::DELETE_ON_CLOSE, aPerm, &fileDesc); if (!VerifyResult(rv, "OpenNSPRFileDesc")) return false; PRStatus status = PR_Close(fileDesc); if (status != PR_SUCCESS) { fail("%s File %s could not be closed", gFunction, name.get()); return false; } rv = file->Exists(&exists); if (!VerifyResult(rv, "Exists (after)")) return false; if (exists) { fail("%s File %s was not removed on close!", gFunction, name.get()); return false; } return true; }
static void RerasterizeAction (Widget widget, XEvent *event, String *params, Cardinal *num_params) { Arg args[1]; int number; if (current_file_name[0] == 0) { /* XXX display an error message */ return; } XtSetArg (args[0], XtNpageNumber, &number); XtGetValues (dvi, args, 1); NewFile(current_file_name); SetPageNumber (number); widget = widget; /* unused; suppress compiler warning */ event = event; params = params; num_params = num_params; }
// Test nsIFile::GetParent static bool TestParent(nsIFile* aBase, nsIFile* aStart) { gFunction = "TestParent"; nsCOMPtr<nsIFile> file = NewFile(aStart); if (!file) return false; nsCOMPtr<nsIFile> parent; nsresult rv = file->GetParent(getter_AddRefs(parent)); VerifyResult(rv, "GetParent"); bool equal; rv = parent->Equals(aBase, &equal); VerifyResult(rv, "Equals"); if (!equal) { fail("%s Incorrect parent", gFunction); return false; } return true; }
bool CFile::Copy(const CString& sOldFileName, const CString& sNewFileName, bool bOverwrite) { if ((!bOverwrite) && (CFile::Exists(sNewFileName))) { return false; } CFile OldFile(sOldFileName); CFile NewFile(sNewFileName); if (!OldFile.Open()) { return false; } if (!NewFile.Open(O_WRONLY | O_CREAT | O_TRUNC)) { return false; } char szBuf[8192]; int len = 0; while ((len = OldFile.Read(szBuf, 8192))) { if (len < 0) { DEBUG("CFile::Copy() failed: " << strerror(errno)); OldFile.Close(); // That file is only a partial copy, get rid of it NewFile.Close(); NewFile.Delete(); return false; } NewFile.Write(szBuf, len); } OldFile.Close(); NewFile.Close(); return true; }
void Looper::FillEvent(){ loader_->FillEventInfo(); if ( tree_ -> GetTreeNumber() != fNumber) { NewFile(); // Bad fix for partially reprocessed trees -- I loose one entry// FIXME tree_->GetEntry(fEntry); } loader_->FillEvent(); // fead the dumper before clearing the collections dump_->Fill(); #ifdef VERBOSE if(VERBOSE>1)Log(__FUNCTION__,"DEBUG","Clearing collections"); #endif loader_->Clear(); #ifdef VERBOSE if(VERBOSE>0) Log(__FUNCTION__,"DONE",""); #endif }
/* * AutoSaveInit - initialize for auto-save */ void AutoSaveInit( void ) { char path[FILENAME_MAX]; char path2[FILENAME_MAX]; char as_path[FILENAME_MAX]; char asl_path[FILENAME_MAX]; int len; int cnt; FILE *f; int pid; int ch; int handle; int off; // int old_len; int i; /* * initialize tmpname */ #ifdef __UNIX__ strcpy( currTmpName,"aaaaaaaaaaaa.tmp" ); #else strcpy( currTmpName,"aaaaaaaa.tmp" ); #endif pid = getpid(); itoa( pid, path, 36 ); len = strlen( path ); memcpy( &currTmpName[TMP_FNAME_LEN - len], path, len ); #ifdef __QNX__ { int len2, len3; int nid, uid; nid = getnid(); itoa( nid, path, 36 ); len2 = strlen( path ); memcpy( &currTmpName[TMP_FNAME_LEN - len - len2], path, len2 ); uid = getuid(); itoa( uid, path, 36 ); len3 = strlen( path ); memcpy( &currTmpName[TMP_FNAME_LEN - len - len2 - len3], path, len3 ); memcpy( &checkFileName[EXTRA_EXT_OFF], path, len3 ); memcpy( &checkFileTmpName[EXTRA_EXT_OFF], path, len3 ); memcpy( &lockFileName[EXTRA_EXT_OFF], path, len3 ); } #endif /* * check if we need to recover lost files */ if( EditFlags.RecoverLostFiles ) { cnt = 0; MakeTmpPath( as_path, checkFileName ); MakeTmpPath( asl_path, lockFileName ); off = strlen( as_path ) - 5; for( ch = START_CHAR; ch <= END_CHAR; ch++ ) { as_path[off] = ch; asl_path[off] = ch; handle = sopen3( as_path, O_RDONLY | O_TEXT, SH_DENYRW ); if( handle < 0 ) { continue; } f = fdopen( handle, "r" ); if( f != NULL ) { while( fgets( path2, FILENAME_MAX, f ) != NULL ) { for( i = strlen( path2 ); i && isWSorCtrlZ( path2[i - 1] ); --i ) { path2[i - 1] = '\0'; } NextWord1( path2, path ); RemoveLeadingSpaces( path2 ); NewFile( path, FALSE ); AddString2( &(CurrentFile->name), path2 ); SetFileWindowTitle( CurrentWindow, CurrentInfo, TRUE ); FileSPVAR(); CurrentFile->modified = TRUE; CurrentFile->check_readonly = TRUE; FTSRunCmds( path2 ); cnt++; } fclose( f ); remove( as_path ); } else { close( handle ); } remove( asl_path ); } if( cnt == 0 ) { MyPrintf( "No files recovered!\n" ); ExitEditor( -1 ); } Message1( "%d files recovered", cnt ); } if( EditVars.AutoSaveInterval == 0 ) { return; } // old_len = strlen( lockFileName ); MakeTmpPath( path, lockFileName ); len = strlen( path ) - strlen( lockFileName ); off = len + CHAR_OFF; for( ch = START_CHAR; ch <= END_CHAR; ch++ ) { path[off] = ch; lockFileHandle = sopen4( path, O_CREAT | O_TRUNC | O_RDWR | O_TEXT, SH_DENYRW, PMODE_RW ); if( lockFileHandle > 0 ) { break; } } if( lockFileHandle < 0 ) { // MyPrintf( "Too many editors running!\n" ); MyPrintf( "Error opening temp file - '%s'\n", strerror( errno ) ); ExitEditor( -1 ); } lockFileName[CHAR_OFF] = ch; checkFileName[CHAR_OFF] = ch; checkFileTmpName[CHAR_OFF] = ch; } /* AutoSaveInit */
/* * EditFile - read a file into text */ vi_rc EditFile( char *name, bool dammit ) { char *fn, **list, *currfn; int i, cnt, ocnt; int j, len; window_id wn = NO_WINDOW; char cdir[FILENAME_MAX]; info *ci, *il; bool usedir = false; char mask[FILENAME_MAX]; bool reset_dir; int index; char *altname = NULL; vi_rc rc; fn = MemAlloc( FILENAME_MAX ); /* * get file name */ strcpy( cdir, CurrentDirectory ); reset_dir = false; RemoveLeadingSpaces( name ); if( name[0] == '$' ) { EliminateFirstN( name, 1 ); usedir = true; } fn[0] = 0; // if( NextWord1( name, fn ) <= 0 ) if( GetStringWithPossibleQuote2( name, fn, false ) != ERR_NO_ERR ) { usedir = true; mask[0] = '*'; mask[1] = 0; } if( usedir ) { if( EditFlags.ExMode ) { MemFree( fn ); return( ERR_INVALID_IN_EX_MODE ); } len = strlen( fn ); if( len > 0 ) { i = len - 1; strcpy( mask, fn ); cnt = 0; while( i >= 0 ) { if( fn[i] == FILE_SEP ) { for( j = i + 1; j <= len; j++ ) { mask[j - (i + 1)] = fn[j]; } cnt = i; break; } i--; } fn[cnt] = 0; } if( fn[0] != 0 ) { rc = SelectFileOpen( fn, &fn, mask, true ); } else { #ifdef __WIN__ if( name[0] == '\0' ) { altname = MemAlloc( 1000 ); rc = SelectFileOpen( CurrentDirectory, &altname, mask, true ); NextWord1( altname, fn ); // if multiple, kill path if( isMultipleFiles( altname ) ) { NextWord1( altname, fn ); // get 1st name } } else { rc = SelectFileOpen( CurrentDirectory, &fn, mask, true ); } #else rc = SelectFileOpen( CurrentDirectory, &fn, mask, true ); #endif } if( altname ) { name = altname; } if( rc != ERR_NO_ERR || fn[0] == 0 ) { MemFree( fn ); SetCWD( cdir ); return( rc ); } } /* * loop through all files */ rc = ERR_NO_ERR; EditFlags.WatchForBreak = true; #ifdef __WIN__ ToggleHourglass( true ); #endif do { if( IsDirectory( fn ) ) { if( EditFlags.ExMode ) { rc = ERR_INVALID_IN_EX_MODE; reset_dir = true; break; } rc = SelectFileOpen( fn, &fn, "*", false ); if( rc != ERR_NO_ERR ) { reset_dir = true; break; } if( fn[0] == 0 ) { reset_dir = true; rc = ERR_NO_ERR; break; } } currfn = fn; ocnt = cnt = ExpandFileNames( currfn, &list ); if( !cnt ) { cnt = 1; } else { currfn = list[0]; } /* * loop through all expanded files */ index = 1; while( cnt > 0 ) { cnt--; /* * quit current file if ! specified, else just save current state */ if( dammit ) { ci = InfoHead; if( CurrentInfo == ci ) { ci = ci->next; } RemoveFromAutoSaveList(); #ifdef __WIN__ CloseAChildWindow( CurrentWindow ); #else CloseAWindow( CurrentWindow ); #endif FreeUndoStacks(); FreeMarkList(); FreeEntireFile( CurrentFile ); MemFree( DeleteLLItem( (ss **)&InfoHead, (ss **)&InfoTail, (ss *)CurrentInfo ) ); CurrentInfo = NULL; CurrentWindow = NO_WINDOW; } else { ci = CurrentInfo; SaveCurrentInfo(); wn = CurrentWindow; } /* * see if new file is already being edited */ SaveCurrentInfo(); for( il = InfoHead; il != NULL; il = il->next ) { if( SameFile( il->CurrentFile->name, currfn ) ) { break; } if( strcmp( CurrentDirectory, il->CurrentFile->home ) ) { /* directory has changed -- check with full path * note that this will fail if an absolute path * was specified thus we do the regular check first */ char path[FILENAME_MAX]; char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; char fname[_MAX_FNAME]; char ext[_MAX_EXT]; _splitpath( il->CurrentFile->name, drive, dir, fname, ext ); if( !strlen( drive ) ) { _splitpath( il->CurrentFile->home, drive, NULL, NULL, NULL ); } if( !strlen( dir ) ) { _splitpath( il->CurrentFile->home, NULL, dir, NULL, NULL ); } else if( dir[0] != '\\' ) { char dir2[_MAX_DIR]; _splitpath( il->CurrentFile->home, NULL, dir2, NULL, NULL ); strcat( dir2, dir ); strcpy( dir, dir2 ); } _makepath( path, drive, dir, fname, ext ); if( SameFile( path, currfn ) ) { break; } } } if( il != NULL ) { BringUpFile( il, true ); } else { /* * file not edited, go get it */ rc = NewFile( currfn, false ); if( rc != ERR_NO_ERR && rc != NEW_FILE ) { RestoreInfo( ci ); DCDisplayAllLines(); break; } if( !dammit ) { InactiveWindow( wn ); } if( EditFlags.BreakPressed ) { break; } } if( cnt > 0 ) { currfn = list[index]; index++; } } if( ocnt > 0 ) { MemFreeList( ocnt, list ); } if( EditFlags.BreakPressed ) { ClearBreak(); break; } } while( NextWord1( name, fn ) > 0 ); if( altname ) { MemFree( altname ); } MemFree( fn ); #ifdef __WIN__ ToggleHourglass( false ); #endif EditFlags.WatchForBreak = false; if( reset_dir ) { SetCWD( cdir ); } return( rc ); } /* EditFile */
void SolveSpaceUI::Init() { SS.tangentArcRadius = 10.0; // Then, load the registry settings. int i; // Default list of colors for the model material modelColor[0] = CnfThawColor(RGBi(150, 150, 150), "ModelColor_0"); modelColor[1] = CnfThawColor(RGBi(100, 100, 100), "ModelColor_1"); modelColor[2] = CnfThawColor(RGBi( 30, 30, 30), "ModelColor_2"); modelColor[3] = CnfThawColor(RGBi(150, 0, 0), "ModelColor_3"); modelColor[4] = CnfThawColor(RGBi( 0, 100, 0), "ModelColor_4"); modelColor[5] = CnfThawColor(RGBi( 0, 80, 80), "ModelColor_5"); modelColor[6] = CnfThawColor(RGBi( 0, 0, 130), "ModelColor_6"); modelColor[7] = CnfThawColor(RGBi( 80, 0, 80), "ModelColor_7"); // Light intensities lightIntensity[0] = CnfThawFloat(1.0f, "LightIntensity_0"); lightIntensity[1] = CnfThawFloat(0.5f, "LightIntensity_1"); ambientIntensity = 0.3; // no setting for that yet // Light positions lightDir[0].x = CnfThawFloat(-1.0f, "LightDir_0_Right" ); lightDir[0].y = CnfThawFloat( 1.0f, "LightDir_0_Up" ); lightDir[0].z = CnfThawFloat( 0.0f, "LightDir_0_Forward" ); lightDir[1].x = CnfThawFloat( 1.0f, "LightDir_1_Right" ); lightDir[1].y = CnfThawFloat( 0.0f, "LightDir_1_Up" ); lightDir[1].z = CnfThawFloat( 0.0f, "LightDir_1_Forward" ); exportMode = false; // Chord tolerance chordTol = CnfThawFloat(0.5f, "ChordTolerancePct"); // Max pwl segments to generate maxSegments = CnfThawInt(10, "MaxSegments"); // Chord tolerance exportChordTol = CnfThawFloat(0.1f, "ExportChordTolerance"); // Max pwl segments to generate exportMaxSegments = CnfThawInt(64, "ExportMaxSegments"); // View units viewUnits = (Unit)CnfThawInt((uint32_t)UNIT_MM, "ViewUnits"); // Number of digits after the decimal point afterDecimalMm = CnfThawInt(2, "AfterDecimalMm"); afterDecimalInch = CnfThawInt(3, "AfterDecimalInch"); // Camera tangent (determines perspective) cameraTangent = CnfThawFloat(0.3f/1e3f, "CameraTangent"); // Grid spacing gridSpacing = CnfThawFloat(5.0f, "GridSpacing"); // Export scale factor exportScale = CnfThawFloat(1.0f, "ExportScale"); // Export offset (cutter radius comp) exportOffset = CnfThawFloat(0.0f, "ExportOffset"); // Rewrite exported colors close to white into black (assuming white bg) fixExportColors = CnfThawBool(true, "FixExportColors"); // Draw back faces of triangles (when mesh is leaky/self-intersecting) drawBackFaces = CnfThawBool(true, "DrawBackFaces"); // Check that contours are closed and not self-intersecting checkClosedContour = CnfThawBool(true, "CheckClosedContour"); // Export shaded triangles in a 2d view exportShadedTriangles = CnfThawBool(true, "ExportShadedTriangles"); // Export pwl curves (instead of exact) always exportPwlCurves = CnfThawBool(false, "ExportPwlCurves"); // Background color on-screen backgroundColor = CnfThawColor(RGBi(0, 0, 0), "BackgroundColor"); // Whether export canvas size is fixed or derived from bbox exportCanvasSizeAuto = CnfThawBool(true, "ExportCanvasSizeAuto"); // Margins for automatic canvas size exportMargin.left = CnfThawFloat(5.0f, "ExportMargin_Left"); exportMargin.right = CnfThawFloat(5.0f, "ExportMargin_Right"); exportMargin.bottom = CnfThawFloat(5.0f, "ExportMargin_Bottom"); exportMargin.top = CnfThawFloat(5.0f, "ExportMargin_Top"); // Dimensions for fixed canvas size exportCanvas.width = CnfThawFloat(100.0f, "ExportCanvas_Width"); exportCanvas.height = CnfThawFloat(100.0f, "ExportCanvas_Height"); exportCanvas.dx = CnfThawFloat( 5.0f, "ExportCanvas_Dx"); exportCanvas.dy = CnfThawFloat( 5.0f, "ExportCanvas_Dy"); // Extra parameters when exporting G code gCode.depth = CnfThawFloat(10.0f, "GCode_Depth"); gCode.passes = CnfThawInt(1, "GCode_Passes"); gCode.feed = CnfThawFloat(10.0f, "GCode_Feed"); gCode.plungeFeed = CnfThawFloat(10.0f, "GCode_PlungeFeed"); // Show toolbar in the graphics window showToolbar = CnfThawBool(true, "ShowToolbar"); // Recent files menus for(i = 0; i < MAX_RECENT; i++) { RecentFile[i] = CnfThawString("", "RecentFile_" + std::to_string(i)); } RefreshRecentMenus(); // Autosave timer autosaveInterval = CnfThawInt(5, "AutosaveInterval"); // The default styles (colors, line widths, etc.) are also stored in the // configuration file, but we will automatically load those as we need // them. SetAutosaveTimerFor(autosaveInterval); NewFile(); AfterNewFile(); }
int main(int argc, char **argv) { char *file_name = 0; Cardinal i; static Arg labelArgs[] = { {XtNlabel, (XtArgVal) pageLabel}, }; XtAppContext xtcontext; Arg topLevelArgs[2]; Widget entry; Arg pageNumberArgs[1]; int page_number; toplevel = XtAppInitialize(&xtcontext, "GXditview", options, XtNumber (options), &argc, argv, fallback_resources, NULL, 0); if (argc > 2 || (argc == 2 && (!strcmp(argv[1], "-help") || !strcmp(argv[1], "--help")))) Syntax(argv[0]); XtGetApplicationResources(toplevel, (XtPointer)&app_resources, resources, XtNumber(resources), NULL, (Cardinal) 0); if (app_resources.print_command) strcpy(current_print_command, app_resources.print_command); XtAppAddActions(xtcontext, xditview_actions, XtNumber (xditview_actions)); XtSetArg (topLevelArgs[0], XtNiconPixmap, XCreateBitmapFromData (XtDisplay (toplevel), XtScreen(toplevel)->root, (char *)xdit_bits, xdit_width, xdit_height)); XtSetArg (topLevelArgs[1], XtNiconMask, XCreateBitmapFromData (XtDisplay (toplevel), XtScreen(toplevel)->root, (char *)xdit_mask_bits, xdit_mask_width, xdit_mask_height)); XtSetValues (toplevel, topLevelArgs, 2); if (argc > 1) file_name = argv[1]; /* * create the menu and insert the entries */ simpleMenu = XtCreatePopupShell ("menu", simpleMenuWidgetClass, toplevel, NULL, 0); for (i = 0; i < XtNumber (menuEntries); i++) { entry = XtCreateManagedWidget(menuEntries[i].name, smeBSBObjectClass, simpleMenu, NULL, (Cardinal) 0); XtAddCallback(entry, XtNcallback, menuEntries[i].function, NULL); } paned = XtCreateManagedWidget("paned", panedWidgetClass, toplevel, NULL, (Cardinal) 0); viewport = XtCreateManagedWidget("viewport", viewportWidgetClass, paned, NULL, (Cardinal) 0); dvi = XtCreateManagedWidget ("dvi", dviWidgetClass, viewport, NULL, 0); page = XtCreateManagedWidget ("label", labelWidgetClass, paned, labelArgs, XtNumber (labelArgs)); XtSetArg (pageNumberArgs[0], XtNpageNumber, &page_number); XtGetValues (dvi, pageNumberArgs, 1); if (file_name) NewFile (file_name); /* NewFile modifies current_file_name, so do this here. */ if (app_resources.filename) strcpy(current_file_name, app_resources.filename); XtRealizeWidget (toplevel); if (file_name) SetPageNumber (page_number); XtAppMainLoop(xtcontext); return 0; }