tweaks: reshuffle some lines and frob some comments

master
Benno Schulenberg 2019-06-10 20:03:27 +02:00
parent cd09482231
commit bd331b0198
1 changed files with 14 additions and 18 deletions

View File

@ -1924,13 +1924,11 @@ char *display_string(const char *buf, size_t column, size_t span,
while (*buf != '\0' && (column < beyond || mbwidth(buf) == 0)) {
int charlength, charwidth;
/* Show a space as a visible character, or as a space. */
if (*buf == ' ') {
/* Show a space as a visible character, or as a space. */
#ifndef NANO_TINY
if (ISSET(WHITESPACE_DISPLAY)) {
int i = whitelen[0];
while (i < whitelen[0] + whitelen[1])
for (int i = whitelen[0]; i < whitelen[0] + whitelen[1];)
converted[index++] = whitespace[i++];
} else
#endif
@ -1938,15 +1936,15 @@ char *display_string(const char *buf, size_t column, size_t span,
column++;
buf++;
continue;
} else if (*buf == '\t') {
/* Show a tab as a visible character, or as as a space. */
}
/* Show a tab as a visible character plus spaces, or as just spaces. */
if (*buf == '\t') {
#ifndef NANO_TINY
if (ISSET(WHITESPACE_DISPLAY) && (index > 0 || !isdata ||
!ISSET(SOFTWRAP) || column % tabsize == 0 ||
column == start_col)) {
int i = 0;
while (i < whitelen[0])
for (int i = 0; i < whitelen[0];)
converted[index++] = whitespace[i++];
} else
#endif
@ -1963,12 +1961,12 @@ char *display_string(const char *buf, size_t column, size_t span,
charlength = mblen(buf, MAXCHARLEN);
/* If buf contains a control character, represent it. */
/* Represent a control character with a leading caret. */
if (is_cntrl_mbchar(buf)) {
converted[index++] = '^';
converted[index++] = control_mbrep(buf, isdata);
column += 2;
buf += charlength;
column += 2;
continue;
}
@ -1980,21 +1978,18 @@ char *display_string(const char *buf, size_t column, size_t span,
}
#ifdef ENABLE_UTF8
/* For a multibyte character, check whether it is valid,
* and determine whether it occupies one or two columns. */
wchar_t wc;
int length = mbtowc(&wc, buf, MAXCHARLEN);
if (charlength != length)
die("Different character lengths");
/* Convert a multibyte character to a single code. */
mbtowc(&wc, buf, MAXCHARLEN);
/* When invalid, represent it with the Replacement Character. */
/* Represent an invalid character with the Replacement Character. */
if (charlength < 0 || !is_valid_unicode(wc)) {
converted[index++] = '\xEF';
converted[index++] = '\xBF';
converted[index++] = '\xBD';
column++;
buf += (charlength > 0 ? charlength : 1);
column++;
continue;
}
@ -2002,6 +1997,7 @@ char *display_string(const char *buf, size_t column, size_t span,
for (; charlength > 0; charlength--)
converted[index++] = *(buf++);
/* Determine whether the character occupies one or two columns. */
charwidth = wcwidth(wc);
/* If the codepoint is unassigned, assume a width of one. */