From maintainers-request at octave dot org Sun Jan 30 15:41:26 2005 Subject: Re: Reprise: external pager quitting kills standard error From: Daniel J Sebald To: maintainers at octave dot org Cc: maintainers at octave dot org Date: Sun, 30 Jan 2005 15:47:22 -0600 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/