[Pkg-drupal-commits] r2128 - in /branches/drupal6: ./ debian/ includes/ misc/ modules/aggregator/ modules/block/ modules/blog/ modules/blogapi/ modules/book/ modules/color/ modules/comment/ modules/contact/ modules/dblog/ modules/filter/ modules/forum/ modules/help/ modules/locale/ modules/menu/ modules/node/ modules/openid/ modules/path/ modules/php/ modules/ping/ modules/poll/ modules/profile/ modules/search/ modules/statistics/ modules/syslog/ modules/system/ modules/taxonomy/ modules/throttle/ modules/tracker/ modules/translation/ modules/trigger/ modules/update/ modules/upload/ modules/user/ themes/bluemarine/ themes/chameleon/ themes/chameleon/marvin/ themes/garland/ themes/garland/minnelli/ themes/pushbutton/

luigi at users.alioth.debian.org luigi at users.alioth.debian.org
Fri Mar 12 13:10:22 UTC 2010


Author: luigi
Date: Fri Mar 12 13:10:07 2010
New Revision: 2128

URL: http://svn.debian.org/wsvn/pkg-drupal/?sc=1&rev=2128
Log:
New upstream release - Fixes multiple vulnerabilities (Closes: #572439) (Ref: SA-CORE-2010-001, CVE-TBA)

Added:
    branches/drupal6/includes/lock.inc
      - copied unchanged from r2127, branches/upstream/current-6/includes/lock.inc
Modified:
    branches/drupal6/.htaccess
    branches/drupal6/CHANGELOG.txt
    branches/drupal6/debian/changelog
    branches/drupal6/includes/bootstrap.inc
    branches/drupal6/includes/common.inc
    branches/drupal6/includes/database.inc
    branches/drupal6/includes/database.mysql-common.inc
    branches/drupal6/includes/database.mysql.inc
    branches/drupal6/includes/database.mysqli.inc
    branches/drupal6/includes/database.pgsql.inc
    branches/drupal6/includes/file.inc
    branches/drupal6/includes/form.inc
    branches/drupal6/includes/locale.inc
    branches/drupal6/includes/menu.inc
    branches/drupal6/includes/path.inc
    branches/drupal6/includes/session.inc
    branches/drupal6/includes/theme.inc
    branches/drupal6/includes/theme.maintenance.inc
    branches/drupal6/install.php
    branches/drupal6/misc/teaser.js
    branches/drupal6/modules/aggregator/aggregator.info
    branches/drupal6/modules/block/block.info
    branches/drupal6/modules/blog/blog.info
    branches/drupal6/modules/blogapi/blogapi.info
    branches/drupal6/modules/book/book.info
    branches/drupal6/modules/color/color.info
    branches/drupal6/modules/comment/comment.admin.inc
    branches/drupal6/modules/comment/comment.info
    branches/drupal6/modules/comment/comment.module
    branches/drupal6/modules/contact/contact.info
    branches/drupal6/modules/dblog/dblog.info
    branches/drupal6/modules/dblog/dblog.module
    branches/drupal6/modules/filter/filter.info
    branches/drupal6/modules/filter/filter.module
    branches/drupal6/modules/forum/forum.info
    branches/drupal6/modules/forum/forum.module
    branches/drupal6/modules/help/help.info
    branches/drupal6/modules/locale/locale.info
    branches/drupal6/modules/locale/locale.install
    branches/drupal6/modules/locale/locale.module
    branches/drupal6/modules/menu/menu.info
    branches/drupal6/modules/node/node.info
    branches/drupal6/modules/node/node.module
    branches/drupal6/modules/openid/openid.inc
    branches/drupal6/modules/openid/openid.info
    branches/drupal6/modules/path/path.info
    branches/drupal6/modules/php/php.info
    branches/drupal6/modules/ping/ping.info
    branches/drupal6/modules/poll/poll.info
    branches/drupal6/modules/profile/profile.admin.inc
    branches/drupal6/modules/profile/profile.info
    branches/drupal6/modules/search/search.info
    branches/drupal6/modules/statistics/statistics.info
    branches/drupal6/modules/syslog/syslog.info
    branches/drupal6/modules/system/system.admin.inc
    branches/drupal6/modules/system/system.info
    branches/drupal6/modules/system/system.install
    branches/drupal6/modules/system/system.module
    branches/drupal6/modules/taxonomy/taxonomy.info
    branches/drupal6/modules/taxonomy/taxonomy.module
    branches/drupal6/modules/throttle/throttle.info
    branches/drupal6/modules/tracker/tracker.info
    branches/drupal6/modules/translation/translation.info
    branches/drupal6/modules/trigger/trigger.info
    branches/drupal6/modules/update/update.compare.inc
    branches/drupal6/modules/update/update.info
    branches/drupal6/modules/upload/upload.info
    branches/drupal6/modules/user/user.admin.inc
    branches/drupal6/modules/user/user.info
    branches/drupal6/modules/user/user.module
    branches/drupal6/themes/bluemarine/bluemarine.info
    branches/drupal6/themes/chameleon/chameleon.info
    branches/drupal6/themes/chameleon/marvin/marvin.info
    branches/drupal6/themes/garland/garland.info
    branches/drupal6/themes/garland/minnelli/minnelli.info
    branches/drupal6/themes/pushbutton/pushbutton.info

Modified: branches/drupal6/.htaccess
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/.htaccess?rev=2128&op=diff
==============================================================================
--- branches/drupal6/.htaccess (original)
+++ branches/drupal6/.htaccess Fri Mar 12 13:10:07 2010
@@ -3,7 +3,7 @@
 #
 
 # Protect files and directories from prying eyes.
-<FilesMatch "\.(engine|inc|info|install|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
+<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
   Order allow,deny
 </FilesMatch>
 
@@ -113,4 +113,4 @@
   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
 </IfModule>
 
-# $Id: .htaccess,v 1.90.2.4 2009/12/07 12:00:40 goba Exp $
+# $Id: .htaccess,v 1.90.2.5 2010/02/02 07:25:22 dries Exp $

Modified: branches/drupal6/CHANGELOG.txt
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/CHANGELOG.txt?rev=2128&op=diff
==============================================================================
--- branches/drupal6/CHANGELOG.txt (original)
+++ branches/drupal6/CHANGELOG.txt Fri Mar 12 13:10:07 2010
@@ -1,4 +1,16 @@
-// $Id: CHANGELOG.txt,v 1.253.2.35 2009/12/16 20:47:10 goba Exp $
+// $Id: CHANGELOG.txt,v 1.253.2.37 2010/03/04 00:15:28 goba Exp $
+
+Drupal 6.16, 2010-03-03
+----------------------
+- Fixed security issues (Installation cross site scripting, Open redirection,
+  Locale module cross site scripting, Blocked user session regeneration),
+  see SA-CORE-2010-001.
+- Better support for updated jQuery versions.
+- Reduced resource usage of update.module.
+- Fixed several issues relating to support of install profiles and
+  distributions.
+- Added a locking framework to avoid data corruption on long operations.
+- Fixed a variety of other bugs.
 
 Drupal 6.15, 2009-12-16
 ----------------------
@@ -206,6 +218,11 @@
 - Removed old system updates. Updates from Drupal versions prior to 5.x will
   require upgrading to 5.x before upgrading to 6.x.
 
+Drupal 5.22, 2010-03-03
+-----------------------
+- Fixed security issues (Open redirection, Locale module cross site scripting,
+  Blocked user session regeneration), see SA-CORE-2010-001.
+
 Drupal 5.21, 2009-12-16
 -----------------------
 - Fixed a security issue (Cross site scripting), see SA-CORE-2009-009.

Modified: branches/drupal6/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/debian/changelog?rev=2128&op=diff
==============================================================================
--- branches/drupal6/debian/changelog (original)
+++ branches/drupal6/debian/changelog Fri Mar 12 13:10:07 2010
@@ -1,3 +1,11 @@
+drupal6 (6.16-1) UNRELEASED; urgency=low
+
+  * New upstream release
+    - Fixes multiple vulnerabilities (Closes: #572439)
+      (Ref: SA-CORE-2010-001, CVE-TBA)
+
+ -- Luigi Gangitano <luigi at debian.org>  Fri, 12 Mar 2010 14:04:02 +0100
+
 drupal6 (6.15-2) UNRELEASED; urgency=low
 
   [ Alexandre De Dommelin ]

Modified: branches/drupal6/includes/bootstrap.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/bootstrap.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/bootstrap.inc (original)
+++ branches/drupal6/includes/bootstrap.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: bootstrap.inc,v 1.206.2.13 2009/09/14 13:33:39 goba Exp $
+// $Id: bootstrap.inc,v 1.206.2.14 2010/02/01 16:49:14 goba Exp $
 
 /**
  * @file
@@ -1060,6 +1060,8 @@
         exit;
       }
       // Prepare for non-cached page workflow.
+      require_once variable_get('lock_inc', './includes/lock.inc');
+      lock_init();
       drupal_page_header();
       break;
 

Modified: branches/drupal6/includes/common.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/common.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/common.inc (original)
+++ branches/drupal6/includes/common.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: common.inc,v 1.756.2.74 2009/12/16 20:47:10 goba Exp $
+// $Id: common.inc,v 1.756.2.79 2010/03/04 00:15:28 goba Exp $
 
 /**
  * @file
@@ -311,11 +311,21 @@
  */
 function drupal_goto($path = '', $query = NULL, $fragment = NULL, $http_response_code = 302) {
 
+  $destination = FALSE;
   if (isset($_REQUEST['destination'])) {
-    extract(parse_url(urldecode($_REQUEST['destination'])));
+    $destination = $_REQUEST['destination'];
   }
   else if (isset($_REQUEST['edit']['destination'])) {
-    extract(parse_url(urldecode($_REQUEST['edit']['destination'])));
+    $destination = $_REQUEST['edit']['destination'];
+  }
+
+  if ($destination) {
+    // Do not redirect to an absolute URL originating from user input.
+    $colonpos = strpos($destination, ':');
+    $absolute = ($colonpos !== FALSE && !preg_match('![/?#]!', substr($destination, 0, $colonpos)));
+    if (!$absolute) {
+      extract(parse_url(urldecode($destination)));
+    }
   }
 
   $url = url($path, array('query' => $query, 'fragment' => $fragment, 'absolute' => TRUE));
@@ -1726,7 +1736,7 @@
  * Add a <link> tag to the page's HEAD.
  */
 function drupal_add_link($attributes) {
-  drupal_set_html_head('<link'. drupal_attributes($attributes) ." />\n");
+  drupal_set_html_head('<link'. drupal_attributes($attributes) .' />');
 }
 
 /**
@@ -3495,7 +3505,7 @@
  * White-space generally doesn't matter, except inside values.
  * e.g.
  *
- * @verbatim
+ * @code
  *   key = value
  *   key = "value"
  *   key = 'value'
@@ -3508,16 +3518,16 @@
  *   key
  *   =
  *   'value'
- * @endverbatim
+ * @endcode
  *
  * Arrays are created using a GET-like syntax:
  *
- * @verbatim
+ * @code
  *   key[] = "numeric array"
  *   key[index] = "associative array"
  *   key[index][] = "nested numeric array"
  *   key[index][index] = "nested associative array"
- * @endverbatim
+ * @endcode
  *
  * PHP constants are substituted in, but only when used as the entire value:
  *
@@ -3533,14 +3543,14 @@
  * - package: The name of the package of modules this module belongs to.
  *
  * Example of .info file:
- * @verbatim
+ * @code
  *   name = Forum
  *   description = Enables threaded discussions about general topics.
  *   dependencies[] = taxonomy
  *   dependencies[] = comment
  *   package = Core - optional
  *   version = VERSION
- * @endverbatim
+ * @endcode
  *
  * @param $filename
  *   The file we are parsing. Accepts file with relative or absolute path.
@@ -3549,6 +3559,7 @@
  */
 function drupal_parse_info_file($filename) {
   $info = array();
+  $constants = get_defined_constants();
 
   if (!file_exists($filename)) {
     return $info;
@@ -3592,9 +3603,9 @@
         $parent = &$parent[$key];
       }
 
-      // Handle PHP constants
-      if (defined($value)) {
-        $value = constant($value);
+      // Handle PHP constants.
+      if (isset($constants[$value])) {
+        $value = $constants[$value];
       }
 
       // Insert actual value

Modified: branches/drupal6/includes/database.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/database.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/database.inc (original)
+++ branches/drupal6/includes/database.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: database.inc,v 1.92.2.8 2009/09/14 10:49:34 goba Exp $
+// $Id: database.inc,v 1.92.2.9 2010/02/01 16:32:10 goba Exp $
 
 /**
  * @file
@@ -389,6 +389,27 @@
 }
 
 /**
+ * Adds the DISTINCT flag to the supplied query if a DISTINCT doesn't already
+ * exist in the query. Returns the altered query.
+ *
+ * This will not, and never did guarantee that you will obtain distinct 
+ * values of $table.$field.
+ *
+ * @param $table Unused. Kept to remain API compatibility.
+ * @param $field Unused. Kept to remain API compatibility.
+ * @param $query Query to which the DISTINCT flag should be applied.
+ * @return SQL query with the DISTINCT flag set.
+ */
+function db_distinct_field($table, $field, $query) {
+  $matches = array();
+  if (!preg_match('/^SELECT\s*DISTINCT/i', $query, $matches)) {
+    // Only add distinct to the outer SELECT to avoid messing up subqueries.
+    $query = preg_replace('/^SELECT/i', 'SELECT DISTINCT', $query);
+  }
+  return $query;
+}
+
+/**
  * Restrict a dynamic table, column or constraint name to safe characters.
  *
  * Only keeps alphanumeric and underscores.

Modified: branches/drupal6/includes/database.mysql-common.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/database.mysql-common.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/database.mysql-common.inc (original)
+++ branches/drupal6/includes/database.mysql-common.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: database.mysql-common.inc,v 1.17.2.3 2009/09/14 10:49:34 goba Exp $
+// $Id: database.mysql-common.inc,v 1.17.2.4 2010/03/01 10:37:30 goba Exp $
 
 /**
  * @file
@@ -335,7 +335,7 @@
  *   Default value to be set. NULL for 'default NULL'.
  */
 function db_field_set_default(&$ret, $table, $field, $default) {
-  if ($default == NULL) {
+  if ($default === NULL) {
     $default = 'NULL';
   }
   else {

Modified: branches/drupal6/includes/database.mysql.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/database.mysql.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/database.mysql.inc (original)
+++ branches/drupal6/includes/database.mysql.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: database.mysql.inc,v 1.89.2.1 2009/07/21 08:52:29 goba Exp $
+// $Id: database.mysql.inc,v 1.89.2.2 2010/02/01 16:32:10 goba Exp $
 
 /**
  * @file
@@ -350,30 +350,5 @@
 }
 
 /**
- * Wraps the given table.field entry with a DISTINCT(). The wrapper is added to
- * the SELECT list entry of the given query and the resulting query is returned.
- * This function only applies the wrapper if a DISTINCT doesn't already exist in
- * the query.
- *
- * @param $table Table containing the field to set as DISTINCT
- * @param $field Field to set as DISTINCT
- * @param $query Query to apply the wrapper to
- * @return SQL query with the DISTINCT wrapper surrounding the given table.field.
- */
-function db_distinct_field($table, $field, $query) {
-  $field_to_select = 'DISTINCT('. $table .'.'. $field .')';
-  $matches = array();
-  if (preg_match('/^SELECT(.*?)FROM(.*)/is', $query, $matches)) {
-    $select = preg_replace(
-      '/((?:^|,)\s*)(?<!DISTINCT\()(?:'. $table .'\.)?'. $field .'(\s*(?:,|$))/is',
-      '\1'. $field_to_select .'\2', $matches[1], 1
-    );
-    
-    return 'SELECT'. $select .'FROM'. $matches[2];
-  }
-  return $query;
-}
-
-/**
  * @} End of "ingroup database".
  */

Modified: branches/drupal6/includes/database.mysqli.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/database.mysqli.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/database.mysqli.inc (original)
+++ branches/drupal6/includes/database.mysqli.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: database.mysqli.inc,v 1.54.2.1 2009/07/21 08:52:30 goba Exp $
+// $Id: database.mysqli.inc,v 1.54.2.2 2010/02/01 16:32:10 goba Exp $
 
 /**
  * @file
@@ -352,31 +352,6 @@
 }
 
 /**
- * Wraps the given table.field entry with a DISTINCT(). The wrapper is added to
- * the SELECT list entry of the given query and the resulting query is returned.
- * This function only applies the wrapper if a DISTINCT doesn't already exist in
- * the query.
- *
- * @param $table Table containing the field to set as DISTINCT
- * @param $field Field to set as DISTINCT
- * @param $query Query to apply the wrapper to
- * @return SQL query with the DISTINCT wrapper surrounding the given table.field.
- */
-function db_distinct_field($table, $field, $query) {
-  $field_to_select = 'DISTINCT('. $table .'.'. $field .')';
-  $matches = array();
-  if (preg_match('/^SELECT(.*?)FROM(.*)/is', $query, $matches)) {
-    $select = preg_replace(
-      '/((?:^|,)\s*)(?<!DISTINCT\()(?:'. $table .'\.)?'. $field .'(\s*(?:,|$))/is',
-      '\1'. $field_to_select .'\2', $matches[1], 1
-    );
-    
-    return 'SELECT'. $select .'FROM'.$matches[2];
-  }
-  return $query;
-}
-
-/**
  * @} End of "ingroup database".
  */
 

Modified: branches/drupal6/includes/database.pgsql.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/database.pgsql.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/database.pgsql.inc (original)
+++ branches/drupal6/includes/database.pgsql.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: database.pgsql.inc,v 1.68.2.7 2009/09/14 10:49:34 goba Exp $
+// $Id: database.pgsql.inc,v 1.68.2.8 2010/02/01 16:32:10 goba Exp $
 
 /**
  * @file
@@ -405,29 +405,6 @@
   if (!in_array(strtolower($encoding), array('unicode', 'utf8'))) {
     drupal_set_message($t('Your PostgreSQL database is set up with the wrong character encoding (%encoding). It is possible it will not work as expected. It is advised to recreate it with UTF-8/Unicode encoding. More information can be found in the <a href="@url">PostgreSQL documentation</a>.', array('%encoding' => $encoding, '@url' => 'http://www.postgresql.org/docs/7.4/interactive/multibyte.html')), 'status');
   }
-}
-
-/**
- * Wraps the given table.field entry with a DISTINCT(). The wrapper is added to
- * the SELECT list entry of the given query and the resulting query is returned.
- * This function only applies the wrapper if a DISTINCT doesn't already exist in
- * the query.
- *
- * @param $table Table containing the field to set as DISTINCT
- * @param $field Field to set as DISTINCT
- * @param $query Query to apply the wrapper to
- * @return SQL query with the DISTINCT wrapper surrounding the given table.field.
- */
-function db_distinct_field($table, $field, $query) {
-  if (!preg_match('/FROM\s+\S+\s+AS/si', $query)
-  && !preg_match('/DISTINCT\s+ON\s*\(\s*(' . $table . '\s*\.\s*)?' . $field . '\s*\)/si', $query)
-  && !preg_match('/DISTINCT[ (]' . $field . '/si', $query)
-  && preg_match('/(.*FROM\s+)(.*?\s)(\s*(WHERE|GROUP|HAVING|ORDER|LIMIT|FOR).*)/Asi', $query, $m)) {
-    $query = $m[1];
-    $query .= preg_replace('/([\{\w+\}]+)\s+(' . $table . ')\s/Usi', '(SELECT DISTINCT ON (' . $field . ') * FROM \1) \2 ', $m[2]);
-    $query .= $m[3];
-  }
-  return $query;
 }
 
 /**

Modified: branches/drupal6/includes/file.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/file.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/file.inc (original)
+++ branches/drupal6/includes/file.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: file.inc,v 1.121.2.9 2009/09/16 19:34:14 goba Exp $
+// $Id: file.inc,v 1.121.2.11 2010/03/01 09:51:16 goba Exp $
 
 /**
  * @file
@@ -342,15 +342,24 @@
 }
 
 /**
- * Munge the filename as needed for security purposes. For instance the file
- * name "exploit.php.pps" would become "exploit.php_.pps".
- *
- * @param $filename The name of a file to modify.
- * @param $extensions A space separated list of extensions that should not
- *   be altered.
- * @param $alerts Whether alerts (watchdog, drupal_set_message()) should be
- *   displayed.
- * @return $filename The potentially modified $filename.
+ * Modify a filename as needed for security purposes.
+ *
+ * Dangerous file names will be altered; for instance, the file name
+ * "exploit.php.pps" will become "exploit.php_.pps". All extensions that are
+ * between 2 and 5 characters in length, internal to the file name, and not
+ * included in $extensions will be altered by adding an underscore. If variable
+ * 'allow_insecure_uploads' evaluates to TRUE, no alterations will be made.
+ *
+ * @param $filename
+ *   File name to modify.
+ * @param $extensions
+ *   A space-separated list of extensions that should not be altered.
+ * @param $alerts
+ *   If TRUE, drupal_set_message() will be called to display a message if the
+ *   file name was changed.
+ *
+ * @return
+ *   The potentially modified $filename.
  */
 function file_munge_filename($filename, $extensions, $alerts = TRUE) {
   $original = $filename;
@@ -1194,6 +1203,7 @@
       'au|snd' => 'audio/basic',
       'mid|midi|kar' => 'audio/midi',
       'mpga|mpega|mp2|mp3|m4a' => 'audio/mpeg',
+      'f4a|f4b' => 'audio/mp4',
       'm3u' => 'audio/x-mpegurl',
       'oga|spx' => 'audio/ogg',
       'sid' => 'audio/prs.sid',
@@ -1332,7 +1342,8 @@
       'fli' => 'video/fli',
       'gl' => 'video/gl',
       'mpeg|mpg|mpe' => 'video/mpeg',
-      'mp4' => 'video/mp4',
+      'mp4|f4v|f4p' => 'video/mp4',
+      'flv' => 'video/x-flv',
       'ogv' => 'video/ogg',
       'qt|mov' => 'video/quicktime',
       'mxu' => 'video/vnd.mpegurl',

Modified: branches/drupal6/includes/form.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/form.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/form.inc (original)
+++ branches/drupal6/includes/form.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: form.inc,v 1.265.2.31 2009/12/07 15:54:52 goba Exp $
+// $Id: form.inc,v 1.265.2.32 2010/03/01 09:24:22 goba Exp $
 
 /**
  * @defgroup forms Form builder functions
@@ -132,13 +132,13 @@
   // fields.
   //
   // If $form_state['storage'] or $form_state['rebuild'] has been set
-  // and the form has been submitted, we know that we're in a complex
-  // multi-part process of some sort and the form's workflow is NOT 
+  // and input has been processed, we know that we're in a complex
+  // multi-part process of some sort and the form's workflow is NOT
   // complete. We need to construct a fresh copy of the form, passing
   // in the latest $form_state in addition to any other variables passed
   // into drupal_get_form().
 
-  if ((!empty($form_state['storage']) || !empty($form_state['rebuild'])) && !empty($form_state['submitted']) && !form_get_errors()) {
+  if ((!empty($form_state['storage']) || !empty($form_state['rebuild'])) && !empty($form_state['process_input']) && !form_get_errors()) {
     $form = drupal_rebuild_form($form_id, $form_state, $args);
   }
 
@@ -401,6 +401,7 @@
   // Only process the form if it is programmed or the form_id coming
   // from the POST data is set and matches the current form_id.
   if ((!empty($form['#programmed'])) || (!empty($form['#post']) && (isset($form['#post']['form_id']) && ($form['#post']['form_id'] == $form_id)))) {
+    $form_state['process_input'] = TRUE;
     drupal_validate_form($form_id, $form, $form_state);
 
     // form_clean_id() maintains a cache of element IDs it has seen,

Modified: branches/drupal6/includes/locale.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/locale.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/locale.inc (original)
+++ branches/drupal6/includes/locale.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: locale.inc,v 1.174.2.10 2009/09/15 10:40:26 goba Exp $
+// $Id: locale.inc,v 1.174.2.12 2010/03/04 00:15:28 goba Exp $
 
 /**
  * @file
@@ -34,6 +34,9 @@
   $options = array();
   $form['weight'] = array('#tree' => TRUE);
   foreach ($languages as $langcode => $language) {
+    // Language code should contain no markup, but is emitted
+    // by radio and checkbox options.
+    $langcode = check_plain($langcode);
 
     $options[$langcode] = '';
     if ($language->enabled) {
@@ -335,6 +338,17 @@
  * Validate the language editing form. Reused for custom language addition too.
  */
 function locale_languages_edit_form_validate($form, &$form_state) {
+  // Validate that the name, native, and langcode variables are safe.
+  if (preg_match('/["<>\']/', $form_state['values']['langcode'])) {
+    form_set_error('langcode', t('The characters &lt;, &gt;, " and \' are not allowed in the language code field.'));
+  }
+  if (preg_match('/["<>\']/', $form_state['values']['name'])) {
+    form_set_error('name', t('The characters &lt;, &gt;, " and \' are not allowed in the language name in English field.'));
+  }
+  if (preg_match('/["<>\']/', $form_state['values']['native'])) {
+    form_set_error('native', t('The characters &lt;, &gt;, " and \' are not allowed in the native language name field.'));
+  }
+
   if (!empty($form_state['values']['domain']) && !empty($form_state['values']['prefix'])) {
     form_set_error('prefix', t('Domain and path prefix values should not be set at the same time.'));
   }
@@ -536,8 +550,13 @@
  */
 function locale_translate_seek_form() {
   // Get all languages, except English
-  $languages = locale_language_list('name', TRUE);
-  unset($languages['en']);
+  $raw_languages = locale_language_list('name', TRUE);
+  unset($raw_languages['en']);
+  // Sanitize the values to be used in radios.
+  $languages = array();
+  foreach ($raw_languages as $key => $value) {
+    $languages[check_plain($key)] = check_plain($value);
+  }
 
   // Present edit form preserving previous user settings
   $query = _locale_translate_seek_query();
@@ -2166,6 +2185,7 @@
   }
 
   // Construct the JavaScript file, if there are translations.
+  $data_hash = NULL;
   $data = $status = '';
   if (!empty($translations)) {
 
@@ -2184,22 +2204,38 @@
   $dir = file_create_path(variable_get('locale_js_directory', 'languages'));
 
   // Delete old file, if we have no translations anymore, or a different file to be saved.
-  if (!empty($language->javascript) && (!$data || $language->javascript != $data_hash)) {
+  $changed_hash = $language->javascript != $data_hash;
+  if (!empty($language->javascript) && (!$data || $changed_hash)) {
     file_delete(file_create_path($dir .'/'. $language->language .'_'. $language->javascript .'.js'));
     $language->javascript = '';
     $status = 'deleted';
   }
 
-  // Only create a new file if the content has changed.
-  if ($data && $language->javascript != $data_hash) {
+  // Only create a new file if the content has changed or the original file got
+  // lost.
+  $dest = $dir .'/'. $language->language .'_'. $data_hash .'.js';
+  if ($data && ($changed_hash || !file_exists($dest))) {
     // Ensure that the directory exists and is writable, if possible.
     file_check_directory($dir, TRUE);
 
     // Save the file.
-    $dest = $dir .'/'. $language->language .'_'. $data_hash .'.js';
     if (file_save_data($data, $dest)) {
       $language->javascript = $data_hash;
-      $status = ($status == 'deleted') ? 'updated' : 'created';
+      // If we deleted a previous version of the file and we replace it with a
+      // new one we have an update.
+      if ($status == 'deleted') {
+        $status = 'updated';
+      }
+      // If the file did not exist previously and the data has changed we have
+      // a fresh creation.
+      elseif ($changed_hash) {
+        $status = 'created';
+      }
+      // If the data hash is unchanged the translation was lost and has to be
+      // rebuilt.
+      else {
+        $status = 'rebuilt';
+      }
     }
     else {
       $language->javascript = '';
@@ -2207,9 +2243,10 @@
     }
   }
 
-  // Save the new JavaScript hash (or an empty value if the file
-  // just got deleted). Act only if some operation was executed.
-  if ($status) {
+  // Save the new JavaScript hash (or an empty value if the file just got
+  // deleted). Act only if some operation was executed that changed the hash
+  // code.
+  if ($status && $changed_hash) {
     db_query("UPDATE {languages} SET javascript = '%s' WHERE language = '%s'", $language->javascript, $language->language);
 
     // Update the default language variable if the default language has been altered.
@@ -2227,6 +2264,10 @@
     case 'updated':
       watchdog('locale', 'Updated JavaScript translation file for the language %language.', array('%language' => t($language->name)));
       return TRUE;
+    case 'rebuilt':
+      watchdog('locale', 'JavaScript translation file %file.js was lost.', array('%file' => $language->javascript), WATCHDOG_WARNING);
+      // Proceed to the 'created' case as the JavaScript translation file has
+      // been created again.
     case 'created':
       watchdog('locale', 'Created JavaScript translation file for the language %language.', array('%language' => t($language->name)));
       return TRUE;

Modified: branches/drupal6/includes/menu.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/menu.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/menu.inc (original)
+++ branches/drupal6/includes/menu.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: menu.inc,v 1.255.2.32 2009/10/06 11:59:05 goba Exp $
+// $Id: menu.inc,v 1.255.2.34 2010/02/01 18:00:49 goba Exp $
 
 /**
  * @file
@@ -748,13 +748,14 @@
 
   $num_items = count($items);
   foreach ($items as $i => $data) {
-    $extra_class = NULL;
+    $extra_class = array();
     if ($i == 0) {
-      $extra_class = 'first';
+      $extra_class[] = 'first';
     }
     if ($i == $num_items - 1) {
-      $extra_class = 'last';
-    }
+      $extra_class[] = 'last';
+    }
+    $extra_class = implode(' ', $extra_class);
     $link = theme('menu_item_link', $data['link']);
     if ($data['below']) {
       $output .= theme('menu_item', $link, $data['link']['has_children'], menu_tree_output($data['below']), $data['link']['in_active_trail'], $extra_class);
@@ -1689,15 +1690,28 @@
  * is different and leaves stale data in the menu tables.
  */
 function menu_rebuild() {
-  variable_del('menu_rebuild_needed');
+  if (!lock_acquire('menu_rebuild')) {
+    // Wait for another request that is already doing this work.
+    // We choose to block here since otherwise the router item may not 
+    // be avaiable in menu_execute_active_handler() resulting in a 404.
+    lock_wait('menu_rebuild');
+    return FALSE;
+  }
+
   $menu = menu_router_build(TRUE);
   _menu_navigation_links_rebuild($menu);
   // Clear the menu, page and block caches.
   menu_cache_clear_all();
   _menu_clear_page_cache();
+  
   if (defined('MAINTENANCE_MODE')) {
     variable_set('menu_rebuild_needed', TRUE);
   }
+  else {
+    variable_del('menu_rebuild_needed');
+  }
+  lock_release('menu_rebuild');
+  return TRUE;
 }
 
 /**

Modified: branches/drupal6/includes/path.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/path.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/path.inc (original)
+++ branches/drupal6/includes/path.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: path.inc,v 1.19.2.2 2009/12/16 17:35:11 goba Exp $
+// $Id: path.inc,v 1.19.2.3 2010/03/01 09:19:15 goba Exp $
 
 /**
  * @file
@@ -66,7 +66,7 @@
         return $map[$path_language][$path];
       }
       // Get the most fitting result falling back with alias without language
-      $alias = db_result(db_query("SELECT dst FROM {url_alias} WHERE src = '%s' AND language IN('%s', '') ORDER BY language DESC", $path, $path_language));
+      $alias = db_result(db_query("SELECT dst FROM {url_alias} WHERE src = '%s' AND language IN('%s', '') ORDER BY language DESC, pid DESC", $path, $path_language));
       $map[$path_language][$path] = $alias;
       return $alias;
     }
@@ -77,7 +77,7 @@
       $src = '';
       if (!isset($map[$path_language]) || !($src = array_search($path, $map[$path_language]))) {
         // Get the most fitting result falling back with alias without language
-        if ($src = db_result(db_query("SELECT src FROM {url_alias} WHERE dst = '%s' AND language IN('%s', '') ORDER BY language DESC", $path, $path_language))) {
+        if ($src = db_result(db_query("SELECT src FROM {url_alias} WHERE dst = '%s' AND language IN('%s', '') ORDER BY language DESC, pid DESC", $path, $path_language))) {
           $map[$path_language][$src] = $path;
         }
         else {

Modified: branches/drupal6/includes/session.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/session.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/session.inc (original)
+++ branches/drupal6/includes/session.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: session.inc,v 1.44.2.6 2008/12/11 00:29:34 goba Exp $
+// $Id: session.inc,v 1.44.2.7 2010/03/04 00:15:28 goba Exp $
 
 /**
  * @file
@@ -31,8 +31,9 @@
   // Otherwise, if the session is still active, we have a record of the client's session in the database.
   $user = db_fetch_object(db_query("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s'", $key));
 
-  // We found the client's session record and they are an authenticated user
-  if ($user && $user->uid > 0) {
+  // We found the client's session record and they are an authenticated,
+  // active user.
+  if ($user && $user->uid > 0 && $user->status == 1) {
     // This is done to unserialize the data member of $user
     $user = drupal_unpack($user);
 
@@ -44,7 +45,8 @@
       $user->roles[$role->rid] = $role->name;
     }
   }
-  // We didn't find the client's record (session has expired), or they are an anonymous user.
+  // We didn't find the client's record (session has expired), or they are
+  // blocked, or they are an anonymous user.
   else {
     $session = isset($user->session) ? $user->session : '';
     $user = drupal_anonymous_user($session);

Modified: branches/drupal6/includes/theme.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/theme.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/theme.inc (original)
+++ branches/drupal6/includes/theme.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: theme.inc,v 1.415.2.24 2009/06/18 12:04:04 goba Exp $
+// $Id: theme.inc,v 1.415.2.27 2010/03/01 10:02:01 goba Exp $
 
 /**
  * @file
@@ -273,18 +273,40 @@
       if (!isset($info['template']) && !isset($info['function'])) {
         $result[$hook]['function'] = ($type == 'module' ? 'theme_' : $name .'_') . $hook;
       }
+
+      // Make sure include files is set so we don't generate notices later.
+      if (!isset($info['include files'])) {
+        $result[$hook]['include files'] = array();
+      }
+
       // If a path is set in the info, use what was set. Otherwise use the
       // default path. This is mostly so system.module can declare theme
       // functions on behalf of core .include files.
       // All files are included to be safe. Conditionally included
       // files can prevent them from getting registered.
       if (isset($info['file']) && !isset($info['path'])) {
-        $result[$hook]['file'] = $path .'/'. $info['file'];
-        include_once($result[$hook]['file']);
+        // First, check to see if the fully qualified file exists.
+        $filename = './'. $path .'/'. $info['file'];
+        if (file_exists($filename)) {
+          require_once $filename;
+          $result[$hook]['include files'][] = $filename;
+        }
+        else {
+          $filename = './'. $info['file'];
+          if (file_exists($filename)) {
+            require_once $filename;
+            $result[$hook]['include files'][] = $filename;
+          }
+        }
       }
       elseif (isset($info['file']) && isset($info['path'])) {
-        include_once($info['path'] .'/'. $info['file']);
-      }
+        $filename = './'. $info['path'] .'/'. $info['file'];
+        if (file_exists($filename)) {
+          require_once $filename;
+          $result[$hook]['include files'][] = $filename;
+        }
+      }
+
 
       if (isset($info['template']) && !isset($info['path'])) {
         $result[$hook]['template'] = $path .'/'. $info['template'];
@@ -605,13 +627,30 @@
   $theme_path = $hooks[$hook]['theme path'];
 
   // Include a file if the theme function or preprocess function is held elsewhere.
+  if (!empty($info['include files'])) {
+    foreach ($info['include files'] as $include_file) {
+      include_once($include_file);
+    }
+  }
+
+  // Handle compatibility with theme_registry_alters to prevent failures.
   if (!empty($info['file'])) {
+    static $included_files = array();
     $include_file = $info['file'];
-    if (isset($info['path'])) {
+    if (!empty($info['path'])) {
       $include_file = $info['path'] .'/'. $include_file;
     }
-    include_once($include_file);
-  }
+
+    if (empty($included_files[$include_file])) {
+      // Statically cache files we've already tried to include so we don't
+      // run unnecessary file_exists calls.
+      $included_files[$include_file] = TRUE;
+      if (file_exists('./'. $include_file)) {
+        include_once('./'. $include_file);
+      }
+    }
+  }
+
   if (isset($info['function'])) {
     // The theme call is a function.
     $output = call_user_func_array($info['function'], $args);
@@ -768,13 +807,16 @@
               'function' => $match,
               'arguments' => $info['arguments'],
               'original hook' => $hook,
+              'include files' => $info['include files'],
             );
           }
         }
       }
+
       if (function_exists($prefix .'_'. $hook)) {
         $templates[$hook] = array(
           'function' => $prefix .'_'. $hook,
+          'include files' => $info['include files'],
         );
         // Ensure that the pattern is maintained from base themes to its sub-themes.
         // Each sub-theme will have their functions scanned so the pattern must be
@@ -782,6 +824,8 @@
         if (isset($info['pattern'])) {
           $templates[$hook]['pattern'] = $info['pattern'];
         }
+        // Also ensure that the 'file' property is maintained, because it probably
+        // contains the preprocess.
       }
     }
   }
@@ -845,6 +889,7 @@
       $templates[$hook] = array(
         'template' => $template,
         'path' => dirname($file->filename),
+        'include files' => $cache[$hook]['include files'],
       );
     }
     // Ensure that the pattern is maintained from base themes to its sub-themes.
@@ -873,6 +918,7 @@
             'path' => dirname($files[$match]->filename),
             'arguments' => $info['arguments'],
             'original hook' => $hook,
+            'include files' => $info['include files'],
           );
         }
       }
@@ -1274,7 +1320,7 @@
  *   - Any HTML attributes, such as "colspan", to apply to the table cell.
  *
  *   Here's an example for $rows:
- *   @verbatim
+ *   @code
  *   $rows = array(
  *     // Simple row
  *     array(
@@ -1285,7 +1331,7 @@
  *       'data' => array('Cell 1', array('data' => 'Cell 2', 'colspan' => 2)), 'class' => 'funky'
  *     )
  *   );
- *   @endverbatim
+ *   @endcode
  *
  * @param $attributes
  *   An array of HTML attributes to apply to the table tag.
@@ -1313,7 +1359,7 @@
   // Format the table header:
   if (count($header)) {
     $ts = tablesort_init($header);
-    // HTML requires that the thead tag has tr tags in it follwed by tbody
+    // HTML requires that the thead tag has tr tags in it followed by tbody
     // tags. Using ternary operator to check and see if we have any rows.
     $output .= (count($rows) ? ' <thead><tr>' : ' <tr>');
     foreach ($header as $cell) {

Modified: branches/drupal6/includes/theme.maintenance.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/includes/theme.maintenance.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/includes/theme.maintenance.inc (original)
+++ branches/drupal6/includes/theme.maintenance.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: theme.maintenance.inc,v 1.10.2.1 2009/08/10 11:11:59 goba Exp $
+// $Id: theme.maintenance.inc,v 1.10.2.2 2010/03/04 00:15:28 goba Exp $
 
 /**
  * @file
@@ -125,9 +125,9 @@
     $title = count($messages['error']) > 1 ? st('The following errors must be resolved before you can continue the installation process') : st('The following error must be resolved before you can continue the installation process');
     $variables['messages'] .= '<h3>'. $title .':</h3>';
     $variables['messages'] .= theme('status_messages', 'error');
-    $variables['content'] .= '<p>'. st('Please check the error messages and <a href="!url">try again</a>.', array('!url' => request_uri())) .'</p>';
-  }
-  
+    $variables['content'] .= '<p>'. st('Please check the error messages and <a href="!url">try again</a>.', array('!url' => check_url(request_uri()))) .'</p>';
+  }
+
   // Special handling of warning messages
   if (isset($messages['warning'])) {
     $title = count($messages['warning']) > 1 ? st('The following installation warnings should be carefully reviewed') : st('The following installation warning should be carefully reviewed');

Modified: branches/drupal6/install.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/install.php?rev=2128&op=diff
==============================================================================
--- branches/drupal6/install.php (original)
+++ branches/drupal6/install.php Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: install.php,v 1.113.2.9 2009/04/27 10:50:35 goba Exp $
+// $Id: install.php,v 1.113.2.10 2010/03/01 09:36:01 goba Exp $
 
 require_once './includes/install.inc';
 
@@ -40,6 +40,13 @@
   drupal_load('module', 'system');
   drupal_load('module', 'filter');
 
+  // Install profile chosen, set the global immediately.
+  // This needs to be done before the theme cache gets 
+  // initialized in drupal_maintenance_theme().
+  if (!empty($_GET['profile'])) {
+    $profile = preg_replace('/[^a-zA-Z_0-9]/', '', $_GET['profile']);
+  }
+
   // Set up theme system for the maintenance page.
   drupal_maintenance_theme();
 
@@ -74,15 +81,14 @@
     $task = NULL;
   }
 
-  // Decide which profile to use.
-  if (!empty($_GET['profile'])) {
-    $profile = preg_replace('/[^a-zA-Z_0-9]/', '', $_GET['profile']);
-  }
-  elseif ($profile = install_select_profile()) {
-    install_goto("install.php?profile=$profile");
-  }
-  else {
-    install_no_profile_error();
+  // No profile was passed in GET, ask the user.
+  if (empty($_GET['profile'])) {
+    if ($profile = install_select_profile()) {
+      install_goto("install.php?profile=$profile");
+    }
+    else {
+      install_no_profile_error();
+    }
   }
 
   // Load the profile.

Modified: branches/drupal6/misc/teaser.js
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/misc/teaser.js?rev=2128&op=diff
==============================================================================
--- branches/drupal6/misc/teaser.js (original)
+++ branches/drupal6/misc/teaser.js Fri Mar 12 13:10:07 2010
@@ -1,4 +1,4 @@
-// $Id: teaser.js,v 1.12.2.1 2009/05/20 11:50:54 goba Exp $
+// $Id: teaser.js,v 1.12.2.2 2010/03/01 10:13:18 goba Exp $
 
 /**
  * Auto-attach for teaser behavior.
@@ -88,7 +88,7 @@
       Drupal.behaviors.textarea(teaser.parentNode);
     }
     // Set initial visibility
-    if ($(teaser).is('[@disabled]')) {
+    if ($(teaser).is(':disabled')) {
       $(teaser).parent().hide();
     }
 

Modified: branches/drupal6/modules/aggregator/aggregator.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/aggregator/aggregator.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/aggregator/aggregator.info (original)
+++ branches/drupal6/modules/aggregator/aggregator.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/block/block.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/block/block.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/block/block.info (original)
+++ branches/drupal6/modules/block/block.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/blog/blog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/blog/blog.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/blog/blog.info (original)
+++ branches/drupal6/modules/blog/blog.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/blogapi/blogapi.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/blogapi/blogapi.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/blogapi/blogapi.info (original)
+++ branches/drupal6/modules/blogapi/blogapi.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/book/book.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/book/book.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/book/book.info (original)
+++ branches/drupal6/modules/book/book.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/color/color.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/color/color.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/color/color.info (original)
+++ branches/drupal6/modules/color/color.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/comment/comment.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/comment/comment.admin.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/comment/comment.admin.inc (original)
+++ branches/drupal6/modules/comment/comment.admin.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: comment.admin.inc,v 1.4.2.2 2008/05/19 07:27:35 goba Exp $
+// $Id: comment.admin.inc,v 1.4.2.3 2010/01/28 10:15:11 goba Exp $
 
 /**
  * @file
@@ -84,7 +84,6 @@
   $form_state['values']['comments'] = array_diff($form_state['values']['comments'], array(0));
   if (count($form_state['values']['comments']) == 0) {
     form_set_error('', t('Please select one or more comments to perform the update on.'));
-    drupal_goto('admin/content/comment');
   }
 }
 
@@ -96,7 +95,7 @@
  */
 function comment_admin_overview_submit($form, &$form_state) {
   $operations = comment_operations();
-  if ($operations[$form_state['values']['operation']][1]) {
+  if (!empty($operations[$form_state['values']['operation']][1])) {
     // extract the appropriate database query operation
     $query = $operations[$form_state['values']['operation']][1];
     foreach ($form_state['values']['comments'] as $cid => $value) {

Modified: branches/drupal6/modules/comment/comment.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/comment/comment.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/comment/comment.info (original)
+++ branches/drupal6/modules/comment/comment.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/comment/comment.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/comment/comment.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/comment/comment.module (original)
+++ branches/drupal6/modules/comment/comment.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: comment.module,v 1.617.2.10 2009/09/14 10:36:42 goba Exp $
+// $Id: comment.module,v 1.617.2.14 2010/03/01 09:44:31 goba Exp $
 
 /**
  * @file
@@ -363,13 +363,13 @@
       // Threaded comments. See the documentation for comment_render().
       if ($order == COMMENT_ORDER_NEWEST_FIRST) {
         // Newest first: find the last thread with new comment
-        $result = db_query('(SELECT thread FROM {comments} WHERE nid = %d  AND status = 0 ORDER BY timestamp DESC LIMIT %d) ORDER BY thread DESC LIMIT 1', $node->nid, $new_replies);
+        $result = db_query('SELECT thread FROM (SELECT thread FROM {comments} WHERE nid = %d AND status = 0 ORDER BY timestamp DESC LIMIT %d) AS thread ORDER BY thread DESC LIMIT 1', $node->nid, $new_replies);
         $thread = db_result($result);
         $result_count = db_query("SELECT COUNT(*) FROM {comments} WHERE nid = %d AND status = 0 AND thread > '". $thread ."'", $node->nid);
       }
       else {
         // Oldest first: find the first thread with new comment
-        $result = db_query('(SELECT thread FROM {comments} WHERE nid = %d  AND status = 0 ORDER BY timestamp DESC LIMIT %d) ORDER BY SUBSTRING(thread, 1, (LENGTH(thread) - 1)) LIMIT 1', $node->nid, $new_replies);
+        $result = db_query('SELECT thread FROM (SELECT thread FROM {comments} WHERE nid = %d AND status = 0 ORDER BY timestamp DESC LIMIT %d) AS thread ORDER BY SUBSTRING(thread, 1, (LENGTH(thread) - 1)) LIMIT 1', $node->nid, $new_replies);
         $thread = substr(db_result($result), 0, -1);
         $result_count = db_query("SELECT COUNT(*) FROM {comments} WHERE nid = %d AND status = 0 AND SUBSTRING(thread, 1, (LENGTH(thread) - 1)) < '". $thread ."'", $node->nid);
       }
@@ -1072,20 +1072,20 @@
   if ($action == 'publish') {
     $operations = array(
       'publish' => array(t('Publish the selected comments'), 'UPDATE {comments} SET status = '. COMMENT_PUBLISHED .' WHERE cid = %d'),
-      'delete' => array(t('Delete the selected comments'), '')
+      'delete' => array(t('Delete the selected comments'), ''),
     );
   }
   else if ($action == 'unpublish') {
     $operations = array(
       'unpublish' => array(t('Unpublish the selected comments'), 'UPDATE {comments} SET status = '. COMMENT_NOT_PUBLISHED .' WHERE cid = %d'),
-      'delete' => array(t('Delete the selected comments'), '')
+      'delete' => array(t('Delete the selected comments'), ''),
     );
   }
   else {
     $operations = array(
       'publish' => array(t('Publish the selected comments'), 'UPDATE {comments} SET status = '. COMMENT_PUBLISHED .' WHERE cid = %d'),
       'unpublish' => array(t('Unpublish the selected comments'), 'UPDATE {comments} SET status = '. COMMENT_NOT_PUBLISHED .' WHERE cid = %d'),
-      'delete' => array(t('Delete the selected comments'), '')
+      'delete' => array(t('Delete the selected comments'), ''),
     );
   }
   return $operations;
@@ -1550,16 +1550,20 @@
 }
 
 /**
- * Theme a single comment block.
+ * Themes a single comment and related items.
  *
  * @param $comment
  *   The comment object.
  * @param $node
  *   The comment node.
  * @param $links
- *   An associative array containing control links.
+ *   An associative array containing control links suitable for passing into
+ *   theme_links(). These are generated by modules implementing hook_link() with
+ *   $type='comment'. Typical examples are links for editing and deleting
+ *   comments.
  * @param $visible
- *   Switches between folded/unfolded view.
+ *   Switches between folded/unfolded view. If TRUE the comments are visible, if
+ *   FALSE the comments are folded.
  * @ingroup themeable
  */
 function theme_comment_view($comment, $node, $links = array(), $visible = TRUE) {
@@ -1739,7 +1743,9 @@
  * @ingroup themeable
  */
 function theme_comment_flat_expanded($comment, $node) {
-  return theme('comment_view', $comment, $node, module_invoke_all('link', 'comment', $comment, 0));
+  $links = module_invoke_all('link', 'comment', $comment, 0);
+  drupal_alter('link', $links, $node);
+  return theme('comment_view', $comment, $node, $links);
 }
 
 /**
@@ -1765,7 +1771,9 @@
  * @ingroup themeable
  */
 function theme_comment_thread_expanded($comment, $node) {
-  return theme('comment_view', $comment, $node, module_invoke_all('link', 'comment', $comment, 0));
+  $links = module_invoke_all('link', 'comment', $comment, 0);
+  drupal_alter('link', $links, $node);
+  return theme('comment_view', $comment, $node, $links);
 }
 
 /**

Modified: branches/drupal6/modules/contact/contact.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/contact/contact.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/contact/contact.info (original)
+++ branches/drupal6/modules/contact/contact.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/dblog/dblog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/dblog/dblog.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/dblog/dblog.info (original)
+++ branches/drupal6/modules/dblog/dblog.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/dblog/dblog.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/dblog/dblog.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/dblog/dblog.module (original)
+++ branches/drupal6/modules/dblog/dblog.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: dblog.module,v 1.21.2.2 2008/04/09 21:11:46 goba Exp $
+// $Id: dblog.module,v 1.21.2.3 2010/03/01 10:26:48 goba Exp $
 
 /**
  * @file
@@ -126,6 +126,9 @@
   return $types;
 }
 
+/**
+ * Implementation of hook_watchdog().
+ */
 function dblog_watchdog($log = array()) {
   $current_db = db_set_active();
   db_query("INSERT INTO {watchdog}

Modified: branches/drupal6/modules/filter/filter.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/filter/filter.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/filter/filter.info (original)
+++ branches/drupal6/modules/filter/filter.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/filter/filter.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/filter/filter.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/filter/filter.module (original)
+++ branches/drupal6/modules/filter/filter.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: filter.module,v 1.204.2.9 2009/08/10 11:04:37 goba Exp $
+// $Id: filter.module,v 1.204.2.10 2010/03/01 10:54:29 goba Exp $
 
 /**
  * @file
@@ -912,10 +912,10 @@
       $chunk = preg_replace('!(</'. $block .'>)!', "$1\n\n", $chunk); // Space things out a little
       $chunk = preg_replace("/\n\n+/", "\n\n", $chunk); // take care of duplicates
       $chunk = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "<p>$1</p>\n", $chunk); // make paragraphs, including one at the end
-      $chunk = preg_replace('|<p>\s*</p>\n|', '', $chunk); // under certain strange conditions it could create a P of entirely whitespace
       $chunk = preg_replace("|<p>(<li.+?)</p>|", "$1", $chunk); // problem with nested lists
       $chunk = preg_replace('|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $chunk);
       $chunk = str_replace('</blockquote></p>', '</p></blockquote>', $chunk);
+      $chunk = preg_replace('|<p>\s*</p>\n?|', '', $chunk); // under certain strange conditions it could create a P of entirely whitespace
       $chunk = preg_replace('!<p>\s*(</?'. $block .'[^>]*>)!', "$1", $chunk);
       $chunk = preg_replace('!(</?'. $block .'[^>]*>)\s*</p>!', "$1", $chunk);
       $chunk = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $chunk); // make line breaks

Modified: branches/drupal6/modules/forum/forum.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/forum/forum.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/forum/forum.info (original)
+++ branches/drupal6/modules/forum/forum.info Fri Mar 12 13:10:07 2010
@@ -7,8 +7,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/forum/forum.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/forum/forum.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/forum/forum.module (original)
+++ branches/drupal6/modules/forum/forum.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: forum.module,v 1.448.2.7 2009/06/03 18:27:48 goba Exp $
+// $Id: forum.module,v 1.448.2.8 2010/03/01 11:32:00 goba Exp $
 
 /**
  * @file
@@ -392,7 +392,7 @@
  * Implementation of hook_load().
  */
 function forum_load($node) {
-  $forum = db_fetch_object(db_query('SELECT * FROM {term_node} WHERE vid = %d', $node->vid));
+  $forum = db_fetch_object(db_query('SELECT * FROM {forum} WHERE vid = %d', $node->vid));
 
   return $forum;
 }

Modified: branches/drupal6/modules/help/help.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/help/help.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/help/help.info (original)
+++ branches/drupal6/modules/help/help.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/locale/locale.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/locale/locale.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/locale/locale.info (original)
+++ branches/drupal6/modules/locale/locale.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/locale/locale.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/locale/locale.install?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/locale/locale.install (original)
+++ branches/drupal6/modules/locale/locale.install Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: locale.install,v 1.27.2.1 2009/01/06 15:46:37 goba Exp $
+// $Id: locale.install,v 1.27.2.3 2010/03/04 00:15:28 goba Exp $
 
 /**
  * Implementation of hook_install().
@@ -164,7 +164,7 @@
 
 /**
  * Change language setting variable of content types.
- * 
+ *
  * Use language_content_type_<content_type> instead of language_<content_type>
  * so content types such as 'default', 'count' or 'negotiation' will not
  * interfere with language variables.
@@ -202,6 +202,26 @@
 }
 
 /**
+ * Neutralize unsafe language names in the database.
+ */
+function locale_update_6006() {
+  $ret = array();
+  $matches = db_result(db_query("SELECT 1 FROM {languages} WHERE native LIKE '%<%' OR native LIKE '%>%' OR name LIKE '%<%' OR name LIKE '%>%'"));
+  if ($matches) {
+    $ret[] = update_sql("UPDATE {languages} SET name = REPLACE(name, '<', ''), native = REPLACE(native, '<', '')");
+    $ret[] = update_sql("UPDATE {languages} SET name = REPLACE(name, '>', ''), native = REPLACE(native, '>', '')");
+    drupal_set_message('The language name in English and the native language name values of all the existing custom languages of your site have been sanitized for security purposes. Visit the <a href="'. url('admin/settings/language') .'">Languages</a> page to check these and fix them if necessary.', 'warning');
+  }
+  // Check if some langcode values contain potentially dangerous characters and
+  // warn the user if so. These are not fixed since they are referenced in other
+  // tables (e.g. {node}).
+  if (db_result(db_query("SELECT 1 FROM {languages} WHERE language LIKE '%<%' OR language LIKE '%>%' OR language LIKE '%\"%' OR language LIKE '%\\\\\%'"))) {
+    drupal_set_message('Some of your custom language code values contain invalid characters. You should examine the <a href="'. url('admin/settings/language') .'">Languages</a> page. These must be fixed manually.', 'error');
+  }
+  return $ret;
+}
+
+/**
  * @} End of "defgroup updates-5.x-to-6.x"
  */
 
@@ -217,6 +237,26 @@
     }
   }
 
+  // Clear variables.
+  variable_del('language_default');
+  variable_del('language_count');
+  variable_del('language_content_type_default');
+  variable_del('language_content_type_negotiation');
+  variable_del('locale_cache_strings');
+  variable_del('locale_js_directory');
+  variable_del('javascript_parsed');
+  variable_del('language_negotiation');
+
+  foreach (node_get_types() as $type => $content_type) {
+    variable_del("language_content_type_$type");
+  }
+
+  // Switch back to English: with a $language->language value different from
+  // 'en' successive calls of t() might result in calling locale(), which in
+  // turn might try to query the unexisting {locales_source} and
+  // {locales_target} tables.
+  drupal_init_language();
+
   // Remove tables.
   drupal_uninstall_schema('locale');
 }
@@ -395,4 +435,3 @@
 
   return $schema;
 }
-

Modified: branches/drupal6/modules/locale/locale.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/locale/locale.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/locale/locale.module (original)
+++ branches/drupal6/modules/locale/locale.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: locale.module,v 1.212.2.6 2009/02/25 11:47:37 goba Exp $
+// $Id: locale.module,v 1.212.2.10 2010/03/04 00:15:28 goba Exp $
 
 /**
  * @file
@@ -215,7 +215,7 @@
     $names = array();
     foreach ($languages as $langcode => $item) {
       $name = t($item->name);
-      $names[$langcode] = $name . ($item->native != $name ? ' ('. $item->native .')' : '');
+      $names[check_plain($langcode)] = check_plain($name . ($item->native != $name ? ' ('. $item->native .')' : ''));
     }
     $form['locale'] = array(
       '#type' => 'fieldset',
@@ -228,7 +228,7 @@
     $form['locale']['language'] = array(
       '#type' => (count($names) <= 5 ? 'radios' : 'select'),
       '#title' => t('Language'),
-      '#default_value' => $user_preferred_language->language,
+      '#default_value' => check_plain($user_preferred_language->language),
       '#options' => $names,
       '#description' => ($mode == LANGUAGE_NEGOTIATION_PATH) ? t("This account's default language for e-mails, and preferred language for site presentation.") : t("This account's default language for e-mails."),
     );
@@ -301,6 +301,15 @@
   );
 }
 
+/**
+ * Implementation of hook_node_type().
+ */
+function locale_node_type($op, $info) {
+  if ($op == 'delete') {
+    variable_del('language_content_type_'. $info->type);
+  }
+}
+
 // ---------------------------------------------------------------------------------
 // Locale core functionality
 
@@ -345,7 +354,7 @@
       if ($cache = cache_get('locale:'. $langcode, 'cache')) {
         $locale_t[$langcode] = $cache->data;
       }
-      else {
+      elseif (lock_acquire('locale_cache_' . $langcode)) {
         // Refresh database stored cache of translations for given language.
         // We only store short strings used in current version, to improve
         // performance and consume less memory.
@@ -354,6 +363,7 @@
           $locale_t[$langcode][$data->source] = (empty($data->translation) ? TRUE : $data->translation);
         }
         cache_set('locale:'. $langcode, $locale_t[$langcode]);
+        lock_release('locale_cache_' . $langcode);
       }
     }
   }
@@ -505,7 +515,6 @@
             // Don't parse our own translations files.
             if (substr($filepath, 0, strlen($dir)) != $dir) {
               locale_inc_callback('_locale_parse_js_file', $filepath);
-              watchdog('locale', 'Parsed JavaScript file %file.', array('%file' => $filepath));
               $parsed[] = $filepath;
               $new_files = TRUE;
             }

Modified: branches/drupal6/modules/menu/menu.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/menu/menu.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/menu/menu.info (original)
+++ branches/drupal6/modules/menu/menu.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/node/node.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/node/node.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/node/node.info (original)
+++ branches/drupal6/modules/node/node.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/node/node.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/node/node.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/node/node.module (original)
+++ branches/drupal6/modules/node/node.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: node.module,v 1.947.2.19 2009/09/23 09:09:30 goba Exp $
+// $Id: node.module,v 1.947.2.22 2010/03/03 21:36:37 goba Exp $
 
 /**
  * @file
@@ -7,6 +7,12 @@
  * programmatically submit nodes using the usual form API pattern.
  */
 
+/**
+ * Nodes changed before this time are always marked as read.
+ *
+ * Nodes changed after this time may be marked new, updated, or read, depending
+ * on their state for the current user. Defaults to 30 days ago.
+ */
 define('NODE_NEW_LIMIT', time() - 30 * 24 * 60 * 60);
 
 define('NODE_BUILD_NORMAL', 0);
@@ -859,13 +865,10 @@
   node_invoke_nodeapi($node, 'presave');
   global $user;
 
-  $node->is_new = FALSE;
-
-  // Apply filters to some default node fields:
-  if (empty($node->nid)) {
-    // Insert a new node.
-    $node->is_new = TRUE;
-
+  // Insert a new node.
+  $node->is_new = empty($node->nid);
+
+  if ($node->is_new || !empty($node->revision)) {
     // When inserting a node, $node->log must be set because
     // {node_revisions}.log does not (and cannot) have a default
     // value.  If the user does not have permission to create
@@ -874,35 +877,35 @@
     if (!isset($node->log)) {
       $node->log = '';
     }
-
-    // For the same reasons, make sure we have $node->teaser and
-    // $node->body.  We should consider making these fields nullable
-    // in a future version since node types are not required to use them.
-    if (!isset($node->teaser)) {
-      $node->teaser = '';
-    }
-    if (!isset($node->body)) {
-      $node->body = '';
-    }
-  }
-  elseif (!empty($node->revision)) {
+  }
+  elseif (empty($node->log)) {
+    // When updating a node, however, avoid clobbering an existing
+    // log entry with an empty one.
+    unset($node->log);
+  }
+
+  // For the same reasons, make sure we have $node->teaser and
+  // $node->body set.
+  if (!isset($node->teaser)) {
+    $node->teaser = '';
+  }
+  if (!isset($node->body)) {
+    $node->body = '';
+  }
+
+  // Save the old revision if needed.
+  if (!$node->is_new && !empty($node->revision) && $node->vid) {
     $node->old_vid = $node->vid;
   }
-  else {
-    // When updating a node, avoid clobberring an existing log entry with an empty one.
-    if (empty($node->log)) {
-      unset($node->log);
-    }
-  }
-
-  // Set some required fields:
+
+  $time = time();
   if (empty($node->created)) {
-    $node->created = time();
+    $node->created = $time;
   }
   // The changed timestamp is always updated for bookkeeping purposes (revisions, searching, ...)
-  $node->changed = time();
-
-  $node->timestamp = time();
+  $node->changed = $time;
+
+  $node->timestamp = $time;
   $node->format = isset($node->format) ? $node->format : FILTER_FORMAT_DEFAULT;
 
   // Generate the node table query and the node_revisions table query.
@@ -958,7 +961,9 @@
  */
 function node_delete($nid) {
 
-  $node = node_load($nid);
+  // Clear the cache before the load, so if multiple nodes are deleted, the
+  // memory will not fill up with nodes (possibly) already removed.
+  $node = node_load($nid, NULL, TRUE);
 
   if (node_access('delete', $node)) {
     db_query('DELETE FROM {node} WHERE nid = %d', $node->nid);

Modified: branches/drupal6/modules/openid/openid.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/openid/openid.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/openid/openid.inc (original)
+++ branches/drupal6/modules/openid/openid.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: openid.inc,v 1.8.2.2 2009/12/16 17:54:55 goba Exp $
+// $Id: openid.inc,v 1.8.2.3 2010/03/01 11:06:41 goba Exp $
 
 /**
  * @file
@@ -115,6 +115,9 @@
     $normalized_url = 'http://'. $url;
   }
 
+  // Strip the fragment and fragment delimiter if present.
+  $normalized_url = strtok($normalized_url, '#');
+
   if (substr_count($normalized_url, '/') < 3) {
     $normalized_url .= '/';
   }

Modified: branches/drupal6/modules/openid/openid.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/openid/openid.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/openid/openid.info (original)
+++ branches/drupal6/modules/openid/openid.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 package = Core - optional
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/path/path.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/path/path.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/path/path.info (original)
+++ branches/drupal6/modules/path/path.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/php/php.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/php/php.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/php/php.info (original)
+++ branches/drupal6/modules/php/php.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/ping/ping.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/ping/ping.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/ping/ping.info (original)
+++ branches/drupal6/modules/ping/ping.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/poll/poll.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/poll/poll.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/poll/poll.info (original)
+++ branches/drupal6/modules/poll/poll.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/profile/profile.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/profile/profile.admin.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/profile/profile.admin.inc (original)
+++ branches/drupal6/modules/profile/profile.admin.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: profile.admin.inc,v 1.8.2.1 2008/10/16 12:43:08 goba Exp $
+// $Id: profile.admin.inc,v 1.8.2.2 2010/03/01 10:20:28 goba Exp $
 
 /**
  * @file
@@ -400,6 +400,5 @@
   while ($data = db_fetch_object($result)) {
     $matches[$data->category] = check_plain($data->category);
   }
-  print drupal_to_js($matches);
-  exit();
-}
+  drupal_json($matches);
+}

Modified: branches/drupal6/modules/profile/profile.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/profile/profile.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/profile/profile.info (original)
+++ branches/drupal6/modules/profile/profile.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/search/search.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/search/search.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/search/search.info (original)
+++ branches/drupal6/modules/search/search.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/statistics/statistics.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/statistics/statistics.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/statistics/statistics.info (original)
+++ branches/drupal6/modules/statistics/statistics.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/syslog/syslog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/syslog/syslog.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/syslog/syslog.info (original)
+++ branches/drupal6/modules/syslog/syslog.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/system/system.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/system/system.admin.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/system/system.admin.inc (original)
+++ branches/drupal6/modules/system/system.admin.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: system.admin.inc,v 1.63.2.13 2009/09/16 18:02:32 goba Exp $
+// $Id: system.admin.inc,v 1.63.2.14 2010/03/01 10:20:28 goba Exp $
 
 /**
  * @file
@@ -1626,8 +1626,7 @@
  */
 function system_date_time_lookup() {
   $result = format_date(time(), 'custom', $_GET['format']);
-  echo drupal_to_js($result);
-  exit;
+  drupal_json($result);
 }
 
 /**

Modified: branches/drupal6/modules/system/system.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/system/system.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/system/system.info (original)
+++ branches/drupal6/modules/system/system.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/system/system.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/system/system.install?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/system/system.install (original)
+++ branches/drupal6/modules/system/system.install Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: system.install,v 1.238.2.19 2009/11/06 08:39:46 goba Exp $
+// $Id: system.install,v 1.238.2.22 2010/03/01 16:53:57 goba Exp $
 
 /**
  * Test and report Drupal installation requirements.
@@ -962,6 +962,31 @@
     'primary key' => array('mlid'),
     );
 
+  $schema['semaphore'] = array(
+    'description' => 'Table for holding semaphores, locks, flags, etc. that cannot be stored as Drupal variables since they must not be cached.',
+    'fields' => array(
+      'name' => array(
+        'description' => 'Primary Key: Unique name.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'value' => array(
+        'description' => 'A value.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'expire' => array(
+        'description' => 'A Unix timestamp with microseconds indicating when the semaphore should expire.',
+        'type' => 'float',
+        'size' => 'big',
+        'not null' => TRUE),
+      ),
+    'indexes' => array('expire' => array('expire')),
+    'primary key' => array('name'),
+    );
+
   $schema['sessions'] = array(
     'description' => "Drupal's session handlers read and write into the sessions table. Each record represents a user session, either anonymous or authenticated.",
     'fields' => array(
@@ -1100,9 +1125,9 @@
         'not null' => TRUE,
         'default' => '')
       ),
-    'unique keys' => array('dst_language' => array('dst', 'language')),
+    'unique keys' => array('dst_language_pid' => array('dst', 'language', 'pid')),
     'primary key' => array('pid'),
-    'indexes' => array('src_language' => array('src', 'language')),
+    'indexes' => array('src_language_pid' => array('src', 'language', 'pid')),
     );
 
   return $schema;
@@ -2623,6 +2648,49 @@
 }
 
 /**
+ * Add semaphore table.
+ */
+function system_update_6054() {
+  $ret = array();
+
+  $schema['semaphore'] = array(
+    'fields' => array(
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'value' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'expire' => array(
+        'type' => 'float',
+        'size' => 'big',
+        'not null' => TRUE),
+      ),
+    'indexes' => array('expire' => array('expire')),
+    'primary key' => array('name'),
+  );
+  db_create_table($ret, 'semaphore', $schema['semaphore']);
+
+  return $ret;
+}
+
+/**
+ * Improve indexes on the {url_alias} table.
+ */
+function system_update_6055() {
+  $ret = array();
+  db_drop_index($ret, 'url_alias', 'src_language');
+  db_drop_unique_key($ret, 'url_alias', 'dst_language');
+  db_add_index($ret, 'url_alias', 'src_language_pid', array('src', 'language', 'pid'));
+  db_add_unique_key($ret, 'url_alias', 'dst_language_pid', array('dst', 'language', 'pid'));
+  return $ret;
+}
+
+/**
  * @} End of "defgroup updates-6.x-extra"
  * The next series of updates should start at 7000.
  */

Modified: branches/drupal6/modules/system/system.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/system/system.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/system/system.module (original)
+++ branches/drupal6/modules/system/system.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: system.module,v 1.585.2.47 2009/12/16 20:47:10 goba Exp $
+// $Id: system.module,v 1.585.2.49 2010/03/04 00:15:28 goba Exp $
 
 /**
  * @file
@@ -9,7 +9,7 @@
 /**
  * The current system version.
  */
-define('VERSION', '6.15');
+define('VERSION', '6.16');
 
 /**
  * Core API compatibility.

Modified: branches/drupal6/modules/taxonomy/taxonomy.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/taxonomy/taxonomy.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/taxonomy/taxonomy.info (original)
+++ branches/drupal6/modules/taxonomy/taxonomy.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/taxonomy/taxonomy.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/taxonomy/taxonomy.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/taxonomy/taxonomy.module (original)
+++ branches/drupal6/modules/taxonomy/taxonomy.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: taxonomy.module,v 1.414.2.12 2009/09/15 11:13:08 goba Exp $
+// $Id: taxonomy.module,v 1.414.2.13 2010/03/01 10:08:21 goba Exp $
 
 /**
  * @file
@@ -967,13 +967,19 @@
  *
  * @param $vid
  *   The vocabulary's ID
+ * @param $reset
+ *   Whether to reset the internal taxonomy_vocabulary_load cache.
  *
  * @return
  *   The vocabulary object with all of its metadata, if exists, FALSE otherwise.
  *   Results are statically cached.
  */
-function taxonomy_vocabulary_load($vid) {
+function taxonomy_vocabulary_load($vid, $reset = FALSE) {
   static $vocabularies = array();
+
+  if ($reset) {
+    $vocabularies = array();
+  }
 
   if (!isset($vocabularies[$vid])) {
     // Initialize so if this vocabulary does not exist, we have
@@ -1001,12 +1007,18 @@
  *
  * @param $tid
  *   A term's ID
+ * @param $reset
+ *   Whether to reset the internal taxonomy_get_term cache.
  *
  * @return Object
  *   A term object. Results are statically cached.
  */
-function taxonomy_get_term($tid) {
+function taxonomy_get_term($tid, $reset = FALSE) {
   static $terms = array();
+
+  if ($reset) {
+    $terms = array();
+  }
 
   if (!isset($terms[$tid])) {
     $terms[$tid] = db_fetch_object(db_query('SELECT * FROM {term_data} WHERE tid = %d', $tid));

Modified: branches/drupal6/modules/throttle/throttle.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/throttle/throttle.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/throttle/throttle.info (original)
+++ branches/drupal6/modules/throttle/throttle.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/tracker/tracker.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/tracker/tracker.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/tracker/tracker.info (original)
+++ branches/drupal6/modules/tracker/tracker.info Fri Mar 12 13:10:07 2010
@@ -6,8 +6,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/translation/translation.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/translation/translation.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/translation/translation.info (original)
+++ branches/drupal6/modules/translation/translation.info Fri Mar 12 13:10:07 2010
@@ -6,8 +6,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/trigger/trigger.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/trigger/trigger.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/trigger/trigger.info (original)
+++ branches/drupal6/modules/trigger/trigger.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/update/update.compare.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/update/update.compare.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/update/update.compare.inc (original)
+++ branches/drupal6/modules/update/update.compare.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: update.compare.inc,v 1.8.2.7 2009/11/06 07:26:21 goba Exp $
+// $Id: update.compare.inc,v 1.8.2.8 2010/03/01 09:40:45 goba Exp $
 
 /**
  * @file
@@ -124,7 +124,9 @@
       // project can have multiple modules or themes.
       $projects[$project_name] = array(
         'name' => $project_name,
-        'info' => $file->info,
+        // Only save attributes from the .info file we care about so we do not
+        // bloat our RAM usage needlessly.
+        'info' => update_filter_project_info($file->info),
         'datestamp' => $file->info['datestamp'],
         'includes' => array($file->name => $file->info['name']),
         'project_type' => $project_name == 'drupal' ? 'core' : $project_type,
@@ -667,3 +669,28 @@
   }
   return $projects;
 }
+
+/**
+ * Filter the project .info data to only save attributes we need.
+ *
+ * @param array $info
+ *   Array of .info file data as returned by drupal_parse_info_file().
+ *
+ * @return
+ *   Array of .info file data we need for the Update manager.
+ *
+ * @see _update_process_info_list()
+ */
+function update_filter_project_info($info) {
+  $whitelist = array(
+    '_info_file_ctime',
+    'datestamp',
+    'major',
+    'name',
+    'package',
+    'project',
+    'project status url',
+    'version', 
+  );
+  return array_intersect_key($info, drupal_map_assoc($whitelist));
+}

Modified: branches/drupal6/modules/update/update.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/update/update.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/update/update.info (original)
+++ branches/drupal6/modules/update/update.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 package = Core - optional
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/upload/upload.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/upload/upload.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/upload/upload.info (original)
+++ branches/drupal6/modules/upload/upload.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/user/user.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/user/user.admin.inc?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/user/user.admin.inc (original)
+++ branches/drupal6/modules/user/user.admin.inc Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: user.admin.inc,v 1.18.2.1 2008/08/13 23:59:14 drumm Exp $
+// $Id: user.admin.inc,v 1.18.2.2 2010/03/01 11:15:38 goba Exp $
 
 /**
  * @file
@@ -139,9 +139,18 @@
     t('Operations')
   );
 
-  $sql = 'SELECT DISTINCT u.uid, u.name, u.status, u.created, u.access FROM {users} u LEFT JOIN {users_roles} ur ON u.uid = ur.uid '. $filter['join'] .' WHERE u.uid != 0 '. $filter['where'];
+  if ($filter['join'] != "") {
+    $sql = 'SELECT DISTINCT u.uid, u.name, u.status, u.created, u.access FROM {users} u LEFT JOIN {users_roles} ur ON u.uid = ur.uid '. $filter['join'] .' WHERE u.uid != 0 '. $filter['where'];
+    $query_count = 'SELECT COUNT(DISTINCT u.uid) FROM {users} u LEFT JOIN {users_roles} ur ON u.uid = ur.uid '. $filter['join'] .' WHERE u.uid != 0 '. $filter['where'];
+  }
+  else {
+    $sql = 'SELECT u.uid, u.name, u.status, u.created, u.access FROM {users} u WHERE u.uid != 0 '. $filter['where'];
+    $query_count = 'SELECT COUNT(u.uid) FROM {users} u WHERE u.uid != 0 '. $filter['where'];
+  }
+
+  
   $sql .= tablesort_sql($header);
-  $query_count = 'SELECT COUNT(DISTINCT u.uid) FROM {users} u LEFT JOIN {users_roles} ur ON u.uid = ur.uid '. $filter['join'] .' WHERE u.uid != 0 '. $filter['where'];
+
   $result = pager_query($sql, 50, 0, $query_count, $filter['args']);
 
   $form['options'] = array(

Modified: branches/drupal6/modules/user/user.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/user/user.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/user/user.info (original)
+++ branches/drupal6/modules/user/user.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/modules/user/user.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/modules/user/user.module?rev=2128&op=diff
==============================================================================
--- branches/drupal6/modules/user/user.module (original)
+++ branches/drupal6/modules/user/user.module Fri Mar 12 13:10:07 2010
@@ -1,5 +1,5 @@
 <?php
-// $Id: user.module,v 1.892.2.19 2009/11/06 07:36:34 goba Exp $
+// $Id: user.module,v 1.892.2.20 2010/03/01 11:42:50 goba Exp $
 
 /**
  * @file
@@ -2132,7 +2132,7 @@
  */
 function user_preferred_language($account, $default = NULL) {
   $language_list = language_list();
-  if ($account->language && isset($language_list[$account->language])) {
+  if (!empty($account->language) && isset($language_list[$account->language])) {
     return $language_list[$account->language];
   }
   else {

Modified: branches/drupal6/themes/bluemarine/bluemarine.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/themes/bluemarine/bluemarine.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/themes/bluemarine/bluemarine.info (original)
+++ branches/drupal6/themes/bluemarine/bluemarine.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 core = 6.x
 engine = phptemplate
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/themes/chameleon/chameleon.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/themes/chameleon/chameleon.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/themes/chameleon/chameleon.info (original)
+++ branches/drupal6/themes/chameleon/chameleon.info Fri Mar 12 13:10:07 2010
@@ -12,8 +12,8 @@
 version = VERSION
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/themes/chameleon/marvin/marvin.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/themes/chameleon/marvin/marvin.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/themes/chameleon/marvin/marvin.info (original)
+++ branches/drupal6/themes/chameleon/marvin/marvin.info Fri Mar 12 13:10:07 2010
@@ -7,8 +7,8 @@
 core = 6.x
 base theme = chameleon
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/themes/garland/garland.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/themes/garland/garland.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/themes/garland/garland.info (original)
+++ branches/drupal6/themes/garland/garland.info Fri Mar 12 13:10:07 2010
@@ -7,8 +7,8 @@
 stylesheets[all][] = style.css
 stylesheets[print][] = print.css
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/themes/garland/minnelli/minnelli.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/themes/garland/minnelli/minnelli.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/themes/garland/minnelli/minnelli.info (original)
+++ branches/drupal6/themes/garland/minnelli/minnelli.info Fri Mar 12 13:10:07 2010
@@ -6,8 +6,8 @@
 base theme = garland
 stylesheets[all][] = minnelli.css
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 

Modified: branches/drupal6/themes/pushbutton/pushbutton.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal6/themes/pushbutton/pushbutton.info?rev=2128&op=diff
==============================================================================
--- branches/drupal6/themes/pushbutton/pushbutton.info (original)
+++ branches/drupal6/themes/pushbutton/pushbutton.info Fri Mar 12 13:10:07 2010
@@ -5,8 +5,8 @@
 core = 6.x
 engine = phptemplate
 
-; Information added by drupal.org packaging script on 2009-12-16
-version = "6.15"
+; Information added by drupal.org packaging script on 2010-03-04
+version = "6.16"
 project = "drupal"
-datestamp = "1260996916"
+datestamp = "1267662008"
 




More information about the Pkg-drupal-commits mailing list