Index: text.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/cck/text.module,v
retrieving revision 1.17
diff -u -r1.17 text.module
--- text.module	28 Mar 2006 18:46:08 -0000	1.17
+++ text.module	1 Apr 2006 14:03:47 -0000
@@ -46,13 +46,17 @@
         '#required' => FALSE,
         '#description' => t('The maximum length of the field in characters. Leave blank for an unlimited size.'),
       );
+      if(module_exist('options')) $form = options_field_settings('form', $field, $form);
       return $form;
 
     case 'validate':
+      if (module_exist('options')) options_field_settings('validate', $field);
       break;
 
     case 'save':
-      return array('text_processing', 'max_length');
+      $vals = array('text_processing', 'max_length');
+      if (module_exist('options')) $vals = array_merge($vals, options_field_settings('save', $field));
+      return $vals;
 
     case 'database columns':
       $columns = array(
@@ -80,24 +84,30 @@
     case 'view':
       $output = '';
       $node_field = $node->$field['field_name'];
-      if ($field['multiple']) {
-        foreach ($node_field as $delta => $item) {
-          $node_field[$delta]['view'] = text_field_view($field, $item['value'], $item, $node);
+      // let the options widget control the display of the field, if being used
+      if (module_exist('options') && strstr($field['widget']['type'], 'option')) {
+        return options_field($op, &$node, $field, $a2, $a3, $a4);
+      
+      } else {
+        if ($field['multiple']) {
+          foreach ($node_field as $delta => $item) {
+            $node_field[$delta]['view'] = text_field_view($field, $item['value'], $item, $node);
+          }
         }
-      }
-      else {
-        $node_field['view'] = text_field_view($field, $node_field['value'], $node_field, $node);
-      }
-      $node->$field['field_name'] = $node_field;
-      if ($field['multiple']) {
-        $output = '';
-        foreach ($node_field as $delta => $item) {
-          $output .= '<div class="'. $field['field_name'] .'">'. $item['view'] .'</div>';
+        else {
+          $node_field['view'] = text_field_view($field, $node_field['value'], $node_field, $node);
+        }
+        $node->$field['field_name'] = $node_field;
+        if ($field['multiple']) {
+          $output = '';
+          foreach ($node_field as $delta => $item) {
+            $output .= '<div class="'. $field['field_name'] .'">'. $item['view'] .'</div>';
+          }
+          return $output;
+        }
+        else {
+          return '<div class="'. $field['field_name'] .'">'. $node_field['view'] .'</div>';
         }
-        return $output;
-      }
-      else {
-        return '<div class="'. $field['field_name'] .'">'. $node_field['view'] .'</div>';
       }
   }
 }
