? drush_module_install.patch
? includes/table.inc
Index: commands/pm/pm.drush.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/drush/commands/pm/pm.drush.inc,v
retrieving revision 1.45
diff -u -p -r1.45 pm.drush.inc
--- commands/pm/pm.drush.inc	3 Sep 2009 13:44:48 -0000	1.45
+++ commands/pm/pm.drush.inc	16 Sep 2009 21:43:25 -0000
@@ -240,8 +240,23 @@ function pm_module_manage($modules = arr
       if(!drush_confirm(dt('Do you really want to continue?'))) {
         drush_die('Aborting.');
       }
+      // Make sure the install API is available.
+      require_once './includes/install.inc';
       // We enable the modules explicitly here, to pass dependency validation in the form submit.
-      module_enable($modules);
+      $install_modules = array();
+      $enable_modules = array();
+      foreach ($modules as $module) {
+        // In Drupal 5, drupal_install_modules() only installs new modules,
+        // and does not enable previously installed and disabled modules.
+        if (drupal_get_installed_schema_version($module) == SCHEMA_UNINSTALLED) {
+          $install_modules[] = $module;
+        }
+        else {
+          $enable_modules[] = $module;
+        }
+      }
+      drupal_install_modules($install_modules);
+      module_enable($enable_modules);
       $current = drupal_map_assoc($enabled, 'pm_true');
       // Add the list of enabled modules from the active modules list.
       $active_modules = array_merge($current, drupal_map_assoc($modules, 'pm_true'));
