1
1

for more compatibility with Pico, remove extra space after a character

in punct if that character is the same as the one before it


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1933 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Этот коммит содержится в:
David Lawrence Ramsey 2004-09-11 21:28:36 +00:00
родитель 12d5b2f6bd
Коммит fd73c462f4
2 изменённых файлов: 15 добавлений и 6 удалений

Просмотреть файл

@ -50,6 +50,11 @@ CVS code -
die_save_file()
- Clarify the error message when there are too many backup files
and the current one can't be written. (DLR)
justify_format()
- For more compatibility with Pico, remove extra space after a
character in punct if that character is the same as the one
before it. For example, with the default values of punct and
brackets, only one space will be left after "...". (DLR)
do_para_begin(), do_para_end()
- Maintain current_y's value when moving up or down lines so
that smooth scrolling works correctly. (DLR)

Просмотреть файл

@ -1833,9 +1833,9 @@ size_t indent_length(const char *line)
#ifndef DISABLE_JUSTIFY
/* justify_format() replaces Tab by Space and multiple spaces by 1
* (except it maintains 2 after a character in punct followed by a
* character in brackets). Note that the terminating \0 counts as a
* space.
* (except it maintains 2 after a non-repeated character in punct
* followed by a character in brackets). Note that the terminating \0
* counts as a space.
*
* justify_format() might make line->data shorter, and change the actual
* pointer with null_at().
@ -1864,12 +1864,16 @@ void justify_format(filestruct *line, size_t skip)
/* These tests are safe since line->data + skip is not a
* space. */
if ((*front == '\0' || *front == ' ') && *(front - 1) == ' ') {
const char *bob = front - 2;
const char *bob = back - 2;
remove_space = TRUE;
for (bob = back - 2; bob >= line->data + skip; bob--) {
for (; bob >= line->data + skip; bob--) {
if (strchr(punct, *bob) != NULL) {
remove_space = FALSE;
/* If this character is in punct, don't remove the
* space unless this character and the character
* before it are the same. */
remove_space = (bob > line->data + skip &&
*bob == *(bob - 1));
break;
}
if (strchr(brackets, *bob) == NULL)