annotate main/plot/gget.m @ 0:6b33357c7561 octave-forge

Initial revision
author pkienzle
date Wed, 10 Oct 2001 19:54:49 +0000
parents
children 131c0e0ec24f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
1 ## Copyright (C) 1999 Daniel Heiserer
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
2 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
3 ## This program is free software; it is distributed in the hope that it
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
4 ## will be useful, but WITHOUT ANY WARRANTY; without even the implied
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
5 ## warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
6 ## the GNU General Public License for more details.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
7 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
8 ## You should have received a copy of the GNU General Public License
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
9 ## along with this file; see the file COPYING. If not, write to the
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
10 ## Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
11 ## 02111-1307, USA.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
12
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
13 ## usage: m = gget(option)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
14 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
15 ## returns gnuplot's setting of option.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
16 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
17 ## REQUIRES: unix piping functionality, grep, sed
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
18 ## COMMENT: would be much better to have the result directly from gnuplot,
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
19 ## but show/gshow deliver a human readable format, which cannot
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
20 ## be read by a machine clearly
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
21 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
22
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
23 ## Author: Daniel Heiserer <Daniel.heiserer@physik.tu-muenchen.de>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
24
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
25 ## 2001-03-30 Paul Kienzle <pkienzle@kienzle.powernet.co.uk>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
26 ## * strip spaces
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
27 ## * use proper temporary files
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
28 ## 2001-04-04 Laurent Mazet <mazet@crm.mot.com>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
29 ## * check if gnuplot very create a file
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
30
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
31 function gout = gget(option)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
32
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
33 ## tell gnuplot to save all its options to a file, scan that file
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
34 ## for the option we are interested in, then delete it.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
35 optfile = tmpnam;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
36 graw (["save set \"", optfile, "\"\n"]);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
37 f = fopen(optfile);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
38 while f == -1
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
39 sleep (1);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
40 f = fopen(optfile);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
41 endwhile
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
42 fclose(f);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
43
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
44 cmd = sprintf("grep \"[# ]*set %s\" %s | sed 's/.*set %s *//'; rm -f %s", ...
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
45 option, optfile, option, optfile);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
46 gout = system(cmd);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
47 if (length(gout) == 0)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
48 error("gget: option %s not found", option);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
49 endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
50
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
51 ## grab the first output line only, without newline
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
52 ## XXX FIXMEXXX --- some options (e.g., key) may return multiple lines
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
53 ## since the real options are actually "key title" and "key". Tricky...
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
54 idx = find(gout == "\n");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
55 if !isempty(idx)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
56 gout = gout(1:idx(1)-1);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
57 if (length(gout) == 0) return; endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
58 endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
59
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
60 ## strip leading and trailing blanks
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
61 idx = find(gout != " ");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
62 if isempty(idx)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
63 gout = "";
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
64 else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
65 gout = gout(min(idx) : max(idx));
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
66 endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
67
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
68 endfunction