Mercurial > hg > octave-nkf
annotate scripts/miscellaneous/news.m @ 14300:d1c45dd1a038 gui
Readded .hgsub.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Tue, 31 Jan 2012 21:32:43 +0100 |
parents | 3e94663fc3e9 |
children | f3d52523cde1 |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13865
diff
changeset
|
1 ## Copyright (C) 2007-2012 John W. Eaton |
6252 | 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 | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
6252 | 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 | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
6252 | 18 |
19 ## -*- texinfo -*- | |
14232
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
20 ## @deftypefn {Function File} {} news |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
21 ## @deftypefnx {Function File} {} news (@var{package}) |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
22 ## Display the current NEWS file for Octave or an installed package. |
13863
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
23 ## |
14232
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
24 ## When called without an argument, display the NEWS file for Octave. |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
25 ## When given a package name @var{package}, display the current NEWS file for |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
26 ## that package. |
6252 | 27 ## @end deftypefn |
28 | |
13865
5d928d37f159
news: fixing bug when package is not specified and core NEWS file can't be found
Carnë Draug <carandraug+dev@gmail.com>
parents:
13864
diff
changeset
|
29 function news (package = "octave") |
13863
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
30 |
14232
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
31 if (nargin > 1) |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
32 print_usage (); |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
33 elseif (! ischar (package)) |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
34 error ("news: PACKAGE must be a string"); |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
35 endif |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
36 |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
37 if (strcmpi (package, "octave")) |
13863
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
38 octetcdir = octave_config_info ("octetcdir"); |
13865
5d928d37f159
news: fixing bug when package is not specified and core NEWS file can't be found
Carnë Draug <carandraug+dev@gmail.com>
parents:
13864
diff
changeset
|
39 newsfile = fullfile (octetcdir, "NEWS"); |
14232
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
40 else |
13863
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
41 installed = pkg ("list"); |
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
42 names = cellfun (@(x) x.name, installed, "UniformOutput", false); |
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
43 ## we are nice and let the user use any case on the package name |
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
44 pos = strcmpi (names, package); |
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
45 if (!any (pos)) |
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
46 error ("Package '%s' is not installed.", package); |
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
47 endif |
13864
a03e96aa4977
NEWS file of packages now expected to be in the package root. Also support ONEWS file as per GNU the standards. Updated manual accordingly.
Carnë Draug <carandraug+dev@gmail.com>
parents:
13863
diff
changeset
|
48 newsfile = fullfile (installed{pos}.dir, "packinfo", "NEWS"); |
13863
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
49 endif |
6252 | 50 |
14232
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
51 if (! exist (newsfile, "file")) |
13865
5d928d37f159
news: fixing bug when package is not specified and core NEWS file can't be found
Carnë Draug <carandraug+dev@gmail.com>
parents:
13864
diff
changeset
|
52 if (strcmpi (package, "octave")) |
5d928d37f159
news: fixing bug when package is not specified and core NEWS file can't be found
Carnë Draug <carandraug+dev@gmail.com>
parents:
13864
diff
changeset
|
53 error ("news: unable to locate NEWS file"); |
5d928d37f159
news: fixing bug when package is not specified and core NEWS file can't be found
Carnë Draug <carandraug+dev@gmail.com>
parents:
13864
diff
changeset
|
54 else |
14232
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
55 error ("news: unable to locate NEWS file for package %s", package); |
13863
b81e0b3fedab
news: support to read news of installed packages
Carnë Draug <carandraug+dev@gmail.com>
parents:
12844
diff
changeset
|
56 endif |
6252 | 57 endif |
58 | |
14232
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
59 fid = fopen (newsfile, "r"); |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
60 while (ischar (line = fgets (fid))) |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
61 puts (line); |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
62 endwhile |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
63 fclose (fid); |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
64 |
6252 | 65 endfunction |
12844
e51ad94535b9
codesprint: Remove news.m from test statistics.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
66 |
14232
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
67 |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
68 %!error news (1, 2) |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
69 %!error <PACKAGE must be a string> news (1) |
3e94663fc3e9
news.m: Revamp implementation of function.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
70 %!error <Package .* is not installed> news ("__NOT_A_VALID_PKG_NAME__") |