Fix compiler warning, rename confusing variable, format code

- fix: comparison of integer expressions of different signedness
- rename confusing variable 'l' to 'len' (l can be confused with 1)
- minor comment and code formatting

This commit should not change the behavior.
This commit is contained in:
Albrecht Schlosser
2026-02-02 20:07:41 +01:00
parent db4aa25e99
commit 54712fd388

View File

@@ -1323,10 +1323,10 @@ int Fl_Text_Buffer::search_forward(int startPos, const char *searchString,
*foundPos = startPos;
return 1;
}
int l = fl_utf8len1(c);
if (memcmp(sp, address(bp), l))
int len = fl_utf8len1(c);
if (memcmp(sp, address(bp), len))
break;
sp += l; bp += l;
sp += len; bp += len;
}
startPos = next_char(startPos);
}
@@ -1340,12 +1340,12 @@ int Fl_Text_Buffer::search_forward(int startPos, const char *searchString,
*foundPos = startPos;
return 1;
}
int l;
int len;
unsigned int b = char_at(bp);
unsigned int s = fl_utf8decode(sp, 0, &l);
unsigned int s = fl_utf8decode(sp, 0, &len);
if (fl_tolower(b)!=fl_tolower(s))
break;
sp += l;
sp += len;
bp = next_char(bp);
}
startPos = next_char(startPos);
@@ -1375,10 +1375,10 @@ int Fl_Text_Buffer::search_backward(int startPos, const char *searchString,
*foundPos = startPos;
return 1;
}
int l = fl_utf8len1(c);
if (memcmp(sp, address(bp), l))
int len = fl_utf8len1(c);
if (memcmp(sp, address(bp), len))
break;
sp += l; bp += l;
sp += len; bp += len;
}
startPos = prev_char(startPos);
}
@@ -1392,12 +1392,12 @@ int Fl_Text_Buffer::search_backward(int startPos, const char *searchString,
*foundPos = startPos;
return 1;
}
int l;
int len;
unsigned int b = char_at(bp);
unsigned int s = fl_utf8decode(sp, 0, &l);
unsigned int s = fl_utf8decode(sp, 0, &len);
if (fl_tolower(b)!=fl_tolower(s))
break;
sp += l;
sp += len;
bp = next_char(bp);
}
startPos = prev_char(startPos);
@@ -1957,13 +1957,13 @@ static int utf8_input_filter(char *buffer, // result buffer we fill
{
// p - work pointer to line[]
// q - work pointer to buffer[]
// l - length of utf8 sequence being worked on
// len - length of utf8 sequence being worked on
// lp - fl_utf8decode() length of utf8 sequence being worked on
// lq - fl_utf8encode() length of utf8 sequence being worked on
// r - bytes read from last fread()
// u - utf8 decoded sequence as a single multibyte unsigned integer
char *p, *q, multibyte[5];
int l, lp, lq, r;
int len, lp, lq, r;
unsigned u;
p = line;
q = buffer;
@@ -1978,19 +1978,20 @@ static int utf8_input_filter(char *buffer, // result buffer we fill
// See if utf8 seq we're working on would extend off end of line buffer,
// and if so, adjust + load more data so that it doesn't.
//
l = fl_utf8len1(*p); // anticipate length of utf8 sequence
if (p + l > endline) { // would walk off end of line buffer?
len = fl_utf8len1(*p); // anticipate length of utf8 sequence
if (p + len > endline) { // would walk off end of line buffer?
memmove(line, p, endline - p); // re-jigger line buffer to get some room
endline -= (p - line);
r = (int) fread(endline, 1, sline - (endline - line), fp); // re-fill line buffer
endline += r;
p = line;
if (endline - line < l) break; // sequence *still* extends past end? stop loop
if (endline - line < len) break; // sequence *still* extends past end? stop loop
}
while ( l > 0) {
u = fl_utf8decode(p, p+l, &lp); // get single utf8 encoded char as a Unicode value
while ( len > 0) {
u = fl_utf8decode(p, p+len, &lp); // get single utf8 encoded char as a Unicode value
lq = fl_utf8encode(u, multibyte); // re-encode Unicode value to utf8 in multibyte[]
if (lp != l || lq != l) *input_was_changed = true;
if (lp != len || lq != len)
*input_was_changed = true;
if (q + lq > buffer + buflen) { // encoding would walk off end of buffer[]?
memmove(line, p, endline - p); // re-jigger line[] buffer for next call
@@ -2000,7 +2001,7 @@ static int utf8_input_filter(char *buffer, // result buffer we fill
memcpy(q, multibyte, lq);
q += lq;
p += lp;
l -= lp;
len -= lp;
}
}
memmove(line, p, endline - p);
@@ -2026,25 +2027,25 @@ const char *Fl_Text_Buffer::file_encoding_warning_message =
return 1;
char *buffer = new char[buflen + 1];
char *endline, line[100];
int l;
int len;
input_file_was_transcoded = false;
endline = line;
while (true) {
#ifdef EXAMPLE_ENCODING
// example of 16-bit encoding: UTF-16
l = general_input_filter(buffer, buflen,
len = general_input_filter(buffer, buflen,
line, sizeof(line), endline,
utf16toucs, // use cp1252toucs to read CP1252-encoded files
fp);
input_file_was_transcoded = true;
#else
l = utf8_input_filter(buffer, buflen, line, sizeof(line), endline,
len = utf8_input_filter(buffer, buflen, line, sizeof(line), endline,
fp, &input_file_was_transcoded);
#endif
if (l == 0) break;
buffer[l] = 0;
if (len == 0) break;
buffer[len] = 0;
insert(pos, buffer);
pos += l;
pos += len;
}
int e = ferror(fp) ? 2 : 0;
fclose(fp);
@@ -2091,15 +2092,15 @@ int Fl_Text_Buffer::prev_char_clipped(int pos) const
IS_UTF8_ALIGNED2(this, (pos))
const int l_t = 40;
char t[l_t + 1]; t[l_t] = 0;
int l = l_t, p = pos, ll;
int len = l_t, p = pos, ll;
for (int i = l_t; i > 0 && p > 0; i--) {
t[--l] = byte_at(--p);
ll = fl_utf8len(t[l]);
t[--len] = byte_at(--p);
ll = fl_utf8len(t[len]);
if (ll == 1 || ll == 2) break;
}
const char *previous = fl_utf8_previous_composed_char(t + l_t, t + l);
ll = strlen(t + l);
pos = (pos - ll) + (previous - (t+l));
const char *previous = fl_utf8_previous_composed_char(t + l_t, t + len);
ll = strlen(t + len);
pos = (pos - ll) + (previous - (t+len));
IS_UTF8_ALIGNED2(this, (pos))
return pos;
}
@@ -2122,23 +2123,22 @@ int Fl_Text_Buffer::prev_char(int pos) const
Returns the index of the next character.
This function processes an emoji sequence (see \ref fl_utf8_next_composed_char) as a single character.
Returns length() if the end of the buffer is reached.
\param pos index to the current character
\param[in] pos index to the current character
*/
int Fl_Text_Buffer::next_char(int pos) const
{
int Fl_Text_Buffer::next_char(int pos) const {
IS_UTF8_ALIGNED2(this, (pos))
int l = fl_utf8len(byte_at(pos));
if (l > 0) { // test for emoji sequence except for bad bytes
int len = fl_utf8len(byte_at(pos));
if (len > 0) { // test for emoji sequence except for bad bytes
int p = pos, ll, b, count_points = 0;
char t[40]; // longest emoji sequences I know use 28 bytes in UTF8 (e.g., 🏴󠁧󠁢󠁷󠁬󠁳󠁿 "Wales flag")
l = 0;
len = 0;
// extract bytes after pos stopping after short codepoint or 40 bytes at most
while (p < mLength && l < sizeof(t)) {
while (p < mLength && len < (int)sizeof(t)) {
b = byte_at(p++);
t[l++] = b;
t[len++] = b;
ll = fl_utf8len1(b);
count_points++;
for (int i = 1; i < ll && l < sizeof(t); i++) t[l++] = byte_at(p++);
for (int i = 1; i < ll && len < (int)sizeof(t); i++) t[len++] = byte_at(p++);
if (count_points > 1 && (ll == 1 || ll == 2)) {
// stop after short codepoint but not if it's the 1st codepoint which can be inside
// emoji sequence (e.g. 9⃣ "keycap 9")
@@ -2146,11 +2146,11 @@ int Fl_Text_Buffer::next_char(int pos) const
}
}
// length of possibly emoji sequence starting at pos
l = (l > 0 ? fl_utf8_next_composed_char(t, t + l) - t : 0);
} else if (l == -1) {
l = 1;
len = (len > 0 ? fl_utf8_next_composed_char(t, t + len) - t : 0);
} else if (len == -1) {
len = 1;
}
pos += l;
pos += len;
if (pos>=mLength)
return mLength;
IS_UTF8_ALIGNED2(this, (pos))