? style.patch
? styles-override.patch
? styles.kpf
? styles.patch
? sites/styles
Index: includes/bootstrap.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v
retrieving revision 1.192
diff -u -p -r1.192 bootstrap.inc
--- includes/bootstrap.inc	10 Sep 2007 12:19:11 -0000	1.192
+++ includes/bootstrap.inc	5 Oct 2007 14:14:20 -0000
@@ -996,6 +996,7 @@ function drupal_maintenance_theme() {
   unicode_check();
   drupal_add_css(drupal_get_path('module', 'system') .'/defaults.css', 'module');
   drupal_add_css(drupal_get_path('module', 'system') .'/system.css', 'module');
+  drupal_add_css(drupal_get_path('module', 'system') .'/system-menus.css', 'module');
   $theme = '';
 
   // Special case registry of theme functions used by the installer
Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.694
diff -u -p -r1.694 common.inc
--- includes/common.inc	4 Oct 2007 19:20:39 -0000	1.694
+++ includes/common.inc	5 Oct 2007 14:14:20 -0000
@@ -1495,10 +1495,20 @@ function drupal_add_link($attributes) {
 /**
  * Adds a CSS file to the stylesheet queue.
  *
+ * Themes may replace module-defined CSS files by adding a stylesheet with the
+ * same filename. For example, themes/garland/system-menus.css would replace
+ * modules/system/system-menus.css. This allows themes to override complete
+ * CSS files, rather than specific selectors, when necessary.
+ *
  * @param $path
  *   (optional) The path to the CSS file relative to the base_path(), e.g.,
  *   /modules/devel/devel.css.
  *
+ *   Modules should always prefix the names of their CSS files with the module
+ *   name, for example: system-menus.css rather than simply menus.css. Themes
+ *   can override module-supplied CSS files based on their filenames, and this
+ *   prefixing helps prevent confusing name collisions for theme developers.
+ *
  *   If the direction of the current language is right-to-left (Hebrew,
  *   Arabic, etc.), the function will also look for an RTL CSS file and append
  *   it to the list. The name of this file should have an '-rtl.css' suffix.
@@ -1506,6 +1516,10 @@ function drupal_add_link($attributes) {
  *   file added to the list, if exists in the same directory. This CSS file
  *   should contain overrides for properties which should be reversed or
  *   otherwise different in a right-to-left display.
+ *
+ *   If the original CSS file is being overridden by a theme, the theme is
+ *   responsible for supplying an accompanying RTL CSS file to replace the
+ *   module's.
  * @param $type
  *   (optional) The type of stylesheet that is being added. Types are: module
  *   or theme.
@@ -1548,6 +1562,30 @@ function drupal_add_css($path = NULL, $t
     if (!isset($css[$media])) {
       $css[$media] = array('module' => array(), 'theme' => array());
     }
+
+    // If a theme is adding the current stylesheet, check for any existing CSS files
+    // with the same name. If they exist, remove them and allow the theme's own CSS
+    // file to replace it.
+    if ($type == 'theme') {
+      foreach ($css[$media]['module'] as $old_path => $old_preprocess) {
+        // Match by style sheet name.
+        if (basename($path) == basename($old_path)) {
+          unset($css[$media]['module'][$old_path]);
+
+          // If the current language is RTL and the CSS file had an RTL variant,
+          // pull out the original. The theme must provide it's own RTL style.
+          if (defined('LANGUAGE_RTL') && $language->direction == LANGUAGE_RTL) {
+            $rtl_old_path = str_replace('.css', '-rtl.css', $old_path);
+            if (isset($css[$media]['module'][$rtl_old_path])) {
+              unset($css[$media]['module'][$rtl_old_path]);
+            }
+          }
+          // Set the preprocess state of the current module, then exit the search loop.
+          $preprocess = $old_preprocess;
+          break;
+        }
+      }
+    }
     $css[$media][$type][$path] = $preprocess;
 
     // If the current language is RTL, add the CSS file with RTL overrides.
Index: modules/system/system-menus-rtl.css
===================================================================
RCS file: modules/system/system-menus-rtl.css
diff -N modules/system/system-menus-rtl.css
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/system/system-menus-rtl.css	5 Oct 2007 14:14:20 -0000
@@ -0,0 +1,18 @@
+/* $Id$ */
+
+ul.menu {
+  text-align:right;
+}
+ul.menu li {
+  margin: 0 0.5em 0 0;
+}
+li.expanded {
+  padding: 0.2em 0 0 0.5em;
+}
+li.collapsed {
+  list-style-image: url(../../misc/menu-collapsed-rtl.png);
+  padding: 0.2em 0 0 0.5em;
+}
+li.leaf {
+  padding: 0.2em 0 0 0.5em;
+}
Index: modules/system/system-menus.css
===================================================================
RCS file: modules/system/system-menus.css
diff -N modules/system/system-menus.css
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/system/system-menus.css	5 Oct 2007 14:14:20 -0000
@@ -0,0 +1,50 @@
+/* $Id$ */
+
+ul.menu {
+  list-style: none;
+  border: none;
+  text-align:left; /* LTR */
+}
+ul.menu li {
+  margin: 0 0 0 0.5em; /* LTR */
+}
+li.expanded {
+  list-style-type: circle;
+  list-style-image: url(../../misc/menu-expanded.png);
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li.collapsed {
+  list-style-type: disc;
+  list-style-image: url(../../misc/menu-collapsed.png); /* LTR */
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li.leaf {
+  list-style-type: square;
+  list-style-image: url(../../misc/menu-leaf.png);
+  padding: 0.2em 0.5em 0 0; /* LTR */
+  margin: 0;
+}
+li a.active {
+  color: #000;
+}
+td.menu-disabled {
+  background: #ccc;
+}
+ul.links {
+  margin: 0;
+  padding: 0;
+}
+ul.links.inline {
+  display: inline;
+}
+ul.links li {
+  display: inline;
+  list-style-type: none;
+  padding: 0 0.5em;
+}
+.block ul {
+  margin: 0;
+  padding: 0 0 0.25em 1em; /* LTR */
+}
Index: modules/system/system-rtl.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system-rtl.css,v
retrieving revision 1.4
diff -u -p -r1.4 system-rtl.css
--- modules/system/system-rtl.css	5 Oct 2007 09:35:09 -0000	1.4
+++ modules/system/system-rtl.css	5 Oct 2007 14:14:20 -0000
@@ -21,22 +21,7 @@ dl.multiselect dt, dl.multiselect dd {
   float: right;
   margin: 0 0 0 1em;
 }
-ul.menu {
-  text-align:right;
-}
-ul.menu li {
-  margin: 0 0.5em 0 0;
-}
-li.expanded {
-  padding: 0.2em 0 0 0.5em;
-}
-li.collapsed {
-  list-style-image: url(../../misc/menu-collapsed-rtl.png);
-  padding: 0.2em 0 0 0.5em;
-}
-li.leaf {
-  padding: 0.2em 0 0 0.5em;
-}
+
 .block ul {
   padding: 0 1em 0.25em 0;
 }
Index: modules/system/system.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.css,v
retrieving revision 1.35
diff -u -p -r1.35 system.css
--- modules/system/system.css	5 Oct 2007 09:35:09 -0000	1.35
+++ modules/system/system.css	5 Oct 2007 14:14:20 -0000
@@ -182,58 +182,6 @@ dl.multiselect .form-item {
 }
 
 /*
-** Menus
-*/
-ul.menu {
-  list-style: none;
-  border: none;
-  text-align:left; /* LTR */
-}
-ul.menu li {
-  margin: 0 0 0 0.5em; /* LTR */
-}
-li.expanded {
-  list-style-type: circle;
-  list-style-image: url(../../misc/menu-expanded.png);
-  padding: 0.2em 0.5em 0 0; /* LTR */
-  margin: 0;
-}
-li.collapsed {
-  list-style-type: disc;
-  list-style-image: url(../../misc/menu-collapsed.png); /* LTR */
-  padding: 0.2em 0.5em 0 0; /* LTR */
-  margin: 0;
-}
-li.leaf {
-  list-style-type: square;
-  list-style-image: url(../../misc/menu-leaf.png);
-  padding: 0.2em 0.5em 0 0; /* LTR */
-  margin: 0;
-}
-li a.active {
-  color: #000;
-}
-td.menu-disabled {
-  background: #ccc;
-}
-ul.links {
-  margin: 0;
-  padding: 0;
-}
-ul.links.inline {
-  display: inline;
-}
-ul.links li {
-  display: inline;
-  list-style-type: none;
-  padding: 0 0.5em;
-}
-.block ul {
-  margin: 0;
-  padding: 0 0 0.25em 1em; /* LTR */
-}
-
-/*
 ** Tab navigation
 */
 ul.primary {
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.536
diff -u -p -r1.536 system.module
--- modules/system/system.module	5 Oct 2007 09:35:09 -0000	1.536
+++ modules/system/system.module	5 Oct 2007 14:14:21 -0000
@@ -451,6 +451,7 @@ function system_init() {
   // Add the CSS for this module.
   drupal_add_css(drupal_get_path('module', 'system') .'/defaults.css', 'module');
   drupal_add_css(drupal_get_path('module', 'system') .'/system.css', 'module');
+  drupal_add_css(drupal_get_path('module', 'system') .'/system-menus.css', 'module');
 }
 
 /**
