Lines Matching refs:archive

59 static XArchiveType xa_tar_get_compressor_type (XArchive *archive)  in xa_tar_get_compressor_type()  argument
61 switch (archive->type) in xa_tar_get_compressor_type()
98 void xa_tar_ask (XArchive *archive) in xa_tar_ask() argument
100 archive->can_extract = TRUE; in xa_tar_ask()
101 archive->can_add = archiver[xa_tar_get_compressor_type(archive)].is_compressor; in xa_tar_ask()
102 archive->can_delete = archiver[xa_tar_get_compressor_type(archive)].is_compressor; in xa_tar_ask()
103 archive->can_full_path[0] = TRUE; in xa_tar_ask()
104 archive->can_full_path[1] = archiver[xa_tar_get_compressor_type(archive)].is_compressor; in xa_tar_ask()
105 archive->can_touch = TRUE; in xa_tar_ask()
106 archive->can_overwrite = TRUE; in xa_tar_ask()
107 archive->can_update[0] = TRUE; in xa_tar_ask()
108 archive->can_update[1] = archiver[xa_tar_get_compressor_type(archive)].is_compressor; in xa_tar_ask()
109 archive->can_move = archiver[xa_tar_get_compressor_type(archive)].is_compressor; in xa_tar_ask()
112 if (!archiver[archive->type].program[0]) in xa_tar_ask()
114 …archiver[archive->type].program[0] = g_strdup(archiver[xa_tar_get_compressor_type(archive)].progra… in xa_tar_ask()
115 archiver[archive->type].program[1] = g_strdup(archiver[XARCHIVETYPE_TAR].program[0]); in xa_tar_ask()
119 static void xa_tar_parse_output (gchar *line, XArchive *archive) in xa_tar_parse_output() argument
196 entry = xa_set_archive_entries_for_each_row(archive, filename, item); in xa_tar_parse_output()
200 entry->is_encrypted = (archive->password != NULL); in xa_tar_parse_output()
203 archive->files++; in xa_tar_parse_output()
205 archive->files_size += g_ascii_strtoull(item[1], NULL, 0); in xa_tar_parse_output()
211 void xa_tar_list (XArchive *archive) in xa_tar_list() argument
218 if (!archive->path[2]) in xa_tar_list()
219 archive->path[2] = g_shell_quote(archive->path[0]); in xa_tar_list()
221 archive->files = 0; in xa_tar_list()
222 archive->files_size = 0; in xa_tar_list()
224 command = g_strconcat(archiver[XARCHIVETYPE_TAR].program[0], " -tvf ", archive->path[2], NULL); in xa_tar_list()
225 archive->parse_output = xa_tar_parse_output; in xa_tar_list()
226 xa_spawn_async_process(archive, command); in xa_tar_list()
229 archive->columns = 9; in xa_tar_list()
230 archive->size_column = 3; in xa_tar_list()
231 archive->column_types = g_malloc0(sizeof(types)); in xa_tar_list()
233 for (i = 0; i < archive->columns; i++) in xa_tar_list()
234 archive->column_types[i] = types[i]; in xa_tar_list()
236 xa_create_liststore(archive, titles); in xa_tar_list()
244 gboolean xa_tar_extract (XArchive *archive, GSList *file_list) in xa_tar_extract() argument
250 if (archive->do_full_path) in xa_tar_extract()
251 extract_to = g_strdup(archive->extraction_dir); in xa_tar_extract()
254 if (!xa_create_working_directory(archive)) in xa_tar_extract()
257 extract_to = g_strconcat(archive->working_dir, "/xa-tmp.XXXXXX", NULL); in xa_tar_extract()
269 " -f ", archive->path[2], in xa_tar_extract()
270 archive->do_touch ? " -m" : "", in xa_tar_extract()
271archive->do_overwrite ? "" : (archive->do_update ? " --keep-newer-files" : " -k"), in xa_tar_extract()
274 result = xa_run_command(archive, command); in xa_tar_extract()
278 if (result && !archive->do_full_path) in xa_tar_extract()
282 archive->child_dir = g_strdup(extract_to); in xa_tar_extract()
284 archive->do_overwrite ? " -f" : " -n", in xa_tar_extract()
285 archive->do_update ? " -fu" : "", in xa_tar_extract()
286 all_files->str, " ", archive->extraction_dir, NULL); in xa_tar_extract()
289 result = xa_run_command(archive, command); in xa_tar_extract()
292 g_free(archive->child_dir); in xa_tar_extract()
293 archive->child_dir = NULL; in xa_tar_extract()
302 void xa_tar_add (XArchive *archive, GSList *file_list, gchar *compression) in xa_tar_add() argument
307 if (archive->location_path != NULL) in xa_tar_add()
308 archive->child_dir = g_strdup(archive->working_dir); in xa_tar_add()
312 if (!g_file_test(archive->path[0], G_FILE_TEST_EXISTS)) in xa_tar_add()
314 if (archive->type == XARCHIVETYPE_TAR) in xa_tar_add()
315 archive->path[2] = g_shell_quote(archive->path[0]); in xa_tar_add()
320 if (!xa_create_working_directory(archive)) in xa_tar_add()
326 workfile = g_strconcat(archive->working_dir, "/xa-tmp.tar", NULL); in xa_tar_add()
327 archive->path[2] = g_shell_quote(workfile); in xa_tar_add()
333 archive->do_move ? " --remove-files" : "", in xa_tar_add()
334 " -f ", archive->path[2], files->str, NULL); in xa_tar_add()
338 archive->do_update ? " -u" : " -r", in xa_tar_add()
340 archive->do_move ? " --remove-files" : "", in xa_tar_add()
341 " -f ", archive->path[2], files->str, NULL); in xa_tar_add()
343 if (archive->type != XARCHIVETYPE_TAR) in xa_tar_add()
345 xa_run_command(archive, command); in xa_tar_add()
348 …_get_compressor_type(archive)].program[0], archive->path[2], archive->path[0], archive->password, … in xa_tar_add()
353 xa_run_command(archive, command); in xa_tar_add()
357 void xa_tar_delete (XArchive *archive, GSList *file_list) in xa_tar_delete() argument
363 …HIVETYPE_TAR].program[0], " --delete --no-recursion --no-wildcards -f ", archive->path[2], files->… in xa_tar_delete()
365 if (archive->type != XARCHIVETYPE_TAR) in xa_tar_delete()
367 xa_run_command(archive, command); in xa_tar_delete()
370 …_get_compressor_type(archive)].program[0], archive->path[2], archive->path[0], archive->password, … in xa_tar_delete()
375 xa_run_command(archive, command); in xa_tar_delete()