? custom_pagers_wrap.patch
Index: custom_pagers.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/custom_pagers/custom_pagers.admin.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 custom_pagers.admin.inc
--- custom_pagers.admin.inc	24 Dec 2008 00:58:21 -0000	1.1.2.2
+++ custom_pagers.admin.inc	23 Apr 2009 20:35:06 -0000
@@ -187,6 +187,19 @@ function custom_pagers_form(&$form_state
     '#default_value' => $pid ? $pager->reverse_list : NULL
   );
 
+  $form['node_list']['wrap'] = array(
+    '#type' => 'select',
+    '#title' => t('Wrap list'),
+    '#options' => array(
+                    '' => 'None',
+                    'first' => t("First"),
+                    'last' => t("Last"),
+                    'both' => t("Both"),
+                  ),
+    '#description' => t("Wrapping results will cause the first/last items in the list to jump to the start/end."),
+    '#default_value' => $pid ? $pager->wrap : NULL
+  );
+
   $form['buttons']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Submit'),
Index: custom_pagers.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/custom_pagers/custom_pagers.install,v
retrieving revision 1.3.2.3
diff -u -p -r1.3.2.3 custom_pagers.install
--- custom_pagers.install	31 Mar 2009 15:56:43 -0000	1.3.2.3
+++ custom_pagers.install	23 Apr 2009 20:35:06 -0000
@@ -77,6 +77,13 @@ function custom_pagers_schema() {
         'size' => 'tiny',
         'description' => t("A boolean flag indicating that this {custom_pager} should be displayed in reverse order.")
       ),
+      'wrap' => array(
+        'type' => 'varchar',
+        'length' => 16,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t("How to wrap the results of this {custom_pager}.")
+      ),
     ),
     'primary key' => array('pid'),
   );
Index: custom_pagers.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/custom_pagers/custom_pagers.module,v
retrieving revision 1.6.2.6
diff -u -p -r1.6.2.6 custom_pagers.module
--- custom_pagers.module	31 Mar 2009 15:54:10 -0000	1.6.2.6
+++ custom_pagers.module	23 Apr 2009 20:35:06 -0000
@@ -288,6 +288,14 @@ function custom_pagers_preprocess_custom
   $pager = $vars['pager'];
   $nav = $vars['nav_array'];
 
+  if (empty($nav['prev']) && ($pager->wrap == 'first' || $pager->wrap == 'both')) {
+    $nav['prev'] = end($vars['nav_array']['full_list']);
+  }
+
+  if (empty($nav['next']) && ($pager->wrap == 'last' || $pager->wrap == 'both')) {
+    $nav['next'] = reset($vars['nav_array']['full_list']);
+  }
+  
   $vars['previous'] = !empty($nav['prev']) ? l('‹ ' . t('previous'), 'node/'. $nav['prev']) : '';
   $vars['key'] = t('@count of @count_total', array('@count' => ($nav['current_index'] + 1), '@count_total' => count($nav['full_list'])));
   $vars['next'] =  !empty($nav['next']) ? l(t('next') . ' ›', 'node/'. $nav['next']) : '';
