--- htmlpurifier-master/htmlpurifier.module
+++ htmlpurifier-7.x-1.x/htmlpurifier.module
@@ -98,6 +98,9 @@
       'htmlpurifier_help' => TRUE,
     ),
     'tips callback' => '_htmlpurifier_filter_tips',
+    // Since HTML Purifier implements its own caching layer, having filter
+    // cache it again is wasteful. Returns TRUE if double caching is permitted.
+    'cache' => variable_get("htmlpurifier_doublecache", FALSE),
   );
   $filters['htmlpurifier_advanced'] = array(
     'title' => t('HTML Purifier (advanced)'),
@@ -297,12 +300,6 @@
     // move it over.  There is code for emitting errors in
     // htmlpurifier.install when this is the case.
     if (!file_exists("$library_path/library/HTMLPurifier.auto.php")) {
-      // Check for an alternate phrasing and error about it
-      if (file_exists("$library_path/HTMLPurifier.auto.php") &&
-         !file_exists("$module_path/library/HTMLPurifier.auto.php")) {
-         echo "HTML Purifier was installed improperly; move contents of folder $library_path to $library_path/library";
-         exit;
-      }
       $library_path = $module_path;
     }
   }
@@ -314,10 +311,7 @@
   $factory->register('Drupal', 'HTMLPurifier_DefinitionCache_Drupal');
 
   // Register the version as a variable:
-  $current_version = variable_get('htmlpurifier_version_ours', FALSE);
-  if ($current_version != HTMLPurifier::VERSION) {
-    variable_set('htmlpurifier_version_ours', HTMLPurifier::VERSION);
-  }
+  variable_set('htmlpurifier_version_ours', HTMLPurifier::VERSION);
 }
 
 /**
@@ -337,6 +331,10 @@
   $config->set('HTML.Doctype', 'XHTML 1.0 Transitional'); // Probably
   $config->set('Core.AggressivelyFixLt', TRUE);
   $config->set('Cache.DefinitionImpl', 'Drupal');
+  
+  // Filter HTML doesn't allow external images, so neither will we...
+  // for now. This can be configured off.
+  $config->set('URI.DisableExternalResources', TRUE);
   
   if (!empty($_SERVER['SERVER_NAME'])) {
     // SERVER_NAME is more reliable than HTTP_HOST
@@ -356,11 +354,11 @@
     // D6 version, which also treated this as a per-format setting and
     // therefore had the same limitation.
     $filters = $format ? filter_list_format($format) : array();
-    if (!empty($filters['htmlpurifier_advanced']->status) && isset($filters['htmlpurifier_advanced']->settings['htmlpurifier_advanced_config'])) {
-      $config_data = $filters['htmlpurifier_advanced']->settings['htmlpurifier_advanced_config'];
-    }
-    elseif (!empty($filters['htmlpurifier_basic']->status) && isset($filters['htmlpurifier_basic']->settings['htmlpurifier_basic_config'])) {
-      $config_data = $filters['htmlpurifier_basic']->settings['htmlpurifier_basic_config'];
+    if (!empty($filters['htmlpurifier_advanced']->status) && isset($filters['htmlpurifier_advanced']->settings['htmlpurifier_config'])) {
+      $config_data = $filters['htmlpurifier_advanced']->settings['htmlpurifier_config'];
+    }
+    elseif (!empty($filters['htmlpurifier_basic']->status) && isset($filters['htmlpurifier_basic']->settings['htmlpurifier_config'])) {
+      $config_data = $filters['htmlpurifier_basic']->settings['htmlpurifier_config'];
     }
     else {
       $config_data = FALSE;
@@ -453,6 +451,8 @@
   
   $settings['#attached']['css'][] = "$module_path/config-form.css";
   $settings['#attached']['js'][] = "$module_path/config-form.js";
+  // TODO: This is broken. The JavaScript may need to be rewritten, or it may
+  // need to be added via more standard methods.
   $settings['#attached']['js'][] = array(
     'data' => HTMLPurifier_Printer_ConfigForm::getJavaScript(),
     'type' => 'inline',
@@ -501,9 +501,9 @@
     
     $config = _htmlpurifier_get_config($format->format);
     $config_form = new HTMLPurifier_Printer_ConfigForm(
-      $filter->name . '_config', 'http://htmlpurifier.org/live/configdoc/plain.html#%s'
+      'htmlpurifier_config', 'http://htmlpurifier.org/live/configdoc/plain.html#%s'
     );
-    $settings[$filter->name . '_config'] = array(
+    $settings['htmlpurifier_config'] = array(
       '#markup' => $intro . $config_form->render($config, $allowed, FALSE),
       '#after_build' => array('_htmlpurifier_config_hack'),
     );
@@ -554,5 +554,3 @@
   cache_clear_all('*', 'cache_htmlpurifier', TRUE);
   cache_clear_all('htmlpurifier:', 'cache', TRUE);
 }
-
-// vim: syntax=php

