Mercurial > hg > octave-lyh
diff scripts/miscellaneous/bzip2.m @ 8362:03b414516dd8
clean up bzip2, gzip and __xzip__
author | Thorsten Meyer <thorsten.meyier@gmx.de> |
---|---|
date | Sat, 29 Nov 2008 23:03:16 +0100 |
parents | 02beb5be5683 |
children | 1bf0ce0930be |
line wrap: on
line diff
--- a/scripts/miscellaneous/bzip2.m +++ b/scripts/miscellaneous/bzip2.m @@ -25,15 +25,37 @@ ## is created. The original files are not touched. Existing compressed files ## are silently overwritten.If @var{outdir} is defined the compressed versions ## of the files are placed in this directory. -## @seealso{bunzip2, gzip, zip, tar, __xzip__} +## @seealso{bunzip2, gzip, zip, tar} ## @end deftypefn function entries = bzip2 (varargin) if (nargin == 1 || nargin == 2) - __xzip__ ("bzip2", "bz2", "bzip2 %s", varargin{:}); + if nargout == 0 + __xzip__ ("bzip2", "bz2", "bzip2 %s", varargin{:}); + else + entries = __xzip__ ("bzip2", "bz2", "bzip2 %s", varargin{:}); + endif else print_usage (); endif endfunction + +%!xtest +%! # test for correct cleanup of temporary files +%! unwind_protect +%! filename = tmpnam; +%! dummy = 1; +%! save(filename, "dummy"); +%! n_tmpfiles_before = length(find(strncmp("oct-", cellstr(ls(P_tmpdir)), 4))); +%! entry = bzip2(filename); +%! n_tmpfiles_after = length(find(strncmp("oct-", cellstr(ls(P_tmpdir)), 4))); +%! if (n_tmpfiles_before != n_tmpfiles_after) +%! error("bzip2 has not cleaned up temporary files correctly!"); +%! endif +%! unwind_protect_cleanup +%! delete(filename); +%! [path, basename, extension] = fileparts(filename); +%! delete([basename, extension, ".bz2"]); +%! end_unwind_protect