[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Reprise: external pager quitting kills standard error
From: |
Daniel J Sebald |
Subject: |
Re: Reprise: external pager quitting kills standard error |
Date: |
Sun, 30 Jan 2005 15:47:22 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020 |
I searched around a bit for the reason the error messages are lost.
Although I see a "nonconformant matrices" and similar in the /src
subdirectory, it appears that it is the "gripes_#" that is handled in
the /liboctave subdirectory because that is where "nonconformant
arguments" appears and that is what is displayed by Octave.
I really haven't found a reason why the error reporting would be lost.
One peculiar thing I see though is that only in cmd-edit.cc is
current_liboctave_error_handler called in this fashion:
current_liboctave_error_handler
("unable to create command history object!");
In all other (so many) instances in the /liboctave subdirectory it is
called as:
(*current_liboctave_error_handler)
("%s: nonconformant arguments (op1 len: %d, op2 len: %d)",
My mind isn't working well enough right now to think what the difference
is between calling by reference and calling by pointer, In any case,
perhaps changing cmd-edit.cc to (*current_liboctave_error_handler") form
would be good for consistency.
Dan
PS: After a complete search of the tree, I found the definition of
these things in the ominous sounding "libcruft/misc" subdirectory:
typedef void (*liboctave_error_handler) (const char *, ...);
/* Would be nice to make these pointers private, but we want to share
them among all the liboctave classes. */
extern liboctave_error_handler current_liboctave_error_handler;
Daniel J Sebald wrote:
(please cc: any replies, I'm not on list)
Has someone found a solution to the pager problem in this archived
report from March?
http://www.octave.org/octave-lists/archive/bug-octave.2004/msg00200.html
http://www.octave.org/octave-lists/archive/bug-octave.2004/msg00201.html
I'm running Fedora Core 3, which is probably a derivative of RH 9.0, so
perhaps the problem is still propagating through RedHat's distribution.
Note that this doesn't happen with a smaller amount of data in "less",
only when there are larger amounts of data in "less". It's as though
some pipe buffer may be overflowing. Here's example output where
ones(25) displays fine, but ones(100) goes awry.
octave:1> bogus
error: `bogus' undefined near line 1 column 1
octave:1> junk = ones(25)
octave:2> bogus
error: `bogus' undefined near line 2 column 1
octave:2> junk = ones(100)
warning: connection to external pager (pid = 18461) lost --
warning: attempting to finish pending computations...
octave:3> bogus
octave:3>
Thanks,
Dan
--
Dan Sebald
email: daniel DOT sebald AT ieee DOT org
URL: http://acer-access DOT com/~dsebald AT acer-access DOT com/