Index: views.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/views.module,v
retrieving revision 1.166.2.43
diff -u -8 -p -w -u -p -r1.166.2.43 views.module
--- views.module	14 Jul 2007 18:54:16 -0000	1.166.2.43
+++ views.module	27 Feb 2008 15:23:04 -0000
@@ -1907,17 +1907,17 @@ function views_url_user($token, $argumen
   // if a user loads, return true.
   return (bool) user_load($arg);
 }
 
 /**
  * A list of options to be used in LIKE queries
  */
 function views_handler_operator_like() {
-  return array('=' => t('Is Equal To'), 'contains' => t('Contains'), 'word' => t('Contains Any Word'), 'allwords' => t('Contains All Words'), 'starts' => t('Starts With'), 'ends' => t('Ends With'), 'not' => t('Does Not Contain'));
+  return array('=' => t('Is Equal To'), '!=' => t('Is Not Equal To'), 'contains' => t('Contains'), 'word' => t('Contains Any Word'), 'allwords' => t('Contains All Words'), 'starts' => t('Starts With'), 'ends' => t('Ends With'), 'not' => t('Does Not Contain'));
 }
 
 /**
  * Custom filter for LIKE operations
  */
 function views_handler_filter_like($op, $filter, $filterinfo, &$query) {
   switch (trim($filter['value'])) {
     case (''):
@@ -1975,16 +1975,20 @@ function views_handler_filter_like($op, 
         case 'not':
           $query->add_where("UPPER(%s) NOT LIKE UPPER('%%%s%%')",
             $field, $filter['value']);
           break;
         case '=':
           $query->add_where("UPPER(%s) = UPPER('%s')",
             $field, $filter['value']);
           break;
+        case '!=':
+          $query->add_where("UPPER(%s) != UPPER('%s')",
+            $field, $filter['value']);
+          break;
       }
     break;
   }
 }
 
 /**
  * Custom filter for IS NULL and IS NOT NULL operations
  * Operator must be 'IS' or 'IS NOT'
