Index: coder_review/coder_review.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/coder/coder_review/coder_review.module,v
retrieving revision 1.24
diff -u -p -r1.24 coder_review.module
--- coder_review/coder_review.module	1 Sep 2009 14:41:28 -0000	1.24
+++ coder_review/coder_review.module	19 Sep 2009 21:00:39 -0000
@@ -1600,6 +1600,9 @@ function do_coder_review($coder_args, $r
           case 'callback':
             do_coder_review_callback($coder_args, $review, $rule, $lines, $results);
             break;
+          case 'hook':
+            do_coder_review_hook($coder_args, $review, $rule, $lines, $results);
+            break;
         }
       }
     }
@@ -1773,6 +1776,27 @@ function do_coder_review_callback(&$code
 }
 
 /**
+ * Check for the presence of a hook.
+ *
+ * @note
+ *   See do_coder_review_regex() for arguments.
+ */
+function do_coder_review_hook(&$coder_args, $review, $rule, $lines, &$results) {
+  if (($module_name = basename($coder_args['#filename'], '.module')) && !empty($rule['#value'])) {
+    $hook = array('#value' => ' ' . $module_name . '_' . $rule['#value'] . '(');
+    foreach ($lines as $lineno => $line_array) {
+      foreach ($line_array as $line) {
+        if (_coder_review_search_string($line, $hook)) {
+          $line = $coder_args['#all_lines'][$lineno];
+          $severity_name = _coder_review_severity_name($coder_args, $review, $rule);
+          _coder_review_error($results, $rule, $severity_name, $lineno, $line);
+        }
+      }
+    }
+  }
+}
+
+/**
  * Search for a string.
  *
  * Uses the fastest available php function for searching.
