Community
Participate
Working Groups
Reproduce: ========== I create a "Standard Make C Project", give it some name, hit "Next", then change the settings in the "Error Parsers" tab, and hit finish. Now I open the "properties" of the new project, and inspect the "Error Parsers" tab under "C/C++ Make Project". I observe that the settings are not those I have entered, but those that had been offered as default values. Now I open the "preferences" in the "Window" menu, and inspect the default settings for a "New Make Project". Here i see the settings that i have entered. Probable reason: ================ in "ErrorParserBlock.java" (package org.eclipse.cdt.make.internal.ui) I found the following method: public void saveErrorParsers(IProject project, String[] parserIDs) throws CoreException { if (getContainer().getProject() != null && fBuildInfo == null) { try { fBuildInfo = MakeCorePlugin.createBuildInfo(getContainer().getProject(), MakeBuilder.BUILDER_ID); } catch (CoreException e) { } } if (fBuildInfo != null) { fBuildInfo.setErrorParsers(parserIDs); } } When I enter this method while creating a new C project, the field "fBuildInfo" points to the "default settings". It should be changed to point to my actual project, which would be done by the try-block, but the if-statement prevents that. Proposed Solution ================= Change if (getContainer().getProject() != null && fBuildInfo == null) { to if (getContainer().getProject() != null) { Version info ============ I could reproduce this behavoir with these version combinations: Eclipse SDK 3.1.1 with CDT 3.0.1 Eclispe SDK 3.2_N20060131 with CDT 3.1.0_I200601300600 Eclispe SDK 3.2_N20060131 with CDT 3.0.2_I200601300600
Created attachment 36328 [details] Patch that implements the proposed modification
Comment on attachment 36328 [details] Patch that implements the proposed modification When I enter this method while creating a new C project, the field "fBuildInfo" points to the "default settings". It should be changed to point to my actual project, which would be done by the try-block, but the if-statement prevents that.
Patch applied, thanks Michael.