mirror of
git://git.sv.gnu.org/nano.git
synced 2024-11-26 06:39:43 +03:00
in break_line(), fix problem where tab widths in columns are always
calculated as tabsize git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3523 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
parent
139bae0826
commit
2d3d1e9324
@ -221,6 +221,9 @@ CVS code -
|
||||
- Change all rcfile error messages to refer to commands instead
|
||||
of directives, for consistency with nanorc.5. (DLR)
|
||||
- text.c:
|
||||
break_line()
|
||||
- Fix problem where tab widths in columns are always calculated
|
||||
as tabsize. (DLR, found by Alexey Toptygin)
|
||||
do_justify()
|
||||
- Remove redundant key checks. (DLR)
|
||||
do_spell()
|
||||
|
11
src/text.c
11
src/text.c
@ -779,14 +779,14 @@ ssize_t break_line(const char *line, ssize_t goal
|
||||
* found with short enough display width. */
|
||||
ssize_t cur_loc = 0;
|
||||
/* Current index in line. */
|
||||
size_t cur_pos = 0;
|
||||
/* Current column position in line. */
|
||||
int line_len;
|
||||
|
||||
assert(line != NULL);
|
||||
|
||||
while (*line != '\0' && goal >= 0) {
|
||||
size_t pos = 0;
|
||||
|
||||
line_len = parse_mbchar(line, NULL, &pos);
|
||||
while (*line != '\0' && goal >= cur_pos) {
|
||||
line_len = parse_mbchar(line, NULL, &cur_pos);
|
||||
|
||||
if (is_blank_mbchar(line)
|
||||
#ifndef DISABLE_HELP
|
||||
@ -801,12 +801,11 @@ ssize_t break_line(const char *line, ssize_t goal
|
||||
#endif
|
||||
}
|
||||
|
||||
goal -= pos;
|
||||
line += line_len;
|
||||
cur_loc += line_len;
|
||||
}
|
||||
|
||||
if (goal >= 0)
|
||||
if (goal >= cur_pos)
|
||||
/* In fact, the whole line displays shorter than goal. */
|
||||
return cur_loc;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user