[Pkg-drupal-commits] r2225 - in /branches/drupal7: ./ debian/ includes/ includes/database/mysql/ misc/ modules/aggregator/ modules/aggregator/tests/ modules/block/ modules/block/tests/ modules/blog/ modules/book/ modules/color/ modules/comment/ modules/contact/ modules/contextual/ modules/dashboard/ modules/dblog/ modules/field/ modules/field/modules/field_sql_storage/ modules/field/modules/list/ modules/field/modules/list/tests/ modules/field/modules/number/ modules/field/modules/options/ modules/field/modules/text/ modules/field/tests/ modules/field_ui/ modules/file/ modules/file/tests/ modules/filter/ modules/forum/ modules/help/ modules/image/ modules/image/tests/ modules/locale/ modules/locale/tests/ modules/menu/ modules/node/ modules/node/tests/ modules/openid/ modules/openid/tests/ modules/overlay/ modules/path/ modules/php/ modules/poll/ modules/profile/ modules/rdf/ modules/rdf/tests/ modules/search/ modules/search/tests/ modules/shortcut/ modules/simpletest/ modules/simpletest/tests/ modules/simpletest/tests/drupal_system_listing_compatible_test/ modules/simpletest/tests/drupal_system_listing_incompatible_test/ modules/simpletest/tests/upgrade/ modules/statistics/ modules/syslog/ modules/system/ modules/taxonomy/ modules/toolbar/ modules/tracker/ modules/translation/ modules/translation/tests/ modules/trigger/ modules/trigger/tests/ modules/update/ modules/update/tests/ modules/user/ modules/user/tests/ profiles/minimal/ profiles/standard/ profiles/testing/ profiles/testing/modules/drupal_system_listing_compatible_test/ profiles/testing/modules/drupal_system_listing_incompatible_test/ scripts/ themes/bartik/ themes/garland/ themes/seven/ themes/stark/ themes/tests/test_theme/ themes/tests/update_test_basetheme/ themes/tests/update_test_subtheme/

luigi at users.alioth.debian.org luigi at users.alioth.debian.org
Thu Jul 28 00:20:26 UTC 2011


Author: luigi
Date: Thu Jul 28 00:20:26 2011
New Revision: 2225

URL: http://svn.debian.org/wsvn/pkg-drupal/?sc=1&rev=2225
Log:
New upstream release

Added:
    branches/drupal7/modules/locale/locale-rtl.css
      - copied unchanged from r2224, branches/upstream/current-7/modules/locale/locale-rtl.css
Modified:
    branches/drupal7/CHANGELOG.txt
    branches/drupal7/debian/changelog
    branches/drupal7/includes/ajax.inc
    branches/drupal7/includes/authorize.inc
    branches/drupal7/includes/bootstrap.inc
    branches/drupal7/includes/common.inc
    branches/drupal7/includes/database/mysql/database.inc
    branches/drupal7/includes/entity.inc
    branches/drupal7/includes/errors.inc
    branches/drupal7/includes/file.inc
    branches/drupal7/includes/form.inc
    branches/drupal7/includes/mail.inc
    branches/drupal7/includes/menu.inc
    branches/drupal7/includes/password.inc
    branches/drupal7/includes/stream_wrappers.inc
    branches/drupal7/misc/ajax.js
    branches/drupal7/modules/aggregator/aggregator.info
    branches/drupal7/modules/aggregator/tests/aggregator_test.info
    branches/drupal7/modules/block/block.info
    branches/drupal7/modules/block/block.module
    branches/drupal7/modules/block/tests/block_test.info
    branches/drupal7/modules/blog/blog.info
    branches/drupal7/modules/book/book.info
    branches/drupal7/modules/book/book.module
    branches/drupal7/modules/color/color.info
    branches/drupal7/modules/comment/comment.info
    branches/drupal7/modules/comment/comment.module
    branches/drupal7/modules/comment/comment.test
    branches/drupal7/modules/contact/contact.info
    branches/drupal7/modules/contextual/contextual.info
    branches/drupal7/modules/dashboard/dashboard.info
    branches/drupal7/modules/dblog/dblog.admin.inc
    branches/drupal7/modules/dblog/dblog.info
    branches/drupal7/modules/dblog/dblog.test
    branches/drupal7/modules/field/field.api.php
    branches/drupal7/modules/field/field.form.inc
    branches/drupal7/modules/field/field.info
    branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info
    branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.module
    branches/drupal7/modules/field/modules/list/list.info
    branches/drupal7/modules/field/modules/list/list.module
    branches/drupal7/modules/field/modules/list/tests/list.test
    branches/drupal7/modules/field/modules/list/tests/list_test.info
    branches/drupal7/modules/field/modules/number/number.info
    branches/drupal7/modules/field/modules/options/options.info
    branches/drupal7/modules/field/modules/text/text.info
    branches/drupal7/modules/field/modules/text/text.test
    branches/drupal7/modules/field/tests/field_test.info
    branches/drupal7/modules/field_ui/field_ui.admin.inc
    branches/drupal7/modules/field_ui/field_ui.info
    branches/drupal7/modules/field_ui/field_ui.module
    branches/drupal7/modules/field_ui/field_ui.test
    branches/drupal7/modules/file/file.info
    branches/drupal7/modules/file/file.module
    branches/drupal7/modules/file/tests/file.test
    branches/drupal7/modules/file/tests/file_module_test.info
    branches/drupal7/modules/filter/filter.info
    branches/drupal7/modules/filter/filter.test
    branches/drupal7/modules/forum/forum.info
    branches/drupal7/modules/help/help.info
    branches/drupal7/modules/image/image.info
    branches/drupal7/modules/image/tests/image_module_test.info
    branches/drupal7/modules/locale/locale.css
    branches/drupal7/modules/locale/locale.info
    branches/drupal7/modules/locale/locale.test
    branches/drupal7/modules/locale/tests/locale_test.info
    branches/drupal7/modules/menu/menu.info
    branches/drupal7/modules/menu/menu.install
    branches/drupal7/modules/node/node.api.php
    branches/drupal7/modules/node/node.info
    branches/drupal7/modules/node/node.install
    branches/drupal7/modules/node/node.module
    branches/drupal7/modules/node/tests/node_access_test.info
    branches/drupal7/modules/node/tests/node_access_test.install
    branches/drupal7/modules/node/tests/node_test.info
    branches/drupal7/modules/node/tests/node_test_exception.info
    branches/drupal7/modules/openid/openid.info
    branches/drupal7/modules/openid/tests/openid_test.info
    branches/drupal7/modules/overlay/overlay.info
    branches/drupal7/modules/path/path.info
    branches/drupal7/modules/path/path.test
    branches/drupal7/modules/php/php.info
    branches/drupal7/modules/poll/poll.info
    branches/drupal7/modules/poll/poll.module
    branches/drupal7/modules/profile/profile.info
    branches/drupal7/modules/profile/profile.module
    branches/drupal7/modules/rdf/rdf.info
    branches/drupal7/modules/rdf/tests/rdf_test.info
    branches/drupal7/modules/search/search.admin.inc
    branches/drupal7/modules/search/search.api.php
    branches/drupal7/modules/search/search.info
    branches/drupal7/modules/search/tests/search_embedded_form.info
    branches/drupal7/modules/search/tests/search_embedded_form.module
    branches/drupal7/modules/search/tests/search_extra_type.info
    branches/drupal7/modules/shortcut/shortcut.info
    branches/drupal7/modules/shortcut/shortcut.install
    branches/drupal7/modules/simpletest/simpletest.info
    branches/drupal7/modules/simpletest/tests/actions_loop_test.info
    branches/drupal7/modules/simpletest/tests/ajax_forms_test.info
    branches/drupal7/modules/simpletest/tests/ajax_test.info
    branches/drupal7/modules/simpletest/tests/batch_test.info
    branches/drupal7/modules/simpletest/tests/common_test.info
    branches/drupal7/modules/simpletest/tests/database_test.info
    branches/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
    branches/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
    branches/drupal7/modules/simpletest/tests/entity_cache_test.info
    branches/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info
    branches/drupal7/modules/simpletest/tests/entity_crud_hook_test.info
    branches/drupal7/modules/simpletest/tests/entity_query.test
    branches/drupal7/modules/simpletest/tests/error_test.info
    branches/drupal7/modules/simpletest/tests/file.test
    branches/drupal7/modules/simpletest/tests/file_test.info
    branches/drupal7/modules/simpletest/tests/file_test.module
    branches/drupal7/modules/simpletest/tests/filter_test.info
    branches/drupal7/modules/simpletest/tests/form_test.info
    branches/drupal7/modules/simpletest/tests/image_test.info
    branches/drupal7/modules/simpletest/tests/mail.test
    branches/drupal7/modules/simpletest/tests/menu.test
    branches/drupal7/modules/simpletest/tests/menu_test.info
    branches/drupal7/modules/simpletest/tests/module_test.info
    branches/drupal7/modules/simpletest/tests/requirements1_test.info
    branches/drupal7/modules/simpletest/tests/requirements2_test.info
    branches/drupal7/modules/simpletest/tests/session_test.info
    branches/drupal7/modules/simpletest/tests/system_dependencies_test.info
    branches/drupal7/modules/simpletest/tests/system_test.info
    branches/drupal7/modules/simpletest/tests/taxonomy_test.info
    branches/drupal7/modules/simpletest/tests/theme_test.info
    branches/drupal7/modules/simpletest/tests/update_test_1.info
    branches/drupal7/modules/simpletest/tests/update_test_2.info
    branches/drupal7/modules/simpletest/tests/update_test_3.info
    branches/drupal7/modules/simpletest/tests/upgrade/drupal-6.menu.database.php
    branches/drupal7/modules/simpletest/tests/upgrade/upgrade.menu.test
    branches/drupal7/modules/simpletest/tests/upgrade/upgrade.node.test
    branches/drupal7/modules/simpletest/tests/upgrade/upgrade.taxonomy.test
    branches/drupal7/modules/simpletest/tests/url_alter_test.info
    branches/drupal7/modules/simpletest/tests/xmlrpc_test.info
    branches/drupal7/modules/statistics/statistics.info
    branches/drupal7/modules/syslog/syslog.info
    branches/drupal7/modules/system/image.gd.inc
    branches/drupal7/modules/system/system.admin.inc
    branches/drupal7/modules/system/system.api.php
    branches/drupal7/modules/system/system.info
    branches/drupal7/modules/system/system.install
    branches/drupal7/modules/system/system.module
    branches/drupal7/modules/system/system.test
    branches/drupal7/modules/system/system.tokens.inc
    branches/drupal7/modules/taxonomy/taxonomy.admin.inc
    branches/drupal7/modules/taxonomy/taxonomy.info
    branches/drupal7/modules/taxonomy/taxonomy.install
    branches/drupal7/modules/taxonomy/taxonomy.pages.inc
    branches/drupal7/modules/taxonomy/taxonomy.test
    branches/drupal7/modules/toolbar/toolbar.info
    branches/drupal7/modules/tracker/tracker.info
    branches/drupal7/modules/translation/tests/translation_test.info
    branches/drupal7/modules/translation/translation.info
    branches/drupal7/modules/translation/translation.test
    branches/drupal7/modules/trigger/tests/trigger_test.info
    branches/drupal7/modules/trigger/trigger.info
    branches/drupal7/modules/update/tests/aaa_update_test.info
    branches/drupal7/modules/update/tests/bbb_update_test.info
    branches/drupal7/modules/update/tests/ccc_update_test.info
    branches/drupal7/modules/update/tests/update_test.info
    branches/drupal7/modules/update/update.info
    branches/drupal7/modules/user/tests/user_form_test.info
    branches/drupal7/modules/user/user-rtl.css
    branches/drupal7/modules/user/user.admin.inc
    branches/drupal7/modules/user/user.css
    branches/drupal7/modules/user/user.info
    branches/drupal7/modules/user/user.module
    branches/drupal7/modules/user/user.permissions.js
    branches/drupal7/profiles/minimal/minimal.info
    branches/drupal7/profiles/standard/standard.info
    branches/drupal7/profiles/standard/standard.install
    branches/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
    branches/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
    branches/drupal7/profiles/testing/testing.info
    branches/drupal7/scripts/generate-d6-content.sh
    branches/drupal7/scripts/run-tests.sh
    branches/drupal7/themes/bartik/bartik.info
    branches/drupal7/themes/garland/garland.info
    branches/drupal7/themes/seven/seven.info
    branches/drupal7/themes/stark/stark.info
    branches/drupal7/themes/tests/test_theme/test_theme.info
    branches/drupal7/themes/tests/update_test_basetheme/update_test_basetheme.info
    branches/drupal7/themes/tests/update_test_subtheme/update_test_subtheme.info

Modified: branches/drupal7/CHANGELOG.txt
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/CHANGELOG.txt?rev=2225&op=diff
==============================================================================
--- branches/drupal7/CHANGELOG.txt (original)
+++ branches/drupal7/CHANGELOG.txt Thu Jul 28 00:20:26 2011
@@ -1,3 +1,7 @@
+
+Drupal 7.5, 2011-07-27
+----------------------
+- Fixed security issue (Access bypass), see SA-CORE-2011-003.
 
 Drupal 7.4, 2011-06-29
 ----------------------

Modified: branches/drupal7/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/debian/changelog?rev=2225&op=diff
==============================================================================
--- branches/drupal7/debian/changelog (original)
+++ branches/drupal7/debian/changelog Thu Jul 28 00:20:26 2011
@@ -1,3 +1,9 @@
+drupal7 (7.6-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- Luigi Gangitano <luigi at debian.openconsulting.it>  Thu, 28 Jul 2011 02:17:32 +0200
+
 drupal7 (7.4-1) unstable; urgency=high
 
   [ Luigi Gangitano ]

Modified: branches/drupal7/includes/ajax.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/ajax.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/ajax.inc (original)
+++ branches/drupal7/includes/ajax.inc Thu Jul 28 00:20:26 2011
@@ -143,6 +143,21 @@
  * - #ajax['event']: The JavaScript event to respond to. This is normally
  *   selected automatically for the type of form widget being used, and
  *   is only needed if you need to override the default behavior.
+ * - #ajax['prevent']: A JavaScript event to prevent when 'event' is triggered.
+ *   Defaults to 'click' for #ajax on #type 'submit', 'button', and
+ *   'image_button'. Multiple events may be specified separated by spaces.
+ *   For example, when binding #ajax behaviors to form buttons, pressing the
+ *   ENTER key within a textfield triggers the 'click' event of the form's first
+ *   submit button. Triggering Ajax in this situation leads to problems, like
+ *   breaking autocomplete textfields. Because of that, Ajax behaviors are bound
+ *   to the 'mousedown' event on form buttons by default. However, binding to
+ *   'mousedown' rather than 'click' means that it is possible to trigger a
+ *   click by pressing the mouse, holding the mouse button down until the Ajax
+ *   request is complete and the button is re-enabled, and then releasing the
+ *   mouse button. For this case, 'prevent' can be set to 'click', so an
+ *   additional event handler is bound to prevent such a click from triggering a
+ *   non-Ajax form submission. This also prevents a textfield's ENTER press
+ *   triggering a button's non-Ajax form submission behavior.
  * - #ajax['method']: The jQuery method to use to place the new HTML.
  *   Defaults to 'replaceWith'. May be: 'replaceWith', 'append', 'prepend',
  *   'before', 'after', or 'html'. See the
@@ -591,6 +606,7 @@
  *   An associative array containing the properties of the element.
  *   Properties used:
  *   - #ajax['event']
+ *   - #ajax['prevent']
  *   - #ajax['path']
  *   - #ajax['options']
  *   - #ajax['wrapper']
@@ -619,13 +635,26 @@
       case 'submit':
       case 'button':
       case 'image_button':
-        // Use the mousedown instead of the click event because form
-        // submission via pressing the enter key triggers a click event on
-        // submit inputs, inappropriately triggering Ajax behaviors.
+        // Pressing the ENTER key within a textfield triggers the click event of
+        // the form's first submit button. Triggering Ajax in this situation
+        // leads to problems, like breaking autocomplete textfields, so we bind
+        // to mousedown instead of click.
+        // @see http://drupal.org/node/216059
         $element['#ajax']['event'] = 'mousedown';
-        // Attach an additional event handler so that Ajax behaviors
-        // can be triggered still via keyboard input.
+        // Retain keyboard accessibility by setting 'keypress'. This causes
+        // ajax.js to trigger 'event' when SPACE or ENTER are pressed while the
+        // button has focus.
         $element['#ajax']['keypress'] = TRUE;
+        // Binding to mousedown rather than click means that it is possible to
+        // trigger a click by pressing the mouse, holding the mouse button down
+        // until the Ajax request is complete and the button is re-enabled, and
+        // then releasing the mouse button. Set 'prevent' so that ajax.js binds
+        // an additional handler to prevent such a click from triggering a
+        // non-Ajax form submission. This also prevents a textfield's ENTER
+        // press triggering this button's non-Ajax form submission behavior.
+        if (!isset($element['#ajax']['prevent'])) {
+          $element['#ajax']['prevent'] = 'click';
+        }
         break;
 
       case 'password':

Modified: branches/drupal7/includes/authorize.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/authorize.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/authorize.inc (original)
+++ branches/drupal7/includes/authorize.inc Thu Jul 28 00:20:26 2011
@@ -193,7 +193,7 @@
 function authorize_filetransfer_form_validate($form, &$form_state) {
   // Only validate the form if we have collected all of the user input and are
   // ready to proceed with updating or installing.
-  if ($form_state['clicked_button']['#name'] != 'process_updates') {
+  if ($form_state['triggering_element']['#name'] != 'process_updates') {
     return;
   }
 
@@ -224,7 +224,7 @@
  */
 function authorize_filetransfer_form_submit($form, &$form_state) {
   global $base_url;
-  switch ($form_state['clicked_button']['#name']) {
+  switch ($form_state['triggering_element']['#name']) {
     case 'process_updates':
 
       // Save the connection settings to the DB.

Modified: branches/drupal7/includes/bootstrap.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/bootstrap.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/bootstrap.inc (original)
+++ branches/drupal7/includes/bootstrap.inc Thu Jul 28 00:20:26 2011
@@ -8,7 +8,7 @@
 /**
  * The current system version.
  */
-define('VERSION', '7.4');
+define('VERSION', '7.5');
 
 /**
  * Core API compatibility.
@@ -38,92 +38,68 @@
 define('CACHE_TEMPORARY', -1);
 
 /**
- * Log message severity -- Emergency: system is unusable.
+ * @defgroup logging_severity_levels Logging severity levels
+ * @{
+ * Logging severity levels as defined in RFC 3164.
  *
  * The WATCHDOG_* constant definitions correspond to the logging severity levels
- * defined in RFC 3164, section 4.1.1: http://www.faqs.org/rfcs/rfc3164.html
- *
+ * defined in RFC 3164, section 4.1.1.  PHP supplies predefined LOG_* constants
+ * for use in the syslog() function, but their values on Windows builds do not
+ * correspond to RFC 3164.  The associated PHP bug report was closed with the
+ * comment, "And it's also not a bug, as Windows just have less log levels,"
+ * and "So the behavior you're seeing is perfectly normal."
+ *
+ * @see http://www.faqs.org/rfcs/rfc3164.html
+ * @see http://bugs.php.net/bug.php?id=18090
+ * @see http://php.net/manual/function.syslog.php
+ * @see http://php.net/manual/network.constants.php
  * @see watchdog()
  * @see watchdog_severity_levels()
  */
+
+/**
+ * Log message severity -- Emergency: system is unusable.
+ */
 define('WATCHDOG_EMERGENCY', 0);
 
 /**
  * Log message severity -- Alert: action must be taken immediately.
- *
- * The WATCHDOG_* constant definitions correspond to the logging severity levels
- * defined in RFC 3164, section 4.1.1: http://www.faqs.org/rfcs/rfc3164.html
- *
- * @see watchdog()
- * @see watchdog_severity_levels()
  */
 define('WATCHDOG_ALERT', 1);
 
 /**
  * Log message severity -- Critical: critical conditions.
- *
- * The WATCHDOG_* constant definitions correspond to the logging severity levels
- * defined in RFC 3164, section 4.1.1: http://www.faqs.org/rfcs/rfc3164.html
- *
- * @see watchdog()
- * @see watchdog_severity_levels()
  */
 define('WATCHDOG_CRITICAL', 2);
 
 /**
  * Log message severity -- Error: error conditions.
- *
- * The WATCHDOG_* constant definitions correspond to the logging severity levels
- * defined in RFC 3164, section 4.1.1: http://www.faqs.org/rfcs/rfc3164.html
- *
- * @see watchdog()
- * @see watchdog_severity_levels()
  */
 define('WATCHDOG_ERROR', 3);
 
 /**
  * Log message severity -- Warning: warning conditions.
- *
- * The WATCHDOG_* constant definitions correspond to the logging severity levels
- * defined in RFC 3164, section 4.1.1: http://www.faqs.org/rfcs/rfc3164.html
- *
- * @see watchdog()
- * @see watchdog_severity_levels()
  */
 define('WATCHDOG_WARNING', 4);
 
 /**
  * Log message severity -- Notice: normal but significant condition.
- *
- * The WATCHDOG_* constant definitions correspond to the logging severity levels
- * defined in RFC 3164, section 4.1.1: http://www.faqs.org/rfcs/rfc3164.html
- *
- * @see watchdog()
- * @see watchdog_severity_levels()
  */
 define('WATCHDOG_NOTICE', 5);
 
 /**
  * Log message severity -- Informational: informational messages.
- *
- * The WATCHDOG_* constant definitions correspond to the logging severity levels
- * defined in RFC 3164, section 4.1.1: http://www.faqs.org/rfcs/rfc3164.html
- *
- * @see watchdog()
- * @see watchdog_severity_levels()
  */
 define('WATCHDOG_INFO', 6);
 
 /**
  * Log message severity -- Debug: debug-level messages.
- *
- * The WATCHDOG_* constant definitions correspond to the logging severity levels
- * defined in RFC 3164, section 4.1.1: http://www.faqs.org/rfcs/rfc3164.html
- *
- * @see watchdog()
- * @see watchdog_severity_levels()
  */
 define('WATCHDOG_DEBUG', 7);
+
+/**
+ * @} End of "defgroup logging_severity_levels".
+ */
 
 /**
  * First bootstrap phase: initialize configuration.
@@ -216,8 +192,11 @@
 
 /**
  * For convenience, define a short form of the request time global.
- */
-define('REQUEST_TIME', $_SERVER['REQUEST_TIME']);
+ *
+ * REQUEST_TIME is a float with microseconds since PHP 5.4.0, but float
+ * timestamps confuses most of the PHP functions (including date_create()).
+ */
+define('REQUEST_TIME', (int) $_SERVER['REQUEST_TIME']);
 
 /**
  * Flag for drupal_set_title(); text is not sanitized, so run check_plain().
@@ -311,31 +290,30 @@
 }
 
 /**
- * Find the appropriate configuration directory.
- *
- * Try finding a matching configuration directory by stripping the website's
+ * Finds the appropriate configuration directory.
+ *
+ * Finds a matching configuration directory by stripping the website's
  * hostname from left to right and pathname from right to left. The first
- * configuration file found will be used; the remaining will ignored. If no
- * configuration file is found, return a default value '$confdir/default'.
- *
- * Example for a fictitious site installed at
- * http://www.drupal.org:8080/mysite/test/ the 'settings.php' is searched in
- * the following directories:
- *
- *  1. $confdir/8080.www.drupal.org.mysite.test
- *  2. $confdir/www.drupal.org.mysite.test
- *  3. $confdir/drupal.org.mysite.test
- *  4. $confdir/org.mysite.test
- *
- *  5. $confdir/8080.www.drupal.org.mysite
- *  6. $confdir/www.drupal.org.mysite
- *  7. $confdir/drupal.org.mysite
- *  8. $confdir/org.mysite
- *
- *  9. $confdir/8080.www.drupal.org
- * 10. $confdir/www.drupal.org
- * 11. $confdir/drupal.org
- * 12. $confdir/org
+ * configuration file found will be used and the remaining ones will be ignored.
+ * If no configuration file is found, return a default value '$confdir/default'.
+ *
+ * With a site located at http://www.example.com:8080/mysite/test/, the file,
+ * settings.php, is searched for in the following directories:
+ *
+ *  1. $confdir/8080.www.example.com.mysite.test
+ *  2. $confdir/www.example.com.mysite.test
+ *  3. $confdir/example.com.mysite.test
+ *  4. $confdir/com.mysite.test
+ *
+ *  5. $confdir/8080.www.example.com.mysite
+ *  6. $confdir/www.example.com.mysite
+ *  7. $confdir/example.com.mysite
+ *  8. $confdir/com.mysite
+ *
+ *  9. $confdir/8080.www.example.com
+ * 10. $confdir/www.example.com
+ * 11. $confdir/example.com
+ * 12. $confdir/com
  *
  * 13. $confdir/default
  *
@@ -343,18 +321,18 @@
  * prior to scanning for directories. It should define an associative array
  * named $sites, which maps domains to directories. It should be in the form
  * of:
- *
+ * @code
  * $sites = array(
  *   'The url to alias' => 'A directory within the sites directory'
  * );
- *
+ * @endcode
  * For example:
- *
+ * @code
  * $sites = array(
  *   'devexample.com' => 'example.com',
  *   'localhost.example' => 'example.com',
  * );
- *
+ * @endcode
  * The above array will cause Drupal to look for a directory named
  * "example.com" in the sites directory whenever a request comes from
  * "example.com", "devexample.com", or "localhost/example". That is useful
@@ -363,14 +341,15 @@
  * (files, system table, etc.) this will ensure the paths are correct while
  * accessed on development servers.
  *
- * @param $require_settings
+ * @param bool $require_settings
  *   Only configuration directories with an existing settings.php file
  *   will be recognized. Defaults to TRUE. During initial installation,
  *   this is set to FALSE so that Drupal can detect a matching directory,
  *   then create a new settings.php file in it.
- * @param reset
+ * @param bool $reset
  *   Force a full search for matching directories even if one had been
- *   found previously.
+ *   found previously. Defaults to FALSE.
+ *
  * @return
  *   The path of the matching directory.
  */

Modified: branches/drupal7/includes/common.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/common.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/common.inc (original)
+++ branches/drupal7/includes/common.inc Thu Jul 28 00:20:26 2011
@@ -2255,7 +2255,7 @@
  *   An associative array of key-value pairs to be converted to attributes.
  *
  * @return
- *   A string ready for insertion in a tag.
+ *   A string ready for insertion in a tag (starts with a space).
  *
  * @ingroup sanitization
  */
@@ -2291,7 +2291,9 @@
  *     to work in a call to drupal_attributes($options['attributes']).
  *   - 'html' (default FALSE): Whether $text is HTML or just plain-text. For
  *     example, to make an image tag into a link, this must be set to TRUE, or
- *     you will see the escaped HTML image tag.
+ *     you will see the escaped HTML image tag. $text is not sanitized if
+ *     'html' is TRUE. The calling function must ensure that $text is already
+ *     safe.
  *   - 'language': An optional language object. If the path being linked to is
  *     internal to the site, $options['language'] is used to determine whether
  *     the link is "active", or pointing to the current page (the language as
@@ -7047,6 +7049,7 @@
  *   Array of the possible severity levels for log messages.
  *
  * @see watchdog()
+ * @ingroup logging_severity_levels
  */
 function watchdog_severity_levels() {
   return array(

Modified: branches/drupal7/includes/database/mysql/database.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/database/mysql/database.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/database/mysql/database.inc (original)
+++ branches/drupal7/includes/database/mysql/database.inc Thu Jul 28 00:20:26 2011
@@ -169,10 +169,8 @@
           // savepoints which no longer exist.
           //
           // To avoid exceptions when no actual error has occurred, we silently
-          // succeed for PDOExceptions with SQLSTATE 42000 ("Syntax error or
-          // access rule violation") and MySQL error code 1305 ("SAVEPOINT does
-          // not exist").
-          if ($e->getCode() == '42000' && $e->errorInfo[1] == '1305') {
+          // succeed for MySQL error code 1305 ("SAVEPOINT does not exist").
+          if ($e->errorInfo[1] == '1305') {
             // If one SAVEPOINT was released automatically, then all were.
             // Therefore, we keep just the topmost transaction.
             $this->transactionLayers = array('drupal_transaction');

Modified: branches/drupal7/includes/entity.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/entity.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/entity.inc (original)
+++ branches/drupal7/includes/entity.inc Thu Jul 28 00:20:26 2011
@@ -458,6 +458,21 @@
   public $fieldConditions = array();
 
   /**
+   * List of field meta conditions (language and delta).
+   *
+   * Field conditions operate on columns specified by hook_field_schema(),
+   * the meta conditions operate on columns added by the system: delta
+   * and language. These can not be mixed with the field conditions because
+   * field columns can have any name including delta and language.
+   *
+   * @var array
+   *
+   * @see EntityFieldQuery::fieldLanguageCondition()
+   * @see EntityFieldQuery::fielDeltaCondition()
+   */
+  public $fieldMetaConditions = array();
+
+  /**
    * List of property conditions.
    *
    * @var array
@@ -613,6 +628,90 @@
   /**
    * Adds a condition on field values.
    *
+   * @param $type
+   *   The condition array the given conditions should be added to.
+   * @param $field
+   *   Either a field name or a field array.
+   * @param $column
+   *   The column that should hold the value to be matched.
+   * @param $value
+   *   The value to test the column value against.
+   * @param $operator
+   *   The operator to be used to test the given value.
+   * @param $delta_group
+   *   An arbitrary identifier: conditions in the same group must have the same
+   *   $delta_group.
+   * @param $language_group
+   *   An arbitrary identifier: conditions in the same group must have the same
+   *   $language_group.
+   *
+   * @return EntityFieldQuery
+   *   The called object.
+   *
+   * @see EntityFieldQuery::addFieldCondition
+   * @see EntityFieldQuery::deleted
+   */
+  public function fieldCondition($field, $column = NULL, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
+    return $this->addFieldCondition($this->fieldConditions, $field, $column, $value, $operator, $delta_group, $language_group);
+  }
+
+  /**
+   * Adds a condition on the field language column.
+   *
+   * @param $field
+   *   Either a field name or a field array.
+   * @param $value
+   *   The value to test the column value against.
+   * @param $operator
+   *   The operator to be used to test the given value.
+   * @param $delta_group
+   *   An arbitrary identifier: conditions in the same group must have the same
+   *   $delta_group.
+   * @param $language_group
+   *   An arbitrary identifier: conditions in the same group must have the same
+   *   $language_group.
+   *
+   * @return EntityFieldQuery
+   *   The called object.
+   *
+   * @see EntityFieldQuery::addFieldCondition
+   * @see EntityFieldQuery::deleted
+   */
+  public function fieldLanguageCondition($field, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
+    return $this->addFieldCondition($this->fieldMetaConditions, $field, 'language', $value, $operator, $delta_group, $language_group);
+  }
+
+  /**
+   * Adds a condition on the field delta column.
+   *
+   * @param $field
+   *   Either a field name or a field array.
+   * @param $value
+   *   The value to test the column value against.
+   * @param $operator
+   *   The operator to be used to test the given value.
+   * @param $delta_group
+   *   An arbitrary identifier: conditions in the same group must have the same
+   *   $delta_group.
+   * @param $language_group
+   *   An arbitrary identifier: conditions in the same group must have the same
+   *   $language_group.
+   *
+   * @return EntityFieldQuery
+   *   The called object.
+   *
+   * @see EntityFieldQuery::addFieldCondition
+   * @see EntityFieldQuery::deleted
+   */
+  public function fieldDeltaCondition($field, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
+    return $this->addFieldCondition($this->fieldMetaConditions, $field, 'delta', $value, $operator, $delta_group, $language_group);
+  }
+
+  /**
+   * Adds the given condition to the proper condition array.
+   *
+   * @param $conditions
+   *   A reference to an array of conditions.
    * @param $field
    *   Either a field name or a field array.
    * @param $column
@@ -649,7 +748,7 @@
    * @return EntityFieldQuery
    *   The called object.
    */
-  public function fieldCondition($field, $column = NULL, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
+  protected function addFieldCondition(&$conditions, $field, $column = NULL, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
     if (is_scalar($field)) {
       $field_definition = field_info_field($field);
       if (empty($field_definition)) {
@@ -657,11 +756,11 @@
       }
       $field = $field_definition;
     }
-    // Ensure the same index is used for fieldConditions as for fields.
+    // Ensure the same index is used for field conditions as for fields.
     $index = count($this->fields);
     $this->fields[$index] = $field;
     if (isset($column)) {
-      $this->fieldConditions[$index] = array(
+      $conditions[$index] = array(
         'field' => $field,
         'column' => $column,
         'value' => $value,

Modified: branches/drupal7/includes/errors.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/errors.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/errors.inc (original)
+++ branches/drupal7/includes/errors.inc Thu Jul 28 00:20:26 2011
@@ -24,6 +24,8 @@
  * Map PHP error constants to watchdog severity levels.
  * The error constants are documented at
  * http://php.net/manual/en/errorfunc.constants.php
+ *
+ * @ingroup logging_severity_levels
  */
 function drupal_error_levels() {
   $types = array(

Modified: branches/drupal7/includes/file.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/file.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/file.inc (original)
+++ branches/drupal7/includes/file.inc Thu Jul 28 00:20:26 2011
@@ -755,7 +755,12 @@
  */
 function file_copy(stdClass $source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
   if (!file_valid_uri($destination)) {
-    watchdog('file', 'File %file (%realpath) could not be copied, because the destination %destination is invalid. This is often caused by improper use of file_copy() or a missing stream wrapper.', array('%file' => $source->uri, '%realpath' => drupal_realpath($source->uri), '%destination' => $destination));
+    if (($realpath = drupal_realpath($source->uri)) !== FALSE) {
+      watchdog('file', 'File %file (%realpath) could not be copied, because the destination %destination is invalid. This is often caused by improper use of file_copy() or a missing stream wrapper.', array('%file' => $source->uri, '%realpath' => $realpath, '%destination' => $destination));
+    }
+    else {
+      watchdog('file', 'File %file could not be copied, because the destination %destination is invalid. This is often caused by improper use of file_copy() or a missing stream wrapper.', array('%file' => $source->uri, '%destination' => $destination));
+    }
     drupal_set_message(t('The specified file %file could not be copied, because the destination is invalid. More information is available in the system log.', array('%file' => $source->uri)), 'error');
     return FALSE;
   }
@@ -847,11 +852,15 @@
   $original_destination = $destination;
 
   // Assert that the source file actually exists.
-  $source = drupal_realpath($source);
   if (!file_exists($source)) {
     // @todo Replace drupal_set_message() calls with exceptions instead.
     drupal_set_message(t('The specified file %file could not be copied, because no file by that name exists. Please check that you supplied the correct filename.', array('%file' => $original_source)), 'error');
-    watchdog('file', 'File %file (%realpath) could not be copied because it does not exist.', array('%file' => $original_source, '%realpath' => drupal_realpath($original_source)));
+    if (($realpath = drupal_realpath($original_source)) !== FALSE) {
+      watchdog('file', 'File %file (%realpath) could not be copied because it does not exist.', array('%file' => $original_source, '%realpath' => $realpath));
+    }
+    else {
+      watchdog('file', 'File %file could not be copied because it does not exist.', array('%file' => $original_source));
+    }
     return FALSE;
   }
 
@@ -871,7 +880,7 @@
     $dirname = drupal_dirname($destination);
     if (!file_prepare_directory($dirname)) {
       // The destination is not valid.
-      watchdog('file', 'File %file could not be copied, because the destination directory %destination is not configured correctly.', array('%file' => $original_source, '%destination' => drupal_realpath($dirname)));
+      watchdog('file', 'File %file could not be copied, because the destination directory %destination is not configured correctly.', array('%file' => $original_source, '%destination' => $dirname));
       drupal_set_message(t('The specified file %file could not be copied, because the destination directory is not properly configured. This may be caused by a problem with file or directory permissions. More information is available in the system log.', array('%file' => $original_source)), 'error');
       return FALSE;
     }
@@ -881,12 +890,14 @@
   $destination = file_destination($destination, $replace);
   if ($destination === FALSE) {
     drupal_set_message(t('The file %file could not be copied because a file by that name already exists in the destination directory.', array('%file' => $original_source)), 'error');
-    watchdog('file', 'File %file could not be copied because a file by that name already exists in the destination directory (%directory)', array('%file' => $original_source, '%destination' => drupal_realpath($destination)));
+    watchdog('file', 'File %file could not be copied because a file by that name already exists in the destination directory (%directory)', array('%file' => $original_source, '%destination' => $destination));
     return FALSE;
   }
 
   // Assert that the source and destination filenames are not the same.
-  if (drupal_realpath($source) == drupal_realpath($destination)) {
+  $real_source = drupal_realpath($source);
+  $real_destination = drupal_realpath($destination);
+  if ($source == $destination || ($real_source !== FALSE) && ($real_source == $real_destination)) {
     drupal_set_message(t('The specified file %file was not copied because it would overwrite itself.', array('%file' => $source)), 'error');
     watchdog('file', 'File %file could not be copied because it would overwrite itself.', array('%file' => $source));
     return FALSE;
@@ -895,7 +906,7 @@
   file_ensure_htaccess();
   // Perform the copy operation.
   if (!@copy($source, $destination)) {
-    watchdog('file', 'The specified file %file could not be copied to %destination.', array('%file' => $source, '%destination' => drupal_realpath($destination)), WATCHDOG_ERROR);
+    watchdog('file', 'The specified file %file could not be copied to %destination.', array('%file' => $source, '%destination' => $destination), WATCHDOG_ERR);
     return FALSE;
   }
 
@@ -986,7 +997,12 @@
  */
 function file_move(stdClass $source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
   if (!file_valid_uri($destination)) {
-    watchdog('file', 'File %file (%realpath) could not be moved, because the destination %destination is invalid. This may be caused by improper use of file_move() or a missing stream wrapper.', array('%file' => $source->uri, '%realpath' => drupal_realpath($source->uri), '%destination' => $destination));
+    if (($realpath = drupal_realpath($source->uri)) !== FALSE) {
+      watchdog('file', 'File %file (%realpath) could not be moved, because the destination %destination is invalid. This may be caused by improper use of file_move() or a missing stream wrapper.', array('%file' => $source->uri, '%realpath' => $realpath, '%destination' => $destination));
+    }
+    else {
+      watchdog('file', 'File %file could not be moved, because the destination %destination is invalid. This may be caused by improper use of file_move() or a missing stream wrapper.', array('%file' => $source->uri, '%destination' => $destination));
+    }
     drupal_set_message(t('The specified file %file could not be moved, because the destination is invalid. More information is available in the system log.', array('%file' => $source->uri)), 'error');
     return FALSE;
   }
@@ -1212,7 +1228,12 @@
  */
 function file_delete(stdClass $file, $force = FALSE) {
   if (!file_valid_uri($file->uri)) {
-    watchdog('file', 'File %file (%realpath) could not be deleted because it is not a valid URI. This may be caused by improper use of file_delete() or a missing stream wrapper.', array('%file' => $file->uri, '%realpath' => drupal_realpath($file->uri)));
+    if (($realpath = drupal_realpath($file->uri)) !== FALSE) {
+      watchdog('file', 'File %file (%realpath) could not be deleted because it is not a valid URI. This may be caused by improper use of file_delete() or a missing stream wrapper.', array('%file' => $file->uri, '%realpath' => $realpath));
+    }
+    else {
+      watchdog('file', 'File %file could not be deleted because it is not a valid URI. This may be caused by improper use of file_delete() or a missing stream wrapper.', array('%file' => $file->uri));
+    }
     drupal_set_message(t('The specified file %file could not be deleted, because it is not a valid URI. More information is available in the system log.', array('%file' => $file->uri)), 'error');
     return FALSE;
   }
@@ -1256,8 +1277,6 @@
  * @see file_unmanaged_delete_recursive()
  */
 function file_unmanaged_delete($path) {
-  // Resolve streamwrapper URI to local path.
-  $path = drupal_realpath($path);
   if (is_dir($path)) {
     watchdog('file', '%path is a directory and cannot be removed using file_unmanaged_delete().', array('%path' => $path), WATCHDOG_ERROR);
     return FALSE;
@@ -1299,8 +1318,6 @@
  * @see file_unmanaged_delete()
  */
 function file_unmanaged_delete_recursive($path) {
-  // Resolve streamwrapper URI to local path.
-  $path = drupal_realpath($path);
   if (is_dir($path)) {
     $dir = dir($path);
     while (($entry = $dir->read()) !== FALSE) {
@@ -2331,11 +2348,9 @@
     if (substr(PHP_OS, 0, 3) == 'WIN') {
       $directories[] = 'c:\\windows\\temp';
       $directories[] = 'c:\\winnt\\temp';
-      $path_delimiter = '\\';
     }
     else {
       $directories[] = '/tmp';
-      $path_delimiter = '/';
     }
     // PHP may be able to find an alternative tmp directory.
     // This function exists in PHP 5 >= 5.2.1, but Drupal
@@ -2352,8 +2367,14 @@
     }
 
     if (empty($temporary_directory)) {
-      // If no directory has been found default to 'files/tmp' or 'files\\tmp'.
-      $temporary_directory = variable_get('file_public_path', conf_path() . '/files') . $path_delimiter . 'tmp';
+      // If no directory has been found default to 'files/tmp'.
+      $temporary_directory = variable_get('file_public_path', conf_path() . '/files') . '/tmp';
+
+      // Windows accepts paths with either slash (/) or backslash (\), but will
+      // not accept a path which contains both a slash and a backslash. Since
+      // the 'file_public_path' variable may have either format, we sanitize
+      // everything to use slash which is supported on all platforms.
+      $temporary_directory = str_replace('\\', '/', $temporary_directory);
     }
     // Save the path of the discovered directory.
     variable_set('file_temporary_path', $temporary_directory);

Modified: branches/drupal7/includes/form.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/form.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/form.inc (original)
+++ branches/drupal7/includes/form.inc Thu Jul 28 00:20:26 2011
@@ -272,7 +272,8 @@
  *   form submission may be found in drupal_redirect_form().
  *
  * @return
- *   The rendered form or NULL, depending upon the $form_state flags that were set.
+ *   The rendered form. This function may also perform a redirect and hence may
+ *   not return at all, depending upon the $form_state flags that were set.
  *
  * @see drupal_redirect_form()
  */
@@ -995,6 +996,8 @@
   $form += array('#tree' => FALSE, '#parents' => array());
 
   if (!isset($form['#validate'])) {
+    // Ensure that modules can rely on #validate being set.
+    $form['#validate'] = array();
     // Check for a handler specific to $form_id.
     if (function_exists($form_id . '_validate')) {
       $form['#validate'][] = $form_id . '_validate';
@@ -1007,6 +1010,8 @@
   }
 
   if (!isset($form['#submit'])) {
+    // Ensure that modules can rely on #submit being set.
+    $form['#submit'] = array();
     // Check for a handler specific to $form_id.
     if (function_exists($form_id . '_submit')) {
       $form['#submit'][] = $form_id . '_submit';
@@ -2853,9 +2858,9 @@
 /**
  * Validates the date type to stop dates like February 30, 2006.
  */
-function date_validate($form) {
-  if (!checkdate($form['#value']['month'], $form['#value']['day'], $form['#value']['year'])) {
-    form_error($form, t('The specified date is invalid.'));
+function date_validate($element) {
+  if (!checkdate($element['#value']['month'], $element['#value']['day'], $element['#value']['year'])) {
+    form_error($element, t('The specified date is invalid.'));
   }
 }
 

Modified: branches/drupal7/includes/mail.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/mail.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/mail.inc (original)
+++ branches/drupal7/includes/mail.inc Thu Jul 28 00:20:26 2011
@@ -430,7 +430,7 @@
           $indent[] = count($lists) ? ' "' : '>';
           break;
         case 'li':
-          $indent[] = is_numeric($lists[0]) ? ' ' . $lists[0]++ . ') ' : ' * ';
+          $indent[] = isset($lists[0]) && is_numeric($lists[0]) ? ' ' . $lists[0]++ . ') ' : ' * ';
           break;
         case 'dd':
           $indent[] = '    ';
@@ -509,7 +509,7 @@
         $chunk = $casing($chunk);
       }
       // Format it and apply the current indentation.
-      $output .= drupal_wrap_mail($chunk, implode('', $indent));
+      $output .= drupal_wrap_mail($chunk, implode('', $indent)) . MAIL_LINE_ENDINGS;
       // Remove non-quotation markers from indentation.
       $indent = array_map('_drupal_html_to_text_clean', $indent);
     }

Modified: branches/drupal7/includes/menu.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/menu.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/menu.inc (original)
+++ branches/drupal7/includes/menu.inc Thu Jul 28 00:20:26 2011
@@ -431,6 +431,11 @@
     $router_items[$path] = $router_item;
   }
   if (!isset($router_items[$path])) {
+    // Rebuild if we know it's needed, or if the menu masks are missing which
+    // occurs rarely, likely due to a race condition of multiple rebuilds.
+    if (variable_get('menu_rebuild_needed', FALSE) || !variable_get('menu_masks', array())) {
+      menu_rebuild();
+    }
     $original_map = arg(NULL, $path);
 
     // Since there is no limit to the length of $path, use a hash to keep it
@@ -490,11 +495,6 @@
 
   // Only continue if the site status is not set.
   if ($page_callback_result == MENU_SITE_ONLINE) {
-    // Rebuild if we know it's needed, or if the menu masks are missing which
-    // occurs rarely, likely due to a race condition of multiple rebuilds.
-    if (variable_get('menu_rebuild_needed', FALSE) || !variable_get('menu_masks', array())) {
-      menu_rebuild();
-    }
     if ($router_item = menu_get_item($path)) {
       if ($router_item['access']) {
         if ($router_item['include_file']) {
@@ -2696,19 +2696,15 @@
     }
   }
   if ($menu_links) {
+    // Keep an array of processed menu links, to allow menu_link_save() to
+    // check this for parents instead of querying the database.
+    $parent_candidates = array();
     // Make sure no child comes before its parent.
     array_multisort($sort, SORT_NUMERIC, $menu_links);
 
-    foreach ($menu_links as $item) {
+    foreach ($menu_links as $key => $item) {
       $existing_item = db_select('menu_links')
-        ->fields('menu_links', array(
-          'mlid',
-          'menu_name',
-          'plid',
-          'customized',
-          'has_children',
-          'updated',
-        ))
+        ->fields('menu_links')
         ->condition('link_path', $item['path'])
         ->condition('module', 'system')
         ->execute()->fetchAssoc();
@@ -2727,9 +2723,14 @@
         $item['has_children'] = $existing_item['has_children'];
         $item['updated'] = $existing_item['updated'];
       }
-      if (!$existing_item || !$existing_item['customized']) {
+      if ($existing_item && $existing_item['customized']) {
+        $parent_candidates[$existing_item['mlid']] = $existing_item;
+      }
+      else {
         $item = _menu_link_build($item);
-        menu_link_save($item);
+        menu_link_save($item, $existing_item, $parent_candidates);
+        $parent_candidates[$item['mlid']] = $item;
+        unset($menu_links[$key]);
       }
     }
   }
@@ -2927,12 +2928,17 @@
  *     to insert a new link.
  *   - plid: (optional) The mlid of the parent.
  *   - router_path: (optional) The path of the relevant router item.
+ * @param $existing_item
+ *   Optional, the current record from the {menu_links} table as an array.
+ * @param $parent_candidates
+ *   Optional array of menu links keyed by mlid. Used by
+ *   _menu_navigation_links_rebuild() only.
  *
  * @return
  *   The mlid of the saved menu link, or FALSE if the menu link could not be
  *   saved.
  */
-function menu_link_save(&$item) {
+function menu_link_save(&$item, $existing_item = array(), $parent_candidates = array()) {
   drupal_alter('menu_link', $item);
 
   // This is the easiest way to handle the unique internal path '<front>',
@@ -2951,15 +2957,20 @@
     'customized' => 0,
     'updated' => 0,
   );
-  $existing_item = FALSE;
   if (isset($item['mlid'])) {
-    if ($existing_item = db_query("SELECT * FROM {menu_links} WHERE mlid = :mlid", array(':mlid' => $item['mlid']))->fetchAssoc()) {
+    if (!$existing_item) {
+      $existing_item = db_query('SELECT * FROM {menu_links} WHERE mlid = :mlid', array('mlid' => $item['mlid']))->fetchAssoc();
+    }
+    if ($existing_item) {
       $existing_item['options'] = unserialize($existing_item['options']);
     }
   }
+  else {
+    $existing_item = FALSE;
+  }
 
   // Try to find a parent link. If found, assign it and derive its menu.
-  $parent = _menu_link_find_parent($item);
+  $parent = _menu_link_find_parent($item, $parent_candidates);
   if (!empty($parent['mlid'])) {
     $item['plid'] = $parent['mlid'];
     $item['menu_name'] = $parent['menu_name'];
@@ -3093,11 +3104,13 @@
  *
  * @param $menu_link
  *   A menu link.
+ * @param $parent_candidates
+ *   An array of menu links keyed by mlid.
  * @return
  *   A menu link structure of the possible parent or FALSE if no valid parent
  *   has been found.
  */
-function _menu_link_find_parent($menu_link) {
+function _menu_link_find_parent($menu_link, $parent_candidates = array()) {
   $parent = FALSE;
 
   // This item is explicitely top-level, skip the rest of the parenting.
@@ -3119,7 +3132,12 @@
   }
 
   foreach ($candidates as $mlid) {
-    $parent = db_query("SELECT * FROM {menu_links} WHERE mlid = :mlid", array(':mlid' => $mlid))->fetchAssoc();
+    if (isset($parent_candidates[$mlid])) {
+      $parent = $parent_candidates[$mlid];
+    }
+    else {
+      $parent = db_query("SELECT * FROM {menu_links} WHERE mlid = :mlid", array(':mlid' => $mlid))->fetchAssoc();
+    }
     if ($parent) {
       return $parent;
     }

Modified: branches/drupal7/includes/password.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/password.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/password.inc (original)
+++ branches/drupal7/includes/password.inc Thu Jul 28 00:20:26 2011
@@ -18,7 +18,7 @@
  * increase by 1 every Drupal version in order to counteract increases in the
  * speed and power of computers available to crack the hashes.
  */
-define('DRUPAL_HASH_COUNT', 14);
+define('DRUPAL_HASH_COUNT', 15);
 
 /**
  * The minimum allowed log2 number of iterations for password stretching.

Modified: branches/drupal7/includes/stream_wrappers.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/includes/stream_wrappers.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/includes/stream_wrappers.inc (original)
+++ branches/drupal7/includes/stream_wrappers.inc Thu Jul 28 00:20:26 2011
@@ -341,7 +341,11 @@
    * Base implementation of chmod().
    */
   function chmod($mode) {
-    return @chmod($this->getLocalPath(), $mode);
+    $output = @chmod($this->getLocalPath(), $mode);
+    // We are modifying the underlying file here, so we have to clear the stat
+    // cache so that PHP understands that URI has changed too.
+    clearstatcache();
+    return $output;
   }
 
   /**

Modified: branches/drupal7/misc/ajax.js
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/misc/ajax.js?rev=2225&op=diff
==============================================================================
--- branches/drupal7/misc/ajax.js (original)
+++ branches/drupal7/misc/ajax.js Thu Jul 28 00:20:26 2011
@@ -182,9 +182,16 @@
   // can be triggered through keyboard input as well as e.g. a mousedown
   // action.
   if (element_settings.keypress) {
-    $(element_settings.element).keypress(function (event) {
+    $(ajax.element).keypress(function (event) {
       return ajax.keypressResponse(this, event);
     });
+  }
+
+  // If necessary, prevent the browser default action of an additional event.
+  // For example, prevent the browser default action of a click, even if the
+  // AJAX behavior binds to mousedown.
+  if (element_settings.prevent) {
+    $(ajax.element).bind(element_settings.prevent, false);
   }
 };
 

Modified: branches/drupal7/modules/aggregator/aggregator.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/aggregator/aggregator.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/aggregator/aggregator.info (original)
+++ branches/drupal7/modules/aggregator/aggregator.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 configure = admin/config/services/aggregator/settings
 stylesheets[all][] = aggregator.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/aggregator/tests/aggregator_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/aggregator/tests/aggregator_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/aggregator/tests/aggregator_test.info (original)
+++ branches/drupal7/modules/aggregator/tests/aggregator_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/block/block.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/block/block.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/block/block.info (original)
+++ branches/drupal7/modules/block/block.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = block.test
 configure = admin/structure/block
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/block/block.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/block/block.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/block/block.module (original)
+++ branches/drupal7/modules/block/block.module Thu Jul 28 00:20:26 2011
@@ -612,7 +612,8 @@
   $has_blocks = (bool) db_query_range('SELECT 1 FROM {block} WHERE theme = :theme', 0, 1, array(':theme' => $theme))->fetchField();
   if (!$has_blocks) {
     $default_theme = variable_get('theme_default', 'bartik');
-    $regions = system_region_list($theme);
+    // Apply only to new theme's visible regions.
+    $regions = system_region_list($theme, REGIONS_VISIBLE);
     $result = db_query("SELECT * FROM {block} WHERE theme = :theme", array(':theme' => $default_theme), array('fetch' => PDO::FETCH_ASSOC));
     foreach ($result as $block) {
       // If the region isn't supported by the theme, assign the block to the theme's default region.

Modified: branches/drupal7/modules/block/tests/block_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/block/tests/block_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/block/tests/block_test.info (original)
+++ branches/drupal7/modules/block/tests/block_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/blog/blog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/blog/blog.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/blog/blog.info (original)
+++ branches/drupal7/modules/blog/blog.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = blog.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/book/book.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/book/book.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/book/book.info (original)
+++ branches/drupal7/modules/book/book.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 configure = admin/content/book/settings
 stylesheets[all][] = book.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/book/book.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/book/book.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/book/book.module (original)
+++ branches/drupal7/modules/book/book.module Thu Jul 28 00:20:26 2011
@@ -617,6 +617,8 @@
           'bid' => $node->book['bid'],
         ))
         ->execute();
+      // Reset the cache of stored books.
+      drupal_static_reset('book_get_books');
     }
     else {
       if ($node->book['bid'] != db_query("SELECT bid FROM {book} WHERE nid = :nid", array(
@@ -624,6 +626,8 @@
         ))->fetchField()) {
         // Update the bid for this page and all children.
         book_update_bid($node->book);
+        // Reset the cache of stored books.
+        drupal_static_reset('book_get_books');
       }
     }
 
@@ -895,6 +899,7 @@
     db_delete('book')
       ->condition('mlid', $node->book['mlid'])
       ->execute();
+    drupal_static_reset('book_get_books');
   }
 }
 

Modified: branches/drupal7/modules/color/color.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/color/color.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/color/color.info (original)
+++ branches/drupal7/modules/color/color.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = color.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/comment/comment.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/comment/comment.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/comment/comment.info (original)
+++ branches/drupal7/modules/comment/comment.info Thu Jul 28 00:20:26 2011
@@ -9,8 +9,8 @@
 configure = admin/content/comment
 stylesheets[all][] = comment.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/comment/comment.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/comment/comment.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/comment/comment.module (original)
+++ branches/drupal7/modules/comment/comment.module Thu Jul 28 00:20:26 2011
@@ -2161,7 +2161,14 @@
     // 1) Filter it into HTML
     // 2) Strip out all HTML tags
     // 3) Convert entities back to plain-text.
-    $comment->subject = truncate_utf8(trim(decode_entities(strip_tags(check_markup($comment->comment_body[LANGUAGE_NONE][0]['value'], $comment->comment_body[LANGUAGE_NONE][0]['format'])))), 29, TRUE);
+    $comment_body = $comment->comment_body[LANGUAGE_NONE][0];
+    if (isset($comment_body['format'])) {
+      $comment_text = check_markup($comment_body['value'], $comment_body['format']);
+    }
+    else {
+      $comment_text = check_plain($comment_body['value']);
+    }
+    $comment->subject = truncate_utf8(trim(decode_entities(strip_tags($comment_text))), 29, TRUE);
     // Edge cases where the comment body is populated only by HTML tags will
     // require a default subject.
     if ($comment->subject == '') {
@@ -2681,6 +2688,10 @@
  */
 function comment_file_download_access($field, $entity_type, $entity) {
   if ($entity_type == 'comment') {
-    return user_access('access comments') && $entity->status == COMMENT_PUBLISHED || user_access('administer comments');
-  }
-}
+    if (user_access('access comments') && $entity->status == COMMENT_PUBLISHED || user_access('administer comments')) {
+      $node = node_load($entity->nid);
+      return node_access('view', $node);
+    }
+    return FALSE;
+  }
+}

Modified: branches/drupal7/modules/comment/comment.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/comment/comment.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/comment/comment.test (original)
+++ branches/drupal7/modules/comment/comment.test Thu Jul 28 00:20:26 2011
@@ -250,6 +250,56 @@
     preg_match('/href="(.*?)#comment-([^"]+)"(.*?)>(' . $subject . ')/', $this->drupalGetContent(), $match);
 
     return $match[2];
+  }
+
+  /**
+   * Tests new comment marker.
+   */
+  public function testCommentNewCommentsIndicator() {
+    // Test if the right links are displayed when no comment is present for the
+    // node.
+    $this->drupalLogin($this->admin_user);
+    $this->node = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1, 'comment' => COMMENT_NODE_OPEN));
+    $this->drupalGet('node');
+    $this->assertNoLink(t('@count comments', array('@count' => 0)));
+    $this->assertNoLink(t('@count new comments', array('@count' => 0)));
+    $this->assertLink(t('Read more'));
+    $count = $this->xpath('//div[@id=:id]/div[@class=:class]/ul/li', array(':id' => 'node-' . $this->node->nid, ':class' => 'link-wrapper'));
+    $this->assertTrue(count($count) == 1, t('One child found'));
+
+    // Create a new comment. This helper function may be run with different
+    // comment settings so use comment_save() to avoid complex setup.
+    $comment = (object) array(
+      'cid' => NULL,
+      'nid' => $this->node->nid,
+      'node_type' => $this->node->type,
+      'pid' => 0,
+      'uid' => $this->loggedInUser->uid,
+      'status' => COMMENT_PUBLISHED,
+      'subject' => $this->randomName(),
+      'hostname' => ip_address(),
+      'language' => LANGUAGE_NONE,
+      'comment_body' => array(LANGUAGE_NONE => array($this->randomName())),
+    );
+    comment_save($comment);
+    $this->drupalLogout();
+
+    // Log in with 'web user' and check comment links.
+    $this->drupalLogin($this->web_user);
+    $this->drupalGet('node');
+    $this->assertLink(t('1 new comment'));
+    $this->clickLink(t('1 new comment'));
+    $this->assertRaw('<a id="new"></a>', t('Found "new" marker.'));
+    $this->assertTrue($this->xpath('//a[@id=:new]/following-sibling::a[1][@id=:comment_id]', array(':new' => 'new', ':comment_id' => 'comment-1')), t('The "new" anchor is positioned at the right comment.'));
+
+    // Test if "new comment" link is correctly removed.
+    $this->drupalGet('node');
+    $this->assertLink(t('1 comment'));
+    $this->assertLink(t('Read more'));
+    $this->assertNoLink(t('1 new comment'));
+    $this->assertNoLink(t('@count new comments', array('@count' => 0)));
+    $count = $this->xpath('//div[@id=:id]/div[@class=:class]/ul/li', array(':id' => 'node-' . $this->node->nid, ':class' => 'link-wrapper'));
+    $this->assertTrue(count($count) == 2, print_r($count, TRUE));
   }
 }
 
@@ -1912,4 +1962,19 @@
     $this->postComment($book_node, $this->randomName(), $this->randomName());
     $this->postComment($poll_node, $this->randomName(), $this->randomName());
   }
+
+  /**
+   * Test that comment module works correctly with plain text format.
+   */
+  function testCommentFormat() {
+    // Disable text processing for comments.
+    $this->drupalLogin($this->admin_user);
+    $edit = array('instance[settings][text_processing]' => 0);
+    $this->drupalPost('admin/structure/types/manage/article/comment/fields/comment_body', $edit, t('Save settings'));
+
+    // Post a comment without an explicit subject.
+    $this->drupalLogin($this->web_user);
+    $edit = array('comment_body[und][0][value]' => $this->randomName(8));
+    $this->drupalPost('node/' . $this->node->nid, $edit, t('Save'));
+  }
 }

Modified: branches/drupal7/modules/contact/contact.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/contact/contact.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/contact/contact.info (original)
+++ branches/drupal7/modules/contact/contact.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = contact.test
 configure = admin/structure/contact
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/contextual/contextual.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/contextual/contextual.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/contextual/contextual.info (original)
+++ branches/drupal7/modules/contextual/contextual.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 version = VERSION
 core = 7.x
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/dashboard/dashboard.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/dashboard/dashboard.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/dashboard/dashboard.info (original)
+++ branches/drupal7/modules/dashboard/dashboard.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 dependencies[] = block
 configure = admin/dashboard/customize
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/dblog/dblog.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/dblog/dblog.admin.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/dblog/dblog.admin.inc (original)
+++ branches/drupal7/modules/dblog/dblog.admin.inc Thu Jul 28 00:20:26 2011
@@ -10,6 +10,8 @@
  *
  * Messages are truncated at 56 chars. Full-length message could be viewed at
  * the message details page.
+ *
+ * @ingroup logging_severity_levels
  */
 function dblog_overview() {
   $filter = dblog_build_filter_query();

Modified: branches/drupal7/modules/dblog/dblog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/dblog/dblog.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/dblog/dblog.info (original)
+++ branches/drupal7/modules/dblog/dblog.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = dblog.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/dblog/dblog.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/dblog/dblog.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/dblog/dblog.test (original)
+++ branches/drupal7/modules/dblog/dblog.test Thu Jul 28 00:20:26 2011
@@ -528,6 +528,8 @@
    *   CSS class attribute.
    * @return
    *   The watchdog severity constant or NULL if not found.
+   *
+   * @ingroup logging_severity_levels
    */
   protected function getSeverityConstant($class) {
     // Reversed array from dblog_overview().

Modified: branches/drupal7/modules/field/field.api.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/field.api.php?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/field.api.php (original)
+++ branches/drupal7/modules/field/field.api.php Thu Jul 28 00:20:26 2011
@@ -1132,7 +1132,7 @@
  *
  * See field_attach_load() for details and arguments.
  */
-function hook_field_attach_load($entity_type, &$entities, $age, $options) {
+function hook_field_attach_load($entity_type, $entities, $age, $options) {
   // @todo Needs function body.
 }
 
@@ -1580,7 +1580,7 @@
  *     non-deleted fields. If unset or FALSE, only non-deleted fields should be
  *     loaded.
  */
-function hook_field_storage_load($entity_type, &$entities, $age, $fields, $options) {
+function hook_field_storage_load($entity_type, $entities, $age, $fields, $options) {
   $field_info = field_info_field_by_ids();
   $load_current = $age == FIELD_LOAD_CURRENT;
 

Modified: branches/drupal7/modules/field/field.form.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/field.form.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/field.form.inc (original)
+++ branches/drupal7/modules/field/field.form.inc Thu Jul 28 00:20:26 2011
@@ -373,7 +373,7 @@
  * to return just the changed part of the form.
  */
 function field_add_more_submit($form, &$form_state) {
-  $button = $form_state['clicked_button'];
+  $button = $form_state['triggering_element'];
 
   // Go one level up in the form, to the widgets container.
   $element = drupal_array_get_nested_value($form, array_slice($button['#array_parents'], 0, -1));
@@ -398,7 +398,7 @@
  * @see field_add_more_submit()
  */
 function field_add_more_js($form, $form_state) {
-  $button = $form_state['clicked_button'];
+  $button = $form_state['triggering_element'];
 
   // Go one level up in the form, to the widgets container.
   $element = drupal_array_get_nested_value($form, array_slice($button['#array_parents'], 0, -1));

Modified: branches/drupal7/modules/field/field.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/field.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/field.info (original)
+++ branches/drupal7/modules/field/field.info Thu Jul 28 00:20:26 2011
@@ -10,8 +10,8 @@
 required = TRUE
 stylesheets[all][] = theme/field.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info (original)
+++ branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 files[] = field_sql_storage.test
 required = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.module (original)
+++ branches/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.module Thu Jul 28 00:20:26 2011
@@ -468,7 +468,6 @@
  * Implements hook_field_storage_query().
  */
 function field_sql_storage_field_storage_query(EntityFieldQuery $query) {
-  $groups = array();
   if ($query->age == FIELD_LOAD_CURRENT) {
     $tablename_function = '_field_sql_storage_tablename';
     $id_key = 'entity_id';
@@ -499,12 +498,106 @@
     }
   }
 
-  // Add field conditions.
-  foreach ($query->fieldConditions as $key => $condition) {
+  // Add field conditions. We need a fresh grouping cache.
+  drupal_static_reset('_field_sql_storage_query_field_conditions');
+  _field_sql_storage_query_field_conditions($query, $select_query, $query->fieldConditions, $table_aliases, '_field_sql_storage_columnname');
+
+  // Add field meta conditions.
+  _field_sql_storage_query_field_conditions($query, $select_query, $query->fieldMetaConditions, $table_aliases, '_field_sql_storage_query_columnname');
+
+  if (isset($query->deleted)) {
+    $select_query->condition("$field_base_table.deleted", (int) $query->deleted);
+  }
+
+  // Is there a need to sort the query by property?
+  $has_property_order = FALSE;
+  foreach ($query->order as $order) {
+    if ($order['type'] == 'property') {
+      $has_property_order = TRUE;
+    }
+  }
+
+  if ($query->propertyConditions || $has_property_order) {
+    if (empty($query->entityConditions['entity_type']['value'])) {
+      throw new EntityFieldQueryException('Property conditions and orders must have an entity type defined.');
+    }
+    $entity_type = $query->entityConditions['entity_type']['value'];
+    $entity_base_table = _field_sql_storage_query_join_entity($select_query, $entity_type, $field_base_table);
+    $query->entityConditions['entity_type']['operator'] = '=';
+    foreach ($query->propertyConditions as $property_condition) {
+      $query->addCondition($select_query, "$entity_base_table." . $property_condition['column'], $property_condition);
+    }
+  }
+  foreach ($query->entityConditions as $key => $condition) {
+    $query->addCondition($select_query, "$field_base_table.$key", $condition);
+  }
+
+  // Order the query.
+  foreach ($query->order as $order) {
+    if ($order['type'] == 'entity') {
+      $key = $order['specifier'];
+      $select_query->orderBy("$field_base_table.$key", $order['direction']);
+    }
+    elseif ($order['type'] == 'field') {
+      $specifier = $order['specifier'];
+      $field = $specifier['field'];
+      $table_alias = $table_aliases[$specifier['index']];
+      $sql_field = "$table_alias." . _field_sql_storage_columnname($field['field_name'], $specifier['column']);
+      $select_query->orderBy($sql_field, $order['direction']);
+    }
+    elseif ($order['type'] == 'property') {
+      $select_query->orderBy("$entity_base_table." . $order['specifier'], $order['direction']);
+    }
+  }
+
+  return $query->finishQuery($select_query, $id_key);
+}
+
+/**
+ * Adds the base entity table to a field query object.
+ *
+ * @param SelectQuery $select_query
+ *   A SelectQuery containing at least one table as specified by
+ *   _field_sql_storage_tablename().
+ * @param $entity_type
+ *   The entity type for which the base table should be joined.
+ * @param $field_base_table
+ *   Name of a table in $select_query. As only INNER JOINs are used, it does
+ *   not matter which.
+ *
+ * @return
+ *   The name of the entity base table joined in.
+ */
+function _field_sql_storage_query_join_entity(SelectQuery $select_query, $entity_type, $field_base_table) {
+  $entity_info = entity_get_info($entity_type);
+  $entity_base_table = $entity_info['base table'];
+  $entity_field = $entity_info['entity keys']['id'];
+  $select_query->join($entity_base_table, $entity_base_table, "$entity_base_table.$entity_field = $field_base_table.entity_id");
+  return $entity_base_table;
+}
+
+/**
+ * Adds field (meta) conditions to the given query objects respecting groupings.
+ *
+ * @param EntityFieldQuery $query
+ *   The field query object to be processed.
+ * @param SelectQuery $select_query
+ *   The SelectQuery that should get grouping conditions.
+ * @param condtions
+ *   The conditions to be added.
+ * @param $table_aliases
+ *   An associative array of table aliases keyed by field index.
+ * @param $column_callback
+ *   A callback that should return the column name to be used for the field
+ *   conditions. Accepts a field name and a field column name as parameters.
+ */
+function _field_sql_storage_query_field_conditions(EntityFieldQuery $query, SelectQuery $select_query, $conditions, $table_aliases, $column_callback) {
+  $groups = &drupal_static(__FUNCTION__, array());
+  foreach ($conditions as $key => $condition) {
     $table_alias = $table_aliases[$key];
     $field = $condition['field'];
     // Add the specified condition.
-    $sql_field = "$table_alias." . _field_sql_storage_columnname($field['field_name'], $condition['column']);
+    $sql_field = "$table_alias." . $column_callback($field['field_name'], $condition['column']);
     $query->addCondition($select_query, $sql_field, $condition);
     // Add delta / language group conditions.
     foreach (array('delta', 'language') as $column) {
@@ -519,76 +612,13 @@
       }
     }
   }
-
-  if (isset($query->deleted)) {
-    $select_query->condition("$field_base_table.deleted", (int) $query->deleted);
-  }
-
-  // Is there a need to sort the query by property?
-  $has_property_order = FALSE;
-  foreach ($query->order as $order) {
-    if ($order['type'] == 'property') {
-      $has_property_order = TRUE;
-    }
-  }
-
-  if ($query->propertyConditions || $has_property_order) {
-    if (empty($query->entityConditions['entity_type']['value'])) {
-      throw new EntityFieldQueryException('Property conditions and orders must have an entity type defined.');
-    }
-    $entity_type = $query->entityConditions['entity_type']['value'];
-    $entity_base_table = _field_sql_storage_query_join_entity($select_query, $entity_type, $field_base_table);
-    $query->entityConditions['entity_type']['operator'] = '=';
-    foreach ($query->propertyConditions as $property_condition) {
-      $query->addCondition($select_query, "$entity_base_table." . $property_condition['column'], $property_condition);
-    }
-  }
-  foreach ($query->entityConditions as $key => $condition) {
-    $query->addCondition($select_query, "$field_base_table.$key", $condition);
-  }
-
-  // Order the query.
-  foreach ($query->order as $order) {
-    if ($order['type'] == 'entity') {
-      $key = $order['specifier'];
-      $select_query->orderBy("$field_base_table.$key", $order['direction']);
-    }
-    elseif ($order['type'] == 'field') {
-      $specifier = $order['specifier'];
-      $field = $specifier['field'];
-      $table_alias = $table_aliases[$specifier['index']];
-      $sql_field = "$table_alias." . _field_sql_storage_columnname($field['field_name'], $specifier['column']);
-      $select_query->orderBy($sql_field, $order['direction']);
-    }
-    elseif ($order['type'] == 'property') {
-      $select_query->orderBy("$entity_base_table." . $order['specifier'], $order['direction']);
-    }
-  }
-
-  return $query->finishQuery($select_query, $id_key);
-}
-
-/**
- * Adds the base entity table to a field query object.
- *
- * @param SelectQuery $select_query
- *   A SelectQuery containing at least one table as specified by
- *   _field_sql_storage_tablename().
- * @param $entity_type
- *   The entity type for which the base table should be joined.
- * @param $field_base_table
- *   Name of a table in $select_query. As only INNER JOINs are used, it does
- *   not matter which.
- *
- * @return
- *   The name of the entity base table joined in.
- */
-function _field_sql_storage_query_join_entity(SelectQuery $select_query, $entity_type, $field_base_table) {
-  $entity_info = entity_get_info($entity_type);
-  $entity_base_table = $entity_info['base table'];
-  $entity_field = $entity_info['entity keys']['id'];
-  $select_query->join($entity_base_table, $entity_base_table, "$entity_base_table.$entity_field = $field_base_table.entity_id");
-  return $entity_base_table;
+}
+
+/**
+ * Field meta condition column callback.
+ */
+function _field_sql_storage_query_columnname($field_name, $column) {
+  return $column;
 }
 
 /**

Modified: branches/drupal7/modules/field/modules/list/list.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/list/list.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/list/list.info (original)
+++ branches/drupal7/modules/field/modules/list/list.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 dependencies[] = options
 files[] = tests/list.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field/modules/list/list.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/list/list.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/list/list.module (original)
+++ branches/drupal7/modules/field/modules/list/list.module Thu Jul 28 00:20:26 2011
@@ -343,7 +343,7 @@
 function list_field_update_forbid($field, $prior_field, $has_data) {
   if ($field['module'] == 'list' && $has_data) {
     // Forbid any update that removes allowed values with actual data.
-    $lost_keys = array_diff(array_keys($field['settings']['allowed_values']), array_keys($prior_field['settings']['allowed_values']));
+    $lost_keys = array_diff(array_keys($prior_field['settings']['allowed_values']), array_keys($field['settings']['allowed_values']));
     if (_list_values_in_use($field, $lost_keys)) {
       throw new FieldUpdateForbiddenException(t('Cannot update a list field to not include keys with existing data.'));
     }

Modified: branches/drupal7/modules/field/modules/list/tests/list.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/list/tests/list.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/list/tests/list.test (original)
+++ branches/drupal7/modules/field/modules/list/tests/list.test Thu Jul 28 00:20:26 2011
@@ -54,6 +54,23 @@
     $this->assertTrue(!empty($form[$this->field_name][$langcode][1]), t('Option 1 exists'));
     $this->assertTrue(!empty($form[$this->field_name][$langcode][2]), t('Option 2 exists'));
     $this->assertTrue(!empty($form[$this->field_name][$langcode][3]), t('Option 3 exists'));
+
+    // Use one of the values in an actual entity, and check that this value
+    // cannot be removed from the list.
+    $entity = field_test_create_stub_entity();
+    $entity->{$this->field_name}[$langcode][0] = array('value' => 1);
+    field_test_entity_save($entity);
+    $this->field['settings']['allowed_values'] = array(2 => 'Two');
+    try {
+      field_update_field($this->field);
+      $this->fail(t('Cannot update a list field to not include keys with existing data.'));
+    }
+    catch (FieldException $e) {
+      $this->pass(t('Cannot update a list field to not include keys with existing data.'));
+    }
+    // Empty the value, so that we can actually remove the option.
+    $entity->{$this->field_name}[$langcode] = array();
+    field_test_entity_save($entity);
 
     // Removed options do not appear.
     $this->field['settings']['allowed_values'] = array(2 => 'Two');

Modified: branches/drupal7/modules/field/modules/list/tests/list_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/list/tests/list_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/list/tests/list_test.info (original)
+++ branches/drupal7/modules/field/modules/list/tests/list_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field/modules/number/number.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/number/number.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/number/number.info (original)
+++ branches/drupal7/modules/field/modules/number/number.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 dependencies[] = field
 files[] = number.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field/modules/options/options.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/options/options.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/options/options.info (original)
+++ branches/drupal7/modules/field/modules/options/options.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 dependencies[] = field
 files[] = options.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field/modules/text/text.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/text/text.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/text/text.info (original)
+++ branches/drupal7/modules/field/modules/text/text.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 files[] = text.test
 required = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field/modules/text/text.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/modules/text/text.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/modules/text/text.test (original)
+++ branches/drupal7/modules/field/modules/text/text.test Thu Jul 28 00:20:26 2011
@@ -464,7 +464,7 @@
     $node = $this->drupalGetNodeByTitle($edit['title']);
     $this->drupalGet("node/$node->nid/translate");
     $this->clickLink(t('add translation'));
-    $this->assertFieldByXPath("//textarea[@name='body[fr][0][value]']", $body, t('The textfield widget is populated.'));
+    $this->assertFieldByXPath("//textarea[@name='body[$langcode][0][value]']", $body, t('The textfield widget is populated.'));
   }
 
   /**
@@ -484,17 +484,17 @@
     );
 
     // Create an article with the first body input format set to "Full HTML".
-    $langcode = 'en';
     $title = $this->randomName();
     $edit = array(
       'title' => $title,
-      'language' => $langcode,
+      'language' => 'en',
     );
     $this->drupalPost('node/add/article', $edit, t('Save'));
 
     // Populate the body field: the first item gets the "Full HTML" input
     // format, the second one "Filtered HTML".
     $formats = array('full_html', 'filtered_html');
+    $langcode = LANGUAGE_NONE;
     foreach ($body as $delta => $value) {
       $edit = array(
         "body[$langcode][$delta][value]" => $value,

Modified: branches/drupal7/modules/field/tests/field_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field/tests/field_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field/tests/field_test.info (original)
+++ branches/drupal7/modules/field/tests/field_test.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field_ui/field_ui.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field_ui/field_ui.admin.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field_ui/field_ui.admin.inc (original)
+++ branches/drupal7/modules/field_ui/field_ui.admin.inc Thu Jul 28 00:20:26 2011
@@ -509,6 +509,10 @@
         '#cell_attributes' => array('colspan' => 3),
         '#prefix' => '<div class="add-new-placeholder"> </div>',
       ),
+      'translatable' => array(
+        '#type' => 'value',
+        '#value' => FALSE,
+      ),
     );
   }
 
@@ -753,7 +757,7 @@
     $field = array(
       'field_name' => $values['field_name'],
       'type' => $values['type'],
-      'translatable' => TRUE,
+      'translatable' => $values['translatable'],
     );
     $instance = array(
       'field_name' => $field['field_name'],

Modified: branches/drupal7/modules/field_ui/field_ui.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field_ui/field_ui.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field_ui/field_ui.info (original)
+++ branches/drupal7/modules/field_ui/field_ui.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 dependencies[] = field
 files[] = field_ui.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/field_ui/field_ui.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field_ui/field_ui.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field_ui/field_ui.module (original)
+++ branches/drupal7/modules/field_ui/field_ui.module Thu Jul 28 00:20:26 2011
@@ -358,7 +358,7 @@
  * Redirect to manage fields form.
  */
 function field_ui_form_node_type_form_submit($form, &$form_state) {
-  if ($form_state['clicked_button']['#parents'][0] === 'save_continue') {
+  if ($form_state['triggering_element']['#parents'][0] === 'save_continue') {
     $form_state['redirect'] = _field_ui_bundle_admin_path('node', $form_state['values']['type']) .'/fields';
   }
 }

Modified: branches/drupal7/modules/field_ui/field_ui.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/field_ui/field_ui.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/field_ui/field_ui.test (original)
+++ branches/drupal7/modules/field_ui/field_ui.test Thu Jul 28 00:20:26 2011
@@ -613,7 +613,8 @@
 
     // Render a cloned node, so that we do not alter the original.
     $clone = clone $node;
-    $output = drupal_render(node_view($clone, $view_mode));
+    $element = node_view($clone, $view_mode);
+    $output = drupal_render($element);
     $this->verbose(t('Rendered node - view mode: @view_mode', array('@view_mode' => $view_mode)) . '<hr />'. $output);
 
     // Assign content so that DrupalWebTestCase functions can be used.

Modified: branches/drupal7/modules/file/file.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/file/file.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/file/file.info (original)
+++ branches/drupal7/modules/file/file.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 dependencies[] = field
 files[] = tests/file.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/file/file.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/file/file.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/file/file.module (original)
+++ branches/drupal7/modules/file/file.module Thu Jul 28 00:20:26 2011
@@ -533,7 +533,7 @@
   // If referencing an existing file, only allow if there are existing
   // references. This prevents unmanaged files from being deleted if this
   // item were to be deleted.
-  $clicked_button = end($form_state['clicked_button']['#parents']);
+  $clicked_button = end($form_state['triggering_element']['#parents']);
   if ($clicked_button != 'remove_button' && !empty($element['fid']['#value'])) {
     if ($file = file_load($element['fid']['#value'])) {
       if ($file->status == FILE_STATUS_PERMANENT) {

Modified: branches/drupal7/modules/file/tests/file.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/file/tests/file.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/file/tests/file.test (original)
+++ branches/drupal7/modules/file/tests/file.test Thu Jul 28 00:20:26 2011
@@ -12,7 +12,16 @@
   protected $admin_user;
 
   function setUp() {
-    parent::setUp('file', 'file_module_test');
+    // Since this is a base class for many test cases, support the same
+    // flexibility that DrupalWebTestCase::setUp() has for the modules to be
+    // passed in as either an array or a variable number of string arguments.
+    $modules = func_get_args();
+    if (isset($modules[0]) && is_array($modules[0])) {
+      $modules = $modules[0];
+    }
+    $modules[] = 'file';
+    $modules[] = 'file_module_test';
+    parent::setUp($modules);
     $this->admin_user = $this->drupalCreateUser(array('access content', 'access administration pages', 'administer site configuration', 'administer users', 'administer permissions', 'administer content types', 'administer nodes', 'bypass node access'));
     $this->drupalLogin($this->admin_user);
   }
@@ -112,7 +121,7 @@
   /**
    * Upload a file to a node.
    */
-  function uploadNodeFile($file, $field_name, $nid_or_type, $new_revision = TRUE) {
+  function uploadNodeFile($file, $field_name, $nid_or_type, $new_revision = TRUE, $extras = array()) {
     $langcode = LANGUAGE_NONE;
     $edit = array(
       "title" => $this->randomName(),
@@ -124,7 +133,8 @@
     }
     else {
       // Add a new node.
-      $node = $this->drupalCreateNode(array('type' => $nid_or_type));
+      $extras['type'] = $nid_or_type;
+      $node = $this->drupalCreateNode($extras);
       $nid = $node->nid;
       // Save at least one revision to better simulate a real site.
       $this->drupalCreateNode(get_object_vars($node));
@@ -530,6 +540,7 @@
       'title' => $this->randomName(),
     );
     $this->drupalPost('node/add/article', $edit, t('Save'));
+    $node = $this->drupalGetNodeByTitle($edit['title']);
 
     // Add a comment with a file.
     $text_file = $this->getTestFile('text');
@@ -557,6 +568,18 @@
 
     // Test anonymous file download.
     $this->drupalLogout();
+    $this->drupalGet(file_create_url($comment_file->uri));
+    $this->assertResponse(403, t('Confirmed that access is denied for the file without the needed permission.'));
+
+    // Unpublishes node.
+    $this->drupalLogin($this->admin_user);
+    $edit = array(
+      'status' => FALSE,
+    );
+    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+
+    // Ensures normal user can no longer download the file.
+    $this->drupalLogin($user);
     $this->drupalGet(file_create_url($comment_file->uri));
     $this->assertResponse(403, t('Confirmed that access is denied for the file without the needed permission.'));
   }
@@ -1006,21 +1029,19 @@
 
     // Load the node and the file.
     $node = node_load($nid, NULL, TRUE);
-    $file = (object) $node->{$field_name}[LANGUAGE_NONE][0];
-    $file->description = 'File description.';
+    $file = file_load($node->{$field_name}[LANGUAGE_NONE][0]['fid']);
 
     // Generate and test sanitized tokens.
     $tests = array();
     $tests['[file:fid]'] = $file->fid;
     $tests['[file:name]'] = check_plain($file->filename);
-    $tests['[file:description]'] = filter_xss($file->description);
-    $tests['[file:path]'] = filter_xss($file->uri);
-    $tests['[file:mime]'] = filter_xss($file->filemime);
+    $tests['[file:path]'] = check_plain($file->uri);
+    $tests['[file:mime]'] = check_plain($file->filemime);
     $tests['[file:size]'] = format_size($file->filesize);
-    $tests['[file:url]'] = url(file_create_url($file->uri), $url_options);
+    $tests['[file:url]'] = check_plain(file_create_url($file->uri));
     $tests['[file:timestamp]'] = format_date($file->timestamp, 'medium', '', NULL, $language->language);
     $tests['[file:timestamp:short]'] = format_date($file->timestamp, 'short', '', NULL, $language->language);
-    $tests['[file:owner]'] = $this->admin_user->name;
+    $tests['[file:owner]'] = check_plain(format_username($this->admin_user));
     $tests['[file:owner:uid]'] = $file->uid;
 
     // Test to make sure that we generated something for each token.
@@ -1033,7 +1054,6 @@
 
     // Generate and test unsanitized tokens.
     $tests['[file:name]'] = $file->filename;
-    $tests['[file:description]'] = $file->description;
     $tests['[file:path]'] = $file->uri;
     $tests['[file:mime]'] = $file->filemime;
     $tests['[file:size]'] = format_size($file->filesize);
@@ -1044,3 +1064,46 @@
     }
   }
 }
+
+/**
+ * Test class to test file access on private nodes.
+ */
+class FilePrivateTestCase extends FileFieldTestCase {
+  public static function getInfo() {
+    return array(
+      'name' => 'Private file test',
+      'description' => 'Uploads a test to a private node and checks access.',
+      'group' => 'File',
+    );
+  }
+
+  function setUp() {
+    parent::setUp('node_access_test');
+    node_access_rebuild();
+    variable_set('node_access_test_private', TRUE);
+  }
+
+  /**
+   * Uploads a file to a private node, then tests that access is allowed and denied when appropriate.
+   */
+  function testPrivateFile() {
+    // Use 'page' instead of 'article', so that the 'article' image field does
+    // not conflict with this test. If in the future the 'page' type gets its
+    // own default file or image field, this test can be made more robust by
+    // using a custom node type.
+    $type_name = 'page';
+    $field_name = strtolower($this->randomName());
+    $this->createFileField($field_name, $type_name, array('uri_scheme' => 'private'));
+
+    $test_file = $this->getTestFile('text');
+    $nid = $this->uploadNodeFile($test_file, $field_name, $type_name, TRUE, array('private' => TRUE));
+    $node = node_load($nid, NULL, TRUE);
+    $node_file = (object) $node->{$field_name}[LANGUAGE_NONE][0];
+    // Ensure the file can be downloaded.
+    $this->drupalGet(file_create_url($node_file->uri));
+    $this->assertResponse(200, t('Confirmed that the generated URL is correct by downloading the shipped file.'));
+    $this->drupalLogOut();
+    $this->drupalGet(file_create_url($node_file->uri));
+    $this->assertNoResponse(200, t('Confirmed that access is denied for the file without the needed permission.'));
+  }
+}

Modified: branches/drupal7/modules/file/tests/file_module_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/file/tests/file_module_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/file/tests/file_module_test.info (original)
+++ branches/drupal7/modules/file/tests/file_module_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/filter/filter.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/filter/filter.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/filter/filter.info (original)
+++ branches/drupal7/modules/filter/filter.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 required = TRUE
 configure = admin/config/content/formats
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/filter/filter.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/filter/filter.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/filter/filter.test (original)
+++ branches/drupal7/modules/filter/filter.test Thu Jul 28 00:20:26 2011
@@ -792,7 +792,7 @@
    */
   function testLineBreakFilter() {
     // Setup dummy filter object.
-    $filter = new stdClass;
+    $filter = new stdClass();
     $filter->callback = '_filter_autop';
 
     // Since the line break filter naturally needs plenty of newlines in test
@@ -1156,7 +1156,7 @@
    */
   function testHtmlEscapeFilter() {
     // Setup dummy filter object.
-    $filter = new stdClass;
+    $filter = new stdClass();
     $filter->callback = '_filter_html_escape';
 
     $tests = array(
@@ -1174,7 +1174,7 @@
    */
   function testUrlFilter() {
     // Setup dummy filter object.
-    $filter = new stdClass;
+    $filter = new stdClass();
     $filter->callback = '_filter_url';
     $filter->settings = array(
       'filter_url_length' => 496,
@@ -1509,7 +1509,7 @@
    */
   function testUrlFilterContent() {
     // Setup dummy filter object.
-    $filter = new stdClass;
+    $filter = new stdClass();
     $filter->settings = array(
       'filter_url_length' => 496,
     );

Modified: branches/drupal7/modules/forum/forum.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/forum/forum.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/forum/forum.info (original)
+++ branches/drupal7/modules/forum/forum.info Thu Jul 28 00:20:26 2011
@@ -9,8 +9,8 @@
 configure = admin/structure/forum
 stylesheets[all][] = forum.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/help/help.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/help/help.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/help/help.info (original)
+++ branches/drupal7/modules/help/help.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = help.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/image/image.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/image/image.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/image/image.info (original)
+++ branches/drupal7/modules/image/image.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 files[] = image.test
 configure = admin/config/media/image-styles
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/image/tests/image_module_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/image/tests/image_module_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/image/tests/image_module_test.info (original)
+++ branches/drupal7/modules/image/tests/image_module_test.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = image_module_test.module
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/locale/locale.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/locale/locale.css?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/locale/locale.css (original)
+++ branches/drupal7/modules/locale/locale.css Thu Jul 28 00:20:26 2011
@@ -21,14 +21,12 @@
   width: 100%;
 }
 #locale-translation-filter-form .form-actions {
-  float: left;
-  padding: 3ex 0 0 1em;
+  float: left; /* LTR */
+  padding: 3ex 0 0 1em; /* LTR */
 }
-
 .language-switcher-locale-session a.active {
   color: #0062A0;
 }
-
 .language-switcher-locale-session a.session-active {
   color: #000000;
 }

Modified: branches/drupal7/modules/locale/locale.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/locale/locale.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/locale/locale.info (original)
+++ branches/drupal7/modules/locale/locale.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = locale.test
 configure = admin/config/regional/language
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/locale/locale.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/locale/locale.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/locale/locale.test (original)
+++ branches/drupal7/modules/locale/locale.test Thu Jul 28 00:20:26 2011
@@ -2137,6 +2137,11 @@
     );
     $this->drupalPost('admin/structure/types/manage/page', $edit, t('Save content type'));
     $this->assertRaw(t('The content type %type has been updated.', array('%type' => 'Basic page')), t('Basic page content type has been updated.'));
+
+    // Make node body translatable.
+    $field = field_info_field('body');
+    $field['translatable'] = TRUE;
+    field_update_field($field);
   }
 
   /**

Modified: branches/drupal7/modules/locale/tests/locale_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/locale/tests/locale_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/locale/tests/locale_test.info (original)
+++ branches/drupal7/modules/locale/tests/locale_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/menu/menu.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/menu/menu.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/menu/menu.info (original)
+++ branches/drupal7/modules/menu/menu.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = menu.test
 configure = admin/structure/menu
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/menu/menu.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/menu/menu.install?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/menu/menu.install (original)
+++ branches/drupal7/modules/menu/menu.install Thu Jul 28 00:20:26 2011
@@ -109,6 +109,58 @@
 }
 
 /**
+ * Rename "Primary Links" and "Secondary Links" to their Drupal 7 equivalents.
+ */
+function menu_update_7001() {
+  // Migrate D6 menu_primary_links_source to D7 menu_main_links_source (without
+  // renaming).
+  if (variable_get('menu_primary_links_source') !== NULL) {
+    variable_set('menu_main_links_source', variable_get('menu_primary_links_source'));
+    variable_del('menu_primary_links_source');
+  }
+
+  // Rename each menu, and any settings that refer to the old menu name.
+  $rename = array(
+    'primary-links' => array('main-menu', 'Main menu'),
+    'secondary-links' => array('secondary-menu', 'Secondary menu'),
+  );
+  foreach ($rename as $from_menu => $to) {
+    list($to_menu, $to_title) = $to;
+    // Rename the menu, and links in the menu.
+    db_update('menu_custom')
+      ->fields(array('menu_name' => $to_menu, 'title' => $to_title))
+      ->condition('menu_name', $from_menu)
+      ->execute();
+    db_update('menu_links')
+      ->fields(array('menu_name' => $to_menu))
+      ->condition('menu_name', $from_menu)
+      ->execute();
+
+    // Update any content type that used this menu as a default menu.
+    // Note: these variables may be unset/default, in which case we leave them
+    // alone. See menu_update_7000()
+    foreach (_update_7000_node_get_types() as $type => $type_object) {
+      $menu_options = variable_get('menu_options_' . $type);
+      if ($menu_options !== NULL) {
+        variable_set('menu_options_' . $type, str_replace($from_menu, $to_menu, $menu_options));
+        if (variable_get('menu_parent_' . $type) == $from_menu . ':0') {
+          variable_set('menu_parent_' . $type, $to_menu . ':0');
+        }
+      }
+    }
+
+    // Update the "source for primary links" and "source for secondary links" to
+    // follow.
+    if (variable_get('menu_main_links_source') == $from_menu) {
+      variable_set('menu_main_links_source', $to_menu);
+    }
+    if (variable_get('menu_secondary_links_source') == $from_menu) {
+      variable_set('menu_secondary_links_source', $to_menu);
+    }
+  }
+}
+
+/**
  * @} End of "defgroup updates-7.x-extra"
  * The next series of updates should start at 8000.
  */

Modified: branches/drupal7/modules/node/node.api.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/node/node.api.php?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/node/node.api.php (original)
+++ branches/drupal7/modules/node/node.api.php Thu Jul 28 00:20:26 2011
@@ -1022,7 +1022,7 @@
  */
 function hook_delete($node) {
   db_delete('mytable')
-    ->condition('nid', $nid->nid)
+    ->condition('nid', $node->nid)
     ->execute();
 }
 

Modified: branches/drupal7/modules/node/node.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/node/node.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/node/node.info (original)
+++ branches/drupal7/modules/node/node.info Thu Jul 28 00:20:26 2011
@@ -9,8 +9,8 @@
 configure = admin/structure/types
 stylesheets[all][] = node.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/node/node.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/node/node.install?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/node/node.install (original)
+++ branches/drupal7/modules/node/node.install Thu Jul 28 00:20:26 2011
@@ -476,7 +476,7 @@
   $extra_types = array_diff($all_types, array_keys($node_types));
 
   foreach ($extra_types as $type) {
-    $type_object = new stdClass;
+    $type_object = new stdClass();
     $type_object->type = $type;
 
     // In Drupal 6, whether you have a body field or not is a flag in the node
@@ -610,7 +610,6 @@
       'module' => 'text',
       'cardinality' => 1,
       'entity_types' => array('node'),
-      'translatable' => TRUE,
     );
     _update_7000_field_create_field($body_field);
 
@@ -628,6 +627,8 @@
           'entity_type' => 'node',
           'bundle' => $node_type->type,
           'label' => $node_type->body_label,
+          'description' => isset($node_type->description) ? $node_type->description : '',
+          'required' => (isset($node_type->min_word_count) && $node_type->min_word_count > 0) ? 1 : 0,
           'widget' => array(
             'type' => 'text_textarea_with_summary',
             'settings' => array(

Modified: branches/drupal7/modules/node/node.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/node/node.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/node/node.module (original)
+++ branches/drupal7/modules/node/node.module Thu Jul 28 00:20:26 2011
@@ -558,7 +558,6 @@
       'field_name' => 'body',
       'type' => 'text_with_summary',
       'entity_types' => array('node'),
-      'translatable' => TRUE,
     );
     $field = field_create_field($field);
   }
@@ -1404,11 +1403,13 @@
     drupal_set_title(t('Revision of %title from %date', array('%title' => $node->title, '%date' => format_date($node->revision_timestamp))), PASS_THROUGH);
   }
 
+  // For markup consistency with other pages, use node_view_multiple() rather than node_view().
+  $nodes = node_view_multiple(array($node->nid => $node), 'full');
+
   // Update the history table, stating that this user viewed this node.
   node_tag_new($node);
 
-  // For markup consistency with other pages, use node_view_multiple() rather than node_view().
-  return node_view_multiple(array($node->nid => $node), 'full');
+  return $nodes;
 }
 
 /**
@@ -2159,7 +2160,7 @@
 }
 
 /**
- * Find the most recent nodes that are available to the current user.
+ * Finds the most recently changed nodes that are available to the current user.
  *
  * @param $number
  *   (optional) The maximum number of nodes to find. Defaults to 10.
@@ -2415,7 +2416,10 @@
 }
 
 /**
- * A generic function for generating RSS feeds from a set of nodes.
+ * Generates and prints an RSS feed.
+ *
+ * Generates an RSS feed from an array of node IDs, and prints it with an HTTP
+ * header, with Content Type set to RSS/XML.
  *
  * @param $nids
  *   An array of node IDs (nid). Defaults to FALSE so empty feeds can be
@@ -3336,6 +3340,9 @@
  * will always delete a grant from the 'all' realm. Modules that utilize
  * node_access can use this function when doing mass updates due to widespread
  * permission changes.
+ *
+ * Note: Don't call this function directly from a contributed module. Call
+ * node_access_acquire_grants() instead.
  *
  * @param $node
  *   The $node being written to. All that is necessary is that it contains a

Modified: branches/drupal7/modules/node/tests/node_access_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/node/tests/node_access_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/node/tests/node_access_test.info (original)
+++ branches/drupal7/modules/node/tests/node_access_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/node/tests/node_access_test.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/node/tests/node_access_test.install?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/node/tests/node_access_test.install (original)
+++ branches/drupal7/modules/node/tests/node_access_test.install Thu Jul 28 00:20:26 2011
@@ -40,45 +40,3 @@
 
   return $schema;
 }
-<?php
-
-/**
- * @file
- * Install, update and uninstall functions for the node_access_test module.
- */
-
-/**
- * Implements hook_schema().
- */
-function node_access_test_schema() {
-  $schema['node_access_test'] = array(
-    'description' => 'The base table for node_access_test.',
-    'fields' => array(
-      'nid' => array(
-        'description' => 'The {node}.nid this record affects.',
-        'type' => 'int',
-        'unsigned' => TRUE,
-        'not null' => TRUE,
-        'default' => 0,
-      ),
-      'private' => array(
-        'description' => 'Boolean indicating whether the node is private (visible to administrator) or not (visible to non-administrators).',
-        'type' => 'int',
-        'not null' => TRUE,
-        'default' => 0,
-      ),
-    ),
-    'indexes' => array(
-      'nid' => array('nid'),
-    ),
-    'primary key' => array('nid'),
-    'foreign keys' => array(
-      'versioned_node' => array(
-        'table' => 'node',
-        'columns' => array('nid' => 'nid'),
-      ),
-    ),
-  );
-
-  return $schema;
-}

Modified: branches/drupal7/modules/node/tests/node_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/node/tests/node_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/node/tests/node_test.info (original)
+++ branches/drupal7/modules/node/tests/node_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/node/tests/node_test_exception.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/node/tests/node_test_exception.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/node/tests/node_test_exception.info (original)
+++ branches/drupal7/modules/node/tests/node_test_exception.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/openid/openid.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/openid/openid.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/openid/openid.info (original)
+++ branches/drupal7/modules/openid/openid.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = openid.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/openid/tests/openid_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/openid/tests/openid_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/openid/tests/openid_test.info (original)
+++ branches/drupal7/modules/openid/tests/openid_test.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 dependencies[] = openid
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/overlay/overlay.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/overlay/overlay.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/overlay/overlay.info (original)
+++ branches/drupal7/modules/overlay/overlay.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 version = VERSION
 core = 7.x
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/path/path.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/path/path.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/path/path.info (original)
+++ branches/drupal7/modules/path/path.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = path.test
 configure = admin/config/search/path
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/path/path.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/path/path.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/path/path.test (original)
+++ branches/drupal7/modules/path/path.test Thu Jul 28 00:20:26 2011
@@ -279,8 +279,9 @@
     $this->drupalGet('node/' . $english_node->nid . '/translate');
     $this->clickLink(t('add translation'));
     $edit = array();
+    $langcode = LANGUAGE_NONE;
     $edit["title"] = $this->randomName();
-    $edit["body[fr][0][value]"] = $this->randomName();
+    $edit["body[$langcode][0][value]"] = $this->randomName();
     $french_alias = $this->randomName();
     $edit['path[alias]'] = $french_alias;
     $this->drupalPost(NULL, $edit, t('Save'));

Modified: branches/drupal7/modules/php/php.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/php/php.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/php/php.info (original)
+++ branches/drupal7/modules/php/php.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = php.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/poll/poll.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/poll/poll.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/poll/poll.info (original)
+++ branches/drupal7/modules/poll/poll.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = poll.test
 stylesheets[all][] = poll.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/poll/poll.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/poll/poll.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/poll/poll.module (original)
+++ branches/drupal7/modules/poll/poll.module Thu Jul 28 00:20:26 2011
@@ -484,6 +484,10 @@
   global $user;
   foreach ($nodes as $node) {
     $poll = db_query("SELECT runtime, active FROM {poll} WHERE nid = :nid", array(':nid' => $node->nid))->fetchObject();
+
+    if (empty($poll)) {
+      $poll = new stdClass();
+    }
 
     // Load the appropriate choices into the $poll object.
     $poll->choice = db_select('poll_choice', 'c')

Modified: branches/drupal7/modules/profile/profile.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/profile/profile.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/profile/profile.info (original)
+++ branches/drupal7/modules/profile/profile.info Thu Jul 28 00:20:26 2011
@@ -11,8 +11,8 @@
 ; See user_system_info_alter().
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/profile/profile.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/profile/profile.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/profile/profile.module (original)
+++ branches/drupal7/modules/profile/profile.module Thu Jul 28 00:20:26 2011
@@ -544,6 +544,7 @@
   // Supply filtered version of $fields that have values.
   foreach ($variables['fields'] as $field) {
     if ($field->value) {
+      $variables['profile'][$field->name] = new stdClass();
       $variables['profile'][$field->name]->title = check_plain($field->title);
       $variables['profile'][$field->name]->value = $field->value;
       $variables['profile'][$field->name]->type = $field->type;

Modified: branches/drupal7/modules/rdf/rdf.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/rdf/rdf.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/rdf/rdf.info (original)
+++ branches/drupal7/modules/rdf/rdf.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = rdf.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/rdf/tests/rdf_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/rdf/tests/rdf_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/rdf/tests/rdf_test.info (original)
+++ branches/drupal7/modules/rdf/tests/rdf_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/search/search.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/search/search.admin.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/search/search.admin.inc (original)
+++ branches/drupal7/modules/search/search.admin.inc Thu Jul 28 00:20:26 2011
@@ -143,7 +143,7 @@
  */
 function search_admin_settings_validate($form, &$form_state) {
   // Check whether we selected a valid default.
-  if ($form_state['clicked_button']['#value'] != t('Reset to defaults')) {
+  if ($form_state['triggering_element']['#value'] != t('Reset to defaults')) {
     $new_modules = array_filter($form_state['values']['search_active_modules']);
     $default = $form_state['values']['search_default_module'];
     if (!in_array($default, $new_modules, TRUE)) {
@@ -164,7 +164,7 @@
   }
   $current_modules = variable_get('search_active_modules', array('node', 'user'));
   // Check whether we are resetting the values.
-  if ($form_state['clicked_button']['#value'] == t('Reset to defaults')) {
+  if ($form_state['triggering_element']['#value'] == t('Reset to defaults')) {
     $new_modules = array('node', 'user');
   }
   else {

Modified: branches/drupal7/modules/search/search.api.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/search/search.api.php?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/search/search.api.php (original)
+++ branches/drupal7/modules/search/search.api.php Thu Jul 28 00:20:26 2011
@@ -107,6 +107,10 @@
 /**
  * Report the status of indexing.
  *
+ * The core search module only invokes this hook on active modules.
+ * Implementing modules do not need to check whether they are active when
+ * calculating their return values.
+ *
  * @return
  *  An associative array with the key-value pairs:
  *  - 'remaining': The number of items left to index.

Modified: branches/drupal7/modules/search/search.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/search/search.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/search/search.info (original)
+++ branches/drupal7/modules/search/search.info Thu Jul 28 00:20:26 2011
@@ -8,8 +8,8 @@
 configure = admin/config/search/settings
 stylesheets[all][] = search.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/search/tests/search_embedded_form.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/search/tests/search_embedded_form.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/search/tests/search_embedded_form.info (original)
+++ branches/drupal7/modules/search/tests/search_embedded_form.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/search/tests/search_embedded_form.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/search/tests/search_embedded_form.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/search/tests/search_embedded_form.module (original)
+++ branches/drupal7/modules/search/tests/search_embedded_form.module Thu Jul 28 00:20:26 2011
@@ -65,5 +65,6 @@
  * Adds the test form to search results.
  */
 function search_embedded_form_preprocess_search_result(&$variables) {
-  $variables['snippet'] .= drupal_render(drupal_get_form('search_embedded_form_form'));
+  $form = drupal_get_form('search_embedded_form_form');
+  $variables['snippet'] .= drupal_render($form);
 }

Modified: branches/drupal7/modules/search/tests/search_extra_type.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/search/tests/search_extra_type.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/search/tests/search_extra_type.info (original)
+++ branches/drupal7/modules/search/tests/search_extra_type.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/shortcut/shortcut.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/shortcut/shortcut.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/shortcut/shortcut.info (original)
+++ branches/drupal7/modules/shortcut/shortcut.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = shortcut.test
 configure = admin/config/user-interface/shortcut
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/shortcut/shortcut.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/shortcut/shortcut.install?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/shortcut/shortcut.install (original)
+++ branches/drupal7/modules/shortcut/shortcut.install Thu Jul 28 00:20:26 2011
@@ -25,6 +25,13 @@
       'weight' => -19,
     ),
   );
+  // If Drupal is being installed, rebuild the menu before saving the shortcut
+  // set, to make sure the links defined above can be correctly saved. (During
+  // installation, the menu might not have been built at all yet, or it might
+  // have been built but without the node module's links in it.)
+  if (drupal_installation_attempted()) {
+    menu_rebuild();
+  }
   shortcut_set_save($shortcut_set);
 }
 

Modified: branches/drupal7/modules/simpletest/simpletest.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/simpletest.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/simpletest.info (original)
+++ branches/drupal7/modules/simpletest/simpletest.info Thu Jul 28 00:20:26 2011
@@ -48,8 +48,8 @@
 files[] = tests/upgrade/upgrade.upload.test
 files[] = tests/upgrade/upgrade.user.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/actions_loop_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/actions_loop_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/actions_loop_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/actions_loop_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/ajax_forms_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/ajax_forms_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/ajax_forms_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/ajax_forms_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/ajax_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/ajax_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/ajax_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/ajax_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/batch_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/batch_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/batch_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/batch_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/common_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/common_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/common_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/common_test.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 stylesheets[print][] = common_test.print.css
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/database_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/database_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/database_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/database_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/entity_cache_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/entity_cache_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/entity_cache_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/entity_cache_test.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 dependencies[] = entity_cache_test_dependency
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info (original)
+++ branches/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/entity_crud_hook_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/entity_crud_hook_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/entity_crud_hook_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/entity_crud_hook_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/entity_query.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/entity_query.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/entity_query.test (original)
+++ branches/drupal7/modules/simpletest/tests/entity_query.test Thu Jul 28 00:20:26 2011
@@ -1047,6 +1047,133 @@
       $pass = ($exception->getMessage() == t('For this query an entity type must be specified.'));
     }
     $this->assertTrue($pass, t("Can't query the universe."));
+  }
+
+  /**
+   * Tests field meta conditions.
+   */
+  function testEntityFieldQueryMetaConditions() {
+    // Make a test field translatable.
+    $this->fields[0]['translatable'] = TRUE;
+    field_update_field($this->fields[0]);
+    field_test_entity_info_translatable('test_entity', TRUE);
+    drupal_static_reset('field_available_languages');
+
+    // Create more items with different languages.
+    $entity = new stdClass();
+    $entity->ftid = 1;
+    $entity->ftvid = 1;
+    $entity->fttype = 'test_bundle';
+    $j = 0;
+
+    foreach (array(LANGUAGE_NONE, 'en') as $langcode) {
+      for ($i = 0; $i < 4; $i++) {
+        $entity->{$this->field_names[0]}[$langcode][$i]['value'] = $i + $j;
+      }
+      $j += 4;
+    }
+
+    field_attach_update('test_entity', $entity);
+
+    // Test delta field meta condition.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldDeltaCondition($this->fields[0], 0, '>');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 1),
+    ), t('Test with a delta meta condition.'));
+
+    // Test language field meta condition.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '!=');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 1),
+    ), t('Test with a language meta condition.'));
+
+    // Test delta grouping.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldCondition($this->fields[0], 'value', 0, '=', 'group')
+      ->fieldDeltaCondition($this->fields[0], 1, '<', 'group');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 1),
+    ), t('Test with a grouped delta meta condition.'));
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldCondition($this->fields[0], 'value', 0, '=', 'group')
+      ->fieldDeltaCondition($this->fields[0], 1, '>=', 'group');
+    $this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta meta condition (empty result set).'));
+
+    // Test language grouping.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldCondition($this->fields[0], 'value', 0, '=', NULL, 'group')
+      ->fieldLanguageCondition($this->fields[0], 'en', '!=', NULL, 'group');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 1),
+    ), t('Test with a grouped language meta condition.'));
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldCondition($this->fields[0], 'value', 0, '=', NULL, 'group')
+      ->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '!=', NULL, 'group');
+    $this->assertEntityFieldQuery($query, array(), t('Test with a grouped language meta condition (empty result set).'));
+
+    // Test delta and language grouping.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldCondition($this->fields[0], 'value', 0, '=', 'delta', 'language')
+      ->fieldDeltaCondition($this->fields[0], 1, '<', 'delta', 'language')
+      ->fieldLanguageCondition($this->fields[0], 'en', '!=', 'delta', 'language');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 1),
+    ), t('Test with a grouped delta + language meta condition.'));
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldCondition($this->fields[0], 'value', 0, '=', 'delta', 'language')
+      ->fieldDeltaCondition($this->fields[0], 1, '>=', 'delta', 'language')
+      ->fieldLanguageCondition($this->fields[0], 'en', '!=', 'delta', 'language');
+    $this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta + language meta condition (empty result set, delta condition unsatisifed).'));
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldCondition($this->fields[0], 'value', 0, '=', 'delta', 'language')
+      ->fieldDeltaCondition($this->fields[0], 1, '<', 'delta', 'language')
+      ->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '!=', 'delta', 'language');
+    $this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta + language meta condition (empty result set, language condition unsatisifed).'));
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity', '=')
+      ->fieldCondition($this->fields[0], 'value', 0, '=', 'delta', 'language')
+      ->fieldDeltaCondition($this->fields[0], 1, '>=', 'delta', 'language')
+      ->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '!=', 'delta', 'language');
+    $this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta + language meta condition (empty result set, both conditions unsatisifed).'));
+
+    // Test grouping with another field to ensure that grouping cache is reset
+    // properly.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity_bundle', '=')
+      ->fieldCondition($this->fields[1], 'shape', 'circle', '=', 'delta', 'language')
+      ->fieldCondition($this->fields[1], 'color', 'blue', '=', 'delta', 'language')
+      ->fieldDeltaCondition($this->fields[1], 1, '=', 'delta', 'language')
+      ->fieldLanguageCondition($this->fields[1], LANGUAGE_NONE, '=', 'delta', 'language');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity_bundle', 5),
+    ), t('Test grouping cache.'));
   }
 
   /**

Modified: branches/drupal7/modules/simpletest/tests/error_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/error_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/error_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/error_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/file.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/file.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/file.test (original)
+++ branches/drupal7/modules/simpletest/tests/file.test Thu Jul 28 00:20:26 2011
@@ -196,9 +196,12 @@
    * @return
    *   File object.
    */
-  function createFile($filepath = NULL, $contents = NULL, $scheme = 'public') {
+  function createFile($filepath = NULL, $contents = NULL, $scheme = NULL) {
     if (!isset($filepath)) {
       $filepath = $this->randomName();
+    }
+    if (!isset($scheme)) {
+      $scheme = file_default_scheme();
     }
     $filepath = $scheme . '://' . $filepath;
 
@@ -427,7 +430,7 @@
     // Maximum size.
     if (image_get_toolkit()) {
       // Copy the image so that the original doesn't get resized.
-      copy(drupal_realpath('misc/druplicon.png'), 'temporary://druplicon.png');
+      copy('misc/druplicon.png', 'temporary://druplicon.png');
       $this->image->uri = 'temporary://druplicon.png';
 
       $errors = file_validate_image_resolution($this->image, '10x5');
@@ -437,7 +440,7 @@
       $this->assertTrue($info['width'] <= 10, t('Image scaled to correct width.'), 'File');
       $this->assertTrue($info['height'] <= 5, t('Image scaled to correct height.'), 'File');
 
-      drupal_unlink(drupal_realpath('temporary://druplicon.png'));
+      drupal_unlink('temporary://druplicon.png');
     }
     else {
       // TODO: should check that the error is returned if no toolkit is available.
@@ -531,14 +534,30 @@
     $filepath = file_unmanaged_save_data($contents);
     $this->assertTrue($filepath, t('Unnamed file saved correctly.'));
     $this->assertEqual(file_uri_scheme($filepath), file_default_scheme(), t("File was placed in Drupal's files directory."));
-    $this->assertEqual($contents, file_get_contents(drupal_realpath($filepath)), t('Contents of the file are correct.'));
+    $this->assertEqual($contents, file_get_contents($filepath), t('Contents of the file are correct.'));
 
     // Provide a filename.
     $filepath = file_unmanaged_save_data($contents, 'public://asdf.txt', FILE_EXISTS_REPLACE);
     $this->assertTrue($filepath, t('Unnamed file saved correctly.'));
     $this->assertEqual('asdf.txt', basename($filepath), t('File was named correctly.'));
-    $this->assertEqual($contents, file_get_contents(drupal_realpath($filepath)), t('Contents of the file are correct.'));
+    $this->assertEqual($contents, file_get_contents($filepath), t('Contents of the file are correct.'));
     $this->assertFilePermissions($filepath, variable_get('file_chmod_file', 0664));
+  }
+}
+
+/**
+ *  Tests the file_unmanaged_save_data() function on remote filesystems.
+ */
+class RemoteFileUnmanagedSaveDataTest extends FileUnmanagedSaveDataTest {
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['group'] = 'File API (remote)';
+    return $info;
+  }
+
+  function setUp() {
+    parent::setUp('file_test');
+    variable_set('file_default_scheme', 'dummy-remote');
   }
 }
 
@@ -863,6 +882,22 @@
 }
 
 /**
+ * Test the file_save_upload() function on remote filesystems.
+ */
+class RemoteFileSaveUploadTest extends FileSaveUploadTest {
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['group'] = 'File API (remote)';
+    return $info;
+  }
+
+  function setUp() {
+    parent::setUp('file_test');
+    variable_set('file_default_scheme', 'dummy-remote');
+  }
+}
+
+/**
  * Directory related tests.
  */
 class FileDirectoryTest extends FileTestCase {
@@ -879,7 +914,7 @@
    */
   function testFileCheckDirectoryHandling() {
     // A directory to operate on.
-    $directory = file_stream_wrapper_get_instance_by_scheme(file_default_scheme())->getDirectoryPath() . '/' . $this->randomName() . '/' . $this->randomName();
+    $directory = file_default_scheme() . '://' . $this->randomName() . '/' . $this->randomName();
     $this->assertFalse(is_dir($directory), t('Directory does not exist prior to testing.'));
 
     // Non-existent directory.
@@ -986,6 +1021,22 @@
 }
 
 /**
+ * Directory related tests.
+ */
+class RemoteFileDirectoryTest extends FileDirectoryTest {
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['group'] = 'File API (remote)';
+    return $info;
+  }
+
+  function setUp() {
+    parent::setUp('file_test');
+    variable_set('file_default_scheme', 'dummy-remote');
+  }
+}
+
+/**
  * Tests the file_scan_directory() function.
  */
 class FileScanDirectoryTest extends FileTestCase {
@@ -1114,6 +1165,21 @@
   }
 }
 
+/**
+ * Tests the file_scan_directory() function on remote filesystems.
+ */
+class RemoteFileScanDirectoryTest extends FileScanDirectoryTest {
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['group'] = 'File API (remote)';
+    return $info;
+  }
+
+  function setUp() {
+    parent::setUp('file_test');
+    variable_set('file_default_scheme', 'dummy-remote');
+  }
+}
 
 /**
  * Deletion related tests.
@@ -1160,6 +1226,21 @@
   }
 }
 
+/**
+ * Deletion related tests on remote filesystems.
+ */
+class RemoteFileUnmanagedDeleteTest extends FileUnmanagedDeleteTest {
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['group'] = 'File API (remote)';
+    return $info;
+  }
+
+  function setUp() {
+    parent::setUp('file_test');
+    variable_set('file_default_scheme', 'dummy-remote');
+  }
+}
 
 /**
  * Deletion related tests.
@@ -1237,6 +1318,21 @@
   }
 }
 
+/**
+ * Deletion related tests on remote filesystems.
+ */
+class RemoteFileUnmanagedDeleteRecursiveTest extends FileUnmanagedDeleteRecursiveTest {
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['group'] = 'File API (remote)';
+    return $info;
+  }
+
+  function setUp() {
+    parent::setUp('file_test');
+    variable_set('file_default_scheme', 'dummy-remote');
+  }
+}
 
 /**
  * Unmanaged move related tests.
@@ -1310,6 +1406,21 @@
   }
 }
 
+/**
+ * Unmanaged move related tests on remote filesystems.
+ */
+class RemoteFileUnmanagedMoveTest extends FileUnmanagedMoveTest {
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['group'] = 'File API (remote)';
+    return $info;
+  }
+
+  function setUp() {
+    parent::setUp('file_test');
+    variable_set('file_default_scheme', 'dummy-remote');
+  }
+}
 
 /**
  * Unmanaged copy related tests.
@@ -1396,6 +1507,22 @@
     $this->assertTrue(file_exists($file->uri), t('Original file exists after copying onto itself.'));
     $this->assertTrue(file_exists($new_filepath), t('Copied file exists after copying onto itself.'));
     $this->assertFilePermissions($new_filepath, variable_get('file_chmod_file', 0664));
+  }
+}
+
+/**
+ * Unmanaged copy related tests on remote filesystems.
+ */
+class RemoteFileUnmanagedCopyTest extends FileUnmanagedCopyTest {
+  public static function getInfo() {
+    $info = parent::getInfo();
+    $info['group'] = 'File API (remote)';
+    return $info;
+  }
+
+  function setUp() {
+    parent::setUp('file_test');
+    variable_set('file_default_scheme', 'dummy-remote');
   }
 }
 

Modified: branches/drupal7/modules/simpletest/tests/file_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/file_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/file_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/file_test.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = file_test.module
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/file_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/file_test.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/file_test.module (original)
+++ branches/drupal7/modules/simpletest/tests/file_test.module Thu Jul 28 00:20:26 2011
@@ -36,6 +36,11 @@
       'name' => t('Dummy files'),
       'class' => 'DrupalDummyStreamWrapper',
       'description' => t('Dummy wrapper for simpletest.'),
+    ),
+    'dummy-remote' => array(
+      'name' => t('Dummy files (remote)'),
+      'class' => 'DrupalDummyRemoteStreamWrapper',
+      'description' => t('Dummy wrapper for simpletest (remote).'),
     ),
   );
 }
@@ -442,3 +447,15 @@
   }
 }
 
+/**
+ * Helper class for testing the stream wrapper registry.
+ *
+ * Dummy remote stream wrapper implementation (dummy-remote://).
+ *
+ * Basically just the public scheme but not returning a local file for realpath.
+ */
+class DrupalDummyRemoteStreamWrapper extends DrupalPublicStreamWrapper {
+  function realpath() {
+    return FALSE;
+  }
+}

Modified: branches/drupal7/modules/simpletest/tests/filter_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/filter_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/filter_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/filter_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/form_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/form_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/form_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/form_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/image_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/image_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/image_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/image_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/mail.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/mail.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/mail.test (original)
+++ branches/drupal7/modules/simpletest/tests/mail.test Thu Jul 28 00:20:26 2011
@@ -1,6 +1,7 @@
 <?php
 
 /**
+ * @file
  * Test the Drupal mailing system.
  */
 class MailTestCase extends DrupalWebTestCase implements MailSystemInterface {
@@ -63,3 +64,355 @@
   }
 }
 
+/**
+ * Unit tests for drupal_html_to_text().
+ */
+class DrupalHtmlToTextTestCase extends DrupalWebTestCase {
+  public static function getInfo() {
+    return array(
+      'name'  => 'HTML to text conversion',
+      'description' => 'Tests drupal_html_to_text().',
+      'group' => 'Mail',
+    );
+  }
+
+  /**
+   * Converts a string to its PHP source equivalent for display in test messages.
+   *
+   * @param $text
+   *   The text string to convert.
+   *
+   * @return
+   *   An HTML representation of the text string that, when displayed in a
+   *   browser, represents the PHP source code equivalent of $text.
+   */
+  function stringToHtml($text) {
+    return '"' .
+      str_replace(
+        array("\n", ' '),
+        array('\n', ' '),
+        check_plain($text)
+      ) . '"';
+  }
+
+  /**
+   * Helper function for testing drupal_html_to_text().
+   *
+   * @param $html
+   *   The source HTML string to be converted.
+   * @param $text
+   *   The expected result of converting $html to text.
+   * @param $message
+   *   A text message to display in the assertion message.
+   * @param $allowed_tags
+   *   (optional) An array of allowed tags, or NULL to default to the full
+   *   set of tags supported by drupal_html_to_text().
+   */
+  function assertHtmlToText($html, $text, $message, $allowed_tags = NULL) {
+    preg_match_all('/<([a-z0-6]+)/', drupal_strtolower($html), $matches);
+    $tested_tags = implode(', ', array_unique($matches[1]));
+    $message .= ' (' . $tested_tags . ')';
+    $result = drupal_html_to_text($html, $allowed_tags);
+    $pass = $this->assertEqual($result, $text, check_plain($message));
+    $verbose = 'html = <pre>' . $this->stringToHtml($html)
+      . '</pre><br />' . 'result = <pre>' . $this->stringToHtml($result)
+      . '</pre><br />' . 'expected = <pre>' . $this->stringToHtml($text)
+      . '</pre>';
+    $this->verbose($verbose);
+    if (!$pass) {
+      $this->pass("Previous test verbose info:<br />$verbose");
+    }
+  }
+
+  /**
+   * Test all supported tags of drupal_html_to_text().
+   */
+  function testTags() {
+    global $base_path, $base_url;
+    $tests = array(
+      // @todo Trailing linefeeds should be trimmed.
+      '<a href = "http://drupal.org">Drupal.org</a>' => "Drupal.org [1]\n\n[1] http://drupal.org\n",
+      // @todo Footer urls should be absolute.
+      "<a href = \"$base_path\">Homepage</a>" => "Homepage [1]\n\n[1] $base_url/\n",
+      '<address>Drupal</address>' => "Drupal\n",
+      // @todo The <address> tag is currently not supported.
+      '<address>Drupal</address><address>Drupal</address>' => "DrupalDrupal\n",
+      '<b>Drupal</b>' => "*Drupal*\n",
+      // @todo There should be a space between the '>' and the text.
+      '<blockquote>Drupal</blockquote>' => ">Drupal\n",
+      '<blockquote>Drupal</blockquote><blockquote>Drupal</blockquote>' => ">Drupal\n>Drupal\n",
+      '<br />Drupal<br />Drupal<br /><br />Drupal' => "Drupal\nDrupal\nDrupal\n",
+      '<br/>Drupal<br/>Drupal<br/><br/>Drupal' => "Drupal\nDrupal\nDrupal\n",
+      // @todo There should be two line breaks before the paragraph.
+      '<br/>Drupal<br/>Drupal<br/><br/>Drupal<p>Drupal</p>' => "Drupal\nDrupal\nDrupal\nDrupal\n\n",
+      '<div>Drupal</div>' => "Drupal\n",
+      // @todo The <div> tag is currently not supported.
+      '<div>Drupal</div><div>Drupal</div>' => "DrupalDrupal\n",
+      '<em>Drupal</em>' => "/Drupal/\n",
+      '<h1>Drupal</h1>' => "======== DRUPAL ==============================================================\n\n",
+      '<h1>Drupal</h1><p>Drupal</p>' => "======== DRUPAL ==============================================================\n\nDrupal\n\n",
+      '<h2>Drupal</h2>' => "-------- DRUPAL --------------------------------------------------------------\n\n",
+      '<h2>Drupal</h2><p>Drupal</p>' => "-------- DRUPAL --------------------------------------------------------------\n\nDrupal\n\n",
+      '<h3>Drupal</h3>' => ".... Drupal\n\n",
+      '<h3>Drupal</h3><p>Drupal</p>' => ".... Drupal\n\nDrupal\n\n",
+      '<h4>Drupal</h4>' => ".. Drupal\n\n",
+      '<h4>Drupal</h4><p>Drupal</p>' => ".. Drupal\n\nDrupal\n\n",
+      '<h5>Drupal</h5>' => "Drupal\n\n",
+      '<h5>Drupal</h5><p>Drupal</p>' => "Drupal\n\nDrupal\n\n",
+      '<h6>Drupal</h6>' => "Drupal\n\n",
+      '<h6>Drupal</h6><p>Drupal</p>' => "Drupal\n\nDrupal\n\n",
+      '<hr />Drupal<hr />' => "------------------------------------------------------------------------------\nDrupal\n------------------------------------------------------------------------------\n",
+      '<hr/>Drupal<hr/>' => "------------------------------------------------------------------------------\nDrupal\n------------------------------------------------------------------------------\n",
+      '<hr/>Drupal<hr/><p>Drupal</p>' => "------------------------------------------------------------------------------\nDrupal\n------------------------------------------------------------------------------\nDrupal\n\n",
+      '<i>Drupal</i>' => "/Drupal/\n",
+      '<p>Drupal</p>' => "Drupal\n\n",
+      '<p>Drupal</p><p>Drupal</p>' => "Drupal\n\nDrupal\n\n",
+      '<strong>Drupal</strong>' => "*Drupal*\n",
+      // @todo Tables are currently not supported.
+      '<table><tr><td>Drupal</td><td>Drupal</td></tr><tr><td>Drupal</td><td>Drupal</td></tr></table>' => "DrupalDrupalDrupalDrupal\n",
+      '<table><tr><td>Drupal</td></tr></table><p>Drupal</p>' => "Drupal\nDrupal\n\n",
+      // @todo The <u> tag is currently not supported.
+      '<u>Drupal</u>' => "Drupal\n",
+      '<ul><li>Drupal</li></ul>' => " * Drupal\n\n",
+      '<ul><li>Drupal <em>Drupal</em> Drupal</li></ul>' => " * Drupal /Drupal/ Drupal\n\n",
+      // @todo Lines containing nothing but spaces should be trimmed.
+      '<ul><li>Drupal</li><li><ol><li>Drupal</li><li>Drupal</li></ol></li></ul>' => " * Drupal\n *  1) Drupal\n    2) Drupal\n   \n\n",
+      '<ul><li>Drupal</li><li><ol><li>Drupal</li></ol></li><li>Drupal</li></ul>' => " * Drupal\n *  1) Drupal\n   \n * Drupal\n\n",
+      '<ul><li>Drupal</li><li>Drupal</li></ul>' => " * Drupal\n * Drupal\n\n",
+      '<ul><li>Drupal</li></ul><p>Drupal</p>' => " * Drupal\n\nDrupal\n\n",
+      '<ol><li>Drupal</li></ol>' => " 1) Drupal\n\n",
+      '<ol><li>Drupal</li><li><ul><li>Drupal</li><li>Drupal</li></ul></li></ol>' => " 1) Drupal\n 2)  * Drupal\n     * Drupal\n    \n\n",
+      '<ol><li>Drupal</li><li>Drupal</li></ol>' => " 1) Drupal\n 2) Drupal\n\n",
+      '<ol>Drupal</ol>' => "Drupal\n\n",
+      '<ol><li>Drupal</li></ol><p>Drupal</p>' => " 1) Drupal\n\nDrupal\n\n",
+      '<dl><dt>Drupal</dt></dl>' => "Drupal\n\n",
+      '<dl><dt>Drupal</dt><dd>Drupal</dd></dl>' => "Drupal\n    Drupal\n\n",
+      '<dl><dt>Drupal</dt><dd>Drupal</dd><dt>Drupal</dt><dd>Drupal</dd></dl>' => "Drupal\n    Drupal\nDrupal\n    Drupal\n\n",
+      '<dl><dt>Drupal</dt><dd>Drupal</dd></dl><p>Drupal</p>' => "Drupal\n    Drupal\n\nDrupal\n\n",
+      '<dl><dt>Drupal<dd>Drupal</dl>' => "Drupal\n    Drupal\n\n",
+      '<dl><dt>Drupal</dt></dl><p>Drupal</p>' => "Drupal\n\nDrupal\n\n",
+      // @todo Again, lines containing only spaces should be trimmed.
+      '<ul><li>Drupal</li><li><dl><dt>Drupal</dt><dd>Drupal</dd><dt>Drupal</dt><dd>Drupal</dd></dl></li><li>Drupal</li></ul>' => " * Drupal\n * Drupal\n       Drupal\n   Drupal\n       Drupal\n   \n * Drupal\n\n",
+      // Tests malformed HTML tags.
+      '<br>Drupal<br>Drupal' => "Drupal\nDrupal\n",
+      '<hr>Drupal<hr>Drupal' => "------------------------------------------------------------------------------\nDrupal\n------------------------------------------------------------------------------\nDrupal\n",
+      '<ol><li>Drupal<li>Drupal</ol>' => " 1) Drupal\n 2) Drupal\n\n",
+      '<ul><li>Drupal <em>Drupal</em> Drupal</ul></ul>' => " * Drupal /Drupal/ Drupal\n\n",
+      '<ul><li>Drupal<li>Drupal</ol>' => " * Drupal\n * Drupal\n\n",
+      '<ul><li>Drupal<li>Drupal</ul>' => " * Drupal\n * Drupal\n\n",
+      '<ul>Drupal</ul>' => "Drupal\n\n",
+      'Drupal</ul></ol></dl><li>Drupal' => "Drupal\n * Drupal\n",
+      '<dl>Drupal</dl>' => "Drupal\n\n",
+      '<dl>Drupal</dl><p>Drupal</p>' => "Drupal\n\nDrupal\n\n",
+      '<dt>Drupal</dt>' => "Drupal\n",
+      // Tests some unsupported HTML tags.
+      '<html>Drupal</html>' => "Drupal\n",
+      // @todo Perhaps the contents of <script> tags should be dropped.
+      '<script type="text/javascript">Drupal</script>' => "Drupal\n",
+    );
+
+    foreach ($tests as $html => $text) {
+      $this->assertHtmlToText($html, $text, 'Supported tags');
+    }
+  }
+
+  /**
+   * Test $allowed_tags argument of drupal_html_to_text().
+   */
+  function testDrupalHtmlToTextArgs() {
+    // The second parameter of drupal_html_to_text() overrules the allowed tags.
+    $this->assertHtmlToText(
+      'Drupal <b>Drupal</b> Drupal',
+      "Drupal *Drupal* Drupal\n",
+      'Allowed <b> tag found',
+      array('b')
+    );
+    $this->assertHtmlToText(
+      'Drupal <h1>Drupal</h1> Drupal',
+      "Drupal Drupal Drupal\n",
+      'Disallowed <h1> tag not found',
+      array('b')
+    );
+
+    $this->assertHtmlToText(
+      'Drupal <p><em><b>Drupal</b></em><p> Drupal',
+      "Drupal Drupal Drupal\n",
+      'Disallowed <p>, <em>, and <b> tags not found',
+      array('a', 'br', 'h1')
+    );
+
+    $this->assertHtmlToText(
+      '<html><body>Drupal</body></html>',
+      "Drupal\n",
+      'Unsupported <html> and <body> tags not found',
+      array('html', 'body')
+    );
+  }
+
+  /**
+   * Test that whitespace is collapsed.
+   */
+  function testDrupalHtmltoTextCollapsesWhitespace() {
+    $input = "<p>Drupal  Drupal\n\nDrupal<pre>Drupal  Drupal\n\nDrupal</pre>Drupal  Drupal\n\nDrupal</p>";
+    // @todo The whitespace should be collapsed.
+    $collapsed = "Drupal  Drupal\n\nDrupalDrupal  Drupal\n\nDrupalDrupal  Drupal\n\nDrupal\n\n";
+    $this->assertHtmlToText(
+      $input,
+      $collapsed,
+      'Whitespace is collapsed',
+      array('p')
+    );
+  }
+
+  /**
+   * Test that text separated by block-level tags in HTML get separated by
+   * (at least) a newline in the plaintext version.
+   */
+  function testDrupalHtmlToTextBlockTagToNewline() {
+    $input = '[text]'
+      . '<blockquote>[blockquote]</blockquote>'
+      . '<br />[br]'
+      . '<dl><dt>[dl-dt]</dt>'
+      . '<dt>[dt]</dt>'
+      . '<dd>[dd]</dd>'
+      . '<dd>[dd-dl]</dd></dl>'
+      . '<h1>[h1]</h1>'
+      . '<h2>[h2]</h2>'
+      . '<h3>[h3]</h3>'
+      . '<h4>[h4]</h4>'
+      . '<h5>[h5]</h5>'
+      . '<h6>[h6]</h6>'
+      . '<hr />[hr]'
+      . '<ol><li>[ol-li]</li>'
+      . '<li>[li]</li>'
+      . '<li>[li-ol]</li></ol>'
+      . '<p>[p]</p>'
+      . '<ul><li>[ul-li]</li>'
+      . '<li>[li-ul]</li></ul>'
+      . '[text]';
+    $output = drupal_html_to_text($input);
+    $pass = $this->assertFalse(
+      preg_match('/\][^\n]*\[/s', $output),
+      'Block-level HTML tags should force newlines'
+    );
+    if (!$pass) {
+      $this->verbose($this->stringToHtml($output));
+    }
+    $output_upper = drupal_strtoupper($output);
+    $upper_input = drupal_strtoupper($input);
+    $upper_output = drupal_html_to_text($upper_input);
+    $pass = $this->assertEqual(
+      $upper_output,
+      $output_upper,
+      'Tag recognition should be case-insensitive'
+    );
+    if (!$pass) {
+      $this->verbose(
+        $upper_output
+        . '<br />should  be equal to <br />'
+        . $output_upper
+      );
+    }
+  }
+
+  /**
+   * Test that headers are properly separated from surrounding text.
+   */
+  function testHeaderSeparation() {
+    $html = 'Drupal<h1>Drupal</h1>Drupal';
+    // @todo There should be more space above the header than below it.
+    $text = "Drupal\n======== DRUPAL ==============================================================\n\nDrupal\n";
+    $this->assertHtmlToText($html, $text,
+      'Text before and after <h1> tag');
+    $html = '<p>Drupal</p><h1>Drupal</h1>Drupal';
+    // @todo There should be more space above the header than below it.
+    $text = "Drupal\n\n======== DRUPAL ==============================================================\n\nDrupal\n";
+    $this->assertHtmlToText($html, $text,
+      'Paragraph before and text after <h1> tag');
+    $html = 'Drupal<h1>Drupal</h1><p>Drupal</p>';
+    // @todo There should be more space above the header than below it.
+    $text = "Drupal\n======== DRUPAL ==============================================================\n\nDrupal\n\n";
+    $this->assertHtmlToText($html, $text,
+      'Text before and paragraph after <h1> tag');
+    $html = '<p>Drupal</p><h1>Drupal</h1><p>Drupal</p>';
+    $text = "Drupal\n\n======== DRUPAL ==============================================================\n\nDrupal\n\n";
+    $this->assertHtmlToText($html, $text,
+      'Paragraph before and after <h1> tag');
+  }
+
+  /**
+   * Test that footnote references are properly generated.
+   */
+  function testFootnoteReferences() {
+    global $base_path, $base_url;
+    $source = '<a href="http://www.example.com/node/1">Host and path</a>'
+      . '<br /><a href="http://www.example.com">Host, no path</a>'
+      . '<br /><a href="' . $base_path . 'node/1">Path, no host</a>'
+      . '<br /><a href="node/1">Relative path</a>';
+    // @todo Footnote urls should be absolute.
+    $tt = "Host and path [1]"
+      . "\nHost, no path [2]"
+      // @todo The following two references should be combined.
+      . "\nPath, no host [3]"
+      . "\nRelative path [4]"
+      . "\n"
+      . "\n[1] http://www.example.com/node/1"
+      . "\n[2] http://www.example.com"
+      // @todo The following two references should be combined.
+      . "\n[3] $base_url/node/1"
+      . "\n[4] node/1\n";
+    $this->assertHtmlToText($source, $tt, 'Footnotes');
+  }
+
+  /**
+   * Test that combinations of paragraph breaks, line breaks, linefeeds,
+   * and spaces are properly handled.
+   */
+  function testDrupalHtmlToTextParagraphs() {
+    $tests = array();
+    $tests[] = array(
+        'html' => "<p>line 1<br />\nline 2<br />line 3\n<br />line 4</p><p>paragraph</p>",
+        // @todo Trailing line breaks should be trimmed.
+        'text' => "line 1\nline 2\nline 3\nline 4\n\nparagraph\n\n",
+    );
+    $tests[] = array(
+      'html' => "<p>line 1<br /> line 2</p> <p>line 4<br /> line 5</p> <p>0</p>",
+      // @todo Trailing line breaks should be trimmed.
+      'text' => "line 1\nline 2\n\nline 4\nline 5\n\n0\n\n",
+    );
+    foreach ($tests as $test) {
+      $this->assertHtmlToText($test['html'], $test['text'], 'Paragraph breaks');
+    }
+  }
+
+  /**
+   * Tests that drupal_html_to_text() wraps before 1000 characters.
+   *
+   * RFC 3676 says, "The Text/Plain media type is the lowest common
+   * denominator of Internet email, with lines of no more than 998 characters."
+   *
+   * RFC 2046 says, "SMTP [RFC-821] allows a maximum of 998 octets before the
+   * next CRLF sequence."
+   *
+   * RFC 821 says, "The maximum total length of a text line including the
+   * <CRLF> is 1000 characters."
+   */
+  function testVeryLongLineWrap() {
+    $input = 'Drupal<br /><p>' . str_repeat('x', 2100) . '</><br />Drupal';
+    $output = drupal_html_to_text($input);
+    // This awkward construct comes from includes/mail.inc lines 8-13.
+    $eol = variable_get('mail_line_endings', MAIL_LINE_ENDINGS);
+    // We must use strlen() rather than drupal_strlen() in order to count
+    // octets rather than characters.
+    $line_length_limit = 1000 - drupal_strlen($eol);
+    $maximum_line_length = 0;
+    foreach (explode($eol, $output) as $line) {
+      // We must use strlen() rather than drupal_strlen() in order to count
+      // octets rather than characters.
+      $maximum_line_length = max($maximum_line_length, strlen($line . $eol));
+    }
+    $verbose = 'Maximum line length found was ' . $maximum_line_length . ' octets.';
+    // @todo This should assert that $maximum_line_length <= 1000.
+    $this->pass($verbose);
+  }
+}

Modified: branches/drupal7/modules/simpletest/tests/menu.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/menu.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/menu.test (original)
+++ branches/drupal7/modules/simpletest/tests/menu.test Thu Jul 28 00:20:26 2011
@@ -392,6 +392,14 @@
     $link = $links['menu-test/hidden/block/manage/%/%/delete'];
     $this->assertEqual($link['depth'], $depth, t('%path depth @link_depth is equal to @depth.', array('%path' => $link['router_path'], '@link_depth' => $link['depth'], '@depth' => $depth)));
     $this->assertEqual($link['plid'], $plid, t('%path plid @link_plid is equal to @plid.', array('%path' => $link['router_path'], '@link_plid' => $link['plid'], '@plid' => $plid)));
+  }
+
+  /**
+   * Test menu_get_item() with empty ancestors.
+   */
+  function testMenuGetItemNoAncestors() {
+    variable_set('menu_masks', array());
+    $this->drupalGet('');
   }
 
   /**

Modified: branches/drupal7/modules/simpletest/tests/menu_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/menu_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/menu_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/menu_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/module_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/module_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/module_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/module_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/requirements1_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/requirements1_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/requirements1_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/requirements1_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/requirements2_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/requirements2_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/requirements2_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/requirements2_test.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/session_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/session_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/session_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/session_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/system_dependencies_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/system_dependencies_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/system_dependencies_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/system_dependencies_test.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 hidden = TRUE
 dependencies[] = _missing_dependency
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/system_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/system_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/system_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/system_test.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = system_test.module
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/taxonomy_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/taxonomy_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/taxonomy_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/taxonomy_test.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 hidden = TRUE
 dependencies[] = taxonomy
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/theme_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/theme_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/theme_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/theme_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/update_test_1.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/update_test_1.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/update_test_1.info (original)
+++ branches/drupal7/modules/simpletest/tests/update_test_1.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/update_test_2.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/update_test_2.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/update_test_2.info (original)
+++ branches/drupal7/modules/simpletest/tests/update_test_2.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/update_test_3.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/update_test_3.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/update_test_3.info (original)
+++ branches/drupal7/modules/simpletest/tests/update_test_3.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/upgrade/drupal-6.menu.database.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/upgrade/drupal-6.menu.database.php?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/upgrade/drupal-6.menu.database.php (original)
+++ branches/drupal7/modules/simpletest/tests/upgrade/drupal-6.menu.database.php Thu Jul 28 00:20:26 2011
@@ -7,4 +7,123 @@
   'name' => 'menu_default_node_menu',
   'value' => 's:15:"secondary-links";',
 ))
+->values(array(
+  'name' => 'menu_primary_links_source',
+  'value' => 's:15:"secondary-links";',
+))
+->values(array(
+  'name' => 'menu_secondary_links_source',
+  'value' => 's:13:"primary-links";',
+))
 ->execute();
+
+// Add some links to the menus.
+db_insert('menu_links')->fields(array(
+  'menu_name',
+  'mlid',
+  'plid',
+  'link_path',
+  'router_path',
+  'link_title',
+  'options',
+  'module',
+  'hidden',
+  'external',
+  'has_children',
+  'expanded',
+  'weight',
+  'depth',
+  'customized',
+  'p1',
+  'p2',
+  'p3',
+  'p4',
+  'p5',
+  'p6',
+  'p7',
+  'p8',
+  'p9',
+  'updated',
+))
+->values(array(
+  'menu_name' => 'navigation',
+  'mlid' => '201',
+  'plid' => '0',
+  'link_path' => 'node/add',
+  'router_path' => 'node/add',
+  'link_title' => 'nodeadd-navigation',
+  'options' => 'a:0:{}',
+  'module' => 'menu',
+  'hidden' => '0',
+  'external' => '0',
+  'has_children' => '1',
+  'expanded' => '0',
+  'weight' => '1',
+  'depth' => '1',
+  'customized' => '0',
+  'p1' => '201',
+  'p2' => '0',
+  'p3' => '0',
+  'p4' => '0',
+  'p5' => '0',
+  'p6' => '0',
+  'p7' => '0',
+  'p8' => '0',
+  'p9' => '0',
+  'updated' => '0',
+))
+->values(array(
+  'menu_name' => 'primary-links',
+  'mlid' => '204',
+  'plid' => '0',
+  'link_path' => 'node/add',
+  'router_path' => 'node/add',
+  'link_title' => 'nodeadd-primary',
+  'options' => 'a:0:{}',
+  'module' => 'menu',
+  'hidden' => '0',
+  'external' => '0',
+  'has_children' => '1',
+  'expanded' => '0',
+  'weight' => '1',
+  'depth' => '1',
+  'customized' => '0',
+  'p1' => '204',
+  'p2' => '0',
+  'p3' => '0',
+  'p4' => '0',
+  'p5' => '0',
+  'p6' => '0',
+  'p7' => '0',
+  'p8' => '0',
+  'p9' => '0',
+  'updated' => '0',
+))
+->values(array(
+  'menu_name' => 'secondary-links',
+  'mlid' => '205',
+  'plid' => '0',
+  'link_path' => 'node/add',
+  'router_path' => 'node/add',
+  'link_title' => 'nodeadd-secondary',
+  'options' => 'a:0:{}',
+  'module' => 'menu',
+  'hidden' => '0',
+  'external' => '0',
+  'has_children' => '1',
+  'expanded' => '0',
+  'weight' => '1',
+  'depth' => '1',
+  'customized' => '0',
+  'p1' => '205',
+  'p2' => '0',
+  'p3' => '0',
+  'p4' => '0',
+  'p5' => '0',
+  'p6' => '0',
+  'p7' => '0',
+  'p8' => '0',
+  'p9' => '0',
+  'updated' => '0',
+))
+->execute();

Modified: branches/drupal7/modules/simpletest/tests/upgrade/upgrade.menu.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/upgrade/upgrade.menu.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/upgrade/upgrade.menu.test (original)
+++ branches/drupal7/modules/simpletest/tests/upgrade/upgrade.menu.test Thu Jul 28 00:20:26 2011
@@ -29,16 +29,50 @@
   public function testMenuUpgrade() {
     $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.'));
 
-    // Test the migration of "Default menu for content" setting to individual node types.
-    $this->drupalGet("admin/structure/types/manage/page/edit");
+    // Test the migration of "Default menu for content" setting to individual
+    // node types.
+    $this->drupalGet('admin/structure/types/manage/page/edit');
     $this->assertNoFieldChecked('edit-menu-options-management', 'Management menu is not selected as available menu');
     $this->assertNoFieldChecked('edit-menu-options-navigation', 'Navigation menu is not selected as available menu');
-    $this->assertNoFieldChecked('edit-menu-options-primary-links', 'Primary Links menu is not selected as available menu');
-    $this->assertFieldChecked('edit-menu-options-secondary-links', 'Secondary Links menu is selected as available menu');
+    $this->assertNoFieldChecked('edit-menu-options-main-menu', 'Main menu is not selected as available menu');
+    $this->assertFieldChecked('edit-menu-options-secondary-menu', 'Secondary menu is selected as available menu');
     $this->assertNoFieldChecked('edit-menu-options-user-menu', 'User menu is not selected as available menu');
-    $this->assertOptionSelected('edit-menu-parent', 'secondary-links:0', 'Secondary links is selected as default parent item');
+    $this->assertOptionSelected('edit-menu-parent', 'secondary-menu:0', 'Secondary menu is selected as default parent item');
 
     $this->assertEqual(variable_get('menu_default_node_menu'), NULL, 'Redundant variable menu_default_node_menu has been removed');
 
+    // Verify Primary/Secondary Links have been renamed.
+    $this->drupalGet('admin/structure/menu');
+    $this->assertNoLinkByHref('admin/structure/menu/manage/primary-links');
+    $this->assertLinkByHref('admin/structure/menu/manage/main-menu');
+    $this->assertNoLinkByHref('admin/structure/menu/manage/secondary-links');
+    $this->assertLinkByHref('admin/structure/menu/manage/secondary-menu');
+
+    // Verify the existence of all system-defined (default) menus.
+    foreach (menu_list_system_menus() as $menu_name => $title) {
+      $this->assertLinkByHref('admin/structure/menu/manage/' . $menu_name, 0, 'Found default menu: ' . $title);
+    }
+
+    // Verify a few known links are still present, plus the ones created here.
+    $test_menus = array(
+      'navigation' => array('Add content', 'nodeadd-navigation'),
+      'management' => array('Administration', 'Account settings'),
+      'user-menu' => array('My account', 'Log out'),
+      'main-menu' => array('nodeadd-primary'),
+      'secondary-menu' => array('nodeadd-secondary'),
+    );
+
+    foreach ($test_menus as $menu_name => $links) {
+      $this->drupalGet('admin/structure/menu/manage/' . $menu_name);
+      $this->assertResponse(200, 'Access menu management for ' . $menu_name);
+      foreach ($links as $link_text) {
+        $this->assertLink(t($link_text));
+      }
+    }
+
+    // Check the "source for primary/secondary links" setting.
+    $this->drupalGet('admin/structure/menu/settings');
+    $this->assertOptionSelected('edit-menu-main-links-source', 'secondary-menu');
+    $this->assertOptionSelected('edit-menu-secondary-links-source', 'main-menu');
   }
 }

Modified: branches/drupal7/modules/simpletest/tests/upgrade/upgrade.node.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/upgrade/upgrade.node.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/upgrade/upgrade.node.test (original)
+++ branches/drupal7/modules/simpletest/tests/upgrade/upgrade.node.test Thu Jul 28 00:20:26 2011
@@ -27,6 +27,11 @@
    */
   public function testNodeBodyUpgrade() {
     $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.'));
+
+    $instance = field_info_instance('node', 'body', 'story');
+    $this->assertIdentical($instance['required'], 0, 'The required setting was preserved during the upgrade path.');
+    $this->assertTrue($instance['description'], 'The description was preserved during the upgrade path');
+
     $this->drupalGet("content/1263769200");
     $this->assertText('node body (broken) - 37');
 

Modified: branches/drupal7/modules/simpletest/tests/upgrade/upgrade.taxonomy.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/upgrade/upgrade.taxonomy.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/upgrade/upgrade.taxonomy.test (original)
+++ branches/drupal7/modules/simpletest/tests/upgrade/upgrade.taxonomy.test Thu Jul 28 00:20:26 2011
@@ -67,6 +67,12 @@
     sort($voc_keys);
     sort($inst_keys);
     $this->assertEqual($voc_keys, $inst_keys, t('Node type page has instances for every vocabulary.'));
+
+    // Ensure instance variables are getting through.
+    foreach ($instances as $instance) {
+      $this->assertTrue(isset($instance['required']), 'The required setting was preserved during the upgrade path.');
+      $this->assertTrue($instance['description'], 'The description was preserved during the upgrade path');
+    }
 
     // Node type 'story' was not explicitly in $vocabulary->nodes but
     // each node of type 'story' was associated to one or more terms.

Modified: branches/drupal7/modules/simpletest/tests/url_alter_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/url_alter_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/url_alter_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/url_alter_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/simpletest/tests/xmlrpc_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/simpletest/tests/xmlrpc_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/simpletest/tests/xmlrpc_test.info (original)
+++ branches/drupal7/modules/simpletest/tests/xmlrpc_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/statistics/statistics.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/statistics/statistics.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/statistics/statistics.info (original)
+++ branches/drupal7/modules/statistics/statistics.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = statistics.test
 configure = admin/config/system/statistics
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/syslog/syslog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/syslog/syslog.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/syslog/syslog.info (original)
+++ branches/drupal7/modules/syslog/syslog.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = syslog.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/system/image.gd.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/system/image.gd.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/system/image.gd.inc (original)
+++ branches/drupal7/modules/system/image.gd.inc Thu Jul 28 00:20:26 2011
@@ -346,7 +346,7 @@
  */
 function image_gd_get_info(stdClass $image) {
   $details = FALSE;
-  $data = getimagesize(drupal_realpath($image->source));
+  $data = getimagesize($image->source);
 
   if (isset($data) && is_array($data)) {
     $extensions = array('1' => 'gif', '2' => 'jpg', '3' => 'png');

Modified: branches/drupal7/modules/system/system.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/system/system.admin.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/system/system.admin.inc (original)
+++ branches/drupal7/modules/system/system.admin.inc Thu Jul 28 00:20:26 2011
@@ -1757,7 +1757,7 @@
     '#title' => t('Private file system path'),
     '#default_value' => variable_get('file_private_path', ''),
     '#maxlength' => 255,
-    '#description' => t('A local file system path where private files will be stored. This directory must exist and be writable by Drupal. This directory should not be accessible over the web.'),
+    '#description' => t('An existing local file system path for storing private files. It should be writable by Drupal and not accessible over the web. See the online handbook for <a href="@handbook">more information about securing private files</a>.', array('@handbook' => 'http://drupal.org/handbook/modules/file')),
     '#after_build' => array('system_check_directory'),
   );
 

Modified: branches/drupal7/modules/system/system.api.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/system/system.api.php?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/system/system.api.php (original)
+++ branches/drupal7/modules/system/system.api.php Thu Jul 28 00:20:26 2011
@@ -1972,8 +1972,8 @@
  *   containing information about the hook. Each array may contain the
  *   following elements:
  *   - variables: (required if "render element" not present) An array of
- *     variables that this theme hook uses. This value allows the theme layer to
- *     properly utilize templates. Each array key represents the name of the
+ *     variables that this theme hook uses. This value allows the theme layer
+ *     to properly utilize templates. Each array key represents the name of the
  *     variable and the value will be used as the default value if it is not
  *     given when theme() is called. Template implementations receive these
  *     arguments as variables in the template file. Function implementations
@@ -1989,20 +1989,20 @@
  *     preprocess function (as needed) is actually loaded; this makes it
  *     possible to split theme functions out into separate files quite easily.
  *   - path: Override the path of the file to be used. Ordinarily the module or
- *     theme path will be used, but if the file will not be in the default path,
- *     include it here. This path should be relative to the Drupal root
+ *     theme path will be used, but if the file will not be in the default
+ *     path, include it here. This path should be relative to the Drupal root
  *     directory.
- *   - template: If specified, this theme implementation is a template, and this
- *     is the template file without an extension. Do not put .tpl.php on this
- *     file; that extension will be added automatically by the default rendering
- *     engine (which is PHPTemplate). If 'path', above, is specified, the
- *     template should also be in this path.
- *   - function: If specified, this will be the function name to invoke for this
- *     implementation. If neither file nor function is specified, a default
- *     function name will be assumed. For example, if a module registers
- *     the 'node' theme hook, 'theme_node' will be assigned to its function.
- *     If the chameleon theme registers the node hook, it will be assigned
- *     'chameleon_node' as its function.
+ *   - template: If specified, this theme implementation is a template, and
+ *     this is the template file without an extension. Do not put .tpl.php on
+ *     this file; that extension will be added automatically by the default
+ *     rendering engine (which is PHPTemplate). If 'path', above, is specified,
+ *     the template should also be in this path.
+ *   - function: If specified, this will be the function name to invoke for
+ *     this implementation. If neither 'template' nor 'function' is specified,
+ *     a default function name will be assumed. For example, if a module
+ *     registers the 'node' theme hook, 'theme_node' will be assigned to its
+ *     function. If the chameleon theme registers the node hook, it will be
+ *     assigned 'chameleon_node' as its function.
  *   - pattern: A regular expression pattern to be used to allow this theme
  *     implementation to have a dynamic name. The convention is to use __ to
  *     differentiate the dynamic portion of the theme. For example, to allow
@@ -2017,11 +2017,11 @@
  *     a theme this will be filled in as phptemplate_preprocess and
  *     phptemplate_preprocess_HOOK as well as themename_preprocess and
  *     themename_preprocess_HOOK.
- *   - override preprocess functions: Set to TRUE when a theme does NOT want the
- *     standard preprocess functions to run. This can be used to give a theme
- *     FULL control over how variables are set. For example, if a theme wants
- *     total control over how certain variables in the page.tpl.php are set,
- *     this can be set to true. Please keep in mind that when this is used
+ *   - override preprocess functions: Set to TRUE when a theme does NOT want
+ *     the standard preprocess functions to run. This can be used to give a
+ *     theme FULL control over how variables are set. For example, if a theme
+ *     wants total control over how certain variables in the page.tpl.php are
+ *     set, this can be set to true. Please keep in mind that when this is used
  *     by a theme, that theme becomes responsible for making sure necessary
  *     variables are set.
  *   - type: (automatically derived) Where the theme hook is defined:
@@ -2687,22 +2687,21 @@
  *   NULL.
  *
  * @see file_download()
- * @see upload_file_download()
  */
 function hook_file_download($uri) {
   // Check if the file is controlled by the current module.
   if (!file_prepare_directory($uri)) {
     $uri = FALSE;
   }
-  $result = db_query("SELECT f.* FROM {file_managed} f INNER JOIN {upload} u ON f.fid = u.fid WHERE uri = :uri", array('uri' => $uri));
-  foreach ($result as $file) {
-    if (!user_access('view uploaded files')) {
+  if (strpos(file_uri_target($uri), variable_get('user_picture_path', 'pictures') . '/picture-') === 0) {
+    if (!user_access('access user profiles')) {
+      // Access to the file is denied.
       return -1;
     }
-    return array(
-      'Content-Type' => $file->filemime,
-      'Content-Length' => $file->filesize,
-    );
+    else {
+      $info = image_get_info($uri);
+      return array('Content-Type' => $info['mime_type']);
+    }
   }
 }
 

Modified: branches/drupal7/modules/system/system.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/system/system.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/system/system.info (original)
+++ branches/drupal7/modules/system/system.info Thu Jul 28 00:20:26 2011
@@ -12,8 +12,8 @@
 required = TRUE
 configure = admin/config/system
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/system/system.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/system/system.install?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/system/system.install (original)
+++ branches/drupal7/modules/system/system.install Thu Jul 28 00:20:26 2011
@@ -2263,6 +2263,9 @@
   // provided any meaningful unique constraint ('pid' is a primary key).
   db_add_index('url_alias', 'source_language_pid', array('source', 'language', 'pid'));
   db_add_index('url_alias', 'alias_language_pid', array('alias', 'language', 'pid'));
+
+  // Now that the URL aliases are correct, we can rebuild the whitelist.
+  drupal_path_alias_whitelist_rebuild();
 }
 
 /**

Modified: branches/drupal7/modules/system/system.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/system/system.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/system/system.module (original)
+++ branches/drupal7/modules/system/system.module Thu Jul 28 00:20:26 2011
@@ -3018,6 +3018,7 @@
     ->fields(array(
       'expire' => 0,
     ))
+    ->condition('expire', 0, '<>')
     ->condition('expire', REQUEST_TIME, '<')
     ->execute();
 }

Modified: branches/drupal7/modules/system/system.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/system/system.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/system/system.test (original)
+++ branches/drupal7/modules/system/system.test Thu Jul 28 00:20:26 2011
@@ -1824,7 +1824,6 @@
     // Set a few site variables.
     variable_set('site_name', '<strong>Drupal<strong>');
     variable_set('site_slogan', '<blink>Slogan</blink>');
-    variable_set('site_mission', '<em>Mission</em>');
 
     // Generate and test sanitized tokens.
     $tests = array();

Modified: branches/drupal7/modules/system/system.tokens.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/system/system.tokens.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/system/system.tokens.inc (original)
+++ branches/drupal7/modules/system/system.tokens.inc Thu Jul 28 00:20:26 2011
@@ -88,10 +88,6 @@
     'name' => t("File name"),
     'description' => t("The name of the file on disk."),
   );
-  $file['description'] = array(
-    'name' => t("Description"),
-    'description' => t("An optional human-readable description of the file."),
-  );
   $file['path'] = array(
     'name' => t("Path"),
     'description' => t("The location of the file relative to Drupal root."),
@@ -228,10 +224,6 @@
           $replacements[$original] = $sanitize ? check_plain($file->filename) : $file->filename;
           break;
 
-        case 'description':
-          $replacements[$original] = $sanitize ? check_plain($file->description) : $file->description;
-          break;
-
         case 'path':
           $replacements[$original] = $sanitize ? check_plain($file->uri) : $file->uri;
           break;
@@ -255,7 +247,8 @@
 
         case 'owner':
           $account = user_load($file->uid);
-          $replacements[$original] = $sanitize ? check_plain($account->name) : $account->name;
+          $name = format_username($account);
+          $replacements[$original] = $sanitize ? check_plain($name) : $name;
           break;
       }
     }

Modified: branches/drupal7/modules/taxonomy/taxonomy.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/taxonomy/taxonomy.admin.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/taxonomy/taxonomy.admin.inc (original)
+++ branches/drupal7/modules/taxonomy/taxonomy.admin.inc Thu Jul 28 00:20:26 2011
@@ -209,7 +209,7 @@
  * @see taxonomy_form_vocabulary_validate()
  */
 function taxonomy_form_vocabulary_submit($form, &$form_state) {
-  if ($form_state['clicked_button']['#value'] == t('Delete')) {
+  if ($form_state['triggering_element']['#value'] == t('Delete')) {
     // Rebuild the form to confirm vocabulary deletion.
     $form_state['rebuild'] = TRUE;
     $form_state['confirm_delete'] = TRUE;
@@ -434,7 +434,7 @@
  * @see taxonomy_overview_terms()
  */
 function taxonomy_overview_terms_submit($form, &$form_state) {
-  if ($form_state['clicked_button']['#value'] == t('Reset to alphabetical')) {
+  if ($form_state['triggering_element']['#value'] == t('Reset to alphabetical')) {
     // Execute the reset action.
     if ($form_state['values']['reset_alphabetical'] === TRUE) {
       return taxonomy_vocabulary_confirm_reset_alphabetical_submit($form, $form_state);
@@ -674,9 +674,6 @@
   if (isset($form_state['confirm_delete'])) {
     return array_merge($form, taxonomy_term_confirm_delete($form, $form_state, $term->tid));
   }
-  elseif (isset($form_state['confirm_parents'])) {
-    return array_merge($form, taxonomy_term_confirm_parents($form, $form_state, $vocabulary));
-  }
 
   $form['name'] = array(
     '#type' => 'textfield',
@@ -801,7 +798,7 @@
  * @see taxonomy_form_term()
  */
 function taxonomy_form_term_submit($form, &$form_state) {
-  if ($form_state['clicked_button']['#value'] == t('Delete')) {
+  if ($form_state['triggering_element']['#value'] == t('Delete')) {
     // Execute the term deletion.
     if ($form_state['values']['delete'] === TRUE) {
       return taxonomy_term_confirm_delete_submit($form, $form_state);
@@ -809,12 +806,6 @@
     // Rebuild the form to confirm term deletion.
     $form_state['rebuild'] = TRUE;
     $form_state['confirm_delete'] = TRUE;
-    return;
-  }
-  // Rebuild the form to confirm enabling multiple parents.
-  elseif ($form_state['clicked_button']['#value'] == t('Save') && count($form_state['values']['parent']) > 1 && $form['#vocabulary']->hierarchy < 2) {
-    $form_state['rebuild'] = TRUE;
-    $form_state['confirm_parents'] = TRUE;
     return;
   }
 
@@ -873,25 +864,6 @@
 }
 
 /**
- * Form builder for the confirmation of multiple term parents.
- *
- * @ingroup forms
- * @see taxonomy_form_term()
- */
-function taxonomy_term_confirm_parents($form, &$form_state, $vocabulary) {
-  foreach (element_children($form_state['values']) as $key) {
-    $form[$key] = array(
-      '#type' => 'value',
-      '#value' => $form_state['values'][$key],
-    );
-  }
-  $question = t('Set multiple term parents?');
-  $description = '<p>' . t("Adding multiple parents to a term will cause the %vocabulary vocabulary to look for multiple parents on every term. Because multiple parents are not supported when using the drag and drop outline interface, drag and drop will be disabled if you enable this option. If you choose to have multiple parents, you will only be able to set parents by using the term edit form.", array('%vocabulary' => $vocabulary->name)) . '</p>';
-  $description .= '<p>' . t("You may re-enable the drag and drop interface at any time by reducing multiple parents to a single parent for the terms in this vocabulary.") . '</p>';
-  return confirm_form($form, $question, drupal_get_destination(), $description, t('Set multiple parents'));
-}
-
-/**
  * Form builder for the term delete form.
  *
  * @ingroup forms

Modified: branches/drupal7/modules/taxonomy/taxonomy.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/taxonomy/taxonomy.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/taxonomy/taxonomy.info (original)
+++ branches/drupal7/modules/taxonomy/taxonomy.info Thu Jul 28 00:20:26 2011
@@ -8,8 +8,8 @@
 files[] = taxonomy.test
 configure = admin/structure/taxonomy
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/taxonomy/taxonomy.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/taxonomy/taxonomy.install?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/taxonomy/taxonomy.install (original)
+++ branches/drupal7/modules/taxonomy/taxonomy.install Thu Jul 28 00:20:26 2011
@@ -438,6 +438,7 @@
         'entity_type' => 'node',
         'settings' => array(),
         'description' => $vocabulary->help,
+        'required' => $vocabulary->required,
         'widget' => array(),
         'display' => array(
           'default' => array(

Modified: branches/drupal7/modules/taxonomy/taxonomy.pages.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/taxonomy/taxonomy.pages.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/taxonomy/taxonomy.pages.inc (original)
+++ branches/drupal7/modules/taxonomy/taxonomy.pages.inc Thu Jul 28 00:20:26 2011
@@ -110,7 +110,7 @@
       ->execute()
       ->fetchAllKeyed();
 
-    $prefix = count($tags_typed) ? implode(', ', $tags_typed) . ', ' : '';
+    $prefix = count($tags_typed) ? drupal_implode_tags($tags_typed) . ', ' : '';
 
     $term_matches = array();
     foreach ($tags_return as $tid => $name) {
@@ -119,9 +119,7 @@
       if (strpos($name, ',') !== FALSE || strpos($name, '"') !== FALSE) {
         $n = '"' . str_replace('"', '""', $name) . '"';
       }
-      else {
-        $term_matches[$prefix . $n] = check_plain($name);
-      }
+      $term_matches[$prefix . $n] = check_plain($name);
     }
   }
 

Modified: branches/drupal7/modules/taxonomy/taxonomy.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/taxonomy/taxonomy.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/taxonomy/taxonomy.test (original)
+++ branches/drupal7/modules/taxonomy/taxonomy.test Thu Jul 28 00:20:26 2011
@@ -580,7 +580,7 @@
     field_create_instance($instance);
     $terms = array(
       $this->randomName(),
-      $this->randomName(),
+      $this->randomName() . ', ' . $this->randomName(),
       $this->randomName(),
     );
 
@@ -590,7 +590,7 @@
     $edit["body[$langcode][0][value]"] = $this->randomName();
     // Insert the terms in a comma separated list. Vocabulary 1 is a
     // free-tagging field created by the default profile.
-    $edit[$instance['field_name'] . "[$langcode]"] = implode(', ', $terms);
+    $edit[$instance['field_name'] . "[$langcode]"] = drupal_implode_tags($terms);
 
     // Preview and verify the terms appear but are not created.
     $this->drupalPost('node/add/page', $edit, t('Preview'));
@@ -611,9 +611,9 @@
     }
 
     // Get the created terms.
-    list($term1, $term2, $term3) = taxonomy_get_tree($this->vocabulary->vid);
-
-    // Delete one term.
+    list($term1, $term2, $term3) = array_values(taxonomy_term_load_multiple(FALSE));
+
+    // Delete term 1.
     $this->drupalPost('taxonomy/term/' . $term1->tid . '/edit', array(), t('Delete'));
     $this->drupalPost(NULL, NULL, t('Delete'));
     $term_names = array($term2->name, $term3->name);
@@ -627,10 +627,17 @@
     }
     $this->assertNoText($term1->name, t('The deleted term %name does not appear on the node page.', array('%name' => $term1->name)));
 
-    // Test autocomplete on term 2.
+    // Test autocomplete on term 2 - it contains a comma, so expect the key to
+    // be quoted.
     $input = substr($term2->name, 0, 3);
     $this->drupalGet('taxonomy/autocomplete/taxonomy_' . $this->vocabulary->machine_name . '/' . $input);
-    $this->assertRaw('{"' . $term2->name . '":"' . $term2->name . '"}', t('Autocomplete returns term %term_name after typing the first 3 letters.', array('%term_name' => $term2->name)));
+    $this->assertRaw('{"\"' . $term2->name . '\"":"' . $term2->name . '"}', t('Autocomplete returns term %term_name after typing the first 3 letters.', array('%term_name' => $term2->name)));
+
+    // Test autocomplete on term 3 - it is alphanumeric only, so no extra
+    // quoting.
+    $input = substr($term3->name, 0, 3);
+    $this->drupalGet('taxonomy/autocomplete/taxonomy_' . $this->vocabulary->machine_name . '/' . $input);
+    $this->assertRaw('{"' . $term3->name . '":"' . $term3->name . '"}', t('Autocomplete returns term %term_name after typing the first 3 letters.', array('%term_name' => $term3->name)));
   }
 
   /**
@@ -761,6 +768,35 @@
   }
 
   /**
+   * Test saving a term with multiple parents through the UI.
+   */
+  function testTermMultipleParentsInterface() {
+    // Add a new term to the vocabulary so that we can have multiple parents.
+    $parent = $this->createTerm($this->vocabulary);
+
+    // Add a new term with multiple parents.
+    $edit = array(
+      'name' => $this->randomName(12),
+      'description[value]' => $this->randomName(100),
+      'parent[]' => array(0, $parent->tid),
+    );
+    // Save the new term.
+    $this->drupalPost('admin/structure/taxonomy/' . $this->vocabulary->machine_name . '/add', $edit, t('Save'));
+
+    // Check that the term was successfully created.
+    $terms = taxonomy_get_term_by_name($edit['name']);
+    $term = reset($terms);
+    $this->assertNotNull($term, t('Term found in database'));
+    $this->assertEqual($edit['name'], $term->name, t('Term name was successfully saved.'));
+    $this->assertEqual($edit['description[value]'], $term->description, t('Term description was successfully saved.'));
+    // Check that the parent tid is still there. The other parent (<root>) is
+    // not added by taxonomy_get_parents().
+    $parents = taxonomy_get_parents($term->tid);
+    $parent = reset($parents);
+    $this->assertEqual($edit['parent[]'][1], $parent->tid, t('Term parents were successfully saved.'));
+  }
+
+  /**
    * Test taxonomy_get_term_by_name().
    */
   function testTaxonomyGetTermByName() {

Modified: branches/drupal7/modules/toolbar/toolbar.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/toolbar/toolbar.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/toolbar/toolbar.info (original)
+++ branches/drupal7/modules/toolbar/toolbar.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 package = Core
 version = VERSION
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/tracker/tracker.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/tracker/tracker.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/tracker/tracker.info (original)
+++ branches/drupal7/modules/tracker/tracker.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 core = 7.x
 files[] = tracker.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/translation/tests/translation_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/translation/tests/translation_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/translation/tests/translation_test.info (original)
+++ branches/drupal7/modules/translation/tests/translation_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/translation/translation.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/translation/translation.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/translation/translation.info (original)
+++ branches/drupal7/modules/translation/translation.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 core = 7.x
 files[] = translation.test
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/translation/translation.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/translation/translation.test?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/translation/translation.test (original)
+++ branches/drupal7/modules/translation/translation.test Thu Jul 28 00:20:26 2011
@@ -108,9 +108,9 @@
 
     // Update original and mark translation as outdated.
     $node_body = $this->randomName();
-    $node->body[$node->language][0]['value'] = $node_body;
-    $edit = array();
-    $edit["body[$node->language][0][value]"] = $node_body;
+    $node->body[LANGUAGE_NONE][0]['value'] = $node_body;
+    $edit = array();
+    $edit["body[$langcode][0][value]"] = $node_body;
     $edit['translation[retranslate]'] = TRUE;
     $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
     $this->assertRaw(t('Basic page %title has been updated.', array('%title' => $node_title)), t('Original node updated.'));
@@ -121,7 +121,7 @@
 
     // Update translation and mark as updated.
     $edit = array();
-    $edit["body[$node_translation->language][0][value]"] = $this->randomName();
+    $edit["body[$langcode][0][value]"] = $this->randomName();
     $edit['translation[status]'] = FALSE;
     $this->drupalPost('node/' . $node_translation->nid . '/edit', $edit, t('Save'));
     $this->assertRaw(t('Basic page %title has been updated.', array('%title' => $node_translation_title)), t('Translated node updated.'));
@@ -131,7 +131,7 @@
     $this->drupalGet('node/add/page');
     $this->assertFieldByXPath('//select[@name="language"]//option', 'it', t('Italian (disabled) is available in language selection.'));
     $translation_it = $this->createTranslation($node, $this->randomName(), $this->randomName(), 'it');
-    $this->assertRaw($translation_it->body['it'][0]['value'], t('Content created in Italian (disabled).'));
+    $this->assertRaw($translation_it->body[LANGUAGE_NONE][0]['value'], t('Content created in Italian (disabled).'));
 
     // Confirm that language neutral is an option for translators when there are
     // disabled languages.
@@ -349,9 +349,10 @@
   function createTranslation($node, $title, $body, $language) {
     $this->drupalGet('node/add/page', array('query' => array('translation' => $node->nid, 'target' => $language)));
 
-    $body_key = "body[$language][0][value]";
+    $langcode = LANGUAGE_NONE;
+    $body_key = "body[$langcode][0][value]";
     $this->assertFieldByXPath('//input[@id="edit-title"]', $node->title, "Original title value correctly populated.");
-    $this->assertFieldByXPath("//textarea[@name='$body_key']", $node->body[$node->language][0]['value'], "Original body value correctly populated.");
+    $this->assertFieldByXPath("//textarea[@name='$body_key']", $node->body[LANGUAGE_NONE][0]['value'], "Original body value correctly populated.");
 
     $edit = array();
     $edit["title"] = $title;

Modified: branches/drupal7/modules/trigger/tests/trigger_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/trigger/tests/trigger_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/trigger/tests/trigger_test.info (original)
+++ branches/drupal7/modules/trigger/tests/trigger_test.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/trigger/trigger.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/trigger/trigger.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/trigger/trigger.info (original)
+++ branches/drupal7/modules/trigger/trigger.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = trigger.test
 configure = admin/structure/trigger
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/update/tests/aaa_update_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/update/tests/aaa_update_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/update/tests/aaa_update_test.info (original)
+++ branches/drupal7/modules/update/tests/aaa_update_test.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/update/tests/bbb_update_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/update/tests/bbb_update_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/update/tests/bbb_update_test.info (original)
+++ branches/drupal7/modules/update/tests/bbb_update_test.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/update/tests/ccc_update_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/update/tests/ccc_update_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/update/tests/ccc_update_test.info (original)
+++ branches/drupal7/modules/update/tests/ccc_update_test.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/update/tests/update_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/update/tests/update_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/update/tests/update_test.info (original)
+++ branches/drupal7/modules/update/tests/update_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/update/update.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/update/update.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/update/update.info (original)
+++ branches/drupal7/modules/update/update.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 files[] = update.test
 configure = admin/reports/updates/settings
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/user/tests/user_form_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/user/tests/user_form_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/user/tests/user_form_test.info (original)
+++ branches/drupal7/modules/user/tests/user_form_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/user/user-rtl.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/user/user-rtl.css?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/user/user-rtl.css (original)
+++ branches/drupal7/modules/user/user-rtl.css Thu Jul 28 00:20:26 2011
@@ -2,6 +2,12 @@
 #permissions td.permission {
   padding-left: 0;
   padding-right: 1.5em;
+}
+
+#user-admin-roles .form-item-name {
+  float: right;
+  margin-left: 1em;
+  margin-right: 0;
 }
 
 /**

Modified: branches/drupal7/modules/user/user.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/user/user.admin.inc?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/user/user.admin.inc (original)
+++ branches/drupal7/modules/user/user.admin.inc Thu Jul 28 00:20:26 2011
@@ -712,7 +712,12 @@
 
   // Have to build checkboxes here after checkbox arrays are built
   foreach ($role_names as $rid => $name) {
-    $form['checkboxes'][$rid] = array('#type' => 'checkboxes', '#options' => $options, '#default_value' => isset($status[$rid]) ? $status[$rid] : array());
+    $form['checkboxes'][$rid] = array(
+      '#type' => 'checkboxes',
+      '#options' => $options,
+      '#default_value' => isset($status[$rid]) ? $status[$rid] : array(),
+      '#attributes' => array('class' => array('rid-' . $rid)),
+    );
     $form['role_names'][$rid] = array('#markup' => check_plain($name), '#tree' => TRUE);
   }
 

Modified: branches/drupal7/modules/user/user.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/user/user.css?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/user/user.css (original)
+++ branches/drupal7/modules/user/user.css Thu Jul 28 00:20:26 2011
@@ -22,8 +22,8 @@
   clear: both;
 }
 #user-admin-roles .form-item-name {
-  float: left;
-  margin-right: 1em;
+  float: left; /* LTR */
+  margin-right: 1em; /* LTR */
 }
 
 /**

Modified: branches/drupal7/modules/user/user.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/user/user.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/user/user.info (original)
+++ branches/drupal7/modules/user/user.info Thu Jul 28 00:20:26 2011
@@ -9,8 +9,8 @@
 configure = admin/config/people
 stylesheets[all][] = user.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/modules/user/user.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/user/user.module?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/user/user.module (original)
+++ branches/drupal7/modules/user/user.module Thu Jul 28 00:20:26 2011
@@ -74,10 +74,26 @@
 }
 
 /**
- * Invokes hook_user() in every module.
+ * Invokes a user hook in every module.
  *
  * We cannot use module_invoke() for this, because the arguments need to
  * be passed by reference.
+ *
+ * @param $type
+ *   A text string that controls which user hook to invoke.  Valid choices are:
+ *   - cancel: Invokes hook_user_cancel().
+ *   - insert: Invokes hook_user_insert().
+ *   - login: Invokes hook_user_login().
+ *   - presave: Invokes hook_user_presave().
+ *   - update: Invokes hook_user_update().
+ * @param $edit
+ *   An associative array variable containing form values to be passed
+ *   as the first parameter of the hook function.
+ * @param $account
+ *   The user account object to be passed as the second parameter of the hook
+ *   function.
+ * @param $category
+ *   The category of user information being acted upon.
  */
 function user_module_invoke($type, &$edit, $account, $category = NULL) {
   foreach (module_implements('user_' . $type) as $module) {
@@ -2287,6 +2303,27 @@
   return url("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login), array('absolute' => TRUE));
 }
 
+/**
+ * Creates a unique hash value for use in time-dependent per-user URLs.
+ *
+ * This hash is normally used to build a unique and secure URL that is sent to
+ * the user by email for purposes such as resetting the user's password. In
+ * order to validate the URL, the same hash can be generated again, from the
+ * same information, and compared to the hash value from the URL. The URL
+ * normally contains both the time stamp and the numeric user ID. The login
+ * name and hashed password are retrieved from the database as necessary. For a
+ * usage example, see user_cancel_url() and user_cancel_confirm().
+ *
+ * @param $password
+ *   The hashed user account password value.
+ * @param $timestamp
+ *   A unix timestamp.
+ * @param $login
+ *   The user account login name.
+ *
+ * @return
+ *   A string that is safe for use in URLs and SQL statements.
+ */
 function user_pass_rehash($password, $timestamp, $login) {
   return drupal_hmac_base64($timestamp . $login, drupal_get_hash_salt() . $password);
 }

Modified: branches/drupal7/modules/user/user.permissions.js
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/modules/user/user.permissions.js?rev=2225&op=diff
==============================================================================
--- branches/drupal7/modules/user/user.permissions.js (original)
+++ branches/drupal7/modules/user/user.permissions.js Thu Jul 28 00:20:26 2011
@@ -5,34 +5,64 @@
  */
 Drupal.behaviors.permissions = {
   attach: function (context) {
-    $('table#permissions:not(.permissions-processed)').each(function () {
+    var self = this;
+    $('table#permissions').once('permissions', function () {
+      // On a site with many roles and permissions, this behavior initially has
+      // to perform thousands of DOM manipulations to inject checkboxes and hide
+      // them. By detaching the table from the DOM, all operations can be
+      // performed without triggering internal layout and re-rendering processes
+      // in the browser.
+      var $table = $(this);
+      if ($table.prev().length) {
+        var $ancestor = $table.prev(), method = 'after';
+      }
+      else {
+        var $ancestor = $table.parent(), method = 'append';
+      }
+      $table.detach();
+
       // Create dummy checkboxes. We use dummy checkboxes instead of reusing
       // the existing checkboxes here because new checkboxes don't alter the
       // submitted form. If we'd automatically check existing checkboxes, the
       // permission table would be polluted with redundant entries. This
       // is deliberate, but desirable when we automatically check them.
-      $(':checkbox', this).not('[name^="2["]').not('[name^="1["]').each(function () {
-        $(this).addClass('real-checkbox');
-        $('<input type="checkbox" class="dummy-checkbox" disabled="disabled" checked="checked" />')
-          .attr('title', Drupal.t("This permission is inherited from the authenticated user role."))
-          .insertAfter(this)
-          .hide();
+      var $dummy = $('<input type="checkbox" class="dummy-checkbox" disabled="disabled" checked="checked" />')
+        .attr('title', Drupal.t("This permission is inherited from the authenticated user role."))
+        .hide();
+
+      $('input[type=checkbox]', this).not('.rid-2, .rid-1').addClass('real-checkbox').each(function () {
+        $dummy.clone().insertAfter(this);
       });
 
-      // Helper function toggles all dummy checkboxes based on the checkboxes'
-      // state. If the "authenticated user" checkbox is checked, the checked
-      // and disabled checkboxes are shown, the real checkboxes otherwise.
-      var toggle = function () {
-        $(this).closest('tr')
-          .find('.real-checkbox')[this.checked ? 'hide' : 'show']().end()
-          .find('.dummy-checkbox')[this.checked ? 'show' : 'hide']();
-      };
+      // Initialize the authenticated user checkbox.
+      $('input[type=checkbox].rid-2', this)
+        .bind('click.permissions', self.toggle)
+        // .triggerHandler() cannot be used here, as it only affects the first
+        // element.
+        .each(self.toggle);
 
-      // Initialize the authenticated user checkbox.
-      $(':checkbox[name^="2["]', this)
-        .click(toggle)
-        .each(function () { toggle.call(this); });
-    }).addClass('permissions-processed');
+      // Re-insert the table into the DOM.
+      $ancestor[method]($table);
+    });
+  },
+
+  /**
+   * Toggles all dummy checkboxes based on the checkboxes' state.
+   *
+   * If the "authenticated user" checkbox is checked, the checked and disabled
+   * checkboxes are shown, the real checkboxes otherwise.
+   */
+  toggle: function () {
+    var authCheckbox = this, $row = $(this).closest('tr');
+    // jQuery performs too many layout calculations for .hide() and .show(),
+    // leading to a major page rendering lag on sites with many roles and
+    // permissions. Therefore, we toggle visibility directly.
+    $row.find('.real-checkbox').each(function () {
+      this.style.display = (authCheckbox.checked ? 'none' : '');
+    });
+    $row.find('.dummy-checkbox').each(function () {
+      this.style.display = (authCheckbox.checked ? '' : 'none');
+    });
   }
 };
 

Modified: branches/drupal7/profiles/minimal/minimal.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/profiles/minimal/minimal.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/profiles/minimal/minimal.info (original)
+++ branches/drupal7/profiles/minimal/minimal.info Thu Jul 28 00:20:26 2011
@@ -6,8 +6,8 @@
 dependencies[] = dblog
 files[] = minimal.profile
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/profiles/standard/standard.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/profiles/standard/standard.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/profiles/standard/standard.info (original)
+++ branches/drupal7/profiles/standard/standard.info Thu Jul 28 00:20:26 2011
@@ -25,8 +25,8 @@
 dependencies[] = rdf
 files[] = standard.profile
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/profiles/standard/standard.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/profiles/standard/standard.install?rev=2225&op=diff
==============================================================================
--- branches/drupal7/profiles/standard/standard.install (original)
+++ branches/drupal7/profiles/standard/standard.install Thu Jul 28 00:20:26 2011
@@ -327,7 +327,6 @@
     'field_name' => 'field_image',
     'type' => 'image',
     'cardinality' => 1,
-    'translatable' => TRUE,
     'locked' => FALSE,
     'indexes' => array('fid' => array('fid')),
     'settings' => array(

Modified: branches/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info (original)
+++ branches/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info (original)
+++ branches/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info Thu Jul 28 00:20:26 2011
@@ -8,8 +8,8 @@
 core = 6.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/profiles/testing/testing.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/profiles/testing/testing.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/profiles/testing/testing.info (original)
+++ branches/drupal7/profiles/testing/testing.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/scripts/generate-d6-content.sh
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/scripts/generate-d6-content.sh?rev=2225&op=diff
==============================================================================
--- branches/drupal7/scripts/generate-d6-content.sh (original)
+++ branches/drupal7/scripts/generate-d6-content.sh Thu Jul 28 00:20:26 2011
@@ -100,7 +100,7 @@
 for ($i = 0; $i < 24; $i++) {
   $uid = intval($i / 8) + 3;
   $user = user_load($uid);
-  $node = new stdClass;
+  $node = new stdClass();
   $node->uid = $uid;
   $node->type = $i < 12 ? 'page' : 'story';
   $node->sticky = 0;
@@ -148,7 +148,7 @@
 for ($i = 0; $i < 12; $i++) {
   $uid = intval($i / 4) + 3;
   $user = user_load($uid);
-  $node = new stdClass;
+  $node = new stdClass();
   $node->uid = $uid;
   $node->type = 'poll';
   $node->sticky = 0;
@@ -187,7 +187,7 @@
 
 $uid = 6;
 $user = user_load($uid);
-$node = new stdClass;
+$node = new stdClass();
 $node->uid = $uid;
 $node->type = 'broken';
 $node->sticky = 0;

Modified: branches/drupal7/scripts/run-tests.sh
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/scripts/run-tests.sh?rev=2225&op=diff
==============================================================================
--- branches/drupal7/scripts/run-tests.sh (original)
+++ branches/drupal7/scripts/run-tests.sh Thu Jul 28 00:20:26 2011
@@ -16,10 +16,10 @@
   exit;
 }
 
-if ($args['execute-batch']) {
+if ($args['execute-test']) {
   // Masquerade as Apache for running tests.
   simpletest_script_init("Apache");
-  simpletest_script_execute_batch();
+  simpletest_script_run_one_test($args['test-id'], $args['execute-test']);
 }
 else {
   // Run administrative functions as CLI.
@@ -67,8 +67,6 @@
   exit;
 }
 
-$test_list = simpletest_script_get_test_list();
-
 // Try to allocate unlimited time to run the tests.
 drupal_set_time_limit(0);
 
@@ -78,7 +76,7 @@
 $test_id = db_insert('simpletest_test_id')->useDefaults(array('test_id'))->execute();
 
 // Execute tests.
-simpletest_script_command($args['concurrency'], $test_id, implode(",", $test_list));
+simpletest_script_execute_batch($test_id, simpletest_script_get_test_list());
 
 // Retrieve the last database prefix used for testing and the last test class
 // that was run from. Use the information to read the lgo file in case any
@@ -99,6 +97,9 @@
 // Cleanup our test results.
 simpletest_clean_results_table($test_id);
 
+// Test complete, exit.
+exit;
+
 /**
  * Print help text.
  */
@@ -130,9 +131,7 @@
 
   --concurrency [num]
 
-              Run tests in parallel, up to [num] tests at a time. This requires
-              the Process Control Extension (PCNTL) to be compiled in PHP, not
-              supported under Windows.
+              Run tests in parallel, up to [num] tests at a time.
 
   --all       Run all available tests.
 
@@ -193,8 +192,8 @@
     'verbose' => FALSE,
     'test_names' => array(),
     // Used internally.
-    'test-id' => NULL,
-    'execute-batch' => FALSE,
+    'test-id' => 0,
+    'execute-test' => '',
     'xml' => '',
   );
 
@@ -234,10 +233,6 @@
   // Validate the concurrency argument
   if (!is_numeric($args['concurrency']) || $args['concurrency'] <= 0) {
     simpletest_script_print_error("--concurrency must be a strictly positive integer.");
-    exit;
-  }
-  elseif ($args['concurrency'] > 1 && !function_exists('pcntl_fork')) {
-    simpletest_script_print_error("Parallel test execution requires the Process Control extension to be compiled in PHP. See http://php.net/manual/en/intro.pcntl.php for more information.");
     exit;
   }
 
@@ -310,93 +305,96 @@
 /**
  * Execute a batch of tests.
  */
-function simpletest_script_execute_batch() {
+function simpletest_script_execute_batch($test_id, $test_classes) {
   global $args;
 
-  if (!isset($args['test-id'])) {
-    simpletest_script_print_error("--execute-batch should not be called interactively.");
-    exit;
-  }
-  if ($args['concurrency'] == 1) {
-    // Fallback to mono-threaded execution.
-    if (count($args['test_names']) > 1) {
-      foreach ($args['test_names'] as $test_class) {
-        // Execute each test in its separate Drupal environment.
-        simpletest_script_command(1, $args['test-id'], $test_class);
-      }
-      exit;
-    }
-    else {
-      // Execute an individual test.
-      $test_class = array_shift($args['test_names']);
-      drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
-      simpletest_script_run_one_test($args['test-id'], $test_class);
-      exit;
-    }
-  }
-  else {
-    // Multi-threaded execution.
-    $children = array();
-    while (!empty($args['test_names']) || !empty($children)) {
-      // Fork children safely since Drupal is not bootstrapped yet.
-      while (count($children) < $args['concurrency']) {
-        if (empty($args['test_names'])) break;
-
-        $child = array();
-        $child['test_class'] = $test_class = array_shift($args['test_names']);
-        $child['pid'] = pcntl_fork();
-        if (!$child['pid']) {
-          // This is the child process, bootstrap and execute the test.
-          drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
-          simpletest_script_run_one_test($args['test-id'], $test_class);
-          exit;
-        }
-        else {
-          // Register our new child.
-          $children[] = $child;
-        }
-      }
-
-      // Wait for children every 200ms.
-      usleep(200000);
-
-      // Check if some children finished.
-      foreach ($children as $cid => $child) {
-        if (pcntl_waitpid($child['pid'], $status, WUNTRACED | WNOHANG)) {
-          // This particular child exited.
-          unset($children[$cid]);
-        }
-      }
-    }
-    exit;
-  }
-}
-
-/**
- * Run a single test (assume a Drupal bootstrapped environment).
+  // Multi-process execution.
+  $children = array();
+  while (!empty($test_classes) || !empty($children)) {
+    while (count($children) < $args['concurrency']) {
+      if (empty($test_classes)) {
+        break;
+      }
+
+      // Fork a child process.
+      $test_class = array_shift($test_classes);
+      $command = simpletest_script_command($test_id, $test_class);
+      $process = proc_open($command, array(), $pipes, NULL, NULL, array('bypass_shell' => TRUE));
+
+      if (!is_resource($process)) {
+        echo "Unable to fork test process. Aborting.\n";
+        exit;
+      }
+
+      // Register our new child.
+      $children[] = array(
+        'process' => $process,
+        'class' => $test_class,
+        'pipes' => $pipes,
+      );
+    }
+
+    // Wait for children every 200ms.
+    usleep(200000);
+
+    // Check if some children finished.
+    foreach ($children as $cid => $child) {
+      $status = proc_get_status($child['process']);
+      if (empty($status['running'])) {
+        // The child exited, unregister it.
+        proc_close($child['process']);
+        if ($status['exitcode']) {
+          echo 'FATAL ' . $test_class . ': test runner returned a non-zero error code (' . $status['exitcode'] . ').' . "\n";
+        }
+        unset($children[$cid]);
+      }
+    }
+  }
+}
+
+/**
+ * Bootstrap Drupal and run a single test.
  */
 function simpletest_script_run_one_test($test_id, $test_class) {
-  $test = new $test_class($test_id);
-  $test->run();
-  $info = $test->getInfo();
-
-  $status = ((isset($test->results['#fail']) && $test->results['#fail'] > 0)
-           || (isset($test->results['#exception']) && $test->results['#exception'] > 0) ? 'fail' : 'pass');
-  simpletest_script_print($info['name'] . ' ' . _simpletest_format_summary_line($test->results) . "\n", simpletest_script_color_code($status));
-}
-
-/**
- * Execute a command to run batch of tests in separate process.
- */
-function simpletest_script_command($concurrency, $test_id, $tests) {
+  try {
+    // Bootstrap Drupal.
+    drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+
+    $test = new $test_class($test_id);
+    $test->run();
+    $info = $test->getInfo();
+
+    $had_fails = (isset($test->results['#fail']) && $test->results['#fail'] > 0);
+    $had_exceptions = (isset($test->results['#exception']) && $test->results['#exception'] > 0);
+    $status = ($had_fails || $had_exceptions ? 'fail' : 'pass');
+    simpletest_script_print($info['name'] . ' ' . _simpletest_format_summary_line($test->results) . "\n", simpletest_script_color_code($status));
+
+    // Finished, kill this runner.
+    exit(0);
+  }
+  catch (Exception $e) {
+    echo (string) $e;
+    exit(1);
+  }
+}
+
+/**
+ * Return a command used to run a test in a separate process.
+ *
+ * @param $test_id
+ *  The current test ID.
+ * @param $test_class
+ *  The name of the test class to run.
+ */
+function simpletest_script_command($test_id, $test_class) {
   global $args, $php;
 
-  $command = "$php ./scripts/{$args['script']} --url {$args['url']}";
+  $command = escapeshellarg($php) . ' ' . escapeshellarg('./scripts/' . $args['script']) . ' --url ' . escapeshellarg($args['url']);
   if ($args['color']) {
     $command .= ' --color';
   }
-  $command .= " --php " . escapeshellarg($php) . " --concurrency $concurrency --test-id $test_id --execute-batch $tests";
-  passthru($command);
+  $command .= " --php " . escapeshellarg($php) . " --test-id $test_id --execute-test $test_class";
+  return $command;
 }
 
 /**

Modified: branches/drupal7/themes/bartik/bartik.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/themes/bartik/bartik.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/themes/bartik/bartik.info (original)
+++ branches/drupal7/themes/bartik/bartik.info Thu Jul 28 00:20:26 2011
@@ -34,8 +34,8 @@
 settings[shortcut_module_link] = 0
 
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/themes/garland/garland.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/themes/garland/garland.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/themes/garland/garland.info (original)
+++ branches/drupal7/themes/garland/garland.info Thu Jul 28 00:20:26 2011
@@ -7,8 +7,8 @@
 stylesheets[print][] = print.css
 settings[garland_width] = fluid
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/themes/seven/seven.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/themes/seven/seven.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/themes/seven/seven.info (original)
+++ branches/drupal7/themes/seven/seven.info Thu Jul 28 00:20:26 2011
@@ -13,8 +13,8 @@
 regions[sidebar_first] = First sidebar
 regions_hidden[] = sidebar_first
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/themes/stark/stark.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/themes/stark/stark.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/themes/stark/stark.info (original)
+++ branches/drupal7/themes/stark/stark.info Thu Jul 28 00:20:26 2011
@@ -5,8 +5,8 @@
 core = 7.x
 stylesheets[all][] = layout.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/themes/tests/test_theme/test_theme.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/themes/tests/test_theme/test_theme.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/themes/tests/test_theme/test_theme.info (original)
+++ branches/drupal7/themes/tests/test_theme/test_theme.info Thu Jul 28 00:20:26 2011
@@ -15,8 +15,8 @@
 ; file within the theme folder.
 stylesheets[all][] = system.base.css
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/themes/tests/update_test_basetheme/update_test_basetheme.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/themes/tests/update_test_basetheme/update_test_basetheme.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/themes/tests/update_test_basetheme/update_test_basetheme.info (original)
+++ branches/drupal7/themes/tests/update_test_basetheme/update_test_basetheme.info Thu Jul 28 00:20:26 2011
@@ -3,8 +3,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 

Modified: branches/drupal7/themes/tests/update_test_subtheme/update_test_subtheme.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/drupal7/themes/tests/update_test_subtheme/update_test_subtheme.info?rev=2225&op=diff
==============================================================================
--- branches/drupal7/themes/tests/update_test_subtheme/update_test_subtheme.info (original)
+++ branches/drupal7/themes/tests/update_test_subtheme/update_test_subtheme.info Thu Jul 28 00:20:26 2011
@@ -4,8 +4,8 @@
 base theme = update_test_basetheme
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-06-30
-version = "7.4"
+; Information added by drupal.org packaging script on 2011-07-27
+version = "7.6"
 project = "drupal"
-datestamp = "1309397516"
+datestamp = "1311798715"
 




More information about the Pkg-drupal-commits mailing list