int main(int argc, char **argv) { char *home_dir; char dir_name[6] = ".vifm"; char config_dir[PATH_MAX]; char config_file[PATH_MAX], config_file_bak[PATH_MAX]; char startup_file[PATH_MAX]; char vifminfo_file[PATH_MAX], vifminfo_file_bak[PATH_MAX]; char colorschemes_file[PATH_MAX], colors_dir[PATH_MAX]; int vifm_like; char *vifmrc_arg, *vifminfo_arg; (void)setlocale(LC_ALL, ""); if(argc != 2 && argc != 4) { puts("Usage: vifmrc-converter 0|1|2 [vifmrc_file vifminfo_file]\n\n" "1 means comment commands in vifmrc and put more things to vifminfo\n" "2 means convert colorscheme file only"); return 1; } if(argv[1][1] != '\0' || (argv[1][0] != '0' && argv[1][0] != '1' && argv[1][0] != '2')) { puts("Usage: vifmrc-converter 0|1|2 [vifmrc_file vifminfo_file]\n\n" "1 means comment commands in vifmrc and put more things to vifminfo\n" "2 means convert colorscheme file only"); return 1; } vifm_like = atoi(argv[1]); home_dir = getenv("HOME"); #ifdef _WIN32 snprintf(config_dir, sizeof(config_dir), "%s/Vifm", getenv("APPDATA")); if(home_dir == NULL || home_dir[0] == '\0' || is_dir(config_dir)) { home_dir = getenv("APPDATA"); strcpy(dir_name, "Vifm"); } #endif if(home_dir == NULL || home_dir[0] == '\0') { puts("Can't find configuration directory"); return 1; } snprintf(config_dir, sizeof(config_dir), "%s/%s", home_dir, dir_name); snprintf(config_file, sizeof(config_file), "%s/vifmrc", config_dir); snprintf(config_file_bak, sizeof(config_file_bak), "%s/vifmrc.bak", config_dir); snprintf(startup_file, sizeof(startup_file), "%s/startup", config_dir); snprintf(vifminfo_file, sizeof(startup_file), "%s/vifminfo", config_dir); snprintf(vifminfo_file_bak, sizeof(vifminfo_file_bak), "%s/vifminfo.bak", config_dir); snprintf(colorschemes_file, sizeof(colorschemes_file), "%s/colorschemes", config_dir); snprintf(colors_dir, sizeof(colors_dir), "%s/colors", config_dir); #ifdef _WIN32 change_slashes(config_dir); change_slashes(config_file); change_slashes(config_file_bak); change_slashes(startup_file); change_slashes(vifminfo_file); change_slashes(vifminfo_file_bak); change_slashes(colorschemes_file); change_slashes(colors_dir); #endif if(vifm_like == 2) { convert_color_schemes(colorschemes_file, colors_dir); return 0; } if(argc == 4) { vifmrc_arg = argv[2]; vifminfo_arg = argv[3]; } else { vifmrc_arg = config_file; vifminfo_arg = vifminfo_file; } if(!vifm_like) vifminfo = VIFMINFO_BOOKMARKS; read_config_file(config_file); read_config_file(vifminfo_file); if(access(config_file, F_OK) == 0) { if(access(config_file_bak, F_OK) == 0) unlink(config_file_bak); if(rename(config_file, config_file_bak) != 0) { fprintf(stderr, "Can't move vifmrc file to make a backup copy " "(from \"%s\" to \"%s\")\n", config_file, config_file_bak); exit(1); } } if(access(vifminfo_file, F_OK) == 0) { if(access(vifminfo_file_bak, F_OK) == 0) unlink(vifminfo_file_bak); if(rename(vifminfo_file, vifminfo_file_bak) != 0) { fprintf(stderr, "Can't move vifminfo file to make a backup copy " "(from \"%s\" to \"%s\")\n", vifminfo_file, vifminfo_file_bak); exit(1); } } write_vifmrc(vifmrc_arg, vifm_like); append_vifmrc(vifmrc_arg, vifm_like); append_vifminfo_option(vifmrc_arg, vifm_like); append_startup(vifmrc_arg, startup_file); write_vifminfo(vifminfo_arg, vifm_like); convert_color_schemes(colorschemes_file, colors_dir); return 0; }
static void load_program(void) { char *args[] = { utils_get_locale_from_utf8(pref_gdb_executable), (char *) "--quiet", (char *) "--interpreter=mi2", NULL }; GError *gerror = NULL; statusbar_update_state(DS_EXTRA_2); plugin_blink(); while (gtk_events_pending()) gtk_main_iteration(); if (spawn_with_callbacks(NULL, NULL, args, NULL, GDB_SPAWN_FLAGS, obtain_send_channel_cb, NULL, receive_output_cb, NULL, GDB_BUFFER_SIZE, receive_errors_cb, NULL, 0, gdb_exit_cb, NULL, &gdb_pid, &gerror)) { gchar **environment = g_strsplit(program_environment, "\n", -1); gchar *const *envar; #ifdef G_OS_UNIX extern char *slave_pty_name; #else GString *escaped = g_string_new(program_executable); #endif /* startup */ gdb_state = ACTIVE; dc_clear(); utils_lock_all(TRUE); signal(SIGINT, SIG_IGN); wait_result = 0; wait_prompt = TRUE; g_string_truncate(commands, 0); leading_receive = TRUE; if (pref_gdb_async_mode) g_string_append(commands, "-gdb-set target-async on\n"); if (program_non_stop_mode) g_string_append(commands, "-gdb-set non-stop on\n"); #ifdef G_OS_UNIX append_startup("010-file-exec-and-symbols", program_executable); append_startup("-gdb-set inferior-tty", slave_pty_name); #else /* G_OS_UNIX */ utils_string_replace_all(escaped, "\\", "\\\\"); append_startup("010-file-exec-and-symbols", escaped->str); g_string_free(escaped, TRUE); g_string_append(commands, "-gdb-set new-console on\n"); #endif /* G_OS_UNIX */ append_startup("-environment-cd", program_working_dir); /* no escape needed */ append_startup("-exec-arguments", program_arguments); for (envar = environment; *envar; envar++) append_startup("-gdb-set environment", *envar); g_strfreev(environment); append_startup("011source -v", program_load_script); g_string_append(commands, "07-list-target-features\n"); breaks_query_async(commands); if (*program_executable || *program_load_script) { debug_load_error = FALSE; debug_auto_run = debug_auto_exit = program_auto_run_exit; } else debug_auto_run = debug_auto_exit = FALSE; if (option_open_panel_on_load) open_debug_panel(); registers_query_names(); } else { show_error(_("%s: %s."), pref_gdb_executable, gerror->message); g_error_free(gerror); } g_free(args[0]); if (gdb_state == INACTIVE) statusbar_update_state(DS_INACTIVE); }
int main(int argc, char **argv) { char *home_dir; char dir_name[6] = ".vifm"; char config_dir[PATH_MAX]; char config_file[PATH_MAX], config_file_bak[PATH_MAX]; char startup_file[PATH_MAX]; char vifminfo_file[PATH_MAX], vifminfo_file_bak[PATH_MAX]; char colorschemes_file[PATH_MAX], colors_dir[PATH_MAX]; int mode; char *vifmrc_arg, *vifminfo_arg; int err; (void)setlocale(LC_ALL, ""); if(argc != 2 && argc != 4) { puts(USAGE); return 1; } if(argv[1][1] != '\0' || (argv[1][0] != '0' && argv[1][0] != '1' && argv[1][0] != '2' && argv[1][0] != '3')) { puts(USAGE); return 1; } mode = atoi(argv[1]); home_dir = getenv("HOME"); #ifdef _WIN32 snprintf(config_dir, sizeof(config_dir), "%s/Vifm", getenv("APPDATA")); if(home_dir == NULL || home_dir[0] == '\0' || is_dir(config_dir)) { home_dir = getenv("APPDATA"); strcpy(dir_name, "Vifm"); } #endif if(home_dir == NULL || home_dir[0] == '\0') { puts("Can't find configuration directory"); return 1; } snprintf(config_dir, sizeof(config_dir), "%s/%s", home_dir, dir_name); snprintf(config_file, sizeof(config_file), "%s/vifmrc", config_dir); snprintf(config_file_bak, sizeof(config_file_bak), "%s/vifmrc.bak", config_dir); snprintf(startup_file, sizeof(startup_file), "%s/startup", config_dir); snprintf(vifminfo_file, sizeof(startup_file), "%s/vifminfo", config_dir); snprintf(vifminfo_file_bak, sizeof(vifminfo_file_bak), "%s/vifminfo.bak", config_dir); snprintf(colorschemes_file, sizeof(colorschemes_file), "%s/colorschemes", config_dir); snprintf(colors_dir, sizeof(colors_dir), "%s/colors", config_dir); #ifdef _WIN32 change_slashes(config_dir); change_slashes(config_file); change_slashes(config_file_bak); change_slashes(startup_file); change_slashes(vifminfo_file); change_slashes(vifminfo_file_bak); change_slashes(colorschemes_file); change_slashes(colors_dir); #endif if(mode == 2) { convert_color_schemes(colorschemes_file, colors_dir); return 0; } if(mode == 3) { rename_color_schemes(colors_dir); return 0; } if(argc == 4) { vifmrc_arg = argv[2]; vifminfo_arg = argv[3]; } else { vifmrc_arg = config_file; vifminfo_arg = vifminfo_file; } if(!mode) { vifminfo = VIFMINFO_BOOKMARKS; } read_config_file(config_file); read_config_file(vifminfo_file); (void)unlink(config_file_bak); err = rename(config_file, config_file_bak); if(err != 0 && errno != ENOENT) { fprintf(stderr, "Can't move vifmrc file to make a backup copy " "(from \"%s\" to \"%s\")\n", config_file, config_file_bak); exit(1); } (void)unlink(vifminfo_file_bak); err = rename(vifminfo_file, vifminfo_file_bak); if(err != 0 && errno != ENOENT) { fprintf(stderr, "Can't move vifminfo file to make a backup copy " "(from \"%s\" to \"%s\")\n", vifminfo_file, vifminfo_file_bak); exit(1); } write_vifmrc(vifmrc_arg, mode); append_vifmrc(vifmrc_arg, mode); append_vifminfo_option(vifmrc_arg, mode); append_startup(vifmrc_arg, startup_file); write_vifminfo(vifminfo_arg, mode); convert_color_schemes(colorschemes_file, colors_dir); return 0; }