From graphics-request at octave dot org Fri Feb 17 04:13:04 2006 Subject: Re: Second time's a charm From: David Bateman To: Sebastien Loisel Cc: octave maintainers mailing list , octave-graphics Date: Fri, 17 Feb 2006 11:07:42 +0100 I don't know if I'll be able to help, but will try this weekend.. D. Sebastien Loisel wrote: > I've just confirmed that the octave embedding example > http://octave.sourceforge.net/octave_embed.tar.gz has the exact same > problem. So this isn't a QT issue. > > Sébastien Loisel > > On 2/16/06, *Sebastien Loisel* > wrote: > > David, > > Only in windows could this happen. It appears that the cout and > cerr that my Octave GUI program sees are *not the same* as the > cout and cerr that liboctave sees. I have absolutely no idea why > this is. I've linked a "console version" of Octave GUI to see if > it would help, no go. I'm able to grab the octave_stdout, but when > I grab cerr and cout, it's only grabbed inside my code, and not > inside liboctave. Ergo, they're different symbols. > > I can't fix this without help. If you don't know how to fix it, > I'll go trolling on Windows C++ forums somewhere. > > While we could rename cerr to octave_stderr everywhere, maybe this > function would solve the problem too: > > ostream &get_liboctave_cerr() { return cerr; } > > (making sure of course it's not inline otherwise I'll get the > wrong symbol.) > > In fact, would you mind testing that last idea? > > Cheers, > > Sébastien Loisel > > > On 2/16/06, *David Bateman* < David dot Bateman at motorola dot com > > wrote: > > Sebastien, > > Ok, I took a really quick look at this. > > * Firstly have you tried starting octave-gui.exe in an > rxvt? The output > you are trying to capture is echoed in the rxvt terminal > rather than > your application. > * Commands such as "ls" that use a system call open a cmd.exe > window > briefly when they probably shouldn't. This will happen for > many commands > including most notably "help" as it makes a system call to > texinfo.. > * The readline line completion in octave allows you to start > typing then > do upper-arrow to get the previous commands that started with > the same > characters. > * You don't appear to be using the octave history file, this is > important as it allows use of the history between sessions. To > address > this and the above point, why not use the function > std::string gnu_readline (const std::string&, bool) from > src/input.cc in > octave. You might also be able to use other parts of the > command_editor > class to get the output right, though you might need to set > command_editor::terminal_cols correctly. Check > liboctave/cmd-edit.h > * You don't respect the PS1 variable for the prompt in the GUI. > > I still haven't looked at the bug with octave_init yet, so the > above is > just first impressions.. Looks good and extremely rapid progress.. > > Cheers > David > > Sebastien Loisel wrote: > >> David, >> >> Ok, now I've autoconfiscated octave-gui and you should be > able to >> build it. If you have QT4.1 problems though, you're going to > have to >> sort those out... :-/ Over here, everything compiles and the >> mainwindow comes up so it's now at the same state as it was >> pre-autoconfiscation (octave still doesn't init right.) >> >> The tarball is here: >> http://www.math.mcgill.ca/loisel/octave-gui-beta.tar.gz > >> >> I strongly advise everyone but David to stay away from this. >> >> Building is standard, but it's in maintainer mode. Here's > what I do. >> >> 1) Fire up an appropriate shell. I've got "shell.bat" and >> "shell-x64.bat" (for Windows XP x64) in that directory for that >> purpose. It's basically the setup from your octave.bat, then > it starts >> sh.exe from mingw. >> >> 2) cd to the octave-gui-0.4 directory. >> >> 3) >> $ aclocal >> $ autoconf >> $ automake >> $ ./configure >> $ make >> >> 4) ./octave-gui >> >> After a 5 second pause (or so), a window will pop up. >> >> I haven't tested, but I don't think stdout/stderr work. So if > you're >> going to debug, you have to use some other way. To help you > out, I've >> declared the following global variable: >> >> string david_output; >> >> If you stick anything in there, it'll appear in the > mainwindow when >> the mainwindow first appears. Otherwise I think you can open > files and >> stuff. Right now, as an example, it prints the return code of >> octave_main, which is 1. >> >> Cheers, >> >> Sebastien Loisel >> > > > -- > David > Bateman David dot Bateman at motorola dot com > > Motorola Labs - Paris +33 1 69 35 48 04 > (Ph) > Parc Les Algorithmes, Commune de St Aubin +33 6 72 01 06 33 > (Mob) > 91193 Gif-Sur-Yvette FRANCE +33 1 69 35 77 01 > (Fax) > > The information contained in this communication has been > classified as: > > [x] General Business Information > [ ] Motorola Internal Use Only > [ ] Motorola Confidential Proprietary > > > -- David Bateman David dot Bateman at motorola dot com Motorola Labs - Paris +33 1 69 35 48 04 (Ph) Parc Les Algorithmes, Commune de St Aubin +33 6 72 01 06 33 (Mob) 91193 Gif-Sur-Yvette FRANCE +33 1 69 35 77 01 (Fax) The information contained in this communication has been classified as: [x] General Business Information [ ] Motorola Internal Use Only [ ] Motorola Confidential Proprietary