Re: address XXX comment at lines 987-990 in bashfile.c

2015-07-11 Thread Eduardo A . Bustamante López
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

2015-07-11 Thread Bill Parker
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

2015-07-11 Thread Chet Ramey
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/