disable(); $response->getHeader()->sendHttpHeaders(); $filename = CHANGELOG_FILE; /** * Read changelog. */ // Check if the file is available, some distributions remove these. if (@is_readable($filename)) { // Test if the if is in a compressed format if (substr($filename, -3) == '.gz') { ob_start(); readgzfile($filename); $changelog = ob_get_contents(); ob_end_clean(); } else { $changelog = file_get_contents($filename); } } else { printf( __( 'The %s file is not available on this system, please visit ' . '%s for more information.' ), $filename, 'phpmyadmin.net' ); exit; } /** * Whole changelog in variable. */ $changelog = htmlspecialchars($changelog); $tracker_url = 'https://sourceforge.net/support/tracker.php?aid=\\1'; $tracker_url_bug = 'https://sourceforge.net/p/phpmyadmin/bugs/\\1/'; $tracker_url_rfe = 'https://sourceforge.net/p/phpmyadmin/feature-requests/\\1/'; $tracker_url_patch = 'https://sourceforge.net/p/phpmyadmin/patches/\\1/'; $github_url = 'https://github.com/phpmyadmin/phpmyadmin/'; $faq_url = 'https://docs.phpmyadmin.net/en/latest/faq.html'; $replaces = array( '@(https?://[./a-zA-Z0-9.-_-]*[/a-zA-Z0-9_])@' => '\\1', // sourceforge users '/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +<(.*)@users.sourceforge.net>/i' => '\\1 \\2', '/thanks to ([^\(\r\n]+) \(([-\w]+)\)/i' => 'thanks to \\1', '/thanks to ([^\(\r\n]+) -\s+([-\w]+)/i' => 'thanks to \\1', // mail address '/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +<(.*@.*)>/i' => '\\1 \\2', // linking patches '/patch\s*#?([0-9]{6,})/i' => 'patch #\\1', // linking RFE '/(?:rfe|feature)\s*#?([0-9]{6,})/i' => 'RFE #\\1', // linking files '/(\s+)([\\/a-z_0-9\.]+\.(?:php3?|html|pl|js|sh))/i' => '\\1\\2', // FAQ entries '/FAQ ([0-9]+)\.([0-9a-z]+)/i' => 'FAQ \\1.\\2', // linking bugs '/bug\s*#?([0-9]{6,})/i' => 'bug #\\1', // all other 6+ digit numbers are treated as bugs '/(? 'bug #\\1', // GitHub issues '/issue\s*#?([0-9]{4,5}) /i' => 'issue #\\1 ', // transitioned SF.net project bug/rfe/patch links // by the time we reach 6-digit numbers, we can probably retire the above links '/patch\s*#?([0-9]{4,5}) /i' => 'patch #\\1 ', '/(?:rfe|feature)\s*#?([0-9]{4,5}) /i' => 'RFE #\\1 ', '/bug\s*#?([0-9]{4,5}) /i' => 'bug #\\1 ', '/(? 'bug #\\1 ', // CVE/CAN entries '/((CAN|CVE)-[0-9]+-[0-9]+)/' => '\\1', // PMASAentries '/(PMASA-[0-9]+-[0-9]+)/' => '\\1', // Highlight releases (with links) '/([0-9]+)\.([0-9]+)\.([0-9]+)\.0 (\([0-9-]+\))/' => '' . '' . '\\1.\\2.\\3.0 \\4', '/([0-9]+)\.([0-9]+)\.([0-9]+)\.([1-9][0-9]*) (\([0-9-]+\))/' => '' . '' . '\\1.\\2.\\3.\\4 \\5', // Highlight releases (not linkable) '/( ### )(.*)/' => '\\1\\2', // Links target and rel '/a href="/' => 'a target="_blank" rel="noopener noreferrer" href="/' ); header('Content-type: text/html; charset=utf-8'); ?>