Index: atom-views-feed.tpl.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/atom_views/atom-views-feed.tpl.php,v
retrieving revision 1.1
diff -u -p -r1.1 atom-views-feed.tpl.php
--- atom-views-feed.tpl.php	13 Jan 2009 21:01:33 -0000	1.1
+++ atom-views-feed.tpl.php	21 Jul 2010 15:17:20 -0000
@@ -27,6 +27,7 @@
 <feed xmlns="http://www.w3.org/2005/Atom">
   <title type="text"><?php print $title; ?></title>
   <id><?php print $id; ?></id>
+  <?php print $pager ?>
   <updated><?php print $updated; ?></updated>
   <link rel="self" type="application/atom+xml" href="<?php print $link; ?>"/>
   <?php print $feed_elements; ?>
Index: atom_views.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/atom_views/atom_views.module,v
retrieving revision 1.1
diff -u -p -r1.1 atom_views.module
--- atom_views.module	13 Jan 2009 21:01:33 -0000	1.1
+++ atom_views.module	21 Jul 2010 15:17:20 -0000
@@ -6,6 +6,22 @@
  * Provides Atom 1.0 feed output for Views.
  */
 
+/**
+ * Implementation of hook_theme().
+ */
+function atom_views_theme($existing, $type, $theme, $path) {
+  return array(
+    'atom_views_pager' => array(
+      'arguments' => array(
+        'path' => NULL,
+        'exposed_input' => NULL,
+        'items_per_page' => NULL,
+        'element' => NULL,
+      ),
+      'file' => 'atom_views.views.inc',
+    ),
+  );
+}
 
 /**
  * Implementation of hook_views_api().
Index: atom_views.views.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/atom_views/atom_views.views.inc,v
retrieving revision 1.1
diff -u -p -r1.1 atom_views.views.inc
--- atom_views.views.inc	13 Jan 2009 21:01:33 -0000	1.1
+++ atom_views.views.inc	21 Jul 2010 15:17:20 -0000
@@ -66,16 +66,25 @@ function atom_views_views_plugins() {
   );
 }
 
+/**     
+ * Implementation of hook_views_plugins_alter
+ */
+function atom_views_views_plugins_alter(&$cache) {
+  $cache['display']['feed']['use pager'] = TRUE; 
+}
 
 /**
  * Preprocess an Atom feed
  */
 function template_preprocess_atom_views_feed(&$vars) {
   global $base_url;
+  global $pager_page_array;
 
   $view     = &$vars['view'];
   $options  = &$vars['options'];
 
+  $current = $pager_page_array[$view->pager['element']];
+
   $style    = &$view->style_plugin;
 
   if ($view->display_handler->get_option('sitename_title')) {
@@ -98,14 +107,66 @@ function template_preprocess_atom_views_
   if (!empty($view->exposed_raw_input)) {
     $url_options['query'] = $view->exposed_raw_input;
   }
+
+  $path = check_url(url($link, $url_options));
+
+  if ($current) {
+    $url_options['query'] .= "page=$current"; 
+  }
+
   $vars['link'] = check_url(url($link, $url_options));
 
   $vars['feed_elements'] = format_xml_elements($style->feed_elements);
   $vars['entries'] = $style->entries;
 
+  $vars['pager'] = '';
+
+  $exposed_input = isset($view->exposed_data_raw) ? $view->exposed_data_raw : NULL;
+  if ($view->display_handler->render_pager()) {
+    $vars['pager'] = theme('atom_views_pager', $path, $exposed_input, $view->pager['items_per_page'], $view->pager['element']);
+  }
+
   drupal_set_header('Content-Type: application/atom+xml; charset=utf-8');
 }
 
+/*
+ * Themes next, previous, first, last links for atom feeds based on views pager information.
+ */
+function theme_atom_views_pager($path, $exposed_input = array(), $items_per_page = 10, $element = 0) {
+  global $pager_page_array, $pager_total;
+  $last = $pager_total[$element] - 1;
+  $current = $pager_page_array[$element];
+
+  $links = array(
+    'first' => 0,
+    'last' => $last,
+  );
+
+  // If we are anywhere but the first page
+  if ($pager_page_array[$element] > 0) {
+    $links['previous'] = $current - 1;
+  }
+
+  // If we are anywhere but the last page
+  if ($current < $last) {
+    $links['next'] = $current + 1;
+  }
+
+  $links_processed = array();
+  foreach ($links as $key => $page) {
+    $url_options = array('absolute' => TRUE);
+    $url_options['query'] = "page=$page";
+
+    if (!empty($view->exposed_raw_input)) {
+      $url_options['query'] .= $view->exposed_raw_input;
+    }
+
+    $l = check_url(url($path, $url_options));
+    $links_processed[] = "<link rel=\"$key\" href=\"$l\" />";
+  }
+
+  return implode($links_processed, "\n  ") ."\n";
+}
 
 /**
  * Default theme function for all Atom rows.
