From 46068652834e1d5214d0a74dce24aa678df91103 Mon Sep 17 00:00:00 2001 From: Jaakko Keränen Date: Thu, 10 Feb 2022 15:15:55 +0200 Subject: Dealing with long URLs LinkInfo will truncate extremely long URLs, and when viewing a single image, data URLs don't have a title. --- src/ui/documentwidget.c | 2 +- src/ui/linkinfo.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c index dbe29c4e..8eb58b21 100644 --- a/src/ui/documentwidget.c +++ b/src/ui/documentwidget.c @@ -2731,7 +2731,7 @@ static void updateDocument_DocumentWidget_(iDocumentWidget *d, : "media.untitled.audio"); iUrl parts; init_Url(&parts, d->mod.url); - if (!isEmpty_Range(&parts.path)) { + if (!isEmpty_Range(&parts.path) && !equalCase_Rangecc(parts.scheme, "data")) { linkTitle = baseName_Path(collect_String(newRange_String(parts.path))).start; } diff --git a/src/ui/linkinfo.c b/src/ui/linkinfo.c index e800d6a3..36ab00c8 100644 --- a/src/ui/linkinfo.c +++ b/src/ui/linkinfo.c @@ -92,8 +92,12 @@ void infoText_LinkInfo(const iGmDocument *doc, iGmLinkId linkId, iString *text_o appendRange_String(text_out, (iRangecc){ parts.path.start, constEnd_String(url) }); } else if (scheme != gemini_GmLinkScheme) { + const size_t maxDispLen = 300; appendCStr_String(text_out, scheme == file_GmLinkScheme ? "" : globe_Icon " "); - appendCStrN_String(text_out, cstr_String(url), iMin(500, size_String(url))); + appendCStrN_String(text_out, cstr_String(url), iMin(maxDispLen, size_String(url))); + if (size_String(url) > maxDispLen) { + appendCStr_String(text_out, "..."); + } } else { appendCStr_String(text_out, "\x1b[1m"); -- cgit v1.2.3