Index: follow.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/follow/follow.module,v
retrieving revision 1.8
diff -u -r1.8 follow.module
--- follow.module	4 Nov 2009 14:23:27 -0000	1.8
+++ follow.module	4 Jan 2010 14:28:31 -0000
@@ -95,6 +95,10 @@
       'title' => t('Administer follow'),
       'description' => t(''),
     ),
+    'change follow link titles' => array(
+      'title' => t('Change link titles'),
+      'description' => t('Allows changing the text that appears in the follow links.'),
+    ),
   );
 }
 
@@ -283,7 +287,7 @@
   $output = '<div class="follow-links clearfix">';
 
   foreach($links as $link) {
-    $title = $networks[$link->name]['title'];
+    $title = !empty($link->title) ? $link->title : $networks[$link->name]['title'];
     $output .= theme('follow_link', array('link' => $link, 'title' => $title));
   }
 
@@ -420,6 +424,14 @@
     '#default_value' => isset($link->url) ? $link->url : '',
     '#element_validate' => array('follow_url_validate'),
   );
+  // Provide the title of the link only if the link URL is there and the user
+  // has the appropriate access.
+  $elements['title'] = array(
+    '#type' => 'textfield',
+    '#default_value' => isset($link->title) ? $link->title : '',
+    '#size' => 15,
+    '#access' => user_access('change follow link titles') && !empty($link->url),
+  );
 
   return $elements;
 }
@@ -568,6 +580,9 @@
     if (isset($form['follow_links'][$key]['weight'])) {
       $row[] = drupal_render($form['follow_links'][$key]['lid']) . drupal_render($form['follow_links'][$key]['name']);
       $row[] = drupal_render($form['follow_links'][$key]['url']);
+      if (user_access('change follow link titles')) {
+        $row[] = drupal_render($form['follow_links'][$key]['title']);
+      }
 
       // Now, render the weight row.
       $form['follow_links'][$key]['weight']['#attributes']['class'][] = 'follow-links-weight';
@@ -585,7 +600,11 @@
   }
 
   // Render a list of header titles, and our array of rows, into a table.
-  $header = array(t('Name'), t('URL'), t('Weight'));
+  $header = array(t('Name'), t('URL'));
+  if (user_access('change follow link titles')) {
+    $header[] = t('Title');
+  }
+  $header[] = t('Weight');
   $disabled_header = array(t('Name'), t('URL'));
 
   $output = '';
Index: follow.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/follow/follow.install,v
retrieving revision 1.6
diff -u -r1.6 follow.install
--- follow.install	4 Nov 2009 15:20:26 -0000	1.6
+++ follow.install	4 Jan 2010 14:28:29 -0000
@@ -61,6 +61,13 @@
         'translatable' => TRUE,
         'serialize' => TRUE,
       ),
+      'title' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => 'The human readable name for the link.',
+      ),
       'weight' => array(
         'type' => 'int',
         'not null' => TRUE,
@@ -153,3 +160,12 @@
   return "db_drop_field('follow_links', 'url');";
 }
 
+/**
+ * Update for caching and schema changes.
+ */
+function follow_update_7003() {
+  $schema = follow_schema();
+  $title = $schema['follow_links']['fields']['title'];
+  db_add_field('follow_links', 'title', $title);
+  return "db_add_field('follow_links', 'title', \$title);";
+}
