diff --git a/ChangeLog b/ChangeLog index 583f487e..19875997 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,9 @@ * src/help.c: Adjust some comments and whitespace. * src/help.c (do_help, do_help_void): Don't bother passing a function when it's used only once. + * src/help.c (help_line_len): The wrap location can be beyond the EOL, + so for determining the length of the current line, don't start at that + location but at the beginning. This fixes Savannah bug #45770. 2015-08-13 Benno Schulenberg * src/search.c (do_find_bracket): Remove mistaken comparison between diff --git a/src/help.c b/src/help.c index e9f0e272..fa63f06b 100644 --- a/src/help.c +++ b/src/help.c @@ -512,6 +512,8 @@ size_t help_line_len(const char *ptr) size_t retval = (wrap_loc < 0) ? 0 : wrap_loc; size_t retval_save = retval; + retval = 0; + /* Get the length of the entire line up to a null or a newline. */ while (*(ptr + retval) != '\0' && *(ptr + retval) != '\n') retval += move_mbright(ptr + retval, 0);