From help-octave-request at bevo dot che dot wisc dot edu Fri Jan 10 13:31:17 2003 Subject: Re: How to detect terminal type? From: "E. Joshua Rigler" To: Peter Brinkmann Cc: Help-Octave Date: 10 Jan 2003 12:17:05 -0700 I'd forgotten that gshow only returns via stderror. I don't see why you feel your suggested fix is "ugly" though. The "computer" command is a built-in command, so it should work fine either way (says the man who has never, ever, ever tried to use Octave under windows). I mean something like that has to be implemented at some level, so it might as well be you who does it :^). I suspect this will be far from the ugliest hack you need to do to get a complex software package to work under both *nix and windows. Good luck! -EJR On Fri, 2003-01-10 at 11:27, Peter Brinkmann wrote: > Joshua, Miquel, > Thanks for your prompt reply! Unfortunately, neither gshow nor gget will > work for my purposes. > > My current situation is this: I'm developing educational software under > Linux, but it also has to work under Windows because that's what most of > my students are using. I was hoping to be able to write some code that > automatically detects, remembers, and resets the terminal type, like > > terminal_type=get_terminal_type(); % remember terminal type > gset terminal postscript > ... create postscript output > gset(['terminal ' terminal_type]); % reset terminal type > > Now it appears that this won't work because gshow only displays its result > but doesn't return a value, and gget only works under *nix, in which > case I already know the result. > > I'm afraid I'll have to do something like > > gset terminal postscript > ... create postscript output > if running_under_unix > gset('terminal x11') > else > gset('terminal windows') > end > > This is ugly, but I don't see a better solution. > > So, my new question is, what's the best way to detect whether my code is > running under *nix or Windows? I guess I could look at the result of > computer(), but I don't know what kind of result it returns when running > under Windows. Can I detect Windows by checking whether > findstr(computer(),'windows') > returns a nonzero value, or how should I go about this? > Thanks, > Peter > > > > On Fri, 2003-01-10 at 09:21, Peter Brinkmann wrote: > > Hi! > > How can I detect the current terminal type? > > I'm asking because I sometimes need to change the terminal type > > in order to export plots to encapsulated PostScript, using a > > command like > > gset terminal postscript > > On my Linux box, I can reset the terminal with a command like > > gset terminal x11 > > The problem is that this doesn't work under Windows. So, what > > I'd like to do is the following: > > 1. Detect and remember the current terminal type. > > 2. Export stuff to PostScript. > > 3. Reset the terminal type to what it was before. > > Is this possible at all? > > Thanks, > > Peter > > > > ------------------------------------------------------------- > Octave is freely available under the terms of the GNU GPL. > > Octave's home on the web: http://www.octave.org > How to fund new projects: http://www.octave.org/funding.html > Subscription information: http://www.octave.org/archive.html > ------------------------------------------------------------- -- E. Joshua Rigler ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------