Index: handlers/views_handler_argument.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/handlers/views_handler_argument.inc,v
retrieving revision 1.7
diff -u -r1.7 views_handler_argument.inc
--- handlers/views_handler_argument.inc	20 Feb 2009 20:12:38 -0000	1.7
+++ handlers/views_handler_argument.inc	11 Apr 2009 01:28:10 -0000
@@ -105,6 +105,7 @@
     $options['default_argument'] = array('default' => '');
     $options['validate_type'] = array('default' => 'none');
     $options['validate_fail'] = array('default' => 'not found');
+    $options['inverse_argument'] = array('default' => FALSE);
 
     return $options;
   }
@@ -234,6 +235,13 @@
     $form['validate_options_div_suffix'] = array(
       '#value' => '</fieldset>',
     );
+
+    $form['inverse_argument'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Invert argument matching'),
+      '#description' => t('When checked, argument will match everything that is not the given argument'),
+      '#default_value' => $this->options['inverse_argument'],
+    );
   }
 
   /**
@@ -589,7 +597,8 @@
   function query() {
     $this->ensure_my_table();
     $placeholder = empty($this->definition['numeric']) ? "'%s'" : '%d';
-    $this->query->add_where(0, "$this->table_alias.$this->real_field = $placeholder", $this->argument);
+    $operator = $this->options['inverse_argument'] ? '<>' : '=';
+    $this->query->add_where(0, "$this->table_alias.$this->real_field $operator $placeholder", $this->argument);
   }
 
   /**
