Index: imagecache.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/imagecache/imagecache.module,v
retrieving revision 1.38
diff -u -r1.38 imagecache.module
--- imagecache.module	17 Dec 2007 19:17:55 -0000	1.38
+++ imagecache.module	17 Dec 2007 20:44:01 -0000
@@ -465,7 +465,11 @@
       'field types' => array('image'),
     );
     $formatters[$preset['presetname'] .'_linked'] = array(
-      'label' => $preset['presetname'] .' as link',
+      'label' => t('@preset as link to page', array('@preset' => $preset['presetname'])),
+      'field types' => array('image'),
+    );
+    $formatters[$preset['presetname'] .'_imagelink'] = array(
+      'label' => t('@preset as link to image', array('@preset' => $preset['presetname'])),
       'field types' => array('image'),
     );
   }
@@ -486,6 +490,7 @@
   }
 
   $presetname = preg_replace('/_linked$/', '', $formatter);
+  $presetname = preg_replace('/_imagelink$/', '', $formatter);
   if ($preset = imagecache_preset_by_name($presetname)) {
     return theme('imagecache_formatter', $field, $item, $formatter);
   }
@@ -588,6 +593,10 @@
     $image = theme('imagecache', $formatter, $item['filepath'], $item['alt'], $item['title']);
     $output = l($image, 'node/'. $item['nid'], array(), NULL, NULL, FALSE, TRUE);
   }
+  else if (preg_match('/_imagelink$/', $formatter)) {
+    $formatter = preg_replace('/_imagelink$/', '', $formatter);
+    $output = theme('imagecache_imagelink', $formatter, $item['filepath'], $item['alt'], $item['title']);
+  }
   else {
     $output = theme('imagecache', $formatter, $item['filepath'], $item['alt'], $item['title']);
   }
@@ -601,6 +610,12 @@
   return '<img src="'. $imagecache_path .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $attributes .' />';
 }
 
+function theme_imagecache_imagelink($namespace, $path, $alt = '', $title = '', $attributes = NULL) {
+  $image = theme('imagecache', $namespace, $path, $alt, $title);
+  $original_image_url = file_create_url($path);
+  return l($image, $original_image_url, array(), NULL, NULL, FALSE, TRUE);
+}
+
 
 /************************************************************************************
  * ImageCache action implementation example in module.
