]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
archive_write_set_format_filter_by_ext: man pages updated.
authorKirill Okhotnikov <kirill.okhotnikov@gmail.com>
Mon, 1 Jun 2015 08:31:12 +0000 (10:31 +0200)
committerKirill Okhotnikov <kirill.okhotnikov@gmail.com>
Mon, 1 Jun 2015 08:31:12 +0000 (10:31 +0200)
libarchive/archive_write.3
libarchive/archive_write_format.3

index 6f4cff83b5e65b11a058b3a4aab3c47cb887fe90..a56f2dba5337b082099c0f4787161bdc7e722cec 100644 (file)
@@ -186,8 +186,13 @@ write_archive(const char *outname, const char **filename)
 
   a = archive_write_new();
   mydata->name = outname;
-  archive_write_add_filter_gzip(a);
-  archive_write_set_format_ustar(a);
+  /* Set archive format and filter according to output file extension.
+   * If it fails, set default format. Platform depended function.
+   * See supported formats in archive_write_set_format_filter_by_ext.c */
+  if ( archive_write_set_format_filter_by_ext(a, outname) != ARCHIVE_OK )  {
+    archive_write_add_filter_gzip(a);
+    archive_write_set_format_ustar(a);
+  }  
   archive_write_open(a, mydata, myopen, mywrite, myclose);
   while (*filename) {
     stat(*filename, &st);
index 39d300646e0909dd365841901a7aab571614a81c..4bd116340213a5c45ad1f9eed7f86422b9f92e4f 100644 (file)
@@ -34,7 +34,9 @@
 .Nm archive_write_set_format_raw ,
 .Nm archive_write_set_format_shar ,
 .Nm archive_write_set_format_shar_dump ,
-.Nm archive_write_set_format_ustar
+.Nm archive_write_set_format_ustar ,
+.Nm archive_write_set_format_filter_by_ext ,
+.Nm archive_write_set_format_filter_by_ext_def
 .Nd functions for creating archives
 .Sh LIBRARY
 Streaming Archive Library (libarchive, -larchive)
@@ -54,6 +56,10 @@ Streaming Archive Library (libarchive, -larchive)
 .Fn archive_write_set_format_shar_dump "struct archive *"
 .Ft int
 .Fn archive_write_set_format_ustar "struct archive *"
+.Ft int
+.Fn archive_write_set_format_filter_by_ext "struct archive *" "const char *"
+.Ft int
+.Fn archive_write_set_format_filter_by_ext_def "struct archive *" "const char *" "const char *"
 .Sh DESCRIPTION
 These functions set the format that will be used for the archive.
 .Pp
@@ -79,6 +85,14 @@ filenames, linknames, uids, sizes, etc.
 is the library default; this is the same as pax format, but suppresses
 the pax extended header for most normal files.
 In most cases, this will result in ordinary ustar archives.
+.Bl -tag -width indent
+.It Xo
+.Fn archive_write_set_format_filter_by_ext ,
+.Fn archive_write_set_format_filter_by_ext_def
+.Xc
+Format and filter for archive can be set automatically, based on output file name extension.
+The functions are platform dependent.
+Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz
 .\"
 .Sh RETURN VALUES
 These functions return