Lines Matching refs:archive

56 void xa_rar_ask (XArchive *archive)  in xa_rar_ask()  argument
58 archive->can_test = TRUE; in xa_rar_ask()
59 archive->can_extract = TRUE; in xa_rar_ask()
60 archive->can_add = archiver[archive->type].is_compressor; in xa_rar_ask()
61 archive->can_delete = archiver[archive->type].is_compressor; in xa_rar_ask()
62 archive->can_sfx = archiver[archive->type].is_compressor; in xa_rar_ask()
63 archive->can_password = archiver[archive->type].is_compressor; in xa_rar_ask()
64 archive->can_full_path[0] = TRUE; in xa_rar_ask()
65 archive->can_full_path[1] = archiver[archive->type].is_compressor; in xa_rar_ask()
66 archive->can_touch = TRUE; in xa_rar_ask()
67 archive->can_overwrite = TRUE; in xa_rar_ask()
68 archive->can_update[0] = TRUE; in xa_rar_ask()
69 archive->can_update[1] = archiver[archive->type].is_compressor; in xa_rar_ask()
70 archive->can_freshen[0] = TRUE; in xa_rar_ask()
71 archive->can_freshen[1] = archiver[archive->type].is_compressor; in xa_rar_ask()
72 archive->can_move = archiver[archive->type].is_compressor; in xa_rar_ask()
73 archive->can_solid = archiver[archive->type].is_compressor; in xa_rar_ask()
76 static gchar *xa_rar_password_str (XArchive *archive) in xa_rar_password_str() argument
78 if (archive->password) in xa_rar_password_str()
79 return g_strconcat(" -p", archive->password, NULL); in xa_rar_password_str()
84 static void xa_rar_parse_output (gchar *line, XArchive *archive) in xa_rar_parse_output() argument
103 && strstr(line, archive->path[0])) in xa_rar_parse_output()
107 if (archive->comment) in xa_rar_parse_output()
109 if (archive->comment->len > 2) in xa_rar_parse_output()
111 archive->has_comment = TRUE; in xa_rar_parse_output()
112 archive->comment = g_string_truncate(archive->comment, archive->comment->len - 2); in xa_rar_parse_output()
113 archive->comment = g_string_erase(archive->comment, 0, 1); in xa_rar_parse_output()
117 g_string_free(archive->comment, TRUE); in xa_rar_parse_output()
118 archive->comment = NULL; in xa_rar_parse_output()
124 if (!archive->comment) in xa_rar_parse_output()
125 archive->comment = g_string_new(""); in xa_rar_parse_output()
127 archive->comment = g_string_append(archive->comment, line); in xa_rar_parse_output()
145 archive->has_password = TRUE; in xa_rar_parse_output()
244 entry = xa_set_archive_entries_for_each_row(archive, filename, item); in xa_rar_parse_output()
254 archive->files++; in xa_rar_parse_output()
256 archive->files_size += g_ascii_strtoull(item[0], NULL, 0); in xa_rar_parse_output()
264 static void xa_rar5_parse_output (gchar *line, XArchive *archive) in xa_rar5_parse_output() argument
280 if ((strncmp(line, "Archive: ", 9) == 0) && strstr(line, archive->path[0])) in xa_rar5_parse_output()
284 if (archive->comment) in xa_rar5_parse_output()
286 if (archive->comment->len > 2) in xa_rar5_parse_output()
288 archive->has_comment = TRUE; in xa_rar5_parse_output()
289 archive->comment = g_string_truncate(archive->comment, archive->comment->len - 2); in xa_rar5_parse_output()
290 archive->comment = g_string_erase(archive->comment, 0, 1); in xa_rar5_parse_output()
294 g_string_free(archive->comment, TRUE); in xa_rar5_parse_output()
295 archive->comment = NULL; in xa_rar5_parse_output()
301 if (!archive->comment) in xa_rar5_parse_output()
302 archive->comment = g_string_new(""); in xa_rar5_parse_output()
304 archive->comment = g_string_append(archive->comment, line); in xa_rar5_parse_output()
321 archive->has_password = TRUE; in xa_rar5_parse_output()
404 entry = xa_set_archive_entries_for_each_row (archive,filename,item); in xa_rar5_parse_output()
414 archive->files++; in xa_rar5_parse_output()
416 archive->files_size += g_ascii_strtoull(item[0], NULL, 0); in xa_rar5_parse_output()
422 void xa_rar_list (XArchive *archive) in xa_rar_list() argument
428 file = g_io_channel_new_file(archive->path[0], "r", NULL); in xa_rar_list()
453 archive->has_password = (byte[0] == 0x73 && byte[1] & 0x80); in xa_rar_list()
469 archive->has_password = (*byte == 4); in xa_rar_list()
474 if (archive->has_password) in xa_rar_list()
475 if (!xa_check_password(archive)) in xa_rar_list()
484 password_str = xa_rar_password_str(archive); in xa_rar_list()
485 …command = g_strconcat(archiver[archive->type].program[0], " v", password_str, " -idc ", archive->p… in xa_rar_list()
488 archive->files_size = 0; in xa_rar_list()
489 archive->files = 0; in xa_rar_list()
497 archive->parse_output = xa_rar5_parse_output; in xa_rar_list()
498 xa_spawn_async_process (archive,command); in xa_rar_list()
501 archive->columns = 10; in xa_rar_list()
502 archive->size_column = 2; in xa_rar_list()
503 archive->column_types = g_malloc0(sizeof(types)); in xa_rar_list()
505 for (i = 0; i < archive->columns; i++) in xa_rar_list()
506 archive->column_types[i] = types[i]; in xa_rar_list()
508 xa_create_liststore(archive, titles); in xa_rar_list()
515 archive->parse_output = xa_rar_parse_output; in xa_rar_list()
516 xa_spawn_async_process (archive,command); in xa_rar_list()
519 archive->columns = 12; in xa_rar_list()
520 archive->size_column = 2; in xa_rar_list()
521 archive->column_types = g_malloc0(sizeof(types)); in xa_rar_list()
523 for (i = 0; i < archive->columns; i++) in xa_rar_list()
524 archive->column_types[i] = types[i]; in xa_rar_list()
526 xa_create_liststore(archive, titles); in xa_rar_list()
530 void xa_rar_test (XArchive *archive) in xa_rar_test() argument
534 password_str = xa_rar_password_str(archive); in xa_rar_test()
535 …command = g_strconcat(archiver[archive->type].program[0], " t", password_str, " -idp -y ", archive in xa_rar_test()
538 xa_run_command(archive, command); in xa_rar_test()
546 gboolean xa_rar_extract (XArchive *archive, GSList *file_list) in xa_rar_extract() argument
553 password_str = xa_rar_password_str(archive); in xa_rar_extract()
554 command = g_strconcat(archiver[archive->type].program[0], in xa_rar_extract()
555 archive->do_full_path ? " x" : " e", in xa_rar_extract()
556 archive->do_touch ? " -tsm-" : "", in xa_rar_extract()
557archive->do_overwrite ? " -o+" : (archive->do_update ? " -u" : (archive->do_freshen ? " -f" : " -o… in xa_rar_extract()
559 archive->path[1], files->str, in xa_rar_extract()
560 " ", archive->extraction_dir, NULL); in xa_rar_extract()
564 result = xa_run_command(archive, command); in xa_rar_extract()
570 void xa_rar_add (XArchive *archive, GSList *file_list, gchar *compression) in xa_rar_add() argument
576 if (archive->location_path != NULL) in xa_rar_add()
577 archive->child_dir = g_strdup(archive->working_dir); in xa_rar_add()
581 if (archive->tag == 5) in xa_rar_add()
593 password_str = xa_rar_password_str(archive); in xa_rar_add()
594 command = g_strconcat(archiver[archive->type].program[0], in xa_rar_add()
595 archive->do_update ? " u" : " a", version_switch, in xa_rar_add()
596 archive->do_freshen ? " -f" : "", in xa_rar_add()
597 archive->do_move ? " -df" : "", in xa_rar_add()
598 archive->do_solid ? " -s" : "", in xa_rar_add()
601 archive->path[1], files->str, NULL); in xa_rar_add()
605 xa_run_command(archive, command); in xa_rar_add()
609 void xa_rar_delete (XArchive *archive, GSList *file_list) in xa_rar_delete() argument
615 …command = g_strconcat(archiver[archive->type].program[0], " d -idp -y ", archive->path[1], files->… in xa_rar_delete()
618 xa_run_command(archive, command); in xa_rar_delete()