? is_array.patch
Index: database/updates.inc
===================================================================
RCS file: /cvs/drupal/drupal/database/updates.inc,v
retrieving revision 1.158
diff -u -Ftion -r1.158 updates.inc
--- database/updates.inc	9 Dec 2005 15:46:47 -0000	1.158
+++ database/updates.inc	10 Dec 2005 03:16:07 -0000
@@ -957,13 +957,13 @@     $ret[] = update_sql("INSERT INTO {me
 
     // insert all entries from theme links into new menus
     $num_inserted = 0;
-    if (is_array($ts) && is_array($ts[$menus[$loop]['links_var']])) {
+    if (isset($ts) && is_array($ts) && is_array($ts[$menus[$loop]['links_var']])) {
       $links = $ts[$menus[$loop]['links_var']];
       for ($i = 0; $i < count($links['text']); $i++) {
         if ($links['text'][$i] != "" && $links['link'][$i] != "") {
           $num_inserted ++;
           $node_unalias = db_fetch_array(db_query("SELECT src FROM {url_alias} WHERE dst = '%s'", $links['link'][$i]));
-          if (is_array($node_unalias)) {
+          if (isset($node_unalias) && is_array($node_unalias)) {
       $link_path = $node_unalias['src'];
     }
     else {
@@ -998,7 +998,7 @@                                "', '" . 
     unset($ts[$menus[$loop]['more_var']]);
   }
 
-  if (is_array($ts)) {
+  if (isset($ts) && is_array($ts)) {
     variable_set('theme_settings', $ts);
   }
 
@@ -1130,7 +1130,7 @@ function system_update_159() {
   $vid = db_next_id('{node_revisions}_vid');
   while ($node = db_fetch_object($result)) {
     $revisions = unserialize($node->revisions);
-    if (is_array($revisions) && count($revisions) > 0) {
+    if (!$revisions && is_array($revisions) && count($revisions) > 0) {
       $revisions_query = array();
       $revisions_args = array();
       $book_query = array();
Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.496
diff -u -Ftion -r1.496 common.inc
--- includes/common.inc	2 Dec 2005 10:31:21 -0000	1.496
+++ includes/common.inc	10 Dec 2005 03:16:08 -0000
@@ -741,7 +741,7 @@   $output .= ' <description>'. check_pla
     if (is_array($value)) {
       if ($value['key']) {
         $output .= ' <'. $value['key'];
-        if (is_array($value['attributes'])) {
+        if (isset($value['attributes'] && is_array($value['attributes'])) {
           $output .= drupal_attributes($value['attributes']);
         }
 
Index: includes/database.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database.inc,v
retrieving revision 1.47
diff -u -Ftion -r1.47 database.inc
--- includes/database.inc	29 Nov 2005 15:37:27 -0000	1.47
+++ includes/database.inc	10 Dec 2005 03:16:09 -0000
@@ -232,7 +232,7 @@ function _db_rewrite_sql($query = '', $p
   $distinct = FALSE;
   foreach (module_implements('db_rewrite_sql') as $module) {
     $result = module_invoke($module, 'db_rewrite_sql', $query, $primary_table, $primary_field, $args);
-    if (is_array($result)) {
+    if (isset($result) && is_array($result)) {
       if (isset($result['where'])) {
         $where[] .= $result['where'];
       }
Index: includes/file.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/file.inc,v
retrieving revision 1.55
diff -u -Ftion -r1.55 file.inc
--- includes/file.inc	30 Nov 2005 19:28:18 -0000	1.55
+++ includes/file.inc	10 Dec 2005 03:16:10 -0000
@@ -490,7 +490,7 @@ function file_download() {
       if ($headers === -1) {
         drupal_access_denied();
       }
-      elseif (is_array($headers)) {
+      elseif (isset($headers) && is_array($headers)) {
         file_transfer($file, $headers);
       }
     }
Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.29
diff -u -Ftion -r1.29 form.inc
--- includes/form.inc	5 Dec 2005 21:21:49 -0000	1.29
+++ includes/form.inc	10 Dec 2005 03:16:11 -0000
@@ -319,7 +319,7 @@  * each of the form elements generating 
  */
 function form_render(&$elements) {
   $content = '';
-  if (is_array($elements)) {
+  if (isset($elements) && is_array($elements)) {
     uasort($elements, "_form_sort");
   }
 
@@ -380,11 +380,11 @@     '#description' => NULL,
     '#tree' => FALSE,
     '#parents' => $parents
   );
-  if ($refresh || !is_array($cache)) {
+  if ($refresh || !isset($cache)) {
     $cache = array();
     foreach (module_implements('elements') as $module) {
       $elements = module_invoke($module, 'elements');
-      if (is_array($elements)) {
+      if (isset($elements) && is_array($elements)) {
         $cache = array_merge_recursive($cache, $elements);
       }
     }
Index: includes/image.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/image.inc,v
retrieving revision 1.10
diff -u -Ftion -r1.10 image.inc
--- includes/image.inc	22 Oct 2005 15:14:46 -0000	1.10
+++ includes/image.inc	10 Dec 2005 03:16:11 -0000
@@ -89,7 +89,7 @@ function image_get_info($file) {
   $data = @getimagesize($file);
   $file_size = @filesize($file);
 
-  if (is_array($data)) {
+  if (isset($data) && is_array($data)) {
     $extensions = array('1' => 'gif', '2' => 'jpg', '3' => 'png');
     $extension = array_key_exists($data[2], $extensions) ?  $extensions[$data[2]] : '';
     $details = array('width'     => $data[0],
Index: includes/module.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/module.inc,v
retrieving revision 1.69
diff -u -Ftion -r1.69 module.inc
--- includes/module.inc	25 Aug 2005 21:14:16 -0000	1.69
+++ includes/module.inc	10 Dec 2005 03:16:11 -0000
@@ -184,7 +184,7 @@ function module_invoke_all() {
   foreach (module_implements($hook) as $module) {
     $function = $module .'_'. $hook;
     $result = call_user_func_array($function, $args);
-    if (is_array($result)) {
+    if (isset($result) && is_array($result)) {
       $return = array_merge($return, $result);
     }
     else if (isset($result)) {
Index: modules/block.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/block.module,v
retrieving revision 1.191
diff -u -Ftion -r1.191 block.module
--- modules/block.module	5 Dec 2005 09:11:33 -0000	1.191
+++ modules/block.module	10 Dec 2005 03:16:12 -0000
@@ -599,7 +599,8 @@ function block_list($region) {
         // Check the current throttle status and see if block should be displayed
         // based on server load.
         if (!($block->throttle && (module_invoke('throttle', 'status') > 0))) {
-          if (is_array($array = module_invoke($block->module, 'block', 'view', $block->delta))) {
+          $array = module_invoke($block->module, 'block', 'view', $block->delta);
+          if (isset($array) && is_array($array)) {
             foreach ($array as $k => $v) {
               $block->$k = $v;
             }
Index: modules/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment.module,v
retrieving revision 1.403
diff -u -Ftion -r1.403 comment.module
--- modules/comment.module	8 Dec 2005 09:11:32 -0000	1.403
+++ modules/comment.module	10 Dec 2005 03:16:14 -0000
@@ -1112,7 +1112,7 @@ function theme_comment_admin_overview($f
   $header = array(NULL, t('Subject'), t('Author'), t('Time'), t('Operations'));
 
   $output = form_render($form['options']);
-  if (is_array($form['subject'])) {
+  if (isset($form['subject'] && is_array($form['subject'])) {
     foreach (element_children($form['subject']) as $key) {
       $row = array();
       $row[] = form_render($form['comments'][$key]);
@@ -1657,7 +1657,7 @@ function comment_invoke_comment(&$commen
   foreach (module_implements('comment') as $name) {
     $function = $name .'_comment';
     $result = $function($comment, $op);
-    if (is_array($result)) {
+    if (isset($result) && is_array($result)) {
       $return = array_merge($return, $result);
     }
     else if (isset($result)) {
Index: modules/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter.module,v
retrieving revision 1.92
diff -u -Ftion -r1.92 filter.module
--- modules/filter.module	8 Dec 2005 09:05:30 -0000	1.92
+++ modules/filter.module	10 Dec 2005 03:16:16 -0000
@@ -556,7 +556,7 @@ function filter_admin_configure() {
   $form = array();
   foreach ($list as $filter) {
     $form_module = module_invoke($filter->module, 'filter', 'settings', $filter->delta, $format);
-    if (is_array($form_module)) {
+    if (isset($form_module) && is_array($form_module)) {
       $form = array_merge($form, $form_module);
     }
   }
@@ -613,7 +613,7 @@ function filter_list_all() {
 
   foreach (module_list() as $module) {
     $list = module_invoke($module, 'filter', 'list');
-    if (is_array($list)) {
+    if (isset($list) && is_array($list)) {
       foreach ($list as $delta => $name) {
         $filters[$module .'/'. $delta] = (object)array('module' => $module, 'delta' => $delta, 'name' => $name);
       }
@@ -655,7 +655,7 @@ function filter_list_format($format) {
     $result = db_query("SELECT * FROM {filters} WHERE format = %d ORDER BY weight ASC", $format);
     while ($filter = db_fetch_object($result)) {
       $list = module_invoke($filter->module, 'filter', 'list');
-      if (is_array($list) && isset($list[$filter->delta])) {
+      if (isset($list) && is_array($list) && isset($list[$filter->delta])) {
         $filter->name = $list[$filter->delta];
         $filters[$format][$filter->module .'/'. $filter->delta] = $filter;
       }
Index: modules/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.561
diff -u -Ftion -r1.561 node.module
--- modules/node.module	8 Dec 2005 15:30:27 -0000	1.561
+++ modules/node.module	10 Dec 2005 03:16:19 -0000
@@ -314,7 +314,7 @@ function node_invoke_nodeapi(&$node, $op
   foreach (module_implements('nodeapi') as $name) {
     $function = $name .'_nodeapi';
     $result = $function($node, $op, $a3, $a4);
-    if (is_array($result)) {
+    if (isset($result) && is_array($result)) {
       $return = array_merge($return, $result);
     }
     else if (isset($result)) {
@@ -750,10 +750,10 @@       $form['advanced']['submit'] = arra
     case 'post':
       // Insert extra restrictions into the search keywords string.
       $edit = &$_POST['edit'];
-      if (is_array($edit['type'])) {
+      if (isset($edit['type']) && is_array($edit['type'])) {
         $keys = search_query_insert($keys, 'type', implode(',', array_keys($edit['type'])));
       }
-      if (is_array($edit['category'])) {
+      if (isset($edit['category']) && is_array($edit['category'])) {
         $keys = search_query_insert($keys, 'category', implode(',', $edit['category']));
       }
       if ($edit['or'] != '') {
@@ -1171,7 +1171,7 @@ function theme_node_admin_nodes($form) {
   $header = array(NULL, t('Title'), t('Type'), t('Author'), t('Status'), t('Operations'));
 
   $output .= form_render($form['options']);
-  if (is_array($form['title'])) {
+  if (isset($form['title']) && is_array($form['title'])) {
     foreach (element_children($form['title']) as $key) {
       $row = array();
       $row[] = form_render($form['nodes'][$key]);
Index: modules/search.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/search.module,v
retrieving revision 1.149
diff -u -Ftion -r1.149 search.module
--- modules/search.module	7 Dec 2005 15:32:11 -0000	1.149
+++ modules/search.module	10 Dec 2005 03:16:21 -0000
@@ -975,7 +975,7 @@   $form['#action'] = $action;
   $form['basic']['inline']['submit'] = array('#type' => 'submit', '#value' => t('Search'));
 
   $form_module = module_invoke($type, 'search', 'form', $keys);
-  if (is_array($form_module)) {
+  if (isset($form_module) && is_array($form_module)) {
     $form = array_merge($form, $form_module);
   }
 
@@ -991,7 +991,7 @@ function search_data($keys = NULL, $type
   if (isset($keys)) {
     if (module_hook($type, 'search')) {
       $results = module_invoke($type, 'search', 'search', $keys);
-      if (is_array($results) && count($results)) {
+      if (isset($results) && is_array($results) && count($results)) {
         $output .= '<dl class="search-results">';
         foreach ($results as $entry) {
           $output .= theme('search_item', $entry, $type);
Index: modules/taxonomy.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy.module,v
retrieving revision 1.243
diff -u -Ftion -r1.243 taxonomy.module
--- modules/taxonomy.module	6 Dec 2005 12:20:24 -0000	1.243
+++ modules/taxonomy.module	10 Dec 2005 03:16:22 -0000
@@ -596,7 +596,7 @@ function taxonomy_node_save($nid, $terms
 
   // Free tagging vocabularies do not send their tids in the form,
   // so we'll detect them here and process them independently.
-  if ($terms['tags']) {
+  if ($terms['tags']) {                 // fixme
     $typed_input = $terms['tags'];
     unset($terms['tags']);
 
Index: themes/pushbutton/page.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/pushbutton/page.tpl.php,v
retrieving revision 1.9
diff -u -Ftion -r1.9 page.tpl.php
--- themes/pushbutton/page.tpl.php	9 Dec 2005 15:07:14 -0000	1.9
+++ themes/pushbutton/page.tpl.php	10 Dec 2005 03:16:23 -0000
@@ -102,12 +102,12 @@ <table id="secondary-menu" summary="Navi
 <table id="footer-menu" summary="Navigation elements." border="0" cellpadding="0" cellspacing="0" width="100%">
   <tr>
     <td align="center" valign="middle">
-    <?php if (is_array($primary_links)) : ?>
+    <?php if (isset($primary_links) && is_array($primary_links)) : ?>
       <div class="primary-links">
         <?php print theme('links', $primary_links) ?>
       </div>
     <?php endif; ?>
-    <?php if (is_array($secondary_links)) : ?>
+    <?php if (isset($secondary_links) && is_array($secondary_links)) : ?>
       <div class="secondary-links">
         <?php print theme('links', $secondary_links) ?>
       </div>
