Mercurial > hg > octave-nkf
changeset 19435:91a6f06c5052
Overhaul gzip.m and gunzip.m
These functions now operate in the directory where the archive file is
located rather than the current directory.
* gunzip.m: Redo docstring. Default directory for unpacking is now the
directory where the .gz file resides. Eliminate unnecessary varargout
usage. Eliminate unnecessary mfilename() function call by replacing with
string "gunzip". Add %!assert(1) to remove file from test statistics.
The tests are located in gzip.m
* gzip.m: Redo docstring. Rename outdir input variable to dir to match
other compress/uncompress routines.
* unpack.m: Redo seealso links in docstring.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 09 Oct 2014 20:38:04 -0700 |
parents | ba7e42dea4b2 |
children | 79d4783a9978 |
files | scripts/miscellaneous/gunzip.m scripts/miscellaneous/gzip.m scripts/miscellaneous/unpack.m |
diffstat | 3 files changed, 55 insertions(+), 33 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/miscellaneous/gunzip.m +++ b/scripts/miscellaneous/gunzip.m @@ -17,28 +17,42 @@ ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) -## Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If -## @var{dir} is not specified, it defaults to the current directory. If -## @var{gzfile} is a directory, all gzfiles in the directory will be -## recursively gunzipped. -## @seealso{gzip, unpack, bunzip2, unzip, untar} +## @deftypefn {Function File} {@var{files} =} gunzip (@var{gzfile}) +## @deftypefnx {Function File} {@var{files} =} gunzip (@var{gzfile}, @var{dir}) +## Unpack the gzip archive @var{gzfile}. +## +## If @var{gzfile} is a directory, all gzfiles in the directory will be +## recursively unpacked. +## +## If @var{dir} is specified the files are unpacked in this directory rather +## than the one where @var{gzfile} is located. +## +## The optional output @var{files} is a list of the uncompressed files. +## @seealso{gzip, bunzip2, unzip, untar, unpack} ## @end deftypefn ## Author: Bill Denney <denney@seas.upenn.edu> -function varargout = gunzip (gzfile, dir = ".") +function files = gunzip (gzfile, dir) - if (nargin != 1 && nargin != 2) + if (nargin < 1 || nargin > 2) print_usage (); endif + if (isempty (dir)) + dir = fileparts (gzfile); + endif + if (nargout > 0) - varargout = cell (1, nargout); - [varargout{:}] = unpack (gzfile, dir, mfilename ()); + files = unpack (gzfile, dir, "gunzip"); else - unpack (gzfile, dir, mfilename ()); + unpack (gzfile, dir, "gunzip"); endif endfunction + +## Tests for this m-file are located in gzip.m +## Remove from test statistics +%!assert (1); +
--- a/scripts/miscellaneous/gzip.m +++ b/scripts/miscellaneous/gzip.m @@ -17,25 +17,32 @@ ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn {Function File} {@var{entries} =} gzip (@var{files}) -## @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) -## Compress the list of files and/or directories specified in @var{files}. -## Each file is compressed separately and a new file with a @file{".gz"} -## extension is created. The original files are not modified. Existing -## compressed files are silently overwritten. If @var{outdir} is defined the -## compressed files are placed in this directory. -## @seealso{gunzip, bzip2, zip, tar} +## @deftypefn {Function File} {@var{filelist} =} gzip (@var{files}) +## @deftypefnx {Function File} {@var{filelist} =} gzip (@var{files}, @var{dir}) +## Compress the list of files and directories specified in @var{files}. +## +## @var{files} is a character array or cell array of strings. Each file is +## compressed separately and a new file with a @file{".gz"} extension is +## created. The original files are not modified, but, existing compressed +## files will be silently overwritten. If a directory is specified then +## @code{gzip} recursively compresses all files in the directory. +## +## If @var{dir} is defined the compressed files are placed in this directory. +## +## The optional output @var{filelist} is a list of the compressed files. +## @seealso{gunzip, bzip2, zip, tar, unpack} ## @end deftypefn -function entries = gzip (varargin) - if (nargin != 1 && nargin != 2) || (nargout > 1) +function filelist = gzip (varargin) + + if (nargin < 1 || nargin > 2 || nargout > 1) print_usage (); endif if (nargout == 0) __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); else - entries = __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); + filelist = __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); endif endfunction @@ -44,20 +51,21 @@ %!xtest %! ## test gzip together with gunzip %! unwind_protect -%! filename = tmpnam; -%! dummy = 1; +%! filename = tempname; +%! dummy = pi; %! save (filename, "dummy"); -%! dirname = tmpnam; +%! dirname = tempname; %! mkdir (dirname); -%! entry = gzip (filename, dirname); -%! [path, basename, extension] = fileparts (filename); -%! if (! strcmp (entry, [dirname, filesep, basename, extension, ".gz"])) +%! filelist = gzip (filename, dirname); +%! filelist = filelist{1}; +%! [~, basename, extension] = fileparts (filename); +%! if (! strcmp (filelist, [dirname, filesep, basename, extension, ".gz"])) %! error ("gzipped file does not match expected name!"); %! endif -%! if (! exist (entry, "file")) +%! if (! exist (filelist, "file")) %! error ("gzipped file cannot be found!"); %! endif -%! gunzip (entry); +%! gunzip (filelist); %! fid = fopen (filename, "rb"); %! assert (fid >= 0); %! orig_data = fread (fid); @@ -67,7 +75,7 @@ %! new_data = fread (fid); %! fclose (fid); %! if (orig_data != new_data) -%! error ("unzipped file not equal to original file!"); +%! error ("gunzipped file not equal to original file!"); %! endif %! unwind_protect_cleanup %! delete (filename); @@ -77,6 +85,6 @@ %!error gzip () %!error gzip ("1", "2", "3") -%!error <output directory does not exist> gzip ("1", tmpnam) +%!error <output directory does not exist> gzip ("1", tempname) %!error <FILES must be a character array or cellstr> gzip (1)
--- a/scripts/miscellaneous/unpack.m +++ b/scripts/miscellaneous/unpack.m @@ -66,7 +66,7 @@ ## @end table ## ## The optional return value is a list of @var{files} unpacked. -## @seealso{bzip2, gzip, zip, tar} +## @seealso{bunzip2, gunzip, unzip, untar, bzip2, gzip, zip, tar} ## @end deftypefn ## Author: Bill Denney <denney@seas.upenn.edu>