? revargcleanup.patch Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.896 diff -u -p -r1.896 node.module --- modules/node/node.module 24 Oct 2007 14:38:38 -0000 1.896 +++ modules/node/node.module 26 Oct 2007 00:11:53 -0000 @@ -1363,6 +1363,7 @@ function node_menu() { $items['node/%node/revisions'] = array( 'title' => 'Revisions', 'page callback' => 'node_revisions', + 'page arguments' => array(1), 'access callback' => '_node_revision_access', 'access arguments' => array(1), 'weight' => 2, Index: modules/node/node.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v retrieving revision 1.6 diff -u -p -r1.6 node.pages.inc --- modules/node/node.pages.inc 22 Oct 2007 10:37:14 -0000 1.6 +++ modules/node/node.pages.inc 26 Oct 2007 00:11:53 -0000 @@ -453,39 +453,36 @@ function node_delete_confirm_submit($for /** * Menu callback for revisions related activities. */ -function node_revisions() { - if (is_numeric(arg(1)) && arg(2) == 'revisions') { - $op = arg(4) ? arg(4) : 'overview'; - switch ($op) { - case 'overview': - $node = node_load(arg(1)); - if ((user_access('view revisions') || user_access('administer nodes')) && node_access('view', $node)) { - return node_revision_overview($node); - } - drupal_access_denied(); - return; - case 'view': - if (is_numeric(arg(3))) { - $node = node_load(arg(1), arg(3)); - if ($node->nid) { - if ((user_access('view revisions') || user_access('administer nodes')) && node_access('view', $node)) { - drupal_set_title(t('Revision of %title from %date', array('%title' => $node->title, '%date' => format_date($node->revision_timestamp)))); - return node_show($node, arg(2)); - } - drupal_access_denied(); - return; +function node_revisions($node, $vid = NULL, $op = 'overview') { + + switch ($op) { + case 'overview': + $node = node_load(arg(1)); + if ((user_access('view revisions') || user_access('administer nodes')) && node_access('view', $node)) { + return node_revision_overview($node); + } + drupal_access_denied(); + return; + case 'view': + if (is_numeric($vid)) { + $vid_node = node_load($node->nid, $vid); + if ($vid_node->nid) { + if ((user_access('view revisions') || user_access('administer nodes')) && node_access('view', $node)) { + drupal_set_title(t('Revision of %title from %date', array('%title' => $node->title, '%date' => format_date($node->revision_timestamp)))); + return node_show($vid_node, NULL); } + drupal_access_denied(); + return; } - break; - case 'revert': - node_revision_revert(arg(1), arg(3)); - break; - case 'delete': - node_revision_delete(arg(1), arg(3)); - break; - } + } + break; + case 'revert': + node_revision_revert($node->nid, $vid); + break; + case 'delete': + node_revision_delete($node->nid, $vid); + break; } - drupal_not_found(); } /**