NOTE:
- an IBMer which is not a committer on the Eclipse project also gets the 'contributed' keyword BUT: is not listed in the copyright notice.   
- As of 3.5 the 'iplog' flag replaces the 'contributed' keyword. It has to be set on the *attachment* (normally patch) that contains the contribution. 
  If there are multiple attachments being contributed, add the flag for each applicable attachment. This allows the system to automatically
  harvest data about the size of the contribution, who contributed it (the person who added the attachment), and the committer who processed the contribution (the person who set the 'iplog+' flag). 
  There is also an 'iplog' flag for the entire bug report next to the 'review' and 'pmc_approved' flags.  This flag should only be used if the contribution is not in the form of an attachment.
  For example, you can use this if the contributor added code or pseudo-code directly in the comment field.  The correct solution in this case is to ask the contributor to attach a proper patch
  so it can be flagged. If this is not possible or the contributor doesn't respond, you can resort to setting the global 'iplog' flag on the bug itself. What this flag does is flag every
  non-committer who added a comment to the bug as contributors. If there are comments in the same bug that are not part of the contribution, they then need to be excluded manually by editing the
  project IP log. See http://wiki.eclipse.org/Development_Resources/Automatic_IP_Log#Contributors for more details. 


3.4		!!! NOTE: Set the 'contributed' keyword for such bugs !!!		
- (M1)  Juerg Billeter (juergbi@ethz.ch), Ulrich Etter (etteru@ethz.ch), Roman Fuchs (fuchsro@ethz.ch) - 47136 Search view should show match objects, e.g. matched text line
- (M4)  Markus Schorn (markus.schorn@windriver.com) - 72322 Provide Search drop down toolbar button rather than simple button

3.5		!!! NOTE: Set the 'iplog' flag on each attachment/patch (see above) !!!
