diff scripts/miscellaneous/tar.m @ 12500:8f2056646dba

Improve docstrings for archive functions (gzip, bzip2, etc.)
author Rik <octave@nomad.inbox5.com>
date Thu, 03 Mar 2011 13:05:50 -0800
parents c792872f8942
children 93a1d99183fb
line wrap: on
line diff
--- a/scripts/miscellaneous/tar.m	Thu Mar 03 11:59:05 2011 -0800
+++ b/scripts/miscellaneous/tar.m	Thu Mar 03 13:05:50 2011 -0800
@@ -17,7 +17,8 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root})
+## @deftypefn  {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files})
+## @deftypefnx {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root})
 ## Pack @var{files} @var{files} into the TAR archive @var{tarfile}.  The
 ## list of files must be a string or a cell array of strings.
 ##
@@ -26,49 +27,40 @@
 ##
 ## If an output argument is requested the entries in the archive are
 ## returned in a cell array.
-## @seealso{untar, gzip, gunzip, zip, unzip}
+## @seealso{untar, bzip2, gzip, zip}
 ## @end deftypefn
 
 ## Author: Søren Hauberg <hauberg@gmail.com>
 
-function entries = tar (tarfile, files, root)
-
-  if (nargin == 2 || nargin == 3)
+function entries = tar (tarfile, files, root = ".")
 
-    if (nargin == 2)
-      root = ".";
-    endif
+  if (nargin < 2 || nargin > 3)
+    print_usage ();
+  endif
 
-    ## Test type of input
-    if (ischar (files))
-      files = cellstr (files);
-    endif
+  if (ischar (files))
+    files = cellstr (files);
+  endif
 
-    if (ischar (tarfile) && iscellstr (files) && ischar (root))
-
-      cmd = sprintf ("tar cvf %s -C %s %s", tarfile, root,
-                     sprintf (" %s", files{:}));
+  if (ischar (tarfile) && iscellstr (files) && ischar (root))
+    error ("tar: all arguments must be character strings");
+  endif
 
-      [status, output] = system (cmd);
+  cmd = sprintf ("tar cvf %s -C %s %s", tarfile, root,
+                 sprintf (" %s", files{:}));
+
+  [status, output] = system (cmd);
 
-      if (status == 0)
-        if (nargout > 0)
-          if (output(end) == "\n")
-            output(end) = [];
-          endif
-          entries = strsplit (output, "\n");
-          entries = entries';
-        endif
-      else
-        error ("tar: tar exited with status = %d", status);
-      endif
+  if (status)
+    error ("tar: tar exited with status = %d", status);
+  endif
 
-    else
-      error ("tar: expecting all arguments to be character strings");
+  if (nargout > 0)
+    if (output(end) == "\n")
+      output(end) = [];
     endif
-
-  else
-    print_usage("tar");
+    entries = strsplit (output, "\n");
+    entries = entries';
   endif
 
 endfunction