octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Second time's a charm


From: David Bateman
Subject: Re: Second time's a charm
Date: Fri, 17 Feb 2006 11:07:42 +0100
User-agent: Mozilla Thunderbird 0.8 (X11/20040923)

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* <address@hidden <mailto:address@hidden>> 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* < address@hidden
    <mailto:address@hidden>> 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
        <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                                address@hidden
        <mailto:address@hidden>
        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                                address@hidden
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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]