Mercurial > hg > octave-nkf
annotate scripts/miscellaneous/open.m @ 20787:40ed9b46a800
new octave_value::string_value method with optional error message
* ov.h (octave_value::string_vector): New method.
ov-base.cc, ov-base.h (octave_base_value::string_vector):
New default method.
ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::string_value):
New method.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 08 Oct 2015 16:43:22 -0400 |
parents | df437a52bcaf |
children |
rev | line source |
---|---|
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19602
diff
changeset
|
1 ## Copyright (C) 2014-2015 John W. Eaton |
19463 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
9 ## | |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
16 ## along with Octave; see the file COPYING. If not, see | |
17 ## <http://www.gnu.org/licenses/>. | |
18 | |
19 ## -*- texinfo -*- | |
20 ## @deftypefn {Function File} {@var{output} =} open @var{file} | |
19602
cbce5d1bcaf9
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
19463
diff
changeset
|
21 ## @deftypefnx {Function File} {@var{output} =} open (@var{file}) |
20374
df437a52bcaf
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20061
diff
changeset
|
22 ## Open the file @var{file} in Octave or in an external application based on |
df437a52bcaf
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
20061
diff
changeset
|
23 ## the file type as determined by the file name extension. |
19463 | 24 ## |
25 ## Recognized file types are | |
26 ## | |
27 ## @table @code | |
28 ## @item .m | |
29 ## Open file in the editor. | |
19602
cbce5d1bcaf9
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
19463
diff
changeset
|
30 ## |
19463 | 31 ## @item .mat |
32 ## Load the file in the base workspace. | |
19602
cbce5d1bcaf9
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
19463
diff
changeset
|
33 ## |
19463 | 34 ## @item .exe |
35 ## Execute the program (on Windows systems only). | |
36 ## @end table | |
37 ## | |
38 ## Other file types are opened in the appropriate external application. | |
39 ## @end deftypefn | |
40 | |
41 function output = open (file) | |
42 | |
43 if (nargin != 1) | |
44 print_usage (); | |
45 endif | |
46 | |
47 if (! ischar (file)) | |
48 error ("expecting argument to be a file name"); | |
49 endif | |
50 | |
51 [~, ~, ext] = fileparts (file); | |
52 | |
53 if (strcmpi (ext, ".m")) | |
54 edit (file); | |
55 elseif (strcmpi (ext, ".mat")) | |
56 if (nargout > 0) | |
57 output = load (file); | |
58 else | |
59 evalin ("base", sprintf ("load ('%s');", file)); | |
60 endif | |
61 elseif (any (strcmpi (ext, {".fig", ".mdl", ".slx", ".prj"}))) | |
62 error ("opening file type '%s' is not supported", ext); | |
63 elseif (strcmpi (ext, ".exe")) | |
64 if (ispc ()) | |
65 dos (file); | |
66 else | |
67 error ("executing .exe files is only supported on Windows systems"); | |
68 endif | |
69 else | |
20061
5c1a38089f89
Change open_with_system_app to internal function.
Rik <rik@octave.org>
parents:
20038
diff
changeset
|
70 __open_with_system_app__ (file); |
19463 | 71 endif |
72 | |
73 endfunction | |
74 | |
20038
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19979
diff
changeset
|
75 ## Test input validation |
19463 | 76 %!error open |
77 %!error open (1) | |
78 %!error output = open (1) |