From bd9eaad0b2d05786dbe5b6c5d66bd199c9c712ea Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 10 Feb 2019 18:16:19 +0000 Subject: Return truncted data from encode_truncate and hold it in IRCLine.Line --- src/utils/__init__.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/utils/__init__.py') diff --git a/src/utils/__init__.py b/src/utils/__init__.py index 24b3d71d..738541d5 100644 --- a/src/utils/__init__.py +++ b/src/utils/__init__.py @@ -190,12 +190,15 @@ def is_ip(s: str) -> bool: return False return True -def encode_truncate(s: str, encoding: str, byte_max: int) -> bytes: +def encode_truncate(s: str, encoding: str, byte_max: int + ) -> typing.Tuple[bytes, str]: encoded = b"" - for character in s: + truncated = "" + for i, character in enumerate(s): encoded_character = character.encode(encoding) if len(encoded + encoded_character) > byte_max: + truncated = s[i:] break else: encoded += encoded_character - return encoded + return encoded, truncated -- cgit v1.3.1-10-gc9f91