Bug 10868

Summary: 'end' of user comment block is ignored if the 'end' statement has leading spaces
Product: gdb Reporter: James Pandavan <james.pandavan>
Component: gdbAssignee: Not yet assigned to anyone <unassigned>
Status: UNCONFIRMED ---    
Severity: minor CC: gdb-prs
Priority: P3    
Version: 7.0   
Target Milestone: 7.1   
Host: Target:
Build: Last reconfirmed:

Description James Pandavan 2009-10-29 15:59:26 UTC
Some of my gdbinit user defined commands stoped working on v7.0 (they used to
work on v6.8). I found the following to be the cause.

In gdb v6.8, the init file processing logic was in
cli/cli-script.c:read_next_line(). The following code ignores all leading (and
trailing) spaces.

  841    /* Strip leading and trailing whitespace.  */
  842    while (*p == ' ' || *p == '\t')
  843      p++;
  844   845    p1 = p + strlen (p);
  846    while (p1 != p && (p1[-1] == ' ' || p1[-1] == '\t'))
  847      p1--;

In gdb v7.0, the processing logic was in cli/cli-script.c:process_next_line().
Apparently, the leading spaces are ignored only for commands and not for
comments. So, if I had a comment section with and 'end' having prefixed spaces,
gdb did not treat it as end of comment section.

  888    if (parse_commands)
  889      {
  890        /* Strip leading whitespace.  */
  891        while (*p == ' ' || *p == '\t')
  892          p++;
  893      }