Index: number.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/cck/number.module,v
retrieving revision 1.13
diff -u -r1.13 number.module
--- number.module	28 Mar 2006 19:08:24 -0000	1.13
+++ number.module	1 Apr 2006 18:49:53 -0000
@@ -43,6 +43,7 @@
         '#title' => t('Maximum'),
         '#default_value' => $field['max'] ? $field['max'] : '',
       );
+      if(module_exist('options')) $form = options_field_settings('form', $field, $form);
       return $form;
 
     case 'validate':
@@ -52,10 +53,13 @@
       if ($field['max'] && !is_numeric($field['max'])) {
         form_set_error('rows', t('"Maximum" must be a number.'));
       }
+      if (module_exist('options')) options_field_settings('validate', $field);
       break;
 
     case 'save':
-      return array('min', 'max');
+      $vals = array('min', 'max');
+      if (module_exist('options')) $vals = array_merge($vals, options_field_settings('save', $field));
+      return $vals;
 
     case 'database columns':
       if ($field['type'] == 'number_integer') {
@@ -80,25 +84,30 @@
       $output = '';
       $node_field = $node->$field['field_name'];
 
-      if ($field['multiple']) {
-        foreach ($node_field as $delta => $item) {
-          $node_field[$delta]['view'] = number_field_view($field, $item['value']);
+      // 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'] = number_field_view($field, $item['value']);
+          }
         }
-      }
-      else {
-        $node_field['view'] = number_field_view($field, $node_field['value']);
-      }
-
-      $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'] = number_field_view($field, $node_field['value']);
+        }
+        $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>';
       }
       break;
   }
