Mercurial > hg > octave-lyh
diff src/syscalls.cc @ 5138:5fa9670b5956
[project @ 2005-02-09 23:13:03 by jwe]
author | jwe |
---|---|
date | Wed, 09 Feb 2005 23:13:03 +0000 |
parents | b6ff3a0d3d17 |
children | 4c8a2e4e0717 |
line wrap: on
line diff
--- a/src/syscalls.cc +++ b/src/syscalls.cc @@ -190,7 +190,7 @@ exec_args[i+1] = tmp[i]; } else - error ("exec: arguments must be strings"); + error ("exec: arguments must be character strings"); } else { @@ -942,6 +942,37 @@ return retval; } +DEFUN (canonicalize_file_name, args, , + "-*- texinfo -*-\n\ +@deftypefn {Built-in Function} {[@var{cname}, @var{status}, @var{msg}]} canonicalize_file_name (@var{name})\n\ +Return the canonical name of file @var{name}.\n\ +@end deftypefn") +{ + octave_value_list retval; + + if (args.length () == 1) + { + std::string name = args(0).string_value (); + + if (! error_state) + { + std::string msg; + + std::string result = file_ops::canonicalize_file_name (name, msg); + + retval(2) = msg; + retval(1) = msg.empty () ? 0 : -1; + retval(0) = result; + } + else + error ("canonicalize_file_name: argument must be a character string"); + } + else + print_usage ("canonicalize_file_name"); + + return retval; +} + #if !defined (O_NONBLOCK) && defined (O_NDELAY) #define O_NONBLOCK O_NDELAY #endif