? 243532-simpletest-errors_0.patch
? 313902-2.patch
? anon-sessions-3.patch
? anon-sessions-etc.patch
? assertFieldByXPath-2.patch
? curl.php
? drupal_page_cache_header-2.patch
? file_create_url-13.patch
? file_create_url-13.patch.1
? file_create_url-14.patch
? magic_quotes_runtime-3.patch
? module_implements_20.patch
? multisite-d6-1.patch
? php4_workarounds-2.patch
? streamwrapper-D7-14.patch
? sites/chsc-drupal.dev.peytz.dk
? sites/sites.php
Index: includes/unicode.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/unicode.inc,v
retrieving revision 1.33
diff -u -9 -p -r1.33 unicode.inc
--- includes/unicode.inc	12 Oct 2008 04:30:05 -0000	1.33
+++ includes/unicode.inc	31 Oct 2008 20:31:45 -0000
@@ -36,24 +36,18 @@ function unicode_check() {
  *   Whether to report any fatal errors with form_set_error().
  */
 function _unicode_check() {
   // Ensure translations don't break at install time
   $t = get_t();
 
   // Set the standard C locale to ensure consistent, ASCII-only string handling.
   setlocale(LC_CTYPE, 'C');
 
-  // Check for outdated PCRE library
-  // Note: we check if U+E2 is in the range U+E0 - U+E1. This test returns TRUE on old PCRE versions.
-  if (preg_match('/[à-á]/u', 'â')) {
-    return array(UNICODE_ERROR, $t('The PCRE library in your PHP installation is outdated. This will cause problems when handling Unicode text. If you are running PHP 4.3.3 or higher, make sure you are using the PCRE library supplied by PHP. Please refer to the <a href="@url">PHP PCRE documentation</a> for more information.', array('@url' => 'http://www.php.net/pcre')));
-  }
-
   // Check for mbstring extension
   if (!function_exists('mb_strlen')) {
     return array(UNICODE_SINGLEBYTE, $t('Operations on Unicode strings are emulated on a best-effort basis. Install the <a href="@url">PHP mbstring extension</a> for improved Unicode support.', array('@url' => 'http://www.php.net/mbstring')));
   }
 
   // Check mbstring configuration
   if (ini_get('mbstring.func_overload') != 0) {
     return array(UNICODE_ERROR, $t('Multibyte string function overloading in PHP is active and must be disabled. Check the php.ini <em>mbstring.func_overload</em> setting. Please refer to the <a href="@url">PHP mbstring documentation</a> for more information.', array('@url' => 'http://www.php.net/mbstring')));
   }
Index: modules/aggregator/aggregator.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.module,v
retrieving revision 1.396
diff -u -9 -p -r1.396 aggregator.module
--- modules/aggregator/aggregator.module	20 Oct 2008 12:57:35 -0000	1.396
+++ modules/aggregator/aggregator.module	31 Oct 2008 20:31:45 -0000
@@ -689,21 +689,19 @@ function aggregator_refresh($feed) {
           $channel[$key] = trim($value);
         }
 
         // Prepare the image data (if any).
         foreach ($image as $key => $value) {
           $image[$key] = trim($value);
         }
 
         if (!empty($image['LINK']) && !empty($image['URL']) && !empty($image['TITLE'])) {
-          // TODO: we should really use theme_image() here, but that only works with
-          // local images. It won't work with images fetched with a URL unless PHP version > 5.
-          $image = '<a href="' . check_url($image['LINK']) . '" class="feed-image"><img src="' . check_url($image['URL']) . '" alt="' . check_plain($image['TITLE']) . '" /></a>';
+          $image = l(theme('image', $image['URL'], $image['TITLE']), $image['LINK'], array('html' => TRUE));
         }
         else {
           $image = '';
         }
 
         $etag = empty($result->headers['ETag']) ? '' : $result->headers['ETag'];
         // Update the feed data.
         db_merge('aggregator_feed')
           ->key(array('fid' => $feed['fid']))
@@ -858,21 +856,21 @@ function aggregator_parse_feed(&$data, $
     // Try to resolve and parse the item's publication date.
     $date = '';
     foreach (array('PUBDATE', 'DC:DATE', 'DCTERMS:ISSUED', 'DCTERMS:CREATED', 'DCTERMS:MODIFIED', 'ISSUED', 'CREATED', 'MODIFIED', 'PUBLISHED', 'UPDATED') as $key) {
       if (!empty($item[$key])) {
         $date = $item[$key];
         break;
       }
     }
 
-    $timestamp = strtotime($date); // As of PHP 5.1.0, strtotime returns FALSE on failure instead of -1.
+    $timestamp = strtotime($date);
 
-    if ($timestamp <= 0) {
+    if ($timestamp === FALSE) {
       $timestamp = aggregator_parse_w3cdtf($date); // Aggregator_parse_w3cdtf() returns FALSE on failure.
     }
 
     // Save this item. Try to avoid duplicate entries as much as possible. If
     // we find a duplicate entry, we resolve it and pass along its ID is such
     // that we can update it if needed.
     if (!empty($guid)) {
       $entry = db_query("SELECT iid, timestamp FROM {aggregator_item} WHERE fid = :fid AND guid = :guid", array(':fid' => $feed['fid'], ':guid' => $guid))->fetchObject();
     }
Index: modules/comment/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.module,v
retrieving revision 1.659
diff -u -9 -p -r1.659 comment.module
--- modules/comment/comment.module	14 Oct 2008 20:39:42 -0000	1.659
+++ modules/comment/comment.module	31 Oct 2008 20:31:45 -0000
@@ -1128,20 +1128,19 @@ function comment_num_new($nid, $timestam
  *   The original $edit.
  */
 function comment_validate($edit) {
   global $user;
 
   // Invoke other validation handlers.
   comment_invoke_comment($edit, 'validate');
 
   if (isset($edit['date'])) {
-    // As of PHP 5.1.0, strtotime returns FALSE upon failure instead of -1.
-    if (strtotime($edit['date']) <= 0) {
+    if (strtotime($edit['date']) === FALSE) {
       form_set_error('date', t('You have to specify a valid date.'));
     }
   }
   if (isset($edit['author']) && !$account = user_load(array('name' => $edit['author']))) {
     form_set_error('author', t('You have to specify a valid author.'));
   }
 
   // Check validity of name, mail and homepage (if given).
   if (!$user->uid || isset($edit['is_anonymous'])) {
Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.230
diff -u -9 -p -r1.230 filter.module
--- modules/filter/filter.module	14 Oct 2008 20:44:56 -0000	1.230
+++ modules/filter/filter.module	31 Oct 2008 20:31:46 -0000
@@ -971,19 +971,19 @@ function filter_xss($string, $allowed_ta
     <[^>]*(>|$)       # a string that starts with a <, up until the > or the end of the string
     |                 # or
     >                 # just a >
     )%x', '_filter_xss_split', $string);
 }
 
 /**
  * Processes an HTML tag.
  *
- * @param @m
+ * @param $m
  *   An array with various meaning depending on the value of $store.
  *   If $store is TRUE then the array contains the allowed tags.
  *   If $store is FALSE then the array has one element, the HTML tag to process.
  * @param $store
  *   Whether to store $m.
  * @return
  *   If the element isn't allowed, an empty string. Otherwise, the cleaned up
  *   version of the HTML element.
  */
@@ -1019,22 +1019,21 @@ function _filter_xss_split($m, $store = 
     // Disallowed HTML element
     return '';
   }
 
   if ($slash != '') {
     return "</$elem>";
   }
 
   // Is there a closing XHTML slash at the end of the attributes?
-  // In PHP 5.1.0+ we could count the changes, currently we need a separate match
-  $xhtml_slash = preg_match('%\s?/\s*$%', $attrlist) ? ' /' : '';
-  $attrlist = preg_replace('%(\s?)/\s*$%', '\1', $attrlist);
-
+  $attrlist = preg_replace('%(\s?)/\s*$%', '\1', $attrlist, -1, $count);
+  $xhtml_slash = $count ? ' /' : '';
+  
   // Clean up attributes
   $attr2 = implode(' ', _filter_xss_attributes($attrlist));
   $attr2 = preg_replace('/[<>]/', '', $attr2);
   $attr2 = strlen($attr2) ? ' ' . $attr2 : '';
 
   return "<$elem$attr2$xhtml_slash>";
 }
 
 /**
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.990
diff -u -9 -p -r1.990 node.module
--- modules/node/node.module	29 Oct 2008 10:08:52 -0000	1.990
+++ modules/node/node.module	31 Oct 2008 20:31:46 -0000
@@ -836,20 +836,20 @@ function node_validate($node, $form = ar
   if (user_access('administer nodes')) {
     // Validate the "authored by" field.
     if (!empty($node->name) && !($account = user_load(array('name' => $node->name)))) {
       // The use of empty() is mandatory in the context of usernames
       // as the empty string denotes the anonymous user. In case we
       // are dealing with an anonymous user we set the user ID to 0.
       form_set_error('name', t('The username %name does not exist.', array('%name' => $node->name)));
     }
 
-    // Validate the "authored on" field. As of PHP 5.1.0, strtotime returns FALSE instead of -1 upon failure.
-    if (!empty($node->date) && strtotime($node->date) <= 0) {
+    // Validate the "authored on" field.
+    if (!empty($node->date) && strtotime($node->date) === FALSE) {
       form_set_error('date', t('You have to specify a valid date.'));
     }
   }
 
   // Do node-type-specific validation checks.
   node_invoke($node, 'validate', $form);
   node_invoke_nodeapi($node, 'validate', $form);
 }
 
Index: modules/openid/openid.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.inc,v
retrieving revision 1.12
diff -u -9 -p -r1.12 openid.inc
--- modules/openid/openid.inc	19 Sep 2008 07:53:59 -0000	1.12
+++ modules/openid/openid.inc	31 Oct 2008 20:31:46 -0000
@@ -440,27 +440,9 @@ function _openid_get_params($str) {
     $parts = explode("=", $chunk, 2);
 
     if (count($parts) == 2) {
       list($k, $v) = $parts;
       $data[$k] = urldecode($v);
     }
   }
   return $data;
 }
-
-/**
- * Provide bcpowmod support for PHP4.
- */
-if (!function_exists('bcpowmod')) {
-  function bcpowmod($base, $exp, $mod) {
-    $square = bcmod($base, $mod);
-    $result = 1;
-    while (bccomp($exp, 0) > 0) {
-      if (bcmod($exp, 2)) {
-        $result = bcmod(bcmul($result, $square), $mod);
-      }
-      $square = bcmod(bcmul($square, $square), $mod);
-      $exp = bcdiv($exp, 2);
-    }
-    return $result;
-  }
-}
