summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2022-02-10 15:15:55 +0200
committerJaakko Keränen <jaakko.keranen@iki.fi>2022-02-10 15:15:55 +0200
commit46068652834e1d5214d0a74dce24aa678df91103 (patch)
tree54305446c738a6a21f9abe1b297b01dba648d585 /src/ui
parentcd667eeac58dce0dc699bc12010482bdd96d8297 (diff)
Dealing with long URLs
LinkInfo will truncate extremely long URLs, and when viewing a single image, data URLs don't have a title.
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/documentwidget.c2
-rw-r--r--src/ui/linkinfo.c6
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,
2731 : "media.untitled.audio"); 2731 : "media.untitled.audio");
2732 iUrl parts; 2732 iUrl parts;
2733 init_Url(&parts, d->mod.url); 2733 init_Url(&parts, d->mod.url);
2734 if (!isEmpty_Range(&parts.path)) { 2734 if (!isEmpty_Range(&parts.path) && !equalCase_Rangecc(parts.scheme, "data")) {
2735 linkTitle = 2735 linkTitle =
2736 baseName_Path(collect_String(newRange_String(parts.path))).start; 2736 baseName_Path(collect_String(newRange_String(parts.path))).start;
2737 } 2737 }
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
92 appendRange_String(text_out, (iRangecc){ parts.path.start, constEnd_String(url) }); 92 appendRange_String(text_out, (iRangecc){ parts.path.start, constEnd_String(url) });
93 } 93 }
94 else if (scheme != gemini_GmLinkScheme) { 94 else if (scheme != gemini_GmLinkScheme) {
95 const size_t maxDispLen = 300;
95 appendCStr_String(text_out, scheme == file_GmLinkScheme ? "" : globe_Icon " "); 96 appendCStr_String(text_out, scheme == file_GmLinkScheme ? "" : globe_Icon " ");
96 appendCStrN_String(text_out, cstr_String(url), iMin(500, size_String(url))); 97 appendCStrN_String(text_out, cstr_String(url), iMin(maxDispLen, size_String(url)));
98 if (size_String(url) > maxDispLen) {
99 appendCStr_String(text_out, "...");
100 }
97 } 101 }
98 else { 102 else {
99 appendCStr_String(text_out, "\x1b[1m"); 103 appendCStr_String(text_out, "\x1b[1m");