Re: Second time's a charm

David Bateman <[email protected]> Fri, 17 Feb 2006 11:07:42 +0100
Newsgroups gmane.comp.gnu.octave.maintainers,gmane.comp.gnu.octave.graphics
Organization Motorola CRM
Message-ID <[email protected]>
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=20
> http://octave.sourceforge.net/octave_embed.tar.gz has the exact same=20
> problem. So this isn't a QT issue.
>
> S=E9bastien Loisel
>
> On 2/16/06, *Sebastien Loisel* <[email protected]=20
> <mailto:[email protected]>> 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=E9bastien Loisel
>
>
>     On 2/16/06, *David Bateman* < [email protected]
>     <mailto:[email protected]>> 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 progres=
s..
>
>         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
>         <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                                [email protected]=
om
>         <mailto:[email protected]>
>         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
>
>
>


--=20
David Bateman                                [email protected]
Motorola Labs - Paris                        +33 1 69 35 48 04 (Ph)=20
Parc Les Algorithmes, Commune de St Aubin    +33 6 72 01 06 33 (Mob)=20
91193 Gif-Sur-Yvette FRANCE                  +33 1 69 35 77 01 (Fax)=20

The information contained in this communication has been classified as:=20

[x] General Business Information=20
[ ] Motorola Internal Use Only=20
[ ] Motorola Confidential Proprietary