Index: modules/filter/filter.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.admin.inc,v
retrieving revision 1.48
diff -u -p -r1.48 filter.admin.inc
--- modules/filter/filter.admin.inc	9 Oct 2009 00:59:58 -0000	1.48
+++ modules/filter/filter.admin.inc	10 Oct 2009 20:05:34 -0000
@@ -90,8 +90,8 @@ function theme_filter_admin_overview($va
  */
 function filter_admin_format_page($format = NULL) {
   if (!isset($format->name)) {
-    drupal_set_title(t('Add text format'), PASS_THROUGH);
-    $format = (object)array('name' => '', 'format' => 0);
+    drupal_set_title(t('Add text format'));
+    $format = (object) array('name' => '', 'format' => 0);
   }
   return drupal_get_form('filter_admin_format_form', $format);
 }
Index: modules/filter/filter.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.install,v
retrieving revision 1.21
diff -u -p -r1.21 filter.install
--- modules/filter/filter.install	29 Sep 2009 15:13:55 -0000	1.21
+++ modules/filter/filter.install	10 Oct 2009 20:08:40 -0000
@@ -120,20 +120,20 @@ function filter_update_7000() {
  * Break out "escape HTML filter" option to its own filter.
  */
 function filter_update_7001() {
-  $result = db_query("SELECT format FROM {filter_formats}");
+  $result = db_query("SELECT format FROM {filter_formats}")->fetchCol();
   $insert = db_insert('filters')->fields(array('format', 'module', 'delta', 'weight'));
 
-  foreach ($result as $format) {
+  foreach ($result as $format_id) {
     // Deprecated constants FILTER_HTML_STRIP = 1 and FILTER_HTML_ESCAPE = 2.
-    if (variable_get('filter_html_' . $format->format, 1) == 2) {
-    	$insert->values(array(
-    	  'format' => $format->format,
-    	  'filter' => 'filter',
-    	  'delta' => 4,
-    	  'weight' => 0,
-    	));
+    if (variable_get('filter_html_' . $format_id, 1) == 2) {
+      $insert->values(array(
+        'format' => $format_id,
+        'filter' => 'filter',
+        'delta' => 4,
+        'weight' => 0,
+      ));
     }
-    variable_del('filter_html_' . $format->format);
+    variable_del('filter_html_' . $format_id);
   }
 
   $insert->execute();
Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.295
diff -u -p -r1.295 filter.module
--- modules/filter/filter.module	9 Oct 2009 16:14:16 -0000	1.295
+++ modules/filter/filter.module	10 Oct 2009 20:30:45 -0000
@@ -150,15 +150,15 @@ function _filter_delete_format_access($f
 /**
  * Load a text format object from the database.
  *
- * @param $format
+ * @param $format_id
  *   The format ID.
  *
  * @return
  *   A fully-populated text format object.
  */
-function filter_format_load($format) {
+function filter_format_load($format_id) {
   $formats = filter_formats();
-  return isset($formats[$format]) ? $formats[$format] : FALSE;
+  return isset($formats[$format_id]) ? $formats[$format_id] : FALSE;
 }
 
 /**
@@ -242,7 +242,7 @@ function filter_format_save(&$format) {
  * Delete a text format.
  *
  * @param $format
- *   The format to be deleted.
+ *   The text format object to be deleted.
  */
 function filter_format_delete($format) {
   db_delete('filter_format')
@@ -319,128 +319,6 @@ function filter_cron() {
 }
 
 /**
- * @name Tips callbacks for filters.
- * @{
- * Filters implemented by the filter.module.
- */
-function _filter_html_tips($filter, $format, $long = FALSE) {
-  global $base_url;
-  if ($allowed_html = $filter->settings['allowed_html']) {
-    if ($long) {
-      $output = '<p>' . t('Allowed HTML tags: @tags', array('@tags' => $allowed_html)) . '</p>';
-      if (!$filter->settings['filter_html_help']) {
-        return $output;
-      }
-
-      $output .= '<p>' . t('This site allows HTML content. While learning all of HTML may feel intimidating, learning how to use a very small number of the most basic HTML "tags" is very easy. This table provides examples for each tag that is enabled on this site.') . '</p>';
-      $output .= '<p>' . t('For more information see W3C\'s <a href="@html-specifications">HTML Specifications</a> or use your favorite search engine to find other sites that explain HTML.', array('@html-specifications' => 'http://www.w3.org/TR/html/')) . '</p>';
-      $tips = array(
-        'a' => array( t('Anchors are used to make links to other pages.'), '<a href="' . $base_url . '">' . variable_get('site_name', 'Drupal') . '</a>'),
-        'br' => array( t('By default line break tags are automatically added, so use this tag to add additional ones. Use of this tag is different because it is not used with an open/close pair like all the others. Use the extra " /" inside the tag to maintain XHTML 1.0 compatibility'), t('Text with <br />line break')),
-        'p' => array( t('By default paragraph tags are automatically added, so use this tag to add additional ones.'), '<p>' . t('Paragraph one.') . '</p> <p>' . t('Paragraph two.') . '</p>'),
-        'strong' => array( t('Strong'), '<strong>' . t('Strong') . '</strong>'),
-        'em' => array( t('Emphasized'), '<em>' . t('Emphasized') . '</em>'),
-        'cite' => array( t('Cited'), '<cite>' . t('Cited') . '</cite>'),
-        'code' => array( t('Coded text used to show programming source code'), '<code>' . t('Coded') . '</code>'),
-        'b' => array( t('Bolded'), '<b>' . t('Bolded') . '</b>'),
-        'u' => array( t('Underlined'), '<u>' . t('Underlined') . '</u>'),
-        'i' => array( t('Italicized'), '<i>' . t('Italicized') . '</i>'),
-        'sup' => array( t('Superscripted'), t('<sup>Super</sup>scripted')),
-        'sub' => array( t('Subscripted'), t('<sub>Sub</sub>scripted')),
-        'pre' => array( t('Preformatted'), '<pre>' . t('Preformatted') . '</pre>'),
-        'abbr' => array( t('Abbreviation'), t('<abbr title="Abbreviation">Abbrev.</abbr>')),
-        'acronym' => array( t('Acronym'), t('<acronym title="Three-Letter Acronym">TLA</acronym>')),
-        'blockquote' => array( t('Block quoted'), '<blockquote>' . t('Block quoted') . '</blockquote>'),
-        'q' => array( t('Quoted inline'), '<q>' . t('Quoted inline') . '</q>'),
-        // Assumes and describes tr, td, th.
-        'table' => array( t('Table'), '<table> <tr><th>' . t('Table header') . '</th></tr> <tr><td>' . t('Table cell') . '</td></tr> </table>'),
-        'tr' => NULL, 'td' => NULL, 'th' => NULL,
-        'del' => array( t('Deleted'), '<del>' . t('Deleted') . '</del>'),
-        'ins' => array( t('Inserted'), '<ins>' . t('Inserted') . '</ins>'),
-         // Assumes and describes li.
-        'ol' => array( t('Ordered list - use the &lt;li&gt; to begin each list item'), '<ol> <li>' . t('First item') . '</li> <li>' . t('Second item') . '</li> </ol>'),
-        'ul' => array( t('Unordered list - use the &lt;li&gt; to begin each list item'), '<ul> <li>' . t('First item') . '</li> <li>' . t('Second item') . '</li> </ul>'),
-        'li' => NULL,
-        // Assumes and describes dt and dd.
-        'dl' => array( t('Definition lists are similar to other HTML lists. &lt;dl&gt; begins the definition list, &lt;dt&gt; begins the definition term and &lt;dd&gt; begins the definition description.'), '<dl> <dt>' . t('First term') . '</dt> <dd>' . t('First definition') . '</dd> <dt>' . t('Second term') . '</dt> <dd>' . t('Second definition') . '</dd> </dl>'),
-        'dt' => NULL, 'dd' => NULL,
-        'h1' => array( t('Heading'), '<h1>' . t('Title') . '</h1>'),
-        'h2' => array( t('Heading'), '<h2>' . t('Subtitle') . '</h2>'),
-        'h3' => array( t('Heading'), '<h3>' . t('Subtitle three') . '</h3>'),
-        'h4' => array( t('Heading'), '<h4>' . t('Subtitle four') . '</h4>'),
-        'h5' => array( t('Heading'), '<h5>' . t('Subtitle five') . '</h5>'),
-        'h6' => array( t('Heading'), '<h6>' . t('Subtitle six') . '</h6>')
-      );
-      $header = array(t('Tag Description'), t('You Type'), t('You Get'));
-      preg_match_all('/<([a-z0-9]+)[^a-z0-9]/i', $allowed_html, $out);
-      foreach ($out[1] as $tag) {
-        if (array_key_exists($tag, $tips)) {
-          if ($tips[$tag]) {
-            $rows[] = array(
-              array('data' => $tips[$tag][0], 'class' => array('description')),
-              array('data' => '<code>' . check_plain($tips[$tag][1]) . '</code>', 'class' => array('type')),
-              array('data' => $tips[$tag][1], 'class' => array('get'))
-            );
-          }
-        }
-        else {
-          $rows[] = array(
-            array('data' => t('No help provided for tag %tag.', array('%tag' => $tag)), 'class' => array('description'), 'colspan' => 3),
-          );
-        }
-      }
-      $output .= theme('table', array('header' => $header, 'rows' => $rows));
-
-      $output .= '<p>' . t('Most unusual characters can be directly entered without any problems.') . '</p>';
-      $output .= '<p>' . t('If you do encounter problems, try using HTML character entities. A common example looks like &amp;amp; for an ampersand &amp; character. For a full list of entities see HTML\'s <a href="@html-entities">entities</a> page. Some of the available characters include:', array('@html-entities' => 'http://www.w3.org/TR/html4/sgml/entities.html')) . '</p>';
-
-      $entities = array(
-        array( t('Ampersand'), '&amp;'),
-        array( t('Greater than'), '&gt;'),
-        array( t('Less than'), '&lt;'),
-        array( t('Quotation mark'), '&quot;'),
-      );
-      $header = array(t('Character Description'), t('You Type'), t('You Get'));
-      unset($rows);
-      foreach ($entities as $entity) {
-        $rows[] = array(
-          array('data' => $entity[0], 'class' => array('description')),
-          array('data' => '<code>' . check_plain($entity[1]) . '</code>', 'class' => array('type')),
-          array('data' => $entity[1], 'class' => array('get'))
-        );
-      }
-      $output .= theme('table', array('header' => $header, 'rows' => $rows));
-      return $output;
-    }
-
-    else {
-      return t('Allowed HTML tags: @tags', array('@tags' => $allowed_html));
-    }
-  }
-}
-
-function _filter_autop_tips($filter, $format, $long = FALSE) {
-  if ($long) {
-    return t('Lines and paragraphs are automatically recognized. The &lt;br /&gt; line break, &lt;p&gt; paragraph and &lt;/p&gt; close paragraph tags are inserted automatically. If paragraphs are not recognized simply add a couple blank lines.');
-  }
-  else {
-    return t('Lines and paragraphs break automatically.');
-  }
-}
-
-function _filter_url_tips($filter, $format, $long = FALSE) {
-  return t('Web page addresses and e-mail addresses turn into links automatically.');
-}
-
-function _filter_html_escape_tips($filter, $format, $long = FALSE) {
-  return t('No HTML tags allowed.');
-}
-
-/**
- * @} End of "Tips callback for filters".
- */
-
-/**
  * Retrieve a list of text formats, ordered by weight.
  *
  * @param $account
@@ -612,18 +490,18 @@ function _filter_list_cmp($a, $b) {
 /**
  * Check if text in a certain text format is allowed to be cached.
  */
-function filter_format_allowcache($format) {
+function filter_format_allowcache($format_id) {
   static $cache = array();
-  if (!isset($cache[$format])) {
-    $cache[$format] = db_query('SELECT cache FROM {filter_format} WHERE format = :format', array(':format' => $format))->fetchField();
+  if (!isset($cache[$format_id])) {
+    $cache[$format_id] = db_query('SELECT cache FROM {filter_format} WHERE format = :format', array(':format' => $format_id))->fetchField();
   }
-  return $cache[$format];
+  return $cache[$format_id];
 }
 
 /**
  * Retrieve a list of filters for a given text format.
  *
- * @param $format
+ * @param $format_id
  *   The format ID.
  * @param $include_disabled
  *   (optional) Boolean whether to retrieve all filters associated with the
@@ -631,15 +509,15 @@ function filter_format_allowcache($forma
  * @return
  *   An array of filter objects assosiated to the given format.
  */
-function filter_list_format($format, $include_disabled = FALSE) {
+function filter_list_format($format_id, $include_disabled = FALSE) {
   $filters = &drupal_static(__FUNCTION__, array());
   $filter_info = filter_get_filters();
 
-  if (!isset($filters[$format]) || $include_disabled) {
+  if (!isset($filters[$format_id]) || $include_disabled) {
     $format_filters = array();
     $query = db_select('filter', 'filter')
       ->fields('filter')
-      ->condition('format', $format)
+      ->condition('format', $format_id)
       ->orderBy('weight')
       ->orderBy('module')
       ->orderBy('name');
@@ -663,25 +541,25 @@ function filter_list_format($format, $in
     if ($include_disabled) {
       return $format_filters;
     }
-    $filters[$format] = $format_filters;
+    $filters[$format_id] = $format_filters;
   }
 
-  return isset($filters[$format]) ? $filters[$format] : array();
+  return isset($filters[$format_id]) ? $filters[$format_id] : array();
 }
 
 /**
  * Run all the enabled filters on a piece of text.
  *
  * Note: Because filters can inject JavaScript or execute PHP code, security is
- * vital here. When a user supplies a $format, you should validate it using
- * filter_access($format) before accepting/using it. This is normally done in
- * the validation stage of the Form API. You should for example never make a
- * preview of content in a disallowed format.
+ * vital here. When a user supplies a text format, you should validate it using
+ * filter_access() before accepting/using it. This is normally done in the
+ * validation stage of the Form API. You should for example never make a preview
+ * of content in a disallowed format.
  *
  * @param $text
  *   The text to be filtered.
- * @param $format
- *   The format of the text to be filtered. If no format is assigned, the
+ * @param $format_id
+ *   The format id of the text to be filtered. If no format is assigned, the
  *   fallback format will be used.
  * @param $langcode
  *   Optional: the language code of the text to be filtered, e.g. 'en' for
@@ -692,13 +570,13 @@ function filter_list_format($format, $in
  *   The caller may set this to FALSE when the output is already cached
  *   elsewhere to avoid duplicate cache lookups and storage.
  */
-function check_markup($text, $format = NULL, $langcode = '', $cache = TRUE) {
-  if (empty($format)) {
-    $format = filter_fallback_format();
+function check_markup($text, $format_id = NULL, $langcode = '', $cache = TRUE) {
+  if (empty($format_id)) {
+    $format_id = filter_fallback_format();
   }
 
   // Check for a cached version of this piece of text.
-  $cache_id = $format . ':' . $langcode . ':' . md5($text);
+  $cache_id = $format_id . ':' . $langcode . ':' . md5($text);
   if ($cache && $cached = cache_get($cache_id, 'cache_filter')) {
     return $cached->data;
   }
@@ -708,25 +586,25 @@ function check_markup($text, $format = N
   $text = str_replace(array("\r\n", "\r"), "\n", $text);
 
   // Get a complete list of filters, ordered properly.
-  $filters = filter_list_format($format);
+  $filters = filter_list_format($format_id);
   $filter_info = filter_get_filters();
 
   // Give filters the chance to escape HTML-like data such as code or formulas.
   foreach ($filters as $name => $filter) {
     if (isset($filter_info[$name]['prepare callback']) && function_exists($filter_info[$name]['prepare callback'])) {
-      $text = $filter_info[$name]['prepare callback']($text, $filter, $format, $langcode, $cache, $cache_id);
+      $text = $filter_info[$name]['prepare callback']($text, $filter, $format_id, $langcode, $cache, $cache_id);
     }
   }
 
   // Perform filtering.
   foreach ($filters as $name => $filter) {
     if (isset($filter_info[$name]['process callback']) && function_exists($filter_info[$name]['process callback'])) {
-      $text = $filter_info[$name]['process callback']($text, $filter, $format, $langcode, $cache, $cache_id);
+      $text = $filter_info[$name]['process callback']($text, $filter, $format_id, $langcode, $cache, $cache_id);
     }
   }
 
   // Store in cache with a minimum expiration time of 1 day.
-  if ($cache && filter_format_allowcache($format)) {
+  if ($cache && filter_format_allowcache($format_id)) {
     cache_set($cache_id, $text, 'cache_filter', REQUEST_TIME + (60 * 60 * 24));
   }
 
@@ -828,7 +706,7 @@ function filter_access($format, $account
 /**
  * Helper function for fetching filter tips.
  */
-function _filter_tips($format, $long = FALSE) {
+function _filter_tips($format_id, $long = FALSE) {
   global $user;
 
   $formats = filter_formats($user);
@@ -837,8 +715,8 @@ function _filter_tips($format, $long = F
   $tips = array();
 
   // If only listing one format, extract it from the $formats array.
-  if ($format != -1) {
-    $formats = array($formats[$format]);
+  if ($format_id != -1) {
+    $formats = array($formats[$format_id]);
   }
 
   foreach ($formats as $format) {
@@ -912,6 +790,10 @@ function theme_filter_tips_more_info() {
 /**
  * Format guidelines for a text format.
  *
+ * @param $variables
+ *   An associative array containing:
+ *   - format: An object representing a text format.
+ *
  * @ingroup themeable
  */
 function theme_filter_guidelines($variables) {
@@ -1020,6 +902,106 @@ function _filter_html($text, $filter) {
 }
 
 /**
+ * Filter tips callback for HTML filter.
+ */
+function _filter_html_tips($filter, $format, $long = FALSE) {
+  global $base_url;
+
+  if (!($allowed_html = $filter->settings['allowed_html'])) {
+    return;
+  }
+  $output = t('Allowed HTML tags: @tags', array('@tags' => $allowed_html));
+  if (!$long) {
+    return $output;
+  }
+
+  $output = '<p>' . $output . '</p>';
+  if (!$filter->settings['filter_html_help']) {
+    return $output;
+  }
+
+  $output .= '<p>' . t('This site allows HTML content. While learning all of HTML may feel intimidating, learning how to use a very small number of the most basic HTML "tags" is very easy. This table provides examples for each tag that is enabled on this site.') . '</p>';
+  $output .= '<p>' . t('For more information see W3C\'s <a href="@html-specifications">HTML Specifications</a> or use your favorite search engine to find other sites that explain HTML.', array('@html-specifications' => 'http://www.w3.org/TR/html/')) . '</p>';
+  $tips = array(
+    'a' => array(t('Anchors are used to make links to other pages.'), '<a href="' . $base_url . '">' . variable_get('site_name', 'Drupal') . '</a>'),
+    'br' => array(t('By default line break tags are automatically added, so use this tag to add additional ones. Use of this tag is different because it is not used with an open/close pair like all the others. Use the extra " /" inside the tag to maintain XHTML 1.0 compatibility'), t('Text with <br />line break')),
+    'p' => array(t('By default paragraph tags are automatically added, so use this tag to add additional ones.'), '<p>' . t('Paragraph one.') . '</p> <p>' . t('Paragraph two.') . '</p>'),
+    'strong' => array(t('Strong'), '<strong>' . t('Strong') . '</strong>'),
+    'em' => array(t('Emphasized'), '<em>' . t('Emphasized') . '</em>'),
+    'cite' => array(t('Cited'), '<cite>' . t('Cited') . '</cite>'),
+    'code' => array(t('Coded text used to show programming source code'), '<code>' . t('Coded') . '</code>'),
+    'b' => array(t('Bolded'), '<b>' . t('Bolded') . '</b>'),
+    'u' => array(t('Underlined'), '<u>' . t('Underlined') . '</u>'),
+    'i' => array(t('Italicized'), '<i>' . t('Italicized') . '</i>'),
+    'sup' => array(t('Superscripted'), t('<sup>Super</sup>scripted')),
+    'sub' => array(t('Subscripted'), t('<sub>Sub</sub>scripted')),
+    'pre' => array(t('Preformatted'), '<pre>' . t('Preformatted') . '</pre>'),
+    'abbr' => array(t('Abbreviation'), t('<abbr title="Abbreviation">Abbrev.</abbr>')),
+    'acronym' => array(t('Acronym'), t('<acronym title="Three-Letter Acronym">TLA</acronym>')),
+    'blockquote' => array(t('Block quoted'), '<blockquote>' . t('Block quoted') . '</blockquote>'),
+    'q' => array(t('Quoted inline'), '<q>' . t('Quoted inline') . '</q>'),
+    // Assumes and describes tr, td, th.
+    'table' => array(t('Table'), '<table> <tr><th>' . t('Table header') . '</th></tr> <tr><td>' . t('Table cell') . '</td></tr> </table>'),
+    'tr' => NULL, 'td' => NULL, 'th' => NULL,
+    'del' => array(t('Deleted'), '<del>' . t('Deleted') . '</del>'),
+    'ins' => array(t('Inserted'), '<ins>' . t('Inserted') . '</ins>'),
+     // Assumes and describes li.
+    'ol' => array(t('Ordered list - use the &lt;li&gt; to begin each list item'), '<ol> <li>' . t('First item') . '</li> <li>' . t('Second item') . '</li> </ol>'),
+    'ul' => array(t('Unordered list - use the &lt;li&gt; to begin each list item'), '<ul> <li>' . t('First item') . '</li> <li>' . t('Second item') . '</li> </ul>'),
+    'li' => NULL,
+    // Assumes and describes dt and dd.
+    'dl' => array(t('Definition lists are similar to other HTML lists. &lt;dl&gt; begins the definition list, &lt;dt&gt; begins the definition term and &lt;dd&gt; begins the definition description.'), '<dl> <dt>' . t('First term') . '</dt> <dd>' . t('First definition') . '</dd> <dt>' . t('Second term') . '</dt> <dd>' . t('Second definition') . '</dd> </dl>'),
+    'dt' => NULL, 'dd' => NULL,
+    'h1' => array(t('Heading'), '<h1>' . t('Title') . '</h1>'),
+    'h2' => array(t('Heading'), '<h2>' . t('Subtitle') . '</h2>'),
+    'h3' => array(t('Heading'), '<h3>' . t('Subtitle three') . '</h3>'),
+    'h4' => array(t('Heading'), '<h4>' . t('Subtitle four') . '</h4>'),
+    'h5' => array(t('Heading'), '<h5>' . t('Subtitle five') . '</h5>'),
+    'h6' => array(t('Heading'), '<h6>' . t('Subtitle six') . '</h6>')
+  );
+  $header = array(t('Tag Description'), t('You Type'), t('You Get'));
+  preg_match_all('/<([a-z0-9]+)[^a-z0-9]/i', $allowed_html, $out);
+  foreach ($out[1] as $tag) {
+    if (array_key_exists($tag, $tips)) {
+      if ($tips[$tag]) {
+        $rows[] = array(
+          array('data' => $tips[$tag][0], 'class' => array('description')),
+          array('data' => '<code>' . check_plain($tips[$tag][1]) . '</code>', 'class' => array('type')),
+          array('data' => $tips[$tag][1], 'class' => array('get'))
+        );
+      }
+    }
+    else {
+      $rows[] = array(
+        array('data' => t('No help provided for tag %tag.', array('%tag' => $tag)), 'class' => array('description'), 'colspan' => 3),
+      );
+    }
+  }
+  $output .= theme('table', array('header' => $header, 'rows' => $rows));
+
+  $output .= '<p>' . t('Most unusual characters can be directly entered without any problems.') . '</p>';
+  $output .= '<p>' . t('If you do encounter problems, try using HTML character entities. A common example looks like &amp;amp; for an ampersand &amp; character. For a full list of entities see HTML\'s <a href="@html-entities">entities</a> page. Some of the available characters include:', array('@html-entities' => 'http://www.w3.org/TR/html4/sgml/entities.html')) . '</p>';
+
+  $entities = array(
+    array(t('Ampersand'), '&amp;'),
+    array(t('Greater than'), '&gt;'),
+    array(t('Less than'), '&lt;'),
+    array(t('Quotation mark'), '&quot;'),
+  );
+  $header = array(t('Character Description'), t('You Type'), t('You Get'));
+  unset($rows);
+  foreach ($entities as $entity) {
+    $rows[] = array(
+      array('data' => $entity[0], 'class' => array('description')),
+      array('data' => '<code>' . check_plain($entity[1]) . '</code>', 'class' => array('type')),
+      array('data' => $entity[1], 'class' => array('get'))
+    );
+  }
+  $output .= theme('table', array('header' => $header, 'rows' => $rows));
+  return $output;
+}
+
+/**
  * Settings callback for URL filter.
  */
 function _filter_url_settings($form, &$form_state, $filter, $defaults) {
@@ -1057,13 +1039,6 @@ function _filter_url($text, $filter) {
 }
 
 /**
- * Scan input and make sure that all HTML tags are properly closed and nested.
- */
-function _filter_htmlcorrector($text) {
-  return filter_dom_serialize(filter_dom_load($text));
-}
-
-/**
  * Make links out of absolute URLs.
  */
 function _filter_url_parse_full_links($match) {
@@ -1101,6 +1076,20 @@ function _filter_url_trim($text, $length
 }
 
 /**
+ * Filter tips callback for URL filter.
+ */
+function _filter_url_tips($filter, $format, $long = FALSE) {
+  return t('Web page addresses and e-mail addresses turn into links automatically.');
+}
+
+/**
+ * Scan input and make sure that all HTML tags are properly closed and nested.
+ */
+function _filter_htmlcorrector($text) {
+  return filter_dom_serialize(filter_dom_load($text));
+}
+
+/**
  * Convert line breaks into <p> and <br> in an intelligent fashion.
  * Based on: http://photomatt.net/scripts/autop
  */
@@ -1160,6 +1149,18 @@ function _filter_autop($text) {
 }
 
 /**
+ * Filter tips callback for auto-paragraph filter.
+ */
+function _filter_autop_tips($filter, $format, $long = FALSE) {
+  if ($long) {
+    return t('Lines and paragraphs are automatically recognized. The &lt;br /&gt; line break, &lt;p&gt; paragraph and &lt;/p&gt; close paragraph tags are inserted automatically. If paragraphs are not recognized simply add a couple blank lines.');
+  }
+  else {
+    return t('Lines and paragraphs break automatically.');
+  }
+}
+
+/**
  * Escapes all HTML tags, so they will be visible instead of being effective.
  */
 function _filter_html_escape($text) {
@@ -1167,5 +1168,12 @@ function _filter_html_escape($text) {
 }
 
 /**
+ * Filter tips callback for HTML escaping filter.
+ */
+function _filter_html_escape_tips($filter, $format, $long = FALSE) {
+  return t('No HTML tags allowed.');
+}
+
+/**
  * @} End of "Standard filters".
  */
Index: modules/filter/filter.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.pages.inc,v
retrieving revision 1.8
diff -u -p -r1.8 filter.pages.inc
--- modules/filter/filter.pages.inc	9 Oct 2009 00:59:58 -0000	1.8
+++ modules/filter/filter.pages.inc	10 Oct 2009 20:15:24 -0000
@@ -11,9 +11,9 @@
  * Menu callback; show a page with long filter tips.
  */
 function filter_tips_long() {
-  $format = arg(2);
-  if ($format) {
-    $output = theme('filter_tips', array('tips' => _filter_tips($format, TRUE), 'long' => TRUE));
+  $format_id = arg(2);
+  if ($format_id) {
+    $output = theme('filter_tips', array('tips' => _filter_tips($format_id, TRUE), 'long' => TRUE));
   }
   else {
     $output = theme('filter_tips', array('tips' => _filter_tips(-1, TRUE), 'long' => TRUE));
Index: modules/filter/filter.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.test,v
retrieving revision 1.44
diff -u -p -r1.44 filter.test
--- modules/filter/filter.test	9 Oct 2009 16:14:16 -0000	1.44
+++ modules/filter/filter.test	10 Oct 2009 20:21:00 -0000
@@ -165,7 +165,7 @@ class FilterAdminTestCase extends Drupal
     $this->drupalPost(NULL, $edit, t('Save configuration'));
 
     // Edit text format.
-    $format = $this->getFilter($edit['name']);
+    $format = $this->getFormat($edit['name']);
     $this->drupalGet('admin/config/content/formats');
     $this->assertRaw('admin/config/content/formats/' . $format->format);
     $this->drupalGet('admin/config/content/formats/' . $format->format);
@@ -240,7 +240,7 @@ class FilterAdminTestCase extends Drupal
     $this->drupalPost('admin/config/content/formats/add', $edit, t('Save configuration'));
     $this->assertRaw(t('Added text format %format.', array('%format' => $edit['name'])), t('New filter created.'));
 
-    $format = $this->getFilter($edit['name']);
+    $format = $this->getFormat($edit['name']);
     $this->assertNotNull($format, t('Format found in database.'));
 
     if ($format !== NULL) {
@@ -347,14 +347,14 @@ class FilterAdminTestCase extends Drupal
   }
 
   /**
-   * Get filter by name.
+   * Retrieve a text format object by name.
    *
    * @param $name
-   *   Name of filter to find.
+   *   The name of a text format.
    * @return
-   *   A filter object.
+   *   A text format object.
    */
-  function getFilter($name) {
+  function getFormat($name) {
     return db_query("SELECT * FROM {filter_format} WHERE name = :name", array(':name' => $name))->fetchObject();
   }
 }
@@ -1148,12 +1148,12 @@ class FilterHooksTestCase extends Drupal
     $this->assertRaw(t('Added text format %format.', array('%format' => $name)), t('New format created.'));
     $this->assertText('hook_filter_format_insert invoked.', t('hook_filter_format_insert was invoked.'));
 
-    $format = db_query("SELECT format FROM {filter_format} WHERE name = :name", array(':name' => $name))->fetchField();
+    $format_id = db_query("SELECT format FROM {filter_format} WHERE name = :name", array(':name' => $name))->fetchField();
 
     // Update text format.
     $edit = array();
     $edit['roles[2]'] = 1;
-    $this->drupalPost('admin/config/content/formats/' . $format, $edit, t('Save configuration'));
+    $this->drupalPost('admin/config/content/formats/' . $format_id, $edit, t('Save configuration'));
     $this->assertRaw(t('The text format %format has been updated.', array('%format' => $name)), t('Format successfully updated.'));
     $this->assertText('hook_filter_format_update invoked.', t('hook_filter_format_update() was invoked.'));
 
@@ -1163,7 +1163,7 @@ class FilterHooksTestCase extends Drupal
     $custom_block['title'] = $this->randomName(8);
     $custom_block['body'] = $this->randomName(32);
     // Use the format created.
-    $custom_block['body_format'] = $format;
+    $custom_block['body_format'] = $format_id;
     $this->drupalPost('admin/structure/block/add', $custom_block, t('Save block'));
     $this->assertText(t('The block has been created.'), t('New block successfully created.'));
 
@@ -1172,7 +1172,7 @@ class FilterHooksTestCase extends Drupal
     $this->assertNotNull($bid, t('New block found in database'));
 
     // Delete the text format.
-    $this->drupalPost('admin/config/content/formats/' . $format . '/delete', array(), t('Delete'));
+    $this->drupalPost('admin/config/content/formats/' . $format_id . '/delete', array(), t('Delete'));
     $this->assertRaw(t('Deleted text format %format.', array('%format' => $name)), t('Format successfully deleted.'));
     $this->assertText('hook_filter_format_delete invoked.', t('hook_filter_format_delete() was invoked.'));
 
