static void menuloadimage(control m) { wchar_t *fn; char s[MAX_PATH]; if (!ConsoleAcceptCmd) return; setuserfilterW(L"R images (*.RData)\0*.RData\0R images - old extension (*.rda)\0*.rda\0All files (*.*)\0*.*\0\0"); fn = askfilenameW(G_("Select image to load"), ""); if (fn) { quote_fn(fn, s); snprintf(cmd, 1024, "load(\"%s\")", s); consolecmd(RConsole, cmd); } else show(RConsole); }
static void menusource(control m) { wchar_t *fn; char local[MAX_PATH]; if (!ConsoleAcceptCmd) return; setuserfilterW(L"R files (*.R)\0*.R\0S files (*.q, *.ssc, *.S)\0*.q;*.ssc;*.S\0All files (*.*)\0*.*\0\0"); fn = askfilenameW(G_("Select file to source"), ""); if (fn) { quote_fn(fn, local); snprintf(cmd, 1024, "source(\"%s\")", local); consolecmd(RConsole, cmd); } else show(RConsole); }
static void menusaveimage(control m) { wchar_t *fn; char s[MAX_PATH]; if (!ConsoleAcceptCmd) return; setuserfilterW(L"R images (*.RData)\0*.RData\0All files (*.*)\0*.*\0\0"); fn = askfilesaveW(G_("Save image in"), ".RData"); if (fn) { quote_fn(fn, s); if (!strcmp(&s[strlen(s) - 2], ".*")) s[strlen(s) - 2] = '\0'; snprintf(cmd, 1024, "save.image(\"%s\")", s); consolecmd(RConsole, cmd); } else show(RConsole); }
/* base::file.choose */ SEXP attribute_hidden do_filechoose(SEXP call, SEXP op, SEXP args, SEXP rho) { SEXP ans; wchar_t *fn; char str[4*MAX_PATH+1]; checkArity(op, args); setuserfilterW(L"All files (*.*)\0*.*\0\0"); fn = askfilenameW(G_("Select file"), ""); if (!fn) error(_("file choice cancelled")); wcstoutf8(str, fn, 4*MAX_PATH+1); PROTECT(ans = allocVector(STRSXP, 1)); SET_STRING_ELT(ans, 0, mkCharCE(str, CE_UTF8)); UNPROTECT(1); return ans; }
static void editorsaveas(editor c) { textbox t = getdata(c); EditorData p = getdata(t); wchar_t *wname; setuserfilterW(L"R files (*.R)\0*.R\0S files (*.q, *.ssc, *.S)\0*.q;*.ssc;*.S\0All files (*.*)\0*.*\0\0"); wname = askfilesaveW(G_("Save script as"), ""); if (wname) { char name[4*MAX_PATH+1]; wcstoutf8(name, wname, MAX_PATH); /* now check if it has an extension */ char *q = strchr(name, '.'); if(!q) strncat(name, ".R", 4*MAX_PATH); editor_save_file(c, name, CE_UTF8); p->file = 1; reEnc2(name, p->filename, MAX_PATH+1, CE_UTF8, CE_NATIVE, 3); gsetmodified(t, 0); editor_set_title(c, p->filename); } show(c); }
static void editoropen(const char *default_name) { wchar_t *wname; char name[4*MAX_PATH], title[4*MAX_PATH]; int i; textbox t; EditorData p; setuserfilterW(L"R files (*.R)\0*.R\0S files (*.q, *.ssc, *.S)\0*.q;*.ssc;*.S\0All files (*.*)\0*.*\0\0"); wname = askfilenameW(G_("Open script"), default_name); /* returns NULL if open dialog cancelled */ if (wname) { wcstoutf8(name, wname, MAX_PATH); /* check if file is already open in an editor. If so, close and open again */ for (i = 0; i < neditors; ++i) { t = getdata(REditors[i]); p = getdata(t); if (!strcmp (name, p->filename)) { editorclose(REditors[i]); break; } } reEnc2(name, title, MAX_PATH+1, CE_UTF8, CE_NATIVE, 3); Rgui_Edit(name, CE_UTF8, title, 0); } else show(RConsole); }