? 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.134
diff -u -p -r1.134 pm.drush.inc
--- commands/pm/pm.drush.inc	8 Nov 2010 18:10:07 -0000	1.134
+++ commands/pm/pm.drush.inc	17 Nov 2010 14:58:56 -0000
@@ -361,7 +361,7 @@ function drush_pm_list() {
  * Command callback. Enable one or more projects.
  */
 function drush_pm_enable() {
-  $args = func_get_args();
+  $args = _convert_csv_to_array(func_get_args());
 
   $project_info = drush_get_projects();
 
@@ -463,7 +463,7 @@ function drush_pm_enable() {
  * Command callback. Disable one or more projects.
  */
 function drush_pm_disable() {
-  $args = func_get_args();
+  $args = _convert_csv_to_array(func_get_args());
 
   $project_info = drush_get_projects();
 
@@ -606,7 +606,7 @@ function drush_pm_classify_projects(&$pr
  * Command callback. Show detailed info for one or more projects.
  */
 function drush_pm_info() {
-  $args = func_get_args();
+  $args = _convert_csv_to_array(func_get_args());
 
   $project_info = drush_pm_get_projects();
   _drush_pm_expand_projects($args, $project_info);
@@ -768,7 +768,7 @@ function _drush_pm_expand_projects(&$pro
  * // TODO: Use drupal_execute on system_modules_uninstall_confirm_form so that input is validated.
  */
 function drush_pm_uninstall() {
-  $modules = func_get_args();
+  $modules = _convert_csv_to_array(func_get_args());
 
   drush_include_engine('drupal', 'environment');
   $module_info = drush_get_modules();
Index: includes/drush.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/drush/includes/drush.inc,v
retrieving revision 1.148
diff -u -p -r1.148 drush.inc
--- includes/drush.inc	14 Nov 2010 04:50:12 -0000	1.148
+++ includes/drush.inc	17 Nov 2010 14:58:58 -0000
@@ -682,6 +682,27 @@ function dt($string, $args = array()) {
 }
 
 /**
+ * Convert a csv string, or an array of items which
+ * may contain csv strings, into an array of items.
+ *
+ * @param $args
+ *   A simple csv string; e.g. 'a,b,c'
+ *   or a simple list of items; e.g. array('a','b','c')
+ *   or some combination; e.g. array('a,b','c') or array('a,','b,','c,')
+ *   
+ * @returns array
+ *   A simple list of items (e.g. array('a','b','c')
+ */
+function _convert_csv_to_array($args) {
+  //
+  // Step 1: implode(',',$args) converts from, say, array('a,','b,','c,') to 'a,,b,,c,'
+  // Step 2: explode(',', ...) converts to array('a','','b','','c','')
+  // Step 3: array_filter(...) removes the empty items
+  //
+  return array_filter(explode(',', is_array($args) ? implode(',',$args) : $args));
+}
+
+/**
  * Get the available global options. Used by help command.
  *
  * @return
