示例#1
0
文件: setup.c 项目: CyberShadow/mc
void
load_keymap_defs (gboolean load_from_file)
{
    /*
     * Load keymap from GLOBAL_KEYMAP_FILE before ${XDG_CONFIG_HOME}/mc/mc.keymap, so that the user
     * definitions override global settings.
     */
    mc_config_t *mc_global_keymap;

    mc_global_keymap = load_setup_get_keymap_profile_config (load_from_file);

    if (mc_global_keymap != NULL)
    {
        main_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_MAIN, main_keymap, mc_global_keymap);
        main_x_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_MAIN_EXT, main_x_keymap, mc_global_keymap);

        panel_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_PANEL, panel_keymap, mc_global_keymap);

        dialog_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_DIALOG, dialog_keymap, mc_global_keymap);

        input_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_INPUT, input_keymap, mc_global_keymap);

        listbox_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_LISTBOX, listbox_keymap, mc_global_keymap);

        tree_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_TREE, tree_keymap, mc_global_keymap);

        help_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_HELP, help_keymap, mc_global_keymap);

#ifdef USE_INTERNAL_EDIT
        editor_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_EDITOR, editor_keymap, mc_global_keymap);
        editor_x_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_EDITOR_EXT, editor_x_keymap, mc_global_keymap);
#endif

        viewer_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_VIEWER, viewer_keymap, mc_global_keymap);
        viewer_hex_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_VIEWER_HEX, viewer_hex_keymap, mc_global_keymap);

#ifdef USE_DIFF_VIEW
        diff_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section (KEYMAP_SECTION_DIFFVIEWER, diff_keymap, mc_global_keymap);
#endif

        mc_config_deinit (mc_global_keymap);
    }

    main_map = (global_keymap_t *) main_keymap->data;
    main_x_map = (global_keymap_t *) main_x_keymap->data;
    panel_map = (global_keymap_t *) panel_keymap->data;
    dialog_map = (global_keymap_t *) dialog_keymap->data;
    input_map = (global_keymap_t *) input_keymap->data;
    listbox_map = (global_keymap_t *) listbox_keymap->data;
    tree_map = (global_keymap_t *) tree_keymap->data;
    help_map = (global_keymap_t *) help_keymap->data;
#ifdef USE_INTERNAL_EDIT
    editor_map = (global_keymap_t *) editor_keymap->data;
    editor_x_map = (global_keymap_t *) editor_x_keymap->data;
#endif
    viewer_map = (global_keymap_t *) viewer_keymap->data;
    viewer_hex_map = (global_keymap_t *) viewer_hex_keymap->data;
#ifdef USE_DIFF_VIEW
    diff_map = (global_keymap_t *) diff_keymap->data;
#endif
}
示例#2
0
void
load_keymap_defs (void)
{
    /*
     * Load keymap from GLOBAL_KEYMAP_FILE before ${XDG_DATA_HOME}/mc/keymap, so that the user
     * definitions override global settings.
     */
    mc_config_t *mc_global_keymap;

    mc_global_keymap = load_setup_get_keymap_profile_config ();

    if (mc_global_keymap != NULL)
    {
#ifdef USE_INTERNAL_EDIT
        editor_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("editor", editor_keymap, mc_global_keymap);
        editor_x_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("editor:xmap", editor_x_keymap, mc_global_keymap);
#endif

        viewer_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("viewer", viewer_keymap, mc_global_keymap);
        viewer_hex_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("viewer:hex", viewer_hex_keymap, mc_global_keymap);

        main_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("main", main_keymap, mc_global_keymap);
        main_x_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("main:xmap", main_x_keymap, mc_global_keymap);

        panel_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("panel", panel_keymap, mc_global_keymap);

        input_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("input", input_keymap, mc_global_keymap);

        listbox_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("listbox", listbox_keymap, mc_global_keymap);

        tree_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("tree", tree_keymap, mc_global_keymap);

        help_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("help", help_keymap, mc_global_keymap);

        dialog_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("dialog", dialog_keymap, mc_global_keymap);

#ifdef USE_DIFF_VIEW
        diff_keymap = g_array_new (TRUE, FALSE, sizeof (global_keymap_t));
        load_keymap_from_section ("diffviewer", diff_keymap, mc_global_keymap);
#endif
        mc_config_deinit (mc_global_keymap);
    }

    main_map = default_main_map;
    if (main_keymap && main_keymap->len > 0)
        main_map = (global_keymap_t *) main_keymap->data;

    main_x_map = default_main_x_map;
    if (main_x_keymap && main_x_keymap->len > 0)
        main_x_map = (global_keymap_t *) main_x_keymap->data;

    panel_map = default_panel_keymap;
    if (panel_keymap && panel_keymap->len > 0)
        panel_map = (global_keymap_t *) panel_keymap->data;

    input_map = default_input_keymap;
    if (input_keymap && input_keymap->len > 0)
        input_map = (global_keymap_t *) input_keymap->data;

    listbox_map = default_listbox_keymap;
    if (listbox_keymap && listbox_keymap->len > 0)
        listbox_map = (global_keymap_t *) listbox_keymap->data;

    tree_map = default_tree_keymap;
    if (tree_keymap && tree_keymap->len > 0)
        tree_map = (global_keymap_t *) tree_keymap->data;

    help_map = default_help_keymap;
    if (help_keymap && help_keymap->len > 0)
        help_map = (global_keymap_t *) help_keymap->data;

    dialog_map = default_dialog_keymap;
    if (dialog_keymap && dialog_keymap->len > 0)
        dialog_map = (global_keymap_t *) dialog_keymap->data;

#ifdef USE_DIFF_VIEW
    diff_map = default_diff_keymap;
    if (diff_keymap && diff_keymap->len > 0)
        diff_map = (global_keymap_t *) diff_keymap->data;
#endif

}