[PATCH v4] utf8: replace utf8_strwidth todo with descriptive comment

Hardik Kumar <[email protected]>
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
The `utf8_strwidth()` function is used in multiple places that all
expect the function to return an int. The result is directly used for
padding and width calculations and passed to `printf()` calls. All
these operations expect the function to return an int value. Changing
the return type here requires changing the types of all the callers and
other additional variables, that depend on the results from this
function directly or indirectly, to avoid overflow by implicit
conversions.

The comment precisely explains the reason why the explicit conversion is
done.

- Remove an old TODO that is no longer feasible.
- Add a comment explaining the behaviour and reason of the allowed
expression.

Signed-off-by: Hardik Kumar <[email protected]>
---
changes in v4:
- drop the todo implementation and remove from codebase.
- replace the todo with a reasonable explanation for the current
approach and why its not worth the change.

 utf8.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/utf8.c b/utf8.c
index 96460cc..1b55bd4 100644
--- a/utf8.c
+++ b/utf8.c
@@ -227,8 +227,9 @@ int utf8_strnwidth(const char *string, size_t len, int skip_ansi)
 	}
 
 	/*
-	 * TODO: fix the interface of this function and `utf8_strwidth()` to
-	 * return `size_t` instead of `int`.
+	 * The function is used in multiple locations where the callers
+	 * expect the result to be a signed int value. We cast the
+	 * result to an int to avoid changing signatures of all callers.
 	 */
 	return cast_size_t_to_int(string ? width : len);
 }
-- 
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.