? 091118_MDL20821_19patch.txt ? config.php ? lib/bennu/readme_moodle.txt ? lib/excel/readme_moodle.txt ? lib/fpdf/readme_moodle.txt ? lib/geoip/readme_moodle.txt ? lib/soap/README_MOODLE.txt ? lib/tcpdf/README_MOODLE.txt ? lib/typo3/README_MOODLE.txt ? lib/xmldb/README_MOODLE.txt Index: admin/fixuserpix.php =================================================================== RCS file: /cvsroot/moodle/moodle/admin/Attic/fixuserpix.php,v retrieving revision 1.1.2.1 diff -u -r1.1.2.1 fixuserpix.php --- admin/fixuserpix.php 12 May 2009 07:46:08 -0000 1.1.2.1 +++ admin/fixuserpix.php 18 Nov 2009 07:27:04 -0000 @@ -252,9 +252,9 @@ function arguments($argv) { $_ARG = array(); foreach ($argv as $arg) { - if (ereg('--?([^=]+)=(.*)',$arg,$reg)) { + if (preg_match('/--?([^=]+)=(.*)/',$arg,$reg)) { $_ARG[$reg[1]] = $reg[2]; - } elseif(ereg('-([a-zA-Z0-9]+)',$arg,$reg)) { + } elseif(preg_match('/-([a-zA-Z0-9]+)/',$arg,$reg)) { $_ARG[$reg[1]] = 'true'; } } Index: admin/uploaduser.php =================================================================== RCS file: /cvsroot/moodle/moodle/admin/uploaduser.php,v retrieving revision 1.68.2.15 diff -u -r1.68.2.15 uploaduser.php --- admin/uploaduser.php 13 May 2009 05:35:38 -0000 1.68.2.15 +++ admin/uploaduser.php 18 Nov 2009 07:27:05 -0000 @@ -260,7 +260,7 @@ // normalize username $user->username = $textlib->strtolower($user->username); if (empty($CFG->extendedusernamechars)) { - $user->username = eregi_replace('[^(-\.[:alnum:])]', '', $user->username); + $user->username = preg_replace('/[^(-\.[:alnum:])]/i', '', $user->username); } if (empty($user->username)) { $upt->track('status', get_string('missingfield', 'error', 'username'), 'error'); Index: admin/mnet/MethodTable.php =================================================================== RCS file: /cvsroot/moodle/moodle/admin/mnet/MethodTable.php,v retrieving revision 1.1 diff -u -r1.1 MethodTable.php --- admin/mnet/MethodTable.php 4 Jan 2007 02:33:51 -0000 1.1 +++ admin/mnet/MethodTable.php 18 Nov 2009 07:27:05 -0000 @@ -465,15 +465,15 @@ $word0 = strtolower($word0); $word1 = strtolower($word1); - $wordBase0 = ereg_replace('^[&$]+','',$word0); - $wordBase1 = ereg_replace('^[&$]+','',$word1); - $startBase = strtolower(ereg_replace('^[&$]+','',$start)); + $wordBase0 = preg_replace('/^[&$]+/','',$word0); + $wordBase1 = preg_replace('/^[&$]+/','',$word1); + $startBase = strtolower(preg_replace('/^[&$]+/','',$start)); if ($wordBase0 == $startBase) { $type = str_replace(array('(',')'),'', $word1); } elseif($wordBase1 == $startBase) { $type = str_replace(array('(',')'),'', $word0); - } elseif( ereg('(^[&$]+)|(\()([a-z0-9]+)(\)$)', $word0, $regs) ) { + } elseif( preg_match('/(^[&$]+)|(\()([a-z0-9]+)(\)$)/', $word0, $regs) ) { $tail = str_ireplace($word0, '', $end); $type = $regs[3]; } else { @@ -535,7 +535,7 @@ $comment = str_replace("*/", "", $comment); $comment = str_replace("*", "", $comment); $comment = str_replace("\n", "\\n", trim($comment)); - $comment = eregi_replace("[\r\t\n ]+", " ", trim($comment)); + $comment = preg_replace("/[\r\t\n ]+/i", " ", trim($comment)); $comment = str_replace("\"", "\\\"", $comment); return $comment; } Index: auth/shibboleth/auth.php =================================================================== RCS file: /cvsroot/moodle/moodle/auth/shibboleth/auth.php,v retrieving revision 1.13.2.9 diff -u -r1.13.2.9 auth.php --- auth/shibboleth/auth.php 18 Mar 2009 13:26:31 -0000 1.13.2.9 +++ auth/shibboleth/auth.php 18 Nov 2009 07:27:10 -0000 @@ -63,7 +63,7 @@ } else { // Try to find out using the user's cookie foreach ($_COOKIE as $name => $value){ - if (eregi('_shibsession_', $name)){ + if (preg_match('/_shibsession_/i', $name)){ $sessionkey = $value; } } Index: auth/shibboleth/logout.php =================================================================== RCS file: /cvsroot/moodle/moodle/auth/shibboleth/logout.php,v retrieving revision 1.1.2.2 diff -u -r1.1.2.2 logout.php --- auth/shibboleth/logout.php 18 Mar 2009 13:26:31 -0000 1.1.2.2 +++ auth/shibboleth/logout.php 18 Nov 2009 07:27:10 -0000 @@ -139,7 +139,7 @@ while (($file = readdir($dh)) !== false) { // Check if it is a file if (is_file($dir.'/'.$file)){ - $session_key = ereg_replace('sess_', '', $file); + $session_key = preg_replace('/sess_/', '', $file); // Read session file data $data = file($dir.'/'.$file); Index: calendar/lib.php =================================================================== RCS file: /cvsroot/moodle/moodle/calendar/lib.php,v retrieving revision 1.206.2.13 diff -u -r1.206.2.13 lib.php --- calendar/lib.php 30 Apr 2008 04:45:23 -0000 1.206.2.13 +++ calendar/lib.php 18 Nov 2009 07:27:14 -0000 @@ -766,8 +766,8 @@ $text = get_string('strftimedaydate'); /* // Regexp hackery to make a link out of the month/year part - $text = ereg_replace('(%B.+%Y|%Y.+%B|%Y.+%m[^ ]+)', '\\1', $text); - $text = ereg_replace('(F.+Y|Y.+F|Y.+m[^ ]+)', '\\1', $text); + $text = preg_replace('/(%B.+%Y|%Y.+%B|%Y.+%m[^ ]+)/', '\\1', $text); + $text = preg_replace('/(F.+Y|Y.+F|Y.+m[^ ]+)/', '\\1', $text); */ // Replace with actual values and lose any day leading zero $text = userdate($time, $text); Index: enrol/authorize/enrol_form.php =================================================================== RCS file: /cvsroot/moodle/moodle/enrol/authorize/enrol_form.php,v retrieving revision 1.16.2.5 diff -u -r1.16.2.5 enrol_form.php --- enrol/authorize/enrol_form.php 26 Sep 2009 16:28:53 -0000 1.16.2.5 +++ enrol/authorize/enrol_form.php 18 Nov 2009 07:27:21 -0000 @@ -246,7 +246,7 @@ function validate_aba($aba) { - if (ereg("^[0-9]{9}$", $aba)) { + if (preg_match("/^[0-9]{9}$/", $aba)) { $n = 0; for($i = 0; $i < 9; $i += 3) { $n += (substr($aba, $i, 1) * 3) + (substr($aba, $i + 1, 1) * 7) + (substr($aba, $i + 2, 1)); @@ -276,45 +276,45 @@ $GoodCard = true; // Get rid of any non-digits - $Num = ereg_replace("[^0-9]", "", $Num); + $Num = preg_replace("/[^0-9]/", "", $Num); // Perform card-specific checks, if applicable switch ($Name) { case "mcd" : - $GoodCard = ereg("^5[1-5].{14}$", $Num); + $GoodCard = preg_match("/^5[1-5].{14}$/", $Num); break; case "vis" : - $GoodCard = ereg("^4.{15}$|^4.{12}$", $Num); + $GoodCard = preg_match("/^4.{15}$|^4.{12}$/", $Num); break; case "amx" : - $GoodCard = ereg("^3[47].{13}$", $Num); + $GoodCard = preg_match("/^3[47].{13}$/", $Num); break; case "dsc" : - $GoodCard = ereg("^6011.{12}$", $Num); + $GoodCard = preg_match("/^6011.{12}$/", $Num); break; case "dnc" : - $GoodCard = ereg("^30[0-5].{11}$|^3[68].{12}$", $Num); + $GoodCard = preg_match("/^30[0-5].{11}$|^3[68].{12}$/", $Num); break; case "jcb" : - $GoodCard = ereg("^3.{15}$|^2131|1800.{11}$", $Num); + $GoodCard = preg_match("/^3.{15}$|^2131|1800.{11}$/", $Num); break; case "dlt" : - $GoodCard = ereg("^4.{15}$", $Num); + $GoodCard = preg_match("/^4.{15}$/", $Num); break; case "swi" : - $GoodCard = ereg("^[456].{15}$|^[456].{17,18}$", $Num); + $GoodCard = preg_match("/^[456].{15}$|^[456].{17,18}$/", $Num); break; case "enr" : - $GoodCard = ereg("^2014.{11}$|^2149.{11}$", $Num); + $GoodCard = preg_match("/^2014.{11}$|^2149.{11}$/", $Num); break; } Index: filter/tex/filter.php =================================================================== RCS file: /cvsroot/moodle/moodle/filter/tex/filter.php,v retrieving revision 1.18.4.6 diff -u -r1.18.4.6 filter.php --- filter/tex/filter.php 31 Mar 2009 10:23:54 -0000 1.18.4.6 +++ filter/tex/filter.php 18 Nov 2009 07:27:23 -0000 @@ -146,7 +146,7 @@ $texexp = str_replace('','',$texexp); $texexp = str_replace('','',$texexp); $texexp = str_replace('','',$texexp); - $texexp = eregi_replace("", '', $texexp); //dlnsk + $texexp = preg_replace("##i", '', $texexp); //dlnsk $align = "middle"; if (preg_match('/^align=bottom /',$texexp)) { $align = "text-bottom"; Index: lib/blocklib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/blocklib.php,v retrieving revision 1.129.2.7 diff -u -r1.129.2.7 blocklib.php --- lib/blocklib.php 12 Jan 2009 06:03:10 -0000 1.129.2.7 +++ lib/blocklib.php 18 Nov 2009 07:27:55 -0000 @@ -173,8 +173,8 @@ $depth = -1; if ($formats = block_method_result($name, 'applicable_formats')) { foreach($formats as $format => $allowed) { - $thisformat = '^'.str_replace('*', '[^-]*', $format).'.*$'; - if(ereg($thisformat, $pageformat)) { + $thisformat = '/^'.str_replace('*', '[^-]*', $format).'.*$/'; + if(preg_match($thisformat, $pageformat)) { if(($scount = substr_count($format, '-')) > $depth) { $depth = $scount; $accept = $allowed; Index: lib/deprecatedlib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/deprecatedlib.php,v retrieving revision 1.41.2.12 diff -u -r1.41.2.12 deprecatedlib.php --- lib/deprecatedlib.php 4 May 2009 20:24:45 -0000 1.41.2.12 +++ lib/deprecatedlib.php 18 Nov 2009 07:28:04 -0000 @@ -1001,7 +1001,7 @@ if (substr_count($string, '..') > $allowdots) { // Sometimes we allow dots in references return true; } - if (ereg('[\|\`]', $string)) { // check for other bad characters + if (preg_match('/[\|\`]/i', $string)) { // check for other bad characters return true; } if (empty($string) or $string == '/') { Index: lib/filelib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/filelib.php,v retrieving revision 1.50.2.29 diff -u -r1.50.2.29 filelib.php --- lib/filelib.php 28 Jul 2009 16:41:58 -0000 1.50.2.29 +++ lib/filelib.php 18 Nov 2009 07:28:05 -0000 @@ -496,7 +496,7 @@ $mimeinfo = get_mimetypes_array(); } - if (eregi('\.([a-z0-9]+)$', $filename, $match)) { + if (preg_match('/\.([a-z0-9]+)$/i', $filename, $match)) { if (isset($mimeinfo[strtolower($match[1])][$element])) { return $mimeinfo[strtolower($match[1])][$element]; } else { Index: lib/moodlelib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/moodlelib.php,v retrieving revision 1.960.2.145 diff -u -r1.960.2.145 moodlelib.php --- lib/moodlelib.php 18 Nov 2009 00:22:44 -0000 1.960.2.145 +++ lib/moodlelib.php 18 Nov 2009 07:28:10 -0000 @@ -418,16 +418,16 @@ return (float)$param; // Convert to integer case PARAM_ALPHA: // Remove everything not a-z - return eregi_replace('[^a-zA-Z]', '', $param); + return preg_replace('/[^a-zA-Z]/i', '', $param); case PARAM_ALPHANUM: // Remove everything not a-zA-Z0-9 - return eregi_replace('[^A-Za-z0-9]', '', $param); + return preg_replace('/[^A-Za-z0-9]/i', '', $param); case PARAM_ALPHAEXT: // Remove everything not a-zA-Z/_- - return eregi_replace('[^a-zA-Z/_-]', '', $param); + return preg_replace('/[^a-zA-Z/_-]/i', '', $param); case PARAM_SEQUENCE: // Remove everything not 0-9, - return eregi_replace('[^0-9,]', '', $param); + return preg_replace('/[^0-9,]/i', '', $param); case PARAM_BOOL: // Convert to 1 or 0 $tempstr = strtolower($param); @@ -447,14 +447,14 @@ return clean_param(strip_tags($param, ''), PARAM_CLEAN); case PARAM_SAFEDIR: // Remove everything not a-zA-Z0-9_- - return eregi_replace('[^a-zA-Z0-9_-]', '', $param); + return preg_replace('/[^a-zA-Z0-9_-]/i', '', $param); case PARAM_CLEANFILE: // allow only safe characters return clean_filename($param); case PARAM_FILE: // Strip all suspicious characters from filename - $param = ereg_replace('[[:cntrl:]]|[<>"`\|\':\\/]', '', $param); - $param = ereg_replace('\.\.+', '', $param); + $param = preg_replace('/[[:cntrl:]]|[\/<>\"`|\':\\\\]/', '', $param); + $param = preg_replace('/\.\./', '', $param);//remove double full stops if($param == '.') { $param = ''; } @@ -464,10 +464,10 @@ $param = str_replace('\\\'', '\'', $param); $param = str_replace('\\"', '"', $param); $param = str_replace('\\', '/', $param); - $param = ereg_replace('[[:cntrl:]]|[<>"`\|\':]', '', $param); - $param = ereg_replace('\.\.+', '', $param); - $param = ereg_replace('//+', '/', $param); - return ereg_replace('/(\./)+', '/', $param); + $param = preg_replace('#[[:cntrl:]]|[<>"`\|\':]#', '', $param); + $param = preg_replace('#\.\.+#', '', $param); + $param = preg_replace('#//+#', '/', $param); + return preg_replace('#/(\./)+#', '/', $param); case PARAM_HOST: // allow FQDN or IPv4 dotted quad $param = preg_replace('/[^\.\d\w-]/','', $param ); // only allowed chars @@ -4310,7 +4310,7 @@ } if ($attachment && $attachname) { - if (ereg( "\\.\\." ,$attachment )) { // Security check for ".." in dir path + if (preg_match( "/\\.\\./" ,$attachment )) { // Security check for ".." in dir path $mail->AddAddress($supportuser->email, fullname($supportuser, true) ); $mail->AddStringAttachment('Error in attachment. User attempted to attach a filename with a unsafe name.', 'error.txt', '8bit', 'text/plain'); } else { @@ -4734,7 +4734,7 @@ function make_user_directory($userid, $test=false) { global $CFG; - if (is_bool($userid) || $userid < 0 || !ereg('^[0-9]{1,10}$', $userid) || $userid > 2147483647) { + if (is_bool($userid) || $userid < 0 || !preg_match('/^[0-9]{1,10}$/', $userid) || $userid > 2147483647) { if (!$test) { notify("Given userid was not a valid integer! (" . gettype($userid) . " $userid)"); } @@ -6823,7 +6823,7 @@ $textlib = textlib_get_instance(); $string = strip_tags($string); // Tags are out now - $string = ereg_replace('[[:space:]]*','',$string); //Whitespace are out now + $string = preg_replace('/[[:space:]]*/','',$string); //Whitespace are out now return $textlib->strlen($string); } @@ -7736,11 +7736,11 @@ //This function is used as callback in unzip_file() function //to clean illegal characters for given platform and to prevent directory traversal. //Produces the same result as info-zip unzip. - $p_header['filename'] = ereg_replace('[[:cntrl:]]', '', $p_header['filename']); //strip control chars first! - $p_header['filename'] = ereg_replace('\.\.+', '', $p_header['filename']); //directory traversal protection + $p_header['filename'] = preg_replace('/[[:cntrl:]]/', '', $p_header['filename']); //strip control chars first! + $p_header['filename'] = preg_replace('#\.\.+#', '', $p_header['filename']); //directory traversal protection if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - $p_header['filename'] = ereg_replace('[:*"?<>|]', '_', $p_header['filename']); //replace illegal chars - $p_header['filename'] = ereg_replace('^([a-zA-Z])_', '\1:', $p_header['filename']); //repair drive letter + $p_header['filename'] = preg_replace('/[:*"?<>|]/', '_', $p_header['filename']); //replace illegal chars + $p_header['filename'] = preg_replace('/^([a-zA-Z])_/', '\1:', $p_header['filename']); //repair drive letter } else { //Add filtering for other systems here // BSD: none (tested) Index: lib/validateurlsyntax.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/validateurlsyntax.php,v retrieving revision 1.4.2.2 diff -u -r1.4.2.2 validateurlsyntax.php --- lib/validateurlsyntax.php 30 Oct 2007 10:15:27 -0000 1.4.2.2 +++ lib/validateurlsyntax.php 18 Nov 2009 07:28:10 -0000 @@ -174,7 +174,7 @@ // $options = strtolower($options); // Check Options Parameter - if (!ereg( '^([sHSEFuPaIpfqr][+?-])*$', $options )) + if (!preg_match( '/^([sHSEFuPaIpfqr][+?-])*$/', $options )) { trigger_error("Options attribute malformed", E_USER_ERROR); } @@ -305,17 +305,18 @@ $querystring = '(\?(' . $reserved . '|' . $unreserved . '|' . $escaped . ')*)' . $aOptions['q']; // Fragment Section - Accepts anchors such as #top - $fragment = '(#(' . $reserved . '|' . $unreserved . '|' . $escaped . ')*)' . $aOptions['r']; + $fragment = '(\#(' . $reserved . '|' . $unreserved . '|' . $escaped . ')*)' . $aOptions['r']; // Building Regular Expression - $regexp = '^' . $scheme . $userinfo . $address . $port_number . $path . $querystring . $fragment . '$'; + $regexp = '#^' . $scheme . $userinfo . $address . $port_number . $path . $querystring . $fragment . '$' . '#i'; + //die($regexp); // DEBUGGING - Uncomment Line Below To Display The Regular Expression Built // echo '
' . htmlentities(wordwrap($regexp,70,"\n",1)) . '
'; // Running the regular expression - if (eregi( $regexp, $urladdr )) + if (preg_match( $regexp, $urladdr )) { return true; // The domain passed } @@ -377,7 +378,7 @@ function validateEmailSyntax( $emailaddr, $options="" ){ // Check Options Parameter - if (!ereg( '^([sHSEFuPaIpfqr][+?-])*$', $options )) + if (!preg_match( '/^([sHSEFuPaIpfqr][+?-])*$/', $options )) { trigger_error("Options attribute malformed", E_USER_ERROR); } @@ -483,7 +484,7 @@ function validateFtpSyntax( $ftpaddr, $options="" ){ // Check Options Parameter - if (!ereg( '^([sHSEFuPaIpfqr][+?-])*$', $options )) + if (!preg_match( '/^([sHSEFuPaIpfqr][+?-])*$/', $options )) { trigger_error("Options attribute malformed", E_USER_ERROR); } Index: lib/weblib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/weblib.php,v retrieving revision 1.970.2.145 diff -u -r1.970.2.145 weblib.php --- lib/weblib.php 17 Nov 2009 03:10:13 -0000 1.970.2.145 +++ lib/weblib.php 18 Nov 2009 07:28:14 -0000 @@ -1355,11 +1355,11 @@ */ function validate_email($address) { - return (ereg('^[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+'. - '(\.[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+)*'. + return (validate_email('#^[-!\#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+'. + '(\.[-!\#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+)*'. '@'. - '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'. - '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', + '[-!\#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'. + '[-!\#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$#', $address)); } @@ -1791,7 +1791,7 @@ $text = wiki_to_html($text); /// This expression turns links into something nice in a text format. (Russell Jungwirth) /// From: http://php.net/manual/en/function.eregi-replace.php and simplified - $text = eregi_replace('(]*>([^<]*))','\\3 [ \\2 ]', $text); + $text = preg_replace('/(]*>([^<]*))/i','\\3 [ \\2 ]', $text); return strtr(strip_tags($text), array_flip(get_html_translation_table(HTML_ENTITIES))); break; @@ -1802,7 +1802,7 @@ case FORMAT_MOODLE: case FORMAT_MARKDOWN: default: - $text = eregi_replace('(]*>([^<]*))','\\3 [ \\2 ]', $text); + $text = preg_replace('/(]*>([^<]*))/i','\\3 [ \\2 ]', $text); return strtr(strip_tags($text), array_flip(get_html_translation_table(HTML_ENTITIES))); break; } @@ -2038,8 +2038,8 @@ } /// Remove potential script events - some extra protection for undiscovered bugs in our code - $text = eregi_replace("([^a-z])language([[:space:]]*)=", "\\1Xlanguage=", $text); - $text = eregi_replace("([^a-z])on([a-z]+)([[:space:]]*)=", "\\1Xon\\2=", $text); + $text = preg_replace("/([^a-z])language([[:space:]]*)=/i", "\\1Xlanguage=", $text); + $text = preg_replace("/([^a-z])on([a-z]+)([[:space:]]*)=/i", "\\1Xon\\2=", $text); return $text; } @@ -2238,11 +2238,11 @@ global $CFG; /// Remove any whitespace that may be between HTML tags - $text = eregi_replace(">([[:space:]]+)<", "><", $text); + $text = preg_replace("/>([[:space:]]+)<", $text); /// Remove any returns that precede or follow HTML tags - $text = eregi_replace("([\n\r])<", " <", $text); - $text = eregi_replace(">([\n\r])", "> ", $text); + $text = preg_replace("/([\n\r])([\n\r])/i", "> ", $text); convert_urls_into_links($text); @@ -2305,11 +2305,11 @@ */ function convert_urls_into_links(&$text) { /// Make lone URLs into links. eg http://moodle.com/ - $text = eregi_replace("([[:space:]]|^|\(|\[)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", + $text = preg_replace("#([[:space:]]|^|\(|\[)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]\#?/&=])#i", "\\1\\2://\\3\\4", $text); /// eg www.moodle.com - $text = eregi_replace("([[:space:]]|^|\(|\[)www\.([^[:space:]]*)([[:alnum:]#?/&=])", + $text = preg_replace("#([[:space:]]|^|\(|\[)www\.([^[:space:]]*)([[:alnum:]\#?/&=])#i", "\\1www.\\2\\3", $text); } Index: lib/wiki_to_markdown.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/wiki_to_markdown.php,v retrieving revision 1.11.18.1 diff -u -r1.11.18.1 wiki_to_markdown.php --- lib/wiki_to_markdown.php 10 Jul 2008 09:48:45 -0000 1.11.18.1 +++ lib/wiki_to_markdown.php 18 Nov 2009 07:28:14 -0000 @@ -59,14 +59,14 @@ // BODGE: replace inline $mark characters in places where we want them ignored // they will be put back after main substitutue, stops problems with eg, and/or $bodge = chr(1); - $line = eregi_replace( '([[:alnum:]])'.$mark.'([[:alnum:]])', '\\1'.$bodge.'\\2',$line ); + $line = preg_replace( '/([[:alnum:]])'.$mark.'([[:alnum:]])/i', '\\1'.$bodge.'\\2',$line ); - $regex = '(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)'; + $regex = '/(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)/i'; $replace = '\\1<'.$tag.'>\\2\\3'; - $line = eregi_replace( $regex, $replace, $line ); + $line = preg_replace( $regex, $replace, $line ); // BODGE: back we go - $line = eregi_replace( $bodge, $mark, $line ); + $line = preg_replace( '/'.$bodge.'/i', $mark, $line ); return $line; } @@ -80,14 +80,14 @@ // BODGE: replace inline $mark characters in places where we want them ignored // they will be put back after main substitutue, stops problems with eg, and/or $bodge = chr(1); - $line = eregi_replace( '([[:alnum:]])'.$mark.'([[:alnum:]])', '\\1'.$bodge.'\\2',$line ); + $line = preg_replace( '/([[:alnum:]])'.$mark.'([[:alnum:]])/i', '\\1'.$bodge.'\\2',$line ); - $regex = '(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)'; + $regex = '/(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)/i'; $replace = '\\1'.$tag.'\\2'.$tag.'\\3'; - $line = eregi_replace( $regex, $replace, $line ); + $line = preg_replace( $regex, $replace, $line ); // BODGE: back we go - $line = eregi_replace( $bodge, $mark, $line ); + $line = preg_replace( '/'.$bodge.'/i', $mark, $line ); return $line; } @@ -97,10 +97,10 @@ // do regex for subscript and superscript (slightly different) // $mark is the magic character and $tag the HTML tag to insert - $regex = $mark.'([^'.$mark.']*)'.$mark; + $regex = '/'.$mark.'([^'.$mark.']*)'.$mark.'/i'; $replace = '<'.$tag.'>\\1'; - return eregi_replace( $regex, $replace, $line ); + return preg_replace( $regex, $replace, $line ); } function do_list( $line, $blank=false ) { @@ -115,7 +115,7 @@ else { $listchar = $line{0}; $count = strspn( $line, $listchar ); - $line = eregi_replace( "^[".$listchar."]+ ", "", $line ); + $line = preg_replace( "/^[".$listchar."]+ /i", "", $line ); } // find what sort of list this character represents @@ -198,7 +198,7 @@ // MARKDOWN: no change so leave // is this a list line (starts with * # ; :) - if (eregi( "^([*]+|[#]+|[;]+|[:]+) ", $line )) { + if (preg_match( "/^([*]+|[#]+|[;]+|[:]+) /i", $line )) { $line = $this->do_list( $line ); } @@ -215,7 +215,7 @@ $line = str_replace( "1/4", "¼", $line ); $line = str_replace( "1/2", "½", $line ); $line = str_replace( "3/4", "¾", $line ); - $line = eregi_replace( "([[:digit:]]+[[:space:]]*)x([[:space:]]*[[:digit:]]+)", "\\1×\\2", $line ); // (digits) x (digits) - multiply + $line = preg_replace( "/([[:digit:]]+[[:space:]]*)x([[:space:]]*[[:digit:]]+)/i", "\\1×\\2", $line ); // (digits) x (digits) - multiply // do formatting tags // NOTE: The / replacement *has* to be first, or it will screw the // HTML tags that are added by the other ones @@ -231,48 +231,48 @@ // convert urls into proper link with optional link text URL(text) // MARDOWN: HTML conversion should work fine - $line = eregi_replace("([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])\(([^)]+)\)", + $line = preg_replace("#([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]\#?/&=])\(([^)]+)\)#i", "\\1[\\5](\\2://\\3\\4)", $line); - $line = eregi_replace("([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?/&=])\(([^)]+)\)", + $line = preg_replace("/([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?\/&=])\(([^)]+)\)/i", "\\1[\\5](http://www.\\2\\3)", $line); // make urls (with and without httpd) into proper links - $line = eregi_replace("([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", + $line = preg_replace("#([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]\#?/&=])#i", "\\1<\\2://\\3\\4>", $line); - $line = eregi_replace("([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?/&=])", + $line = preg_replace("/([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?/&=])/i", "\\1", $line); // make email addresses into mailtos.... // MARKDOWN doesn't quite support this, so do as html - $line = eregi_replace("([[:space:]]|^)([[:alnum:]._-]+@[[:alnum:]._-]+)\(([^)]+)\)", + $line = preg_replace("/([[:space:]]|^)([[:alnum:]._-]+@[[:alnum:]._-]+)\(([^)]+)\)/i", "\\1\\3", $line); // !# at the beginning of any lines means a heading // MARKDOWN: value (1-6) becomes number of hashes - if (eregi( "^!([1-6]) (.*)$", $line, $regs )) { + if (preg( "/^!([1-6]) (.*)$/i", $line, $regs )) { $depth = substr( $line, 1, 1 ); $out = substr( '##########', 0, $depth); - $line = eregi_replace( "^!([1-6]) (.*)$", "$out \\2", $line ); + $line = preg_replace( "/^!([1-6]) (.*)$/i", "$out \\2", $line ); } // acronym handing, example HTML(Hypertext Markyp Language) // MARKDOWN: no equiv. so just leave as HTML - $line = ereg_replace( "([A-Z]+)\(([^)]+)\)", "\\1", $line ); + $line = preg_replace( "/([A-Z]+)\(([^)]+)\)/", "\\1", $line ); // Replace resource link >>##(Description Text) // MARKDOWN: change to MD web link style - $line = eregi_replace( " ([a-zA-Z]+):([0-9]+)\(([^)]+)\)", + $line = preg_replace( "/ ([a-zA-Z]+):([0-9]+)\(([^)]+)\)/i", " [\\3](".$CFG->wwwroot."/mod/\\1/view.php?id=\\2) ", $line ); require_once($CFG->libdir.'/filelib.php'); $coursefileurl = get_file_url($this->courseid); // Replace picture resource link - $line = eregi_replace( "/([a-zA-Z0-9./_-]+)(png|gif|jpg)\(([^)]+)\)", + $line = preg_replace( "#/([a-zA-Z0-9./_-]+)(png|gif|jpg)\(([^)]+)\)#i", "![\\3](".$coursefileurl."/\\1\\2)", $line ); // Replace file resource link - $line = eregi_replace( "file:/([[:alnum:]/._-]+)\(([^)]+)\)", + $line = preg_replace( "#file:/([[:alnum:]/._-]+)\(([^)]+)\)#i", "[\\2](".$coursefileurl."/\\1)", $line ); return $line; @@ -300,7 +300,7 @@ // run through lines foreach( $lines as $line ) { // is this a blank line? - $blank_line = eregi( "^[[:blank:]\r]*$", $line ); + $blank_line = preg_match( "/^[[:blank:]\r]*$/i", $line ); if ($blank_line) { // first end current block according to state $buffer = $buffer . $this->close_block( $this->block_state ); @@ -311,13 +311,13 @@ // act now depending on current block state if ($this->block_state == STATE_NONE) { // first character of line defines block type - if (eregi( "^> ",$line )) { + if (preg_match( "/^> /i",$line )) { // blockquote $buffer = $buffer . $this->line_replace( $line ). "\n"; $this->block_state = STATE_BLOCKQUOTE; } else - if (eregi( "^ ",$line) ) { + if (preg_match( "/^ /i",$line) ) { // preformatted text // MARKDOWN: no real equiv. so just use
           $buffer = $buffer . "
\n";
@@ -325,10 +325,10 @@
           $this->block_state = STATE_PREFORM;
         }
         else 
-        if (eregi("^\% ",$line) ) {
+        if (preg_match("/^\% /i",$line) ) {
                 // preformatted text - no processing
                 // MARKDOWN: this is MD code form of a paragraph
-                $buffer = $buffer . "    " . eregi_replace( "^\%","",$line) . "\n";
+                $buffer = $buffer . "    " . preg_replace( "/^\%/i","",$line) . "\n";
                 $this->block_state = STATE_NOTIKI;
         }
         else {
Index: lib/adodb/readme_moodle.txt
===================================================================
RCS file: /cvsroot/moodle/moodle/lib/adodb/readme_moodle.txt,v
retrieving revision 1.14.2.5
diff -u -r1.14.2.5 readme_moodle.txt
--- lib/adodb/readme_moodle.txt	22 Jun 2009 17:25:38 -0000	1.14.2.5
+++ lib/adodb/readme_moodle.txt	18 Nov 2009 07:28:14 -0000
@@ -30,3 +30,49 @@
 skodak, iarenaza, moodler, stronk7
 
 $Id: readme_moodle.txt,v 1.14.2.5 2009/06/22 17:25:38 stronk7 Exp $
+
+
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: drivers/adodb-sybase.inc.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/adodb/drivers/adodb-sybase.inc.php,v
+retrieving revision 1.21.6.2
+diff -u -r1.21.6.2 adodb-sybase.inc.php
+--- drivers/adodb-sybase.inc.php	15 Feb 2008 06:04:06 -0000	1.21.6.2
++++ drivers/adodb-sybase.inc.php	18 Nov 2009 06:15:43 -0000
+@@ -376,7 +376,7 @@
+ 	global $ADODB_sybase_mths;
+ 	
+ 		//Dec 30 2000 12:00AM
+-		if (!ereg( "([A-Za-z]{3})[-/\. ]+([0-9]{1,2})[-/\. ]+([0-9]{4})"
++		if (!preg_match( "#([A-Za-z]{3})[-/\. ]+([0-9]{1,2})[-/\. ]+([0-9]{4})#"
+ 			,$v, $rr)) return parent::UnixDate($v);
+ 			
+ 		if ($rr[3] <= TIMESTAMP_FIRST_YEAR) return 0;
+@@ -393,7 +393,7 @@
+ 	global $ADODB_sybase_mths;
+ 		//11.02.2001 Toni Tunkkari toni.tunkkari@finebyte.com
+ 		//Changed [0-9] to [0-9 ] in day conversion
+-		if (!ereg( "([A-Za-z]{3})[-/\. ]([0-9 ]{1,2})[-/\. ]([0-9]{4}) +([0-9]{1,2}):([0-9]{1,2}) *([apAP]{0,1})"
++		if (!preg_match( "#([A-Za-z]{3})[-/\. ]([0-9 ]{1,2})[-/\. ]([0-9]{4}) +([0-9]{1,2}):([0-9]{1,2}) *([apAP]{0,1})#"
+ 			,$v, $rr)) return parent::UnixTimeStamp($v);
+ 		if ($rr[3] <= TIMESTAMP_FIRST_YEAR) return 0;
+ 		
+Index: session/old/adodb-session-clob.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/adodb/session/old/Attic/adodb-session-clob.php,v
+retrieving revision 1.5.6.1
+diff -u -r1.5.6.1 adodb-session-clob.php
+--- session/old/adodb-session-clob.php	15 Feb 2008 06:04:08 -0000	1.5.6.1
++++ session/old/adodb-session-clob.php	18 Nov 2009 06:15:43 -0000
+@@ -439,7 +439,7 @@
+ if (0) {
+ 
+ 	session_start();
+-	session_register('AVAR');
++	session_register('AVAR');//this is deprecated in php 5.3
+ 	$_SESSION['AVAR'] += 1;
+ 	ADOConnection::outp( "
+ -- \$_SESSION['AVAR']={$_SESSION['AVAR']}

",false); Index: lib/adodb/drivers/adodb-sybase.inc.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/adodb/drivers/adodb-sybase.inc.php,v retrieving revision 1.21.6.2 diff -u -r1.21.6.2 adodb-sybase.inc.php --- lib/adodb/drivers/adodb-sybase.inc.php 15 Feb 2008 06:04:06 -0000 1.21.6.2 +++ lib/adodb/drivers/adodb-sybase.inc.php 18 Nov 2009 07:28:14 -0000 @@ -376,7 +376,7 @@ global $ADODB_sybase_mths; //Dec 30 2000 12:00AM - if (!ereg( "([A-Za-z]{3})[-/\. ]+([0-9]{1,2})[-/\. ]+([0-9]{4})" + if (!preg_match( "#([A-Za-z]{3})[-/\. ]+([0-9]{1,2})[-/\. ]+([0-9]{4})#" ,$v, $rr)) return parent::UnixDate($v); if ($rr[3] <= TIMESTAMP_FIRST_YEAR) return 0; @@ -393,7 +393,7 @@ global $ADODB_sybase_mths; //11.02.2001 Toni Tunkkari toni.tunkkari@finebyte.com //Changed [0-9] to [0-9 ] in day conversion - if (!ereg( "([A-Za-z]{3})[-/\. ]([0-9 ]{1,2})[-/\. ]([0-9]{4}) +([0-9]{1,2}):([0-9]{1,2}) *([apAP]{0,1})" + if (!preg_match( "#([A-Za-z]{3})[-/\. ]([0-9 ]{1,2})[-/\. ]([0-9]{4}) +([0-9]{1,2}):([0-9]{1,2}) *([apAP]{0,1})#" ,$v, $rr)) return parent::UnixTimeStamp($v); if ($rr[3] <= TIMESTAMP_FIRST_YEAR) return 0; Index: lib/adodb/session/old/adodb-session-clob.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/adodb/session/old/Attic/adodb-session-clob.php,v retrieving revision 1.5.6.1 diff -u -r1.5.6.1 adodb-session-clob.php --- lib/adodb/session/old/adodb-session-clob.php 15 Feb 2008 06:04:08 -0000 1.5.6.1 +++ lib/adodb/session/old/adodb-session-clob.php 18 Nov 2009 07:28:15 -0000 @@ -439,7 +439,7 @@ if (0) { session_start(); - session_register('AVAR'); + session_register('AVAR');//this is deprecated in php 5.3 $_SESSION['AVAR'] += 1; ADOConnection::outp( " -- \$_SESSION['AVAR']={$_SESSION['AVAR']}

",false); Index: lib/bennu/iCalendar_rfc2445.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/bennu/iCalendar_rfc2445.php,v retrieving revision 1.2.10.1 diff -u -r1.2.10.1 iCalendar_rfc2445.php --- lib/bennu/iCalendar_rfc2445.php 12 Oct 2009 05:08:02 -0000 1.2.10.1 +++ lib/bennu/iCalendar_rfc2445.php 18 Nov 2009 07:28:15 -0000 @@ -139,13 +139,13 @@ } if($scheme === 'mailto') { - $regexp = '^[a-zA-Z0-9]+[_a-zA-Z0-9\-]*(\.[_a-z0-9\-]+)*@(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})$'; + $regexp = '#^[a-zA-Z0-9]+[_a-zA-Z0-9\-]*(\.[_a-z0-9\-]+)*@(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})$#'; } else { - $regexp = '^//(.+(:.*)?@)?(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]{1,5})?(/.*)?$'; + $regexp = '#^//(.+(:.*)?@)?(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]{1,5})?(/.*)?$#'; } - return ereg($regexp, $remain); + return preg_match($regexp, $remain); break; case RFC2445_TYPE_BINARY: Index: lib/excel/Parser.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/excel/Parser.php,v retrieving revision 1.1 diff -u -r1.1 Parser.php --- lib/excel/Parser.php 26 Sep 2003 04:18:02 -0000 1.1 +++ lib/excel/Parser.php 18 Nov 2009 07:28:38 -0000 @@ -466,7 +466,7 @@ { return(pack("C", $this->ptg[$token])); } - elseif(preg_match("/[A-Z0-9À-Ü\.]+/",$token)) + elseif(preg_match("/[A-Z0-9�-�\.]+/",$token)) { return($this->_convert_function($token,$this->_func_args)); } @@ -723,21 +723,21 @@ break; default: // if it's a reference - if(eregi("^[A-I]?[A-Z][0-9]+$",$token) and - !ereg("[0-9]",$this->_lookahead) and + if(preg_match("/^[A-I]?[A-Z][0-9]+$/i",$token) and + !preg_match("/[0-9]/",$this->_lookahead) and ($this->_lookahead != ':') and ($this->_lookahead != '.')) { return($token); } // if it's a range (A1:A2) - elseif(eregi("^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$",$token) and - !ereg("[0-9]",$this->_lookahead)) + elseif(preg_match("/^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$/i",$token) and + !preg_match("/[0-9]/",$this->_lookahead)) { return($token); } // if it's a range (A1..A2) - elseif(eregi("^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$",$token) and - !ereg("[0-9]",$this->_lookahead)) + elseif(preg_match("/^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$/i",$token) and + !preg_match("/[0-9]/",$this->_lookahead)) { return($token); } @@ -746,7 +746,7 @@ return($token); } // if it's a function call - elseif(eregi("^[A-Z0-9À-Ü\.]+$",$token) and ($this->_lookahead == "(")) + elseif(preg_match("/^[A-Z0-9�-�\.]+$/i",$token) and ($this->_lookahead == "(")) { return($token); @@ -857,15 +857,15 @@ return($result); } // if it's a reference - if (eregi("^[A-I]?[A-Z][0-9]+$",$this->_current_token)) + if (preg_match("/^[A-I]?[A-Z][0-9]+$/i",$this->_current_token)) { $result = $this->_create_tree($this->_current_token, '', ''); $this->_advance(); return($result); } // if it's a range - elseif (eregi("^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$",$this->_current_token) or - eregi("^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$",$this->_current_token)) + elseif (preg_match("/^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$/i",$this->_current_token) or + preg_match("/^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$/i",$this->_current_token)) { $result = $this->_current_token; $this->_advance(); @@ -878,7 +878,7 @@ return($result); } // if it's a function call - elseif (eregi("^[A-Z0-9À-Ü\.]+$",$this->_current_token)) + elseif (preg_match("/^[A-Z0-9�-�\.]+$/i",$this->_current_token)) { $result = $this->_func(); return($result); Index: lib/excel/Worksheet.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/excel/Worksheet.php,v retrieving revision 1.1 diff -u -r1.1 Worksheet.php --- lib/excel/Worksheet.php 26 Sep 2003 04:18:02 -0000 1.1 +++ lib/excel/Worksheet.php 18 Nov 2009 07:28:39 -0000 @@ -1264,10 +1264,10 @@ } // Strip the '=' or '@' sign at the beginning of the formula string - if (ereg("^=",$formula)) { + if (preg_match("/^=/",$formula)) { $formula = preg_replace("/(^=)/","",$formula); } - elseif(ereg("^@",$formula)) { + elseif(preg_match("/^@/",$formula)) { $formula = preg_replace("/(^@)/","",$formula); } else { Index: lib/fpdf/font/makefont/makefont.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/fpdf/font/makefont/Attic/makefont.php,v retrieving revision 1.2 diff -u -r1.2 makefont.php --- lib/fpdf/font/makefont/makefont.php 16 May 2006 06:45:14 -0000 1.2 +++ lib/fpdf/font/makefont/makefont.php 18 Nov 2009 07:28:40 -0000 @@ -171,7 +171,7 @@ //StemV if(isset($fm['StdVW'])) $stemv=$fm['StdVW']; - elseif(isset($fm['Weight']) and eregi('(bold|black)',$fm['Weight'])) + elseif(isset($fm['Weight']) and preg_match('/(bold|black)/i',$fm['Weight'])) $stemv=120; else $stemv=70; Index: lib/geoip/geoip.inc =================================================================== RCS file: /cvsroot/moodle/moodle/lib/geoip/geoip.inc,v retrieving revision 1.1.2.2 diff -u -r1.1.2.2 geoip.inc --- lib/geoip/geoip.inc 2 Jan 2008 16:49:05 -0000 1.1.2.2 +++ lib/geoip/geoip.inc 18 Nov 2009 07:28:40 -0000 @@ -490,7 +490,7 @@ $r->nameservers = array("ws1.maxmind.com"); $p = $r->search($l."." . $ip .".s.maxmind.com","TXT","IN"); $str = is_object($p->answer[0])?$p->answer[0]->string():''; - ereg("\"(.*)\"",$str,$regs); + preg_match("/\"(.*)\"/",$str,$regs); $str = $regs[1]; return $str; } Index: lib/htmlpurifier/readme_moodle.txt =================================================================== RCS file: /cvsroot/moodle/moodle/lib/htmlpurifier/readme_moodle.txt,v retrieving revision 1.4.2.4 diff -u -r1.4.2.4 readme_moodle.txt --- lib/htmlpurifier/readme_moodle.txt 24 Sep 2008 21:24:17 -0000 1.4.2.4 +++ lib/htmlpurifier/readme_moodle.txt 18 Nov 2009 07:28:41 -0000 @@ -8,3 +8,24 @@ skodak $Id: readme_moodle.txt,v 1.4.2.4 2008/09/24 21:24:17 skodak Exp $ + + +18 Nov 2009 +Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below. + +Index: HTMLPurifier/AttrDef/Lang.php +=================================================================== +RCS file: /cvsroot/moodle/moodle/lib/htmlpurifier/HTMLPurifier/AttrDef/Lang.php,v +retrieving revision 1.3 +diff -u -r1.3 Lang.php +--- HTMLPurifier/AttrDef/Lang.php 25 Sep 2007 14:34:13 -0000 1.3 ++++ HTMLPurifier/AttrDef/Lang.php 18 Nov 2009 06:37:14 -0000 +@@ -12,7 +12,7 @@ + function validate($string, $config, &$context) { + + // moodle change - we use special lang strings unfortunatelly +- return ereg_replace('[^0-9a-zA-Z_-]', '', $string); ++ return preg_replace('/[^0-9a-zA-Z_-]/', '', $string); + // moodle change end + + $string = trim($string); Index: lib/htmlpurifier/HTMLPurifier/AttrDef/Lang.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/htmlpurifier/HTMLPurifier/AttrDef/Lang.php,v retrieving revision 1.3 diff -u -r1.3 Lang.php --- lib/htmlpurifier/HTMLPurifier/AttrDef/Lang.php 25 Sep 2007 14:34:13 -0000 1.3 +++ lib/htmlpurifier/HTMLPurifier/AttrDef/Lang.php 18 Nov 2009 07:28:41 -0000 @@ -12,7 +12,7 @@ function validate($string, $config, &$context) { // moodle change - we use special lang strings unfortunatelly - return ereg_replace('[^0-9a-zA-Z_-]', '', $string); + return preg_replace('/[^0-9a-zA-Z_-]/', '', $string); // moodle change end $string = trim($string); Index: lib/pclzip/pclzip.lib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/pclzip/Attic/pclzip.lib.php,v retrieving revision 1.15 diff -u -r1.15 pclzip.lib.php --- lib/pclzip/pclzip.lib.php 28 Mar 2007 07:17:26 -0000 1.15 +++ lib/pclzip/pclzip.lib.php 18 Nov 2009 07:28:45 -0000 @@ -3245,7 +3245,9 @@ } // ----- Look for extract by ereg rule - else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) + /* + * MDL-20821 ereg is now deprecated + else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'"); @@ -3253,7 +3255,7 @@ //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression"); $v_extract = true; } - } + }*/ // ----- Look for extract by preg rule else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) @@ -4684,6 +4686,8 @@ } // ----- Look for extract by ereg rule + /* + * MDL-20821 ereg is now deprecated else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'"); @@ -4692,7 +4696,7 @@ //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression"); $v_found = true; } - } + }*/ // ----- Look for extract by preg rule else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) Index: lib/pclzip/readme_moodle.txt =================================================================== RCS file: /cvsroot/moodle/moodle/lib/pclzip/Attic/readme_moodle.txt,v retrieving revision 1.3 diff -u -r1.3 readme_moodle.txt --- lib/pclzip/readme_moodle.txt 29 Dec 2006 22:35:17 -0000 1.3 +++ lib/pclzip/readme_moodle.txt 18 Nov 2009 07:28:45 -0000 @@ -5,4 +5,54 @@ * removed PclZipUtilTranslateWinPath from line 1958 - see MDL-7828 skodak -$Id: readme_moodle.txt,v 1.3 2006/12/29 22:35:17 skodak Exp $ \ No newline at end of file +$Id: readme_moodle.txt,v 1.3 2006/12/29 22:35:17 skodak Exp $ + + +18 Nov 2009 +Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below. + +Index: pclzip.lib.php +=================================================================== +RCS file: /cvsroot/moodle/moodle/lib/pclzip/Attic/pclzip.lib.php,v +retrieving revision 1.15 +diff -u -r1.15 pclzip.lib.php +--- pclzip.lib.php 28 Mar 2007 07:17:26 -0000 1.15 ++++ pclzip.lib.php 18 Nov 2009 06:40:48 -0000 +@@ -3245,7 +3245,9 @@ + } + + // ----- Look for extract by ereg rule +- else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) ++ /* ++ * MDL-20821 ereg is now deprecated ++ else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) + && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { + //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'"); + +@@ -3253,7 +3255,7 @@ + //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression"); + $v_extract = true; + } +- } ++ }*/ + + // ----- Look for extract by preg rule + else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) +@@ -4684,6 +4686,8 @@ + } + + // ----- Look for extract by ereg rule ++ /* ++ * MDL-20821 ereg is now deprecated + else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) + && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { + //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'"); +@@ -4692,7 +4696,7 @@ + //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression"); + $v_found = true; + } +- } ++ }*/ + + // ----- Look for extract by preg rule + else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) Index: lib/pear/README_MOODLE.txt =================================================================== RCS file: /cvsroot/moodle/moodle/lib/pear/README_MOODLE.txt,v retrieving revision 1.2 diff -u -r1.2 README_MOODLE.txt --- lib/pear/README_MOODLE.txt 28 Jul 2007 00:17:25 -0000 1.2 +++ lib/pear/README_MOODLE.txt 18 Nov 2009 07:28:45 -0000 @@ -12,3 +12,103 @@ stronk7 $Id: README_MOODLE.txt,v 1.2 2007/07/28 00:17:25 stronk7 Exp $ + + +18 Nov 2009 +Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below. + +Index: Spreadsheet/Excel/Writer/Parser.php +=================================================================== +RCS file: /cvsroot/moodle/moodle/lib/pear/Spreadsheet/Excel/Writer/Parser.php,v +retrieving revision 1.2 +diff -u -r1.2 Parser.php +--- Spreadsheet/Excel/Writer/Parser.php 4 Jan 2006 08:23:42 -0000 1.2 ++++ Spreadsheet/Excel/Writer/Parser.php 18 Nov 2009 06:42:45 -0000 +@@ -1206,7 +1206,7 @@ + default: + // if it's a reference + if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$token) and +- !ereg("[0-9]",$this->_lookahead) and ++ !preg_match("/[0-9]/",$this->_lookahead) and + ($this->_lookahead != ':') and ($this->_lookahead != '.') and + ($this->_lookahead != '!')) + { +@@ -1214,39 +1214,39 @@ + } + // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1) + elseif (preg_match("/^\w+(\:\w+)?\![A-Ia-i]?[A-Za-z][0-9]+$/u",$token) and +- !ereg("[0-9]",$this->_lookahead) and ++ !preg_match("/[0-9]/",$this->_lookahead) and + ($this->_lookahead != ':') and ($this->_lookahead != '.')) + { + return $token; + } + // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1) + elseif (preg_match("/^'[\w -]+(\:[\w -]+)?'\![A-Ia-i]?[A-Za-z][0-9]+$/u",$token) and +- !ereg("[0-9]",$this->_lookahead) and ++ !preg_match("/[0-9]/",$this->_lookahead) and + ($this->_lookahead != ':') and ($this->_lookahead != '.')) + { + return $token; + } + // if it's a range (A1:A2) + elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and +- !ereg("[0-9]",$this->_lookahead)) ++ !preg_match("/[0-9]/",$this->_lookahead)) + { + return $token; + } + // if it's a range (A1..A2) + elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and +- !ereg("[0-9]",$this->_lookahead)) ++ !preg_match("/[0-9]/",$this->_lookahead)) + { + return $token; + } + // If it's an external range like Sheet1!A1 or Sheet1:Sheet2!A1:B2 + elseif (preg_match("/^\w+(\:\w+)?\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/u",$token) and +- !ereg("[0-9]",$this->_lookahead)) ++ !preg_match("/[0-9]/",$this->_lookahead)) + { + return $token; + } + // If it's an external range like 'Sheet1'!A1 or 'Sheet1:Sheet2'!A1:B2 + elseif (preg_match("/^'[\w -]+(\:[\w -]+)?'\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/u",$token) and +- !ereg("[0-9]",$this->_lookahead)) ++ !preg_match("/[0-9]/",$this->_lookahead)) + { + return $token; + } +@@ -1258,12 +1258,12 @@ + return $token; + } + // If it's a string (of maximum 255 characters) +- elseif (ereg("^\"[^\"]{0,255}\"$",$token)) ++ elseif (preg_match("/^\"[^\"]{0,255}\"$/",$token)) + { + return $token; + } + // if it's a function call +- elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$token) and ($this->_lookahead == "(")) ++ elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$token) and ($this->_lookahead == "(")) + { + return $token; + } +@@ -1363,7 +1363,7 @@ + function _expression() + { + // If it's a string return a string node +- if (ereg("^\"[^\"]{0,255}\"$", $this->_current_token)) { ++ if (preg_match("/^\"[^\"]{0,255}\"$/", $this->_current_token)) { + $result = $this->_createTree($this->_current_token, '', ''); + $this->_advance(); + return $result; +@@ -1521,7 +1521,7 @@ + return $result; + } + // if it's a function call +- elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$this->_current_token)) ++ elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$this->_current_token)) + { + $result = $this->_func(); + return $result; Index: lib/pear/Spreadsheet/Excel/Writer/Parser.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/pear/Spreadsheet/Excel/Writer/Parser.php,v retrieving revision 1.2 diff -u -r1.2 Parser.php --- lib/pear/Spreadsheet/Excel/Writer/Parser.php 4 Jan 2006 08:23:42 -0000 1.2 +++ lib/pear/Spreadsheet/Excel/Writer/Parser.php 18 Nov 2009 07:28:48 -0000 @@ -1206,7 +1206,7 @@ default: // if it's a reference if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$token) and - !ereg("[0-9]",$this->_lookahead) and + !preg_match("/[0-9]/",$this->_lookahead) and ($this->_lookahead != ':') and ($this->_lookahead != '.') and ($this->_lookahead != '!')) { @@ -1214,39 +1214,39 @@ } // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1) elseif (preg_match("/^\w+(\:\w+)?\![A-Ia-i]?[A-Za-z][0-9]+$/u",$token) and - !ereg("[0-9]",$this->_lookahead) and + !preg_match("/[0-9]/",$this->_lookahead) and ($this->_lookahead != ':') and ($this->_lookahead != '.')) { return $token; } // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1) elseif (preg_match("/^'[\w -]+(\:[\w -]+)?'\![A-Ia-i]?[A-Za-z][0-9]+$/u",$token) and - !ereg("[0-9]",$this->_lookahead) and + !preg_match("/[0-9]/",$this->_lookahead) and ($this->_lookahead != ':') and ($this->_lookahead != '.')) { return $token; } // if it's a range (A1:A2) elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and - !ereg("[0-9]",$this->_lookahead)) + !preg_match("/[0-9]/",$this->_lookahead)) { return $token; } // if it's a range (A1..A2) elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and - !ereg("[0-9]",$this->_lookahead)) + !preg_match("/[0-9]/",$this->_lookahead)) { return $token; } // If it's an external range like Sheet1!A1 or Sheet1:Sheet2!A1:B2 elseif (preg_match("/^\w+(\:\w+)?\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/u",$token) and - !ereg("[0-9]",$this->_lookahead)) + !preg_match("/[0-9]/",$this->_lookahead)) { return $token; } // If it's an external range like 'Sheet1'!A1 or 'Sheet1:Sheet2'!A1:B2 elseif (preg_match("/^'[\w -]+(\:[\w -]+)?'\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/u",$token) and - !ereg("[0-9]",$this->_lookahead)) + !preg_match("/[0-9]/",$this->_lookahead)) { return $token; } @@ -1258,12 +1258,12 @@ return $token; } // If it's a string (of maximum 255 characters) - elseif (ereg("^\"[^\"]{0,255}\"$",$token)) + elseif (preg_match("/^\"[^\"]{0,255}\"$/",$token)) { return $token; } // if it's a function call - elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$token) and ($this->_lookahead == "(")) + elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$token) and ($this->_lookahead == "(")) { return $token; } @@ -1363,7 +1363,7 @@ function _expression() { // If it's a string return a string node - if (ereg("^\"[^\"]{0,255}\"$", $this->_current_token)) { + if (preg_match("/^\"[^\"]{0,255}\"$/", $this->_current_token)) { $result = $this->_createTree($this->_current_token, '', ''); $this->_advance(); return $result; @@ -1521,7 +1521,7 @@ return $result; } // if it's a function call - elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$this->_current_token)) + elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$this->_current_token)) { $result = $this->_func(); return $result; Index: lib/simpletest/testmoodlelib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/simpletest/testmoodlelib.php,v retrieving revision 1.9.2.6 diff -u -r1.9.2.6 testmoodlelib.php --- lib/simpletest/testmoodlelib.php 23 Oct 2009 15:10:50 -0000 1.9.2.6 +++ lib/simpletest/testmoodlelib.php 18 Nov 2009 07:28:49 -0000 @@ -199,6 +199,17 @@ $this->assertEqual(clean_param($CFG->wwwroot, PARAM_LOCALURL), $CFG->wwwroot); $this->assertEqual(clean_param('/just/a/path', PARAM_LOCALURL), '/just/a/path'); $this->assertEqual(clean_param('funny:thing', PARAM_LOCALURL), ''); + + //test filename param + $this->assertEqual(clean_param('correctfile.txt', PARAM_FILE), 'correctfile.txt'); + $this->assertEqual(clean_param('b\'ae.t"x|t', PARAM_FILE), 'badfile.txt'); + $this->assertEqual(clean_param('../parentdirfile.txt', PARAM_FILE), 'parentdirfile.txt'); + //The following behaviours have been maintained although they seem a little odd + $this->assertEqual(clean_param('funny:thing', PARAM_FILE), 'funnything'); + $this->assertEqual(clean_param('./currentdirfile.txt', PARAM_FILE), '.currentdirfile.txt'); + $this->assertEqual(clean_param('c:\temp\windowsfile.txt', PARAM_FILE), 'ctempwindowsfile.txt'); + $this->assertEqual(clean_param('/home/user/linuxfile.txt', PARAM_FILE), 'homeuserlinuxfile.txt'); + $this->assertEqual(clean_param('~/myfile.txt', PARAM_FILE), '~myfile.txt'); } function test_make_user_directory() { Index: lib/soap/nusoap.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/soap/nusoap.php,v retrieving revision 1.2 diff -u -r1.2 nusoap.php --- lib/soap/nusoap.php 3 Jan 2007 14:44:42 -0000 1.2 +++ lib/soap/nusoap.php 18 Nov 2009 07:28:54 -0000 @@ -503,7 +503,7 @@ case (is_array($val) || $type): // detect if struct or array $valueType = $this->isArraySimpleOrStruct($val); - if($valueType=='arraySimple' || ereg('^ArrayOf',$type)){ + if($valueType=='arraySimple' || preg_match('/^ArrayOf/',$type)){ $i = 0; if(is_array($val) && count($val)> 0){ foreach($val as $v){ @@ -698,7 +698,7 @@ */ function expandQname($qname){ // get element prefix - if(strpos($qname,':') && !ereg('^http://',$qname)){ + if(strpos($qname,':') && !preg_match('#^http://#',$qname)){ // get unqualified name $name = substr(strstr($qname,':'),1); // get ns prefix @@ -827,6 +827,7 @@ $datestr = date('Y-m-d\TH:i:sO',$timestamp); if($utc){ $eregStr = + '/'. '([0-9]{4})-'. // centuries & years CCYY- '([0-9]{2})-'. // months MM- '([0-9]{2})'. // days DD @@ -834,9 +835,10 @@ '([0-9]{2}):'. // hours hh: '([0-9]{2}):'. // minutes mm: '([0-9]{2})(\.[0-9]*)?'. // seconds ss.ss... - '(Z|[+\-][0-9]{2}:?[0-9]{2})?'; // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's + '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's + '/'; - if(ereg($eregStr,$datestr,$regs)){ + if(preg_match($eregStr,$datestr,$regs)){ return sprintf('%04d-%02d-%02dT%02d:%02d:%02dZ',$regs[1],$regs[2],$regs[3],$regs[4],$regs[5],$regs[6]); } return false; @@ -853,6 +855,7 @@ */ function iso8601_to_timestamp($datestr){ $eregStr = + '/'. '([0-9]{4})-'. // centuries & years CCYY- '([0-9]{2})-'. // months MM- '([0-9]{2})'. // days DD @@ -860,8 +863,9 @@ '([0-9]{2}):'. // hours hh: '([0-9]{2}):'. // minutes mm: '([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss... - '(Z|[+\-][0-9]{2}:?[0-9]{2})?'; // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's - if(ereg($eregStr,$datestr,$regs)){ + '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's + '/'; + if(preg_match($eregStr,$datestr,$regs)){ // not utc if($regs[8] != 'Z'){ $op = substr($regs[8],0,1); @@ -1171,7 +1175,7 @@ if(count($attrs) > 0){ foreach($attrs as $k => $v){ // if ns declarations, add to class level array of valid namespaces - if(ereg("^xmlns",$k)){ + if(preg_match("/^xmlns/",$k)){ //$this->xdebug("$k: $v"); //$this->xdebug('ns_prefix: '.$this->getPrefix($k)); if($ns_prefix = substr(strrchr($k,':'),1)){ @@ -1281,7 +1285,7 @@ // minOccurs="0" maxOccurs="unbounded" /> // // - if(isset($attrs['base']) && ereg(':Array$',$attrs['base'])){ + if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){ $this->xdebug('complexType is unusual array'); $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; } else { @@ -1300,7 +1304,7 @@ // minOccurs="0" maxOccurs="unbounded" /> // // - if(isset($attrs['base']) && ereg(':Array$',$attrs['base'])){ + if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){ $this->xdebug('complexType is unusual array'); $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; } else { @@ -1698,7 +1702,7 @@ } elseif(isset($this->attributes[$type])){ $this->xdebug("in getTypeDef, found attribute $type"); return $this->attributes[$type]; - } elseif (ereg('_ContainedType$', $type)) { + } elseif (preg_match('/_ContainedType$/', $type)) { $this->xdebug("in getTypeDef, have an untyped element $type"); $typeDef['typeClass'] = 'simpleType'; $typeDef['phpType'] = 'scalar'; @@ -2041,7 +2045,7 @@ function soap_transport_http($url){ parent::nusoap_base(); $this->setURL($url); - ereg('\$Revisio' . 'n: ([^ ]+)', $this->revision, $rev); + preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev); $this->outgoing_headers['User-Agent'] = $this->title.'/'.$this->version.' ('.$rev[1].')'; $this->debug('set User-Agent: ' . $this->outgoing_headers['User-Agent']); } @@ -2580,7 +2584,7 @@ } } // remove 100 header - if(isset($lb) && ereg('^HTTP/1.1 100',$data)){ + if(isset($lb) && preg_match('/^HTTP/1.1 100/',$data)){ unset($lb); $data = ''; }// @@ -2733,7 +2737,7 @@ curl_close($this->ch); // remove 100 header(s) - while (ereg('^HTTP/1.1 100',$data)) { + while (preg_match('#^HTTP/1.1 100#',$data)) { if ($pos = strpos($data,"\r\n\r\n")) { $data = ltrim(substr($data,$pos)); } elseif($pos = strpos($data,"\n\n") ) { @@ -3267,7 +3271,7 @@ } $this->debug("In service, query string=$qs"); - if (ereg('wsdl', $qs) ){ + if (preg_match('/wsdl/', $qs) ){ $this->debug("In service, this is a request for WSDL"); if($this->externalWSDLURL){ if (strpos($this->externalWSDLURL,"://")!==false) { // assume URL @@ -3338,7 +3342,7 @@ // get the character encoding of the incoming request if(isset($this->headers['content-type']) && strpos($this->headers['content-type'],'=')){ $enc = str_replace('"','',substr(strstr($this->headers["content-type"],'='),1)); - if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){ + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ $this->xml_encoding = strtoupper($enc); } else { $this->xml_encoding = 'US-ASCII'; @@ -3367,7 +3371,7 @@ $enc = substr(strstr($v, '='), 1); $enc = str_replace('"', '', $enc); $enc = str_replace('\\', '', $enc); - if (eregi('^(ISO-8859-1|US-ASCII|UTF-8)$', $enc)) { + if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i', $enc)) { $this->xml_encoding = strtoupper($enc); } else { $this->xml_encoding = 'US-ASCII'; @@ -3401,7 +3405,7 @@ $enc = substr(strstr($v, '='), 1); $enc = str_replace('"', '', $enc); $enc = str_replace('\\', '', $enc); - if (eregi('^(ISO-8859-1|US-ASCII|UTF-8)$', $enc)) { + if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i', $enc)) { $this->xml_encoding = strtoupper($enc); } else { $this->xml_encoding = 'US-ASCII'; @@ -3730,7 +3734,7 @@ $payload .= $this->getDebugAsXMLComment(); } $this->outgoing_headers[] = "Server: $this->title Server v$this->version"; - ereg('\$Revisio' . 'n: ([^ ]+)', $this->revision, $rev); + preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev); $this->outgoing_headers[] = "X-SOAP-Server: $this->title/$this->version (".$rev[1].")"; // Let the Web server decide about this //$this->outgoing_headers[] = "Connection: Close\r\n"; @@ -3818,7 +3822,7 @@ if (strpos($headers['content-type'], '=')) { $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1)); $this->debug('Got response encoding: ' . $enc); - if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){ + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ $this->xml_encoding = strtoupper($enc); } else { $this->xml_encoding = 'US-ASCII'; @@ -4336,7 +4340,7 @@ $this->currentSchema->schemaStartElement($parser, $name, $attrs); $this->appendDebug($this->currentSchema->getDebug()); $this->currentSchema->clearDebug(); - } elseif (ereg('schema$', $name)) { + } elseif (preg_match('/schema$/', $name)) { $this->debug('Parsing WSDL schema'); // $this->debug("startElement for $name ($attrs[name]). status = $this->status (".$this->getLocalPart($name).")"); $this->status = 'schema'; @@ -4355,7 +4359,7 @@ if (count($attrs) > 0) { // register namespace declarations foreach($attrs as $k => $v) { - if (ereg("^xmlns", $k)) { + if (preg_match("/^xmlns/", $k)) { if ($ns_prefix = substr(strrchr($k, ':'), 1)) { $this->namespaces[$ns_prefix] = $v; } else { @@ -4380,7 +4384,7 @@ $attrs = array(); } // get element prefix, namespace and name - if (ereg(':', $name)) { + if (preg_match('/:/', $name)) { // get ns prefix $prefix = substr($name, 0, strpos($name, ':')); // get ns @@ -4545,7 +4549,7 @@ */ function end_element($parser, $name){ // unset schema status - if (/*ereg('types$', $name) ||*/ ereg('schema$', $name)) { + if (/*preg_match('/types$/', $name) ||*/ preg_match('/schema$/', $name)) { $this->status = ""; $this->appendDebug($this->currentSchema->getDebug()); $this->currentSchema->clearDebug(); @@ -5995,7 +5999,7 @@ $key_localpart = $this->getLocalPart($key); // if ns declarations, add to class level array of valid namespaces if($key_prefix == 'xmlns'){ - if(ereg('^http://www.w3.org/[0-9]{4}/XMLSchema$',$value)){ + if(preg_match('#^http://www.w3.org/[0-9]{4}/XMLSchema$#',$value)){ $this->XMLSchemaVersion = $value; $this->namespaces['xsd'] = $this->XMLSchemaVersion; $this->namespaces['xsi'] = $this->XMLSchemaVersion.'-instance'; @@ -6031,8 +6035,8 @@ [5] length ::= nextDimension* Digit+ [6] nextDimension ::= Digit+ ',' */ - $expr = '([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]'; - if(ereg($expr,$value,$regs)){ + $expr = '/([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]'; + if(preg_match($expr,$value,$regs)){ $this->message[$pos]['typePrefix'] = $regs[1]; $this->message[$pos]['arrayTypePrefix'] = $regs[1]; if (isset($this->namespaces[$regs[1]])) { @@ -6758,7 +6762,7 @@ // detect transport switch(true){ // http(s) - case ereg('^http',$this->endpoint): + case preg_match('/^http/',$this->endpoint): $this->debug('transporting via HTTP'); if($this->persistentConnection == true && is_object($this->persistentConnection)){ $http =& $this->persistentConnection; @@ -6780,10 +6784,10 @@ $http->setEncoding($this->http_encoding); } $this->debug('sending message, length='.strlen($msg)); - if(ereg('^http:',$this->endpoint)){ + if(preg_match('/^http:/',$this->endpoint)){ //if(strpos($this->endpoint,'http:')){ $this->responseData = $http->send($msg,$timeout,$response_timeout,$this->cookies); - } elseif(ereg('^https',$this->endpoint)){ + } elseif(preg_match('/^https/',$this->endpoint)){ //} elseif(strpos($this->endpoint,'https:')){ //if(phpversion() == '4.3.0-dev'){ //$response = $http->send($msg,$timeout,$response_timeout); @@ -6841,7 +6845,7 @@ if (strpos($headers['content-type'], '=')) { $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1)); $this->debug('Got response encoding: ' . $enc); - if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){ + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ $this->xml_encoding = strtoupper($enc); } else { $this->xml_encoding = 'US-ASCII'; Index: lib/tcpdf/html2pdf.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/tcpdf/Attic/html2pdf.php,v retrieving revision 1.1 diff -u -r1.1 html2pdf.php --- lib/tcpdf/html2pdf.php 2 Feb 2007 18:38:05 -0000 1.1 +++ lib/tcpdf/html2pdf.php 18 Nov 2009 07:28:54 -0000 @@ -1,5 +1,5 @@ OpenTag($tag,$attr); } Index: lib/typo3/class.t3lib_cs.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/typo3/class.t3lib_cs.php,v retrieving revision 1.7 diff -u -r1.7 class.t3lib_cs.php --- lib/typo3/class.t3lib_cs.php 11 Aug 2006 09:48:35 -0000 1.7 +++ lib/typo3/class.t3lib_cs.php 18 Nov 2009 07:29:13 -0000 @@ -781,8 +781,8 @@ $trans_tbl = array_flip(get_html_translation_table(HTML_ENTITIES)); // Getting them in iso-8859-1 - but thats ok since this is observed below. } - $token = md5(microtime()); - $parts = explode($token,ereg_replace('(&([#[:alnum:]]*);)',$token.'\2'.$token,$str)); + $token = 'a'.md5(microtime());//token must start with a letter or preg_replace substitution won't work + $parts = explode($token,preg_replace('/(&([#[:alnum:]]*);)/',$token.'\2'.$token,$str)); foreach($parts as $k => $v) { if ($k%2) { if (substr($v,0,1)=='#') { // Dec or hex entities: @@ -974,13 +974,13 @@ // Detect type if not done yet: (Done on first real line) // The "whitespaced" type is on the syntax "0x0A 0x000A #LINE FEED" while "ms-token" is like "B9 = U+00B9 : SUPERSCRIPT ONE" - if (!$detectedType) $detectedType = ereg('[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+',$value) ? 'whitespaced' : 'ms-token'; + if (!$detectedType) $detectedType = preg_match('/[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+/',$value) ? 'whitespaced' : 'ms-token'; if ($detectedType=='ms-token') { list($hexbyte,$utf8) = split('=|:',$value,3); } elseif ($detectedType=='whitespaced') { $regA=array(); - ereg('[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+',$value,$regA); + preg_match('/[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+/',$value,$regA); $hexbyte = $regA[1]; $utf8 = 'U+'.$regA[2]; } @@ -1084,7 +1084,7 @@ // accented Latin letters without "official" decomposition $match = array(); - if (ereg('^LATIN (SMALL|CAPITAL) LETTER ([A-Z]) WITH',$name,$match) && !$decomp) { + if (preg_match('/^LATIN (SMALL|CAPITAL) LETTER ([A-Z]) WITH/',$name,$match) && !$decomp) { $c = ord($match[2]); if ($match[1] == 'SMALL') $c += 32; @@ -1093,7 +1093,7 @@ } $match = array(); - if (ereg('(<.*>)? *(.+)',$decomp,$match)) { + if (preg_match('/(<.*>)? *(.+)/',$decomp,$match)) { switch($match[1]) { case '': // add parenthesis as circle replacement, eg (1) $match[2] = '0028 '.$match[2].' 0029'; @@ -1104,7 +1104,7 @@ break; case '': // ignore multi char decompositions that start with a space - if (ereg('^0020 ',$match[2])) continue 2; + if (preg_match('/^0020 /',$match[2])) continue 2; break; // ignore Arabic and vertical layout presentation decomposition Index: lib/typo3/class.t3lib_div.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/typo3/class.t3lib_div.php,v retrieving revision 1.2 diff -u -r1.2 class.t3lib_div.php --- lib/typo3/class.t3lib_div.php 17 Oct 2005 15:48:29 -0000 1.2 +++ lib/typo3/class.t3lib_div.php 18 Nov 2009 07:29:15 -0000 @@ -798,7 +798,7 @@ * @return array Contains keys [path], [file], [filebody], [fileext], [realFileext] */ function split_fileref($fileref) { - if ( ereg('(.*/)(.*)$',$fileref,$reg) ) { + if ( preg_match('#(.*/)(.*)$#',$fileref,$reg) ) { $info['path'] = $reg[1]; $info['file'] = $reg[2]; } else { @@ -806,7 +806,7 @@ $info['file'] = $fileref; } $reg=''; - if ( ereg('(.*)\.([^\.]*$)',$info['file'],$reg) ) { + if ( preg_match('/(.*)\.([^\.]*$)/',$info['file'],$reg) ) { $info['filebody'] = $reg[1]; $info['fileext'] = strtolower($reg[2]); $info['realFileext'] = $reg[2]; @@ -882,7 +882,7 @@ * @return string */ function rm_endcomma($string) { - return ereg_replace(',$','',$string); + return preg_replace('/,$/','',$string); } /** @@ -896,7 +896,7 @@ */ function danish_strtoupper($string) { $value = strtoupper($string); - return strtr($value, 'áéúíâêûôîæøåäöü', 'ÁÉÚÍÄËÜÖÏÆØÅÄÖÜ'); + return strtr($value, '���������������', '���������������'); } /** @@ -904,13 +904,13 @@ * Only known characters will be converted, so don't expect a result for any character. * (DEPRECIATED: Works only for western europe single-byte charsets! Use t3lib_cs::specCharsToASCII() instead!) * - * ä => ae, Ö => Oe + * � => ae, � => Oe * * @param string String to convert. * @return string */ function convUmlauts($str) { - $pat = array ( '/ä/', '/Ä/', '/ö/', '/Ö/', '/ü/', '/Ü/', '/ß/', '/å/', '/Å/', '/ø/', '/Ø/', '/æ/', '/Æ/' ); + $pat = array ( '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/' ); $repl = array ( 'ae', 'Ae', 'oe', 'Oe', 'ue', 'Ue', 'ss', 'aa', 'AA', 'oe', 'OE', 'ae', 'AE' ); return preg_replace($pat,$repl,$str); } @@ -1022,7 +1022,7 @@ * @see calcParenthesis() */ function calcPriority($string) { - $string=ereg_replace('[[:space:]]*','',$string); // removing all whitespace + $string=preg_replace('/[ ]*/','',$string); // removing all whitespace $string='+'.$string; // Ensuring an operator for the first entrance $qm='\*\/\+-^%'; $regex = '(['.$qm.'])(['.$qm.']?[0-9\.]*)'; @@ -1103,7 +1103,7 @@ * @return string Converted result. */ function deHSCentities($str) { - return ereg_replace('&([#[:alnum:]]*;)','&\1',$str); + return preg_replace('/&([#A-Za-z0-9]*;)/','&\1',$str); } /** @@ -1154,7 +1154,7 @@ function validEmail($email) { $email = trim ($email); if (strstr($email,' ')) return FALSE; - return ereg('^[A-Za-z0-9\._-]+[@][A-Za-z0-9\._-]+[\.].[A-Za-z0-9]+$',$email) ? TRUE : FALSE; + return preg_match('/^[A-Za-z0-9\._-]+[@][A-Za-z0-9\._-]+[\.].[A-Za-z0-9]+$/',$email) ? TRUE : FALSE; } /** @@ -1555,7 +1555,7 @@ $name = ''; } } else { - if ($key = strtolower(ereg_replace('[^a-zA-Z0-9]','',$val))) { + if ($key = strtolower(preg_replace('/[^a-zA-Z0-9]/','',$val))) { $attributes[$key] = ''; $name = $key; } @@ -1580,9 +1580,9 @@ * @internal */ function split_tag_attributes($tag) { - $tag_tmp = trim(eregi_replace ('^<[^[:space:]]*','',trim($tag))); + $tag_tmp = trim(preg_replace ('/^<[^[:space:]]*/i','',trim($tag))); // Removes any > in the end of the string - $tag_tmp = trim(eregi_replace ('>$','',$tag_tmp)); + $tag_tmp = trim(preg_replace ('/>$/i','',$tag_tmp)); while (strcmp($tag_tmp,'')) { // Compared with empty string instead , 030102 $firstChar=substr($tag_tmp,0,1); @@ -1653,7 +1653,7 @@ * @param boolean Wrap script element in linebreaks? Default is TRUE. * @return string The wrapped JS code, ready to put into a XHTML page * @author Ingmar Schlecht - * @author René Fritz + * @author Ren� Fritz */ function wrapJS($string, $linebreak=TRUE) { if(trim($string)) { @@ -1813,7 +1813,7 @@ } // The tag name is cleaned up so only alphanumeric chars (plus - and _) are in there and not longer than 100 chars either. - $tagName = substr(ereg_replace('[^[:alnum:]_-]','',$tagName),0,100); + $tagName = substr(preg_replace('/[^[:alnum:]_-]/','',$tagName),0,100); // If the value is an array then we will call this function recursively: if (is_array($v)) { @@ -1902,7 +1902,7 @@ // What we do here fixes the problem but ONLY if the charset is utf-8, iso-8859-1 or us-ascii. That should work for most TYPO3 installations, in particular if people use utf-8 which we highly recommend. if ((double)phpversion()>=5) { unset($ereg_result); - ereg('^[[:space:]]*<\?xml[^>]*encoding[[:space:]]*=[[:space:]]*"([^"]*)"',substr($string,0,200),$ereg_result); + preg_match('/^[[:space:]]*<\?xml[^>]*encoding[[:space:]]*=[[:space:]]*"([^"]*)"/',substr($string,0,200),$ereg_result); $theCharset = $ereg_result[1] ? $ereg_result[1] : ($TYPO3_CONF_VARS['BE']['forceCharset'] ? $TYPO3_CONF_VARS['BE']['forceCharset'] : 'iso-8859-1'); xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $theCharset); // us-ascii / utf-8 / iso-8859-1 } @@ -2042,7 +2042,7 @@ function xmlGetHeaderAttribs($xmlData) { $xmlHeader = substr(trim($xmlData),0,200); $reg=array(); - if (eregi('^<\?xml([^>]*)\?\>',$xmlHeader,$reg)) { + if (preg_match('/^<\?xml([^>]*)\?\>/i',$xmlHeader,$reg)) { return t3lib_div::get_tag_attributes($reg[1]); } } @@ -2163,7 +2163,7 @@ // Checking if the "subdir" is found: $subdir = substr($fI['dirname'],strlen($dirName)); if ($subdir) { - if (ereg('^[[:alnum:]_]+\/$',$subdir)) { + if (preg_match('#^[[:alnum:]_]+\/$#',$subdir)) { $dirName.= $subdir; if (!@is_dir($dirName)) { t3lib_div::mkdir($dirName); @@ -2191,7 +2191,7 @@ * @return boolean TRUE if @mkdir went well! */ function mkdir($theNewFolder) { - $theNewFolder = ereg_replace('\/$','',$theNewFolder); + $theNewFolder = preg_replace('#\/$#','',$theNewFolder); if (mkdir($theNewFolder, octdec($GLOBALS['TYPO3_CONF_VARS']['BE']['folderCreateMask']))){ chmod($theNewFolder, octdec($GLOBALS['TYPO3_CONF_VARS']['BE']['folderCreateMask'])); //added this line, because the mode at 'mkdir' has a strange behaviour sometimes @@ -2240,7 +2240,7 @@ // Initialize variabels: $filearray = array(); $sortarray = array(); - $path = ereg_replace('\/$','',$path); + $path = preg_replace('#\/$#','',$path); // Find files+directories: if (@is_dir($path)) { @@ -2564,7 +2564,7 @@ $pString = t3lib_div::implodeArrayForUrl('',$params); - return $pString ? $parts.'?'.ereg_replace('^&','',$pString) : $parts; + return $pString ? $parts.'?'.preg_replace('/^&/','',$pString) : $parts; } /** @@ -2673,7 +2673,7 @@ case 'REQUEST_URI': // Typical application of REQUEST_URI is return urls, forms submitting to itself etc. Example: returnUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI')) if (!$_SERVER['REQUEST_URI']) { // This is for ISS/CGI which does not have the REQUEST_URI available. - return '/'.ereg_replace('^/','',t3lib_div::getIndpEnv('SCRIPT_NAME')). + return '/'.preg_replace('#^/#','',t3lib_div::getIndpEnv('SCRIPT_NAME')). ($_SERVER['QUERY_STRING']?'?'.$_SERVER['QUERY_STRING']:''); } else return $_SERVER['REQUEST_URI']; break; @@ -2826,11 +2826,11 @@ break; case 'msie': $tmp = strstr($useragent,'MSIE'); - $bInfo['VERSION'] = doubleval(ereg_replace('^[^0-9]*','',substr($tmp,4))); + $bInfo['VERSION'] = doubleval(preg_replace('/^[^0-9]*/','',substr($tmp,4))); break; case 'opera': $tmp = strstr($useragent,'Opera'); - $bInfo['VERSION'] = doubleval(ereg_replace('^[^0-9]*','',substr($tmp,5))); + $bInfo['VERSION'] = doubleval(preg_replace('/^[^0-9]*/','',substr($tmp,5))); break; case 'konqu': $tmp = strstr($useragent,'Konqueror/'); @@ -2966,7 +2966,7 @@ */ function verifyFilenameAgainstDenyPattern($filename) { if (strcmp($filename,'') && strcmp($GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern'],'')) { - $result = eregi($GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern'],$filename); + $result = preg_match('/'.$GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern'].'/i',$filename); if ($result) return false; // so if a matching filename is found, return false; } return true; @@ -3126,7 +3126,7 @@ function readLLfile($fileRef,$langKey) { $file = t3lib_div::getFileAbsFileName($fileRef); if ($file) { - $baseFile = ereg_replace('\.(php|xml)$', '', $file); + $baseFile = preg_replace('#\.(php|xml)$#', '', $file); if (@is_file($baseFile.'.xml')) { $LOCAL_LANG = t3lib_div::readLLXMLfile($baseFile.'.xml', $langKey); @@ -3162,7 +3162,7 @@ // Cache file name: $hashSource = substr($fileRef,strlen(PATH_site)).'|'.date('d-m-Y H:i:s',filemtime($fileRef)); $cacheFileName = PATH_site.'typo3temp/llxml/'. - #str_replace('_','',ereg_replace('^.*\/','',dirname($fileRef))). + #str_replace('_','',preg_replace('#^.*\/#','',dirname($fileRef))). #'_'.basename($fileRef). substr(basename($fileRef),10,15). '_'.t3lib_div::shortMD5($hashSource).'.'.$langKey.'.'.$origCharset.'.cache'; @@ -3344,7 +3344,7 @@ // Check persistent object and if found, call directly and exit. if (is_array($GLOBALS['T3_VAR']['callUserFunction'][$funcName])) { - return call_user_method( + return call_user_func( $GLOBALS['T3_VAR']['callUserFunction'][$funcName]['method'], $GLOBALS['T3_VAR']['callUserFunction'][$funcName]['obj'], $params, @@ -3405,7 +3405,7 @@ ); } // Call method: - $content = call_user_method( + $content = call_user_func( $parts[1], $classObj, $params, @@ -3520,7 +3520,7 @@ * @param string Sub type like file extensions or similar. Defined by the service. * @param mixed List of service keys which should be exluded in the search for a service. Array or comma list. * @return object The service object or an array with error info's. - * @author René Fritz + * @author Ren� Fritz */ function &makeInstanceService($serviceType, $serviceSubType='', $excludeServiceKeys=array()) { global $T3_SERVICES, $T3_VAR, $TYPO3_CONF_VARS; @@ -3606,7 +3606,7 @@ $message=t3lib_div::quoted_printable($message); - if (!$dontEncodeSubject) $subject='=?'.$charset.'?Q?'.trim(t3lib_div::quoted_printable(ereg_replace('[[:space:]]','_',$subject),1000)).'?='; + if (!$dontEncodeSubject) $subject='=?'.$charset.'?Q?'.trim(t3lib_div::quoted_printable(preg_replace('#/[[:space:]]/#','_',$subject),1000)).'?='; break; case '8bit': $headers=trim($headers).chr(10). @@ -3657,11 +3657,11 @@ $len+=3; } } - $newVal = ereg_replace(chr(32).'$','=20',$newVal); // Replaces a possible SPACE-character at the end of a line - $newVal = ereg_replace(chr(9).'$','=09',$newVal); // Replaces a possible TAB-character at the end of a line + $newVal = preg_replace('/'.chr(32).'$/','=20',$newVal); // Replaces a possible SPACE-character at the end of a line + $newVal = preg_replace('/'.chr(9).'$/','=09',$newVal); // Replaces a possible TAB-character at the end of a line $newString.=$newVal.chr(13).chr(10); } - return ereg_replace(chr(13).chr(10).'$','',$newString); + return preg_replace('/'.chr(13).chr(10).'$/','',$newString); } /** @@ -3853,12 +3853,12 @@ if($quoteActive > -1) { $paramsArr[$quoteActive] .= ' '.$v; unset($paramsArr[$k]); - if(ereg('"$', $v)) { $quoteActive = -1; } + if(preg_match('/"$/', $v)) { $quoteActive = -1; } } elseif(!trim($v)) { unset($paramsArr[$k]); // Remove empty elements - } elseif(ereg('^"', $v)) { + } elseif(preg_match('/^"/', $v)) { $quoteActive = $k; } } Index: lib/xmldb/classes/XMLDBObject.class.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/xmldb/classes/Attic/XMLDBObject.class.php,v retrieving revision 1.7.2.1 diff -u -r1.7.2.1 XMLDBObject.class.php --- lib/xmldb/classes/XMLDBObject.class.php 15 Aug 2008 11:09:51 -0000 1.7.2.1 +++ lib/xmldb/classes/XMLDBObject.class.php 18 Nov 2009 07:29:16 -0000 @@ -164,7 +164,7 @@ function checkName () { $result = true; - if ($this->name != eregi_replace('[^a-z0-9_ -]', '', $this->name)) { + if ($this->name != preg_replace('/[^a-z0-9_ -]/i', '', $this->name)) { $result = false; } return $result; Index: login/index.php =================================================================== RCS file: /cvsroot/moodle/moodle/login/index.php,v retrieving revision 1.129.2.7 diff -u -r1.129.2.7 index.php --- login/index.php 18 Nov 2009 00:22:44 -0000 1.129.2.7 +++ login/index.php 18 Nov 2009 07:31:28 -0000 @@ -109,7 +109,7 @@ $frm->username = trim(moodle_strtolower($frm->username)); if (is_enabled_auth('none') && empty($CFG->extendedusernamechars)) { - $string = eregi_replace("[^(-\.[:alnum:])]", "", $frm->username); + $string = preg_replace("/[^(-\.[:alnum:])]/i", "", $frm->username); if (strcmp($frm->username, $string)) { $errormsg = get_string('username').': '.get_string("alphanumerical"); $errorcode = 2; Index: login/signup_form.php =================================================================== RCS file: /cvsroot/moodle/moodle/login/signup_form.php,v retrieving revision 1.35.2.6 diff -u -r1.35.2.6 signup_form.php --- login/signup_form.php 23 Jul 2008 05:21:21 -0000 1.35.2.6 +++ login/signup_form.php 18 Nov 2009 07:31:28 -0000 @@ -99,7 +99,7 @@ $errors['username'] = get_string('usernameexists'); } else { if (empty($CFG->extendedusernamechars)) { - $string = eregi_replace("[^(-\.[:alnum:])]", '', $data['username']); + $string = preg_replace("/[^(-\.[:alnum:])]/i", '', $data['username']); if (strcmp($data['username'], $string)) { $errors['username'] = get_string('alphanumerical'); } Index: mnet/lib.php =================================================================== RCS file: /cvsroot/moodle/moodle/mnet/lib.php,v retrieving revision 1.16.2.11 diff -u -r1.16.2.11 lib.php --- mnet/lib.php 17 Nov 2009 17:29:37 -0000 1.16.2.11 +++ mnet/lib.php 18 Nov 2009 07:31:28 -0000 @@ -314,7 +314,7 @@ } $host = strtolower($CFG->wwwroot); - $host = ereg_replace("^http(s)?://",'',$host); + $host = preg_replace("#^http(s)?://#",'',$host); $break = strpos($host.'/' , '/'); $host = substr($host, 0, $break); Index: mnet/xmlrpc/server.php =================================================================== RCS file: /cvsroot/moodle/moodle/mnet/xmlrpc/server.php,v retrieving revision 1.16.2.5 diff -u -r1.16.2.5 server.php --- mnet/xmlrpc/server.php 7 Sep 2008 05:08:35 -0000 1.16.2.5 +++ mnet/xmlrpc/server.php 18 Nov 2009 07:31:29 -0000 @@ -321,7 +321,7 @@ if (!is_object($MNET_REMOTE_CLIENT->object_to_call)) { return @call_user_func_array($functionname, $argsarray); } else { - return @call_user_method_array($functionname, $MNET_REMOTE_CLIENT->object_to_call, $argsarray); + return @call_user_func_array( array($MNET_REMOTE_CLIENT->object_to_call,$functionname), $argsarray); } } Index: mod/chat/chatd.php =================================================================== RCS file: /cvsroot/moodle/moodle/mod/chat/chatd.php,v retrieving revision 1.32.4.4 diff -u -r1.32.4.4 chatd.php --- mod/chat/chatd.php 3 Oct 2009 07:58:19 -0000 1.32.4.4 +++ mod/chat/chatd.php 18 Nov 2009 07:31:30 -0000 @@ -985,7 +985,7 @@ continue; } - if(!ereg('win=(chat|users|message|beep).*&chat_sid=([a-zA-Z0-9]*) HTTP', $data, $info)) { + if(!preg_match('/win=(chat|users|message|beep).*&chat_sid=([a-zA-Z0-9]*) HTTP/', $data, $info)) { // Malformed data $DAEMON->trace('UFO with '.$handle.': Request with malformed data; connection closed', E_USER_WARNING); $DAEMON->dismiss_ufo($handle, true, 'Request with malformed data; connection closed'); @@ -1011,7 +1011,7 @@ break; case 'beep': $type = CHAT_SIDEKICK_BEEP; - if(!ereg('beep=([^&]*)[& ]', $data, $info)) { + if(!preg_match('/beep=([^&]*)[& ]/', $data, $info)) { $DAEMON->trace('Beep sidekick did not contain a valid userid', E_USER_WARNING); $DAEMON->dismiss_ufo($handle, true, 'Request with malformed data; connection closed'); continue; @@ -1022,7 +1022,7 @@ break; case 'message': $type = CHAT_SIDEKICK_MESSAGE; - if(!ereg('chat_message=([^&]*)[& ]chat_msgidnr=([^&]*)[& ]', $data, $info)) { + if(!preg_match('/chat_message=([^&]*)[& ]chat_msgidnr=([^&]*)[& ]/', $data, $info)) { $DAEMON->trace('Message sidekick did not contain a valid message', E_USER_WARNING); $DAEMON->dismiss_ufo($handle, true, 'Request with malformed data; connection closed'); continue; Index: mod/lesson/format.php =================================================================== RCS file: /cvsroot/moodle/moodle/mod/lesson/format.php,v retrieving revision 1.7.8.1 diff -u -r1.7.8.1 format.php --- mod/lesson/format.php 26 Nov 2008 13:08:32 -0000 1.7.8.1 +++ mod/lesson/format.php 18 Nov 2009 07:31:38 -0000 @@ -163,7 +163,7 @@ $filearray = file($filename); /// Check for Macintosh OS line returns (ie file on one line), and fix - if (ereg("\r", $filearray[0]) AND !ereg("\n", $filearray[0])) { + if (preg_match("/\r/", $filearray[0]) AND !preg_match("/\n/", $filearray[0])) { return explode("\r", $filearray[0]); } else { return $filearray; Index: mod/lesson/reformat.php =================================================================== RCS file: /cvsroot/moodle/moodle/mod/lesson/reformat.php,v retrieving revision 1.5.4.1 diff -u -r1.5.4.1 reformat.php --- mod/lesson/reformat.php 23 Mar 2009 09:46:31 -0000 1.5.4.1 +++ mod/lesson/reformat.php 18 Nov 2009 07:31:39 -0000 @@ -13,7 +13,7 @@ $filearray = file($filename); /// Check for Macintosh OS line returns (ie file on one line), and fix - if (ereg("\r", $filearray[0]) AND !ereg("\n", $filearray[0])) { + if (preg_match("#\r#", $filearray[0]) AND !preg_match("#\n#", $filearray[0])) { $outfile = explode("\r", $filearray[0]); } else { $outfile = $filearray; Index: mod/scorm/locallib.php =================================================================== RCS file: /cvsroot/moodle/moodle/mod/scorm/locallib.php,v retrieving revision 1.46.2.31 diff -u -r1.46.2.31 locallib.php --- mod/scorm/locallib.php 11 Mar 2009 20:25:04 -0000 1.46.2.31 +++ mod/scorm/locallib.php 18 Nov 2009 07:31:47 -0000 @@ -185,7 +185,7 @@ $len = 8; for ($i=0; $i<$len; $i++) { $char = chr(rand(48,122)); - while (!ereg('[a-zA-Z0-9]', $char)){ + while (!preg_match('/[a-zA-Z0-9]/', $char)){ if ($char == $lchar) continue; $char = chr(rand(48,90)); } Index: mod/scorm/player.php =================================================================== RCS file: /cvsroot/moodle/moodle/mod/scorm/player.php,v retrieving revision 1.34.2.9 diff -u -r1.34.2.9 player.php --- mod/scorm/player.php 14 Nov 2008 00:14:50 -0000 1.34.2.9 +++ mod/scorm/player.php 18 Nov 2009 07:31:47 -0000 @@ -281,7 +281,7 @@ echo " \n"; } else { // Clean the name for the window as IE is fussy - $name = ereg_replace("[^A-Za-z0-9]", "", $scorm->name); + $name = preg_replace("/[^A-Za-z0-9]/", "", $scorm->name); if (!$name) { $name = 'DefaultPlayerWindow'; } Index: mod/scorm/datamodels/aicclib.php =================================================================== RCS file: /cvsroot/moodle/moodle/mod/scorm/datamodels/aicclib.php,v retrieving revision 1.5.2.9 diff -u -r1.5.2.9 aicclib.php --- mod/scorm/datamodels/aicclib.php 22 Dec 2008 07:04:37 -0000 1.5.2.9 +++ mod/scorm/datamodels/aicclib.php 18 Nov 2009 07:31:48 -0000 @@ -281,7 +281,7 @@ } if (isset($element->core_vendor)) { $scodata->name = 'datafromlms'; - $scodata->value = eregi_replace('', "\r\n", $element->core_vendor); + $scodata->value = preg_replace('//i', "\r\n", $element->core_vendor); $dataid = insert_record('scorm_scoes_data',$scodata); } } Index: mod/wiki/lib.php =================================================================== RCS file: /cvsroot/moodle/moodle/mod/wiki/lib.php,v retrieving revision 1.53.2.6 diff -u -r1.53.2.6 lib.php --- mod/wiki/lib.php 22 Apr 2009 21:29:23 -0000 1.53.2.6 +++ mod/wiki/lib.php 18 Nov 2009 07:31:50 -0000 @@ -1569,11 +1569,11 @@ } /// Remove old Notices - $content = eregi_replace(' µµ__~\['.get_string("offline","wiki").'\]__µµ ','', $content); + $content = preg_replace('/ µµ__~\['.get_string("offline","wiki").'\]__µµ /i','', $content); #-- replace dead links foreach ($badlinks as $href) { - $content = preg_replace("\377^(.*)($href)\377m", '$1 µµ__~['.get_string("offline","wiki").']__µµ $2', $content); + $content = preg_replace("/\377^(.*)($href)\377m", '$1 µµ__~['.get_string("offline","wiki").']__µµ $2/', $content); } #-- compare against db content Index: mod/wiki/ewiki/fragments/nuke_mod_wiki_index =================================================================== RCS file: /cvsroot/moodle/moodle/mod/wiki/ewiki/fragments/nuke_mod_wiki_index,v retrieving revision 1.1 diff -u -r1.1 nuke_mod_wiki_index --- mod/wiki/ewiki/fragments/nuke_mod_wiki_index 2 Jun 2004 12:45:55 -0000 1.1 +++ mod/wiki/ewiki/fragments/nuke_mod_wiki_index 18 Nov 2009 07:31:55 -0000 @@ -15,7 +15,7 @@ #-- stupid legacy code -if (!eregi("modules.php", $PHP_SELF)) { +if (!preg_match("/modules.php/i", $PHP_SELF)) { die ("You can't access this file directly..."); } Index: pix/smartpix.php =================================================================== RCS file: /cvsroot/moodle/moodle/pix/smartpix.php,v retrieving revision 1.1.4.2 diff -u -r1.1.4.2 smartpix.php --- pix/smartpix.php 4 Mar 2009 11:55:19 -0000 1.1.4.2 +++ pix/smartpix.php 18 Nov 2009 07:31:56 -0000 @@ -21,10 +21,10 @@ $param = str_replace('\\\'', '\'', $param); $param = str_replace('\\"', '"', $param); $param = str_replace('\\', '/', $param); - $param = ereg_replace('[[:cntrl:]]|[<>"`\|\':]', '', $param); - $param = ereg_replace('\.\.+', '', $param); - $param = ereg_replace('//+', '/', $param); - return ereg_replace('/(\./)+', '/', $param); + $param = preg_replace('/[[:cntrl:]]|[<>"`\|\':]/', '', $param); + $param = preg_replace('/\.\.+/', '', $param); + $param = preg_replace('#//+#', '/', $param); + return preg_replace('#/(\./)+#', '/', $param); } // Nicked from weblib Index: question/format.php =================================================================== RCS file: /cvsroot/moodle/moodle/question/format.php,v retrieving revision 1.35.2.13 diff -u -r1.35.2.13 format.php --- question/format.php 30 Sep 2009 13:38:51 -0000 1.35.2.13 +++ question/format.php 18 Nov 2009 07:31:58 -0000 @@ -438,7 +438,7 @@ $filearray = file($filename); /// Check for Macintosh OS line returns (ie file on one line), and fix - if (ereg("\r", $filearray[0]) AND !ereg("\n", $filearray[0])) { + if (preg_match("/\r/", $filearray[0]) AND !preg_match("/\n/", $filearray[0])) { return explode("\r", $filearray[0]); } else { return $filearray; @@ -583,7 +583,7 @@ fclose( $fh ); // return the (possibly) new filename - $newfile = ereg_replace("{$CFG->dataroot}/{$this->course->id}/", '',$newfullpath); + $newfile = preg_replace("#{$CFG->dataroot}/{$this->course->id}/#", '',$newfullpath); return $newfile; } Index: question/format/blackboard_6/format.php =================================================================== RCS file: /cvsroot/moodle/moodle/question/format/blackboard_6/Attic/format.php,v retrieving revision 1.14.2.4 diff -u -r1.14.2.4 format.php --- question/format/blackboard_6/format.php 23 Mar 2009 09:47:45 -0000 1.14.2.4 +++ question/format/blackboard_6/format.php 18 Nov 2009 07:31:58 -0000 @@ -180,7 +180,7 @@ if (is_readable($q_file)) { $filearray = file($q_file); /// Check for Macintosh OS line returns (ie file on one line), and fix - if (ereg("\r", $filearray[0]) AND !ereg("\n", $filearray[0])) { + if (preg_match("/\r/", $filearray[0]) AND !preg_match("/\n/", $filearray[0])) { return explode("\r", $filearray[0]); } else { return $filearray; Index: question/format/gift/format.php =================================================================== RCS file: /cvsroot/moodle/moodle/question/format/gift/format.php,v retrieving revision 1.24.2.8 diff -u -r1.24.2.8 format.php --- question/format/gift/format.php 16 Mar 2009 13:43:19 -0000 1.24.2.8 +++ question/format/gift/format.php 18 Nov 2009 07:31:58 -0000 @@ -119,7 +119,7 @@ $question = $this->defaultquestion(); $comment = NULL; // define replaced by simple assignment, stop redefine notices - $gift_answerweight_regex = "^%\-*([0-9]{1,2})\.?([0-9]*)%"; + $gift_answerweight_regex = "/^%\-*([0-9]{1,2})\.?([0-9]*)%/"; // REMOVED COMMENTED LINES and IMPLODE foreach ($lines as $key => $line) { @@ -139,7 +139,7 @@ $text = $this->escapedchar_pre($text); // Look for category modifier - if (ereg( '^\$CATEGORY:', $text)) { + if (preg_match( '/^\$CATEGORY:/', $text)) { // $newcategory = $matches[1]; $newcategory = trim(substr( $text, 10 )); @@ -317,7 +317,7 @@ $answer_weight = 1; $answer = substr($answer, 1); - } elseif (ereg($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight + } elseif (preg_match($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight $answer_weight = $this->answerweightparser($answer); } else { //default, i.e., wrong anwer @@ -408,7 +408,7 @@ $answer = trim($answer); // Answer Weight - if (ereg($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight + if (preg_match($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight $answer_weight = $this->answerweightparser($answer); } else { //default, i.e., full-credit anwer $answer_weight = 1; @@ -456,7 +456,7 @@ $answer = trim($answer); // Answer weight - if (ereg($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight + if (preg_match($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight $answer_weight = $this->answerweightparser($answer); } else { //default, i.e., full-credit anwer $answer_weight = 1; Index: question/format/qti2/format.php =================================================================== RCS file: /cvsroot/moodle/moodle/question/format/qti2/Attic/format.php,v retrieving revision 1.12.4.3 diff -u -r1.12.4.3 format.php --- question/format/qti2/format.php 4 Aug 2008 10:07:54 -0000 1.12.4.3 +++ question/format/qti2/format.php 18 Nov 2009 07:31:59 -0000 @@ -33,8 +33,8 @@ // Remove all tabs. $source = str_replace("\t", '', $source); // Remove all space after ">" and before "<". - $source = ereg_replace(">( )*", ">", $source); - $source = ereg_replace("( )*<", "<", $source); + $source = preg_replace("/>( )*/", ">", $source); + $source = preg_replace("/( )*questiontext = addslashes(trim($questiontext)); unset($questiontext); } @@ -201,7 +201,7 @@ } if (isset($answertext) and is_string($answertext)) { - if (ereg("^:",$line)) { + if (preg_match("/^:/",$line)) { $answertext = addslashes(trim($answertext)); $question->answer[$currentchoice] = $answertext; $question->subanswers[$currentchoice] = $answertext; @@ -214,7 +214,7 @@ } if (isset($responsetext) and is_string($responsetext)) { - if (ereg("^:",$line)) { + if (preg_match("/^:/",$line)) { $question->subquestions[$currentchoice] = addslashes(trim($responsetext)); unset($responsetext); } @@ -225,7 +225,7 @@ } if (isset($feedbacktext) and is_string($feedbacktext)) { - if (ereg("^:",$line)) { + if (preg_match("/^:/",$line)) { $question->feedback[$currentchoice] = addslashes(trim($feedbacktext)); unset($feedbacktext); } @@ -236,7 +236,7 @@ } if (isset($generalfeedbacktext) and is_string($generalfeedbacktext)) { - if (ereg("^:",$line)) { + if (preg_match("/^:/",$line)) { $question->tempgeneralfeedback= addslashes(trim($generalfeedbacktext)); unset($generalfeedbacktext); } @@ -248,7 +248,7 @@ $line = trim($line); - if (eregi("^:(TYPE|EOF):",$line)) { + if (preg_match("/^:(TYPE|EOF):/i",$line)) { // New Question or End of File if (isset($question)) { // if previous question exists, complete, check and save it @@ -382,7 +382,7 @@ // Processing Question Header - if (eregi("^:TYPE:MC:1(.*)",$line,$webct_options)) { + if (preg_match("/^:TYPE:MC:1(.*)/i",$line,$webct_options)) { // Multiple Choice Question with only one good answer $question = $this->defaultquestion(); $question->feedback = array(); @@ -392,7 +392,7 @@ continue; } - if (eregi("^:TYPE:MC:N(.*)",$line,$webct_options)) { + if (preg_match("/^:TYPE:MC:N(.*)/i",$line,$webct_options)) { // Multiple Choice Question with several good answers $question = $this->defaultquestion(); $question->feedback = array(); @@ -402,7 +402,7 @@ continue; } - if (eregi("^:TYPE:S",$line)) { + if (preg_match("/^:TYPE:S/i",$line)) { // Short Answer Question $question = $this->defaultquestion(); $question->feedback = array(); @@ -412,7 +412,7 @@ continue; } - if (eregi("^:TYPE:C",$line)) { + if (preg_match("/^:TYPE:C/i",$line)) { // Calculated Question /* $warnings[] = get_string("calculatedquestion", "quiz", $nLineCounter); unset($question); @@ -434,7 +434,7 @@ continue; } - if (eregi("^:TYPE:M",$line)) { + if (preg_match("/^:TYPE:M/i",$line)) { // Match Question $question = $this->defaultquestion(); $question->qtype = MATCH; @@ -443,7 +443,7 @@ continue; } - if (eregi("^:TYPE:P",$line)) { + if (preg_match("/^:TYPE:P/i",$line)) { // Paragraph Question $warnings[] = get_string("paragraphquestion", "quiz", $nLineCounter); unset($question); @@ -451,7 +451,7 @@ continue; } - if (eregi("^:TYPE:",$line)) { + if (preg_match("/^:TYPE:/i",$line)) { // Unknow Question $warnings[] = get_string("unknowntype", "quiz", $nLineCounter); unset($question); @@ -463,7 +463,7 @@ continue; } - if (eregi("^:TITLE:(.*)",$line,$webct_options)) { + if (preg_match("/^:TITLE:(.*)/i",$line,$webct_options)) { $name = trim($webct_options[1]); if (strlen($name) > 255) { $name = substr($name,0,250)."..."; @@ -473,9 +473,9 @@ continue; } - if (eregi("^:IMAGE:(.*)",$line,$webct_options)) { + if (preg_match("/^:IMAGE:(.*)/",$line,$webct_options)) { $filename = trim($webct_options[1]); - if (eregi("^http://",$filename)) { + if (preg_match("#^http://#",$filename)) { $question->image = $filename; } continue; @@ -486,9 +486,9 @@ if (!isset($question)) { continue; } - if (isset($question->qtype ) && CALCULATED == $question->qtype && ereg( - "^:([[:lower:]].*|::.*)-(MIN|MAX|DEC|VAL([0-9]+))::?:?($webctnumberregex)", $line, $webct_options)) { - $datasetname = ereg_replace('^::', '', $webct_options[1]); + if (isset($question->qtype ) && CALCULATED == $question->qtype && preg_match( + "/^:([[:lower:]].*|::.*)-(MIN|MAX|DEC|VAL([0-9]+))::?:?($webctnumberregex)/", $line, $webct_options)) { + $datasetname = preg_replace('/^::/', '', $webct_options[1]); $datasetvalue = qformat_webct_convert_formula($webct_options[4]); switch ($webct_options[2]) { case 'MIN': @@ -512,27 +512,27 @@ } - $bIsHTMLText = eregi(":H$",$line); // True if next lines are coded in HTML - if (eregi("^:QUESTION",$line)) { + $bIsHTMLText = preg_match("/:H$/",$line); // True if next lines are coded in HTML + if (preg_match("/^:QUESTION/",$line)) { $questiontext=""; // Start gathering next lines continue; } - if (eregi("^:ANSWER([0-9]+):([^:]+):([0-9\.\-]+):(.*)",$line,$webct_options)) { /// SHORTANSWER + if (preg_match("/^:ANSWER([0-9]+):([^:]+):([0-9\.\-]+):(.*)/i",$line,$webct_options)) { /// SHORTANSWER $currentchoice=$webct_options[1]; $answertext=$webct_options[2]; // Start gathering next lines $question->fraction[$currentchoice]=($webct_options[3]/100); continue; } - if (eregi("^:ANSWER([0-9]+):([0-9\.\-]+)",$line,$webct_options)) { + if (preg_match("/^:ANSWER([0-9]+):([0-9\.\-]+)/i",$line,$webct_options)) { $answertext=""; // Start gathering next lines $currentchoice=$webct_options[1]; $question->fraction[$currentchoice]=($webct_options[2]/100); continue; } - if (eregi('^:FORMULA:(.*)', $line, $webct_options)) { + if (preg_match('/^:FORMULA:(.*)/i', $line, $webct_options)) { // Answer for a CALCULATED question ++$currentchoice; $question->answers[$currentchoice] = @@ -556,60 +556,60 @@ continue; } - if (eregi("^:L([0-9]+)",$line,$webct_options)) { + if (preg_match("/^:L([0-9]+)/i",$line,$webct_options)) { $answertext=""; // Start gathering next lines $currentchoice=$webct_options[1]; $question->fraction[$currentchoice]=1; continue; } - if (eregi("^:R([0-9]+)",$line,$webct_options)) { + if (preg_match("/^:R([0-9]+)/i",$line,$webct_options)) { $responsetext=""; // Start gathering next lines $currentchoice=$webct_options[1]; continue; } - if (eregi("^:REASON([0-9]+):?",$line,$webct_options)) { + if (preg_match("/^:REASON([0-9]+):?/i",$line,$webct_options)) { $feedbacktext=""; // Start gathering next lines $currentchoice=$webct_options[1]; continue; } - if (eregi("^:FEEDBACK([0-9]+):?",$line,$webct_options)) { + if (preg_match("/^:FEEDBACK([0-9]+):?/i",$line,$webct_options)) { $generalfeedbacktext=""; // Start gathering next lines $currentchoice=$webct_options[1]; continue; } - if (eregi('^:FEEDBACK:(.*)',$line,$webct_options)) { + if (preg_match('/^:FEEDBACK:(.*)/i',$line,$webct_options)) { $generalfeedbacktext=""; // Start gathering next lines continue; } - if (eregi('^:LAYOUT:(.*)',$line,$webct_options)) { + if (preg_match('/^:LAYOUT:(.*)/i',$line,$webct_options)) { // ignore since layout in question_multichoice is no more used in moodle // $webct_options[1] contains either vertical or horizontal ; continue; } - if (isset($question->qtype ) && CALCULATED == $question->qtype && eregi('^:ANS-DEC:([1-9][0-9]*)', $line, $webct_options)) { + if (isset($question->qtype ) && CALCULATED == $question->qtype && preg_match('/^:ANS-DEC:([1-9][0-9]*)/i', $line, $webct_options)) { // We can but hope that this always appear before the ANSTYPE property $question->correctanswerlength[$currentchoice] = $webct_options[1]; continue; } - if (isset($question->qtype )&& CALCULATED == $question->qtype && eregi("^:TOL:($webctnumberregex)", $line, $webct_options)) { + if (isset($question->qtype )&& CALCULATED == $question->qtype && preg_match("/^:TOL:($webctnumberregex)/i", $line, $webct_options)) { // We can but hope that this always appear before the TOL property $question->tolerance[$currentchoice] = qformat_webct_convert_formula($webct_options[1]); continue; } - if (isset($question->qtype )&& CALCULATED == $question->qtype && eregi('^:TOLTYPE:percent', $line)) { + if (isset($question->qtype )&& CALCULATED == $question->qtype && preg_match('/^:TOLTYPE:percent/', $line)) { // Percentage case is handled as relative in Moodle: $question->tolerance[$currentchoice] /= 100; $question->tolerancetype[$currentchoice] = 1; // Relative continue; } - if (eregi('^:UNITS:(.+)', $line, $webct_options) + if (preg_match('/^:UNITS:(.+)/', $line, $webct_options) and $webctunits = trim($webct_options[1])) { // This is a guess - I really do not know how different webct units are separated... $webctunits = explode(':', $webctunits); @@ -621,7 +621,7 @@ continue; } - if (!empty($question->units) && eregi('^:UNITREQ:(.*)', $line, $webct_options) + if (!empty($question->units) && preg_match('/^:UNITREQ:(.*)/', $line, $webct_options) && !$webct_options[1]) { // There are units but units are not required so add the no unit alternative // We can but hope that the UNITS property always appear before this property @@ -631,17 +631,17 @@ continue; } - if (!empty($question->units) && eregi('^:UNITCASE:', $line)) { + if (!empty($question->units) && preg_match('/^:UNITCASE:/', $line)) { // This could be important but I was not able to figure out how // it works so I ignore it for now continue; } - if (isset($question->qtype )&& CALCULATED == $question->qtype && eregi('^:ANSTYPE:dec', $line)) { + if (isset($question->qtype )&& CALCULATED == $question->qtype && preg_match('/^:ANSTYPE:dec/', $line)) { $question->correctanswerformat[$currentchoice]='1'; continue; } - if (isset($question->qtype )&& CALCULATED == $question->qtype && eregi('^:ANSTYPE:sig', $line)) { + if (isset($question->qtype )&& CALCULATED == $question->qtype && preg_match('/^:ANSTYPE:sig/', $line)) { $question->correctanswerformat[$currentchoice]='2'; continue; } Index: question/format/xml/format.php =================================================================== RCS file: /cvsroot/moodle/moodle/question/format/xml/format.php,v retrieving revision 1.41.2.11 diff -u -r1.41.2.11 format.php --- question/format/xml/format.php 30 Sep 2009 13:38:51 -0000 1.41.2.11 +++ question/format/xml/format.php 18 Nov 2009 07:32:00 -0000 @@ -921,9 +921,9 @@ case MULTIANSWER: $a_count=1; foreach($question->options->questions as $question) { - $thispattern = addslashes("{#".$a_count."}"); + $thispattern = '/'.addslashes("{#".$a_count."}").'/'; $thisreplace = $question->questiontext; - $expout=ereg_replace($thispattern, $thisreplace, $expout ); + $expout=preg_replace($thispattern, $thisreplace, $expout ); $a_count++; } break; Index: question/type/calculated/edit_calculated_form.php =================================================================== RCS file: /cvsroot/moodle/moodle/question/type/calculated/edit_calculated_form.php,v retrieving revision 1.19.2.5 diff -u -r1.19.2.5 edit_calculated_form.php --- question/type/calculated/edit_calculated_form.php 26 Sep 2009 16:27:18 -0000 1.19.2.5 +++ question/type/calculated/edit_calculated_form.php 18 Nov 2009 07:32:00 -0000 @@ -170,7 +170,7 @@ $qtextremaining = str_replace('{'.$name.'}', '1', $qtextremaining); } // echo "numericalquestion qtextremaining
";print_r($possibledatasets);
-        while  (ereg('\{=([^[:space:]}]*)}', $qtextremaining, $regs1)) {
+        while  (preg_match('/\{=([^[:space:]}]*)}/', $qtextremaining, $regs1)) {
             $qtextsplits = explode($regs1[0], $qtextremaining, 2);
             $qtext =$qtext.$qtextsplits[0];
             $qtextremaining = $qtextsplits[1];
Index: question/type/calculated/questiontype.php
===================================================================
RCS file: /cvsroot/moodle/moodle/question/type/calculated/questiontype.php,v
retrieving revision 1.26.2.15
diff -u -r1.26.2.15 questiontype.php
--- question/type/calculated/questiontype.php	25 May 2009 03:35:23 -0000	1.26.2.15
+++ question/type/calculated/questiontype.php	18 Nov 2009 07:32:01 -0000
@@ -382,7 +382,7 @@
         //evaluate the equations i.e {=5+4)
         $qtext = "";
         $qtextremaining = $numericalquestion->questiontext ;
-        while  (ereg('\{=([^[:space:]}]*)}', $qtextremaining, $regs1)) {
+        while  (preg_match('/\{=([^[:space:]}]*)}/', $qtextremaining, $regs1)) {
             $qtextsplits = explode($regs1[0], $qtextremaining, 2);
             $qtext =$qtext.$qtextsplits[0];
             $qtextremaining = $qtextsplits[1];
@@ -501,7 +501,7 @@
     function custom_generator_set_data($datasetdefs, $formdata){
         $idx = 1;
         foreach ($datasetdefs as $datasetdef){
-            if (ereg('^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$', $datasetdef->options, $regs)) {
+            if (preg_match('/^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$/', $datasetdef->options, $regs)) {
                 $defid = "$datasetdef->type-$datasetdef->category-$datasetdef->name";
                 $formdata["calcdistribution[$idx]"] = $regs[1];
                 $formdata["calcmin[$idx]"] = $regs[2];
@@ -514,7 +514,7 @@
     }
 
     function custom_generator_tools($datasetdef) {
-        if (ereg('^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$',
+        if (preg_match('/^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$/',
                 $datasetdef->options, $regs)) {
             $defid = "$datasetdef->type-$datasetdef->category-$datasetdef->name";
             for ($i = 0 ; $i<10 ; ++$i) {
@@ -723,7 +723,7 @@
     }
     function generate_dataset_item($options) {
 
-        if (!ereg('^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$',
+        if (!preg_match('/^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$/',
                 $options, $regs)) {
             // Unknown options...
             return false;
@@ -825,7 +825,7 @@
   //  list($options, $selected) = $this->dataset_optionsa($form, $name);
 
         foreach ($options as $key => $whatever) {
-            if (!ereg('^'.LITERAL.'-', $key) && $key != '0') {
+            if (!preg_match('/^'.LITERAL.'-/', $key) && $key != '0') {
                 unset($options[$key]);
             }
         }
@@ -1173,7 +1173,7 @@
         if ($answerlength) {
             /* Try to include missing zeros at the end */
 
-            if (ereg('^(.*\\.)(.*)$', $calculated->answer, $regs)) {
+            if (preg_match('/^(.*\\.)(.*)$/', $calculated->answer, $regs)) {
                 $calculated->answer = $regs[1] . substr(
                         $regs[2] . '00000000000000000000000000000000000000000x',
                         0, $answerlength)
@@ -1233,7 +1233,7 @@
                 $calculated->answer = $sign.$answer.$unit;
             } else {
                 // Could be an idea to add some zeros here
-                $answer .= (ereg('^[0-9]*$', $answer) ? '.' : '')
+                $answer .= (preg_match('/^[0-9]*$/', $answer) ? '.' : '')
                         . '00000000000000000000000000000000000000000x';
                 $oklen = $answerlength + ($p10 < 1 ? 2-$p10 : 1);
                 $calculated->answer = $sign.substr($answer, 0, $oklen).$unit;
@@ -1254,7 +1254,7 @@
 /// Returns false if everything is alright.
 /// Otherwise it constructs an error message
     // Strip away dataset names
-    while (ereg('\\{[[:alpha:]][^>} <{"\']*\\}', $formula, $regs)) {
+    while (preg_match('/\\{[[:alpha:]][^>} <{"\']*\\}/', $formula, $regs)) {
         $formula = str_replace($regs[0], '1', $formula);
     }
 
@@ -1265,7 +1265,7 @@
     $operatorornumber = "[$safeoperatorchar.0-9eE]";
 
 
-    while (ereg("(^|[$safeoperatorchar,(])([a-z0-9_]*)\\(($operatorornumber+(,$operatorornumber+((,$operatorornumber+)+)?)?)?\\)",
+    while (preg_match("/(^|[$safeoperatorchar,(])([a-z0-9_]*)\\(($operatorornumber+(,$operatorornumber+((,$operatorornumber+)+)?)?)?\\)/",
             $formula, $regs)) {
 
         switch ($regs[2]) {
@@ -1328,11 +1328,11 @@
             $formula = str_replace($regs[0], $regs[1] . '1', $formula);
         } else {
             // The function call starts the formula
-            $formula = ereg_replace("^$regs[2]\\([^)]*\\)", '1', $formula);
+            $formula = preg_replace("/^$regs[2]\\([^)]*\\)/", '1', $formula);
         }
     }
 
-    if (ereg("[^$safeoperatorchar.0-9eE]+", $formula, $regs)) {
+    if (preg_match("/[^$safeoperatorchar.0-9eE]+/", $formula, $regs)) {
         return get_string('illegalformulasyntax', 'quiz', $regs[0]);
     } else {
         // Formula just might be valid
Index: question/type/datasetdependent/abstractqtype.php
===================================================================
RCS file: /cvsroot/moodle/moodle/question/type/datasetdependent/Attic/abstractqtype.php,v
retrieving revision 1.16.2.4
diff -u -r1.16.2.4 abstractqtype.php
--- question/type/datasetdependent/abstractqtype.php	10 Feb 2009 05:40:13 -0000	1.16.2.4
+++ question/type/datasetdependent/abstractqtype.php	18 Nov 2009 07:32:01 -0000
@@ -49,7 +49,7 @@
     }
 
     function restore_session_and_responses(&$question, &$state) {
-        if (!ereg('^dataset([0-9]+)[^-]*-(.*)$',
+        if (!preg_match('/^dataset([0-9]+)[^-]*-(.*)$/',
                 $state->responses[''], $regs)) {
             notify ("Wrongly formatted raw response answer " .
                    "{$state->responses['']}! Could not restore session for " .
@@ -732,7 +732,7 @@
     /// Returns the possible dataset names found in the text as an array
     /// The array has the dataset name for both key and value
         $datasetnames = array();
-        while (ereg('\\{([[:alpha:]][^>} <{"\']*)\\}', $text, $regs)) {
+        while (preg_match('/\\{([[:alpha:]][^>} <{"\']*)\\}/', $text, $regs)) {
             $datasetnames[$regs[1]] = $regs[1];
             $text = str_replace($regs[0], '', $text);
         }
@@ -740,7 +740,7 @@
     }
 
     function create_virtual_nameprefix($nameprefix, $datasetinput) {
-        if (!ereg('([0-9]+)' . $this->name() . '$', $nameprefix, $regs)) {
+        if (!preg_match('/([0-9]+)/' . $this->name() . '$', $nameprefix, $regs)) {
             error("Wrongly formatted nameprefix $nameprefix");
         }
         $virtualqtype = $this->get_virtual_qtype();
Index: question/type/multianswer/questiontype.php
===================================================================
RCS file: /cvsroot/moodle/moodle/question/type/multianswer/questiontype.php,v
retrieving revision 1.41.2.17
diff -u -r1.41.2.17 questiontype.php
--- question/type/multianswer/questiontype.php	13 Feb 2009 06:11:59 -0000	1.41.2.17
+++ question/type/multianswer/questiontype.php	18 Nov 2009 07:32:02 -0000
@@ -266,7 +266,7 @@
         // The regex will recognize text snippets of type {#X}
         // where the X can be any text not containg } or white-space characters.
 
-        while (ereg('\{#([^[:space:]}]*)}', $qtextremaining, $regs)) {
+        while (preg_match('/\{#([^[:space:]}]*)}/', $qtextremaining, $regs)) {
             $qtextsplits = explode($regs[0], $qtextremaining, 2);
             echo $qtextsplits[0];
             echo "