void readconsolecfg() { char fn[128]; int sty = Plain; char optf[PATH_MAX+1]; struct structGUI gui; getDefaults(&gui); if (R_LoadRconsole) { snprintf(optf, PATH_MAX+1, "%s/Rconsole", getenv("R_USER")); if (!loadRconsole(&gui, optf)) { snprintf(optf, PATH_MAX+1, "%s/etc/Rconsole", getenv("R_HOME")); if (!loadRconsole(&gui, optf)) { app_cleanup(); RConsole = NULL; exit(10); } } } if (gui.tt_font) { strcpy(fn, "TT "); strcpy(fn+3, gui.font); } else strcpy(fn, gui.font); MDIsize = gui.MDIsize; if (gui.MDI) RguiMDI |= RW_MDI; else RguiMDI &= ~RW_MDI; if (MDIset == 1) RguiMDI |= RW_MDI; if (MDIset == -1) RguiMDI &= ~RW_MDI; if (gui.toolbar) RguiMDI |= RW_TOOLBAR; else RguiMDI &= ~RW_TOOLBAR; if (gui.statusbar) RguiMDI |= RW_STATUSBAR; else RguiMDI &= ~RW_STATUSBAR; if (!strcmp(gui.style, "normal")) sty = Plain; if (!strcmp(gui.style, "bold")) sty = Bold; if (!strcmp(gui.style, "italic")) sty = Italic; Rwin_graphicsx = gui.grx; Rwin_graphicsy = gui.gry; if(strlen(gui.language)) { char *buf = malloc(50); snprintf(buf, 50, "LANGUAGE=%s", gui.language); putenv(buf); } setconsoleoptions(fn, sty, gui.pointsize, gui.crows, gui.ccols, gui.cx, gui.cy, gui.guiColors, gui.prows, gui.pcols, gui.pagerMultiple, gui.setWidthOnResize, gui.cbb, gui.cbl, gui.buffered, gui.cursor_blink); }
/* utils::loadRconsole */ SEXP in_loadRconsole(SEXP sfile) { struct structGUI gui; const void *vmax = vmaxget(); if (!isString(sfile) || LENGTH(sfile) < 1) error(_("invalid '%s' argument"), "file"); getActive(&gui); /* Will get defaults if there's no active console */ if (loadRconsole(&gui, translateChar(STRING_ELT(sfile, 0)))) applyGUI(&gui); if (strlen(gui.warning)) warning(gui.warning); vmaxset(vmax); return R_NilValue; }
static void load(button b) /* button callback */ { char *optf, buf[256]; struct structGUI newGUI; setuserfilter("All files (*.*)\0*.*\0\0"); strcpy(buf, getenv("R_USER")); R_fixbackslash(buf); optf = askfilenamewithdir(G_("Select 'Rconsole' file"), "Rconsole", buf); if(!optf) return; getChoices(&newGUI); if (loadRconsole(&newGUI, optf)) { if (strlen(newGUI.warning)) askok(newGUI.warning); cleanup(); showDialog(&newGUI); } }