Index: modules/taxonomy/taxonomy.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.module,v
retrieving revision 1.448
diff -u -r1.448 taxonomy.module
--- modules/taxonomy/taxonomy.module	16 Dec 2008 22:05:51 -0000	1.448
+++ modules/taxonomy/taxonomy.module	17 Dec 2008 09:45:35 -0000
@@ -654,30 +654,11 @@
 }
 
 /**
- * Make sure incoming vids are free tagging enabled.
- */
-function taxonomy_node_validate(&$node) {
-  if (!empty($node->taxonomy)) {
-    $terms = $node->taxonomy;
-    if (!empty($terms['tags'])) {
-      foreach ($terms['tags'] as $vid => $vid_value) {
-        $vocabulary = taxonomy_vocabulary_load($vid);
-        if (empty($vocabulary->tags)) {
-          // see form_get_error $key = implode('][', $element['#parents']);
-          // on why this is the key
-          form_set_error("taxonomy][tags][$vid", t('The %name vocabulary can not be modified in this way.', array('%name' => $vocabulary->name)));
-        }
-      }
-    }
-  }
-}
-
-/**
  * Save term associations for a given node.
  */
 function taxonomy_node_save($node, $terms) {
 
-  taxonomy_node_delete_revision($node);
+  taxonomy_nodeapi_delete_revision($node);
 
   // Free tagging vocabularies do not send their tids in the form,
   // so we'll detect them here and process them independently.
@@ -736,20 +717,6 @@
 }
 
 /**
- * Remove associations of a node to its terms.
- */
-function taxonomy_node_delete($node) {
-  db_query('DELETE FROM {term_node} WHERE nid = %d', $node->nid);
-}
-
-/**
- * Remove associations of a node to its terms.
- */
-function taxonomy_node_delete_revision($node) {
-  db_query('DELETE FROM {term_node} WHERE vid = %d', $node->vid);
-}
-
-/**
  * Implementation of hook_node_type().
  */
 function taxonomy_node_type($op, $info) {
@@ -1372,43 +1339,64 @@
 
 /**
  * Implementation of hook_nodeapi_delete().
+ *
+ * Remove associations of a node to its terms.
  */
 function taxonomy_nodeapi_delete($node) {
-  taxonomy_node_delete($node);
+  db_query('DELETE FROM {term_node} WHERE nid = %d', $node->nid);
 }
 
 /**
  * Implementation of hook_nodeapi_delete_revision().
+ *
+ * Remove associations of a node to its terms.
  */
 function taxonomy_nodeapi_delete_revision($node) {
-  taxonomy_node_delete_revision($node);
+  db_query('DELETE FROM {term_node} WHERE vid = %d', $node->vid);
 }
 
 /**
  * Implementation of hook_nodeapi_validate().
+ *
+ * Make sure incoming vids are free tagging enabled.
  */
 function taxonomy_nodeapi_validate($node, $form) {
-  taxonomy_node_validate($node);
+  if (!empty($node->taxonomy)) {
+    $terms = $node->taxonomy;
+    if (!empty($terms['tags'])) {
+      foreach ($terms['tags'] as $vid => $vid_value) {
+        $vocabulary = taxonomy_vocabulary_load($vid);
+        if (empty($vocabulary->tags)) {
+          // see form_get_error $key = implode('][', $element['#parents']);
+          // on why this is the key
+          form_set_error("taxonomy][tags][$vid", t('The %name vocabulary can not be modified in this way.', array('%name' => $vocabulary->name)));
+        }
+      }
+    }
+  }
 }
 
 /**
  * Implementation of hook_nodeapi_rss_item().
+ *
+ * Provides category information for RSS feeds.
  */
 function taxonomy_nodeapi_rss_item($node) {
-  return taxonomy_rss_item($node);
+  $output = array();
+  foreach ($node->taxonomy as $term) {
+    $output[] = array(
+      'key' => 'category',
+      'value' => check_plain($term->name),
+      'attributes' => array('domain' => url(taxonomy_term_path($term), array('absolute' => TRUE))),
+    );
+  }
+  return $output;
 }
 
 /**
  * Implementation of hook_nodeapi_update_index().
  */
 function taxonomy_nodeapi_update_index($node) {
-  return taxonomy_node_update_index($node);
-}
-
-/**
- * Implementation of hook_nodeapi('update_index').
- */
-function taxonomy_node_update_index($node) {
   $output = array();
   foreach ($node->taxonomy as $term) {
     $output[] = $term->name;
@@ -1445,19 +1433,6 @@
 }
 
 /**
- * Provides category information for RSS feeds.
- */
-function taxonomy_rss_item($node) {
-  $output = array();
-  foreach ($node->taxonomy as $term) {
-    $output[] = array('key'   => 'category',
-                      'value' => check_plain($term->name),
-                      'attributes' => array('domain' => url(taxonomy_term_path($term), array('absolute' => TRUE))));
-  }
-  return $output;
-}
-
-/**
  * Implementation of hook_help().
  */
 function taxonomy_help($path, $arg) {
Index: modules/trigger/trigger.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/trigger/trigger.module,v
retrieving revision 1.23
diff -u -r1.23 trigger.module
--- modules/trigger/trigger.module	9 Dec 2008 11:30:25 -0000	1.23
+++ modules/trigger/trigger.module	17 Dec 2008 09:45:38 -0000
@@ -209,8 +209,7 @@
   static $objects;
   // Prevent recursion by tracking which operations have already been called.
   static $recursion;
-  // Support a subset of operations.
-  if (!in_array($op, array('view', 'update', 'presave', 'insert', 'delete')) || isset($recursion[$op])) {
+  if (isset($recursion[$op])) {
     return;
   }
   $recursion[$op] = TRUE;
@@ -433,10 +432,6 @@
 function _trigger_user($op, &$edit, &$account, $category = NULL) {
   // Keep objects for reuse so that changes actions make to objects can persist.
   static $objects;
-  // We support a subset of operations.
-  if (!in_array($op, array('login', 'logout', 'insert', 'update', 'delete', 'view'))) {
-    return;
-  }
   $aids = _trigger_get_hook_aids('user', $op);
   $context = array(
     'hook' => 'user',
