--- diff/diff.pages.inc	Fri Aug 20 02:19:01 2010
+++ diff/diff.pages.inc	Mon Sep 13 05:39:22 2010
@@ -113,6 +113,13 @@
     '#options' => $revision_ids,
     '#default_value' => $new_vid
   );
+  $form['incmarkup'] = array(
+  '#type' => 'checkbox', 
+  '#title' => t('Hide Markup'), 
+  '#return_value' => 1, 
+  '#default_value' => 0, 
+  '#description' => t("Select to hide HTML markup."),
+  );
   $form['submit'] = array('#type' => 'submit', '#value' => t('Show diff'));
 
   if (count($revision_list) > REVISION_LIST_SIZE) {
@@ -129,7 +136,8 @@
   // the ids are ordered so the old revision is always on the left
   $old_vid = min($form_state['values']['old'], $form_state['values']['new']);
   $new_vid = max($form_state['values']['old'], $form_state['values']['new']);
-  $form_state['redirect'] =  'node/'. $form_state['values']['nid'] .'/revisions/view/'. $old_vid .'/'. $new_vid;
+  $incmarkup = $form_state['values']['incmarkup'];
+  $form_state['redirect'] =  'node/'. $form_state['values']['nid'] .'/revisions/view/'. $old_vid .'/'. $new_vid .'/'. $incmarkup;
 }
 
 /**
@@ -138,6 +146,7 @@
 function diff_node_revisions_validate($form, &$form_state) {
   $old_vid = $form_state['values']['old'];
   $new_vid = $form_state['values']['new'];
+  $incmarkup = $form_state['values']['incmarkup'];
   if ($old_vid==$new_vid || !$old_vid || !$new_vid) {
     form_set_error('diff', t('Select different revisions to compare.'));
   }
@@ -154,7 +163,7 @@
  * @param $new_vid
  *   Version ID of the new revision.
  */
-function diff_diffs_show($node, $old_vid, $new_vid) {
+function diff_diffs_show($node, $old_vid, $new_vid, $incmarkup) {
 
   // Set same title as on the 'Revisions' tab for consistency
   drupal_set_title(t('Revisions for %title', array('%title' => $node->title)));
@@ -220,7 +229,7 @@
       'colspan' => 2
     )
   );
-  $rows = array_merge($rows, _diff_body_rows($old_node, $new_node));
+  $rows = array_merge($rows, _diff_body_rows($old_node, $new_node, $incmarkup));
   $output = theme('diff_table', $header, $rows, array('class' => 'diff'), NULL, $cols);
 
   if ($node->vid == $new_vid) {
@@ -243,7 +252,7 @@
  * @param $new_node
  *   Node for comparison which will be displayed on the right side.
  */
-function _diff_body_rows($old_node, $new_node) {
+function _diff_body_rows($old_node, $new_node, $incmarkup) {
   drupal_add_css(drupal_get_path('module', 'diff') .'/diff.css', 'module', 'all', FALSE);
   module_load_include('inc', 'diff', 'includes/node');
   if (module_exists('taxonomy')) {
@@ -256,7 +265,7 @@
   $rows = array();
   $any_visible_change = FALSE;
   // @todo quick workaround for PHP >= 5.3.0 date_diff() conflict.
-  $node_diffs = _diff_module_invoke_all($old_node, $new_node);
+  $node_diffs = _diff_module_invoke_all($old_node, $new_node, $incmarkup);
 
   // We start off assuming all form elements are in the correct order.
   $node_diffs['#sorted'] = TRUE;
@@ -321,13 +330,13 @@
  * @link http://drupal.org/node/639320
  * @see module_invoke_all()
  */
-function _diff_module_invoke_all($old_node, $new_node) {
+function _diff_module_invoke_all($old_node, $new_node, $incmarkup) {
   $return = array();
   foreach (module_implements('diff') as $module) {
     if ($module == 'date') {
       continue; // Avoid function name collision with date_diff().
     }
-    $result = module_invoke($module, 'diff', $old_node, $new_node);
+    $result = module_invoke($module, 'diff', $old_node, $new_node, $incmarkup);
     if (isset($result) && is_array($result)) {
       $return = array_merge_recursive($return, $result);
     }
