Index: trunk/phase3/includes/json/Services_JSON.php |
— | — | @@ -826,6 +826,7 @@ |
827 | 827 | |
828 | 828 | /** |
829 | 829 | * @todo Ultimately, this should just call PEAR::isError() |
| 830 | + * @return bool |
830 | 831 | */ |
831 | 832 | function isError($data, $code = null) |
832 | 833 | { |
Index: trunk/phase3/includes/MimeMagic.php |
— | — | @@ -566,6 +566,7 @@ |
567 | 567 | * |
568 | 568 | * @param string $file |
569 | 569 | * @param mixed $ext |
| 570 | + * @return bool|string |
570 | 571 | */ |
571 | 572 | private function doGuessMimeType( $file, $ext ) { // TODO: remove $ext param |
572 | 573 | // Read a chunk of the file |
— | — | @@ -1030,6 +1031,7 @@ |
1031 | 1032 | * |
1032 | 1033 | * This funktion relies on the mapping defined by $this->mMediaTypes |
1033 | 1034 | * @access private |
| 1035 | + * @return int|string |
1034 | 1036 | */ |
1035 | 1037 | function findMediaType( $extMime ) { |
1036 | 1038 | if ( strpos( $extMime, '.' ) === 0 ) { |
— | — | @@ -1067,6 +1069,7 @@ |
1068 | 1070 | * @param $fileName String: the file name (unused at present) |
1069 | 1071 | * @param $chunk String: the first 256 bytes of the file |
1070 | 1072 | * @param $proposed String: the MIME type proposed by the server |
| 1073 | + * @return Array |
1071 | 1074 | */ |
1072 | 1075 | public function getIEMimeTypes( $fileName, $chunk, $proposed ) { |
1073 | 1076 | $ca = $this->getIEContentAnalyzer(); |
Index: trunk/phase3/includes/objectcache/MemcachedPhpBagOStuff.php |
— | — | @@ -153,6 +153,7 @@ |
154 | 154 | * the other control characters for compatibility with libmemcached |
155 | 155 | * verify_key. We leave other punctuation alone, to maximise backwards |
156 | 156 | * compatibility. |
| 157 | + * @return string |
157 | 158 | */ |
158 | 159 | public function encodeKey( $key ) { |
159 | 160 | return preg_replace_callback( '/[\x00-\x20\x25\x7f]+/', |
Index: trunk/phase3/includes/objectcache/BagOStuff.php |
— | — | @@ -155,6 +155,7 @@ |
156 | 156 | |
157 | 157 | /** |
158 | 158 | * Convert an optionally relative time to an absolute time |
| 159 | + * @return int |
159 | 160 | */ |
160 | 161 | protected function convertExpiry( $exptime ) { |
161 | 162 | if ( ( $exptime != 0 ) && ( $exptime < 86400 * 3650 /* 10 years */ ) ) { |
Index: trunk/phase3/includes/objectcache/SqlBagOStuff.php |
— | — | @@ -92,6 +92,7 @@ |
93 | 93 | |
94 | 94 | /** |
95 | 95 | * Get the table name for a given key |
| 96 | + * @return string |
96 | 97 | */ |
97 | 98 | protected function getTableByKey( $key ) { |
98 | 99 | if ( $this->shards > 1 ) { |
— | — | @@ -104,6 +105,7 @@ |
105 | 106 | |
106 | 107 | /** |
107 | 108 | * Get the table name for a given shard index |
| 109 | + * @return string |
108 | 110 | */ |
109 | 111 | protected function getTableByShard( $index ) { |
110 | 112 | if ( $this->shards > 1 ) { |
— | — | @@ -310,6 +312,7 @@ |
311 | 313 | |
312 | 314 | /** |
313 | 315 | * Delete objects from the database which expire before a certain date. |
| 316 | + * @return bool |
314 | 317 | */ |
315 | 318 | public function deleteObjectsExpiringBefore( $timestamp, $progressCallback = false ) { |
316 | 319 | $db = $this->getDB(); |
Index: trunk/phase3/includes/objectcache/MemcachedClient.php |
— | — | @@ -871,6 +871,7 @@ |
872 | 872 | * @param $sock Resource: socket to read from |
873 | 873 | * @param $ret Array: returned values |
874 | 874 | * |
| 875 | + * @return bool|int |
875 | 876 | * @access private |
876 | 877 | */ |
877 | 878 | function _load_items( $sock, &$ret ) { |
— | — | @@ -1079,6 +1080,7 @@ |
1080 | 1081 | |
1081 | 1082 | /** |
1082 | 1083 | * Original behaviour |
| 1084 | + * @return int |
1083 | 1085 | */ |
1084 | 1086 | function _safe_fwrite( $f, $buf, $len = false ) { |
1085 | 1087 | if ( $len === false ) { |
Index: trunk/phase3/includes/objectcache/MultiWriteBagOStuff.php |
— | — | @@ -100,6 +100,7 @@ |
101 | 101 | * Delete objects expiring before a certain date. |
102 | 102 | * |
103 | 103 | * Succeed if any of the child caches succeed. |
| 104 | + * @return bool |
104 | 105 | */ |
105 | 106 | public function deleteObjectsExpiringBefore( $date, $progressCallback = false ) { |
106 | 107 | $ret = false; |
Index: trunk/phase3/includes/LocalisationCache.php |
— | — | @@ -343,6 +343,7 @@ |
344 | 344 | |
345 | 345 | /** |
346 | 346 | * Returns true if the cache identified by $code is missing or expired. |
| 347 | + * @return bool |
347 | 348 | */ |
348 | 349 | public function isExpired( $code ) { |
349 | 350 | if ( $this->forceRecache && !isset( $this->recachedLangs[$code] ) ) { |
Index: trunk/phase3/includes/parser/LinkHolderArray.php |
— | — | @@ -33,7 +33,8 @@ |
34 | 34 | * serializing at present. |
35 | 35 | * |
36 | 36 | * Compact the titles, only serialize the text form. |
37 | | - */ |
| 37 | + * @return array |
| 38 | + */ |
38 | 39 | function __sleep() { |
39 | 40 | foreach ( $this->internals as &$nsLinks ) { |
40 | 41 | foreach ( $nsLinks as &$entry ) { |
— | — | @@ -134,6 +135,7 @@ |
135 | 136 | /** |
136 | 137 | * Get a subset of the current LinkHolderArray which is sufficient to |
137 | 138 | * interpret the given text. |
| 139 | + * @return \LinkHolderArray |
138 | 140 | */ |
139 | 141 | function getSubArray( $text ) { |
140 | 142 | $sub = new LinkHolderArray( $this->parent ); |
— | — | @@ -167,6 +169,7 @@ |
168 | 170 | |
169 | 171 | /** |
170 | 172 | * Returns true if the memory requirements of this object are getting large |
| 173 | + * @return bool |
171 | 174 | */ |
172 | 175 | function isBig() { |
173 | 176 | global $wgLinkHolderBatchSize; |
— | — | @@ -190,6 +193,7 @@ |
191 | 194 | * article length checks (for stub links) to be bundled into a single query. |
192 | 195 | * |
193 | 196 | * @param $nt Title |
| 197 | + * @return string |
194 | 198 | */ |
195 | 199 | function makeHolder( $nt, $text = '', $query = array(), $trail = '', $prefix = '' ) { |
196 | 200 | wfProfileIn( __METHOD__ ); |
Index: trunk/phase3/includes/parser/Parser.php |
— | — | @@ -494,6 +494,7 @@ |
495 | 495 | /** |
496 | 496 | * Expand templates and variables in the text, producing valid, static wikitext. |
497 | 497 | * Also removes comments. |
| 498 | + * @return mixed|string |
498 | 499 | */ |
499 | 500 | function preprocess( $text, Title $title, ParserOptions $options, $revid = null ) { |
500 | 501 | wfProfileIn( __METHOD__ ); |
— | — | @@ -840,6 +841,7 @@ |
841 | 842 | * parse the wiki syntax used to render tables |
842 | 843 | * |
843 | 844 | * @private |
| 845 | + * @return string |
844 | 846 | */ |
845 | 847 | function doTableStuff( $text ) { |
846 | 848 | wfProfileIn( __METHOD__ ); |
— | — | @@ -3892,6 +3894,7 @@ |
3893 | 3895 | * @param $text String |
3894 | 3896 | * @param $origText String: original, untouched wikitext |
3895 | 3897 | * @param $isMain Boolean |
| 3898 | + * @return mixed|string |
3896 | 3899 | * @private |
3897 | 3900 | */ |
3898 | 3901 | function formatHeadings( $text, $origText, $isMain=true ) { |
— | — | @@ -4711,6 +4714,7 @@ |
4712 | 4715 | * Create a tag function, e.g. <test>some stuff</test>. |
4713 | 4716 | * Unlike tag hooks, tag functions are parsed at preprocessor level. |
4714 | 4717 | * Unlike parser functions, their content is not preprocessed. |
| 4718 | + * @return null |
4715 | 4719 | */ |
4716 | 4720 | function setFunctionTagHook( $tag, $callback, $flags ) { |
4717 | 4721 | $tag = strtolower( $tag ); |
Index: trunk/phase3/includes/parser/CoreParserFunctions.php |
— | — | @@ -154,6 +154,7 @@ |
155 | 155 | * @param $parser Parser object |
156 | 156 | * @param $s String: The text to encode. |
157 | 157 | * @param $arg String (optional): The type of encoding. |
| 158 | + * @return string |
158 | 159 | */ |
159 | 160 | static function urlencode( $parser, $s = '', $arg = null ) { |
160 | 161 | static $magicWords = null; |
— | — | @@ -418,6 +419,7 @@ |
419 | 420 | * corresponding magic word |
420 | 421 | * Note: function name changed to "mwnamespace" rather than "namespace" |
421 | 422 | * to not break PHP 5.3 |
| 423 | + * @return mixed|string |
422 | 424 | */ |
423 | 425 | static function mwnamespace( $parser, $title = null ) { |
424 | 426 | $t = Title::newFromText( $title ); |
— | — | @@ -459,6 +461,7 @@ |
460 | 462 | /** |
461 | 463 | * Functions to get and normalize pagenames, corresponding to the magic words |
462 | 464 | * of the same names |
| 465 | + * @return String |
463 | 466 | */ |
464 | 467 | static function pagename( $parser, $title = null ) { |
465 | 468 | $t = Title::newFromText( $title ); |
— | — | @@ -537,6 +540,7 @@ |
538 | 541 | * Return the number of pages in the given category, or 0 if it's nonexis- |
539 | 542 | * tent. This is an expensive parser function and can't be called too many |
540 | 543 | * times per page. |
| 544 | + * @return string |
541 | 545 | */ |
542 | 546 | static function pagesincategory( $parser, $name = '', $raw = null ) { |
543 | 547 | static $cache = array(); |
— | — | @@ -574,6 +578,7 @@ |
575 | 579 | * @param $parser Parser |
576 | 580 | * @param $page String TODO DOCUMENT (Default: empty string) |
577 | 581 | * @param $raw TODO DOCUMENT (Default: null) |
| 582 | + * @return string |
578 | 583 | */ |
579 | 584 | static function pagesize( $parser, $page = '', $raw = null ) { |
580 | 585 | static $cache = array(); |
— | — | @@ -603,7 +608,8 @@ |
604 | 609 | |
605 | 610 | /** |
606 | 611 | * Returns the requested protection level for the current page |
607 | | - */ |
| 612 | + * @return string |
| 613 | + */ |
608 | 614 | static function protectionlevel( $parser, $type = '' ) { |
609 | 615 | $restrictions = $parser->mTitle->getRestrictions( strtolower( $type ) ); |
610 | 616 | # Title::getRestrictions returns an array, its possible it may have |
— | — | @@ -634,6 +640,7 @@ |
635 | 641 | |
636 | 642 | /** |
637 | 643 | * Unicode-safe str_pad with the restriction that $length is forced to be <= 500 |
| 644 | + * @return string |
638 | 645 | */ |
639 | 646 | static function pad( $string, $length, $padding = '0', $direction = STR_PAD_RIGHT ) { |
640 | 647 | $lengthOfPadding = mb_strlen( $padding ); |
— | — | @@ -764,6 +771,7 @@ |
765 | 772 | |
766 | 773 | /** |
767 | 774 | * Parser function to extension tag adaptor |
| 775 | + * @return string |
768 | 776 | */ |
769 | 777 | public static function tagObj( $parser, $frame, $args ) { |
770 | 778 | if ( !count( $args ) ) { |
Index: trunk/phase3/includes/parser/DateFormatter.php |
— | — | @@ -122,6 +122,7 @@ |
123 | 123 | * @param $preference String: User preference |
124 | 124 | * @param $text String: Text to reformat |
125 | 125 | * @param $options Array: can contain 'linked' and/or 'match-whole' |
| 126 | + * @return mixed|String |
126 | 127 | */ |
127 | 128 | function reformat( $preference, $text, $options = array('linked') ) { |
128 | 129 | |
— | — | @@ -172,6 +173,7 @@ |
173 | 174 | |
174 | 175 | /** |
175 | 176 | * @param $matches |
| 177 | + * @return string |
176 | 178 | */ |
177 | 179 | function replace( $matches ) { |
178 | 180 | # Extract information from $matches |
— | — | @@ -282,6 +284,7 @@ |
283 | 285 | |
284 | 286 | /** |
285 | 287 | * @todo document |
| 288 | + * @return string |
286 | 289 | */ |
287 | 290 | function getMonthRegex() { |
288 | 291 | global $wgContLang; |
— | — | @@ -325,6 +328,7 @@ |
326 | 329 | |
327 | 330 | /** |
328 | 331 | * @todo document |
| 332 | + * @return int|string |
329 | 333 | */ |
330 | 334 | function makeNormalYear( $iso ) { |
331 | 335 | if ( $iso[0] == '-' ) { |
Index: trunk/phase3/includes/parser/ParserOptions.php |
— | — | @@ -428,6 +428,7 @@ |
429 | 429 | * Returns the full array of options that would have been used by |
430 | 430 | * in 1.16. |
431 | 431 | * Used to get the old parser cache entries when available. |
| 432 | + * @return array |
432 | 433 | */ |
433 | 434 | public static function legacyOptions() { |
434 | 435 | global $wgUseDynamicDates; |
Index: trunk/phase3/includes/parser/ParserOutput.php |
— | — | @@ -60,6 +60,7 @@ |
61 | 61 | * The value returned by getCacheExpiry is smaller or equal to the smallest number |
62 | 62 | * that was provided to a call of updateCacheExpiry(), and smaller or equal to the |
63 | 63 | * value of $wgParserCacheExpireTime. |
| 64 | + * @return int|mixed|null |
64 | 65 | */ |
65 | 66 | function getCacheExpiry() { |
66 | 67 | global $wgParserCacheExpireTime; |
— | — | @@ -166,6 +167,7 @@ |
167 | 168 | /** |
168 | 169 | * callback used by getText to replace editsection tokens |
169 | 170 | * @private |
| 171 | + * @return mixed |
170 | 172 | */ |
171 | 173 | function replaceEditSectionLinksCallback( $m ) { |
172 | 174 | global $wgOut, $wgLang; |
Index: trunk/phase3/includes/parser/ParserCache.php |
— | — | @@ -77,6 +77,7 @@ |
78 | 78 | * |
79 | 79 | * @param $article Article |
80 | 80 | * @param $popts ParserOptions |
| 81 | + * @return string |
81 | 82 | */ |
82 | 83 | function getETag( $article, $popts ) { |
83 | 84 | return 'W/"' . $this->getParserOutputKey( $article, |
— | — | @@ -104,6 +105,7 @@ |
105 | 106 | * |
106 | 107 | * @param $article Article |
107 | 108 | * @param $popts ParserOptions |
| 109 | + * @return bool|mixed|string |
108 | 110 | */ |
109 | 111 | public function getKey( $article, $popts, $useOutdated = true ) { |
110 | 112 | global $wgCacheEpoch; |
Index: trunk/phase3/includes/parser/Preprocessor_DOM.php |
— | — | @@ -1250,6 +1250,7 @@ |
1251 | 1251 | |
1252 | 1252 | /** |
1253 | 1253 | * Virtual implode with brackets |
| 1254 | + * @return array |
1254 | 1255 | */ |
1255 | 1256 | function virtualBracketedImplode( $start, $sep, $end /*, ... */ ) { |
1256 | 1257 | $args = array_slice( func_get_args(), 3 ); |
— | — | @@ -1674,6 +1675,7 @@ |
1675 | 1676 | |
1676 | 1677 | /** |
1677 | 1678 | * Split a <h> node |
| 1679 | + * @return array |
1678 | 1680 | */ |
1679 | 1681 | function splitHeading() { |
1680 | 1682 | if ( $this->getName() !== 'h' ) { |
Index: trunk/phase3/includes/Linker.php |
— | — | @@ -20,6 +20,7 @@ |
21 | 21 | * |
22 | 22 | * @param $class String: the contents of the class attribute; if an empty |
23 | 23 | * string is passed, which is the default value, defaults to 'external'. |
| 24 | + * @return string |
24 | 25 | * @deprecated since 1.18 Just pass the external class directly to something using Html::expandAttributes |
25 | 26 | */ |
26 | 27 | static function getExternalLinkAttributes( $class = 'external' ) { |
— | — | @@ -36,6 +37,7 @@ |
37 | 38 | * @param $unused String: unused |
38 | 39 | * @param $class String: the contents of the class attribute; if an empty |
39 | 40 | * string is passed, which is the default value, defaults to 'external'. |
| 41 | + * @return string |
40 | 42 | */ |
41 | 43 | static function getInterwikiLinkAttributes( $title, $unused = null, $class = 'external' ) { |
42 | 44 | global $wgContLang; |
— | — | @@ -57,6 +59,7 @@ |
58 | 60 | * not HTML-escaped |
59 | 61 | * @param $unused String: unused |
60 | 62 | * @param $class String: the contents of the class attribute, default none |
| 63 | + * @return string |
61 | 64 | */ |
62 | 65 | static function getInternalLinkAttributes( $title, $unused = null, $class = '' ) { |
63 | 66 | $title = urldecode( $title ); |
— | — | @@ -73,6 +76,7 @@ |
74 | 77 | * @param $class String: the contents of the class attribute, default none |
75 | 78 | * @param $title Mixed: optional (unescaped) string to use in the title |
76 | 79 | * attribute; if false, default to the name of the page we're linking to |
| 80 | + * @return string |
77 | 81 | */ |
78 | 82 | static function getInternalLinkAttributesObj( $nt, $unused = null, $class = '', $title = false ) { |
79 | 83 | if ( $title === false ) { |
— | — | @@ -229,6 +233,7 @@ |
230 | 234 | |
231 | 235 | /** |
232 | 236 | * Identical to link(), except $options defaults to 'known'. |
| 237 | + * @return string |
233 | 238 | */ |
234 | 239 | public static function linkKnown( |
235 | 240 | $target, $html = null, $customAttribs = array(), |
— | — | @@ -243,6 +248,7 @@ |
244 | 249 | * @param $target Title |
245 | 250 | * @param $query Array: query parameters |
246 | 251 | * @param $options Array |
| 252 | + * @return String |
247 | 253 | */ |
248 | 254 | private static function linkUrl( $target, $query, $options ) { |
249 | 255 | wfProfileIn( __METHOD__ ); |
— | — | @@ -641,6 +647,7 @@ |
642 | 648 | * @param $params Array |
643 | 649 | * @param $framed Boolean |
644 | 650 | * @param $manualthumb String |
| 651 | + * @return mixed |
645 | 652 | */ |
646 | 653 | public static function makeThumbLinkObj( Title $title, $file, $label = '', $alt, |
647 | 654 | $align = 'right', $params = array(), $framed = false , $manualthumb = "" ) |
— | — | @@ -893,6 +900,7 @@ |
894 | 901 | * @param $escape Boolean: do we escape the link text? |
895 | 902 | * @param $linktype String: type of external link. Gets added to the classes |
896 | 903 | * @param $attribs Array of extra attributes to <a> |
| 904 | + * @return string |
897 | 905 | */ |
898 | 906 | public static function makeExternalLink( $url, $text, $escape = true, $linktype = '', $attribs = array() ) { |
899 | 907 | $class = "external"; |
— | — | @@ -998,6 +1006,7 @@ |
999 | 1007 | * @param $userId Integer: user identifier |
1000 | 1008 | * @param $userText String: user name or IP address |
1001 | 1009 | * @param $edits Integer: user edit count (optional, for performance) |
| 1010 | + * @return String |
1002 | 1011 | */ |
1003 | 1012 | public static function userToolLinksRedContribs( $userId, $userText, $edits = null ) { |
1004 | 1013 | return self::userToolLinks( $userId, $userText, true, 0, $edits ); |
— | — | @@ -1096,6 +1105,7 @@ |
1097 | 1106 | * @param $comment String |
1098 | 1107 | * @param $title Mixed: Title object (to generate link to the section in autocomment) or null |
1099 | 1108 | * @param $local Boolean: whether section links should refer to local page |
| 1109 | + * @return mixed|String |
1100 | 1110 | */ |
1101 | 1111 | public static function formatComment( $comment, $title = null, $local = false ) { |
1102 | 1112 | wfProfileIn( __METHOD__ ); |
— | — | @@ -1474,6 +1484,7 @@ |
1475 | 1485 | * End a Table Of Contents line. |
1476 | 1486 | * tocUnindent() will be used instead if we're ending a line below |
1477 | 1487 | * the new level. |
| 1488 | + * @return string |
1478 | 1489 | */ |
1479 | 1490 | public static function tocLineEnd() { |
1480 | 1491 | return "</li>\n"; |
— | — | @@ -1552,6 +1563,7 @@ |
1553 | 1564 | /** |
1554 | 1565 | * Split a link trail, return the "inside" portion and the remainder of the trail |
1555 | 1566 | * as a two-element array |
| 1567 | + * @return array |
1556 | 1568 | */ |
1557 | 1569 | static function splitTrail( $trail ) { |
1558 | 1570 | global $wgContLang; |
— | — | @@ -1579,6 +1591,7 @@ |
1580 | 1592 | * other users. |
1581 | 1593 | * |
1582 | 1594 | * @param $rev Revision object |
| 1595 | + * @return string |
1583 | 1596 | */ |
1584 | 1597 | public static function generateRollback( $rev ) { |
1585 | 1598 | return '<span class="mw-rollback-link">[' |
— | — | @@ -1886,6 +1899,7 @@ |
1887 | 1900 | * @param $trail String: Optional trail. Alphabetic characters at the start of this string will |
1888 | 1901 | * be included in the link text. Other characters will be appended after |
1889 | 1902 | * the end of the link. |
| 1903 | + * @return string |
1890 | 1904 | */ |
1891 | 1905 | static function makeBrokenLink( $title, $text = '', $query = '', $trail = '' ) { |
1892 | 1906 | wfDeprecated( __METHOD__, '1.16' ); |
— | — | @@ -1914,6 +1928,7 @@ |
1915 | 1929 | * be included in the link text. Other characters will be appended after |
1916 | 1930 | * the end of the link. |
1917 | 1931 | * @param $prefix String: optional prefix. As trail, only before instead of after. |
| 1932 | + * @return string |
1918 | 1933 | */ |
1919 | 1934 | static function makeLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' ) { |
1920 | 1935 | # wfDeprecated( __METHOD__, '1.16' ); // See r105985 and it's revert. Somewhere still used. |
— | — | @@ -1983,6 +1998,7 @@ |
1984 | 1999 | * be included in the link text. Other characters will be appended after |
1985 | 2000 | * the end of the link. |
1986 | 2001 | * @param $prefix String: Optional prefix |
| 2002 | + * @return string |
1987 | 2003 | */ |
1988 | 2004 | static function makeBrokenLinkObj( $title, $text = '', $query = '', $trail = '', $prefix = '' ) { |
1989 | 2005 | wfDeprecated( __METHOD__, '1.16' ); |
— | — | @@ -2014,6 +2030,7 @@ |
2015 | 2031 | * be included in the link text. Other characters will be appended after |
2016 | 2032 | * the end of the link. |
2017 | 2033 | * @param $prefix String: Optional prefix |
| 2034 | + * @return string |
2018 | 2035 | */ |
2019 | 2036 | static function makeColouredLinkObj( $nt, $colour, $text = '', $query = '', $trail = '', $prefix = '' ) { |
2020 | 2037 | wfDeprecated( __METHOD__, '1.16' ); |
— | — | @@ -2028,6 +2045,7 @@ |
2029 | 2046 | |
2030 | 2047 | /** |
2031 | 2048 | * Returns the attributes for the tooltip and access key. |
| 2049 | + * @return array |
2032 | 2050 | */ |
2033 | 2051 | public static function tooltipAndAccesskeyAttribs( $name ) { |
2034 | 2052 | # @todo FIXME: If Sanitizer::expandAttributes() treated "false" as "output |
— | — | @@ -2048,6 +2066,7 @@ |
2049 | 2067 | |
2050 | 2068 | /** |
2051 | 2069 | * Returns raw bits of HTML, use titleAttrib() |
| 2070 | + * @return null|string |
2052 | 2071 | */ |
2053 | 2072 | public static function tooltip( $name, $options = null ) { |
2054 | 2073 | # @todo FIXME: If Sanitizer::expandAttributes() treated "false" as "output |
— | — | @@ -2074,6 +2093,7 @@ |
2075 | 2094 | * |
2076 | 2095 | * @param $fname String Name of called method |
2077 | 2096 | * @param $args Array Arguments to the method |
| 2097 | + * @return mixed |
2078 | 2098 | */ |
2079 | 2099 | public function __call( $fname, $args ) { |
2080 | 2100 | return call_user_func_array( array( 'Linker', $fname ), $args ); |
Index: trunk/phase3/includes/profiler/Profiler.php |
— | — | @@ -205,6 +205,7 @@ |
206 | 206 | |
207 | 207 | /** |
208 | 208 | * Returns a tree of function call instead of a list of functions |
| 209 | + * @return string |
209 | 210 | */ |
210 | 211 | function getCallTree() { |
211 | 212 | return implode( '', array_map( array( &$this, 'getCallTreeLine' ), $this->remapCallTree( $this->mStack ) ) ); |
— | — | @@ -214,6 +215,7 @@ |
215 | 216 | * Recursive function the format the current profiling array into a tree |
216 | 217 | * |
217 | 218 | * @param $stack array profiling array |
| 219 | + * @return array |
218 | 220 | */ |
219 | 221 | function remapCallTree( $stack ) { |
220 | 222 | if( count( $stack ) < 2 ){ |
— | — | @@ -252,6 +254,7 @@ |
253 | 255 | |
254 | 256 | /** |
255 | 257 | * Callback to get a formatted line for the call tree |
| 258 | + * @return string |
256 | 259 | */ |
257 | 260 | function getCallTreeLine( $entry ) { |
258 | 261 | list( $fname, $level, $start, /* $x */, $end) = $entry; |
— | — | @@ -494,6 +497,7 @@ |
495 | 498 | |
496 | 499 | /** |
497 | 500 | * Get the function name of the current profiling section |
| 501 | + * @return |
498 | 502 | */ |
499 | 503 | function getCurrentSection() { |
500 | 504 | $elt = end( $this->mWorkStack ); |
Index: trunk/phase3/includes/Init.php |
— | — | @@ -197,6 +197,7 @@ |
198 | 198 | * @param $methodName string |
199 | 199 | * @param $args array |
200 | 200 | * |
| 201 | + * @return mixed |
201 | 202 | */ |
202 | 203 | static function callStaticMethod( $className, $methodName, $args ) { |
203 | 204 | $r = new ReflectionMethod( $className, $methodName ); |
Index: trunk/phase3/includes/OutputPage.php |
— | — | @@ -2788,6 +2788,7 @@ |
2789 | 2789 | |
2790 | 2790 | /** |
2791 | 2791 | * JS stuff to put at the bottom of the <body> |
| 2792 | + * @return string |
2792 | 2793 | */ |
2793 | 2794 | function getBottomScripts() { |
2794 | 2795 | global $wgResourceLoaderExperimentalAsyncLoading; |
Index: trunk/phase3/includes/logging/LogPager.php |
— | — | @@ -131,6 +131,7 @@ |
132 | 132 | * Set the log reader to return only entries by the given user. |
133 | 133 | * |
134 | 134 | * @param $name String: (In)valid user name |
| 135 | + * @return bool |
135 | 136 | */ |
136 | 137 | private function limitPerformer( $name ) { |
137 | 138 | if( $name == '' ) { |
— | — | @@ -166,6 +167,7 @@ |
167 | 168 | * |
168 | 169 | * @param $page String or Title object: Title name |
169 | 170 | * @param $pattern String |
| 171 | + * @return bool |
170 | 172 | */ |
171 | 173 | private function limitTitle( $page, $pattern ) { |
172 | 174 | global $wgMiserMode; |
Index: trunk/phase3/includes/logging/LogEntry.php |
— | — | @@ -97,6 +97,7 @@ |
98 | 98 | /** |
99 | 99 | * Whether the parameters for this log are stored in new or |
100 | 100 | * old format. |
| 101 | + * @return bool |
101 | 102 | */ |
102 | 103 | public function isLegacy() { |
103 | 104 | return false; |
Index: trunk/phase3/includes/logging/LogFormatter.php |
— | — | @@ -272,6 +272,7 @@ |
273 | 273 | * Provides the name of the user who performed the log action. |
274 | 274 | * Used as part of log action message or standalone, depending |
275 | 275 | * which parts of the log entry has been hidden. |
| 276 | + * @return String |
276 | 277 | */ |
277 | 278 | public function getPerformerElement() { |
278 | 279 | if ( $this->canView( LogPage::DELETED_USER ) ) { |
Index: trunk/phase3/includes/installer/WebInstaller.php |
— | — | @@ -433,6 +433,7 @@ |
434 | 434 | * |
435 | 435 | * @param $name String |
436 | 436 | * @param $default |
| 437 | + * @return null |
437 | 438 | */ |
438 | 439 | public function getSession( $name, $default = null ) { |
439 | 440 | if ( !isset( $this->session[$name] ) ) { |
Index: trunk/phase3/includes/installer/PostgresUpdater.php |
— | — | @@ -23,6 +23,7 @@ |
24 | 24 | /** |
25 | 25 | * @todo FIXME: Postgres should use sequential updates like Mysql, Sqlite |
26 | 26 | * and everybody else. It never got refactored like it should've. |
| 27 | + * @return array |
27 | 28 | */ |
28 | 29 | protected function getCoreUpdateList() { |
29 | 30 | return array( |
Index: trunk/phase3/includes/installer/Installer.php |
— | — | @@ -672,6 +672,7 @@ |
673 | 673 | |
674 | 674 | /** |
675 | 675 | * Some versions of libxml+PHP break < and > encoding horribly |
| 676 | + * @return bool |
676 | 677 | */ |
677 | 678 | protected function envCheckBrokenXML() { |
678 | 679 | $test = new PhpXmlBugTester(); |
— | — | @@ -684,6 +685,7 @@ |
685 | 686 | /** |
686 | 687 | * Test PHP (probably 5.3.1, but it could regress again) to make sure that |
687 | 688 | * reference parameters to __call() are not converted to null |
| 689 | + * @return bool |
688 | 690 | */ |
689 | 691 | protected function envCheckPHP531() { |
690 | 692 | $test = new PhpRefCallBugTester; |
— | — | @@ -696,6 +698,7 @@ |
697 | 699 | |
698 | 700 | /** |
699 | 701 | * Environment check for magic_quotes_runtime. |
| 702 | + * @return bool |
700 | 703 | */ |
701 | 704 | protected function envCheckMagicQuotes() { |
702 | 705 | if( wfIniGetBool( "magic_quotes_runtime" ) ) { |
— | — | @@ -706,6 +709,7 @@ |
707 | 710 | |
708 | 711 | /** |
709 | 712 | * Environment check for magic_quotes_sybase. |
| 713 | + * @return bool |
710 | 714 | */ |
711 | 715 | protected function envCheckMagicSybase() { |
712 | 716 | if ( wfIniGetBool( 'magic_quotes_sybase' ) ) { |
— | — | @@ -716,6 +720,7 @@ |
717 | 721 | |
718 | 722 | /** |
719 | 723 | * Environment check for mbstring.func_overload. |
| 724 | + * @return bool |
720 | 725 | */ |
721 | 726 | protected function envCheckMbstring() { |
722 | 727 | if ( wfIniGetBool( 'mbstring.func_overload' ) ) { |
— | — | @@ -726,6 +731,7 @@ |
727 | 732 | |
728 | 733 | /** |
729 | 734 | * Environment check for zend.ze1_compatibility_mode. |
| 735 | + * @return bool |
730 | 736 | */ |
731 | 737 | protected function envCheckZE1() { |
732 | 738 | if ( wfIniGetBool( 'zend.ze1_compatibility_mode' ) ) { |
— | — | @@ -746,6 +752,7 @@ |
747 | 753 | |
748 | 754 | /** |
749 | 755 | * Environment check for the XML module. |
| 756 | + * @return bool |
750 | 757 | */ |
751 | 758 | protected function envCheckXML() { |
752 | 759 | if ( !function_exists( "utf8_encode" ) ) { |
— | — | @@ -756,6 +763,7 @@ |
757 | 764 | |
758 | 765 | /** |
759 | 766 | * Environment check for the PCRE module. |
| 767 | + * @return bool |
760 | 768 | */ |
761 | 769 | protected function envCheckPCRE() { |
762 | 770 | if ( !function_exists( 'preg_match' ) ) { |
— | — | @@ -773,6 +781,7 @@ |
774 | 782 | |
775 | 783 | /** |
776 | 784 | * Environment check for available memory. |
| 785 | + * @return bool |
777 | 786 | */ |
778 | 787 | protected function envCheckMemory() { |
779 | 788 | $limit = ini_get( 'memory_limit' ); |
— | — | @@ -846,6 +855,7 @@ |
847 | 856 | |
848 | 857 | /** |
849 | 858 | * Environment check for ImageMagick and GD. |
| 859 | + * @return bool |
850 | 860 | */ |
851 | 861 | protected function envCheckGraphics() { |
852 | 862 | $names = array( wfIsWindows() ? 'convert.exe' : 'convert' ); |
— | — | @@ -981,6 +991,7 @@ |
982 | 992 | |
983 | 993 | /** |
984 | 994 | * TODO: document |
| 995 | + * @return bool |
985 | 996 | */ |
986 | 997 | protected function envCheckUploadsDirectory() { |
987 | 998 | global $IP; |
— | — | @@ -1121,6 +1132,7 @@ |
1122 | 1133 | * |
1123 | 1134 | * If $versionInfo is not false, only executables with a version |
1124 | 1135 | * matching $versionInfo[1] will be returned. |
| 1136 | + * @return bool|string |
1125 | 1137 | */ |
1126 | 1138 | public static function locateExecutable( $path, $names, $versionInfo = false ) { |
1127 | 1139 | if ( !is_array( $names ) ) { |
— | — | @@ -1169,6 +1181,7 @@ |
1170 | 1182 | * Checks if scripts located in the given directory can be executed via the given URL. |
1171 | 1183 | * |
1172 | 1184 | * Used only by environment checks. |
| 1185 | + * @return bool|int|string |
1173 | 1186 | */ |
1174 | 1187 | public function dirIsExecutable( $dir, $url ) { |
1175 | 1188 | $scriptTypes = array( |
Index: trunk/phase3/includes/installer/DatabaseInstaller.php |
— | — | @@ -88,6 +88,7 @@ |
89 | 89 | * $this->parent can be assumed to be a WebInstaller. |
90 | 90 | * If the DB type has no settings beyond those already configured with |
91 | 91 | * getConnectForm(), this should return false. |
| 92 | + * @return bool |
92 | 93 | */ |
93 | 94 | public function getSettingsForm() { |
94 | 95 | return false; |
— | — | @@ -207,6 +208,7 @@ |
208 | 209 | /** |
209 | 210 | * Override this to provide DBMS-specific schema variables, to be |
210 | 211 | * substituted into tables.sql and other schema files. |
| 212 | + * @return array |
211 | 213 | */ |
212 | 214 | public function getSchemaVars() { |
213 | 215 | return array(); |
— | — | @@ -282,6 +284,7 @@ |
283 | 285 | |
284 | 286 | /** |
285 | 287 | * Get an array of MW configuration globals that will be configured by this class. |
| 288 | + * @return array |
286 | 289 | */ |
287 | 290 | public function getGlobalNames() { |
288 | 291 | return $this->globalNames; |
— | — | @@ -313,6 +316,7 @@ |
314 | 317 | |
315 | 318 | /** |
316 | 319 | * Get the internationalised name for this DBMS. |
| 320 | + * @return String |
317 | 321 | */ |
318 | 322 | public function getReadableName() { |
319 | 323 | return wfMsg( 'config-type-' . $this->getName() ); |
— | — | @@ -321,6 +325,7 @@ |
322 | 326 | /** |
323 | 327 | * Get a name=>value map of MW configuration globals that overrides. |
324 | 328 | * DefaultSettings.php |
| 329 | + * @return array |
325 | 330 | */ |
326 | 331 | public function getGlobalDefaults() { |
327 | 332 | return array(); |
— | — | @@ -328,6 +333,7 @@ |
329 | 334 | |
330 | 335 | /** |
331 | 336 | * Get a name=>value map of internal variables used during installation. |
| 337 | + * @return array |
332 | 338 | */ |
333 | 339 | public function getInternalDefaults() { |
334 | 340 | return $this->internalDefaults; |
— | — | @@ -439,6 +445,7 @@ |
440 | 446 | * values: List of allowed values (required) |
441 | 447 | * itemAttribs Array of attribute arrays, outer key is the value name (optional) |
442 | 448 | * |
| 449 | + * @return string |
443 | 450 | */ |
444 | 451 | public function getRadioSet( $params ) { |
445 | 452 | $params['controlName'] = $this->getName() . '_' . $params['var']; |
— | — | @@ -451,6 +458,7 @@ |
452 | 459 | * Assumes that variables containing "password" in the name are (potentially |
453 | 460 | * fake) passwords. |
454 | 461 | * @param $varNames Array |
| 462 | + * @return array |
455 | 463 | */ |
456 | 464 | public function setVarsFromRequest( $varNames ) { |
457 | 465 | return $this->parent->setVarsFromRequest( $varNames, $this->getName() . '_' ); |
— | — | @@ -494,6 +502,7 @@ |
495 | 503 | |
496 | 504 | /** |
497 | 505 | * Submit a standard install user fieldset. |
| 506 | + * @return Status |
498 | 507 | */ |
499 | 508 | public function submitInstallUserBox() { |
500 | 509 | $this->setVarsFromRequest( array( '_InstallUser', '_InstallPassword' ) ); |
Index: trunk/phase3/includes/installer/OracleInstaller.php |
— | — | @@ -241,6 +241,7 @@ |
242 | 242 | |
243 | 243 | /** |
244 | 244 | * Overload: after this action field info table has to be rebuilt |
| 245 | + * @return Status |
245 | 246 | */ |
246 | 247 | public function createTables() { |
247 | 248 | $this->setupSchemaVars(); |
Index: trunk/phase3/includes/installer/PostgresInstaller.php |
— | — | @@ -344,6 +344,7 @@ |
345 | 345 | /** |
346 | 346 | * Returns true if the install user is able to create objects owned |
347 | 347 | * by the web user, false otherwise. |
| 348 | + * @return bool |
348 | 349 | */ |
349 | 350 | protected function canCreateObjectsForWebUser() { |
350 | 351 | if ( $this->isSuperUser() ) { |
Index: trunk/phase3/includes/installer/WebInstallerPage.php |
— | — | @@ -36,6 +36,7 @@ |
37 | 37 | * Is this a slow-running page in the installer? If so, WebInstaller will |
38 | 38 | * set_time_limit(0) before calling execute(). Right now this only applies |
39 | 39 | * to Install and Upgrade pages |
| 40 | + * @return bool |
40 | 41 | */ |
41 | 42 | public function isSlow() { |
42 | 43 | return false; |
Index: trunk/phase3/includes/media/Exif.php |
— | — | @@ -549,6 +549,7 @@ |
550 | 550 | */ |
551 | 551 | /** |
552 | 552 | * Get $this->mRawExifData |
| 553 | + * @return array |
553 | 554 | */ |
554 | 555 | function getData() { |
555 | 556 | return $this->mRawExifData; |
Index: trunk/phase3/includes/media/SVGMetadataExtractor.php |
— | — | @@ -99,6 +99,7 @@ |
100 | 100 | |
101 | 101 | /** |
102 | 102 | * Read the SVG |
| 103 | + * @return bool |
103 | 104 | */ |
104 | 105 | public function read() { |
105 | 106 | $keepReading = $this->reader->read(); |
Index: trunk/phase3/includes/media/MediaTransformOutput.php |
— | — | @@ -80,6 +80,7 @@ |
81 | 81 | |
82 | 82 | /** |
83 | 83 | * This will be overridden to return true in error classes |
| 84 | + * @return bool |
84 | 85 | */ |
85 | 86 | public function isError() { |
86 | 87 | return false; |
Index: trunk/phase3/includes/media/DjVu.php |
— | — | @@ -191,6 +191,7 @@ |
192 | 192 | * Cache a document tree for the DjVu XML metadata |
193 | 193 | * @param $image File |
194 | 194 | * @param $gettext Boolean: DOCUMENT (Default: false) |
| 195 | + * @return bool |
195 | 196 | */ |
196 | 197 | function getMetaTree( $image , $gettext = false ) { |
197 | 198 | if ( isset( $image->dejaMetaTree ) ) { |
Index: trunk/phase3/includes/media/DjVuImage.php |
— | — | @@ -284,6 +284,7 @@ |
285 | 285 | |
286 | 286 | /** |
287 | 287 | * Hack to temporarily work around djvutoxml bug |
| 288 | + * @return bool|string |
288 | 289 | */ |
289 | 290 | function convertDumpToXML( $dump ) { |
290 | 291 | if ( strval( $dump ) == '' ) { |
Index: trunk/phase3/includes/media/Bitmap.php |
— | — | @@ -572,6 +572,7 @@ |
573 | 573 | /** |
574 | 574 | * Escape a string for ImageMagick's property input (e.g. -set -comment) |
575 | 575 | * See InterpretImageProperties() in magick/property.c |
| 576 | + * @return mixed|string |
576 | 577 | */ |
577 | 578 | function escapeMagickProperty( $s ) { |
578 | 579 | // Double the backslashes |
— | — | @@ -599,6 +600,7 @@ |
600 | 601 | * |
601 | 602 | * @param $path string The file path |
602 | 603 | * @param $scene string The scene specification, or false if there is none |
| 604 | + * @return string |
603 | 605 | */ |
604 | 606 | function escapeMagickInput( $path, $scene = false ) { |
605 | 607 | # Die on initial metacharacters (caller should prepend path) |
— | — | @@ -616,6 +618,7 @@ |
617 | 619 | /** |
618 | 620 | * Escape a string for ImageMagick's output filename. See |
619 | 621 | * InterpretImageFilename() in magick/image.c. |
| 622 | + * @return string |
620 | 623 | */ |
621 | 624 | function escapeMagickOutput( $path, $scene = false ) { |
622 | 625 | $path = str_replace( '%', '%%', $path ); |
— | — | @@ -628,6 +631,7 @@ |
629 | 632 | * |
630 | 633 | * @param $path string The file path |
631 | 634 | * @param $scene string The scene specification, or false if there is none |
| 635 | + * @return string |
632 | 636 | */ |
633 | 637 | protected function escapeMagickPath( $path, $scene = false ) { |
634 | 638 | # Die on format specifiers (other than drive letters). The regex is |
Index: trunk/phase3/includes/media/Generic.php |
— | — | @@ -160,6 +160,7 @@ |
161 | 161 | * MediaHandler::METADATA_GOOD for if the metadata is a-ok, |
162 | 162 | * MediaHanlder::METADATA_COMPATIBLE if metadata is old but backwards |
163 | 163 | * compatible (which may or may not trigger a metadata reload). |
| 164 | + * @return bool |
164 | 165 | */ |
165 | 166 | function isMetadataValid( $image, $metadata ) { |
166 | 167 | return self::METADATA_GOOD; |
— | — | @@ -173,6 +174,7 @@ |
174 | 175 | * Used when the repository has a thumbnailScriptUrl option configured. |
175 | 176 | * |
176 | 177 | * Return false to fall back to the regular getTransform(). |
| 178 | + * @return bool |
177 | 179 | */ |
178 | 180 | function getScriptedTransform( $image, $script, $params ) { |
179 | 181 | return false; |
— | — | @@ -186,6 +188,7 @@ |
187 | 189 | * @param $dstPath String: filesystem destination path |
188 | 190 | * @param $dstUrl String: Destination URL to use in output HTML |
189 | 191 | * @param $params Array: Arbitrary set of parameters validated by $this->validateParam() |
| 192 | + * @return \MediaTransformOutput |
190 | 193 | */ |
191 | 194 | final function getTransform( $image, $dstPath, $dstUrl, $params ) { |
192 | 195 | return $this->doTransform( $image, $dstPath, $dstUrl, $params, self::TRANSFORM_LATER ); |
— | — | @@ -227,27 +230,33 @@ |
228 | 231 | |
229 | 232 | /** |
230 | 233 | * True if the handled types can be transformed |
| 234 | + * @return bool |
231 | 235 | */ |
232 | 236 | function canRender( $file ) { return true; } |
233 | 237 | /** |
234 | 238 | * True if handled types cannot be displayed directly in a browser |
235 | 239 | * but can be rendered |
| 240 | + * @return bool |
236 | 241 | */ |
237 | 242 | function mustRender( $file ) { return false; } |
238 | 243 | /** |
239 | 244 | * True if the type has multi-page capabilities |
| 245 | + * @return bool |
240 | 246 | */ |
241 | 247 | function isMultiPage( $file ) { return false; } |
242 | 248 | /** |
243 | 249 | * Page count for a multi-page document, false if unsupported or unknown |
| 250 | + * @return bool |
244 | 251 | */ |
245 | 252 | function pageCount( $file ) { return false; } |
246 | 253 | /** |
247 | 254 | * The material is vectorized and thus scaling is lossless |
| 255 | + * @return bool |
248 | 256 | */ |
249 | 257 | function isVectorized( $file ) { return false; } |
250 | 258 | /** |
251 | 259 | * False if the handler is disabled for all files |
| 260 | + * @return bool |
252 | 261 | */ |
253 | 262 | function isEnabled() { return true; } |
254 | 263 | |
— | — | @@ -258,6 +267,7 @@ |
259 | 268 | * Returns false if unknown or if the document is not multi-page. |
260 | 269 | * |
261 | 270 | * @param $image File |
| 271 | + * @return array |
262 | 272 | */ |
263 | 273 | function getPageDimensions( $image, $page ) { |
264 | 274 | $gis = $this->getImageSize( $image, $image->getLocalRefPath() ); |
— | — | @@ -270,6 +280,7 @@ |
271 | 281 | /** |
272 | 282 | * Generic getter for text layer. |
273 | 283 | * Currently overloaded by PDF and DjVu handlers |
| 284 | + * @return bool |
274 | 285 | */ |
275 | 286 | function getPageText( $image, $page ) { |
276 | 287 | return false; |
— | — | @@ -300,6 +311,7 @@ |
301 | 312 | * all the formatting according to some standard. That makes it possible |
302 | 313 | * to do things like visual indication of grouped and chained streams |
303 | 314 | * in ogg container files. |
| 315 | + * @return bool |
304 | 316 | */ |
305 | 317 | function formatMetadata( $image ) { |
306 | 318 | return false; |
Index: trunk/phase3/includes/PoolCounter.php |
— | — | @@ -150,6 +150,7 @@ |
151 | 151 | |
152 | 152 | /** |
153 | 153 | * Do something with the error, like showing it to the user. |
| 154 | + * @return bool |
154 | 155 | */ |
155 | 156 | function error( $status ) { |
156 | 157 | return false; |
Index: trunk/phase3/includes/Namespace.php |
— | — | @@ -67,6 +67,7 @@ |
68 | 68 | /** |
69 | 69 | * @see self::isSubject |
70 | 70 | * @deprecated Please use the more consistently named isSubject (since 1.19) |
| 71 | + * @return bool |
71 | 72 | */ |
72 | 73 | public static function isMain( $index ) { |
73 | 74 | wfDeprecated( __METHOD__, '1.19' ); |
Index: trunk/phase3/includes/normal/UtfNormalTest2.php |
— | — | @@ -61,6 +61,7 @@ |
62 | 62 | * following functions to force pure PHP usage. I decided not to |
63 | 63 | * commit that code since might produce a slowdown in the UTF |
64 | 64 | * normalization code just for the sake of these tests. -- hexmode |
| 65 | + * @return string |
65 | 66 | */ |
66 | 67 | function normalize_form_c_php($c) { return UtfNormal::toNFC($c, "php"); } |
67 | 68 | function normalize_form_d_php($c) { return UtfNormal::toNFD($c, "php"); } |
Index: trunk/phase3/includes/normal/UtfNormal.php |
— | — | @@ -238,6 +238,7 @@ |
239 | 239 | * Returns true if the string is _definitely_ in NFC. |
240 | 240 | * Returns false if not or uncertain. |
241 | 241 | * @param $string String: a UTF-8 string, altered on output to be valid UTF-8 safe for XML. |
| 242 | + * @return bool |
242 | 243 | */ |
243 | 244 | static function quickIsNFCVerify( &$string ) { |
244 | 245 | # Screen out some characters that eg won't be allowed in XML |
Index: trunk/phase3/includes/normal/UtfNormalTest.php |
— | — | @@ -37,6 +37,7 @@ |
38 | 38 | } else { |
39 | 39 | /** |
40 | 40 | * @ignore |
| 41 | + * @return string |
41 | 42 | */ |
42 | 43 | function pretty( $string ) { |
43 | 44 | return trim( preg_replace( '/(.)/use', |