/******************************************************************************* * Copyright (c) 2000, 2006 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.output; import java.util.StringTokenizer; /** * GDB/MI show parsing. * (gdb) * -gdb-show directories * ~"Source directories searched: /tmp:$cdir:$cwd\n" * ^done */ public class MIGDBShowDirectoriesInfo extends MIInfo { String[] dirs = new String[0]; public MIGDBShowDirectoriesInfo(MIOutput o) { super(o); parse(); } public String[] getDirectories() { return dirs; } void parse() { if (isDone()) { MIOutput out = getMIOutput(); MIOOBRecord[] oobs = out.getMIOOBRecords(); for (int i = 0; i < oobs.length; i++) { if (oobs[i] instanceof MIConsoleStreamOutput) { MIStreamRecord cons = (MIStreamRecord)oobs[i]; String str = cons.getString(); if (str.startsWith("Source directories searched:")) { //$NON-NLS-1$ int j = str.indexOf(':'); if (j != -1) { String sub = str.substring(j + 1).trim(); parseDirectories(sub); } } } } } } void parseDirectories(String d) { String sep = System.getProperty("path.separator", ":"); //$NON-NLS-1$ //$NON-NLS-2$ StringTokenizer st = new StringTokenizer(d, sep); int count = st.countTokens(); dirs = new String[count]; for (int i = 0; st.hasMoreTokens() && i < count; i++) { dirs[i] = st.nextToken(); } } }