2004-01-13 John Camelon
	Updated CompletionEngine to handle IASTCompletionKind.CompletionKind.STATEMENT_START

2004-01-08 Hoda Amer
	Added Content assist log cpabilities
	
2004-01-07 Alain Magloire

	Fix for bug 49595
	The error parser order were not save correctly.

	* src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java

2003-12-31 Hoda Amer
	Displayed "No Completions Found" message in status bar
	 
2003-12-30 Hoda Amer
	- Fix for bug#44359: Content Assist: foo(void) does not require args to be filled
	- Fix for bug#44378: Content Assist: easy keyboard exit of argument-providing mode
	
2003-12-29 Hoda Amer
	- Added context checking for completions comming from contributions
	- Added preference : Show proposals in Alphabetical Order
	- Fix for bug #44043: code assist letter by letter doesn't update properly 
	- Fix for bug #44251: Code Assist: bad error message on preference page 
	
2003-12-22 Hoda Amer
	Content Assist work : Added context information to templates.
	Added scope information into relevance calculations
	Added special icon to indicate a local variable

2003-12-19 Alain Magloire

	Fix for PR 40247.
	We have to overload Eclipse ViewSorter.compare() it uses
	the label provider, it adds ">" to the project name and
	mixing the sorting.

	* src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java

2003-12-17 Hoda Amer
	Content Assist work: Completion Engine calling new lookups
	
2003-12-15 Andrew Niefer
	Updated CompletionEngine to match new signature for IASTNode.lookup

2003-12-15 Alain Magloire

	Header icon provide by  Mirza Hadzic PR 26486.  Thanks.

	* icons/full/obj16/h_file_obj.gif
	* src/org/eclipse/cdtzxinternal/ui/CElementImagerProvider.java
	* src/org/eclipse/cdt/internal/ui/CPluginImages.java
	* plugin.xml

2003-12-15 Hoda Amer
	Fixed [Bug 47234] new ParserMode required for a better CModel :
	- Added a user preference to build the CModel using Structural mode
	Enabled the Completion Engine and called the parser in Contextual Mode
	Changed default user preference to Project scope until the completion engine is ready
	
2003-12-15 Thomas Fletcher
	Re-activate the hover help based on the function summary extension point. 
	Fix a bug in the FunctionSummary class which displayed arguments as
	the return value for functions.

2003-12-11 John Camelon
	Updated CompletionEngine to deal with new signatures/exceptions in parser.  

2002-12-11 David Inglis
	Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=48596
	
	* src/org/eclipse/cdt/ui/CElementContentProvider.java
	
2003-12-10 Alain Magloire

	A quick fix for PR 47751.  The correct way to deal with this
	is a rewrite of CDocumentProvider.java  ...

	* src/org/eclipse/cdt/internal/ui/CEditor.java (setInput):
	Change the DocumentProvider if the file is external.

2003-12-09 Hoda Amer
	Content Assist work: Modified the project scope user preference
	Removed the case sensitivily user preference.
	Exported content assist strings to a properties file.
	
2003-12-05 Andrew Niefer
	fix bug 43932 Search: Wrong icons for context search in Outline View 
	fix bug 48020 Duplicate Mnemonics in Search Dialog 

2003-12-03 Hoda Amer
	Content Assist work :Added a new internal package for content assist
	Added more functionality to the CompletionEngine.
	Added the Case Sensitive user preference.
	 
2003-11-27 Hoda Amer
	Content Assist work : Added a ResultCollector class
	and moved the ICCompletionProposal from an internal package 
	to an external one.
	
2003-11-14 David Inglis
	Fixed bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=46685

2003-11-11 Sean Evoy
	There is a duplicate set of these string resources in the standard make
	UI plugin, so there is little need to keep these resources in the common UI 
	plugin if the managed builder is the only one using them. Moving them also 
	reduces the dependencies between the builder UI and the core UI packages. The 
	managed builder UI is the only client of these strings, so there should be no  
	impact.
	* src/org/eclipse/cdt/internal/ui/CPluginResources.properties

2003-11-10 Bogdan Gheorghe
	fix bug 45688: must highlight keyword  to use "Open Declarations" or  "Add Include"

2003-11-05 John Camelon
	Updated parser clients to use new ParserFactory (stand-alone parser work item).  	
	
2003-11-05 John Camelon
	Updated parser clients to use new IProblem strategy.  

2003-10-28 Andrew Niefer
	fix bug 44337 : Disabling of "definition" not making sense in Search dialog 
	fix bug 44947 : Navigate from Outline: Enumeration type not pre-populated 
	fix bug 44948 : Navigate via Open Declarations: typedef decl not found 

2003-10-22 Hoda Amer
	Fixed bug#45115: New Class Wizard: Error in base class doesn't clear when ... 
	
2003-10-20 Hoda Amer
	Fixed bug#44507 outline flickers with CDT1.2 RC0
	In CReconcilingStrategy, the outliner is asked to redraw only 
	if there was a real change.

2003-10-18 Alain Magloire

	New Binary Parser tab page for Cygwin PE Parser.

	* src/org/eclipse/cdt/ui/dialogs/CygwinPEBinaryParser.java
	* plugin.xml: Advertise this new parser.

2003-10-17 David Inglis

	Fix build error with Eclipse 3.0.

	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
	* src/org/eclipse/cdt/internal/ui/editor/CMarkerAnnotationModel.java
	* src/org/eclipse/cdt/internal/ui/editor/SharedTextColors.java
	* src/org/eclipse/cdt/ui/CUIPlugin.java

2003-10-16 Alain Magloire

	Fix null out the dynamic parser page, it not selected.

	* src/org/eclipse/cdt/ui/dialogs/AbstractBinaryParserPage.java

2003-10-14 Alain Magloire

	Added a new method to ICOptionContainer.java
		Preferences getPreferences();
	This needed for UI contributions in the Tabs.

	* src/org/eclipse/cdt/ui/dialogs/ICOptionContainer.java
	* src/org/eclipse/cdt/ui/dialogs/AbstractBinaryParserPage.java
	* src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java
	* src/org/eclipse/cdt/ui/dialogs/GNUElfBinaryParserPage.java

2003-10-10 Alain Magloire

	Add new method getPreferenceStore() in ICOptionPage

	* src/org/eclipse/cdt/ui/dialogs/ICOptionpage.java
	* src/org/eclipse/cdt/ui/wizard/NewCProjectWizardOptionPage.java

2003-10-08 Alain Magloire

	For Open on the header do a fallback and look for the header
	in the project.  This code should be revisit once, the
	CPathEntry and the ScannerInfoProvider are getting smarter.

	* src/org/eclipse/cdt/internal/ui/OpenIncludeAction.java

2003-10-08 Alain Magloire

	Do selection better for Binary objects,  the binary
	elements do not have offset information but only line number.
	We can leverage, by looking at the offset corresponding to
	the line.

	* src/org/eclipse/cdt/internal/ui/CEditor.java

2003-10-08 Bogdan Gheorghe

	- Modified CCompletionProcessor.java to create a file scope
	  instead of a project scope
	  
	  * src/org/eclipse/cdt/internal/ui/txt/CCompletionProcessor.java
	  
2003-10-01 Andrew Niefer
	-bug44032 - deleting/moving files breaks search
		* modified src/org/eclipse/cdt/ui/CSearchResultLabelProvider getText to return empty string instead of null
	-bug43130 - Selected resources is disabled but selected
		* src/org/eclipse/cdt/internal/ui/search/CSearchPage

2003-10-01 Alain Magloire

	Fix PR 44013, not defining a resource.

	* src/org/eclipse/cdt/internal/ui/CPluginResource.properties

2003-10-01 David Inglis
	- Fixed bug with binary parser page not saving change to preference.
	* src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java

2003-09-30 Bogdan Gheorghe
	- Added F3 key binding for the Open Declarations Action
	- Bug 42047: Added Ctrl+H binding for the C++ Search Dialog
	
2003-09-30 Andrew Niefer
	Bug 43923 - Search: Results pane title missing Working Set's name
	- implement CSearchUtil.toString( IWorkingSet [] )
	* src/org/eclipse/cdt/internal/ui/search/CSearchUtil.java

2003-09-30 Alain Magloire

	PR 39339, a definition is missing the CPluginResource.properties file.

	* src/org/eclipse/cdt/internal/ui/CPluginResource.properties.

2003-09-30 Hoda Amer
	- Fix for bug#43524 : Removing a define from a .c file causes issues in the outline
	
2003-09-29 Hoda Amer
	- Fixed Help IDs for C_Editor preference tabs.
	
2003-09-26 David Inglis
	fixes: https://bugs.eclipse.org/bugs/show_bug.cgi?id=43776
	
	* src/org/eclipse/cdt/internal/ui/text/CWordFinder.java

2003-09-25 Andrew Niefer
	-bug43129 - Search: Cannot search for definitions of global variables
		- modify UI to allow selecting Definitions for more items
		* src/org/eclipse/cdt/internal/ui/search/CSearchPage.java

2003-09-26 Hoda Amer
	Solution to :
	bug#43149: Code Assist Preferences: Background Color not working.... 
	bug#43153:  Code Assist Preferences: Disabling "Insert single proposa... 
	bug#43154: Code Assist Preferences: Enable Auto activation not working 
	bug#42224: Code Assist preferences Do not work properly 
	
2003-09-25 Bogdan Gheorghe
	Deleted the remaining CProjectPropertyPage artifacts.
	
	* src/org/eclipse/cdt/internal/ui/preferences/CProjectOptionBlock.java
	* src/org/eclipse/cdt/internal/ui/preferences/CProjectPropertyPage.java
	* src/org/eclipse/cdt/ui/dialogs/IndexerBlock.java	
	
2003-09-25 Hoda Amer
	Solution to bug#43646: Code Assist won't work if missing end bracket

2003-09-25 Andrew Niefer
	modify CSearchResultCollector to accept matches without resources, but not attempt to report
	them in the UI.	Addresses 43664 for non-ui clients of search
	* src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
	
2003-09-25 Alain Magloire

	Add HelpContext IDs in the preference page.
	For annotation page and color Page

	* src/org/eclipse/cdt/internal/ui/CEditorPreferencePage.java

2003-09-24 Alain Magloire

	Remove of unuse function with the clean up of Translation Unit

	* src/org/eclipse/cdt/internal/ui/CFileElementWorkingCopy.java
2003-09-24 Alain Magloire

	Remove unneeded Folder/File Wizard definitions.

	* plugin.xml

2003-09-23 Alain Magloire

	Remove some warnings in the ErrorParser blocks.
	Refactor LocalSelectionTransfer vs CLocalSelectionTransfer to minimise
	clashes.

	* src/org/eclipse/cdt/internal/ui/CLocalSelectionTransfer
	* src/org/eclipse/cdt/internal/ui/cview/CView.java
	* src/org/eclipse/cdt/internal/ui/cview/LocalSelectionTransferDragAdapter.java
	* src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java
	* src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java

2003-09-23 Hoda Amer
	Solution to bug#43143: Naming of Code Assist Menus/Tab are not consistent
	changed both names to Content Assist. No tests provided.
	
2003-09-22 Bogdan Gheorghe
	Got rid of the C/C++ Project property page (only the indexer tab
	was left). Here are the changes:
	
	Modified:
	* plugin.xml
	* org.eclipse.cdt.internal.ui.text.CCompletionProcessor
	* org.eclipse.cdt.internal.ui.editor.DefaultCEditorTextHover
	
	Deleted:
	* org.eclipse.cdt.ui.wizards.IndexerBlock
	
	Slated for deletion before 1.2 GA:
	* org.eclipse.cdt.internal.ui.preferences.CProjectPropertyPage
	* org.eclipse.cdt.internal.ui.preferences.CProjectOptionBlock
	* org.eclipse.cdt.ui.dialogs.IndexerBlock
	
2003-09-22 Hoda Amer
	Solutions to 
	bug#43162 : Code Assist not showing the right return value
	Bug#43145 : foo function still showing in Code Assist even if "f" is deleted
	Bug#42810 : Code Assist adding characters after pressing <enter>
	Bug#42861 : Code Assist should be case insensitive. 
	
2003-09-22 Andrew Niefer
	fix for bug 43327 Code Complete finds local variables  
	- update calls to SearchEngine.search.  CodeCompletion passes true for excludeLocalDeclarations

2003-09-22 Andrew Niefer
	associate context ID ICHelpContextIds.C_SEARCH_PAGE with the CSearchPage dialog
	add C_SEARCH_PAGE to the ICHelpContextIds.

2003-09-22 Alain Magloire

	Disable the C-Task Property and Preference page.
	The generation of those tasks was inadvertly remove any in the
	parser.  The UI code is still there since it is a feature
	that we will want for CDT-2.0

	* plugin.xml

>>>>>>> 1.181
2003-09-21 Alain Magloire

	Patch contributed by Keith Campbell.

	Patch to enable dragging non-resource selections from 
	the C/C++ Projects view.

	The code has been reorganized to use the delegation pattern found in the 
	JDT and a new LocalSelectionTransfer specific to the CDT has been 
	introduced to avoid potential incompatibilities of using 
	org.eclipse.ui.views.navigator.LocalSelectionTransfer.

	* src/org/eclipse/cdt/internal/ui/drag/DelegatingDraAdapter.java
	* src/org/eclipse/cdt/internal/ui/drag/FileTransferDragAdapter.java
	* src/org/eclipse/cdt/internal/ui/drag/LocalSelectionTransferDragAdapter.java
	* src/org/eclipse/cdt/internal/ui/drag/ResourceTransferDragAdapter.java
	* src/org/eclipse/cdt/internal/ui/drag/TransferDragSourceListener.java

	* src/org/eclipse/cdt/internal/ui/cview/CView.java

	* src/org/eclipse/cdt/ui/LocalSelectionTransfer.java

2003-09-21 Alain Magloire

	Bug #41960, The asm editor did not know about '#' comment style

	* src/org/eclipse/cdt/internal/ui/editor/asm/AsmPartitionScanner.java

>>>>>>> 1.179
2003-09-18 Hoda Amer
	Solution to bug#42611 : New Class Wizard should be hidden for C projects
		
2003-09-18 David Inglis
	Add workbench build/rebuild in context menu.
	
	* src/org/eclipse/cdt/internal/ui/cview/CView.java
	
2003-09-16 Alain Magloire

	Work to the new BinaryParserBlock to add dynamic UI
	contribution for binary parsers that need the flexibility.

	* src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java
	* src/org/eclipse/cdt/ui/dialogs/AbstractBinaryParserPage.java
	* src/org/eclipse/cdt/ui/dialogs/GNUElfBinaryParserPage.java

2003-09-16 David Inglis
	Removal of make builder ui components.
	
	plugin.xml 
	removed wizards and views.

	* src/org/eclipse/cdt/internal/ui/cview/CView.java
	removed build actions.
	
	* src/org/eclipse/cdt/internal/ui/preferences/CProjectPropertyPage.java
	removed tabs that are now in make plugin.
	
	* src/org/eclipse/cdt/ui/wizards/conversion/ConversionWizard.java
	* src/org/eclipse/cdt/ui/wizards/conversion/ConvertProjectWizardPage.java
	updated to use new c wizards.

	* src/org/eclipse/cdt/internal/ui/makeview/MakeAction.java
	* src/org/eclipse/cdt/internal/ui/makeview/MakeContentProvider.java
	* src/org/eclipse/cdt/internal/ui/makeview/MakeLabelProvider.java
	* src/org/eclipse/cdt/internal/ui/makeview/MakeTarget.java
	* src/org/eclipse/cdt/internal/ui/makeview/MakeTargetAction.java
	* src/org/eclipse/cdt/internal/ui/makeview/MakeView.java
	* src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeConversionWizard.java
	* src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeProjectWizardPage.java
	* src/org/eclipse/cdt/ui/wizards/BuildPathInfoBlock.java
	* src/org/eclipse/cdt/ui/wizards/SettingsBlock.java
	* src/org/eclipse/cdt/ui/wizards/StdCCWizard.java
	* src/org/eclipse/cdt/ui/wizards/StdCWizard.java
	* src/org/eclipse/cdt/ui/wizards/StdMakeProjectWizard.java
	All removed now in make plugins.
	
2003-09-15 John Camelon
	Fixed Bug 43126 : ISourceElementRequestor.acceptParameterReference accesses internal class

2003-09-13 Andrew Niefer
	- bug42836 - prepopulate template classes from Outline View
	- bug43016 - Search: Cannot find macro declarations 
	- bug42902 - Search: Cannot find typedef 
		- modified performAction & determineInitValuesFrom in CSearchPage
		- modified getImage in CSearchResultLabelProvider
		
2003-09-11 Andrew Niefer
	- bug42837 - fixed populating search dialog on function declarations
		- modified determineInitValuesFrom in CSearchPage
	- bug42829 - prepopulated search dialog to any element declarations
		- modified trySimpleTextSelection in CSearchPage
	- bug42815 - group together search results with same label
		- modified GroupByKeyComputer to use Name, ParentName & Path in the group key
		- modified CSearchResultCollector to properly use the GroupByKeyComputer	
	- modified CSearchResultLabelProvider to not display the "-" in the search label
	  while sorting by name if there is no parent.

2003-09-11 David Inglis
	Deprecated
	
	* src/org/eclipse/cdt/ui/wizards/BinaryParserBlock.java
	* src/org/eclipse/cdt/ui/wizards/BuildPathInfoBlock.java
	* src/org/eclipse/cdt/ui/wizards/CCProjectWizard.java
	* src/org/eclipse/cdt/ui/wizards/CProjectWizard.java
	* src/org/eclipse/cdt/ui/wizards/CProjectWizardPage.java
	* src/org/eclipse/cdt/ui/wizards/IWizardTab.java
	* src/org/eclipse/cdt/ui/wizards/IndexerBlock.java
	* src/org/eclipse/cdt/ui/wizards/TabFolderPage.java
	* utils.ui/org/eclipse/cdt/utils/ui/swt/IValidation.java

2003-09-11 John Camelon
	Updated SourceElementRequestor callbacks to include IASTParameterReference callbacks. 

2003-09-11 Bogdan Gheorghe
	- Added Search Menu to CView.java
	- Added queryWorkingSets to CSearchScopeFactory to bring up the working
	  set dialog
	- Modified Search Menu in CEditor.java, CContentOutlinePage.java
	- Added new action FileSearchActionInWorkingSet
	- Modified actions FileSearchAction, SearchDialogAction
	
2003-09-10 Sean Evoy
	Work completed to resolve [Bug 41412] Restore Default in Managed Build 
	project's settings Not Working. Added an event handler to reset the selected 
	configuration settings back to the defaults defined in the plugin manifest.
	Work to resolve [Bug 42736] New: C/C++ Build Settings not remembering Configuration.
	Used the managed build info to get the current config for the target.
	* build/org/eclipse/cdt/ui/build/properties/BuildPropertyPage.java
	
2003-09-11 Hoda Amer
	- Removed any reference to jdt.ineternal package for propertiy files
	in TextManipulationMessages and CUIMessages
	- Added a CUIMessages.properties file to org.eclipse.cdt.internal.ui
	
2003-09-08 Bogdan Gheorghe
	- Changed search pop up menu in CEditor and CContentOutlinePage

2003-09-08 John Camelon
	Refactored ISourceElementRequestor (enter|exit)CodeBlock() to take IASTCodeScope rather than IASTScope. 
	Added enumerator references to ISourceElementRequestor.

2003-09-08 Andrew Niefer
	- Modified call to ParserFactory in CStructureCreator to specify which language to use

2003-09-05 Andrew Niefer
	C++ Search:
	  - enable Selected Resource Scope
	  - populate dialog base on selection when opened from outline view
	  - fix small bug that found namespaces when searching for enumerations
	  - tweak sorting by path to consider line number second

2003-09-04 John Camelon
    First pass of parsing function bodies with X-Reference information.
    Updated IASTFactory/ISourceElementRequestor to include IASTCodeScope
    constructs, clients should keep this in mind and update their implementations.

2003-09-04 Alain Magloire

	Faulty logic when checking the build console preferences.

	* src/org/eclipse/cdt/internal/ui/BuildConsoleManager.java

2003-09-03 Andrew Niefer
	C++ Search: Changed default sort order to be by path
	changed search dialog to have checkboxes for Search For items.
 	* src/org/eclipse/cdt/ui/CSearchResultLabelProvider.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchPage.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchMessages.properties

2003-09-04 Hoda Amer
	- Solution to bug#42414 :Extraneous semi-colons in generated class methods
	
2003-09-03 David Inglis
	Fixed parser block to save ids properly.
	Use shared preference key for error parsers.
	
	* src/org/eclipse/cdt/internal/ui/CPluginResources.properties
	* src/org/eclipse/cdt/ui/dialogs/ErrorParserBlock.java

2003-09-03 David Inglis
	- src/org/eclipse/cdt/ui/TabFolderOptionBlock.java
	- src/org/eclipse/cdt/ui/AbstractCOptionPage.java
	- src/org/eclipse/cdt/ui/BinaryParserBlock.java
	- src/org/eclipse/cdt/ui/ErrorParserBlock.java
	- src/org/eclipse/cdt/ui/ICOptionContainer.java
	- src/org/eclipse/cdt/ui/ICOptionPage.java
	- src/org/eclipse/cdt/ui/IndexerBlock.java
	- src/org/eclipse/cdt/ui/ReferenceBlock.java
	- src/org/eclipse/cdt/ui/TabFolderOptionBlock.java
	moved to org.eclipse.cdt.ui.dialogs package.
	
	* src/org/eclipse/cdt/ui/wizards/NewCProjectWizardOptionPage.java
	change due to refactor
	
2003-09-03 Alain Magloire

	Change to abstract and let the client provides the saving algorithm.

	* src/org/eclipse/cdt/uui/ErroParserBlock.java

2003-09-03 Alain Magloire

	Wrong fix to a warning the call is needed but not the variable.
	Thanks to Hoda for noticing.

	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java

2003-09-01 Alain Magloire

	The Drag&Drop code is revisited with a facelift.
	The good news much of the code can be removed, the Eclise
	platform/Worbench folks refactor there code so more can now
	be shared.  We take adavantage of this.
	The bad news much of the code will have to be revisited
	and rewrite again when we will start dealing with refactoring.

	* src/org/eclipse/cdt/internal/ui/cview/CViewDropAdapter.java
	* src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java

2003-08-31 Alain Magloire

	Added new block ErrorParserBlock, not enable yet.

	* src/org/eclipse/cdt/ui/ErrorParserBlock.java

2003-08-30 Alain Magloire

	Deal with the annoying warnings from eclipse about syntetic methods.
	All the fix are in the wizard.dialogfields package. A new addition
	CheckedListDialogField.java

	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/ComboDialogField.java
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/ListDialogField.java
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/SelectionButtonDialogField.java
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/SelectionButtonDialogFieldGroup.java
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/StringDialogField.java
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/CheckedListDialogField.java

2003-08-30 Alain Magloire

	Remove completely the Old C Parser references and the ComparatorBuilder class.
	The Struture comparator is now base entirely on ISourceElemenRequestor.
	Making things more stable: Fix part of 39090, Fix 39725, 41006 

	* src/org/eclipse/cdt/internal/ui/compare.CNode.java
	* src/org/eclipse/cdt/internal/ui/compare.CParseTreeBuilder.java
	* src/org/eclipse/cdt/internal/ui/compare.CStructureCreator.java
	* src/org/eclipse/cdt/internal/ui/compare.SourceElementRequestorAdaptor.java

	* src/org/eclipse/cdt/internal/ui/compare.ComparatorModelBuilder.java
	Removed.

2003-08-28 Hoda Amer
 	Solution to Bug	#39968:
	-Template Union missing an icon
	
2003-08-28 Alain Magloire

	Changes to be able to see external file in the CEditor.  The main problem
	was that the way the Core/Model ICElement and IWorkingCopy was designed
	they always assume that files are inside the workspace .... So to always have
	an IFile.  One of the problem was the CContentOutliner.   We provid and
	extern WorkingCopy: CFileWorkingCopy.  But this should be revisited.

	Changes aslo to the OpenIncludAction to use the IScannerInfo to search
	for headers.

	* src/org/eclipse/cdt/internal/ui/CFileElmentWorkingCopy.java
	* src/org/eclipse/cdt/internal/ui/editor/CContentOutliner.java
	* src/org/eclipse/cdt/internal/ui/editor/OpenIncludeAction.java

2003-08-27 Thomas Fletcher
	
	Update code completion to include () for functions and methods and
	to position the cursor appropriately.

	* src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
	* src/org/eclipse/cdt/ui/FunctionPrototypeSummary.java

2003-08-26 Alain Magloire

	PR 41416, Not enough info in the error message for
	the preference line number for the the build-console

	* src/org/eclipse/cdt/internal/ui/CPluginResources.properties
	* src/org/eclipse/cdt/internal/ui/preferences/BuildConsolePreferencePage.java

2003-08-26 Bogdan Gheorghe
	- Converted CTags based OpenOnSelectionAction to OpenDeclarationsAction
 	- Hooked up OpenDeclarationsAction to search engine
 	
2003-08-20 Bogdan Gheorghe
	Added a search dialog pop up to the context menu for the
	CEditor and CContentOutlinePage

2003-08-19 Keith Campbell
	Extended CView and CViewDragAdapter to use LocalSelectionTransfer.
	Eventually this will permit dragging elements from the "C/C++ Projects" view
	to trigger refactoring operations as in the JDT, for example.
	* src/org/eclipse/cdt/internal/ui/cview/CView.java
	* src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java

2003-08-19 Sean Evoy
	Switched the property page edit area to a scrolled composite instead of resizing
	for large option sets. This actually makes the selection event code simpler.
	* build/org/eclipse/cdt/ui/build/properties/BuildPropertyPage.java
	
	I added an accessor method for getting the internal Map in the settings store. 
	The code was vulnerable because there was never a check to make sure the
	Map had been instantiated before use.
	* build/org/eclipse/cdt/ui/build/properties/BuildToolsSettingsStore.java
	
	Added some builtin symbols and include paths for the Gnu compilers.
	* plugin.xml
	
	Fixed a spelling error in a category name.
	* plugin.properties
	
2003-08-14 Sean Evoy
	Added initial toolchain description for Solaris and Linux targets using Gnu tools.
	* plugin.xml
	
	Moved tool and option category names into the properties for eventual I18N
	* plugin.properties

	For build targets without an extension, the new project wizard was appending a 'dot' to the
	name. It no loonger does this.
	* build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java

2003-08-13 Sean Evoy
	A simple change to add transparency information to the build property page 
	GIFs. They were not being drawn properly on Solaris/Motif and would probably
	have shown the same behaviour on Linux. Now, they all get blitted correctly
	even with a different widget background colour.
	* icons/full/build16/build_configs.gif
	* icons/full/build16/config-category.gif
	* icons/full/build16/config-tool.gif
	
	Updated the new project wizard to register the correct build manager at 
	project creation time. We have switched to using the CDescriptor mechanism 
	for provider discovery. In order for the to work, the project has to be updated
	properly and the only time it can be easily done is at creation time.
	* build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java
	* src/org/eclipse/cdt/ui/wizards/CProjectWizard.java

2003-08-13 John Camelon
	Fixed Bug 41480 - ceditor extension point is not default editor for C++ file extensions

2003-08-12 Hoda Amer
	Added class name validation to NewClassWizardPage
	Used the new search (indexer) for Code completion in CCompletionProcessor

2003-08-11 Andrew Niefer
	- Added some code to CUIPlugin to access working copies 
	
2003-08-10 Sean Evoy
	Added a new target for building DLLs on Cygwin.
	* plugin.xml
	
	Added a new icon for configurations in the tree view of the build 
	property page for managed builds.
	* icons/full/build16/config-category.gif
	* src/org/eclipse/cdt/internal/ui/CPluginImages.java
	
	Changed the icons used to display tools and categories in the tree view 
	of the managed build property page. Now the tool uses the tool icon and 
	the category uses the new category icon.
	* build/org/eclipse/cdt/ui/build/properties/ToolListLabelProvider.java
	
	Changed the list field editor so that it will better fit a page with 
	space-grabbing widgets in different columns. For example, the default list
	field editor puts the list in the left column and allows it to garab all 
	excess space. Entry fields put the label in the left and the space-grabbing 
	entry field/combo box in the right. The layout manager then gives both left 
	and right columns equal space. By wrapping the list field editor in a group 
	control that spans both columns, the layout manager allocates enough space for 
	controls in the right-hand column. It also lays out the contents of the list 
	field editor inside the group control independently of the outer container, so 
	it looks right too. Also added a double-click event handler so users can edit
	list elements. Mondo happy with this!
	* build/org/eclipse/cdt/ui/build/properties/BuildOptionComboFieldEditor.java

	Re-activated the summary field editor class. It still does not behave quite right, 
	but it is there.
	* build/org/eclipse/cdt/ui/build/properties/SummaryFieldEditor.java
	* build/org/eclipse/cdt/ui/build/properties/BuildToolSettingsPage.java
	
	Changed the combo-box field editor to lay itself out in the grid more like the other
	field editors. This has not made the widget behave differently in any way, but should
	insure that it lay itself out correctly on any page with any combination of
	field editors.
	* build/org/eclipse/cdt/ui/build/properties/BuildOptionComboFieldEditor.java

	Fixed the resize behaviour of the build property page; at least in terms of resizing up 
	to its constrained size. There is the issue of size-creep (each time you reselect the 
	category, the property page control resizes up a bit until it hits some limit). But,
	this is a better situation than what was there before.
	* build/org/eclipse/cdt/ui/build/properties/BuildPropertyPage.java

2003-08-08 Bogdan Gheorghe
	- Filled out CSearchScopeFactory to translate working sets
	  into CElements
	
2003-08-08 Andrew Niefer
	- modified Search result sorting to sort by offset if the label is the same for two items

2003-08-01 Andrew Niefer
	- Modified CSearchResultCollector to reflect changes in BasicSearchResultCollector, 
	  acceptMatch will return false if the match was not accepted because it has already
	  been seen.

2003-07-30 Hoda Amer
	The New Class Wizard uses search to look for base classes in the workspace.

2003-07-30 Sean Evoy
	* plugin.xml:
	Updated the attribute names to reflect changes to the ManagedBuildInfo 
	extension point schema.

2003-07-29 Andrew Niefer
	- Refactoring Search Result Collecting:
		* CSearchResultCollector now extends BasicSearchResultCollector
		* CSearchResultLabelProvider moved to org.eclipse.cdt.ui
		* CSearchResultLabelProvider modified to reflect changes to IMatch interface
		* Deleted the class Match

2003-07-28 Sean Evoy
	In order to meet certain internal guidelines and to test the makefile 
	generator, the build model replied to some answers with hard-coded information. 
	This patch moves the information into the build model.

	* plugin.xml:
	Added new attributes to Targets to add make command, clean command and
	make flag information. I also added a toolchain specification for Solaris, but 
	it is turned off for now until I test it.

2003-07-24 Sean Evoy
	* plugin.xml:
	Added new attributes to tools and changed the value type enum for 
	libraries options. Also added a new flags option to archiver tool 
	in the Cygwin static library target specification.
	
	* build/org/eclipse/cdt/ui/build/properties/BuildToolSettingsPage.java
	* build/org/eclipse/cdt/ui/build/properties/BuildToolsSettingsStore.java:
	Changed to handle the libraries as a special option type.

2003-07-24 Hoda Amer
	This patch updates the CModelBuilder to use the AST instead of the DOM. 

2003-07-23  Bogdan Gheorghe
	Added checkbox to Indexer tab to turn on dependency tree
	service
	
2003-07-21	Bogdan Gheorghe
	Update to CSearchResultLabelProvider to ensure that search labels
	show up on subsequent runs.
	
	* src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchResultLabelProvider.java
2003-07-18  John Camelon
	In the core, I updated ParserFactory.createScanner() to force the user to provide a callback and a ParserMode.
	==> I had to update ComparatorModelBuilder.  

2003-07-17  John Camelon
	Partially converted DOM to ISourceElementRequestor (requires refactoring of CModelBuilder & StuctureComparator modules in near future).  

2003-07-17 Victor Mozgin
	Added support for di- and trigraph notation of preprocessor directives.

2003-07-16 Alain Magloire

	Patch from Alex chapiro.
	This patch just creares group markers for CView pull-down menu build actions
	group. Using them, it is possible to locate new buid action contributions to
	correct place.

	* src/org/eclipse/cdt/internal/ui/cview/CView.java
	
2003-07-16 Alain Magloire

	Patch from Thomas Fletcher.
	Update the MakeView class to match UI standards and to contain a new action
    to support editing of an existing make target.
    
	* src/org/eclipse/cdt/internal/ui/makeview/MakeView.java

2003-07-14 Andrew Niefer
	-modified plugin.xml entry for search's PathNameSorter
	-added src/org/eclipse/cdt/internal/ui/search/Match.java which implements IMatch to store 
	 information used by CSearchResultLabelProvider
	-Modified CSearchResultCollector and CSearchResultLabelProvider to use Match

2003-07-11 Bogdan Gheorghe
	Added new C/C++ Search menu item.
	
	Added:
	* src/org/eclipse/cdt/internal/ui/search/OpenCSearchPageAction.java
	
	Modified:
	* plugin.properties
	* plugin.xml
	
2003-07-08 John Camelon
	Updated IScanner, clients & implementations to use IScannerInfo.  

2003-07-03 Sean Evoy
	Changed property/wizard tab to use the new StandardBuildManager and 
	the improved IStandardBuildInfo interface to set and retrieve 
	the include and defined symbol information for a standard make project.
	* src/org/eclipse/cdt/ui/wizards/BuildPathInfoBlock.java

2003-07-04 Victor Mozgin
	Fix for PR 39476: Preference listeners for task tags do not work.
	Fix for PR 39477: Task tags options dialogs ask for project rebuilds.

2003-06-27 Andrew Niefer
	Changes for C/C++ Search:
	Added:
	* src/org/eclipse/cdt/internal/ui/search/CElementLabels.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchResultLabelProvider.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchViewActionGroup.java
	* src/org/eclipse/cdt/internal/ui/search/ElementNameSorter.java
	* src/org/eclipse/cdt/internal/ui/search/GotoMarkerAction.java
	* src/org/eclipse/cdt/internal/ui/search/GroupByKeyComputer.java
	* src/org/eclipse/cdt/internal/ui/search/ParentNameSorter.java
	* src/org/eclipse/cdt/internal/ui/search/PathNameSorter.java
	* icons/full/clcl16/search_sortmatch.gif
	* icons/full/obj16/search_decl_obj.gif
	* icons/full/obj16/search_ref_obj.gif
	Modified:
	* src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchPage.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
	* src/org/eclipse/cdt/internal/ui/search/CSearchMessages.properties.java
	* plugin.xml
	* plugin.properties

2003-06-26 Sean Evoy
	Added a tab to the new standard make project wizard and CNature project
	property page. User interacts with two list controls to add include paths
	and proprocessor symbols to a standard make project.
	* src/org/eclipse/cdt/ui/wizards/BuildPathInfoBlock.java
	* src/org/eclipse/cdt/ui/wizards/StdMakeProjectWizard.java
	* src/org/eclipse/cdt/internal/ui/preferences/CProjectPropertyPage.java
	* src/org/eclipse/cdt/internal/ui/CPluginResources.properties

2003-06-26 Victor Mozgin
	Task tags support in C/C++ comments (initial revision).

2003-06-25 John Camelon
	Create new interface and support for calculating lineNumber/offset mapping.  
	Updated IASTClassSpecifier for qualified name query.  
	Began structuring expressions and declarators in Parser for ISourceElementRequestor.  
	Updated other packages to use new interfaces.  

2003-06-25 Bogdan Gheorghe
	Added a new checkbox to the Indexer tab of the C/C++ Project Settings
	to allow the new indexer to be turned on or off. 
	* src/org/eclipse/cdt/ui/wizards/IndexerBlock.java
	
	Modified the CSearchPage to work with the new CSearchConstants
	* src/org/eclipse/cdt/internal/ui/search/CSearchPage.java
	
2003-06-24 Thomas Fletcher

	- Proposals will now include additional help information with them
	if it is available (same as JDT).  This opens the door for being 
	able to write a Javadoc/Doxygen parser and integrating live, 
	context specific, help.
	- On function completions a hover is now shown above the function
	(same as JDT) with the argument information as it is being filled in.

	* src/org/eclipse/cdt/internal/ui/editor/DefaultCEditorTextHover.java
	* src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
	* src/org/eclipse/cdt/internal/ui/text/CCompletionProposal.java
	* src/org/eclipse/cdt/internal/ui/text/CParameterListValidator.java
	* src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java
	* src/org/eclipse/cdt/internal/ui/text/CWordFinder.java
	* src/org/eclipse/cdt/ui/IFunctionSummary.java
	* src/org/eclipse/cdt/ui/FunctionPrototypeSummary.java

2003-06-23 John Camelon
	Updated Factory infrastructure, constructors, etc. 
	Introduced Preprocessor class for transitive closure calc. client.  

2003-06-20 Sean Evoy
	Added (again) the icons required for the new managed project wizard and property pages
	* icons/full/build16/config-command.gif
	* icons/full/build16/config-librarian.gif
	* icons/full/build16/config-tool.gif
	* icons/full/wizban/newmngc_app.gif
	* icons/full/wizban/newmngcc_app.gif

	Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=38665
	* build/org/eclipse/cdt/ui/build/wizards/CProjectPlatformPage.java

	Adjusted the Option settings store and pages to properly handle new option types needed
	to implement parser interface for include paths and defined symbols.
	* build/org/eclipse/cdt/ui/build/properties/BuildToolSettingsPage.java
	* build/org/eclipse/cdt/ui/build/properties/BuildToolsSettingsStore.java
	
2003-06-18 David Inglis	
	
	fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=39053
	
	* src/org/eclipse/cdt/ui/CUIPlugin.java
	
2003-06-13 John Camelon
	Merged ParserSymbolTable branch back into HEAD.

2003-06-12 Alain Magloire

	Patch from Thomas Fletcher
	Define a specific editing scope for the C/C++ Editor and define the framework for
	adding in additional commands. Two commands added initially: comment and
	uncomment. Removed some Java nomenclature from some of the C properties.
	
	* plugin.properties
	* plugin.xml
	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
	* src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties

2003-06-12 Alain Magloire

	Patch From Thomas Fletcher, to clean up the working set.
	
	Removal of the homegrown working set implementation of filters and actions
	to use the stock actions available with the Eclipse 2.1 release.

	This patch should remove the need for the following files:
	* src/org/eclipse/cdt/internal/ui/cview/NewWorkingSetFilterAction.java:
	* src/org/eclipse/cdt/internal/ui/cview/AdjustWorkingSetFilterAction.java
	* src/org/eclipse/cdt/internal/ui/cview/CWorkingSetFilter.java

	Change the CView to use the action defines on the platform.
	* src/org/eclipse/cdt/internal/ui/cview/CView.java

2003-06-06
	I have added toolchain definitions for Cygnus and Linux to the plugin.xml file
	for the new build model. There are two new wizards for adding a C and C++ project
	for use with managed build systems. The files to implement that are:
	
	* build/org/eclipse/cdt/build/ui/wizards/ConfigurationBlock.java
	* build/org/eclipse/cdt/build/ui/wizards/ConfigurationContentProvider.java
	* build/org/eclipse/cdt/build/ui/wizards/ConfigurationLabelProvider.java
	* build/org/eclipse/cdt/build/ui/wizards/CProjectPlatformPage.java
	* build/org/eclipse/cdt/build/ui/wizards/ManagedCCWizard.java
	* build/org/eclipse/cdt/build/ui/wizards/ManagedCWizard.java
	* build/org/eclipse/cdt/build/ui/wizards/ManagedProjectWizard.java
	
	There is a new property page specifically for projects with this managed nature.
	The code to implement it has been added to:
	
	* build/org/eclipse/cdt/build/ui/properties/BrowseEntryDialog.java
	* build/org/eclipse/cdt/build/ui/properties/BuildOptionComboFieldEditor.java
	* build/org/eclipse/cdt/build/ui/properties/BuildOptionListFieldEditor.java
	* build/org/eclipse/cdt/build/ui/properties/BuildPropertyPage.java
	* build/org/eclipse/cdt/build/ui/properties/BuildToolSettingsPage.java
	* build/org/eclipse/cdt/build/ui/properties/BuildToolsSettingsStore.java
	* build/org/eclipse/cdt/build/ui/properties/ManageConfigDialog.java
	* build/org/eclipse/cdt/build/ui/properties/NewConfigurationDialog.java
	* build/org/eclipse/cdt/build/ui/properties/SummaryFieldEditor.java
	* build/org/eclipse/cdt/build/ui/properties/ToolListContentProvider.java
	* build/org/eclipse/cdt/build/ui/properties/ToolListLabelProvider.java
	
	New string resources have been added to the plugin.properties file and to the 
	src/org/eclipse/cdt/internal/ui/CPluginResources.properties file.
	
	New icons have been added:
	* icons/full/build16/config-command.gif
	* icons/full/build16/config-librarian.gif
	* icons/full/build16/config-tool.gif
	* icons/full/ctool16/newmngc_app.gif
	* icons/full/ctool16/newmngcc_app.gif
	
	and the path src/org/eclipse/cdt/internal/ui/CPluginImages.java class
	has been modified to manage them.
	
2003-06-05 Alain Magloire

	Patch from Christophe Juniet, this patch adds #ifdef guards
	when generating a header for a class.

	Note the field NewClassWizardPage.createClass change to ICElement
	since the C/C++ consider:
	class foo { };
	like a variable instead IVariable instead of a IVariableDeclaration. 

	* src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java
	* src/org/eclipse/cdt/internal/ui/wizards/NewWizardMessages.properties.

2003-05-23 Alain Magloire

	Patch from Victor Mozgin to deal with PR 38405
	The CEditor did not do hilight for macros like
	# define foo
	
	I've patched UI code to add a new rule for handling preprocessor directives,
	PreprocessorRule class (extends WordRule). And here I noticed that
	CppCodeScanner uses private class CWordRule, while CCodeScanner uses standard
	WordRule. They seem to do exactly the same thing, but CWordRule additionally
	checks for # sign to be the first character on the line.  As now preprocessor
	directives are handled by PreprocessorRule class, CWordRule can be removed and
	replaced with WordRule; also, there is no need for CWordDetector to pick up #
	sign as a valid word start.

	* src/org/eclipse/cdt/internal/ui/text/CCodeScanner.java
	* src/org/eclipse/cdt/internal/ui/text/CppCodeScanner.java: removed
	* src/org/eclipse/cdt/internal/ui/text/PreprocessorRule.java: New file
	* src/org/eclipse/cdt/internal/ui/text/util/CWordDetector.java

2003-05-23 Mikhail Khodjaiants
	PR 38047: Unable to save changes in C/C++ debug editor.
	* src/org/eclipse/cdt/ui/IEditorInputDelegate.java: new
	This interface is added to provide support for more flexible editor inputs.

	* src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java:
	Support of the "IEditorInputDelegate" interface.

2003-05-30 Hoda Amer
	Added the new class wizard on May 27th
	Fixed the inclusion problem on May 28th
	Fixed the non-cmodel selection problem May 30th.
	

2003-05-06 John Camelon
	Further integration of SymbolTable into Parser, some refactoring. 
	
	* src/org/eclipse/cdt/internal/ui/compare/ComparatorModelBuilder.java
	moved some imports around.

2003-04-27 Alain Magloire

	PR 36759, the outline does not update
	when the input is reset by the Debugger.  The debugger
	reuse the same editor with different input.

	* src/org/eclipse/cdt/internal/ui/editor/CContentOutlinet.java (setInput):
	New method to reset the input of the viewer.

	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java (setOutlinePageInput):
	New method to reset the input of the outliner.

	* src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java (createElementInfo):
	Use the getBufferFactory() method it may been overloaded.

2003-04-26 Alain Magloire

	ClastCastException in CView see PR 36876
	and PR 36743 allow extending of the CView.
	
	* src/org/eclipse/cdt/internal/ui/cview/CView.java:
	(createContentProvider): new Method.
	(createViewer): new Method.
	(createLabelProvider): new method.

2003-04-26 Alain Magloire

	Fix NPE in the ComparatorModelBuilder when doing visual diffs
	with the new Parser.
	
	* src/org/eclipse/cdt/internal/ui/compare/ComparatorModelBuilder.java:
	Check for null.

2003-04-21 David Inglis

	Update CEditor to be 2.0/2.1 compliant.
	
	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
	* src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties
	* src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java
	* src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
	* src/org/eclipse/cdt/internal/ui/text/CPairMatcher.java

	* src/org/eclipse/cdt/internal/ui/editor/BracketPainter.java (removed)
	* src/org/eclipse/cdt/internal/ui/editor/IPainter.java (removed)
	* src/org/eclipse/cdt/internal/ui/editor/LinePainter.java (removed)
	* src/org/eclipse/cdt/internal/ui/editor/OverviewRuler.java (removed)
	* src/org/eclipse/cdt/internal/ui/editor/PaintManager.java (removed)
	* src/org/eclipse/cdt/internal/ui/editor/PrintMarginPainter.java (removed)
	* src/org/eclipse/cdt/internal/ui/editor/ProblemPainter.java (removed)
	* src/org/eclipse/cdt/internal/ui/preferences/CLaunchingPropertyPage.java (removed)
	* src/org/eclipse/cdt/internal/ui/util/CoreUtility.java (removed)
	
2003-04-17 Alain Magloire

	Bug 36584
	
	When switching the through the CEditor the range was not 
	save.
	
	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java:
	setSelection(ICElement), new method
	* src/org/eclipse/cdt/internal/util/EditorUtility.java:
	revealInEditor use setSelection(ICElement).

2003-04-16 Alain Magloire

	Bug 36582
	
	* src/org/eclipse.cdt.internal/ui/cview/CView.java
	linkToEditor() check is we have a valid ITranslationUnit.
	The isOpenEditor() has a nasty side effect of calling "objdump"

2003-04-14 Alain Magloire

	The problem: the old parser can still hangs and bring chaos, this
	temporary code(since the new parser does not have yet a callback
	mechanism) allow us to use the new parser when doing the visual diffs.
	It is key on the preference setting, to enable/disable the old parser.

	* src/org/eclipse/cdt/internal/ui/comparator/CStructureCreator.java:
	* src/org/eclipse/cdt/internal/ui/comparator/ComparatorModelbuilder.java:

2003-04-10 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/editor/CEditorActionContributor.java:
	Cleanup to be more Eclipse-2.1
	* src/org/eclipse/cdt/internal/ui/editor/GotoErrorAction.java:
	Was using the wrong bundle.
	* src/org/eclipse/cdt/internal/ui/CPluginImage.java:
	New imange for code assist.
	* plugin.xml:
	added "hpp" in the list of possible source C/C++ file.

2003-04-08 Alain Magloire

	* src/org/eclipse/cdt/ui/CElementLabelProvider.java:
	No need to refresh the container.

2003-04-08 Alain Magloire

	Fix the drag & drop.

	* src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java:

2003-04-07 Alain Magloire

	Enable contribution to the outliner ContentProvider, in the future
	this will let other modules like the debugger add action like
	breakpoint in the outliner view to a IFunction.

	* src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java:

2003-04-05 Alain Magloire

	Implement the new CollapseAll button to be consistent with the
	JDT package explorer.

	* icons/full/clcl16/collapseall.gif:
	* icons/full/dlcl16/collapseall.gif:
	* icons/full/elcl16/collapseall.gif:
	* src/org/eclipse/cdt/internal/ui/CPluginImages.java:
	New icon.

	* src/org/eclipse/cdt/internal/ui/cview/CollapseAllAction.java:
	* src/org/eclipse/cdt/internal/ui/cview/CView.java:
	* src/org/eclipse/cdt/internal/ui/cview/CViewMessages.java:
	* src/org/eclipse/cdt/internal/ui/cview/CViewMessages.properties:
	* src/org/eclipse/cdt/internal/ui/ICHelpContextIds.java:

2003-04-05 Alain Magloire

	The way the working copy was implemented, the outline could not
	work with file outside of the C Model, for example a c file in
	a non C project.  Also some other extended the CEditor to reuse
	the highligth and outliner functions,  but since the DocumentProvider
	was singleton in CUIPlugin.getDocumentProvider(), the outliner did not
	work either.  A solution is to take the same path as the JDT and provide
	a workingcopy that can be use by other so they can "connect" thre input.

	Part of this patch a small refactory of IWorkingCopyManager so
	it can be visible outside.

	* src/org/eclipse/cdt/ui/CUIPlugin.java
	* src/org/eclipse/cdt/ui/IWorkingCopyManager.java
	* src/org/eclipse/cdt/ui/IWorkingCopyManagerExtension.java
	* src/org/eclipse/cdt/internal/ui/editor/CContentOutline.java:
	* src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java
	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
	* src/org/eclipse/cdt/internal/ui/editor/WorkingCopyManager.java
	* src/org/eclipse/cdt/internal/ui/editor/WorkingCopyManager.java
	* src/org/eclipse/cdt/internal/ui/text/CReconcilerStrategy.java

2003-04-04 Alain Magloire

	The TextEditor provides a way to select a range to be edited.
	We provide the same functionnality; "Show Source of Selected Element Only"

	* icons/full/clcl16/segment_edit.gif:
	* icons/full/dlcl16/segment_edit.gif:
	* icons/full/elcl16/segment_edit.gif:
	* src/org/eclipse/cdt/internal/ui/CPluginImages.java:
	descriptor for segment_edit.gif.

	* src/org/eclipse/cdt/ui/PreferenceConstants.java:
	Move the preference constants so they can be visible to other plugins.
	* src/org/eclipse/cdt/internal/ui/cview/CView.java:
	* src/org/eclipse/cdt/internal/preference/CPlugigPreferencePage.java:

	* src/org/eclipse/cdt/internal/editor/CContentOutlinePage.java:
	* src/org/eclipse/cdt/internal/editor/CEditorActionContributor.java:
	* src/org/eclipse/cdt/internal/editor/CEditorMessages.properties:
	* src/org/eclipse/cdt/internal/editor/CTextEditorActiionConstant.java:
	* src/org/eclipse/cdt/internal/editor/ICEditorActionDefinitonsIds.java:
	* src/org/eclipse/cdt/internal/editor/TogglePresentationAction.java:
	 
	
	

2003-04-04 Alain Magloire

	The way to register actions change from 2.0 to 2.1
	Action must have an ID.  This fixes the editor to
	be activate on Ctrl+space.
	
	* src/org/eclipse/internal/ui/editor/CEditor.java:
	* src/org/eclipse/internal/ui/ICEditorActionDefinitionIds.java:

2003-04-04 Alain Magloire

	Remove on some warnings now that we move to 2.1
	
	* src/org/eclipse/internal/ui/dialogs/SelectionStatusDialog.java:
	* src/org/eclipse/internal/ui/editor/DocumentAdapter.java:
	* src/org/eclipse/internal/ui/preferences/CEditroPreference.java:
	* src/org/eclipse/internal/ui/CElementImageProvider.java:
	* src/org/eclipse/cdt/ui/CUIPlugin.java

2003-04-02 Alain Magloire

	Show LibraryReference in the  CViewer.

	* src/org/eclipse/internal/ui/cview/CViewSorter.java:
	* src/org/eclipse/internal/ui/BaseCElementContentProvider.java:
	Call CProject.getLibraryReferences().
	* src/org/eclipse/internal/ui/CElementImagerProvider.java:
	* src/org/eclipse/internal/ui/CPluginImages.java:
	lib_obj.gif.

2003-04-02 Alain Magloire

	Bug fix and cleanup in CView
	
	* src/org/eclipse/internal/ui/cview/CView.java:
	Cleanup the linkToEditor().
	* src/org/eclipse/internal/util/UtilEditor.java:
	Bug fix.

2003-04-01 Alain Magloire

	Support to open a child in an IBinary if we know the TranslationUnit.
	
	* src/org/eclipse/internal/ui/editor/CEditor.java:
	setSelection() make the method visible.
	* src/org/eclipse/internal/ui/util/EditorUtility.java:
	More static method taken from the JDT.
	* src/org/eclipse/internal/ui/cview/CView.java:
	handleDoubleClick(), for IBinary.

2003-04-01 Alain Magloire

	Patch from Hoda Amer.
	New icons for enumerations, enumerators and typedefs.
	Small fix for CElementLabelProvider.getText().
	
	* src/org/eclipse/cdt/ui/CElementLabelProvider.java:
	* src/org/eclipse/cdt/internal/ui/CElementImageProvider.java:
	* src/org/eclipse/cdt/internal/ui/CPlugiImages.java
	
	* icons/full/obj16/enum_obj.gif:
	* icons/full/obj16/enumerator_obj.gif:
	* icons/full/obj16/typedef_obj.gif:

2000-04-01 Alain Magloire

	Patch from Chris Songer.
	The IBinaryElement like IBinaryFunction and IBinaryVariable contains
	only line number no the offset, deal with when doing the selectin.
	
	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java:

2003-03-27 Alain Magloire

	The selection in the CView to CEditor was not done.
	We have now a new hierarchy for the binary and Archive:
	IBinary
		IBinaryModule
			IBinaryFunction
			IBinaryVariable
				IBinaryElement

	* src/org/eclipse/cdt/internal/ui/cview/CView.java
	* src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java
	* src/org/eclipse/cdt/internal/ui/CElementImageProvider.java
	* src/org/eclipse/cdt/ui/CElementContentProvider.java

2003-03-27 Alain Magloire

	Patch from Thomas Fletcher.
	
	* src/org/eclipse/cdt/internal/ui/editor/BracketPainter.java:
	The brace highlighting doesn't properly use the background
	colour when it is drawn.
	
2003-03-27 Alain Magloire

	ICElement.getResource() no longer throw an exception.

	* src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java
	* src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java
	* src/org/eclipse/cdt/internal/ui/uti./EditorUtility.java
	
2003-03-27 Alain Magloire

	Some changes in the Core Model to make it closer to JDT, the hierarchy is now:
	ICModel
		ICProject
			ICContainer
				ITranslationUnit
				IArchive
				IBinary

	We now adjust the code.

	src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java
	src/org/eclipse/cdt/internal/ui/BinaryPropertySource.java
	src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java
	src/org/eclipse/cdt/internal/ui/CElementImageProvider.java
	src/org/eclipse/cdt/internal/ui/ErrorTickAdornmentProvider.java
	src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java
	src/org/eclipse/cdt/internal/ui/cview/CPatternFilter.java
	src/org/eclipse/cdt/internal/ui/cview/CView.java
	src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java
	src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java
	src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java
	src/org/eclipse/cdt/internal/ui/editor/DocumentAdapter.java
	src/org/eclipse/cdt/internal/ui/util/EditorUtility.java
	src/org/eclipse/cdt/ui/CElementContentProvider.java
	src/org/eclipse/cdt/ui/CElementLabelProvider.java
	src/org/eclipse/cdt/ui/CUIPlugin.java

2003-03-19 Alain Magloire

	Patch From Amer Hoda, to use the Working Copy of ICElement use in
	the Core Model.

	* src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java:
	* src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java:
	* src/org/eclipse/cdt/internal/ui/editor/DocumentAdapter.java:
	* src/org/eclipse/cdt/internal/ui/editor/IWorkingCopyManager.java:
	* src/org/eclipse/cdt/internal/ui/text/CReconcilingStrategy.java:
	* src/org/eclipse/cdt/internal/ui/CFileWorkingCopy.java:
	* src/org/eclipse/cdt/ui/CUIPlugin.java:

2003-03-13 Alain Magloire

	* src/org/eclipse/cdt/utils/ui/controls/RadioButton.java:
	Clean up of warnings.

2003-03-12 David Inglis
	* src/org/eclipse/cdt/internal/ui/BuildConsoleManager.java,v
	Removed buffering of build console as it was preventing output from being
	visible during long builds.
	http://bugs.eclipse.org/bugs/show_bug.cgi?id=32012
	
2003-03-02 Alain Magloire

	* src/org/eclipse/cdt/ui/wizards/BinaryParserBlock.java:
	Check in the constructor if the project is null.

2003-02-26 Alain Magloire

	* src/org/eclipse/cdt/ui/wizards/BinaryParserBlock.java:
	Adjust to use the new BinaryParser scheme as described
	in cdt-core-home/docs/binaryParser.html.

2003-02-24 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/util/SelectionUtil.java:
	Reorganized import to remove warnings.
	* src/org/eclipse/cdt/ui/CelementLabelProvider.java: Reorganize imports.

2003-02-24 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java (isOverviewRulerVisible):
	Change scope for protected to comply with Eclipse-2.1

	* src/org/eclipse/cdt/ui/CelementContentProvider.java: Reorganize imports.

2003-02-20 Alain Magloire

	This patch provides the UI controls and filters to use the working set 
	concept and apply it to the CView.  The UI mimics the behaviour of what is
	used by the Java packages view (rather than incorporating it as a part of
	the Filters... dialog as was done in the Navigator).  I didn't create a
	specific C/C++ Working Set type since I figured that for C and C++ 
	projects which might include other projects it wasn't required.
	This can be re-examined at a later date if required.

	* src/org/eclipse/cdt/internal/ui/cview/CView.java:
	Listener of the property change for Working sets.
	* src/org/eclipse/cdt/internal/ui/cview/AdjustWorkingSetFilterAction.java:
	New file.
	* src/org/eclipse/cdt/internal/ui/cview/CWorkingSetFilter.java:
	New file.
	* src/org/eclipse/cdt/internal/ui/cview/NewWorkingSetFilterAction.java:
	New file.

2003-02 -20 David Inglis

	* src/org/eclipse/cdt/internal/ui/editor/CEditorActionContributor.java
	Fixed minor label problem.

2003-02-19 David Inglis
	* src/org/eclipse/cdt/ui/wizards/conversion/ConversionWizard.java
	* src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeConversionWizard.java
	Due to CDT extensions interface cleanup.

2003-02-17 Doug Schaefer

    Merged in Sam Robb's source for the build model.  The source can be
    found in the build source folder.  There are new extension point schema
    in the schema folder.  There are build icons in the icons/full/build16
    folder.  As well a number of extension points and extensions have been
    added to the plugin.xml file.

2003-02-17 Judy N. Green
	* plugin.xml
	* icons/full/ctool16/convert-normal.gif
	
	Added a new icon for the conversion wizard
	
2003-02-13 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/editor/OpenIncludeAction.java:
	Comment out old the reference to the builder.

2003-02-13 Thomas Fletcher
	* src/org/eclipse/cdt/internal/ui/cview/CView.java
	* src/org/eclipse/cdt/internal/ui/cview/FilterSelectionAction.java
	Cleaned up some text strings.
	
	* src/org/eclipse/cdt/internal/corext/template/ContextTypeRegistry.java
	* src/org/eclipse/cdt/internal/corext/template/default-templates.xml
	* src/org/eclipse/cdt/internal/ui/preferences/TemplatePreferencePage.java
	* src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
     Adds a C++ context and moves those templates which are C++ specific to that context
	 Allows you to use the C++ and C contexts when you are working in C++ code,
	  but only giving you the C contexts when you are working in C code. 

2003-02-06 David Inglis
	* src/org/eclipse/cdt/internal/core/DocumentInputStream.java (Removed)
	* src/org/eclipse/cdt/internal/ui/DocumentInputStream.java (Added)
	cleanup - moved to ui package

	* src/org/eclipse/cdt/internal/ui/CContentProvider.java (Removed)
	* src/org/eclipse/cdt/internal/ui/CElementImageDescriptor.java (Removed)
	* src/org/eclipse/cdt/internal/ui/CElementLabelProvider.java (Removed)
	* src/org/eclipse/cdt/ui/CElementContentProvider.java (Added)
	* src/org/eclipse/cdt/ui/CElementImageDescriptor.java (Added)
	* src/org/eclipse/cdt/ui/CElementLabelProvider.java (Added)
	* src/org/eclipse/cdt/internal/ui/CFileElementWorkingCopy.java
	* src/org/eclipse/cdt/internal/ui/CWorkbenchAdapter.java
	* src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java
	* src/org/eclipse/cdt/internal/ui/cview/CView.java
	* src/org/eclipse/cdt/internal/ui/dialogs/SelectionStatusDialog.java
	* src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
	* src/org/eclipse/cdt/internal/ui/editor/CEditorErrorTickUpdater.java
	* src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
	cleanup - moved CElementContentProvider/LableProvider/ImageDescrptor out of internal package
	to ui so it can be cleanly used by others.
	
	* src/org/eclipse/cdt/internal/ui/text/eclipse2/CRuleBasedDamagerRepairer.java (Removed)
	* src/org/eclipse/cdt/internal/ui/text/eclipse2/CRuleBasedPartitioner.java (Removed)
	cleanup - No longer needed.
	
2003-02-04 Alain Magloire

	Cleanup of the annoying error generate by the JDT 2.1 compiler
	static versus non-static access to fields and methods.

	* src/org/eclipse/cdt/internal/corext/template/Templates.java
	* src/org/eclipse/cdt/internal/ui/BuildConsoleManager.java
	* src/org/eclipse/cdt/internal/ui/CCompletionContributorManager.java
	* src/org/eclipse/cdt/internal/ui/CPluginImages.java
	* src/org/eclipse/cdt/internal/ui/ErrorTickAdornmentProvider.java
	* src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java
	* src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
	* src/org/eclipse/cdt/internal/ui/editor/CEditorActionContributor.java
	* src/org/eclipse/cdt/internal/ui/editor/DefaultCEditorTextHover.java
	* src/org/eclipse/cdt/internal/ui/editor/OpenIncludeAction.java
	* src/org/eclipse/cdt/internal/ui/editor/OpenOnSelectionAction.java
	* src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
	* src/org/eclipse/cdt/internal/ui/preferences/CLaunchingPropertyPage.java
	* src/org/eclipse/cdt/internal/ui/preferences/EditTemplateDialog.java
	* src/org/eclipse/cdt/internal/ui/preferences/TemplatePreferencePage.java
	* src/org/eclipse/cdt/internal/ui/text/CAutoIndentStrategy.java
	* src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
	* src/org/eclipse/cdt/internal/ui/text/HTMLTextPresenter.java
	* src/org/eclipse/cdt/internal/ui/text/link/LinkedPositionManager.java
	* src/org/eclipse/cdt/internal/ui/text/link/LinkedPositionUI.java
	* src/org/eclipse/cdt/internal/ui/text/template/TemplateProposal.java
	* src/org/eclipse/cdt/internal/ui/text/template/TemplateVariableProposal.java
	* src/org/eclipse/cdt/internal/ui/util/EditorUtility.java
	* src/org/eclipse/cdt/internal/ui/util/ProblemMarkerManager.java
	* src/org/eclipse/cdt/internal/ui/wizards/OpenNewFileWizardAction.java
	* src/org/eclipse/cdt/internal/ui/wizards/OpenNewFolderWizardAction.java
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/StringDialogField.java
	* src/org/eclipse/cdt/internal/ui/wizards/swt/MGridLayout.java
	* src/org/eclipse/cdt/ui/CUIPlugin.java
	* src/org/eclipse/cdt/ui/wizards/CProjectWizard.java
	* src/org/eclipse/cdt/ui/wizards/StdMakeProjectWizard.java
	* src/org/eclipse/cdt/ui/wizards/TabFolderPage.java
	* src/org/eclipse/cdt/ui/wizards/conversion/ConversionWizard.java
	* src/org/eclipse/cdt/ui/wizards/conversion/ConvertProjectWizardPage.java

2003-02-01 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/cview/CView.java:
	Remove CreateFileAction, CreateFolderAction and OpenPerspectiveMenu,
	deprecated classes.  Instead use NewWizardMenu class.
	* src/org/eclipse/cdt/internal/ui/BuildConsoleManager.java:
	Make fDocument protected scope.
	* src/org/eclipse/cdt/ui/CUIPlugin.java:
	Wrong definitions of FILE_WIZARD_ID and FOLDER_WIZARD_ID.
	* plugin.properties:
	New entries for file and folder wizards.
	* plugin.plugin.xml:
	New entries for file and folder wizards.

2003-01-28 Alain Magloire

	With the help of the 2.1 compiler, fix the warnings when accessiong static
	fields.

	* src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsoleView.java:
	* src/org/eclipse/cdt/internal/ui/cview/FilerSelectionAction.java:
	* src/org/eclipse/cdt/internal/ui/cview/ShowLibrariesAction.java:
	* src/org/eclipse/cdt/internal/ui/dialogs/AbstractElementListSelection.java:
	* src/org/eclipse/cdt/internal/ui/dialogs/SelectionList.java:
	* src/org/eclipse/cdt/internal/ui/editor/BracketPainter.java:
	* src/org/eclipse/cdt/internal/ui/editor/ContentOulinerPager.java:
	* src/org/eclipse/cdt/internal/ui/editor/OpenIncludeAction.java:
	* src/org/eclipse/cdt/internal/ui/editor/OpenOnSelectionAction.java:
	* src/org/eclipse/cdt/internal/ui/preferences/EditTemplateDialog.java:
	* src/org/eclipse/cdt/internal/ui/text/CPaintMatcher.java:
	* src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java:
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/DialogField.java:
	* src/org/eclipse/cdt/internal/ui/wizards/dialogfields/StringButtonDialogField.java:
	* src/org/eclipse/cdt/internal/ui/wizards/swt/MGridLayout.java:

2003-01-24 Alain Magloire

	* src/org/eclipse/cdt/ui/wizards/SettingsBlock.java (doRung):
	Check for program that are quoted.
	This patch was base on previous proposed by Alex Chapiro.

2003-01-21 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java (category):
	Use get{Header,Source}Extensions().
	* src/org/eclipse/cdt/internal/ui/editor/SearchForReferences.java (run):
	Use getTranslationUnitExtensions().

2003-01-10 Alain Magloire

	Bug 28994

	* src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java (getAdapter):
	Use getResource() not getUnderlyingResource(), to return the IResource
	Returning the underlyin resource may fool the Label Decorators.

2003-01-09 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/CElementImageProvider.java (getBaseImageDescriptor):
	Provide the same icon for methods.

2003-01-07 Alain Magloire

	REMIND:More work needs to be done on the ContentAssist preferences
	For example the autoactivation can not be a character but has to be
	a string since we need: "." and "->"
	To be revisited when we the story of the C/C++ Parser is clearer.
	
	* src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage (createContentAssistPage):
	The addFieldText() for autoactivation is not a number.

2003-01-02 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/text/BufferedDocumentScanner.java (setRange):
	Patch form Ed Burnette, email excerpt:
	"There was an out of range exception happening when rescans
	were done at a non-zero offset because the length being requested was
	too large. This should work in 2.0 and 2.1 though I've only tested it on
	2.0.1 so far."
	
2003-01-02 Alain Magloire

	* src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java(createAnnotationModel):
	Check for IStorageEditorInput and use the getAdapter() to find a resource for the
	annotation model.

2002-12-12 Judy N Green
	*src/org/eclipse/cdt/internal/ui/editor/CEditor.java
	Fixed Bugzilla bug PR 25176
	The C editor doesn't properly handle the space conversion of tabs properly.
	If I put the following in and tab spaces are set to 8 spaces:

	1234567890123456789
	<tab>  a
	abc<tab>  a

	Where it should probably line up with the first entry.
	
2002-12-12 Judy N Green
	*src/org/eclipse/cdt/internal/ui/editor/CMarkerAnnotation.java
	Added a method that will attempt to highlight the correct instance of 
	a variable. It will skip instances of the string if they are encased in
	String quotes and return the first instance that is not encased in quotes

2002-12-11 Judy N Green
	* src/org/eclipse/cdt/internal/ui/text/BufferedDocumentScanner.java
	Fix for the backwards display of typed text when the CDT ran within
	Eclipse 2.1.
	Patch submitted by Ed Burnette. 
	Tested on M1, 2.1 (20021204 integration build) and 2.0.1 
	Bugzilla Bug 24648 

2002-12-11 Alain Magloire

	Fix PR 27937.  NPE in the C Editor preference page.

	* src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java (createBehaviourPage):
	Remove listeners and variables for Margins, this will be enable by
	only saving the changes in the store values.

2002-12-06 Alain Magloire

	The hovering uses to the indexer to gather some information, but
	it is sometime wrong since the information should be base on the context
	say:
	  structure->printf
	Obviously you do not want to know about libc printf() stdio call.
	This will take sometime to fix.

	* src/org/eclipse/cdt/internal/ui/editor/DefaultCEditortextHover.java (getHoverInfo):
	Beautify the print.

2002-12-06 David Inglis

	* src/org/eclipse/cdt/internal/ui/editor/DefaultCEditorTextHover.java:
	* srcsrc/org/eclipse/cdt/internal/ui/text/CAnnotationHover.java:
	* src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java:
	* src/org/eclipse/cdt/internal/ui/text/HTML2TextReader.java: New 
	* src/org/eclipse/cdt/internal/ui/text/HTMLPrinter.java: New
	* src/org/eclipse/cdt/internal/ui/text/HTMLTextPresenter.java: New
	* src/org/eclipse/cdt/internal/ui/text/LineBreakingReader.java
	* src/org/eclipse/cdt/internal/ui/text/SubstitutionTextReader.java: New

	Added support to display balloon messages for lines with multiple markers.
	Added support for basic markup within the hover balloons within the CEditor.
	
2002-12-04 Alex Chapiro

	I propose to create isValidLocation method in addition to already existing
	method isValidName. CProjectWizardPage has to invoke this new method on the
	same way as it invokes isValidName.

	* src/org/eclipse/cdt/ui/wizard/CProjectWizard.java (isValidationLocation):
	New method to allow a check on the location of the project.
	* src/org/eclipse/cdt/ui/wizard/CProjectWizardPage.java (validatePage):
	Call isValidationLocation() for the project Location

2002-12-01 Alain Magloire

	* src/.../internal/ui/editor/OpenOnSelectionAction.java (getText):
	Change the label provider for the tag.
	* src/.../internal/ui/text/CCompletionProcessor.java(evalProposals):
	Document.getChar() is 0 based move back the position. 

2002-11-28 Alain Magloire

	* plugin.xml: Make a targetID for AsmEditor to allow the debug
	plugin to contributes breakpoint menus in the ruller.
	
	* src/.../internal/ui/editor/asm/AsmTextEditor.java (AsmTextEditor):
	set the context id.

2002-11-27 David Inglis
 
	* plugin.properties:
	* plugin.xml:
	* src/.../internal/ui/BuildConsoleManager.java:
	* src/.../internal/ui/ConsoleEvent.java:
	* src/.../internal/ui/buildconsole/BuildConsoleView.java:
	* src/.../internal/ui/cview/CView.java:
	* src/.../ui/preferences/BuildConsolePreferencePage.java:
	* src/.../internal/ui/preferences/CPluginPreferencePage.java:
	* src/.../ui/CUIPlugin.java:
	* src/.../ui/IBuildConsoleEvent.java:
	refactored CPluginPreferencePage into a BuildConsolePreferencePage.
	added a configurable cap on the number of lines to keep in the build console.

2002-11-27 David Inglis
	* utils.ui/.../controls/ControlFactory.java:
	removed unsed hyperlink stuff since it was leaking Cursors.

2002-11-27 Alain Magloire

	* src/.../internal/ui/preferences/CProjectPropertyPage.java:
	Added BinaryParserBlock part of the tab items.
	(performOK): run this method in a runnable to allow cancellation.
	* src/.../internal/ui/CContentProvider.java (processDelta):
	Catch binary parser changes.
	* src/.../ui/wizards/BinaryParserBlock.java: TabItem to change binary parser.
	* src/.../ui/wizards/StdMakeProjectWizard.java: TabItem to change binary parser.

2002-11-25 David Inglis
	* src/.../internal/ui/editor/CEditor.java:(extends TextEditor)
	* src/.../internal/ui/editor/CEditorActionContributor.java:(extends TextEditorActionContributor)
	support line convertion actions and encoding.
	
2002-11-22 Alex Chapiro

	* src/.../wizards/CProjectWizard.java:
	The problem appears in ConversionWizard that inherits to CProjectWizard. The
	first one does not initialize fmainPage which causes NullpointerException.
	Actually, ConversionWizard doesn't have this page, so it is unsupported
	operation for it.

2002-11-22 Alain Magloire

	* src/.../internal/ui/BinaryPropertySource.java (getPropertyValue):
	Check for core.
	* src/.../internal/ui/CElementImageProvider.java (getBaseImageDescriptor):
	Check for Core files.
	* src/.../internal/ui/CElementLabelProvider.java (getCelementImage):
	Removed.
	* src/.../internal/ui/CPluginImages.java:
	DESC_OBJS_CORE, IMG_OBJS_CORE, new icon for core files.

2002-11-22 Alex Chapiro

	* src/.../wizards/conversion/ConversionWizard.java(doRun):
	doRunPrologue() should not be call from doRun().

2002-11-21 David Inglis
	* plugin.xml
	* plugin.properties
	fixed bug #25886 - duplicate menu entries for compare and replace
	
2002-11-20 Alain Magloire

	Move the Index property page in the C/C++ project category.
	* src/.../internal/ui/preferences/CIndexerManager.java: Removed.
	* src/.../internal/ui/preferences/CProjectPropertyPage.java (indexerBlock):
	Add the indexer block to the CProjectPropertyPage tab.
	* src/.../ui/wizard/IndexerBlock.java: New file implementing
	the indexer TabItem.

2002-11-20 David Inglis
	* src/.../internal/ui/cview/CView.java
	Added support for label decorators

2002-11-20 David Inglis
	* src/.../internal/ui/BuildConsoleManager.java
	Only flush the console when buffer > 512 instead of every line.
	Plus do the console update synchronously as a async update can
	cause problems if the update happen faster then the drawing.
	
2002-11-18 Alain Magloire

	* src/.../internal/ui/editor/CEditor.java (createCSourceViewer):
	Check for null pointer, the file maybe an IStorage.
	* src/.../internal/ui/cview/CViewSorter.java (category): Expand
	the category to include member of a translationUnit. 
	* src/.../internal/ui/cview/CContentProvider.java (processDelta):
	postRefresh() for IBinary and IArchive files also.
	* src/.../internal/ui/cview/CElementAdapterFactory.java (getAdapter):
	Call getResource() instead of getUnderlyingResource().

2002-11-15 Alain Magloire

	* src/.../internal/ui/cview/CView.java (addBookMarkMenu):
	Only add bookmark of IFile.

2002-11-15 Alain Magloire

	* plugin.xml:  Typo when doing the Ruler contibution
	for Task and bookmarks, it should #CEditorRulerContext.

2002-11-14 Alain Magloire

	* src/.../internal/ui/cview/CView.java (addBuildMenu):
	Only show the "Make" and Build menus for containers.

2002-11-14 Alain Magloire

	* src/.../internal/ui/buildconsole/BuildConsoleView.java (convertSelectionToProject):
	new method.
	(selectionChanged): Only reset the document if selected project changed.

2002-11-13 Judy N. Green
	*/home/tools/org.eclipse.cdt.ui/plugin.properties
	*/home/tools/org.eclipse.cdt.ui/plugin.xml
	updated labels & wizards to use combined conversion wizard
	
	*src/org/eclipse/cdt/internal/ui/CPluginResources.properties
	updated labels
	
	*src/org/eclipse/cdt/ui/wizards/StdMakeProjectWizard.java
	No longer add builder in run method. it is being added in enough other places 

	*src/org/eclipse/cdt/ui/wizards/conversion/ConversionWizard.java
	updated reference to call combined conversion page
	
	*src/org/eclipse/cdt/ui/wizards/conversion/ConvertProjectWizardPage.java
	Moved common c/c== conversion methods up to this shared class
	
	
	Added:
	*src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeConversionWizard.java
	*src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeProjectWizardPage.java
	Combined the C/C++ conversion wizards to this class
	
	Removed:
	*src/org/eclipse/cdt/ui/wizards/conversion/ConvertSimpleToCCStdMakeProjectWizardPage.java
	*src/org/eclipse/cdt/ui/wizards/conversion/ConvertCtoCCStdMakeProjectWizardPage.java
	*src/org/eclipse/cdt/ui/wizards/conversion/ConvertSimpleToCStdMakeProjectWizardPage.java
	*src/org/eclipse/cdt/ui/wizards/conversion/CtoCCConversionWizard.java
	*src/org/eclipse/cdt/ui/wizards/conversion/SimpleToCCStdMakeConversionWizard.java
	
	
	
	
	

2002-11-13 Alain Magloire

	* src/.../internal/ui/editor/ProblemPainter.java (hasProblem):
	Check for NPE, dispose may have been called.

2002-11-13 Alain Magloire

	* src/.../wizards/CProjectWizard.java (isValidName):
	New method to give a change to the wizard to check
	the validity of a project name.
	* src/.../wizard/CProjectWizardPage.java (CProjectWizardPage):
	Takes new argument, the CProjectWizard.
	(validatePage): calls isValidName() to check if name is valid.

2002-11-13 David Inglis	
	
	* plugin.properties
	* plugin.xml
	* src/.../internal/ui/preferences/CIndexerPropertyPage.java
	Added new property page on c project to enable/disable the indexing service.
	
	
2002-11-06 Alain Magloire

	Fix for Bugzilla 25869.
	
	* src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java (getDefaultPrefixes):
	New Method to return the prefix use to comment out code.

2002-11-06 Tom Tromey

	Fix for Bugzilla 25784.
	* src/org/eclipse/cdt/ui/wizards/CProjectWizardPage.java
	(validatePage): Allow project name to contain a space.
	* src/org/eclipse/cdt/internal/ui/CPluginResources.properties
	(CProjectWizardPage.projectContainsSpace): Removed.

2002-11-06 David Inglis
	* src/.../ui/CUIPlugin.java:
	fixed NPE.
	
2002-11-01 David Inglis
	* src/.../internal/ui/CElementLabelProvider.java:
	change cpu display string to use isLittleEndian method on IBinary
	
	
2002-10-31 Judy N. Green
	Removed the ReferenceBlock from the Project Properties display. Eclipse
	adds a Project Properties entry to the Project Properties.
	This was resulting in confusion since the 
	C/C++ Project --> Project References (filtered on nature == cnature)
	
	and the 
	Project References (unfiltered, showing all projects)
	
	Both listed some files in common, but they were not linked in any way
	so the user could get into a very awkward state, when selecting or deselecting
	as one view woud over ride the other.
	
	src/org/eclipse/cdt/internal/ui/preferences/CProjectPropertyPage.java:
	
	
2002-10-29 David Inglis

	Refactor ui.internal.CPlugin to ui.CUIPlugin with method to get the new 
	IBuildConsoleManager interface.
	New BuildConsoleView which shows console on selected IProject plus tracks console
	of active build.
	
	org.eclipse.cdt.ui/plugin.xml
	src/org/eclipse/cdt/internal/corext/template/Templates.java
	src/org/eclipse/cdt/internal/corext/template/c/CContext.java
	src/org/eclipse/cdt/internal/corext/textmanipulation/TextBuffer.java
	src/org/eclipse/cdt/internal/corext/textmanipulation/TextBufferEditor.java
	src/org/eclipse/cdt/internal/corext/textmanipulation/TextBufferFactory.java
	src/org/eclipse/cdt/internal/ui/BinaryPropertySource.java
	src/org/eclipse/cdt/internal/ui/CCompletionContributorManager.java
	src/org/eclipse/cdt/internal/ui/CContentProvider.java
	src/org/eclipse/cdt/internal/ui/CElementImageProvider.java
	src/org/eclipse/cdt/internal/ui/CElementLabelProvider.java
	src/org/eclipse/cdt/internal/ui/CElementProperties.java
	src/org/eclipse/cdt/internal/ui/CElementPropertySource.java
	src/org/eclipse/cdt/internal/ui/CPerspectiveFactory.java
	src/org/eclipse/cdt/internal/ui/CPluginImages.java
	src/org/eclipse/cdt/internal/ui/CUIStatus.java
	src/org/eclipse/cdt/internal/ui/ErrorTickAdornmentProvider.java
	src/org/eclipse/cdt/internal/ui/ICHelpContextIds.java
	src/org/eclipse/cdt/internal/ui/ResourceAdapterFactory.java
	src/org/eclipse/cdt/internal/ui/StandardCElementLabelProvider.java
	src/org/eclipse/cdt/internal/ui/compare/CMergeViewer.java
	src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java
	src/org/eclipse/cdt/internal/ui/cview/CElementFilters.java
	src/org/eclipse/cdt/internal/ui/cview/CPatternFilter.java
	src/org/eclipse/cdt/internal/ui/cview/CView.java
	src/org/eclipse/cdt/internal/ui/cview/CViewDropAdapter.java
	src/org/eclipse/cdt/internal/ui/cview/FilterSelectionAction.java
	src/org/eclipse/cdt/internal/ui/cview/FiltersContentProvider.java
	src/org/eclipse/cdt/internal/ui/cview/ShowLibrariesAction.java
	src/org/eclipse/cdt/internal/ui/editor/AddIncludeOnSelectionAction.java
	src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
	src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java
	src/org/eclipse/cdt/internal/ui/editor/CEditor.java
	src/org/eclipse/cdt/internal/ui/editor/CEditorActionContributor.java
	src/org/eclipse/cdt/internal/ui/editor/GotoErrorAction.java
	src/org/eclipse/cdt/internal/ui/editor/LexicalSortingAction.java
	src/org/eclipse/cdt/internal/ui/editor/OpenIncludeAction.java
	src/org/eclipse/cdt/internal/ui/editor/OpenOnSelectionAction.java
	src/org/eclipse/cdt/internal/ui/editor/OverviewRuler.java
	src/org/eclipse/cdt/internal/ui/editor/SearchForReferencesAction.java
	src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java
	src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextTools.java
	src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
	src/org/eclipse/cdt/internal/ui/preferences/CLaunchingPropertyPage.java
	src/org/eclipse/cdt/internal/ui/preferences/CPluginPreferencePage.java
	src/org/eclipse/cdt/internal/ui/preferences/CProjectPropertyPage.java
	src/org/eclipse/cdt/internal/ui/preferences/EditTemplateDialog.java
	src/org/eclipse/cdt/internal/ui/preferences/TemplatePreferencePage.java
	src/org/eclipse/cdt/internal/ui/text/CAnnotationHover.java
	src/org/eclipse/cdt/internal/ui/text/CAutoIndentStrategy.java
	src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
	src/org/eclipse/cdt/internal/ui/text/CFormattingStrategy.java
	src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java
	src/org/eclipse/cdt/internal/ui/text/CTextTools.java
	src/org/eclipse/cdt/internal/ui/text/ContentAssistPreference.java
	src/org/eclipse/cdt/internal/ui/text/link/LinkedPositionManager.java
	src/org/eclipse/cdt/internal/ui/text/link/LinkedPositionUI.java
	src/org/eclipse/cdt/internal/ui/text/template/TemplateProposal.java
	src/org/eclipse/cdt/internal/ui/text/template/TemplateVariableProposal.java
	src/org/eclipse/cdt/internal/ui/util/EditorUtility.java
	src/org/eclipse/cdt/internal/ui/util/ProblemMarkerManager.java
	src/org/eclipse/cdt/internal/ui/wizards/OpenNewFileWizardAction.java
	src/org/eclipse/cdt/internal/ui/wizards/OpenNewFolderWizardAction.java
	src/org/eclipse/cdt/ui/wizards/CCProjectWizard.java
	src/org/eclipse/cdt/ui/wizards/CProjectWizard.java
	src/org/eclipse/cdt/ui/wizards/CProjectWizardPage.java
	src/org/eclipse/cdt/ui/wizards/ReferenceBlock.java
	src/org/eclipse/cdt/ui/wizards/SettingsBlock.java
	src/org/eclipse/cdt/ui/wizards/StdCCWizard.java
	src/org/eclipse/cdt/ui/wizards/StdCWizard.java
	src/org/eclipse/cdt/ui/wizards/StdMakeProjectWizard.java
	src/org/eclipse/cdt/ui/wizards/conversion/ConversionWizard.java
	src/org/eclipse/cdt/ui/wizards/conversion/ConvertCtoCCStdMakeProjectWizardPage.java
	src/org/eclipse/cdt/ui/wizards/conversion/ConvertProjectWizardPage.java
	src/org/eclipse/cdt/ui/wizards/conversion/ConvertSimpleToCCStdMakeProjectWizardPage.java
	src/org/eclipse/cdt/ui/wizards/conversion/ConvertSimpleToCStdMakeProjectWizardPage.java
	src/org/eclipse/cdt/ui/wizards/conversion/CtoCCConversionWizard.java
	src/org/eclipse/cdt/ui/wizards/conversion/SimpleToCCStdMakeConversionWizard.java
	src/org/eclipse/cdt/ui/wizards/conversion/SimpleToCStdMakeConversionWizard.java
	
		- do to refactor (import changes and CPlugin to CUIPlugin).
	
	src/org/eclipse/cdt/internal/ui/makeview/MakeAction.java
		- no longer use console session attributes here.
	
	src/org/eclipse/cdt/internal/ui/CPlugin.java
		- moved from internal and renamed  to CUIPlugin.java

	src/org/eclipse/cdt/internal/ui/BuildConsoleAction.java
	src/org/eclipse/cdt/internal/ui/BuildConsoleView.java
	src/org/eclipse/cdt/internal/ui/ClearConsoleAction.java
		- new Build console
			- shows console on selected project.
			- shows console of active build.

	src/org/eclipse/cdt/ui/CUIPlugin.java
		- added method getBuildManager()
		- refactored BuildConsole management into manager class
	
	src/org/eclipse/cdt/ui/IBuildConsoleEvent.java
	src/org/eclipse/cdt/ui/IBuildConsoleListener.java
	src/org/eclipse/cdt/ui/IBuildConsoleManager.java
	src/org/eclipse/cdt/internal/ui/BuildConsole.java
	src/org/eclipse/cdt/internal/ui/CConsole.java
	src/org/eclipse/cdt/internal/ui/ConsoleEvent.java
	src/org/eclipse/cdt/internal/ui/BuildConsoleManager.java
		- new build manager and interfaces for managing and tracking console activity.	


2002-10-28 David Inglis	
	
	* /src/.../ui/cview/CView.java
	Hookup actions to global actions in Projects menu, (build actions and close project).

2002-10-25 Judy N. Green
	Removed a redundant "Eclipse Platform" from the plugin.properties file.
	It was resulting in weird looking titles.
	
	/plugin.properties
	
	perspective.name=C/C++ Development - Eclipse Platform
	changed to
	perspective.name=C/C++ Development
	

2002-10-23 Judy N. Green
	CView overwrite files dialog text changed 
	so that it is the same in the CView as in the Navigator
	when dragging and dropping files
	
	src/../internal/ui/CPluginResources.properties
	src/../internal/ui/cview/CViewDropAdapter.java
	

2002-10-23 David Inglis
	
	* src/.../internal/ui/cview/CView.java:
		- put "all" target in default MakeAction.
		
2002-10-21 Judy N. Green
	
	Added a selection changed listener to the textViewer 
	managed by the C Build View (BuildConsoleView.java).
	This updates the state read by the tool bar menu items 
	and now enables the copy action when there is a selection 
	made in the C-Build console.

	Ctrl + A, now selects all text in the C-Build View
	Ctrl + C, now copies the selection to the clipboard
	
	* src/../internal/ui/BuildConsoleAction.java:
		- cleaned up the logic and removed commented 
		  out code in the update() method
	* src/../internal/ui/BuildConsoleView.java:
		- added a SelectionChangedListener to the contained textViewer

2002-10-17 Alain Magloire

	Patch from Alex Chapiro.

	* src/.../utils/ui/controls/ControlFactory.java:
	- createCombo methods created CCombo objects; all this methods
	where changed to create Combo object. Methods createCCombo
	were created to keep creation of CCombo cobjects.
	- general code cleaning

2002-10-16 Alain Magloire
	By Boosting the level warning of the java compiler,
	we catch unused imports or variables.  For example
	by changing the scope, the compiler no longer has
	to provide synthetic methos.

	* src/../internal/corext/textmanipulation/MoveTextEdit.java:
	* src/org/eclipse/cdt/internal/corext/textmanipulation/TextBufferFactory.java :
	* src/../internal/corext/textmanipulation/TextEditNode.java:
	* src/../internal/ui/BuildConsoleView.java:
	* src/../internal/ui/CContentProvider.java:
	* src/../internal/ui/CPlugin.java:
	* src/../internal/ui/cview/CView.java:
	* src/../internal/ui/dialogs/AbstractElementListSelectionDialog.java:
	* src/../internal/ui/dialogs/MessageLine.java:
	* src/../internal/ui/dialogs/SelectionList.java:
	* src/../internal/ui/editor/CContentOutlinePage.java:
	* src/../internal/ui/editor/CDocumentProvider.java:
	* src/../internal/ui/editor/CEditorActionContributor.java:
	* src/../internal/ui/editor/CEditorErrorTickUpdater.java
	* src/../internal/ui/editor/OverviewRuler.java:
	* src/../internal/ui/editor/PaintManager.java:
	* src/../internal/ui/editor/ProblemPainter.java:
	* src/../internal/ui/editor/asm/AsmCodeScanner.java:
	* src/../internal/ui/editor/asm/AsmSourceViewerConfiguration.java:
	* src/../internal/ui/editor/asm/AsmTextEditor.java:
	* src/../internal/ui/editor/asm/AsmTextTools.java:
	* src/../internal/ui/makeview/MakeView.java:
	* src/../internal/ui/preferences/CEditorPreferencePage.java:
	* src/../internal/ui/preferences/CLaunchingPropertyPage.java:
	* src/../internal/ui/preferences/CPluginPreferencePage.java:
	* src/../internal/ui/preferences/CProjectPropertyPage.java:
	* src/../internal/ui/preferences/ColorEditor.java:
	* src/../internal/ui/preferences/EditTemplateDialog.java:
	* src/../internal/ui/preferences/OverlayPreferenceStore.java:
	* src/../internal/ui/preferences/TemplatePreferencePage.java:
	* src/../internal/ui/text/CCodeScanner.java:
	* src/../internal/ui/text/CSourceViewerConfiguration.java:
	* src/../internal/ui/text/util/CColorManager.java:
	* src/../internal/ui/util/ProblemTreeViewer.java:
	* src/../internal/ui/wizards/dialogfields/StringDialogField.java:
	* src/../ui/wizards/CProjectWizardPage.java:
	* src/../ui/wizards/SettingsBlock.java:
	* src/../ui/wizards/conversion/ConvertProjectWizardPage.java:
	* utils.ui/../utils/ui/controls/RadioButtonsArea.java:
	Remove unused imports and change the scope when necessary.

2002-10-16 Alain Magloire

	By Boosting the level warning of the java compiler,
	we catch unused imports or variables.

	* src/../internal/ui/editor/asm/AsmPartitionScanner.java:
	* src/../internal/ui/editor/asm/AsmSourceViewerConfiguration.java:
	* src/../internal/ui/editor/asm/AsmTextEditor.java:
	* src/../internal/ui/BuilderConsoleView.java:
	Removed unused imports.
	
2002-10-11 Alain Magloire

	* internal/ui/text/CCodeScanner.java:
	* internal/ui/text/CppCodeScanner.java:
	This updates the C/C++ scanner to include some missing
	pre-processor pieces.
	From Thomas Fletcher.

2002-10-11 Alain Magloire

	* CEditorTextHoverDispatcher.java (getCurrentTextHover):
	This fixes a null pointer exception received when we hover 
	over the code in the C/C++ Editor colour preference dialog.
	From Thomas Fletcher.

2002-10-15 David Inglis	
	* MakeAction.java
	Invoke builder as full build so that CBuilder is always invoked.
		
