diff options
Diffstat (limited to 'libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch')
-rw-r--r-- | libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch | 397 |
1 files changed, 0 insertions, 397 deletions
diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch b/libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch deleted file mode 100644 index d246a8e19..000000000 --- a/libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch +++ /dev/null @@ -1,397 +0,0 @@ -diff -uNr xarchiver-0.5.2.orig/src/add_dialog.c xarchiver-0.5.2/src/add_dialog.c ---- xarchiver-0.5.2.orig/src/add_dialog.c 2008-11-10 19:41:31.000000000 +0900 -+++ xarchiver-0.5.2/src/add_dialog.c 2013-05-11 10:01:47.887094708 +0900 -@@ -209,7 +209,7 @@ - else - gtk_widget_set_size_request (add_dialog->dialog1,530,420); - -- if (archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_LZOP) -+ if (archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP) - gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(add_dialog->filechooserwidget1),FALSE); - else - gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(add_dialog->filechooserwidget1),TRUE); -@@ -222,7 +222,7 @@ - else - gtk_widget_set_sensitive(add_dialog->store_path,TRUE); - /* 7z doesn't appear to let the user chooses if storing full paths */ -- if (archive->type == XARCHIVETYPE_7ZIP || archive->type == XARCHIVETYPE_LZOP || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA) -+ if (archive->type == XARCHIVETYPE_7ZIP || archive->type == XARCHIVETYPE_LZOP || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ ) - { - flag = FALSE; - } -@@ -244,7 +244,7 @@ - flag = TRUE; - gtk_widget_set_sensitive(add_dialog->solid_archive,flag); - -- if (archive->type != XARCHIVETYPE_TAR && archive->type != XARCHIVETYPE_TAR_GZ && archive->type != XARCHIVETYPE_TAR_LZMA && archive->type != XARCHIVETYPE_TAR_BZ2 && archive->type != XARCHIVETYPE_TAR_LZOP) -+ if (archive->type != XARCHIVETYPE_TAR && archive->type != XARCHIVETYPE_TAR_GZ && archive->type != XARCHIVETYPE_TAR_LZMA && archive->type != XARCHIVETYPE_TAR_XZ && archive->type != XARCHIVETYPE_TAR_BZ2 && archive->type != XARCHIVETYPE_TAR_LZOP) - { - flag = TRUE; - if (archive->type == XARCHIVETYPE_7ZIP) -@@ -306,7 +306,7 @@ - g_signal_connect (G_OBJECT (add_dialog->compression_value),"value-changed",G_CALLBACK (fix_adjustment_value), NULL); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->compression_scale, compression_msg, NULL ); - -- if (archive->type == XARCHIVETYPE_TAR || archive->type == XARCHIVETYPE_TAR_GZ || archive->type == XARCHIVETYPE_TAR_LZMA || archive->type == XARCHIVETYPE_TAR_BZ2 || archive->type == XARCHIVETYPE_TAR_LZOP) -+ if (archive->type == XARCHIVETYPE_TAR || archive->type == XARCHIVETYPE_TAR_GZ || archive->type == XARCHIVETYPE_TAR_LZMA || archive->type == XARCHIVETYPE_TAR_XZ || archive->type == XARCHIVETYPE_TAR_BZ2 || archive->type == XARCHIVETYPE_TAR_LZOP) - flag = FALSE; - else - flag = TRUE; -diff -uNr xarchiver-0.5.2.orig/src/archive.h xarchiver-0.5.2/src/archive.h ---- xarchiver-0.5.2.orig/src/archive.h 2008-11-07 17:49:41.000000000 +0900 -+++ xarchiver-0.5.2/src/archive.h 2013-05-11 10:01:47.888094708 +0900 -@@ -30,6 +30,7 @@ - XARCHIVETYPE_BZIP2, - XARCHIVETYPE_GZIP, - XARCHIVETYPE_LZMA, -+ XARCHIVETYPE_XZ, - XARCHIVETYPE_LZOP, - XARCHIVETYPE_RAR, - XARCHIVETYPE_RPM, -@@ -37,6 +38,7 @@ - XARCHIVETYPE_TAR_BZ2, - XARCHIVETYPE_TAR_GZ, - XARCHIVETYPE_TAR_LZMA, -+ XARCHIVETYPE_TAR_XZ, - XARCHIVETYPE_TAR_LZOP, - XARCHIVETYPE_ZIP, - XARCHIVETYPE_LHA, -diff -uNr xarchiver-0.5.2.orig/src/bzip2.c xarchiver-0.5.2/src/bzip2.c ---- xarchiver-0.5.2.orig/src/bzip2.c 2008-11-10 20:17:48.000000000 +0900 -+++ xarchiver-0.5.2/src/bzip2.c 2013-05-11 10:01:47.888094708 +0900 -@@ -54,6 +54,15 @@ - archive->extract = extract[archive->type]; - xa_open_tar_compressed_file(archive); - } -+ else if (g_str_has_suffix(archive->escaped_path,".tar.xz") || g_str_has_suffix (archive->escaped_path,".txz")) -+ { -+ archive->type = XARCHIVETYPE_TAR_XZ; -+ archive->format = "TAR.XZ"; -+ archive->delete = delete[archive->type]; -+ archive->add = add[archive->type]; -+ archive->extract = extract[archive->type]; -+ xa_open_tar_compressed_file(archive); -+ } - else if (g_str_has_suffix(archive->escaped_path,".tar.lzop") || - g_str_has_suffix (archive->escaped_path,".tzo") || - g_str_has_suffix(archive->escaped_path,".tar.lzo")) -@@ -85,6 +94,12 @@ - executable = "lzma "; - len = 5; - } -+ else if (archive->type == XARCHIVETYPE_XZ) -+ { -+ archive->format = "XZ"; -+ executable = "xz "; -+ len = 5; -+ } - else if (archive->type == XARCHIVETYPE_LZOP) - { - archive->format = "LZOP"; -@@ -163,6 +178,8 @@ - command = g_strconcat(tar," tfjv ",archive->escaped_path,NULL); - else if (archive->type == XARCHIVETYPE_TAR_LZMA) - command = g_strconcat(tar," tv --use-compress-program=lzma -f ",archive->escaped_path,NULL); -+ else if (archive->type == XARCHIVETYPE_TAR_XZ) -+ command = g_strconcat(tar," tv --use-compress-program=xz -f ",archive->escaped_path,NULL); - else if (archive->type == XARCHIVETYPE_TAR_LZOP) - command = g_strconcat(tar," tv --use-compress-program=lzop -f ",archive->escaped_path,NULL); - /* else fail? */ -@@ -205,6 +222,11 @@ - executable = "lzma "; - len = 5; - } -+ else if (archive->type == XARCHIVETYPE_XZ) -+ { -+ executable = "xz "; -+ len = 5; -+ } - else if (archive->type == XARCHIVETYPE_LZOP) - { - executable = "lzop "; -diff -uNr xarchiver-0.5.2.orig/src/extract_dialog.c xarchiver-0.5.2/src/extract_dialog.c ---- xarchiver-0.5.2.orig/src/extract_dialog.c 2008-11-10 19:28:11.000000000 +0900 -+++ xarchiver-0.5.2/src/extract_dialog.c 2013-05-11 10:01:47.889094708 +0900 -@@ -815,6 +815,11 @@ - archive->type = XARCHIVETYPE_TAR_LZMA; - archive->extract = extract[XARCHIVETYPE_TAR_LZMA]; - } -+ else if (g_str_has_suffix(archive->escaped_path,".tar.xz")|| g_str_has_suffix (archive->escaped_path,".txz")) -+ { -+ archive->type = XARCHIVETYPE_TAR_XZ; -+ archive->extract = extract[XARCHIVETYPE_TAR_XZ]; -+ } - else if (g_str_has_suffix(archive->escaped_path,".tar.lzop") || - g_str_has_suffix (archive->escaped_path,".tzo") || - g_str_has_suffix(archive->escaped_path,".tar.lzo")) -diff -uNr xarchiver-0.5.2.orig/src/main.c xarchiver-0.5.2/src/main.c ---- xarchiver-0.5.2.orig/src/main.c 2008-11-10 20:21:43.000000000 +0900 -+++ xarchiver-0.5.2/src/main.c 2013-05-11 10:17:01.696094044 +0900 -@@ -296,9 +296,10 @@ - open_archive[XARCHIVETYPE_BZIP2] = &xa_open_bzip2_lzma; - open_archive[XARCHIVETYPE_GZIP] = &xa_open_gzip; - open_archive[XARCHIVETYPE_LZMA] = &xa_open_bzip2_lzma; -+ open_archive[XARCHIVETYPE_XZ] = &xa_open_bzip2_lzma; - open_archive[XARCHIVETYPE_RAR] = &xa_open_rar; - open_archive[XARCHIVETYPE_RPM] = &xa_open_rpm; -- open_archive[XARCHIVETYPE_TAR] = open_archive[XARCHIVETYPE_TAR_BZ2] = open_archive[XARCHIVETYPE_TAR_GZ] = open_archive[XARCHIVETYPE_TAR_LZMA] = open_archive[XARCHIVETYPE_TAR_LZOP] = &xa_open_tar; -+ open_archive[XARCHIVETYPE_TAR] = open_archive[XARCHIVETYPE_TAR_BZ2] = open_archive[XARCHIVETYPE_TAR_GZ] = open_archive[XARCHIVETYPE_TAR_LZMA] = open_archive[XARCHIVETYPE_TAR_XZ] = open_archive[XARCHIVETYPE_TAR_LZOP] = &xa_open_tar; - open_archive[XARCHIVETYPE_ZIP] = &xa_open_zip; - open_archive[XARCHIVETYPE_LHA] = &xa_open_lha; - open_archive[XARCHIVETYPE_LZOP] = &xa_open_bzip2_lzma; -@@ -310,9 +311,10 @@ - delete[XARCHIVETYPE_BZIP2] = 0; - delete[XARCHIVETYPE_GZIP] = 0; - delete[XARCHIVETYPE_LZMA] = 0; -+ delete[XARCHIVETYPE_XZ] = 0; - delete[XARCHIVETYPE_RAR] = &xa_rar_delete; - delete[XARCHIVETYPE_RPM] = 0; -- delete[XARCHIVETYPE_TAR] = delete[XARCHIVETYPE_TAR_BZ2] = delete[XARCHIVETYPE_TAR_GZ] = delete[XARCHIVETYPE_TAR_LZMA] = delete[XARCHIVETYPE_TAR_LZOP] = &xa_tar_delete; -+ delete[XARCHIVETYPE_TAR] = delete[XARCHIVETYPE_TAR_BZ2] = delete[XARCHIVETYPE_TAR_GZ] = delete[XARCHIVETYPE_TAR_LZMA] = delete[XARCHIVETYPE_TAR_XZ] = delete[XARCHIVETYPE_TAR_LZOP] = &xa_tar_delete; - delete[XARCHIVETYPE_ZIP] = &xa_zip_delete; - delete[XARCHIVETYPE_LHA] = &xa_lha_delete; - delete[XARCHIVETYPE_LZOP] = 0; -@@ -322,10 +324,10 @@ - add[XARCHIVETYPE_7ZIP] = &xa_7zip_add; - add[XARCHIVETYPE_ARJ] = &xa_arj_add; - add[XARCHIVETYPE_DEB] = 0; -- add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = &xa_tar_add; -+ add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = add[XARCHIVETYPE_XZ] = &xa_tar_add; - add[XARCHIVETYPE_RAR] = &xa_rar_add; - add[XARCHIVETYPE_RPM] = 0; -- add[XARCHIVETYPE_TAR] = add[XARCHIVETYPE_TAR_BZ2] = add[XARCHIVETYPE_TAR_GZ] = add[XARCHIVETYPE_TAR_LZMA] = add[XARCHIVETYPE_TAR_LZOP] = &xa_tar_add; -+ add[XARCHIVETYPE_TAR] = add[XARCHIVETYPE_TAR_BZ2] = add[XARCHIVETYPE_TAR_GZ] = add[XARCHIVETYPE_TAR_LZMA] = add[XARCHIVETYPE_TAR_XZ] = add[XARCHIVETYPE_TAR_LZOP] = &xa_tar_add; - add[XARCHIVETYPE_ZIP] = &xa_zip_add; - add[XARCHIVETYPE_LHA] = &xa_lha_add; - add[XARCHIVETYPE_LZOP] = &xa_tar_add; -@@ -334,10 +336,10 @@ - extract[XARCHIVETYPE_7ZIP] = &xa_7zip_extract; - extract[XARCHIVETYPE_ARJ] = &xa_arj_extract; - extract[XARCHIVETYPE_DEB] = &xa_deb_extract;; -- extract[XARCHIVETYPE_BZIP2] = extract[XARCHIVETYPE_GZIP] = extract[XARCHIVETYPE_LZMA] = &xa_tar_extract; -+ extract[XARCHIVETYPE_BZIP2] = extract[XARCHIVETYPE_GZIP] = extract[XARCHIVETYPE_LZMA] = extract[XARCHIVETYPE_XZ] = &xa_tar_extract; - extract[XARCHIVETYPE_RAR] = &xa_rar_extract; - extract[XARCHIVETYPE_RPM] = &xa_rpm_extract; -- extract[XARCHIVETYPE_TAR] = extract[XARCHIVETYPE_TAR_BZ2] = extract[XARCHIVETYPE_TAR_GZ] = extract[XARCHIVETYPE_TAR_LZMA] = extract[XARCHIVETYPE_TAR_LZOP] = &xa_tar_extract; -+ extract[XARCHIVETYPE_TAR] = extract[XARCHIVETYPE_TAR_BZ2] = extract[XARCHIVETYPE_TAR_GZ] = extract[XARCHIVETYPE_TAR_LZMA] = extract[XARCHIVETYPE_TAR_XZ] = extract[XARCHIVETYPE_TAR_LZOP] = &xa_tar_extract; - extract[XARCHIVETYPE_ZIP] = &xa_zip_extract; - extract[XARCHIVETYPE_LHA] = &xa_lha_extract; - extract[XARCHIVETYPE_LZOP] = &xa_tar_extract; -@@ -345,10 +347,10 @@ - test[0] = 0; - test[XARCHIVETYPE_7ZIP] = &xa_7zip_test; - test[XARCHIVETYPE_ARJ] = &xa_arj_test; -- test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = 0; -+ test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = test[XARCHIVETYPE_XZ] = 0; - test[XARCHIVETYPE_RAR] = &xa_rar_test; - test[XARCHIVETYPE_RPM] = 0; -- test[XARCHIVETYPE_TAR] = test[XARCHIVETYPE_TAR_BZ2] = test[XARCHIVETYPE_TAR_GZ] = test[XARCHIVETYPE_TAR_LZMA] = test[XARCHIVETYPE_TAR_LZOP] = 0; -+ test[XARCHIVETYPE_TAR] = test[XARCHIVETYPE_TAR_BZ2] = test[XARCHIVETYPE_TAR_GZ] = test[XARCHIVETYPE_TAR_LZMA] = test[XARCHIVETYPE_TAR_XZ] = test[XARCHIVETYPE_TAR_LZOP] = 0; - test[XARCHIVETYPE_ZIP] = &xa_zip_test; - test[XARCHIVETYPE_LHA] = &xa_lha_test; - test[XARCHIVETYPE_LZOP] = 0; -@@ -392,6 +394,14 @@ - g_free (absolute_path); - } - -+ absolute_path = g_find_program_in_path("xz"); -+ if ( absolute_path ) -+ { -+ ArchiveType = g_list_append(ArchiveType, "xz"); -+ ArchiveSuffix = g_list_append(ArchiveSuffix, "*.xz"); -+ g_free (absolute_path); -+ } -+ - absolute_path = g_find_program_in_path("lzop"); - if ( absolute_path ) - { -@@ -460,6 +470,11 @@ - ArchiveType = g_list_append(ArchiveType, "tar.lzma"); - ArchiveSuffix = g_list_append(ArchiveSuffix, "*.tlz"); - } -+ if ( g_list_find ( ArchiveType , "xz") ) -+ { -+ ArchiveType = g_list_append(ArchiveType, "tar.xz"); -+ ArchiveSuffix = g_list_append(ArchiveSuffix, "*.txz"); -+ } - if ( g_list_find ( ArchiveType , "lzo") ) - { - ArchiveType = g_list_append(ArchiveType, "tar.lzo"); -@@ -528,6 +543,8 @@ - archive->type = XARCHIVETYPE_TAR_GZ; - else if ( g_str_has_suffix ( archive->escaped_path , ".tar.lzma") || g_str_has_suffix ( archive->escaped_path , ".tlz") ) - archive->type = XARCHIVETYPE_TAR_LZMA; -+ else if ( g_str_has_suffix ( archive->escaped_path , ".tar.xz") || g_str_has_suffix ( archive->escaped_path , ".txz") ) -+ archive->type = XARCHIVETYPE_TAR_XZ; - else if ( g_str_has_suffix ( archive->escaped_path , ".tar.lzo") || - g_str_has_suffix ( archive->escaped_path , ".tzo") || - g_str_has_suffix ( archive->escaped_path , ".tar.lzop")) -diff -uNr xarchiver-0.5.2.orig/src/new_dialog.c xarchiver-0.5.2/src/new_dialog.c ---- xarchiver-0.5.2.orig/src/new_dialog.c 2008-11-11 17:28:46.000000000 +0900 -+++ xarchiver-0.5.2/src/new_dialog.c 2013-05-11 10:01:47.890094708 +0900 -@@ -202,6 +202,8 @@ - type = XARCHIVETYPE_GZIP; - else if (strcmp ( ComboArchiveType,"lzma") == 0) - type = XARCHIVETYPE_LZMA; -+ else if (strcmp ( ComboArchiveType,"xz") == 0) -+ type = XARCHIVETYPE_XZ; - else if (strcmp ( ComboArchiveType,"lzo") == 0) - type = XARCHIVETYPE_LZOP; - else if (strcmp ( ComboArchiveType,"rar") == 0) -@@ -214,6 +216,8 @@ - type = XARCHIVETYPE_TAR_GZ; - else if (strcmp ( ComboArchiveType,"tar.lzma") == 0) - type = XARCHIVETYPE_TAR_LZMA; -+ else if (strcmp ( ComboArchiveType,"tar.xz") == 0) -+ type = XARCHIVETYPE_TAR_XZ; - else if (strcmp ( ComboArchiveType,"tar.lzo") == 0) - type = XARCHIVETYPE_TAR_LZOP; - else if (strcmp ( ComboArchiveType,"jar") == 0 || strcmp ( ComboArchiveType,"zip") == 0 ) -diff -Naur xarchiver-0.5.2.orig/src/rpm.c xarchiver-0.5.2/src/rpm.c ---- xarchiver-0.5.2.orig/src/rpm.c 2014-01-24 03:07:47.729711000 +0100 -+++ xarchiver-0.5.2/src/rpm.c 2014-01-24 03:12:43.717122918 +0100 -@@ -111,8 +111,10 @@ - } - if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_GZIP) - executable = "gzip -dc "; -- else -+ else if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_BZIP2) - executable = "bzip2 -dc "; -+ else -+ executable = "xz -dc "; - - command = g_strconcat("sh -c \"",executable,gzip_tmp," > ",archive->tmp,"/file.cpio\"",NULL); - g_free(gzip_tmp);diff -uNr xarchiver-0.5.2.orig/src/tar.c xarchiver-0.5.2/src/tar.c ---- xarchiver-0.5.2.orig/src/tar.c 2008-11-10 19:28:34.000000000 +0900 -+++ xarchiver-0.5.2/src/tar.c 2013-05-11 10:12:01.027094262 +0900 -@@ -242,6 +242,17 @@ - files->str , NULL ); - break; - -+ case XARCHIVETYPE_TAR_XZ: -+ if ( g_file_test ( archive->escaped_path , G_FILE_TEST_EXISTS ) ) -+ xa_add_delete_bzip2_gzip_lzma_compressed_tar (files,archive,1); -+ else -+ command = g_strconcat (tar, " ", -+ archive->add_recurse ? "" : "--no-recursion ", -+ archive->remove_files ? "--remove-files " : "", -+ "--use-compress-program=xz -cvvf ",archive->escaped_path, -+ files->str , NULL ); -+ break; -+ - case XARCHIVETYPE_TAR_LZOP: - if ( g_file_test ( archive->escaped_path , G_FILE_TEST_EXISTS ) ) - xa_add_delete_bzip2_gzip_lzma_compressed_tar (files,archive,1); -@@ -265,6 +276,10 @@ - command = g_strconcat("sh -c \"lzma -c ",files->str,"> ",archive->escaped_path,"\"",NULL); - break; - -+ case XARCHIVETYPE_XZ: -+ command = g_strconcat("sh -c \"xz -c ",files->str,"> ",archive->escaped_path,"\"",NULL); -+ break; -+ - case XARCHIVETYPE_LZOP: - command = g_strconcat("sh -c \"lzop -c ",files->str,"> ",archive->escaped_path,"\"",NULL); - break; -@@ -378,6 +393,25 @@ - } - break; - -+ case XARCHIVETYPE_TAR_XZ: -+ if (archive->full_path == 1) -+ { -+ command = g_strconcat (tar, " --use-compress-program=xz -xvf " , archive->escaped_path, -+ #ifdef __FreeBSD__ -+ archive->overwrite ? " " : " -k", -+ #else -+ archive->overwrite ? " --overwrite" : " --keep-old-files", -+ #endif -+ archive->tar_touch ? " --touch" : "", -+ " -C ",archive->extraction_path," ",names->str,NULL); -+ } -+ else -+ { -+ result = xa_extract_tar_without_directories ( "tar --use-compress-program=xz -xvf ",archive,names->str); -+ command = NULL; -+ } -+ break; -+ - case XARCHIVETYPE_TAR_LZOP: - if (archive->full_path == 1) - { -@@ -402,6 +436,11 @@ - command = NULL; - break; - -+ case XARCHIVETYPE_XZ: -+ result = lzma_bzip2_extract(archive,NULL); -+ command = NULL; -+ break; -+ - case XARCHIVETYPE_LZOP: - result = lzma_bzip2_extract(archive,NULL); - command = NULL; -@@ -449,6 +488,10 @@ - executable = "lzma -f "; - filename = "dummy.lzma"; - break; -+ case XARCHIVETYPE_TAR_XZ: -+ executable = "xz -f "; -+ filename = "dummy.xz"; -+ break; - case XARCHIVETYPE_TAR_LZOP: - executable = "lzop -f "; - filename = "dummy.lzo"; -@@ -493,7 +536,7 @@ - - gboolean is_tar_compressed (gint type) - { -- return (type == XARCHIVETYPE_TAR_BZ2 || type == XARCHIVETYPE_TAR_GZ || type == XARCHIVETYPE_TAR_LZMA || type == XARCHIVETYPE_TAR_LZOP); -+ return (type == XARCHIVETYPE_TAR_BZ2 || type == XARCHIVETYPE_TAR_GZ || type == XARCHIVETYPE_TAR_LZMA || type == XARCHIVETYPE_TAR_XZ || type == XARCHIVETYPE_TAR_LZOP); - } - - gboolean xa_extract_tar_without_directories (gchar *string,XArchive *archive,gchar *files_to_extract) -diff -uNr xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c ---- xarchiver-0.5.2.orig/src/window.c 2008-11-11 17:31:45.000000000 +0900 -+++ xarchiver-0.5.2/src/window.c 2013-05-11 10:01:47.892094708 +0900 -@@ -1125,6 +1125,8 @@ - xx = XARCHIVETYPE_GZIP; - else if (memcmp ( magic,"\x5d\x00\x00\x80",4) == 0) - xx = XARCHIVETYPE_LZMA; -+ else if ((memcmp ( magic,"\xFD" "7zXZ\x00\x00",7) == 0) || (memcmp ( magic,"\xFD" "7zXZ\x00\x10",7) == 0)) -+ xx = XARCHIVETYPE_XZ; - else if (memcmp ( magic,"\211LZO",4) == 0) - xx = XARCHIVETYPE_LZOP; - else if (memcmp ( magic,"\xed\xab\xee\xdb",4) == 0) -@@ -1462,6 +1464,7 @@ - case XARCHIVETYPE_GZIP: - case XARCHIVETYPE_BZIP2: - case XARCHIVETYPE_LZMA: -+ case XARCHIVETYPE_XZ: - case XARCHIVETYPE_LZOP: - case XARCHIVETYPE_RPM: - pos = 3; -@@ -1481,6 +1484,7 @@ - case XARCHIVETYPE_TAR_GZ: - case XARCHIVETYPE_TAR_BZ2: - case XARCHIVETYPE_TAR_LZMA: -+ case XARCHIVETYPE_TAR_XZ: - case XARCHIVETYPE_TAR_LZOP: - case XARCHIVETYPE_TAR: - case XARCHIVETYPE_ZIP: -@@ -1525,6 +1529,7 @@ - case XARCHIVETYPE_GZIP: - case XARCHIVETYPE_BZIP2: - case XARCHIVETYPE_LZMA: -+ case XARCHIVETYPE_XZ: - case XARCHIVETYPE_LZOP: - case XARCHIVETYPE_RPM: - pos = 3; -@@ -1544,6 +1549,7 @@ - case XARCHIVETYPE_TAR_GZ: - case XARCHIVETYPE_TAR_BZ2: - case XARCHIVETYPE_TAR_LZMA: -+ case XARCHIVETYPE_TAR_XZ: - case XARCHIVETYPE_TAR_LZOP: - case XARCHIVETYPE_TAR: - case XARCHIVETYPE_ZIP: |