Lines Matching refs:archive

34 void xa_unar_ask (XArchive *archive)  in xa_unar_ask()  argument
36archive->can_test = !(archive->type == XARCHIVETYPE_AR || archive->type == XARCHIVETYPE_COMPRESS |… in xa_unar_ask()
37 archive->can_extract = (archiver[archive->type].program[1] != NULL); in xa_unar_ask()
38 archive->can_full_path[0] = (archiver[archive->type].program[1] != NULL); in xa_unar_ask()
39 archive->can_overwrite = (archiver[archive->type].program[1] != NULL); in xa_unar_ask()
42 static gchar *xa_unar_password_str (XArchive *archive) in xa_unar_password_str() argument
44 if (archive->password) in xa_unar_password_str()
45 return g_strconcat(" -p ", archive->password, NULL); in xa_unar_password_str()
50 static void xa_unar_parse_output (gchar *line, XArchive *archive) in xa_unar_parse_output() argument
73 XArchiveType type = archive->type; in xa_unar_parse_output()
76 archiver[type].program[0] = g_strdup(archiver[archive->type].program[0]); in xa_unar_parse_output()
77 archiver[type].program[1] = g_strdup(archiver[archive->type].program[1]); in xa_unar_parse_output()
78 archive->type = type; in xa_unar_parse_output()
79 archive->can_test = FALSE; in xa_unar_parse_output()
103 archive->has_password = TRUE; in xa_unar_parse_output()
146 entry = xa_set_archive_entries_for_each_row(archive, filename, item); in xa_unar_parse_output()
156 archive->files++; in xa_unar_parse_output()
158 archive->files_size += g_ascii_strtoull(item[1], NULL, 0); in xa_unar_parse_output()
162 void xa_unar_list (XArchive *archive) in xa_unar_list() argument
169 if (archive->type == XARCHIVETYPE_7ZIP) in xa_unar_list()
171 if (!archive->has_password) in xa_unar_list()
172 archive->has_password = is7zip_mhe(archive->path[0]); in xa_unar_list()
174 if (archive->has_password) in xa_unar_list()
175 if (!xa_check_password(archive)) in xa_unar_list()
182 archive->files = 0; in xa_unar_list()
183 archive->files_size = 0; in xa_unar_list()
185 password_str = xa_unar_password_str(archive); in xa_unar_list()
186 …command = g_strconcat(archiver[archive->type].program[0], " -l", password_str, " ", archive->path[… in xa_unar_list()
187 archive->parse_output = xa_unar_parse_output; in xa_unar_list()
188 xa_spawn_async_process(archive, command); in xa_unar_list()
192 archive->columns = 9; in xa_unar_list()
193 archive->size_column = 3; in xa_unar_list()
194 archive->column_types = g_malloc0(sizeof(types)); in xa_unar_list()
196 for (i = 0; i < archive->columns; i++) in xa_unar_list()
197 archive->column_types[i] = types[i]; in xa_unar_list()
199 xa_create_liststore(archive, titles); in xa_unar_list()
202 void xa_unar_test (XArchive *archive) in xa_unar_test() argument
206 password_str = xa_unar_password_str(archive); in xa_unar_test()
207 …command = g_strconcat(archiver[archive->type].program[0], " -t", password_str, " ", archive->path[… in xa_unar_test()
210 xa_run_command(archive, command); in xa_unar_test()
214 gboolean xa_unar_extract (XArchive *archive, GSList *file_list) in xa_unar_extract() argument
220 if (archive->do_full_path) in xa_unar_extract()
221 extract_to = g_strdup(archive->extraction_dir); in xa_unar_extract()
224 if (!xa_create_working_directory(archive)) in xa_unar_extract()
227 extract_to = g_strconcat(archive->working_dir, "/xa-tmp.XXXXXX", NULL); in xa_unar_extract()
237 password_str = xa_unar_password_str(archive); in xa_unar_extract()
238 command = g_strconcat(archiver[archive->type].program[1], " ", in xa_unar_extract()
239 archive->path[1], password_str, " -D -q", in xa_unar_extract()
240 archive->do_overwrite ? " -f" : "", in xa_unar_extract()
243 result = xa_run_command(archive, command); in xa_unar_extract()
247 if (result && !archive->do_full_path) in xa_unar_extract()
251 archive->child_dir = g_strdup(extract_to); in xa_unar_extract()
253 archive->do_overwrite ? " -f" : " -n", in xa_unar_extract()
254 all_files->str, " ", archive->extraction_dir, NULL); in xa_unar_extract()
257 result = xa_run_command(archive, command); in xa_unar_extract()
260 g_free(archive->child_dir); in xa_unar_extract()
261 archive->child_dir = NULL; in xa_unar_extract()