Re: address XXX comment at lines 987-990 in bashfile.c
On Thu, Jul 09, 2015 at 01:53:52PM -0700, Bill Parker wrote: Hello All, In reviewing the code at line 990 in bashfile.c, while the issue of rl_line_buffer[0] = '\0', would it not be better to use memset(rl_line_buffer, '\0', sizeof(rl_line_buffer)) to clobber the entire line more effectively? The patch file below addresses this issue: [...] I don't think the intention of that line is to clear the whole buffer. If that buffer is to hold a C string, then the current code is sufficient to make that a 'null' string. -- Eduardo Bustamante https://dualbus.me/
Re: address XXX comment at lines 987-990 in bashfile.c
The comment above the line would seem to indicate otherwise: Here is the comment: /* Now erase the contents of the current line and undo the effects of the rl_accept_line() above. We don't even want to make the text we just executed available for undoing. */ Bill On Fri, Jul 10, 2015 at 11:30 PM, Eduardo A. Bustamante López dual...@gmail.com wrote: On Thu, Jul 09, 2015 at 01:53:52PM -0700, Bill Parker wrote: Hello All, In reviewing the code at line 990 in bashfile.c, while the issue of rl_line_buffer[0] = '\0', would it not be better to use memset(rl_line_buffer, '\0', sizeof(rl_line_buffer)) to clobber the entire line more effectively? The patch file below addresses this issue: [...] I don't think the intention of that line is to clear the whole buffer. If that buffer is to hold a C string, then the current code is sufficient to make that a 'null' string. -- Eduardo Bustamante https://dualbus.me/
Re: address XXX comment at lines 987-990 in bashfile.c
On 7/11/15 4:15 PM, Bill Parker wrote: The comment above the line would seem to indicate otherwise: Here is the comment: /* Now erase the contents of the current line and undo the effects of the rl_accept_line() above. We don't even want to make the text we just executed available for undoing. */ Eduardo is correct. The valid portion of the readline line buffer is the string bounded by 0 and rl_end. rl_line_buffer[rl_end] == 0, and setting rl_line_buffer[rl_point = rl_end = 0] is sufficient to erase the contents of the line buffer. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/