From f03ce33b714573fc9b512bc62c35071efe7d0a75 Mon Sep 17 00:00:00 2001 From: Ungureanu Dan-B07892 Date: Fri, 16 Jan 2015 16:54:30 +0200 Subject: [PATCH] [457699]. Update C/C++ Application path at project rename Change-Id: Ia9a2cd7c57a12bb74346915f22b6617fbb42a309 Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=457699 Signed-off-by: Dan Ungureanu --- .../internal/refactoring/ProjectRenameChange.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/refactoring/ProjectRenameChange.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/refactoring/ProjectRenameChange.java index 6682fcb03c8..9a97c0f4729 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/refactoring/ProjectRenameChange.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/refactoring/ProjectRenameChange.java @@ -23,6 +23,7 @@ import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; +import org.eclipse.core.runtime.Path; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; @@ -122,6 +123,16 @@ class ProjectRenameChange extends AbstractLaunchConfigChange { copy.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, newName); + // Update the program name if it corresponds to the project name + IPath pathProgName = new Path(launchConfig.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, "")); //$NON-NLS-1$ + String progExtension = pathProgName.getFileExtension(); + String progName = pathProgName.removeFileExtension().lastSegment(); + if (progName.equals(oldName)) { + pathProgName = pathProgName.removeLastSegments(1).append(newName).addFileExtension(progExtension); + } + copy.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, + pathProgName.toOSString()); + try { // Note: for non-local LCs, this will end up updating the .launch // file on disk but Eclipse's in memory representation will not