void restore_state_from(char *data) { struct LRMI_regs r; /* VGA BIOS mode 3 is text mode */ do_set_mode(3,1); memset(&r, 0, sizeof(r)); r.eax = 0x4f04; r.ecx = 0xf; /* all states */ r.edx = 2; /* restore state */ r.es = (unsigned int) (data - LRMI_base_addr()) >> 4; r.ebx = (unsigned int) (data - LRMI_base_addr()) & 0xf; r.ds = 0x0040; if (!LRMI_int(0x10, &r)) { fprintf(stderr, "Can't restore video state (vm86 failure)\n"); } else if ((r.eax & 0xffff) != 0x4f) { fprintf(stderr, "Restore video state failed\n"); } LRMI_free_real(data); ioctl(0, KDSETMODE, KD_TEXT); }
/* show a list of buffers */ static void do_list_buffers(EditState *s) { QEmacsState *qs = s->qe_state; BufedState *bs; EditBuffer *b; EditState *e; int width, i; /* XXX: must close this buffer when destroying window: add a special buffer flag to tell this */ b = eb_new("*bufed*", BF_READONLY | BF_SYSTEM); width = qs->width / 4; e = insert_window_left(b, width, WF_MODELINE); do_set_mode(e, &bufed_mode, NULL); bs = e->mode_data; /* if active buffer is found, go directly on it */ for(i=0;i<bs->items.nb_items;i++) { if (!strcmp(bs->items.items[i]->str, s->b->name)) { e->offset = eb_goto_pos(e->b, i, 0); break; } } /* modify active window */ qs->active_window = e; }
static int handle_netdev_set_mode( int argc, char *argv[], int optind, const char *devname) { if (argc <= optind + 3) { print_usage("Missing netdev's parameter value\n"); return 1; } const char *value = argv[optind + 3]; if (!strcasecmp(value, "p2p")) return do_set_mode(devname, 1); else if (!strcasecmp(value, "p2mp")) return do_set_mode(devname, 0); else { print_usage("Unknown mode '%s'\n", value); return 1; } }
static void do_shell(EditState *s, int force) { QEmacsState *qs = s->qe_state; EditState *e; EditBuffer *b; const char *argv[3]; const char *shell_path; /* CG: Should prompt for buffer name if arg: * find a syntax for optional string argument w/ prompt */ /* find shell buffer if any */ if (!force || force == NO_ARG) { b = eb_find("*shell*"); if (b) { e = edit_find(b); if (e) qs->active_window = e; else switch_to_buffer(s, b); return; } } /* find shell name */ shell_path = getenv("SHELL"); if (!shell_path) shell_path = "/bin/sh"; /* create new buffer */ argv[0] = shell_path; argv[1] = NULL; b = new_shell_buffer("*shell*", shell_path, argv, 1); if (!b) return; switch_to_buffer(s, b); do_set_mode(s, &shell_mode, NULL); put_status(s, "Press C-o to toggle between shell/edit mode"); shell_launched = 1; }
/* show a list of buffers */ static void do_list_buffers(EditState *s) { QEmacsState *qs = s->qe_state; BufedState *bs; EditBuffer *b, *b0; EditState *e, *e1; int width, i; /* remember current buffer for target positioning, because * s may be destroyed by insert_window_left * CG: remove this kludge once we have delayed EditState free */ b0 = s->b; /* XXX: must close this buffer when destroying window: add a special buffer flag to tell this */ b = eb_new("*bufed*", BF_READONLY | BF_SYSTEM); width = qs->width / 4; e = insert_window_left(b, width, WF_MODELINE); do_set_mode(e, &bufed_mode, NULL); e1 = find_window(e, KEY_RIGHT); if (e1) b0 = e1->b; bs = e->mode_data; /* if active buffer is found, go directly on it */ for (i = 0; i < bs->items.nb_items; i++) { if (!strcmp(bs->items.items[i]->str, b0->name)) { e->offset = eb_goto_pos(e->b, i, 0); break; } } /* modify active window */ qs->active_window = e; }
static void do_shell(EditState *e) { EditBuffer *b; char *argv[3]; char *shell_path; /* find shell name */ shell_path = getenv("SHELL"); if (!shell_path) shell_path = "/bin/sh"; /* create new buffer */ argv[0] = shell_path; argv[1] = NULL; b = new_shell_buffer("*shell*", shell_path, argv, 1); if (!b) return; switch_to_buffer(e, b); do_set_mode(e, &shell_mode, NULL); put_status(e, "Press C-o to toggle between shell/edit mode"); shell_launched = 1; }
void Monitor::set_mode(int width, int height) { do_set_mode(width, height); Platform::reset_cursor_pos(); }
int main(int argc, char *argv[]) { /* Don't bother checking for privilege if they only want usage() */ if (argc < 2) goto usage; vbetool_init(); if (!strcmp(argv[1], "vbestate")) { /* VBE save/restore tends to break when done underneath X */ int err = check_console(); if (err) { return err; } if (!strcmp(argv[2], "save")) { save_state(); } else if (!strcmp(argv[2], "restore")) { restore_state(); } else { goto usage; } } else if (!strcmp(argv[1], "dpms")) { if (!strcmp(argv[2], "on")) { return do_blank(DPMS_STATE_ON); } else if (!strcmp(argv[2], "suspend")) { return do_blank(DPMS_STATE_SUSPEND); } else if (!strcmp(argv[2], "standby")) { return do_blank(DPMS_STATE_STANDBY); } else if (!strcmp(argv[2], "off")) { return do_blank(DPMS_STATE_OFF); } else if (!strcmp(argv[2], "reduced")) { return do_blank(DPMS_STATE_LOW); } else { goto usage; } } else if (!strcmp(argv[1], "vbemode")) { if (!strcmp(argv[2], "set")) { return do_set_mode(atoi(argv[3]),0); } else if (!strcmp(argv[2], "get")) { return do_get_mode(); } else { goto usage; } } else if (!strcmp(argv[1], "vgamode")) { if (!strcmp(argv[2], "set")) { return do_set_mode(atoi(argv[3]),1); } else { return do_set_mode(atoi(argv[2]),1); } } else if (!strcmp(argv[1], "post")) { /* Again, we don't really want to do this while X is in control */ int err = check_console(); if (err) { return err; } return do_post(); } else if (!strcmp(argv[1], "vgastate")) { if (!strcmp(argv[2], "on")) { return enable_vga(); } else { return disable_vga(); } } else if (!strcmp(argv[1], "vbefp")) { if (!strcmp(argv[2], "id") || !strcmp(argv[2], "panelid")) { return do_get_panel_id(0); } else if (!strcmp(argv[2], "panelsize")) { return do_get_panel_id(1); } else if (!strcmp(argv[2], "getbrightness")) { return do_get_panel_brightness(); } else if (!strcmp(argv[2], "setbrightness")) { return do_set_panel_brightness(atoi(argv[3])); } else if (!strcmp(argv[2], "invert")) { return do_invert_panel(); } else { return 1; } } else { usage: fprintf(stderr, "%s: Usage %s [[vbestate save|restore]|[vbemode set|get]|[vgamode]|[dpms on|off|standby|suspend|reduced]|[post]|[vgastate on|off]|[vbefp panelid|panelsize|getbrightness|setbrightness|invert]]\n", argv[0], argv[0]); return 1; } return 0; }