This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: PR tui/2173: Arrow keys no longer works in breakpoint command list


H. J. Lu wrote:
> On Sat, Dec 02, 2006 at 02:08:26PM -0500, Chet Ramey wrote:
>> H. J. Lu wrote:
>>
>>>>> I'm pretty sure this isn't right.  I got as far as figuring out that we
>>>>> should be calling rl_callback_handler_install and
>>>>> rl_callback_handler_remove at different times, always removing the
>>>>> handler before calling readline recursively, but I couldn't quite work
>>>>> out the right conditions.
>>>> I assume by "this isn't right",  you mean my patch may break something.
>>>> Do you have a testcase? It may get into readline:
>> Unless the calling application is careful, this code will leave readline
>> in an inconsistent state in the presence of a longjmp().  It relies on
>> private state kept local to a single call to readline().
>>
>> I am leaning towards not including it for that reason.
>>
>> There should be no reason that the application cannot remove the callback
>> handler and re-add it before calling readline synchronously, as Daniel or
>> H.J. suggested.  The application is the only one in a position to know
>> which is right.
>>
> 
> Did you mean
> 
> http://sources.redhat.com/ml/gdb-patches/2006-11/msg00234.html
> 
> is more appropriate?

More appropriate in the sense that the application controls the state
and switches between the callback and synchronous readline modes.
Since it's the app that's supposed to be calling into readline when in
callback mode anyway, I think this patch will work better.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		       Live Strong.  No day but today.
Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]