2003-02-05 Doug Schaefer * src/org/eclipse/cdt/internal/parser.generated: Fix for hang on destructors in namespaces 2003-02-01 Alain Magloire Cleanups and suggestions for Hoda. * mode/org/eclipse/cdt/core/model/ITemplate.java: New File. * model/org/eclipse/cdt/core/model/IField.java: Now extedns IVariableDeclaration. * model/org/eclipse/cdt/core/model/IMethodDeclaration.java: Extends IFunctionDeclaration. * model/org/eclipse/cdt/core/model/IVariableLocal.java: Removed. 2003-01-29 Alain Magloire * index/org/eclipse/cdt/internal/core/index/IndexManager.java (shutdown): Typo was calling Thread.interrupted() instead of Thread.interrupt(). (delay): No longer static. * src/org/eclipse/cdt/core/ErrorParserManger.java (readPreferences): Use Class.forName(). * src/org/eclipse/cdt/internal/core/CDescriptorManager.java (resourceChanged): Remove useless declarations. 2003-01-29 Alain Magloire * utils/org/eclipse/cdt/utils/elf/Elf.java: * utils/org/eclipse/cdt/utils/coff/Coff.java * utils/org/eclipse/cdt/utils/coff/PE.java Cleanup some warnings when accessing static fields. 2003-01-29 Alain Magloire * model/org/eclipse/cdt/core/model/CoreModel.java (addElementChangedListeners): remove static qualifier. (removeElementChangedListeners): remove static qualifier. 2003-01-23 Alain Magloire Cleanups proposed by Amer Hoda. * model/org/eclipse/cdt/core/model/ICRoot.java: No need to extend ICElement * model/org/eclipse/cdt/core/model/ICProject.java: No need to extend ICElement * model/org/eclipse/cdt/core/model/ICFolder.java: No need to extend ICElement * model/org/eclipse/cdt/core/model/ICFile.java: No need to extend ICElement * model/org/eclipse/cdt/core/model/IMethod.java: Extends ICFunction. 2003-01-23 Alain Magloire * model/org/eclipse/cdt/internal/core/model/CModelManager.java (getHeaderExtensions): Returns possible C/C++ header extensions name. (getSourceExtensions): Returns possible C/C++ extension. (getTranslationUnitExtensions): Returns possible C/C++ extension. * model/org/eclipse/cdt/core/model/CoreModel.java: (getHeaderExtensions): New method. (getSourceExtensions): New method. (getTranslationUnitExtensions): New method. 2003-01-23 Alain Magloire Changes proposed by Amer Hoda. * model/org/eclipse/cdt/internal/core/model/Structure.java: Extends IVariableDeclaration instead of IVariable. * model/org/eclipse/cdt/core/model/IStructure.java: Extends IVariableDeclaration instead of IVariable. 2003-01-17 Alain Magloire * model/org/eclipse/cdt/internal/core/model/parser/ElfBinaryFile.java (addSymbols): The catch IOException was at the wrong place. 2002-12-23 Alain Magloire * src/org/eclipse/cdt/internal/core/CBuilder.java (invokeMake): NPE check the return of launcher.execute(), the executables may not be found. 2002-12-20 Alain Magloire Bug fix, We use a feature of GNU make to help track the directories Entering Directory '...' Leaving Directory '...' It looks like sometimes we loose track, or GNU make does not show a "Leaving Directory" this may actually depend on how it was spawn, you can suppress the message. If you loose track we popDirectories() and try to recover. * src/org/eclipse/cdt/core/ErrorParserManager.java (popDirectory): Is throwing NoSuchElement, check the size of the stack first. * src/org/eclipse/cdt/internal/errorparsers/MakeErrorParser.java (processLine): Recover when loosing track. 2002-12-19 Alain Magloire * model/org/eclipse/cdt/internal/core/model/parser/BinaryContainerAdapter.java (getFile): Check getParent() it may return null. (getFolder): Check getParent(), it may return null. 2002-12-19 Alain Magloire * src/org/eclipse/cdt/core/ErrorParserManager.java (findFilePath): The workspace will throw an Exception if the file is not within the workspace, catch it. (getWorkingDirectory): fallback to the location of the project if no working directory. * src/org/eclipse/cdt/internal/errorparsers/GCCErrorParser.java (processLine): Ignore errors that does not match the pattern. 2002-12-13 Alain Magloire * src/org/eclipse/cdt/core/CommandLauncher.java (waitAndRead): Remove hack for J9 VM, filled a PR to IBM about their VM. Only delay when there is nothing to read. 2002-12-13 Alain Magloire Building will never write to the process. having things like all: b='a'; read b; echo $$b could hang the IDE, since the process is waiting for input. to go around, the input of the process is explicitely close. * src/.../internal/core/CBuilder.java (invokeMake): Close the Output stream of the process, since we will never write to it. 2002-12-13 David Inglis Update cdt to be eclipse 2.1 ready. * model/.../internal/core/model/Marker.java: added getCreationTime() * model/.../internal/core/model/Resource.java: added isLinked() * model/.../internal/core/model/parser/BinaryContainerAdapter.java: added createLink() * model/.../internal/core/model/parser/BinaryFileAdapter.java: added createLink() 2002-12-10 Alain Magloire * src/org/eclipse/cdt/core/CCommandLauncher.java (waitAndRead): Check if the buffer is not null in available(). 2002-12-10 Alain Magloire There is a bug in IMB j9 VM in the PipedInputStream class, when the buffer is full it is returning 0 instead of buffer.length. We go around by overloading the available() method. This should be remove once the bug is fix. * src/org.eclipse.cdt.core/CCommandLauncher.java (waitAndRead): overload available() method in the input stream. Set the error message correctly when the command is canceled. 2002-12-06 Alain Magloire * indexer/.../internal/core/index/CTagsentry.java (parse): Remove The parsing was wrong for Exuberant Ctags. 2002-11-27 Alain Magloire * utils/.../utils/coff/PE.java (getAttribute): Quick fix to return the save value for CPU "x86" instead of "i386" 2002-11-27 Alain Magloire * model/.../cdt/core/model/CoreModel.java: Remove the static qualifiers and force people to use getDefault(). (getBinaryParserFormat): New method to retrieve the format of a project. (setBinaryParserFormat): New method to set the format of a project. (getDefaultBinaryParserFormat): New method to retrieve the default format. (setDefaultBinaryParserFormat): New method to set the default format. * model/.../cdt/core/model/IBinaryParser.java: Move to be is the src directory. * model/.../cdt/core/model/ICElementDelta.java: New Flag for the binary parser. * model/.../internal/core/model/parser/BinaryContainerAdapter.java: * model/.../internal/core/model/parser/BinaryFileAdapter.java: * model/.../internal/core/model/parser/ElfBinaryArchive.java: * model/.../internal/core/model/parser/ElfBinaryFile.java: * model/.../internal/core/model/parser/PEBinaryArchive.java: * model/.../internal/core/model/parser/PEBinaryFile.java: * model/.../internal/core/model/parser/PEParser.java: * model/.../internal/core/model/parser/ElfParser.java: * model/.../internal/core/model/parser/Symbol.java: * model/.../internal/core/model/ArchiveInfo.java: * model/.../internal/core/model/BinaryInfo.java: Organize imports. * model/.../internal/core/model/CElementDelta.java (binaryParserChanged): New method. * model/.../internal/core/model/CModelManager.java (releaseCElement): Remove the children of a container in the hashmap. (getDefaultBinaryParserFormat): Return the default format. (setDefaultBinaryParserFormat): set the default format. (setBinaryParserFormat): remove the all the children and fire a binary parser change. * src/../cdt/core/CCorePlugin.java (getBinaryParserConfigurations): New method to search for the extension points. * src/../cdt/core/IBinaryParser.java: New file * src/../cdt/core/IBinaryParserConfiguration.java: New file * src/../internal/cdt/core/BinaryParserConfiguration.java: New file * plugin.xml: Binary parsers extension points. 2002-11-23 Alain Magloire * model/.../cdt/core/model/CoreModel.java (getBinaryParser): New methods to retrieve the parser for a project. * model/.../cdt/core/model/IBinaryParser.java (getFormat): New method return the format supported. * model/.../internal/core/model/CModelManager.java (getBinaryParser): New methods to retrieve the parser for a project. * model/.../internal/core/model/parser/ElfBinaryFile.java: Move the Symbol class out so it can be shared. * model/.../internal/core/model/parser/ElfParser.java (getFormat): New method. * model/.../internal/core/model/parser/PEBinaryArchive.java: New file. * model/.../internal/core/model/parser/PEBinaryFile.java: New file. * model/.../internal/core/model/parser/PEParser.java: New file. * model/.../internal/core/model/parser/Symbol.java: New file. * src/.../cdt/core/CCorePlugin.java (getBinaryParser): New Methods to retrieve the extension-point. * utils/.../cdt/utils/coff/Coff.java : Parse the symbols. * utils/.../cdt/utils/coff/PE.java (getAttribute): New helper method/class Attribute. * utils/.../cdt/utils/coff/PEArchive.java : New File. * utils/.../cdt/utils/elf/AR.java (finalize): Make sure we do not leak fds. * utils/.../cdt/utils/elf/Elf.java (finalize): Make sure we do not leak fds. * plugin.xml: Define two "parser" extension-point. 2002-11-22 Alain Magloire * src/.../cdt/core/CommandLauncher.java (waitAndRead): Make sure we drain the pipes. (printCommandLine): Use the line.separator property. * src/org/eclipse/cdt/ErrorParserManager.java Check if outputStream is not null before using it. (write): must be synchronized. (checkLine): Break the buffer per line and pass it to processLine(). Takes an argument to flush when we are done(on close()). * src/.../internal/core/CBuilder.java (invokeMake): We have to call close() the same number of times we call ErrorParserManager.getOutputStream(). Move the ErrorParerManager.reportProblem() after the close. * src/.../internal/CCorePluginResources.properties: Updated. 2002-11-22 Alain Magloire The C Builder on error would clear the build. The side effect of that is on every BuildAll or Rebuild on the workspace, it will try to rebuild the projects since it has not states. It seems to work fine for JDT, where the builder has full control and can quickly make a decision The situation is not the same for the CDT, where we spawn an external tool (make) even if nothing changes i.e. the Makefiles rules when properly done will see, it still seems sloppy. So we remove this behaviour. * src/.../internal/core/CBuilder.java (invokeMake): Not to clear the state when errors. 2002-11-22 Alain Magloire * src/.../cdt/core/model/IBinary.java (isCore): New method. * src/.../cdt/core/model/IBinaryParser.java (CORE): New type core. * src/.../internal/core/model/parser/ElfBinaryFile.java (getType): case for CORE. * src/.../internal/core/model/Binary.java (isCore): New method. * src/.../internal/core/model/BinaryInfo.java (isCore): New method. * src/.../internal/core/model/CModelManager.java (isBinary): Check for core. * util/.../utils/elf/Elf.java (getAttributes): Check for Core. 2002-11-22 David Inglis * src/.../cdt/core/CommandLauncher.java: Make CommandLauncher.waitAndRead do the stream writing, since ui components process this stream, and this method may be call in a ui thread. 2002-11-20 David Inglis * src/.../internal/core/CBuilder.java: fix AUTO_BUILDs so that the builder only builds when the resources change in the project. 2002-11-20 David Inglis * plugin.xml fixed bug #26640 2002-11-19 Alain Magloire * src/.../internal/core/model/CModelManager.java (resourceChanged): Do nothing for PRE_DELETE and PRE_BUILD events for now. 2002-11-16 Alain Magloire * src/.../model/IBinaryParser.java: New Interface for Binary parsers extension-points. * src/.../model/ICElement.java (getResource): New method added. * src/.../internal/core/model/parser/BinaryContainerAdapter.java: New file adapting an archive to a IContainer. * src/.../internal/core/model/parser/BinaryFiledapter.java: New file adapting a binary to a IFile. * src/.../internal/core/model/parser/ElfBinaryArchive.java: New file implements IBinaryArchive. * src/.../internal/core/model/parser/ElfBinaryFile.java: New file implements IBinaryObject etc ... * src/.../internal/core/model/parser/ElfBinaryFile.java: New file implements IBinaryParser. * src/.../internal/core/model/Archive.java (isArchive): Removed. (getResource): Added. * src/.../internal/core/model/ArchiveContainer.java (getChildren): Use new method CProject.setBinaryRunner(). * src/.../internal/core/model/ArchiveInfo.java: rewritten to use IBinarParser interface. * src/.../internal/core/model/BinaryContainer.java (getChildren): Use new method CProject.setBinaryRunner(). * src/.../internal/core/model/BinaryInfo.java: rewritten to use IBinarParser interface. * src/.../internal/core/model/BinaryRunner.java: New File replace the ElfRunner.java. * src/.../internal/core/model/CProject.java: Rename the function with *Elf* Binary. * src/.../internal/core/model/ElfRunner.java: Rename to BinaryRunner.java * src/.../internal/core/model/CElement.java: Use getResource() instead of getCorrespondingResource(). * src/.../internal/core/model/CModelManager.java (ReleaseCElement): Bug fix was not passing the key to hash.remove(). (isShared): Use IBinaryParser. (isExecutable): Use IBinaryParser. (isArchive): Use IBinaryParser. * src/.../internal/core/model/Container.java: New file * src/.../internal/core/model/Resource.java: New file * src/.../internal/core/model/Marker.java: New file * src/.../internal/core/model/SourceManipulation.java (getResource): New method. * src/.../internal/core/model/Parent.java (getResource): New method. * plugin.xml: Indentation. 2002-11-13 Alain Magloire * src/.../internal/errorparsers/GCCErrorParser.java (processLine): Remove the "warning :" prepend substring since the error is already mark. Remove debuging println()s. 2002-11-13 Alain Magloire * src/.../internal/errorparsers/GCCErrorParser.java (processLine): Fix check if the column is valid i.e. a number. 2002-11-13 Judy Green *src/org/eclipse/cdt/core/CCProjectNature.java added configure() to overwrite CNatures implementation which adds a default CBuilder. We now check that a project having a CCNature added already has a CNature Throws a CoreException if not. *src/org/eclipse/cdt/core/CCorePlugin.java Added a static va CDT_PROJECT_NATURE_ID_MISMATCH to indicate the condition described above in configure() Cleaned up the convert methods to ensure that extra calls to add a CBuilder are not called. 2002-11-13 Alain Magloire * src/.../internal/errorparsers/GCCErrorParser.java (processLine): The full semantics seems to be: filename:lineno:column:error_description we did not take to account that the preprocessor was putting the column also. 2002-11-13 Alain Magloire * src/.../internal/core/CBuilder.java (invokeMake): Always parse the argument for errors even when the build was cancelled. 2002-11-12 Alain Magloire * index/.../internal/core/index/CTagsRunner.java (run): Remove the quick start code, not necessary. * index/.../core/index/IndexModel.java (setEnabled): Check if it was already enabled. 2002-11-12 Alain Magloire * index/.../internal/core/index/IndexManager.java (removeConatiner): Change the signature of the function to take IContainer. (removeResource): Also remove the request from the requestList. * index/.../internal/core/index/RequestList.java (removeItem): new method. 2002-11-12 Alain Magloire * index/.../core/index/IndexModel.java (isEnabled): New method check if indexing is enable for a project. (setEnabled) : enable/disable indexing for a project. (removeResource): New method, remove resource from the list. * index/.../internal/core/index/IndexManager.java (addContainer): Check if resource is enable for indexing. (addFile): Check if resource is enable for indexing. 2002-11-12 David Inglis * model/.../internal/core/model/CModelManager.java,v fixed model.create(IPath) method so it returns a element which actually exits 2002-11-08 Judy N. Green * src/org/eclipse/cdt/internal/core/COwner.java fixed check in constructor to throw error when ownerID is invalid * src/org/eclipse/cdt/internal/core/CDescriptor.java made all constants static and changed visibility of DESCRIPTION_FILE_NAME to package to be used by tge CDescriptorManager * src/org/eclipse/cdt/internal/core/CDescriptorManager.java Added to event in order to catch when the .cdtprject file is deleted. delete reference to the CDT project Descriptor when a missing file is detected. Added new public method removeExistingCdtProjectFile(IProject project), required when converting a project. 2002-11-06 Alain Magloire * src/org/eclipse/cdt/ErrorParserManager.java (parse): Unused code removed. (checkLine): String.trim() the line to remove trailing newline. * src/org/eclipse/cdt/internal/errorparser/MakeErrorParser.java (processLine): When there is no resources set the lineno to -1. 2002-11-06 David Inglis * index/org/eclipse/cdt/internal/core/index/CTagsRunner.java fixed NPE when projects are deleted. * src/org/eclipse/cdt/core/ErrorParserManager.java fixed NPE when file exits outside of workspace * utils/org/eclipse/cdt/utils/elf/Elf.java fixed out of memory failure on bad elf files 2002-11-06 Alain Magloire Deal with some issues of PR 25756. * src/.../internal.errorparsers.java (processLine): When the file is not found append not prepend the name of the file in the description. The check for "(Each undeclared ...)" was done at the wrong place. * src/.../ErrorParserManager.java (findFileName): Check if the file is absolute or relative. 2002-11-05 Alain Magloire * utils/.../utils/coff: New folder. * utils/.../utils/coff/Coff.java: First implementation of a generic COFF binary file parser. * utils/.../utils/coff/Exe.java: First implementation of a generic EXE binary file parser. * utils/.../utils/PE.java: First implementation of a generic PE coff format parser. 2002-11-05 Alain Magloire * src/.../ErrorParserManager.java (parse): Trim the line of unwanted trailing spaces. 2002-11-01 Alain Magloire * model/../internal/core/mode/CProject.java (findElement): Check if the path is Absolute or relative before creating the element. 2002-11-01 David Inglis * utils/org/eclipse/cdt/utils/elf/Elf.java change getCPU to return cpu only and not append endian ("le" or "be"). 2002-10-31 Alain Magloire * src/.../ErrorParserManager.java (findFilePath): Check if the file exists to not to return a phantom resource. 2002-10-30 Alain Magloire * src/.../CProjectNature.java (removeNature): Utility function to remove a nature from a project. (removeCNature): Utility method to remove the C Nature. * src/.../CCProjectNature.java (removeCCNature): Utility method to remove the CC nature. 2002-10-25 Alain Magloire * index/.../internal/core/index/CTagsCmd.java: Indentation. * index/.../internal/core/index/CTagsRunner.java: Implements Runnable. * index/.../internal/core/index/IndexManager.java (init): Set the indexer thread, thread.setDaemon(true). 2002-10-28 David Inglis * src/.../core/resources/ACBuilder.java Added check for duplicate markers. * src/.../internal/core/CBuilder.java Added check for canceled build and throws OperationCanceledException exception 2002-10-25 Alain Magloire The debugger needs to know the endian of a binary. For example int the memory view, to do format. * model/.../model/IBinary (isLittleEndian): New method returns the endian. * model/.../internal/core/model/Binary.java (isLittleEndian): New method. * model/.../internal/core/model/BinaryInfo.java (isLittleEndian): New method implemented by calling Elf. * utils/.../utils/elf/Elf.java (Elf.Attribute.isLittleEndian): New method return the endian. 2002-10-23 Alain Magloire * src/.../core/resource/ACBuilder.java (mapMarkerSeverity): New method to convert IMarkerGenerator to IMarker. * src/.../core/ErrorParserManager.java: New file. * src/.../core/IErrorParser.java: New file. * src/.../core/IMarkerGenerator.java: Define a set of new fields: IMarkerGenerator.SEVERITY_INFO IMarkerGenerator.SEVERITY_WARNING IMarkerGenerator.SEVERITY_ERROR_RESOURCE IMarkerGenerator.SEVERITY_ERROR_BUILD IMarkerGenerator.SEVERITY_INFO * src/.../core/erroparsers: Removed * src/.../core/erroparsers/ErrorParserManager.java: Removed * src/.../core/erroparsers/IErrorParser.java: Removed * src/.../internal/core/CBuilder.java (invokeMake): new field fatalBuild to check return of ErrorParserManager.reporProblems(). * src/.../internal/core/ProcessClosure.java (isAlive): the test shoule be an || the errorstream __or__ the outputstream thread is alive. * src/.../internal/errorparsers/GASErrorParser.java (processLine): * src/.../internal/errorparsers/GCCErrorParser.java (processLine): * src/.../internal/errorparsers/GLDErrorParser.java (processLine): * src/.../internal/errorparsers/VCErrorParser.java (processLine): Use the IMarkerGenerator fields. * src/.../internal/errorparsers/MakeErrorParser.java (processLine): Catch GNU Make build errors, something like: "make: *** No targets specified and no makefile found. Stop." 2002-10-23 David Inglis Error parsing is now done as the streams from the commands are read, this reduces memory usage during the build process, and we can now add options to the build console to only keep 'n' lines of output, again reducing the memory usage. Also refactored IErrorParser and ErrorParserManager out of internal. * src/.../errorparser/ErrorParserManager.java: * src/.../errorparser/IErrorParser.java: * src/.../internal/errorparser/GASErrorParser.java: * src/.../internal/errorparser/GCCErrorParser.java: * src/.../internal/errorparser/GLDErrorParser.java: * src/.../internal/errorparser/MakeErrorParser.java: * src/.../internal/errorparser/VCErrorParser.java: * src/.../internal/core/CBuilder.java: * src/.../internal/core/ProcessCloseure.java: * src/.../core/ConsoleOutputStream.java: 2002-10-22 Alain Magloire * src/.../internal/parser/LinePositionInputStream.java: We use a BufferedInputStream to limit the number of reads. 2002-10-16 Alain Magloire Some of the native functions were throwing exceptions particularly on the windows platform and it was not clearly advertise. Eclipse uses a tool to externalize strings, to prevent this, strings need a comment "//$NON-NLS-1$". This also incorporated some fixes by Alex Chapiro, in Spawner.Reaper Thread an exception can be thrown for example if the application does not exist, the reaper thread will catch the IOException an notify spawner of the failure by setting pid = -1; * utils/../utils/pty/PTYInputStream.java (close0): Advertise that we can throw an IOException. * utils/../utils/pty/PTYOutputStream.java (close): Put the "$NON-NLS-1$" magic. (write0): Advertise we can throw IOException. (close0): Advertise we can throw IOException. * utils/../utils/spawner/ProcessFactory.java: Reformat. * utils/../utils/spawner/Spawner.java (Reaper): The run method when calling exec0 did not catch the exception. And the waitFor() should not be done on a pid == -1; * utils/../utils/spawner/SpawnerInputStream.java: Reformat. * utils/../utils/spawner/SpawnerOutputStream.java: Reformat. 2002-10-15 Alain Magloire By making the native methods package scope, the compiler will not generate synthetic accessor methods to access them in the Reaper inner class * utils/../utils/spawner/Spawner.java (exec0): (exec1): Change scope to be package. (raise): Change scope to be package. (waitFor): Change scope to be package. 2002-10-13 Alain Magloire Boosting the compiler error level to get unused imports. * model/../internal/core/model/ArchiveContainer.java: * model/../core/model/BinaryContainer.java: * model/../core/model/CElementDelta.java: * model/../core/model/CModelManager.java: * model/../core/model/CResourceInfo.java: Remove unused imports. * src/../core/resources/ACBuilder.java: * src/../internal/core/CBuilder.java: Remove unused imports. 2002-10-15 David Inglis * model/../core/model/CoreModel.java * model/../internal/core/model/CModelManager.java * model/../internal/core/model/CModelStatus.java Clean up model - removed plugin and nature id from model refernce core plugin and nature classes for ID. - removed unsed methods in model for adding/removing natures. 2002-10-15 David Inglis * src/../internal/core/CBuilder.java Fixed builder to return referenced projects so that eclipse builder will build increamentaly build projects when they change. Handle "clean" target as special so the build state is cleared allowing the next increamental build to come in as a full build.