Diff for /qemu/console.c between versions 1.1.1.9 and 1.1.1.10

version 1.1.1.9, 2018/04/24 18:23:39 version 1.1.1.10, 2018/04/24 18:33:40
Line 137  struct TextConsole { Line 137  struct TextConsole {
     TextAttributes t_attrib; /* currently active text attributes */      TextAttributes t_attrib; /* currently active text attributes */
     TextCell *cells;      TextCell *cells;
     int text_x[2], text_y[2], cursor_invalidate;      int text_x[2], text_y[2], cursor_invalidate;
       int echo;
   
     int update_x0;      int update_x0;
     int update_y0;      int update_y0;
Line 1060  void console_select(unsigned int index) Line 1061  void console_select(unsigned int index)
   
     if (index >= MAX_CONSOLES)      if (index >= MAX_CONSOLES)
         return;          return;
     active_console->g_width = ds_get_width(active_console->ds);      if (active_console) {
     active_console->g_height = ds_get_height(active_console->ds);          active_console->g_width = ds_get_width(active_console->ds);
           active_console->g_height = ds_get_height(active_console->ds);
       }
     s = consoles[index];      s = consoles[index];
     if (s) {      if (s) {
         DisplayState *ds = s->ds;          DisplayState *ds = s->ds;
Line 1175  void kbd_put_keysym(int keysym) Line 1178  void kbd_put_keysym(int keysym)
             *q++ = '\033';              *q++ = '\033';
             *q++ = '[';              *q++ = '[';
             *q++ = keysym & 0xff;              *q++ = keysym & 0xff;
           } else if (s->echo && (keysym == '\r' || keysym == '\n')) {
               console_puts(s->chr, (const uint8_t *) "\r", 1);
               *q++ = '\n';
         } else {          } else {
                 *q++ = keysym;              *q++ = keysym;
           }
           if (s->echo) {
               console_puts(s->chr, buf, q - buf);
         }          }
         if (s->chr->chr_read) {          if (s->chr->chr_read) {
             qemu_fifo_write(&s->out_fifo, buf, q - buf);              qemu_fifo_write(&s->out_fifo, buf, q - buf);
Line 1428  void console_color_init(DisplayState *ds Line 1437  void console_color_init(DisplayState *ds
   
 static int n_text_consoles;  static int n_text_consoles;
 static CharDriverState *text_consoles[128];  static CharDriverState *text_consoles[128];
 static QemuOpts *text_console_opts[128];  
   
 static void text_console_do_init(CharDriverState *chr, DisplayState *ds, QemuOpts *opts)  static void text_console_set_echo(CharDriverState *chr, bool echo)
 {  {
     TextConsole *s;      TextConsole *s = chr->opaque;
     unsigned width;  
     unsigned height;  
     static int color_inited;  
   
     width = qemu_opt_get_number(opts, "width", 0);      s->echo = echo;
     if (width == 0)  }
         width = qemu_opt_get_number(opts, "cols", 0) * FONT_WIDTH;  
   
     height = qemu_opt_get_number(opts, "height", 0);  static void text_console_do_init(CharDriverState *chr, DisplayState *ds)
     if (height == 0)  {
         height = qemu_opt_get_number(opts, "rows", 0) * FONT_HEIGHT;      TextConsole *s;
       static int color_inited;
   
     if (width == 0 || height == 0) {      s = chr->opaque;
         s = new_console(ds, TEXT_CONSOLE);  
         width = ds_get_width(s->ds);  
         height = ds_get_height(s->ds);  
     } else {  
         s = new_console(ds, TEXT_CONSOLE_FIXED_SIZE);  
     }  
   
     if (!s) {  
         free(chr);  
         return;  
     }  
     chr->opaque = s;  
     chr->chr_write = console_puts;      chr->chr_write = console_puts;
     chr->chr_send_event = console_send_event;      chr->chr_send_event = console_send_event;
   
     s->chr = chr;  
     s->out_fifo.buf = s->out_fifo_buf;      s->out_fifo.buf = s->out_fifo_buf;
     s->out_fifo.buf_size = sizeof(s->out_fifo_buf);      s->out_fifo.buf_size = sizeof(s->out_fifo_buf);
     s->kbd_timer = qemu_new_timer(rt_clock, kbd_send_chars, s);      s->kbd_timer = qemu_new_timer(rt_clock, kbd_send_chars, s);
Line 1476  static void text_console_do_init(CharDri Line 1469  static void text_console_do_init(CharDri
     s->total_height = DEFAULT_BACKSCROLL;      s->total_height = DEFAULT_BACKSCROLL;
     s->x = 0;      s->x = 0;
     s->y = 0;      s->y = 0;
     s->g_width = width;      if (s->console_type == TEXT_CONSOLE) {
     s->g_height = height;          s->g_width = ds_get_width(s->ds);
           s->g_height = ds_get_height(s->ds);
       }
   
     s->hw_invalidate = text_console_invalidate;      s->hw_invalidate = text_console_invalidate;
     s->hw_text_update = text_console_update;      s->hw_text_update = text_console_update;
Line 1513  static void text_console_do_init(CharDri Line 1508  static void text_console_do_init(CharDri
 CharDriverState *text_console_init(QemuOpts *opts)  CharDriverState *text_console_init(QemuOpts *opts)
 {  {
     CharDriverState *chr;      CharDriverState *chr;
       TextConsole *s;
       unsigned width;
       unsigned height;
   
     chr = qemu_mallocz(sizeof(CharDriverState));      chr = qemu_mallocz(sizeof(CharDriverState));
   
Line 1521  CharDriverState *text_console_init(QemuO Line 1519  CharDriverState *text_console_init(QemuO
         exit(1);          exit(1);
     }      }
     text_consoles[n_text_consoles] = chr;      text_consoles[n_text_consoles] = chr;
     text_console_opts[n_text_consoles] = opts;  
     n_text_consoles++;      n_text_consoles++;
   
       width = qemu_opt_get_number(opts, "width", 0);
       if (width == 0)
           width = qemu_opt_get_number(opts, "cols", 0) * FONT_WIDTH;
   
       height = qemu_opt_get_number(opts, "height", 0);
       if (height == 0)
           height = qemu_opt_get_number(opts, "rows", 0) * FONT_HEIGHT;
   
       if (width == 0 || height == 0) {
           s = new_console(NULL, TEXT_CONSOLE);
       } else {
           s = new_console(NULL, TEXT_CONSOLE_FIXED_SIZE);
       }
   
       if (!s) {
           free(chr);
           return NULL;
       }
   
       s->chr = chr;
       s->g_width = width;
       s->g_height = height;
       chr->opaque = s;
       chr->chr_set_echo = text_console_set_echo;
     return chr;      return chr;
 }  }
   
Line 1532  void text_consoles_set_display(DisplaySt Line 1553  void text_consoles_set_display(DisplaySt
     int i;      int i;
   
     for (i = 0; i < n_text_consoles; i++) {      for (i = 0; i < n_text_consoles; i++) {
         text_console_do_init(text_consoles[i], ds, text_console_opts[i]);          text_console_do_init(text_consoles[i], ds);
         qemu_opts_del(text_console_opts[i]);  
         text_console_opts[i] = NULL;  
     }      }
   
     n_text_consoles = 0;      n_text_consoles = 0;

Removed from v.1.1.1.9  
changed lines
  Added in v.1.1.1.10


unix.superglobalmegacorp.com