<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Emaillink.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>73dc0a8919857718a3b64a4c0741b57580a34b2a - fix(mail): keep &apos;&amp;&apos; intact in mailto links with multiple query params</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Emaillink.php#73dc0a8919857718a3b64a4c0741b57580a34b2a</link>
        <description>fix(mail): keep &apos;&amp;&apos; intact in mailto links with multiple query paramsMove the email-handling helpers (obfuscate, mail_isvalid,mail_quotedprintable_encode, mail_setup) out of the proceduralinc/mail.php into a namespaced dokuwiki\MailUtils class plus a newMailer::configInit(), and add a separate MailUtils::obfuscateUrl() forthe mailto-href context.The xhtml renderer and PluginTrait now build the link label and thehref separately: the address half is run through the mailguardobfuscation, the query string is preserved verbatim with only HTMLescaping applied. This fixes #1690 &#8212; in &apos;visible&apos; mode the previouscode rawurlencoded the entire address+query, turning &apos;?&apos; into &apos;%3F&apos; andbreaking multi-parameter mailto links; in all modes the query string isno longer mangled by the [at]/[dot] substitution.Core call sites (Mailer, auth, LegacyApiCore, common, the xhtmlrenderer, the parser, the bundled config/styling/usermanager plugins)are migrated to MailUtils directly. The old top-level functions andPREG_PATTERN_VALID_EMAIL constant remain as deprecated shims withrector mappings.Tests for obfuscate / mail_isvalid / mail_quotedprintable_encode areconsolidated into a single _test/tests/MailUtilsTest.php and extendedwith regression coverage for the multi-parameter, double-escape andURL-shape cases.Closes #1690Replaces #1964

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Emaillink.php</description>
        <pubDate>Wed, 06 May 2026 21:21:37 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>71096e46fcbfaeaa808667aba794e77fe2780169 - move handler methods into ParserMode classes and rename Handler</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Emaillink.php#71096e46fcbfaeaa808667aba794e77fe2780169</link>
        <description>move handler methods into ParserMode classes and rename HandlerEach ParserMode class now implements handle() from ModeInterface,containing the token handling logic that previously lived as individualmethods on Doku_Handler.The Handler class (formerly Doku_Handler) is the single dispatch point:Lexer passes tokens to Handler::handleToken() which routes to modeobjects, plugins, or returns false. The Lexer only tokenizes andresolves mapHandler aliases.Key changes:- Add handle() to ModeInterface, implemented by all mode classes- Move Doku_Handler to dokuwiki\Parsing\Handler namespace- File extends Code (shared parsing via $type property)- Quotes uses mapHandler() + Handler::getModeName() for sub-modes- Media::parseMedia() replaces Doku_Handler_Parse_Media()- Code::parseHighlightOptions() replaces parse_highlight_options()- Per-parse state (footnote, doublequote) stays on Handler- Deprecated wrappers kept for base/header/internallink/media- Class alias and rector rules added for backward compatibility

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Emaillink.php</description>
        <pubDate>Sat, 18 Apr 2026 15:35:30 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>d4f83172d9533c4d84f450fe22ef630816b21d75 - code style: line breaks</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Emaillink.php#d4f83172d9533c4d84f450fe22ef630816b21d75</link>
        <description>code style: line breaks

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Emaillink.php</description>
        <pubDate>Thu, 31 Aug 2023 20:44:40 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>90fb952c4c30c09c8446076ba05991c89a3f0b01 - code style: operator spacing</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Emaillink.php#90fb952c4c30c09c8446076ba05991c89a3f0b01</link>
        <description>code style: operator spacing

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Emaillink.php</description>
        <pubDate>Thu, 31 Aug 2023 20:38:07 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>be906b566b9bdfd92c032ee07c4fd077d820a8d1 - moved all parsing related namespaces to their own</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Emaillink.php#be906b566b9bdfd92c032ee07c4fd077d820a8d1</link>
        <description>moved all parsing related namespaces to their own

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Emaillink.php</description>
        <pubDate>Fri, 04 May 2018 12:22:09 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
</channel>
</rss>
