summaryrefslogtreecommitdiff
path: root/src/gmutil.c
AgeCommit message (Collapse)Author
2022-01-30About page parent/root navigationJaakko Keränen
2022-01-29Hierarchical navigation with Gopher and TitanJaakko Keränen
With Gopher, ensure that the item type changes to 1, and with Titan, change to normal Gemini.
2021-12-27Reserved characters in URLsJaakko Keränen
Making URL encoding a little less convoluted. Now when sending out a request, the URL is fully encoded except for reserved characters. In the internal representation, non-ASCII characters are in decoded form (i.e., IRI). This means that if the user enters a URL in the input field manually, its non-ASCII characters will be percent encoded as well. However, in this case the user is expected to manually escape all reserved characters because the input field can't tell the difference between what is intended to be a reserved separator and what isn't. For example, a server might expect &-separated fields, and if the user enters such fields manually in the URL field, they shouldn't be converted to %26. When forming a query URL in the input dialog, user-entered text is fully percent-encoded because in that case the input is just a generic text string. IssueID #410
2021-12-07Document-specific palettesJaakko Keränen
Manage a color palette separately for each GmDocument, and activate one of them globally whenever a document is being drawn. Palettes are cached in memory.
2021-12-01CleanupJaakko Keränen
2021-11-14Merge branch 'dev' into work/v1.9Jaakko Keränen
# Conflicts: # CMakeLists.txt # Depends.cmake # src/lang.c
2021-11-10Fixed URL encoding of plus charactersJaakko Keränen
The Gemini specifications says to encode RFC3986's reserved characters in URLs, but that didn't apply to plus characters in the "canonical" form.
2021-11-08GmUtil: Normalizing empty path in Gemini URLsJaakko Keränen
2021-10-29Fixed a memory leak in URL handlingJaakko Keränen
2021-10-25Document presentation warningsJaakko Keränen
Warn the user about missing glyphs and potentially unsupported ANSI escapes. TODO: Site-specific setting for dismissed warning; fonts preference about missing glyph warnings.
2021-10-20Fixed a potential crashJaakko Keränen
Be more robust in `init_Url()`.
2021-10-17FontPack management via "about:fonts"Jaakko Keränen
2021-10-12Experimental Markdown renderingJaakko Keränen
Convert Markdown to Gemtext and use ANSI escape sequences to switch fonts (bold, italic, monospace). The conversion is still a bit buggy...
2021-10-11Media refactoring; working on FontPack managementJaakko Keränen
Media still needs more work to get rid of redundancies and make lookups faster. FontPacks are manipulated as Media items (not unlike images) so they can be previewed on page, and installed via a click. FontPack management is not trivial as it includes such details as versioning and whether individual packs are enabled or disabled.
2021-10-01Feeds: Don't forget entries or their unread statusJaakko Keränen
Three important changes: 1) Visited URLs can be marked as "kept" so they will never be discarded due to old age. 2) Feed entries are not discarded from the database until they are removed from the source, and then become too old (six months). 3) Visited feed entry URLs are always flagged as kept, so the (un)read status will not be forgotten.
2021-09-25Canonical URL form decodes colons in pathsJaakko Keränen
The handling of colons (a reserved character used in the URL scheme and authority) was left ambiguous in the canonical form.
2021-09-04Merge branch 'dev' into work/v1.7Jaakko Keränen
# Conflicts: # CMakeLists.txt # res/about/version.gmi
2021-09-01Fixed encoding of % in URL query stringJaakko Keränen
2021-08-20Added WebP decoding using libwebpJaakko Keränen
2021-08-18GmRequest: Detect UTF-8 in local files of unknown typeJaakko Keränen
2021-07-16Allow override for certificate expiryJaakko Keränen
The user is able to ignore certificate expiry and continue loading the page regardless. This adds a one hour exception to the expiration date.
2021-07-16Improved TOFU implementationJaakko Keränen
If a server sends a different certificate (checked by matching public key fingerprints), abort the connection at the TLS handshake stage. A new error page is shown explaining the situation. A button is provided for conveniently opening Page Information, where trust can be updated. The file format of "visited.txt" was updated, so it is now called "visited.2.txt". The new format includes server port numbers, and the fingerprints are calculated based on public keys. IssueID #308 IssueID #309 IssueID #310
2021-07-15Fixed whitespace encoding in query stringJaakko Keränen
2021-07-13GmCerts: Make the server port knownJaakko Keränen
2021-06-30Canonical URIsJaakko Keränen
Internally, all URIs should be converted to a canonical form so that they can be compared against each other. The canonical form is an IRI with spaces and reserved characters percent-encoded.
2021-06-14Swiping and sidebar; various tweaksJaakko Keränen
When a page is opened from the sidebar, swiping back will now reopen the sidebar. Another swipe will dismiss the sidebar and navigate back as usual. Attempted to cache theme colors in GmDocument, but there were issues with theme changes.
2021-05-21Added -u,--url-or-search command line optionJaakko Keränen
Opening an URL or making a search query from the command line. IssueID #232
2021-05-21Added identity exportingJaakko Keränen
Exporting an identity will display it in a new tab in PEM encoded format, where it can be saved or copied. IssueID #236
2021-05-07Windows: Fixed use of native path separatorsJaakko Keränen
`GmRequest` should use the correct path separators on Windows in native paths.
2021-05-05Only accept valid characters in URI schemesJaakko Keränen
IssueID #269
2021-05-05Gempub: Split to show index and first chapterJaakko Keränen
When opening a Gempub, split the window and show the index page and the first chapter.
2021-05-02Added a Gempub helperJaakko Keränen
`Gempub` opens and parses a Gempub archive and provides access to the contents in a common way.
2021-04-26URL encoding in paths (equals sign)Jaakko Keränen
An equals sign has no special meaning in the path part of an URL, so encoding it always is unnecessary. Fixes apparent URL decoding issue on gemini://gemif.fedi.farm/ .
2021-04-24Gempub cover page; cleanupJaakko Keränen
Use MIME hooks to generate a Gempub cover page with a preloaded cover image. This required applying MIME filtering to "file://" requests as well. Todo: More cleanup, add a gempub.c.
2021-04-23File URLs support directories and ZIP archivesJaakko Keränen
One is now able to view directory and ZIP archive contents using file URLs. Directory contents are shown as a list of links, enabling previewing supported formats. A link to the parent directory is included at the top of the page. ZIP archives behave like directories, except they also recognize "index.gmi" and "index.gemini" files and display them instead of the regular directory index (when viewing a directory inside a ZIP archive). This enables archiving a Gemini capsule and browsing it as a ZIP archive. Added a preference to disable loading of index pages.
2021-04-18Dealing with a missing host nameJaakko Keränen
2021-04-17Composing an URL with an IPv6 hostJaakko Keränen
The brackets that were removed must be put back if needed.
2021-04-17Parsing an IPv6 URLJaakko Keränen
The brackets are part of the URL notation and should not be considered part of the IPv6 address itself.
2021-03-28Handling of unknown URI schemesJaakko Keränen
IssueID #226
2021-03-25Don't alter contents of bitcoin URIsJaakko Keränen
IssueID #215
2021-03-24Lang: Added new strings for error messagesJaakko Keränen
IssueID #192
2021-03-24Fixed regression in conman.org client torture test 21Jaakko Keränen
Couple of problems: - "data:" links were not flagged as supported - "data:" links are not supposed to further decoded or encoded since they are processed internally in the client IssueID #217
2021-03-14Adjusted URL detection for search queriesJaakko Keränen
Dashes may appear in domain names.
2021-03-14Punycode domains when setting trustJaakko Keränen
2021-02-28GmUtil: File paths must be absolute for URLsJaakko Keränen
2021-02-24Bookmarks: Looking up site iconsJaakko Keränen
Bookmark icons apply to site roots instead of domains. A root includes the user directory if one is found in the URL.
2021-02-23Fixed potential crash in URL handlingJaakko Keränen
2021-02-23"Go to Root" respects user names in URLJaakko Keränen
The behavior of navigating to root should match what is displayed in the top banner.
2021-02-16Search engine queries via the navbarJaakko Keränen
Any text that doesn't look like a URL is passed onto the configured search URL as a query string. IssueID #157
2021-02-10Fixed URL path decoding issueJaakko Keränen
One should not decode characters that are reserved for the URL syntax.