From 6dbe098f27e3be519c15ac3b1f5da5efb19a921c Mon Sep 17 00:00:00 2001 From: Platonides Date: Wed, 19 Oct 2011 15:15:08 +0000 Subject: [PATCH] It is valid (albeit silly) to specify lang;q=1.000 No more than three decimals are allowed. (rfc2616 section 3.9: Quality Values) The language-range may contain more than one - (section 14.4) such as x-pig-latin (section 3.10: Language Tags) --- includes/WebRequest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/WebRequest.php b/includes/WebRequest.php index 2721a5bcc2..daab86f1bd 100644 --- a/includes/WebRequest.php +++ b/includes/WebRequest.php @@ -962,7 +962,7 @@ HTML; // Break up string into pieces (languages and q factors) $lang_parse = null; - preg_match_all( '/([a-z]{1,8}(-[a-z]{1,8})?|\*)\s*(;\s*q\s*=\s*(1|0(\.[0-9]+)?)?)?/', + preg_match_all( '/([a-z]{1,8}(-[a-z]{1,8})*|\*)\s*(;\s*q\s*=\s*(1(\.0{0,3})?|0(\.[0-9]{0,3})?)?)?/', $acceptLang, $lang_parse ); if ( !count( $lang_parse[1] ) ) { -- 2.20.1