changeset 26142:b9d72a2dac8f

Accept a cell array of strings to uncompress functions (bug #55102). * bunzip2.m, gunzip.m: Document third calling form which returns FILELIST. For single file arguments, extract the destination dir from filename. * unpack.m: Change default for input DIR to []. For cell array input, recursively call unpack and supply either the specified DIR, or get the output DIR from the filename. * untar.m, unzip.m: Document third calling form which returns FILELIST.
author Rik <rik@octave.org>
date Tue, 27 Nov 2018 12:14:41 -0800
parents 42a06f8e6966
children c7f845bf4fec
files scripts/miscellaneous/bunzip2.m scripts/miscellaneous/gunzip.m scripts/miscellaneous/unpack.m scripts/miscellaneous/untar.m scripts/miscellaneous/unzip.m
diffstat 5 files changed, 18 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/miscellaneous/bunzip2.m	Mon Nov 26 14:49:03 2018 -0800
+++ b/scripts/miscellaneous/bunzip2.m	Tue Nov 27 12:14:41 2018 -0800
@@ -17,8 +17,9 @@
 ## <https://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{filelist} =} bunzip2 (@var{bzfile})
-## @deftypefnx {} {@var{filelist} =} bunzip2 (@var{bzfile}, @var{dir})
+## @deftypefn  {} {} bunzip2 (@var{bzfile})
+## @deftypefnx {} {} bunzip2 (@var{bzfile}, @var{dir})
+## @deftypefnx {} {@var{filelist} =} bunzip2 (@dots{})
 ## Unpack the bzip2 archive @var{bzfile}.
 ##
 ## If @var{dir} is specified the files are unpacked in this directory rather
@@ -36,7 +37,7 @@
     print_usage ();
   endif
 
-  if (isempty (dir))
+  if (isempty (dir) && ischar (bzfile))
     dir = fileparts (bzfile);
   endif
 
--- a/scripts/miscellaneous/gunzip.m	Mon Nov 26 14:49:03 2018 -0800
+++ b/scripts/miscellaneous/gunzip.m	Tue Nov 27 12:14:41 2018 -0800
@@ -17,8 +17,9 @@
 ## <https://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{filelist} =} gunzip (@var{gzfile})
-## @deftypefnx {} {@var{filelist} =} gunzip (@var{gzfile}, @var{dir})
+## @deftypefn  {} {} gunzip (@var{gzfile})
+## @deftypefnx {} {} gunzip (@var{gzfile}, @var{dir})
+## @deftypefnx {} {@var{filelist} =} gunzip (@dots{})
 ## Unpack the gzip archive @var{gzfile}.
 ##
 ## If @var{gzfile} is a directory, all gzfiles in the directory will be
@@ -39,7 +40,7 @@
     print_usage ();
   endif
 
-  if (isempty (dir))
+  if (isempty (dir) && ischar (gzfile))
     dir = fileparts (gzfile);
   endif
 
--- a/scripts/miscellaneous/unpack.m	Mon Nov 26 14:49:03 2018 -0800
+++ b/scripts/miscellaneous/unpack.m	Tue Nov 27 12:14:41 2018 -0800
@@ -71,7 +71,7 @@
 
 ## Author: Bill Denney <denney@seas.upenn.edu>
 
-function filelist = unpack (file, dir = ".", filetype = "")
+function filelist = unpack (file, dir = [], filetype = "")
 
   if (nargin < 1 || nargin > 3)
     print_usage ();
@@ -101,7 +101,11 @@
   if (numel (file) > 1)
     files = {};
     for i = 1:numel (file)
-      tmpfiles = unpack (file{i}, dir);
+      if (! isempty (dir))
+        tmpfiles = unpack (file{i}, dir);
+      else
+        tmpfiles = unpack (file{i}, fileparts (file{i}));
+      endif
       files = {files{:} tmpfiles{:}};
     endfor
 
--- a/scripts/miscellaneous/untar.m	Mon Nov 26 14:49:03 2018 -0800
+++ b/scripts/miscellaneous/untar.m	Tue Nov 27 12:14:41 2018 -0800
@@ -19,6 +19,7 @@
 ## -*- texinfo -*-
 ## @deftypefn  {} {} untar (@var{tarfile})
 ## @deftypefnx {} {} untar (@var{tarfile}, @var{dir})
+## @deftypefnx {} {@var{filelist} =} untar (@dots{})
 ## Unpack the TAR archive @var{tarfile}.
 ##
 ## If @var{dir} is specified the files are unpacked in this directory rather
--- a/scripts/miscellaneous/unzip.m	Mon Nov 26 14:49:03 2018 -0800
+++ b/scripts/miscellaneous/unzip.m	Tue Nov 27 12:14:41 2018 -0800
@@ -17,8 +17,9 @@
 ## <https://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn  {} {@var{filelist} =} unzip (@var{zipfile})
-## @deftypefnx {} {@var{filelist} =} unzip (@var{zipfile}, @var{dir})
+## @deftypefn  {} {} unzip (@var{zipfile})
+## @deftypefnx {} {} unzip (@var{zipfile}, @var{dir})
+## @deftypefnx {} {@var{filelist} =} unzip (@dots{})
 ## Unpack the ZIP archive @var{zipfile}.
 ##
 ## If @var{dir} is specified the files are unpacked in this directory rather