/******************************************************************************* * Copyright (c) 2002, 2009 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * QNX Software Systems - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.debug.mi.core.command.factories.win32; import java.io.ByteArrayOutputStream; import java.io.IOException; import org.eclipse.cdt.core.CommandLauncher; import org.eclipse.cdt.core.ICommandLauncher; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; /** * CygwinMIEnvironmentCD */ public class CygwinMIEnvironmentCD extends WinMIEnvironmentCD { CygwinMIEnvironmentCD( String miVersion, String path ) { super( miVersion, path ); // Use the cygpath utility to convert the path ICommandLauncher launcher = new CommandLauncher(); ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayOutputStream err = new ByteArrayOutputStream(); String newPath = null; try { launcher.execute( new Path( "cygpath" ), //$NON-NLS-1$ new String[]{ "-u", path }, //$NON-NLS-1$ new String[0], new Path( "." ), //$NON-NLS-1$ null); } catch (CoreException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if ( launcher.waitAndRead( out, err ) == ICommandLauncher.OK ) { newPath = out.toString(); if ( newPath != null ) { newPath = newPath.trim(); if ( newPath.length() > 0 ) { path = newPath; } } } try { out.close(); err.close(); } catch( IOException e ) { // ignore. } setParameters( new String[]{ path } ); } }