summaryrefslogtreecommitdiff
path: root/libre/xarchiver-libre/xarchiver-0.5.2-add_xz_support.patch
diff options
context:
space:
mode:
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.patch397
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: