[Pkg-drupal-commits] r2126 - in /branches/upstream/current-6: ./ 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:03:17 UTC 2010
Author: luigi
Date: Fri Mar 12 13:03:10 2010
New Revision: 2126
URL: http://svn.debian.org/wsvn/pkg-drupal/?sc=1&rev=2126
Log:
[svn-upgrade] Integrating new upstream version, drupal6 (6.16)
Added:
branches/upstream/current-6/includes/lock.inc
Modified:
branches/upstream/current-6/.htaccess
branches/upstream/current-6/CHANGELOG.txt
branches/upstream/current-6/includes/bootstrap.inc
branches/upstream/current-6/includes/common.inc
branches/upstream/current-6/includes/database.inc
branches/upstream/current-6/includes/database.mysql-common.inc
branches/upstream/current-6/includes/database.mysql.inc
branches/upstream/current-6/includes/database.mysqli.inc
branches/upstream/current-6/includes/database.pgsql.inc
branches/upstream/current-6/includes/file.inc
branches/upstream/current-6/includes/form.inc
branches/upstream/current-6/includes/locale.inc
branches/upstream/current-6/includes/menu.inc
branches/upstream/current-6/includes/path.inc
branches/upstream/current-6/includes/session.inc
branches/upstream/current-6/includes/theme.inc
branches/upstream/current-6/includes/theme.maintenance.inc
branches/upstream/current-6/install.php
branches/upstream/current-6/misc/teaser.js
branches/upstream/current-6/modules/aggregator/aggregator.info
branches/upstream/current-6/modules/block/block.info
branches/upstream/current-6/modules/blog/blog.info
branches/upstream/current-6/modules/blogapi/blogapi.info
branches/upstream/current-6/modules/book/book.info
branches/upstream/current-6/modules/color/color.info
branches/upstream/current-6/modules/comment/comment.admin.inc
branches/upstream/current-6/modules/comment/comment.info
branches/upstream/current-6/modules/comment/comment.module
branches/upstream/current-6/modules/contact/contact.info
branches/upstream/current-6/modules/dblog/dblog.info
branches/upstream/current-6/modules/dblog/dblog.module
branches/upstream/current-6/modules/filter/filter.info
branches/upstream/current-6/modules/filter/filter.module
branches/upstream/current-6/modules/forum/forum.info
branches/upstream/current-6/modules/forum/forum.module
branches/upstream/current-6/modules/help/help.info
branches/upstream/current-6/modules/locale/locale.info
branches/upstream/current-6/modules/locale/locale.install
branches/upstream/current-6/modules/locale/locale.module
branches/upstream/current-6/modules/menu/menu.info
branches/upstream/current-6/modules/node/node.info
branches/upstream/current-6/modules/node/node.module
branches/upstream/current-6/modules/openid/openid.inc
branches/upstream/current-6/modules/openid/openid.info
branches/upstream/current-6/modules/path/path.info
branches/upstream/current-6/modules/php/php.info
branches/upstream/current-6/modules/ping/ping.info
branches/upstream/current-6/modules/poll/poll.info
branches/upstream/current-6/modules/profile/profile.admin.inc
branches/upstream/current-6/modules/profile/profile.info
branches/upstream/current-6/modules/search/search.info
branches/upstream/current-6/modules/statistics/statistics.info
branches/upstream/current-6/modules/syslog/syslog.info
branches/upstream/current-6/modules/system/system.admin.inc
branches/upstream/current-6/modules/system/system.info
branches/upstream/current-6/modules/system/system.install
branches/upstream/current-6/modules/system/system.module
branches/upstream/current-6/modules/taxonomy/taxonomy.info
branches/upstream/current-6/modules/taxonomy/taxonomy.module
branches/upstream/current-6/modules/throttle/throttle.info
branches/upstream/current-6/modules/tracker/tracker.info
branches/upstream/current-6/modules/translation/translation.info
branches/upstream/current-6/modules/trigger/trigger.info
branches/upstream/current-6/modules/update/update.compare.inc
branches/upstream/current-6/modules/update/update.info
branches/upstream/current-6/modules/upload/upload.info
branches/upstream/current-6/modules/user/user.admin.inc
branches/upstream/current-6/modules/user/user.info
branches/upstream/current-6/modules/user/user.module
branches/upstream/current-6/themes/bluemarine/bluemarine.info
branches/upstream/current-6/themes/chameleon/chameleon.info
branches/upstream/current-6/themes/chameleon/marvin/marvin.info
branches/upstream/current-6/themes/garland/garland.info
branches/upstream/current-6/themes/garland/minnelli/minnelli.info
branches/upstream/current-6/themes/pushbutton/pushbutton.info
Modified: branches/upstream/current-6/.htaccess
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/.htaccess?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/.htaccess (original)
+++ branches/upstream/current-6/.htaccess Fri Mar 12 13:03:10 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/upstream/current-6/CHANGELOG.txt
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/CHANGELOG.txt?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/CHANGELOG.txt (original)
+++ branches/upstream/current-6/CHANGELOG.txt Fri Mar 12 13:03:10 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/upstream/current-6/includes/bootstrap.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/bootstrap.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/bootstrap.inc (original)
+++ branches/upstream/current-6/includes/bootstrap.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/common.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/common.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/common.inc (original)
+++ branches/upstream/current-6/includes/common.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/database.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/database.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/database.inc (original)
+++ branches/upstream/current-6/includes/database.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/database.mysql-common.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/database.mysql-common.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/database.mysql-common.inc (original)
+++ branches/upstream/current-6/includes/database.mysql-common.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/database.mysql.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/database.mysql.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/database.mysql.inc (original)
+++ branches/upstream/current-6/includes/database.mysql.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/database.mysqli.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/database.mysqli.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/database.mysqli.inc (original)
+++ branches/upstream/current-6/includes/database.mysqli.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/database.pgsql.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/database.pgsql.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/database.pgsql.inc (original)
+++ branches/upstream/current-6/includes/database.pgsql.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/file.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/file.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/file.inc (original)
+++ branches/upstream/current-6/includes/file.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/form.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/form.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/form.inc (original)
+++ branches/upstream/current-6/includes/form.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/locale.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/locale.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/locale.inc (original)
+++ branches/upstream/current-6/includes/locale.inc Fri Mar 12 13:03:10 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 <, >, " and \' are not allowed in the language code field.'));
+ }
+ if (preg_match('/["<>\']/', $form_state['values']['name'])) {
+ form_set_error('name', t('The characters <, >, " 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 <, >, " 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;
Added: branches/upstream/current-6/includes/lock.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/lock.inc?rev=2126&op=file
==============================================================================
--- branches/upstream/current-6/includes/lock.inc (added)
+++ branches/upstream/current-6/includes/lock.inc Fri Mar 12 13:03:10 2010
@@ -1,0 +1,234 @@
+<?php
+// $Id: lock.inc,v 1.1.2.2 2010/02/01 16:49:14 goba Exp $
+
+/**
+ * @file
+ * A database-mediated implementation of a locking mechanism.
+ */
+
+/**
+ * @defgroup lock Functions to coordinate long-running operations across requests.
+ * @{
+ * In most environments, multiple Drupal page requests (a.k.a. threads or
+ * processes) will execute in parallel. This leads to potential conflicts or
+ * race conditions when two requests execute the same code at the same time. A
+ * common example of this is a rebuild like menu_rebuild() where we invoke many
+ * hook implementations to get and process data from all active modules, and
+ * then delete the current data in the database to insert the new afterwards.
+ *
+ * This is a cooperative, advisory lock system. Any long-running operation
+ * that could potentially be attempted in parallel by multiple requests should
+ * try to acquire a lock before proceeding. By obtaiing a lock, one request
+ * notifies any other requests that a specific opertation is in progress which
+ * must not be executed in parallel.
+ *
+ * To use this API, pick a unique name for the lock. A sensible choice is the
+ * name of the function performing the operation. A very simple example use of
+ * this API:
+ * @code
+ * function mymodule_long_operation() {
+ * if (lock_acquire('mymodule_long_operation')) {
+ * // Do the long operation here.
+ * // ...
+ * lock_release('mymodule_long_operation');
+ * }
+ * }
+ * @endcode
+ *
+ * If a function acquires a lock it should always release it when the
+ * operation is complete by calling lock_release(), as in the example.
+ *
+ * A function that has acquired a lock may attempt to renew a lock (extend the
+ * duration of the lock) by calling lock_acquire() again during the operation.
+ * Failure to renew a lock is indicative that another request has acquired
+ * the lock, and that the current operation may need to be aborted.
+ *
+ * If a function fails to acquire a lock it may either immediately return, or
+ * it may call lock_wait() if the rest of the current page request requires
+ * that the operation in question be complete. After lock_wait() returns,
+ * the function may again attempt to acquire the lock, or may simply allow the
+ * page request to proceed on the assumption that a parallel request completed
+ * the operation.
+ *
+ * lock_acquire() and lock_wait() will automatically break (delete) a lock
+ * whose duration has exceeded the timeout specified when it was acquired.
+ *
+ * A function that has acquired a lock may attempt to renew a lock (extend the
+ * duration of the lock) by calling lock_acquire() again during the operation.
+ * Failure to renew a lock is indicative that another request has acquired
+ * the lock, and that the current operation may need to be aborted.
+ *
+ * Alternative implementations of this API (such as APC) may be substituted
+ * by setting the 'lock_inc' variable to an alternate include filepath. Since
+ * this is an API intended to support alternative implementations, code using
+ * this API should never rely upon specific implementation details (for example
+ * no code should look for or directly modify a lock in the {semaphore} table).
+ */
+
+/**
+ * Initialize the locking system.
+ */
+function lock_init() {
+ global $locks;
+
+ $locks = array();
+}
+
+/**
+ * Helper function to get this request's unique id.
+ */
+function _lock_id() {
+ static $lock_id;
+
+ if (!isset($lock_id)) {
+ // Assign a unique id.
+ $lock_id = uniqid(mt_rand(), TRUE);
+ // We only register a shutdown function if a lock is used.
+ register_shutdown_function('lock_release_all', $lock_id);
+ }
+ return $lock_id;
+}
+
+/**
+ * Acquire (or renew) a lock, but do not block if it fails.
+ *
+ * @param $name
+ * The name of the lock.
+ * @param $timeout
+ * A number of seconds (float) before the lock expires.
+ * @return
+ * TRUE if the lock was acquired, FALSE if it failed.
+ */
+function lock_acquire($name, $timeout = 30.0) {
+ global $locks;
+
+ // Insure that the timeout is at least 1 ms.
+ $timeout = max($timeout, 0.001);
+ list($usec, $sec) = explode(' ', microtime());
+ $expire = (float)$usec + (float)$sec + $timeout;
+ if (isset($locks[$name])) {
+ // Try to extend the expiration of a lock we already acquired.
+ if (!db_result(db_query("UPDATE {semaphore} SET expire = %f WHERE name = '%s' AND value = '%s'", $expire, $name, _lock_id()))) {
+ // The lock was broken.
+ unset($locks[$name]);
+ }
+ }
+ else {
+ // Optimistically try to acquire the lock, then retry once if it fails.
+ // The first time through the loop cannot be a retry.
+ $retry = FALSE;
+ // We always want to do this code at least once.
+ do {
+ if (@db_query("INSERT INTO {semaphore} (name, value, expire) VALUES ('%s', '%s', %f)", $name, _lock_id(), $expire)) {
+ // We track all acquired locks in the global variable.
+ $locks[$name] = TRUE;
+ // We never need to try again.
+ $retry = FALSE;
+ }
+ else {
+ // Suppress the error. If this is our first pass through the loop,
+ // then $retry is FALSE. In this case, the insert must have failed
+ // meaning some other request acquired the lock but did not release it.
+ // We decide whether to retry by checking lock_may_be_available()
+ // Since this will break the lock in case it is expired.
+ $retry = $retry ? FALSE : lock_may_be_available($name);
+ }
+ // We only retry in case the first attempt failed, but we then broke
+ // an expired lock.
+ } while ($retry);
+ }
+ return isset($locks[$name]);
+}
+
+/**
+ * Check if lock acquired by a different process may be available.
+ *
+ * If an existing lock has expired, it is removed.
+ *
+ * @param $name
+ * The name of the lock.
+ * @return
+ * TRUE if there is no lock or it was removed, FALSE otherwise.
+ */
+function lock_may_be_available($name) {
+ $lock = db_fetch_array(db_query("SELECT expire, value FROM {semaphore} WHERE name = '%s'", $name));
+ if (!$lock) {
+ return TRUE;
+ }
+ $expire = (float) $lock['expire'];
+ list($usec, $sec) = explode(' ', microtime());
+ $now = (float)$usec + (float)$sec;
+ if ($now > $lock['expire']) {
+ // We check two conditions to prevent a race condition where another
+ // request acquired the lock and set a new expire time. We add a small
+ // number to $expire to avoid errors with float to string conversion.
+ db_query("DELETE FROM {semaphore} WHERE name = '%s' AND value = '%s' AND expire <= %f", $name, $lock['value'], 0.0001 + $expire);
+ return (bool)db_affected_rows();
+ }
+ return FALSE;
+}
+
+/**
+ * Wait for a lock to be available.
+ *
+ * This function may be called in a request that fails to acquire a desired
+ * lock. This will block further execution until the lock is available or the
+ * specified delay in seconds is reached. This should not be used with locks
+ * that are acquired very frequently, since the lock is likely to be acquired
+ * again by a different request during the sleep().
+ *
+ * @param $name
+ * The name of the lock.
+ * @param $delay
+ * The maximum number of seconds to wait, as an integer.
+ * @return
+ * TRUE if the lock holds, FALSE if it is available.
+ */
+function lock_wait($name, $delay = 30) {
+
+ while ($delay--) {
+ // This function should only be called by a request that failed to get a
+ // lock, so we sleep first to give the parallel request a chance to finish
+ // and release the lock.
+ sleep(1);
+ if (lock_may_be_available($name)) {
+ // No longer need to wait.
+ return FALSE;
+ }
+ }
+ // The caller must still wait longer to get the lock.
+ return TRUE;
+}
+
+/**
+ * Release a lock previously acquired by lock_acquire().
+ *
+ * This will release the named lock if it is still held by the current request.
+ *
+ * @param $name
+ * The name of the lock.
+ */
+function lock_release($name) {
+ global $locks;
+
+ unset($locks[$name]);
+ db_query("DELETE FROM {semaphore} WHERE name = '%s' AND value = '%s'", $name, _lock_id());
+}
+
+/**
+ * Release all previously acquired locks.
+ */
+function lock_release_all($lock_id = NULL) {
+ global $locks;
+
+ $locks = array();
+ if (empty($lock_id)) {
+ $lock_id = _lock_id();
+ }
+
+ db_query("DELETE FROM {semaphore} WHERE value = '%s'", _lock_id());
+}
+
+/**
+ * @} End of "defgroup locks".
+ */
Modified: branches/upstream/current-6/includes/menu.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/menu.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/menu.inc (original)
+++ branches/upstream/current-6/includes/menu.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/path.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/path.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/path.inc (original)
+++ branches/upstream/current-6/includes/path.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/session.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/session.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/session.inc (original)
+++ branches/upstream/current-6/includes/session.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/theme.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/theme.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/theme.inc (original)
+++ branches/upstream/current-6/includes/theme.inc Fri Mar 12 13:03:10 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/upstream/current-6/includes/theme.maintenance.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/includes/theme.maintenance.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/includes/theme.maintenance.inc (original)
+++ branches/upstream/current-6/includes/theme.maintenance.inc Fri Mar 12 13:03:10 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/upstream/current-6/install.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/install.php?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/install.php (original)
+++ branches/upstream/current-6/install.php Fri Mar 12 13:03:10 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/upstream/current-6/misc/teaser.js
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/misc/teaser.js?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/misc/teaser.js (original)
+++ branches/upstream/current-6/misc/teaser.js Fri Mar 12 13:03:10 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/upstream/current-6/modules/aggregator/aggregator.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/aggregator/aggregator.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/aggregator/aggregator.info (original)
+++ branches/upstream/current-6/modules/aggregator/aggregator.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/block/block.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/block/block.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/block/block.info (original)
+++ branches/upstream/current-6/modules/block/block.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/blog/blog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/blog/blog.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/blog/blog.info (original)
+++ branches/upstream/current-6/modules/blog/blog.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/blogapi/blogapi.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/blogapi/blogapi.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/blogapi/blogapi.info (original)
+++ branches/upstream/current-6/modules/blogapi/blogapi.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/book/book.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/book/book.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/book/book.info (original)
+++ branches/upstream/current-6/modules/book/book.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/color/color.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/color/color.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/color/color.info (original)
+++ branches/upstream/current-6/modules/color/color.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/comment/comment.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/comment/comment.admin.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/comment/comment.admin.inc (original)
+++ branches/upstream/current-6/modules/comment/comment.admin.inc Fri Mar 12 13:03:10 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/upstream/current-6/modules/comment/comment.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/comment/comment.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/comment/comment.info (original)
+++ branches/upstream/current-6/modules/comment/comment.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/comment/comment.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/comment/comment.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/comment/comment.module (original)
+++ branches/upstream/current-6/modules/comment/comment.module Fri Mar 12 13:03:10 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/upstream/current-6/modules/contact/contact.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/contact/contact.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/contact/contact.info (original)
+++ branches/upstream/current-6/modules/contact/contact.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/dblog/dblog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/dblog/dblog.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/dblog/dblog.info (original)
+++ branches/upstream/current-6/modules/dblog/dblog.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/dblog/dblog.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/dblog/dblog.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/dblog/dblog.module (original)
+++ branches/upstream/current-6/modules/dblog/dblog.module Fri Mar 12 13:03:10 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/upstream/current-6/modules/filter/filter.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/filter/filter.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/filter/filter.info (original)
+++ branches/upstream/current-6/modules/filter/filter.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/filter/filter.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/filter/filter.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/filter/filter.module (original)
+++ branches/upstream/current-6/modules/filter/filter.module Fri Mar 12 13:03:10 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/upstream/current-6/modules/forum/forum.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/forum/forum.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/forum/forum.info (original)
+++ branches/upstream/current-6/modules/forum/forum.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/forum/forum.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/forum/forum.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/forum/forum.module (original)
+++ branches/upstream/current-6/modules/forum/forum.module Fri Mar 12 13:03:10 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/upstream/current-6/modules/help/help.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/help/help.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/help/help.info (original)
+++ branches/upstream/current-6/modules/help/help.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/locale/locale.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/locale/locale.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/locale/locale.info (original)
+++ branches/upstream/current-6/modules/locale/locale.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/locale/locale.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/locale/locale.install?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/locale/locale.install (original)
+++ branches/upstream/current-6/modules/locale/locale.install Fri Mar 12 13:03:10 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/upstream/current-6/modules/locale/locale.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/locale/locale.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/locale/locale.module (original)
+++ branches/upstream/current-6/modules/locale/locale.module Fri Mar 12 13:03:10 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/upstream/current-6/modules/menu/menu.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/menu/menu.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/menu/menu.info (original)
+++ branches/upstream/current-6/modules/menu/menu.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/node/node.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/node/node.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/node/node.info (original)
+++ branches/upstream/current-6/modules/node/node.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/node/node.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/node/node.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/node/node.module (original)
+++ branches/upstream/current-6/modules/node/node.module Fri Mar 12 13:03:10 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/upstream/current-6/modules/openid/openid.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/openid/openid.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/openid/openid.inc (original)
+++ branches/upstream/current-6/modules/openid/openid.inc Fri Mar 12 13:03:10 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/upstream/current-6/modules/openid/openid.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/openid/openid.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/openid/openid.info (original)
+++ branches/upstream/current-6/modules/openid/openid.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/path/path.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/path/path.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/path/path.info (original)
+++ branches/upstream/current-6/modules/path/path.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/php/php.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/php/php.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/php/php.info (original)
+++ branches/upstream/current-6/modules/php/php.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/ping/ping.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/ping/ping.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/ping/ping.info (original)
+++ branches/upstream/current-6/modules/ping/ping.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/poll/poll.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/poll/poll.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/poll/poll.info (original)
+++ branches/upstream/current-6/modules/poll/poll.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/profile/profile.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/profile/profile.admin.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/profile/profile.admin.inc (original)
+++ branches/upstream/current-6/modules/profile/profile.admin.inc Fri Mar 12 13:03:10 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/upstream/current-6/modules/profile/profile.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/profile/profile.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/profile/profile.info (original)
+++ branches/upstream/current-6/modules/profile/profile.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/search/search.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/search/search.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/search/search.info (original)
+++ branches/upstream/current-6/modules/search/search.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/statistics/statistics.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/statistics/statistics.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/statistics/statistics.info (original)
+++ branches/upstream/current-6/modules/statistics/statistics.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/syslog/syslog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/syslog/syslog.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/syslog/syslog.info (original)
+++ branches/upstream/current-6/modules/syslog/syslog.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/system/system.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/system/system.admin.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/system/system.admin.inc (original)
+++ branches/upstream/current-6/modules/system/system.admin.inc Fri Mar 12 13:03:10 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/upstream/current-6/modules/system/system.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/system/system.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/system/system.info (original)
+++ branches/upstream/current-6/modules/system/system.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/system/system.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/system/system.install?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/system/system.install (original)
+++ branches/upstream/current-6/modules/system/system.install Fri Mar 12 13:03:10 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/upstream/current-6/modules/system/system.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/system/system.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/system/system.module (original)
+++ branches/upstream/current-6/modules/system/system.module Fri Mar 12 13:03:10 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/upstream/current-6/modules/taxonomy/taxonomy.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/taxonomy/taxonomy.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/taxonomy/taxonomy.info (original)
+++ branches/upstream/current-6/modules/taxonomy/taxonomy.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/taxonomy/taxonomy.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/taxonomy/taxonomy.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/taxonomy/taxonomy.module (original)
+++ branches/upstream/current-6/modules/taxonomy/taxonomy.module Fri Mar 12 13:03:10 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/upstream/current-6/modules/throttle/throttle.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/throttle/throttle.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/throttle/throttle.info (original)
+++ branches/upstream/current-6/modules/throttle/throttle.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/tracker/tracker.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/tracker/tracker.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/tracker/tracker.info (original)
+++ branches/upstream/current-6/modules/tracker/tracker.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/translation/translation.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/translation/translation.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/translation/translation.info (original)
+++ branches/upstream/current-6/modules/translation/translation.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/trigger/trigger.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/trigger/trigger.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/trigger/trigger.info (original)
+++ branches/upstream/current-6/modules/trigger/trigger.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/update/update.compare.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/update/update.compare.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/update/update.compare.inc (original)
+++ branches/upstream/current-6/modules/update/update.compare.inc Fri Mar 12 13:03:10 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/upstream/current-6/modules/update/update.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/update/update.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/update/update.info (original)
+++ branches/upstream/current-6/modules/update/update.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/upload/upload.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/upload/upload.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/upload/upload.info (original)
+++ branches/upstream/current-6/modules/upload/upload.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/user/user.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/user/user.admin.inc?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/user/user.admin.inc (original)
+++ branches/upstream/current-6/modules/user/user.admin.inc Fri Mar 12 13:03:10 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/upstream/current-6/modules/user/user.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/user/user.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/user/user.info (original)
+++ branches/upstream/current-6/modules/user/user.info Fri Mar 12 13:03:10 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/upstream/current-6/modules/user/user.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/modules/user/user.module?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/modules/user/user.module (original)
+++ branches/upstream/current-6/modules/user/user.module Fri Mar 12 13:03:10 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/upstream/current-6/themes/bluemarine/bluemarine.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/themes/bluemarine/bluemarine.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/themes/bluemarine/bluemarine.info (original)
+++ branches/upstream/current-6/themes/bluemarine/bluemarine.info Fri Mar 12 13:03:10 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/upstream/current-6/themes/chameleon/chameleon.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/themes/chameleon/chameleon.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/themes/chameleon/chameleon.info (original)
+++ branches/upstream/current-6/themes/chameleon/chameleon.info Fri Mar 12 13:03:10 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/upstream/current-6/themes/chameleon/marvin/marvin.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/themes/chameleon/marvin/marvin.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/themes/chameleon/marvin/marvin.info (original)
+++ branches/upstream/current-6/themes/chameleon/marvin/marvin.info Fri Mar 12 13:03:10 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/upstream/current-6/themes/garland/garland.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/themes/garland/garland.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/themes/garland/garland.info (original)
+++ branches/upstream/current-6/themes/garland/garland.info Fri Mar 12 13:03:10 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/upstream/current-6/themes/garland/minnelli/minnelli.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/themes/garland/minnelli/minnelli.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/themes/garland/minnelli/minnelli.info (original)
+++ branches/upstream/current-6/themes/garland/minnelli/minnelli.info Fri Mar 12 13:03:10 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/upstream/current-6/themes/pushbutton/pushbutton.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-6/themes/pushbutton/pushbutton.info?rev=2126&op=diff
==============================================================================
--- branches/upstream/current-6/themes/pushbutton/pushbutton.info (original)
+++ branches/upstream/current-6/themes/pushbutton/pushbutton.info Fri Mar 12 13:03:10 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