/*FUNCTION*/ int hook_chdir(pExecuteObject pEo, char *Buffer ){ /*noverbatim CUT*/ return file_chdir(Buffer); }
int sys_fchdir(int fd) { struct file *file = fd_get_file(fd); int r = -1; if (!file) return -1; r = file_chdir(file); put_file(file); return r; }
static void exec_command(char *cmd) { #if SFX_LEVEL>=ARJSFXV char *cur_dir; #else char cur_dir[FILENAME_MAX]; #endif if(target_dir[0]=='\0') system_cmd(cmd); else { #if SFX_LEVEL>=ARJSFXV cur_dir=(char *)malloc_msg(FILENAME_MAX); #endif file_getcwd(cur_dir, FILENAME_MAX); file_chdir(target_dir); system_cmd(cmd); file_chdir(cur_dir); #if SFX_LEVEL>=ARJSFXV free(cur_dir); #endif } }
int gfm_tifiles_ungroup(const char *filename, int type) { gchar *dirname = g_path_get_dirname(filename); gchar *basename = g_path_get_basename(filename); gchar *src_file; gchar *dst_file; gchar *folder, *tmp; gchar *input; gchar *e; int err = 0; // Ask for folder folder = g_strdup(basename); e = strrchr(folder, '.'); if(e) *e = '\0'; input = msgbox_input(_("Create new directory"), folder, _("Directory where files will be ungrouped: ")); g_free(folder); if (input == NULL) return -1; tmp = g_filename_from_utf8(input, -1, NULL, NULL, NULL); g_free(input); folder = g_strconcat(dirname, G_DIR_SEPARATOR_S, tmp, NULL); g_free(tmp); // Check for folder existence if(!strcmp(dirname, ".") || !strcmp(dirname, "")) { msgbox_one(MSGBOX_ERROR, _("You can't ungroup in this folder.")); g_free(basename); g_free(dirname); return -1; } // Create folder if(file_mkdir(folder)) { g_free(basename); g_free(dirname); return -1; } file_chdir(folder); // Copy file to target src_file = g_strdup(filename); dst_file = g_strconcat(folder, G_DIR_SEPARATOR_S, basename, NULL); file_copy(src_file, dst_file); // Ungroup if(type == TIFILE_GROUP) err = tifiles_ungroup_file(dst_file, NULL); else if(type == TIFILE_TIGROUP) err = tifiles_untigroup_file(dst_file, NULL); if(err) { gchar *str; tifiles_error_get(err, &str); msgbox_one(MSGBOX_ERROR, str); g_free(str); } file_chdir(".."); // And release g_free(basename); g_free(dirname); g_free(src_file); g_free(dst_file); return 0; }