int Rgui_Edit(const char *filename, int enc, const char *title, int modal) { editor c; EditorData p; if (neditors == MAXNEDITORS) { R_ShowMessage(G_("Maximum number of editors reached")); return 1; } c = neweditor(); if (!c) { R_ShowMessage(G_("Unable to create editor window")); return 1; } if (strlen(filename) > 0) { editor_load_file(c, filename, enc); editor_set_title(c, title); } else { editor_set_title(c, G_("Untitled")); } show(c); p = getdata(getdata(c)); p->stealconsole = modal; if (modal) { fix_editor_up = TRUE; eventloop(c); } return 0; }
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); }