? e_all.patch
? e_all_8.patch
? notices.patch
? tab.patch
? x.patch
? sites/localhost
Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.613
diff -u -p -r1.613 common.inc
--- includes/common.inc	24 Jan 2007 14:48:35 -0000	1.613
+++ includes/common.inc	28 Jan 2007 23:38:52 -0000
@@ -1450,6 +1450,8 @@ function drupal_get_css($css = NULL) {
   if (!isset($css)) {
     $css = drupal_add_css();
   }
+  $no_module_preprocess = '';
+  $no_theme_preprocess = '';
 
   $preprocess_css = variable_get('preprocess_css', FALSE);
   $directory = file_directory_path();
@@ -2118,6 +2120,7 @@ function drupal_render(&$elements) {
   if (!isset($elements['#sorted'])) {
     uasort($elements, "_element_sort");
   }
+  $elements += array('#title' => NULL, '#description' => NULL);
   if (!isset($elements['#children'])) {
     $children = element_children($elements);
     /* Render all the children that use a theme function */
Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.175
diff -u -p -r1.175 form.inc
--- includes/form.inc	23 Jan 2007 19:17:55 -0000	1.175
+++ includes/form.inc	28 Jan 2007 23:38:53 -0000
@@ -264,7 +264,9 @@ function drupal_process_form($form_id, &
   // We've finished calling functions that alter the global values, so we can
   // restore the ones that were there before this function was called.
   list($form_values, $form_submitted, $form_button_counter) = array_pop($saved_globals);
-  return $redirect;
+  if (isset($redirect)) {
+    return $redirect;
+  }
 }
 
 /**
@@ -305,9 +307,7 @@ function drupal_prepare_form($form_id, &
   // If $base is set, it is used in place of $form_id when constructing validation,
   // submission, and theming functions. Useful for mapping many similar or duplicate
   // forms with different $form_ids to the same processing functions.
-  if (isset($form['#base'])) {
-    $base = $form['#base'];
-  }
+  $base = isset($form['#base']) ? $form['#base'] : '';
 
   // Add a token, based on either #token or form_id, to any form displayed to
   // authenticated users. This ensures that any submitted form was actually
@@ -449,9 +449,7 @@ function drupal_submit_form($form_id, $f
  */
 function drupal_render_form($form_id, &$form) {
   // Don't override #theme if someone already set it.
-  if (isset($form['#base'])) {
-    $base = $form['#base'];
-  }
+  $base = isset($form['#base']) ? $form['#base'] : '';
 
   if (!isset($form['#theme'])) {
     if (theme_get_function($form_id)) {
@@ -755,7 +753,7 @@ function form_builder($form_id, $form) {
   if (isset($form['#process']) && !$form['#processed']) {
     foreach ($form['#process'] as $process => $args) {
       if (function_exists($process)) {
-        $args = array_merge(array($form), array($edit), $args);
+        $args = array_merge(array($form), array(isset($edit) ? $edit : NULL), $args);
         $form = call_user_func_array($process, $args);
       }
     }
@@ -928,7 +926,7 @@ function theme_select($element) {
   $select = '';
   $size = $element['#size'] ? ' size="' . $element['#size'] . '"' : '';
   _form_set_class($element, array('form-select'));
-  $multiple = isset($element['#multiple']) && $element['#multiple'];
+  $multiple = $element['#multiple'];
   return theme('form_element', $element, '<select name="'. $element['#name'] .''. ($multiple ? '[]' : '') .'"'. ($multiple ? ' multiple="multiple" ' : '') . drupal_attributes($element['#attributes']) .' id="'. $element['#id'] .'" '. $size .'>'. form_select_options($element) .'</select>');
 }
 
@@ -1078,7 +1076,7 @@ function theme_radios($element) {
   if (isset($element['#attributes']['class'])) {
     $class .= ' '. $element['#attributes']['class'];
   }
-  $element['#children'] = '<div class="'. $class .'">'. $element['#children'] .'</div>';
+  $element['#children'] = '<div class="'. $class .'">'. (!empty($element['#children']) ? $element['#children'] : '') .'</div>';
   if ($element['#title'] || $element['#description']) {
     unset($element['#id']);
     return theme('form_element', $element, $element['#children']);
@@ -1231,12 +1229,18 @@ function map_month($month) {
  */
 function checkboxes_value(&$form) {
   $value = array();
-  foreach ((array)$form['#default_value'] as $key) {
+  $form += array('#default_value' => array());
+  foreach ($form['#default_value'] as $key) {
     $value[$key] = 1;
   }
   $form['#value'] = $value;
 }
 
+function password_confirm_value(&$form) {
+  $form += array('#default_value' => array());
+  $form['#value'] = $form['#default_value'] + array('pass1' => '', 'pass2' => '');
+}
+
 /**
  * If no default value is set for weight select boxes, use 0.
  */
@@ -1274,7 +1278,7 @@ function expand_radios($element) {
  *   A themed HTML string representing the form item.
  */
 function theme_item($element) {
-  return theme('form_element', $element, $element['#value'] . $element['#children']);
+  return theme('form_element', $element, $element['#value'] . (!empty($element['#children']) ? $element['#children'] : ''));
 }
 
 /**
@@ -1317,7 +1321,7 @@ function theme_checkboxes($element) {
   if (isset($element['#attributes']['class'])) {
     $class .= ' '. $element['#attributes']['class'];
   }
-  $element['#children'] = '<div class="'. $class .'">'. $element['#children'] .'</div>';
+  $element['#children'] = '<div class="'. $class .'">'. (!empty($element['#children']) ? $element['#children'] : '') .'</div>';
   if ($element['#title'] || $element['#description']) {
     unset($element['#id']);
     return theme('form_element', $element, $element['#children']);
@@ -1491,6 +1495,7 @@ function process_weight($element) {
   $element['#options'] = $weights;
   $element['#type'] = 'select';
   $element['#is_weight'] = TRUE;
+  $element += _element_info('select');
   return $element;
 }
 
Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.149
diff -u -p -r1.149 menu.inc
--- includes/menu.inc	25 Jan 2007 22:14:06 -0000	1.149
+++ includes/menu.inc	28 Jan 2007 23:38:54 -0000
@@ -356,7 +356,7 @@ function _menu_tree($result = NULL, $dep
       list($remnant, $menu) = _menu_tree($result, $item->depth, $menu_link);
       $tree .= theme('menu_tree', $link, $menu);
       $link = $remnant;
-      $remnant = '';
+      $remnant = array('link' => '', 'has_children' => FALSE);
     }
     elseif ($item->depth == $depth) {
       $tree .= theme('menu_link', $link);
@@ -496,6 +496,7 @@ function menu_rebuild() {
       '_has_children' => 0,
       'title' => '',
       'weight' => 0,
+      'type' => MENU_NORMAL_ITEM,
     );
     $sort[$path] = ($item['_visible'] ? $depth : $number_parts) . sprintf('%05d', $item['weight']) . $item['title'];
     unset($item);
@@ -527,11 +528,6 @@ function menu_rebuild() {
     if (!isset($item['map callback']) && isset($item['map arguments'])) {
       $item['map callback'] = 'menu_map';
     }
-    foreach (array('access', 'map', 'page') as $type) {
-      if (isset($item["$type callback"]) && !isset($item["$type arguments"])) {
-        $item["$type arguments"] = array();
-      }
-    }
     if (is_bool($item['access callback'])) {
       $item['access callback'] = intval($item['access callback']);
     }
@@ -548,7 +544,15 @@ function menu_rebuild() {
       $vancode = '';
       $link = '';
     }
-    db_query("INSERT INTO {menu} (mid, pid, path, access_callback, access_arguments, page_callback, page_arguments, map_callback, map_arguments, fit, number_parts, vancode, menu_link, visible, parents, depth, has_children) VALUES (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, '%s', %d, %d)", $item['_mid'], $item['_pid'], $path, $item['access callback'], serialize($item['access arguments']), $item['page callback'], serialize($item['page arguments']), $item['map callback'], serialize($item['map arguments']), $item['_fit'], $item['_number_parts'], $vancode .'+', $link, $item['_visible'], $item['_parents'], $item['_depth'], $item['_has_children']);
+    $insert_item = $item + array(
+      'access arguments' => array(),
+      'access callback' => '',
+      'page arguments' => array(),
+      'page callback' => '',
+      'map arguments' => array(),
+      'map callback' => '',
+    );
+    db_query("INSERT INTO {menu} (mid, pid, path, access_callback, access_arguments, page_callback, page_arguments, map_callback, map_arguments, fit, number_parts, vancode, menu_link, visible, parents, depth, has_children) VALUES (%d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, '%s', %d, %d)", $insert_item['_mid'], $insert_item['_pid'], $path, $insert_item['access callback'], serialize($insert_item['access arguments']), $insert_item['page callback'], serialize($insert_item['page arguments']), $insert_item['map callback'], serialize($insert_item['map arguments']), $insert_item['_fit'], $insert_item['_number_parts'], $vancode .'+', $link, $insert_item['_visible'], $insert_item['_parents'], $insert_item['_depth'], $insert_item['_has_children']);
     // $item needs to be unset because of the reference above.
     unset($item);
   }
Index: includes/tablesort.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/tablesort.inc,v
retrieving revision 1.43
diff -u -p -r1.43 tablesort.inc
--- includes/tablesort.inc	1 Dec 2006 08:50:33 -0000	1.43
+++ includes/tablesort.inc	28 Jan 2007 23:38:54 -0000
@@ -107,7 +107,7 @@ function tablesort_header($cell, $header
  *   A properly formatted cell, ready for _theme_table_cell().
  */
 function tablesort_cell($cell, $header, $ts, $i) {
-  if (isset($header[$i]) && $header[$i]['data'] == $ts['name'] && $header[$i]['field']) {
+  if (isset($header[$i]['data']) && $header[$i]['data'] == $ts['name'] && !empty($header[$i]['field'])) {
     if (is_array($cell)) {
       if (isset($cell['class'])) {
         $cell['class'] .= ' active';
@@ -162,6 +162,7 @@ function tablesort_get_order($headers) {
   else {
     // The first column specified is initial 'order by' field unless otherwise specified
     if (is_array($headers[0])) {
+      $headers[0] += array('data' => NULL, 'field' => NULL);
       return array('name' => $headers[0]['data'], 'sql' => $headers[0]['field']);
     }
     else {
Index: includes/theme.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/theme.inc,v
retrieving revision 1.339
diff -u -p -r1.339 theme.inc
--- includes/theme.inc	25 Jan 2007 22:14:06 -0000	1.339
+++ includes/theme.inc	28 Jan 2007 23:38:55 -0000
@@ -611,7 +611,7 @@ function theme_image($path, $alt = '', $
   if (!$getsize || (is_file($path) && (list($width, $height, $type, $image_attributes) = @getimagesize($path)))) {
     $attributes = drupal_attributes($attributes);
     $url = (url($path) == $path) ? $path : (base_path() . $path);
-    return '<img src="'. check_url($url) .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $image_attributes . $attributes .' />';
+    return '<img src="'. check_url($url) .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. (isset($image_attributes) ? $image_attributes : '') . $attributes .' />';
   }
 }
 
@@ -1089,7 +1089,7 @@ function _theme_table_cell($cell, $heade
   $attributes = '';
 
   if (is_array($cell)) {
-    $data = $cell['data'];
+    $data = isset($cell['data']) ? $cell['data'] : '';
     $header |= isset($cell['header']);
     unset($cell['data']);
     unset($cell['header']);
Index: modules/aggregator/aggregator.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.module,v
retrieving revision 1.325
diff -u -p -r1.325 aggregator.module
--- modules/aggregator/aggregator.module	24 Jan 2007 14:48:36 -0000	1.325
+++ modules/aggregator/aggregator.module	28 Jan 2007 23:38:56 -0000
@@ -300,7 +300,9 @@ function aggregator_block($op = 'list', 
         $block['content'] = theme('item_list', $items) . $read_more;
       }
     }
-    return $block;
+    if (isset($block)) {
+      return $block;
+    }
   }
 }
 
Index: modules/block/block.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.module,v
retrieving revision 1.250
diff -u -p -r1.250 block.module
--- modules/block/block.module	25 Jan 2007 22:14:06 -0000	1.250
+++ modules/block/block.module	28 Jan 2007 23:38:57 -0000
@@ -160,7 +160,7 @@ function _block_rehash() {
         $block['module'] = $module;
         $block['delta']  = $delta;
         // If previously written to database, load values.
-        if ($old_blocks[$module][$delta]) {
+        if (!empty($old_blocks[$module][$delta])) {
           $block['status'] = $old_blocks[$module][$delta]->status;
           $block['weight'] = $old_blocks[$module][$delta]->weight;
           $block['region'] = $old_blocks[$module][$delta]->region;
@@ -310,7 +310,7 @@ function theme_block_admin_display($form
   foreach (element_children($form) as $i) {
     $block = &$form[$i];
     // Only take form elements that are blocks.
-    if (is_array($block['info'])) {
+    if (isset($block['info'])) {
       // Fetch values
       $region = $block['region']['#default_value'];
       $status = $region != BLOCK_REGION_NONE;
@@ -337,7 +337,7 @@ function theme_block_admin_display($form
         $row[] = drupal_render($block['throttle']);
       }
       $row[] = drupal_render($block['configure']);
-      $row[] = $block['delete'] ? drupal_render($block['delete']) : '';
+      $row[] = !empty($block['delete']) ? drupal_render($block['delete']) : '';
       $rows[] = $row;
     }
   }
@@ -624,7 +624,7 @@ function block_user($type, $edit, &$user
           }
         }
 
-        if ($return) {
+        if (!empty($return)) {
           return $form;
         }
       }
Index: modules/contact/contact.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.module,v
retrieving revision 1.75
diff -u -p -r1.75 contact.module
--- modules/contact/contact.module	24 Jan 2007 14:48:36 -0000	1.75
+++ modules/contact/contact.module	28 Jan 2007 23:38:58 -0000
@@ -116,7 +116,7 @@ function contact_user($type, &$edit, &$u
     );
     $form['contact']['contact'] = array('#type' => 'checkbox',
       '#title' => t('Personal contact form'),
-      '#default_value' => $edit['contact'],
+      '#default_value' => !empty($edit['contact']) ? $edit['contact'] : FALSE,
       '#description' => t('Allow other users to contact you by e-mail via <a href="@url">your personal contact form</a>. Note that while your e-mail address is not made public to other members of the community, privileged users such as site administrators are able to contact you even if you choose not to enable this feature.', array('@url' => url("user/$user->uid/contact"))),
     );
     return $form;
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.779
diff -u -p -r1.779 node.module
--- modules/node/node.module	25 Jan 2007 22:14:06 -0000	1.779
+++ modules/node/node.module	28 Jan 2007 23:39:01 -0000
@@ -1393,6 +1393,7 @@ function node_filter_form() {
  * Theme node administration filter form.
  */
 function theme_node_filter_form($form) {
+  $output = '';
   $output .= '<div id="node-admin-filter">';
   $output .= drupal_render($form['filters']);
   $output .= '</div>';
@@ -1404,14 +1405,15 @@ function theme_node_filter_form($form) {
  * Theme node administration filter selector.
  */
 function theme_node_filters($form) {
+  $output = '';
   $output .= '<ul class="clear-block">';
-  if (sizeof($form['current'])) {
+  if (!empty($form['current'])) {
     foreach (element_children($form['current']) as $key) {
       $output .= '<li>'. drupal_render($form['current'][$key]) .'</li>';
     }
   }
 
-  $output .= '<li><dl class="multiselect">'. (sizeof($form['current']) ? '<dt><em>'. t('and') .'</em> '. t('where') .'</dt>' : '') .'<dd class="a">';
+  $output .= '<li><dl class="multiselect">'. (!empty($form['current']) ? '<dt><em>'. t('and') .'</em> '. t('where') .'</dt>' : '') .'<dd class="a">';
   foreach (element_children($form['filter']) as $key) {
     $output .= drupal_render($form['filter'][$key]);
   }
@@ -1495,7 +1497,7 @@ function node_admin_nodes_validate($form
 function node_admin_content() {
   $output = drupal_get_form('node_filter_form');
 
-  if ($_POST['operation'] == 'delete' && $_POST['nodes']) {
+  if (isset($_POST['operation']) && ($_POST['operation'] == 'delete') && $_POST['nodes']) {
     return drupal_get_form('node_multiple_delete_confirm');
   }
   // Call the form first, to allow for the form_values array to be populated.
@@ -1542,6 +1544,7 @@ function node_admin_nodes() {
 function theme_node_admin_nodes($form) {
   // Overview table:
   $header = array(theme('table_select_header_cell'), t('Title'), t('Type'), t('Author'), t('Status'), t('Operations'));
+  $output = '';
 
   $output .= drupal_render($form['options']);
   if (isset($form['title']) && is_array($form['title'])) {
Index: modules/profile/profile.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/profile/profile.module,v
retrieving revision 1.191
diff -u -p -r1.191 profile.module
--- modules/profile/profile.module	24 Jan 2007 14:48:36 -0000	1.191
+++ modules/profile/profile.module	28 Jan 2007 23:39:01 -0000
@@ -596,6 +596,7 @@ function profile_view_profile($user) {
     $result = db_query('SELECT * FROM {profile_fields} WHERE visibility != %d AND visibility != %d ORDER BY category, weight', PROFILE_PRIVATE, PROFILE_HIDDEN);
   }
 
+  $fields = array();
   while ($field = db_fetch_object($result)) {
     if ($value = profile_view_field($user, $field)) {
       $title = ($field->type != 'checkbox') ? check_plain($field->title) : NULL;
@@ -626,6 +627,7 @@ function _profile_form_explanation($fiel
 function profile_form_profile($edit, $user, $category, $register = FALSE) {
   $result = _profile_get_fields($category, $register);
   $w = 0;
+  $fields = array();
   while ($field = db_fetch_object($result)) {
     $category = $field->category;
     if (!isset($fields[$category])) {
Index: modules/statistics/statistics.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/statistics/statistics.module,v
retrieving revision 1.250
diff -u -p -r1.250 statistics.module
--- modules/statistics/statistics.module	24 Jan 2007 14:48:36 -0000	1.250
+++ modules/statistics/statistics.module	28 Jan 2007 23:39:02 -0000
@@ -452,8 +452,9 @@ function statistics_block($op = 'list', 
     case 'list':
       if (variable_get('statistics_count_content_views', 0)) {
         $blocks[0]['info'] = t('Popular content');
+        return $blocks;
       }
-      return $blocks;
+      break;
 
     case 'configure':
       // Popular content block settings
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.445
diff -u -p -r1.445 system.module
--- modules/system/system.module	25 Jan 2007 22:14:06 -0000	1.445
+++ modules/system/system.module	28 Jan 2007 23:39:07 -0000
@@ -62,23 +62,23 @@ function system_elements() {
   $type['submit'] = array('#input' => TRUE, '#name' => 'op', '#button_type' => 'submit', '#executes_submit_callback' => TRUE);
   $type['button'] = array('#input' => TRUE, '#name' => 'op', '#button_type' => 'submit', '#executes_submit_callback' => FALSE);
   $type['textfield'] = array('#input' => TRUE, '#size' => 60, '#maxlength' => 128, '#autocomplete_path' => FALSE);
-  $type['password'] = array('#input' => TRUE, '#size' => 60);
+  $type['password'] = array('#input' => TRUE, '#size' => 60, '#maxlength' => 128);
   $type['password_confirm'] = array('#input' => TRUE, '#process' => array('expand_password_confirm' => array()));
-  $type['textarea'] = array('#input' => TRUE, '#cols' => 60, '#rows' => 5);
+  $type['textarea'] = array('#input' => TRUE, '#cols' => 60, '#rows' => 5, '#resizable' => TRUE);
   $type['radios'] = array('#input' => TRUE, '#process' => array('expand_radios' => array()));
   $type['radio'] = array('#input' => TRUE);
   $type['checkboxes'] = array('#input' => TRUE, '#process' => array('expand_checkboxes' => array()), '#tree' => TRUE);
-  $type['select'] = array('#input' => TRUE);
+  $type['select'] = array('#input' => TRUE, '#size' => 0, '#multiple' => FALSE);
   $type['weight'] = array('#input' => TRUE, '#delta' => 10, '#default_value' => 0, '#process' => array('process_weight' => array()));
   $type['date'] = array('#input' => TRUE, '#process' => array('expand_date' => array()), '#validate' => array('date_validate' => array()));
   $type['file'] = array('#input' => TRUE, '#size' => 60);
 
   // Form structure
-  $type['item'] = array();
+  $type['item'] = array('#value' => '');
   $type['hidden'] = array('#input' => TRUE);
   $type['value'] = array('#input' => TRUE);
   $type['markup'] = array('#prefix' => '', '#suffix' => '');
-  $type['fieldset'] = array('#collapsible' => FALSE, '#collapsed' => FALSE);
+  $type['fieldset'] = array('#collapsible' => FALSE, '#collapsed' => FALSE, '#value' => NULL);
   $type['token'] = array('#input' => TRUE);
   return $type;
 }
@@ -949,7 +949,7 @@ function system_theme_data() {
       $style->template = isset($theme->template) ? $theme->template : FALSE;
       $style->name = basename(dirname($style->filename));
       $style->owner = $theme->filename;
-      $style->prefix = $theme->template ? $theme->prefix : $theme->name;
+      $style->prefix = !empty($theme->template) ? $theme->prefix : $theme->name;
       // do not double-insert styles with theme files in their directory
       if (array_key_exists($style->name, $themes)) {
         continue;
@@ -1160,7 +1160,7 @@ function system_themes() {
 function theme_system_themes($form) {
   foreach (element_children($form) as $key) {
     $row = array();
-    if (is_array($form[$key]['description'])) {
+    if (isset($form[$key]['description']) && is_array($form[$key]['description'])) {
       $row[] = drupal_render($form[$key]['screenshot']);
       $row[] = drupal_render($form[$key]['description']);
       $row[] = array('data' => drupal_render($form['status'][$key]), 'align' => 'center');
@@ -1244,6 +1244,11 @@ function system_modules($form_values = N
   $disabled = array();
   // Traverse the files retrieved and build the form.
   foreach ($files as $filename => $file) {
+    $file->info += array(
+      'dependents' => array(),
+      'version' => NULL,
+      'throttle' => NULL,
+    );
     $form['name'][$filename] = array('#value' => $file->info['name']);
     $form['version'][$filename] = array('#value' => $file->info['version']);
     $form['description'][$filename] = array('#value' => t($file->info['description']));
@@ -1286,16 +1291,14 @@ function system_modules($form_values = N
 
     // Mark dependents disabled so user can not remove modules being depended on.
     $dependents = array();
-    if (is_array($file->info['dependents'])) {
-      foreach ($file->info['dependents'] as $dependent) {
-        if ($files[$dependent]->status == 1) {
-          $dependents[] = $files[$dependent]->info['name'] . t(' (<span class="admin-enabled">enabled</span>)');
-          $disabled[] = $filename;
-          $form['disabled_modules']['#value'][$filename] = TRUE;
-        }
-        else {
-          $dependents[] = $files[$dependent]->info['name'] . t(' (<span class="admin-disabled">disabled</span>)');
-        }
+    foreach ($file->info['dependents'] as $dependent) {
+      if ($files[$dependent]->status == 1) {
+        $dependents[] = $files[$dependent]->info['name'] . t(' (<span class="admin-enabled">enabled</span>)');
+        $disabled[] = $filename;
+        $form['disabled_modules']['#value'][$filename] = TRUE;
+      }
+      else {
+        $dependents[] = $files[$dependent]->info['name'] . t(' (<span class="admin-disabled">disabled</span>)');
       }
     }
 
Index: modules/taxonomy/taxonomy.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.module,v
retrieving revision 1.335
diff -u -p -r1.335 taxonomy.module
--- modules/taxonomy/taxonomy.module	25 Jan 2007 22:14:06 -0000	1.335
+++ modules/taxonomy/taxonomy.module	28 Jan 2007 23:39:08 -0000
@@ -986,7 +986,7 @@ function taxonomy_get_tree($vid, $parent
         $term->parents = $parents[$vid][$child];
         $tree[] = $term;
 
-        if ($children[$vid][$child]) {
+        if (!empty($children[$vid][$child])) {
           $tree = array_merge($tree, taxonomy_get_tree($vid, $child, $depth, $max_depth));
         }
       }
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.748
diff -u -p -r1.748 user.module
--- modules/user/user.module	25 Jan 2007 22:14:06 -0000	1.748
+++ modules/user/user.module	28 Jan 2007 23:39:12 -0000
@@ -708,8 +708,8 @@ function user_view_access($account) {
     );
 }
 
-function user_edit_access($uid) {
-  return ($GLOBALS['user']->uid == $uid) || array('administer users');
+function user_edit_access($account) {
+  return ($GLOBALS['user']->uid == $account->uid) || array('administer users');
 }
 
 function user_load_self($arg) {
@@ -908,7 +908,8 @@ function user_menu() {
     'type' => MENU_LOCAL_TASK,
   );
 
-  if (($categories = _user_categories($account)) && (count($categories) > 1)) {
+  $empty_account = new stdClass();
+  if (($categories = _user_categories($empty_account)) && (count($categories) > 1)) {
     foreach ($categories as $key => $category) {
       $items['user/%/edit/'. $category['name']] = array(
         'title' => $category['title'],
@@ -1497,7 +1498,8 @@ function user_edit($category = 'account'
     drupal_set_message(t('The account does not exist or has already been deleted.'));
     drupal_goto('admin/user/user');
   }
-  $edit = $_POST['op'] ? $_POST : (array)$account;
+  $op = !empty($_POST['op']) ? $_POST['op'] : '';
+  $edit = $op ? $_POST : (array)$account;
 
   if (arg(2) == 'delete') {
     if ($edit['confirm']) {
@@ -1508,7 +1510,7 @@ function user_edit($category = 'account'
       return drupal_get_form('user_confirm_delete', $account->name, $account->uid);
     }
   }
-  else if ($_POST['op'] == t('Delete')) {
+  else if ($op == t('Delete')) {
     if ($_REQUEST['destination']) {
       $destination = drupal_get_destination();
       unset($_REQUEST['destination']);
@@ -2406,7 +2408,8 @@ function user_admin($callback_arg = '') 
   switch ($op) {
     case 'search':
     case t('Search'):
-      $output = drupal_get_form('search_form', url('admin/user/search'), $_POST['keys'], 'user') . search_data($_POST['keys'], 'user');
+      $keys = isset($_POST['keys']) ? $_POST['keys'] : NULL;
+      $output = drupal_get_form('search_form', url('admin/user/search'), $keys, 'user') . search_data($keys, 'user');
       break;
     case t('Create new account'):
     case 'create':
@@ -2506,6 +2509,8 @@ function _user_categories($account) {
 }
 
 function _user_sort($a, $b) {
+  $a = (array)$a + array('weight' => 0, 'title' => '');
+  $b = (array)$b + array('weight' => 0, 'title' => '');
   return $a['weight'] < $b['weight'] ? -1 : ($a['weight'] > $b['weight'] ? 1 : ($a['title'] < $b['title'] ? -1 : 1));
 }
 
