static GSList *gd_vc_init(GtkDisplayState *s, VirtualConsole *vc, int index, GSList *group,

                          GtkWidget *view_menu)

{

    const char *label;

    char buffer[32];

    char path[32];

#if VTE_CHECK_VERSION(0, 26, 0)

    VtePty *pty;

#endif

    GIOChannel *chan;

    GtkWidget *scrolled_window;

    GtkAdjustment *vadjustment;

    int master_fd, slave_fd;



    snprintf(buffer, sizeof(buffer), "vc%d", index);

    snprintf(path, sizeof(path), "<QEMU>/View/VC%d", index);



    vc->chr = vcs[index];



    if (vc->chr->label) {

        label = vc->chr->label;

    } else {

        label = buffer;

    }



    vc->menu_item = gtk_radio_menu_item_new_with_mnemonic(group, label);

    group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(vc->menu_item));

    gtk_menu_item_set_accel_path(GTK_MENU_ITEM(vc->menu_item), path);

    gtk_accel_map_add_entry(path, GDK_KEY_2 + index, GDK_CONTROL_MASK | GDK_MOD1_MASK);



    vc->terminal = vte_terminal_new();



    master_fd = qemu_openpty_raw(&slave_fd, NULL);

    g_assert(master_fd != -1);



#if VTE_CHECK_VERSION(0, 26, 0)

    pty = vte_pty_new_foreign(master_fd, NULL);

    vte_terminal_set_pty_object(VTE_TERMINAL(vc->terminal), pty);

#else

    vte_terminal_set_pty(VTE_TERMINAL(vc->terminal), master_fd);

#endif



    vte_terminal_set_scrollback_lines(VTE_TERMINAL(vc->terminal), -1);



    vadjustment = vte_terminal_get_adjustment(VTE_TERMINAL(vc->terminal));



    scrolled_window = gtk_scrolled_window_new(NULL, vadjustment);

    gtk_container_add(GTK_CONTAINER(scrolled_window), vc->terminal);



    vte_terminal_set_size(VTE_TERMINAL(vc->terminal), 80, 25);



    vc->fd = slave_fd;

    vc->chr->opaque = vc;

    vc->scrolled_window = scrolled_window;



    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vc->scrolled_window),

                                   GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);



    gtk_notebook_append_page(GTK_NOTEBOOK(s->notebook), scrolled_window, gtk_label_new(label));

    g_signal_connect(vc->menu_item, "activate",

                     G_CALLBACK(gd_menu_switch_vc), s);



    gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), vc->menu_item);



    qemu_chr_be_generic_open(vc->chr);

    if (vc->chr->init) {

        vc->chr->init(vc->chr);

    }



    chan = g_io_channel_unix_new(vc->fd);

    g_io_add_watch(chan, G_IO_IN, gd_vc_in, vc);



    return group;

}

static GSList *gd_vc_init(GtkDisplayState *s, VirtualConsole *vc, int index, GSList *group,

                          GtkWidget *view_menu)

{

    const char *label;

    char buffer[32];

    char path[32];

#if VTE_CHECK_VERSION(0, 26, 0)

    VtePty *pty;

#endif

    GIOChannel *chan;

    GtkWidget *scrolled_window;

    GtkAdjustment *vadjustment;

    int master_fd, slave_fd;



    snprintf(buffer, sizeof(buffer), "vc%d", index);

    snprintf(path, sizeof(path), "<QEMU>/View/VC%d", index);



    vc->chr = vcs[index];



    if (vc->chr->label) {

        label = vc->chr->label;

    } else {

        label = buffer;

    }



    vc->menu_item = gtk_radio_menu_item_new_with_mnemonic(group, label);

    group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(vc->menu_item));

    gtk_menu_item_set_accel_path(GTK_MENU_ITEM(vc->menu_item), path);

    gtk_accel_map_add_entry(path, GDK_KEY_2 + index, GDK_CONTROL_MASK | GDK_MOD1_MASK);



    vc->terminal = vte_terminal_new();



    master_fd = qemu_openpty_raw(&slave_fd, NULL);

    g_assert(master_fd != -1);



#if VTE_CHECK_VERSION(0, 26, 0)

    pty = vte_pty_new_foreign(master_fd, NULL);

    vte_terminal_set_pty_object(VTE_TERMINAL(vc->terminal), pty);

#else

    vte_terminal_set_pty(VTE_TERMINAL(vc->terminal), master_fd);

#endif



    vte_terminal_set_scrollback_lines(VTE_TERMINAL(vc->terminal), -1);



    vadjustment = vte_terminal_get_adjustment(VTE_TERMINAL(vc->terminal));



    scrolled_window = gtk_scrolled_window_new(NULL, vadjustment);

    gtk_container_add(GTK_CONTAINER(scrolled_window), vc->terminal);



    vte_terminal_set_size(VTE_TERMINAL(vc->terminal), 80, 25);



    vc->fd = slave_fd;

    vc->chr->opaque = vc;

    vc->scrolled_window = scrolled_window;



    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vc->scrolled_window),

                                   GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);



    gtk_notebook_append_page(GTK_NOTEBOOK(s->notebook), scrolled_window, gtk_label_new(label));

    g_signal_connect(vc->menu_item, "activate",

                     G_CALLBACK(gd_menu_switch_vc), s);



    gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), vc->menu_item);



    qemu_chr_be_generic_open(vc->chr);

    if (vc->chr->init) {

        vc->chr->init(vc->chr);

    }



    chan = g_io_channel_unix_new(vc->fd);

    g_io_add_watch(chan, G_IO_IN, gd_vc_in, vc);



    return group;

}

static GSList *FUNC_0(GtkDisplayState *s, VirtualConsole *vc, int index, GSList *group,

                          GtkWidget *view_menu)

{

    const char *VAR_0;

    char VAR_1[32];

    char VAR_2[32];

#if VTE_CHECK_VERSION(0, 26, 0)

    VtePty *pty;

#endif

    GIOChannel *chan;

    GtkWidget *scrolled_window;

    GtkAdjustment *vadjustment;

    int VAR_3, VAR_4;



    snprintf(VAR_1, sizeof(VAR_1), "vc%d", index);

    snprintf(VAR_2, sizeof(VAR_2), "<QEMU>/View/VC%d", index);



    vc->chr = vcs[index];



    if (vc->chr->VAR_0) {

        VAR_0 = vc->chr->VAR_0;

    } else {

        VAR_0 = VAR_1;

    }



    vc->menu_item = gtk_radio_menu_item_new_with_mnemonic(group, VAR_0);

    group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(vc->menu_item));

    gtk_menu_item_set_accel_path(GTK_MENU_ITEM(vc->menu_item), VAR_2);

    gtk_accel_map_add_entry(VAR_2, GDK_KEY_2 + index, GDK_CONTROL_MASK | GDK_MOD1_MASK);



    vc->terminal = vte_terminal_new();



    VAR_3 = qemu_openpty_raw(&VAR_4, NULL);

    g_assert(VAR_3 != -1);



#if VTE_CHECK_VERSION(0, 26, 0)

    pty = vte_pty_new_foreign(VAR_3, NULL);

    vte_terminal_set_pty_object(VTE_TERMINAL(vc->terminal), pty);

#else

    vte_terminal_set_pty(VTE_TERMINAL(vc->terminal), VAR_3);

#endif



    vte_terminal_set_scrollback_lines(VTE_TERMINAL(vc->terminal), -1);



    vadjustment = vte_terminal_get_adjustment(VTE_TERMINAL(vc->terminal));



    scrolled_window = gtk_scrolled_window_new(NULL, vadjustment);

    gtk_container_add(GTK_CONTAINER(scrolled_window), vc->terminal);



    vte_terminal_set_size(VTE_TERMINAL(vc->terminal), 80, 25);



    vc->fd = VAR_4;

    vc->chr->opaque = vc;

    vc->scrolled_window = scrolled_window;



    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vc->scrolled_window),

                                   GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);



    gtk_notebook_append_page(GTK_NOTEBOOK(s->notebook), scrolled_window, gtk_label_new(VAR_0));

    g_signal_connect(vc->menu_item, "activate",

                     G_CALLBACK(gd_menu_switch_vc), s);



    gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), vc->menu_item);



    qemu_chr_be_generic_open(vc->chr);

    if (vc->chr->init) {

        vc->chr->init(vc->chr);

    }



    chan = g_io_channel_unix_new(vc->fd);

    g_io_add_watch(chan, G_IO_IN, gd_vc_in, vc);



    return group;

}

static GSList *FUNC_0(GtkDisplayState *s, VirtualConsole *vc, int index, GSList *group,
GtkWidget *view_menu)
{ const char *VAR_0; char VAR_1[32]; char VAR_2[32]; #if VTE_CHECK_VERSION(0, 26, 0)
VtePty *pty; #endif
GIOChannel *chan; GtkWidget *scrolled_window; GtkAdjustment *vadjustment; int VAR_3, VAR_4; snprintf(VAR_1, sizeof(VAR_1), "vc%d", index); snprintf(VAR_2, sizeof(VAR_2), "<QEMU>/View/VC%d", index); vc->chr = vcs[index]; if (vc->chr->VAR_0) { VAR_0 = vc->chr->VAR_0; } else { VAR_0 = VAR_1; } vc->menu_item = gtk_radio_menu_item_new_with_mnemonic(group, VAR_0); group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(vc->menu_item)); gtk_menu_item_set_accel_path(GTK_MENU_ITEM(vc->menu_item), VAR_2); gtk_accel_map_add_entry(VAR_2, GDK_KEY_2 + index, GDK_CONTROL_MASK | GDK_MOD1_MASK); vc->terminal = vte_terminal_new(); VAR_3 = qemu_openpty_raw(&VAR_4, NULL); g_assert(VAR_3 != -1); #if VTE_CHECK_VERSION(0, 26, 0)
pty = vte_pty_new_foreign(VAR_3, NULL); vte_terminal_set_pty_object(VTE_TERMINAL(vc->terminal), pty); #else
vte_terminal_set_pty(VTE_TERMINAL(vc->terminal), VAR_3); #endif
vte_terminal_set_scrollback_lines(VTE_TERMINAL(vc->terminal), -1); vadjustment = vte_terminal_get_adjustment(VTE_TERMINAL(vc->terminal)); scrolled_window = gtk_scrolled_window_new(NULL, vadjustment); gtk_container_add(GTK_CONTAINER(scrolled_window), vc->terminal); vte_terminal_set_size(VTE_TERMINAL(vc->terminal), 80, 25); vc->fd = VAR_4; vc->chr->opaque = vc; vc->scrolled_window = scrolled_window; gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vc->scrolled_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_notebook_append_page(GTK_NOTEBOOK(s->notebook), scrolled_window, gtk_label_new(VAR_0)); g_signal_connect(vc->menu_item, "activate",
G_CALLBACK(gd_menu_switch_vc), s); gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), vc->menu_item); qemu_chr_be_generic_open(vc->chr); if (vc->chr->init) { vc->chr->init(vc->chr); } chan = g_io_channel_unix_new(vc->fd); g_io_add_watch(chan, G_IO_IN, gd_vc_in, vc); return group; }