BOOL CLoad::OnInitDialog() { CDialog::OnInitDialog(); PrintFileName(); MakeFileList(); if (acnum==LSD_LOAD || acnum==LSD_LOAD_DESELECT) { } else { CREdit* e=GETDLGITEM(IDC_SAVENAME); e->SetCaption("\b\b\x20"); //set max length of 32 characters e->SetCaption("\b\t\v\n\\\"\':.|¦?*"); //block these characters. Space is allowed. } // currrow = 0; // filename = "file0"; // CRListBox* l=GETDLGITEM(IDC_RLISTBOXFILE); // l->SetHilightRow(currrow); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
//==================================== //引数のファイルからパックファイルを作成します。 //==================================== HRESULT MyCompressData::JointFromFile(char *inFileName) { FILE *fin = fopen(inFileName,"r"); if(fin == NULL) { assert("そんなファイルないですよ"); return E_FAIL; } char outFileName[FILE_NAME_LENGTH]; if(NULL == fgets(outFileName,FILE_NAME_LENGTH,fin)) { assert("出力するファイルを書きましょう。"); return E_FAIL; } RejectLastNL(outFileName); char fileList[FILE_LIST_LENGTH] = ""; char buffer[FILE_NAME_LENGTH]; while(NULL != fgets(buffer,FILE_NAME_LENGTH,fin)) { RejectLastNL(buffer); MakeFileList(buffer,fileList); } fclose(fin); return Joint(fileList,outFileName); }
bool ArcApp::Create() { // turn m_args into a list of files, i.e. expand wildcards, recurse // directories and remove duplicates NameMap files; MakeFileList(files); wxOutputStreamPtr out(MakeOutputStream()); if (!out.get()) return false; wxArchiveOutputStreamPtr arc(m_factory->NewStream(*out)); for (NameMap::iterator it = files.begin(); it != files.end(); ++it) { wxString name = it->second; wxDateTime dt(wxFileModificationTime(name)); *m_info << "adding " << name.mb_str() << std::endl; if (wxDirExists(name)) { if (!arc->PutNextDirEntry(name, dt)) return false; } else { wxFFileInputStream in(name); if (in.Ok()) { if (!arc->PutNextEntry(name, dt, in.GetSize()) || !arc->Write(in) || !in.Eof()) return false; } } } return arc->Close() && out->Close(); }
void Rescan(Widget widget, XEvent *event, String *params, Cardinal *num_params) { char *dir; /* * get the mask string from the File or Export mask widget and put in * dirmask */ if (browse_up) { FirstArg(XtNstring, &dirmask); GetValues(browse_mask); FirstArg(XtNstring, &dir); GetValues(browse_dir); if (change_directory(dir)) /* make sure we are there */ return; strcpy(cur_browse_dir,dir); /* save in global var */ (void) MakeFileList(dir, dirmask, &dir_list, &file_list); NewList(browse_flist, file_list); NewList(browse_dlist, dir_list); } else if (file_up) { FirstArg(XtNstring, &dirmask); GetValues(file_mask); FirstArg(XtNstring, &dir); GetValues(file_dir); if (change_directory(dir)) /* make sure we are there */ return; strcpy(cur_file_dir,dir); /* save in global var */ strcpy(cur_export_dir,dir); /* set export directory to file directory */ (void) MakeFileList(dir, dirmask, &dir_list, &file_list); NewList(file_flist,file_list); NewList(file_dlist,dir_list); } else if (export_up) { FirstArg(XtNstring, &dirmask); GetValues(exp_mask); FirstArg(XtNstring, &dir); GetValues(exp_dir); if (change_directory(dir)) /* make sure we are there */ return; strcpy(cur_export_dir,dir); /* save in global var */ (void) MakeFileList(dir, dirmask, &dir_list, &file_list); NewList(exp_flist, file_list); NewList(exp_dlist, dir_list); } }
void mergeByComponent(TString component, const Char_t* fileList="calib.list", const Char_t* apath=0, const Char_t* apattern=0, Int_t fileDownloadTimeOut=10, const Char_t* localFileList="calib.list", const Char_t* mergedFileName="CalibObjects.root" ) { // merging procedure // component can be COPY, MAKEALIENLIST, component name or ALL // ALL will merge the full file // selecting components will only merge the selected top level // objects in the file // COPY only copies the the alien files from fileList then // saves a list of local downloaded files in localFileList. // MAKEALIENLIST produces a list of files on alien, uses root // to connect in case alien_xx utilities are not available // liek on the alien nodes /* load libs */ printf("Executing mergeByComponent.C\n"); gROOT->Macro("$ALICE_PHYSICS/PWGPP/CalibMacros/CPass0/LoadLibraries.C"); TH1::AddDirectory(0); Int_t fileDownloadTimeOut=10; /* copy only */ if (component == "COPY") { if (!apath || ! apattern){ printf("Alien find path or pattern not specified"); exit(1); } CopyCPass(fileList, localFileList, fileDownloadTimeOut); return; } /* make file list only */ if (component == "MAKEALIENLIST") { if (!apath || ! apattern){ printf("Alien find path or pattern not specified"); exit(1); } MakeFileList(apath, apattern, fileList); return; } /* merge component */ MergeCPass(fileList, component, mergedFileName); }
void kernel_function() { /* Set k1 */ asm("move $k1, $0\n"); /* Repair sysmem */ _sw(0x0200D821, 0x8800F714); _sw(0x3C038801, 0x8800F718); _sw(0x8C654384, 0x8800F71C); /* Patch loadexec */ SceModule2 *mod = _sceKernelFindModuleByName("sceLoadExec"); u32 text_addr = mod->text_addr; MAKE_JUMP(text_addr + 0x2E30, Reboot_Entry); /* Allow LoadExecVSH in whatever user level */ _sh(0x1000, text_addr + 0x241E); _sw(0, text_addr + 0x2460); _sceKernelIcacheInvalidateAll(); _sceKernelDcacheWritebackInvalidateAll(); MakeFileList(); /* Load Eboot */ int (* LoadExecVSH)(int apitype, const char *file, struct SceKernelLoadExecVSHParam *param, int unk2) = (void *)text_addr + 0x23D0; char program[64]; strcpy(program, rebootex_config.savedata_path); strcat(program, "/MENU.PBP"); struct SceKernelLoadExecVSHParam param; memset(¶m, 0, sizeof(param)); param.size = sizeof(param); param.argp = program; param.args = strlen(param.argp) + 1; param.key = "game"; LoadExecVSH(PSP_INIT_APITYPE_MS2, program, ¶m, 0x10000); }
void DoChangeDir(char *dir) { char *p; char ndir[PATH_MAX]; if (browse_up) { strcpy(ndir, cur_browse_dir); } else if (file_up) { strcpy(ndir, cur_file_dir); } else if (export_up) { strcpy(ndir, cur_export_dir); } if (dir != NULL && dir[0] != '/') { /* relative path, prepend current dir */ if (dir[strlen(dir) - 1] == '/') dir[strlen(dir) - 1] = '\0'; if (strcmp(dir, "..")==0) { /* Parent directory. */ if (*ndir == '\0') return; /* no current directory, */ /* can't do anything unless absolute path */ p = strrchr(ndir, '/'); *p = EOS; if (ndir[0] == EOS) strcpy(ndir, "/"); } else if (strcmp(dir, ".")!=0) { if (strcmp(ndir, "/")) /* At the root already */ strcat(ndir, "/"); strcat(ndir, dir); } } else { strcpy(ndir, dir); /* abs path copy to ndir */ } if (change_directory(ndir) != 0 ) { return; /* some problem, return */ } else if (MakeFileList(ndir, dirmask, &dirlist, &filelist) == False) { file_msg("Unable to list directory %s", ndir); return; } FirstArg(XtNstring, ndir); /* update the current directory and file/dir list widgets */ if (browse_up) { SetValues(browse_dir); strcpy(cur_browse_dir,ndir); /* update global var */ XawTextSetInsertionPoint(browse_dir, strlen(ndir)); NewList(browse_flist, filelist); NewList(browse_dlist, dirlist); } else if (file_up) { SetValues(file_dir); strcpy(cur_file_dir,ndir); /* update global var */ strcpy(cur_export_dir,ndir); /* set export directory to file directory */ XawTextSetInsertionPoint(file_dir, strlen(ndir)); NewList(file_flist,filelist); NewList(file_dlist,dirlist); } else if (export_up) { SetValues(exp_dir); strcpy(cur_export_dir,ndir); /* update global var */ XawTextSetInsertionPoint(exp_dir, strlen(ndir)); NewList(exp_flist, filelist); NewList(exp_dlist, dirlist); } CurrentSelectionName[0] = '\0'; }
void create_dirinfo(Boolean file_exp, Widget parent, Widget below, Widget *ret_beside, Widget *ret_below, Widget *mask_w, Widget *dir_w, Widget *flist_w, Widget *dlist_w, int file_width, Boolean file_panel) { Widget w,dir_alt,home; Widget file_viewport; Widget dir_viewport; XFontStruct *temp_font; int char_ht,char_wd; char *dir; dir_entry_cnt = NENTRIES; file_entry_cnt = NENTRIES; filelist = (char **) calloc(file_entry_cnt, sizeof(char *)); dirlist = (char **) calloc(dir_entry_cnt, sizeof(char *)); if (browse_up) { get_directory(cur_browse_dir); dir = cur_browse_dir; } else if (export_up) { get_directory(cur_export_dir); dir = cur_export_dir; } else { get_directory(cur_file_dir); dir = cur_file_dir; } if (file_up) { FirstArg(XtNlabel, "Fig files"); } else { FirstArg(XtNlabel, " Existing"); } NextArg(XtNfromVert, below); NextArg(XtNborderWidth, 0); NextArg(XtNtop, XtChainTop); NextArg(XtNbottom, XtChainTop); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainLeft); w = XtCreateManagedWidget("file_alt_label", labelWidgetClass, parent, Args, ArgCount); FirstArg(XtNfont, &temp_font); GetValues(w); char_ht = max_char_height(temp_font) + 2; char_wd = char_width(temp_font) + 2; /* make a viewport to hold the list widget of filenames */ FirstArg(XtNallowVert, True); if (file_up) { /* for the file panel, put the viewport below the Alternatives label */ NextArg(XtNfromVert, w); NextArg(XtNheight, char_ht * 15); /* show first 15 filenames */ } else { /* for the export or browse panel, put the viewport beside the Alternatives label */ NextArg(XtNfromVert, below); NextArg(XtNfromHoriz, w); if (browse_up) { NextArg(XtNheight, char_ht * 10); /* show 10 lines for existing browse files */ } else { NextArg(XtNheight, char_ht * 4); /* show 4 lines for existing export files */ } } NextArg(XtNborderWidth, INTERNAL_BW); NextArg(XtNwidth, file_width); NextArg(XtNtop, XtChainTop); /* chain so the viewport resizes fully */ NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainRight); file_viewport = XtCreateManagedWidget("vport", viewportWidgetClass, parent, Args, ArgCount); /* label for filename mask */ FirstArg(XtNlabel, "Filename Mask"); NextArg(XtNborderWidth, 0); NextArg(XtNfromVert, file_viewport); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainLeft); w = XtCreateManagedWidget("mask_label", labelWidgetClass, parent, Args, ArgCount); /* text widget for the filename mask */ FirstArg(XtNeditType, XawtextEdit); NextArg(XtNleftMargin, 4); NextArg(XtNheight, char_ht * 2); NextArg(XtNscrollHorizontal, XawtextScrollWhenNeeded); NextArg(XtNborderWidth, INTERNAL_BW); NextArg(XtNwidth, file_panel? F_FILE_WIDTH: E_FILE_WIDTH); NextArg(XtNfromHoriz, w); NextArg(XtNfromVert, file_viewport); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainRight); *mask_w = XtCreateManagedWidget("mask", asciiTextWidgetClass, parent, Args, ArgCount); XtOverrideTranslations(*mask_w, XtParseTranslationTable(mask_text_translations)); /* get the first directory listing */ FirstArg(XtNstring, &dirmask); GetValues(*mask_w); if (MakeFileList(dir, dirmask, &dir_list, &file_list) == False) file_msg("No files in directory?"); FirstArg(XtNlabel, " Current Dir"); NextArg(XtNborderWidth, 0); NextArg(XtNfromVert, *mask_w); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainLeft); w = XtCreateManagedWidget("dir_label", labelWidgetClass, parent, Args, ArgCount); FirstArg(XtNstring, dir); NextArg(XtNleftMargin, 4); NextArg(XtNinsertPosition, strlen(dir)); NextArg(XtNheight, char_ht * 2); NextArg(XtNborderWidth, INTERNAL_BW); NextArg(XtNscrollHorizontal, XawtextScrollWhenNeeded); NextArg(XtNeditType, XawtextEdit); NextArg(XtNfromVert, *mask_w); NextArg(XtNfromHoriz, w); NextArg(XtNwidth, file_panel? F_FILE_WIDTH: E_FILE_WIDTH); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainRight); *dir_w = XtCreateManagedWidget("dir_name", asciiTextWidgetClass, parent, Args, ArgCount); XtOverrideTranslations(*dir_w, XtParseTranslationTable(dir_translations)); /* directory alternatives */ FirstArg(XtNlabel, " Directories"); NextArg(XtNborderWidth, 0); NextArg(XtNfromVert, *dir_w); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainLeft); dir_alt = XtCreateManagedWidget("dir_alt_label", labelWidgetClass, parent, Args, ArgCount); /* put a Home button to the left of the list of directories */ FirstArg(XtNlabel, "Home"); NextArg(XtNfromVert, dir_alt); NextArg(XtNfromHoriz, dir_alt); NextArg(XtNhorizDistance, -(char_wd * 5)); NextArg(XtNborderWidth, INTERNAL_BW); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainLeft); home = XtCreateManagedWidget("home", commandWidgetClass, parent, Args, ArgCount); XtAddCallback(home, XtNcallback, GoHome, (XtPointer) NULL); /* put a button for showing/hiding hidden files below the Home button */ FirstArg(XtNlabel, show_hidden? "Hide Hidden": "Show Hidden"); NextArg(XtNfromVert, home); NextArg(XtNfromHoriz, dir_alt); NextArg(XtNhorizDistance, (int) -(char_wd * 10.5)); NextArg(XtNborderWidth, INTERNAL_BW); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainLeft); hidden = XtCreateManagedWidget("hidden", commandWidgetClass, parent, Args, ArgCount); XtAddCallback(hidden, XtNcallback, ShowHidden, (XtPointer) NULL); FirstArg(XtNallowVert, True); NextArg(XtNforceBars, True); NextArg(XtNfromHoriz, dir_alt); NextArg(XtNfromVert, *dir_w); NextArg(XtNborderWidth, INTERNAL_BW); NextArg(XtNwidth, file_panel? F_FILE_WIDTH: E_FILE_WIDTH); NextArg(XtNheight, char_ht * 5); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainRight); dir_viewport = XtCreateManagedWidget("dirvport", viewportWidgetClass, parent, Args, ArgCount); FirstArg(XtNlist, file_list); /* for file panel use only one column */ if (file_panel) { NextArg(XtNdefaultColumns, 1); NextArg(XtNforceColumns, True); } *flist_w = XtCreateManagedWidget("file_list_panel", figListWidgetClass, file_viewport, Args, ArgCount); XtAddCallback(*flist_w, XtNcallback, FileSelected, (XtPointer) NULL); XtOverrideTranslations(*flist_w, XtParseTranslationTable(list_panel_translations)); FirstArg(XtNlist, dir_list); *dlist_w = XtCreateManagedWidget("dir_list_panel", figListWidgetClass, dir_viewport, Args, ArgCount); XtOverrideTranslations(*dlist_w, XtParseTranslationTable(list_panel_translations)); XtAddCallback(*dlist_w, XtNcallback, DirSelected, (XtPointer) NULL); if (!actions_added) { XtAppAddActions(tool_app, actionTable, XtNumber(actionTable)); actions_added = True; } FirstArg(XtNlabel, "Rescan"); NextArg(XtNfromVert, dir_viewport); NextArg(XtNvertDistance, 15); NextArg(XtNborderWidth, INTERNAL_BW); NextArg(XtNhorizDistance, 45); NextArg(XtNheight, 25); NextArg(XtNtop, XtChainBottom); NextArg(XtNbottom, XtChainBottom); NextArg(XtNleft, XtChainLeft); NextArg(XtNright, XtChainLeft); w = XtCreateManagedWidget("rescan", commandWidgetClass, parent, Args, ArgCount); XtAddCallback(w, XtNcallback, CallbackRescan, (XtPointer) NULL); /* install accelerators so they can be used from each window */ XtInstallAccelerators(parent, w); XtInstallAccelerators(*flist_w, parent); XtInstallAccelerators(*dlist_w, parent); *ret_beside = w; *ret_below = dir_viewport; return; }
bool ArcApp::Add() { // turn m_args into a list of files, i.e. expand wildcards, recurse // directories and remove duplicates NameMap files; MakeFileList(files); wxInputStreamPtr in(MakeInputStream()); if (!in.get()) return false; wxOutputStreamPtr out(MakeOutputStream()); if (!out.get()) return false; wxArchiveInputStreamPtr arc(m_factory->NewStream(*in)); wxArchiveOutputStreamPtr outarc(m_factory->NewStream(*out)); wxArchiveEntryPtr entry(arc->GetNextEntry()); outarc->CopyArchiveMetaData(*arc); for (;;) { bool keep; NameMap::iterator it; if (!entry.get()) { if (files.empty()) break; it = files.begin(); keep = false; } else { it = files.find(entry->GetInternalName()); keep = true; } if (it != files.end()) { wxString name = it->second; files.erase(it); if (wxDirExists(name)) { *m_info << "adding " << name.mb_str() << std::endl; wxDateTime dt(wxFileModificationTime(name)); if (!outarc->PutNextDirEntry(name, dt)) return false; keep = false; } else { wxFFileInputStream file(name); if (file.Ok()) { *m_info << "adding " << name.mb_str() << std::endl; wxDateTime dt(wxFileModificationTime(name)); if (!outarc->PutNextEntry(name, dt, file.GetSize()) || !outarc->Write(file) || !file.Eof()) return false; keep = false; } } } if (keep) if (!outarc->CopyEntry(entry.release(), *arc)) return false; if (entry.get() || keep) entry.reset(arc->GetNextEntry()); } in.reset(); return arc->Eof() && outarc->Close() && out->Close(); }