--- image.imagemagick.inc	4 Sep 2005 22:49:26 -0000	1.2
+++ image.imagemagick.inc	24 Sep 2006 20:01:14 -0000
@@ -6,20 +6,32 @@
  */
 function image_imagemagick_info() {
   return array('name' => 'imagemagick', 'title' => 'ImageMagick Toolkit.');
-  
+
 }
 
 /**
  * Validate and return toolkit specific settings
  */
 function image_imagemagick_settings() {
-  $convert_file = variable_get('image_imagemagick_convert', '/usr/bin/convert');
+ $convert_file = isset($_POST['edit']['image_imagemagick_convert']) ? $_POST['edit']['image_imagemagick_convert'] : variable_get('image_imagemagick_convert', '/usr/bin/convert');
 
   if (!file_exists($convert_file)) {
     form_set_error('image_imagemagick_convert', t('%file does not exist or is not executable.', array('%file' => "<em>$convert_file</em>")));
   }
-  
-  return form_textfield(t('Location of the "convert" binary'), 'image_imagemagick_convert', $convert_file, 64, 64);
+
+  $form['imagemagick'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Image Toolkit Settings')
+  );
+  $form['imagemagick']['image_imagemagick_convert'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Location of the "convert" binary'),
+    '#description' => t("In order to use ImageMagick's 'convert' utility, Drupal must be able to find it. Enter its pathname, e.g. /usr/bin/convert"),
+    '#default_value' => $convert_file,
+    '#validate' => array('image_imagemagick_settings_validate' => array())
+  );
+
+  return $form;
 }
 
 /**
@@ -34,8 +46,8 @@
  * Rotate an image
  */
 function image_imagemagick_rotate($source, $dest, $degrees) {
-  $filter = ' -rotate ' . escapeshellarg($degrees) . ' -background #000000';  
-  return _image_imagemagick_convert($source, $dest, $filter);  
+  $filter = ' -rotate ' . escapeshellarg($degrees) . ' -background #000000';
+  return _image_imagemagick_convert($source, $dest, $filter);
 }
 
 /**
@@ -43,7 +55,7 @@
  */
 function image_imagemagick_crop($source, $dest, $x, $y, $width, $height) {
   $filter = ' -crop ' . $width . 'x' . $height . '+' . $x . '+' . $y;
-  return _image_imagemagick_convert($source, $dest, $filter);  
+  return _image_imagemagick_convert($source, $dest, $filter);
 }
 
 /**
@@ -69,7 +81,7 @@
   if (!file_exists($convert_path)) {
     return false;
   }
-  
+
   $filter = preg_replace("/[^A-Za-z0-9\.\-\+\040]/", '', $filter);
   $source = _image_escape_shell($source);
   $dest = _image_escape_shell($dest);
@@ -80,7 +92,7 @@
   if (!file_exists(trim($dest, "'"))) {
     return false;
   }
-  
+
   return true;
 }
 
@@ -93,8 +105,8 @@
       return false;
     }
   } else {
-    return exec($cmd);    
+    return exec($cmd);
   }
-} 
+}
 
 ?>
--- image.module	23 Aug 2006 20:00:31 -0000	1.197.2.3
+++ image.module	24 Sep 2006 20:03:06 -0000
@@ -70,6 +70,11 @@
   $form['sizes'] = array('#type' => 'fieldset', '#title' => t('Image sizes'));
   $form['sizes']['image_sizes'] = image_settings_sizes_form();
 
+  $image_toolkit_settings = 'image_' . image_get_toolkit() . '_settings';
+  if (is_array($image_toolkit_settings()) && function_exists($image_toolkit_settings)) {
+    $form = array_merge($form, $image_toolkit_settings());
+  }
+
   return $form;
 }
 
@@ -262,7 +267,7 @@
   }
 
   $form['thumbnail']['#after_build'] = array('image_form_add_thumbnail');
-  
+
   $form['image'] = array('#type' => 'file', '#title' => t('Image'), '#description' => t('Click "Browse..." to select an image to upload.'), '#weight' => -3);
   $form['body'] = array('#type' => 'textarea', '#title' => t('Body'), '#rows' => 20, '#default_value' => $node->body);
   $form['format'] = filter_form($node->format);
@@ -557,7 +562,7 @@
   if ($temp) {
     $path .= 'temp/';
   }
-  
+
   if ($type) {
     $pos = strrpos($filename, '.');
     if ($pos === false) {
@@ -605,7 +610,7 @@
   if (($label != '_original') && ($image == file_create_path($node->images['_original']))) {
     return;
   }
-  
+
   $dest = _image_filename(basename($image));
   if (file_copy($image, $dest)) {
     $info = image_get_info(file_create_path($dest));
