Lines Matching refs:archive

39 void xa_rpm_ask (XArchive *archive)  in xa_rpm_ask()  argument
41 archive->can_extract = TRUE; in xa_rpm_ask()
42 archive->can_full_path[0] = TRUE; in xa_rpm_ask()
43 archive->can_touch = TRUE; in xa_rpm_ask()
44 archive->can_overwrite = TRUE; in xa_rpm_ask()
47 static gchar *xa_rpm2cpio (XArchive *archive) in xa_rpm2cpio() argument
58 stream = fopen(archive->path[0], "r"); in xa_rpm2cpio()
64 msg = g_strdup_printf(_("Can't open RPM file %s:"), archive->path[0]); in xa_rpm2cpio()
107 if (!xa_create_working_directory(archive)) in xa_rpm2cpio()
110 cpio_z = g_strconcat(archive->working_dir, "/xa-tmp.cpio_z", NULL); in xa_rpm2cpio()
114 command = g_strconcat("dd if=", archive->path[1], " ibs=", ibs, " skip=1 of=", cpio_z, NULL); in xa_rpm2cpio()
117 success = xa_run_command(archive, command); in xa_rpm2cpio()
148 …command = g_strconcat("sh -c \"", executable, cpio_z, " > ", archive->working_dir, "/xa-tmp.cpio\"… in xa_rpm2cpio()
151 success = xa_run_command(archive, command); in xa_rpm2cpio()
157 static void xa_cpio_parse_output (gchar *line, XArchive *archive) in xa_cpio_parse_output() argument
247 entry = xa_set_archive_entries_for_each_row(archive, filename, item); in xa_cpio_parse_output()
252 archive->files++; in xa_cpio_parse_output()
254 archive->files_size += g_ascii_strtoull(item[1], NULL, 0); in xa_cpio_parse_output()
260 void xa_rpm_list (XArchive *archive) in xa_rpm_list() argument
267 result = xa_rpm2cpio(archive); in xa_rpm_list()
269 archive->files_size = 0; in xa_rpm_list()
270 archive->files = 0; in xa_rpm_list()
272 archive->columns = 10; in xa_rpm_list()
273 archive->size_column = 3; in xa_rpm_list()
274 archive->column_types = g_malloc0(sizeof(types)); in xa_rpm_list()
276 for (i = 0; i < archive->columns; i++) in xa_rpm_list()
277 archive->column_types[i] = types[i]; in xa_rpm_list()
279 xa_create_liststore(archive, titles); in xa_rpm_list()
291 …command = g_strconcat(archiver[archive->type].program[0], " -tv -I ", archive->working_dir, "/xa-t… in xa_rpm_list()
293 archive->parse_output = xa_cpio_parse_output; in xa_rpm_list()
294 xa_spawn_async_process (archive,command); in xa_rpm_list()
304 gboolean xa_rpm_extract (XArchive *archive, GSList *file_list) in xa_rpm_extract() argument
310 if (archive->do_full_path) in xa_rpm_extract()
311 extract_to = g_strdup(archive->extraction_dir); in xa_rpm_extract()
314 if (!xa_create_working_directory(archive)) in xa_rpm_extract()
317 extract_to = g_strconcat(archive->working_dir, "/xa-tmp.XXXXXX", NULL); in xa_rpm_extract()
327 archive->child_dir = g_strdup(extract_to); in xa_rpm_extract()
328 command = g_strconcat(archiver[archive->type].program[0], " -id", in xa_rpm_extract()
329 archive->do_touch ? "" : " -m", in xa_rpm_extract()
330 archive->do_overwrite ? " -u" : "", in xa_rpm_extract()
331 " -I ", archive->working_dir, "/xa-tmp.cpio", in xa_rpm_extract()
333 result = xa_run_command(archive, command); in xa_rpm_extract()
336 g_free(archive->child_dir); in xa_rpm_extract()
337 archive->child_dir = NULL; in xa_rpm_extract()
340 if (result && !archive->do_full_path) in xa_rpm_extract()
344 archive->child_dir = g_strdup(extract_to); in xa_rpm_extract()
346 archive->do_overwrite ? " -f" : " -n", in xa_rpm_extract()
347 all_files->str, " ", archive->extraction_dir, NULL); in xa_rpm_extract()
350 result = xa_run_command(archive, command); in xa_rpm_extract()
353 g_free(archive->child_dir); in xa_rpm_extract()
354 archive->child_dir = NULL; in xa_rpm_extract()