Index: devel.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/devel/devel.module,v
retrieving revision 1.412
diff -u -r1.412 devel.module
--- devel.module	28 Mar 2010 15:11:33 -0000	1.412
+++ devel.module	3 Apr 2010 09:57:59 -0000
@@ -659,8 +659,7 @@
 
     case 'execute_php':
       if (user_access('execute php code')) {
-        $block['subject'] = t('Execute PHP');
-        $block['content'] = drupal_get_form('devel_execute_form');
+        $block['content'] = drupal_get_form('devel_execute_block_form');
       }
       break;
   }
@@ -1030,15 +1029,30 @@
 /**
  * Generates the execute block form.
  */
+function devel_execute_block_form() {
+  $form['execute'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Execute PHP Code'),
+    '#collapsible' => TRUE,
+    '#collapsed' => (!isset($_SESSION['devel_code'])),
+  );
+  $form['#submit'] = array('devel_execute_form_submit');
+  return array_merge_recursive($form, devel_execute_form());
+}
+
+/**
+ * Generates the execute form.
+ */
 function devel_execute_form() {
-  $form['code'] = array(
+  $form['execute']['code'] = array(
     '#type' => 'textarea',
     '#title' => t('PHP code to execute'),
-    '#description' => t('Enter some code. Do not use <code>&lt;?php ?&gt;</code> tags.')
+    '#description' => t('Enter some code. Do not use <code>&lt;?php ?&gt;</code> tags.'),
+    '#default_value' => (isset($_SESSION['devel_code']) ? $_SESSION['devel_code'] : ''),
   );
-  $form['op'] = array('#type' => 'submit', '#value' => t('Execute'));
+  $form['execute']['op'] = array('#type' => 'submit', '#value' => t('Execute'));
   $form['#redirect'] = FALSE;
-  $form['#skip_duplicate_check'] = TRUE;
+  unset($_SESSION['devel_code']);
   return $form;
 }
 
@@ -1048,6 +1062,7 @@
 function devel_execute_form_submit($form, &$form_state) {
   ob_start();
   print eval($form_state['values']['code']);
+  $_SESSION['devel_code'] = $form_state['values']['code'];
   dsm(ob_get_clean());
 }
 
