Catch-up. fix
authorJon Chatten
Thu, 25 Feb 2010 14:55:31 +0000
branchfix
changeset 266 23ff30e04b42
parent 265 904ed405cc3f (current diff)
parent 262 8d22aac3261c (diff)
child 267 ed4edcfbc38c
Catch-up.
--- a/sbsv2/raptor/RELEASE-NOTES.txt	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.txt	Thu Feb 25 14:55:31 2010 +0000
@@ -3,6 +3,7 @@
 next version
 
 Defect Fixes:
+- SF Bug 2000 - [Raptor] Talon fails when installed in a path containing the string '-c' (windows only)
 - SF Bug 1861 - [Raptor] More helpful console message in case of timeouts
 - SF Bug 1571 - Raptor cannot report error or warning message in wrong implib project
 - DPDEF142718 Incremental rebuild fails if dependent files deleted
@@ -10,6 +11,8 @@
   .DEFAULT target introduced for all non --no-depend-generate and/or --no-depend-include builds
 - Add support for PLUGIN3 TARGETTYPEs
 - Fixing logfile corruption for large GCCXML builds by suppressing zip output
+- Stop copying .bmp files to epoc32/localisation and fix the "what" reporting
+
 
 version 2.12.2
 
--- a/sbsv2/raptor/lib/flm/bitmap.flm	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/lib/flm/bitmap.flm	Thu Feb 25 14:55:31 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -118,54 +118,6 @@
 $(eval $(call copybitmap))
 endif
 
-################################### localisation #########################################
-## copy .bmp files to localisation
-
-# $(BMPFILES) is a list of bmp files in src
-BMPFILES:=$(subst FILE=,,$(filter FILE=%,$(SOURCE)))
-BMBASENAME:=$(call lowercase,$(basename $(BMTARGET)))
-BMPCOPYFILES:=
-BMPCOPYDIR:=$(EPOCROOT)/epoc32/localisation/$(BMBASENAME)/mbm
-$(call makepath,$(BMPCOPYDIR))
-
-define copyBMP
-# $(1) is the source .bmp file
-# $(2) is the (lower cased) copy in localisation 
-
-ifneq ($(BINCOPYDIRS),)
-BITMAP:: $(2)
-
-$(2): $(1)
-	$(call startrule,bmpfilecopy,FORCESUCCESS) \
-	$(GNUCP) $(1) $(2) && $(GNUCHMOD) +rw $(2) \
-	$(call endrule,bmpfilecopy)
-	
-endif
-
-BMPCOPYFILES:=$$(BMPCOPYFILES) $(2)
-endef
-
-$(foreach BMP,$(BMPFILES),$(eval $(call copyBMP,$(BMP),$(BMPCOPYDIR)/$(call lowercase,$(notdir $(BMP))))))
-
-## create and edit info files for bitmap files in localisation/group
-INFOFILE:=$(EPOCROOT)/epoc32/localisation/group/$(BMBASENAME).info
-DEPTH:=$(subst DEPTH=,,$(filter DEPTH=%,$(SOURCE)))
-BMP:=$(notdir $(BMPFILES))
-DEPTHBMP:=$(subst _,\,$(join $(patsubst %,/%,$(DEPTH)),$(patsubst %,_%,$(BMP))))
-
-define bmpInfo
-
-BITMAP::$(INFOFILE)
-
-$(INFOFILE)::
-	@if [ ! -d $(EPOCROOT)/epoc32/localisation/group ]; then $(GNUMKDIR) -p $(EPOCROOT)/epoc32/localisation/group; fi
-	@if [ ! -f $$@ ]; then echo "DATADIR: /$(BMBASENAME)" > $$@ ; fi
-	@echo -e "\n/z$(TARGETPATH)/$(BMTARGET) : $(DEPTHBMP)" >> $$@
-endef
-
-$(eval $(call bmpInfo))
-
-# end of localisation #########################################################
 
 ## Clean up
 $(call raptor_clean,$(CLEANTARGETS))
@@ -173,6 +125,6 @@
 $(call makepathfor,$(BITMAPHEADER))
 
 # for the abld -what target
-BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES) $(BMPCOPYFILES) $(INFOFILE)
+BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES)
 $(call raptor_release,$(BMPRELEASEABLES),BITMAP)
 
--- a/sbsv2/raptor/test/smoke_suite/bitmap.py	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/bitmap.py	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -26,13 +26,6 @@
 	t.targets = [
 		"$(EPOCROOT)/epoc32/include/testbitmap.mbg",
 		"$(EPOCROOT)/epoc32/data/z/resource/apps/testbitmap.mBm",
-		"$(EPOCROOT)/epoc32/localisation/group/testbitmap.info",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def4m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def48.bmp",
 		"$(EPOCROOT)/epoc32/tools/makefile_templates/test/mifconv.xml",
 		"$(EPOCROOT)/epoc32/tools/makefile_templates/test/mifconv.flm"
 		]
--- a/sbsv2/raptor/test/smoke_suite/gui_whatlog.py	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/gui_whatlog.py	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -30,12 +30,6 @@
 	t.usebash = True
 	t.targets = [
 		"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
 		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
 		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
@@ -122,13 +116,6 @@
 	t.stdout = [
 		"<whatlog bldinf='"+componentpath+"/Bld.inf' mmp='"+componentpath+"/HelloWorld.mmp' config='armv5_udeb.whatlog'>",
 		"<bitmap>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/group/helloworld.info</bitmap>",
 		"<resource>$(EPOCROOT)/epoc32/include/helloworld.rsg</resource>",
 		"<resource>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc</resource>",
 		"<resource>$(EPOCROOT)/epoc32/localisation/helloworld/rsc/helloworld.rpp</resource>",
@@ -142,13 +129,6 @@
 		"<bitmap>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm</bitmap>",
 		"<bitmap>$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm</bitmap>",
 		"<bitmap>$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/group/helloworld.info</bitmap>",
 		"<resource>$(EPOCROOT)/epoc32/include/helloworld.rsg</resource>",
 		"<resource>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc</resource>",
 		"<resource>$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.rsc</resource>",
--- a/sbsv2/raptor/test/smoke_suite/resource.py	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/resource.py	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -30,12 +30,6 @@
 		"$(EPOCROOT)/epoc32/localisation/testresource/rsc/testresource.rpp",
 		
 		"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
 		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
 		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
--- a/sbsv2/raptor/test/smoke_suite/sysdef_layers.py	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/sysdef_layers.py	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -49,12 +49,6 @@
 		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.rsc",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
 		"$(EPOCROOT)/epoc32/localisation/helloworld/rsc/helloworld.rpp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld_reg.info",
 		"$(EPOCROOT)/epoc32/localisation/helloworld_reg/rsc/helloworld_reg.rpp"
 		]
--- a/sbsv2/raptor/test/smoke_suite/whatlog_cache.py	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/whatlog_cache.py	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -42,12 +42,6 @@
 		
 	t.targets = [
 		"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
 		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
 		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
@@ -142,12 +136,6 @@
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\include\\\\\\\\helloworld.rsg\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\group\\\\\\\\helloworld.info\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\group\\\\\\\\helloworld_reg.info\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon24.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon2m.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon32.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon3m.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon48.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon4m.bmp\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\rsc\\\\\\\\helloworld.rpp\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld_reg\\\\\\\\rsc\\\\\\\\helloworld_reg.rpp\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\release\\\\\\\\(armv5|winscw)\\\\\\\\(udeb|urel)\\\\\\\\helloworld.exe\'",4],
--- a/sbsv2/raptor/util/talon/Makefile	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/Makefile	Thu Feb 25 14:55:31 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -21,6 +21,7 @@
 include $(SBS_HOME:\=/)/util/gccprogram.mk
 
 ifeq ($(filter win,$(HOSTPLATFORM)),win)
+CHOMP_C:=chomp.c
 PROCESS_C:=process_win.c
 CFLAGS:=-DHOST_WIN
 ifeq ($(SBS_MINGW),)
@@ -29,6 +30,7 @@
 LDFLAGS:=$(subst \,/,$(SBS_MINGW:\=/)\lib\libiberty.a)
 endif
 else
+CHOMP_C:=
 PROCESS_C:=process.c
 CFLAGS:=-g
 linux_PTHREADLIBS:=-lpthread
@@ -43,8 +45,7 @@
 MANIFEST:=$(SOURCEDIR)/manifest
 
 TARGET:=talon
-SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C))
-#$(info $(cprogram))
+SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C) $(CHOMP_C)) 
 $(eval $(cprogram))
 
 TARGET:=talonctl
@@ -63,3 +64,7 @@
 SOURCES:=$(addprefix $(SOURCEDIR)/,lock.c sema.c log.c)
 $(eval $(cprogram))
 
+TARGET:=testchomp
+SOURCES:=$(addprefix $(SOURCEDIR)/,testchomp.c chomp.c log.c)
+$(eval $(cprogram))
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/chomp.c	Thu Feb 25 14:55:31 2010 +0000
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+/*
+   Get rid of the path to talon from a commandline string on windows find the 
+   -c (if it's there) and step past it to after the quote on the first command:
+
+   "g:\program files\talon\talon.exe" -c "gcc -c . . ."
+                                          ^------ Returns a pointer to here
+
+   Take care of the possibilty that there might be spaces in the command
+   if it is quoted.
+
+   A state-machine is flexible but not all that easy to write.  Should investigate
+   the possiblity of using the Ragel state machine generator perhaps.
+
+*/
+#define CH_START 0 	/* start state */
+#define CH_PRE 1	/* spaces before executable name */
+#define CH_EXQUOTE 2    /* part of the executable name, outside quotes */
+#define CH_INQUOTE 3	/* part of the executable name, in a quoted region */
+#define CH_POST 4	/* spaces after executable name */
+#define CH_MINUS 5	/* start of -c option */
+#define CH_C 6		/* end of -c option */
+#define CH_PRECOMMAND 7 /* spaces before shell commands */
+#define CH_COMMAND 8	/* first character of shell command */
+#define CH_ERR 9	/* Error! */
+
+#include "log.h"
+#include "chomp.h"
+
+char * chompCommand(char command[])
+{
+	char *result = command;
+	int state = CH_START;
+
+	while (state != CH_COMMAND && state != CH_ERR)
+	{
+		DEBUG(("startstate: %d, char %c ",state, *result));
+		switch (*result)
+		{
+			case ' ':
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+						state = CH_PRE;
+						break;
+					case CH_EXQUOTE:
+						state = CH_POST;
+						break;
+					case CH_INQUOTE:
+						break;
+					case CH_POST:
+						break;
+					case CH_MINUS:
+						state = CH_C;
+						break;
+					case CH_C:
+						state = CH_PRECOMMAND;
+						break;
+					case CH_PRECOMMAND:
+						break;
+					default:
+						state = CH_ERR;
+						break;
+				}
+			break;
+			case 'c':
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+						state = CH_EXQUOTE;
+						break;
+					case CH_EXQUOTE:
+					case CH_INQUOTE:
+						break;
+					case CH_POST:
+						state = CH_ERR;
+						break;
+					case CH_MINUS:
+						state = CH_C;
+						break;
+					case CH_C:
+					case CH_PRECOMMAND:
+					default:
+						state = CH_ERR;
+						break;
+				}
+			break;
+			case '-':
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+						state = CH_EXQUOTE;
+						break;
+					case CH_EXQUOTE:
+					case CH_INQUOTE:
+						break;
+					case CH_POST:
+						state = CH_MINUS;
+						break;
+					case CH_MINUS:
+					case CH_C:
+					case CH_PRECOMMAND:
+					default:
+						state = CH_ERR;
+						break;
+				}
+			break;
+			case '"':
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+					case CH_EXQUOTE:
+						state = CH_INQUOTE;
+						break;
+					case CH_INQUOTE:
+						state = CH_EXQUOTE;
+						break;
+					case CH_POST:
+					case CH_MINUS:
+					case CH_C:
+						state = CH_ERR;
+						break;
+					case CH_PRECOMMAND:
+						state = CH_COMMAND;
+						break;
+					default:
+						state = CH_ERR;
+						break;
+				}
+
+			break;
+			default:
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+						state = CH_EXQUOTE;
+						break;
+					case CH_INQUOTE:
+					case CH_EXQUOTE:
+						break;
+					default:
+						state = CH_ERR;
+						break;
+				}
+			break;
+		}
+		DEBUG(("endstate: %d\n",state));
+		result ++;
+		
+	}
+
+	if (state == CH_ERR)
+		return (char *)0;
+
+	return result;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/chomp.h	Thu Feb 25 14:55:31 2010 +0000
@@ -0,0 +1,21 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef _CHOMP_H_
+#define _CHOMP_H_
+char * chompCommand(char command[]);
+#endif
--- a/sbsv2/raptor/util/talon/talon.c	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/talon.c	Thu Feb 25 14:55:31 2010 +0000
@@ -33,6 +33,10 @@
 #include "buffer.h"
 #include "../config.h"
 
+#ifdef HAS_GETCOMMANDLINE
+#include "chomp.h"
+#endif
+
 /* The output semaphore. */
 sbs_semaphore talon_sem;
 
@@ -231,7 +235,6 @@
 
 #ifdef HAS_GETCOMMANDLINE
 	char *commandline= GetCommandLine();
-	DEBUG(("talon: commandline: %s\n", commandline));
 	/*
 	 * The command line should be either,
 	 * talon -c "some shell commands"
@@ -240,21 +243,13 @@
 	 *
 	 * talon could be an absolute path and may have a .exe extension.
 	 */
-	recipe = strstr(commandline, "-c");
+
+	
+	recipe = chompCommand(commandline);
 	if (recipe)
 	{
 		/* there was a -c so extract the quoted commands */
 
-		while (*recipe != '"' && *recipe != '\0')
-			recipe++;
-
-		if (*recipe != '"')    /* we found -c but no following quote */
-		{
-			error("talon: error: unquoted recipe in shell call '%s'\n", commandline);
-			return 1;
-		}
-		recipe++;
-		
 		int recipelen = strlen(recipe);
 		if (recipelen > 0 && recipe[recipelen - 1] == '"')
 			recipe[recipelen - 1] = '\0'; /* remove trailing quote */
--- a/sbsv2/raptor/util/talon/testbuffer.c	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/testbuffer.c	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -12,7 +12,10 @@
 * Contributors:
 *
 * Description: 
-*
+* This program reads from stdin into a "buffer" structure. It is designed to be
+* run from within valgrind to detect memory corruption errors.
+* The buffer is then written to /tmp/outfile where it can be compared
+* with the input to determine if they are the same
 */
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/testchomp.c	Thu Feb 25 14:55:31 2010 +0000
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* This programs tests the chompCommand function used by talon.
+*/
+
+
+
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+
+#include "chomp.h"
+#include "log.h"
+
+char *positives[] =  { 
+"c:\\apps\\talon.exe -c \"armcc -o barney.o\"", 
+"c:\\apps\\sbs2112-capabilites\\bin\\talon.exe -c \"armcc -o barney.o\"", 
+"\"c:\\apps and stuff\\talon.exe\" -c \"armcc -o barney.o\"", 
+"\"c:\\apps-can-cause-crxxx\\talon.exe\" -c \"armcc -o barney.o\"", 
+"c:\\bigspaces-\"   \"\\talon.exe -c \"armcc -o barney.o\"", 
+"c:\\bigspaces2\"   \"\\talon.exe -c \"armcc -o barney.o\"", 
+"c:\\apps\\talon.exe   -c   \"armcc -o barney.o\"", 
+"c:\\\"apps\"\\talon.exe   -c   \"armcc -o barney.o\"", 
+"c:\\\"ap ps\"\\talon.exe -c \"armcc -o barney.o\"", 
+(char *)0
+};
+
+char *negatives[] =  { 
+"c:\\apps\\talon.exe -c\"armcc -o barney.o\"", 
+"c:\\apps and stuff\\talon.exe -c \"armcc -o barney.o\"", 
+"c:\\apps\\talon.exe -c armcc -o barney.o", 
+"c:\\apps\\talon.exe commandlist.tmp", 
+(char *)0
+};
+
+char commandstr[]="armcc -o barney.o\"";
+
+int main(int argc, char *argv[])
+{
+	int i;
+	int errors = 0;
+	/* loglevel = LOGDEBUG; /* useful to leave this here */
+
+	for (i=0; positives[i] != (char *)0 ; i++)
+	{
+		char * c = chompCommand(positives[i]);
+		if (!c)
+		{
+			fprintf(stdout,"error: test failed with NULL on: %s\n", positives[i]);
+			errors++;
+			continue;
+		}
+
+		if (strcmp(commandstr, c) != 0)
+		{
+			fprintf(stdout,"error: test failed with %s on: %s\n", c,positives[i]);
+			errors++;
+			continue;
+		}
+		fprintf(stdout,"ok: %s\n", positives[i]);
+	}
+
+	for (i=0; negatives[i] != (char *)0 ; i++)
+	{
+		char * c = chompCommand(negatives[i]);
+		if (c)
+		{
+			fprintf(stdout,"error: negatice test failed with %s on: %s\n", c, negatives[i]);
+			errors++;
+			continue;
+		}
+		fprintf(stdout,"ok: negative: %s\n", negatives[i]);
+	}
+
+		
+	fprintf(stdout,"TOTAL errors: %d\n", errors);
+	return errors;
+}
--- a/sbsv2/raptor/util/talon/testprocess.c	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/testprocess.c	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -12,7 +12,11 @@
 * Contributors:
 *
 * Description: 
-*
+* This programs tests the process execution functions in talon.
+* it executes it's first argument with the following arguments 
+* as parameters to it.  Output is buffered and finally printed.
+* Should be run from within valgrind if possible to detect memory
+* corruption errors.
 */
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/tests/config.sh	Thu Feb 25 14:55:31 2010 +0000
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+# set up the environment for some talon tests.
+
+cat >settings.mk <<-endofsettings
+	SHELL:=$(cygpath -w $SBS_HOME/win32/bin/talon.exe)
+	TALON_SHELL:=$(cygpath -w $SBS_CYGWIN/bin/bash.exe)
+	TALON_BUILDID:=100
+	TALON_DEBUG:=""
+	export TALON_SHELL TALON_BUILDID TALON_DEBUG
+endofsettings
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/tests/run.sh	Thu Feb 25 14:55:31 2010 +0000
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+bash ./config.sh
+
+make -f t3.mk
+make -f t4.mk
+make -f t5.mk
--- a/sbsv2/raptor/util/talon/tests/t.mk	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/t.mk	Thu Feb 25 14:55:31 2010 +0000
@@ -14,6 +14,7 @@
 # Description: 
 #
 
+include settings.mk
 
 HOSTNAME:=fred
 COMPONENT_LAYER:=base
--- a/sbsv2/raptor/util/talon/tests/t3.mk	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/t3.mk	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -13,10 +13,10 @@
 #
 # Description: 
 #
+include settings.mk
 
-SHELL:=$(TALON)
 TALON_RECIPEATTRIBUTES:=name='$$RECIPENAME' host='$$HOSTNAME'
-export TALON_RECIPEATTRIBUTES
+export TALON_RECIPEATTRIBUTES 
 
 
 $(info SHELL="$(SHELL)")
--- a/sbsv2/raptor/util/talon/tests/t4.mk	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/t4.mk	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -14,7 +14,7 @@
 # Description: 
 #
 
-SHELL:=$(TALON)
+include settings.mk
 TALON_TIMEOUT:=4000
 TALON_RETRIES:=4
 TALON_RECIPEATTRIBUTES:=platform='$$PLATFORM' mmp='$$MMP' bldinf='$$BLDINF'
--- a/sbsv2/raptor/util/talon/tests/t5.mk	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/t5.mk	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -13,6 +13,7 @@
 #
 # Description: 
 #
+include settings.mk
 
 all:
 	||"echo this command should cause a bash error which should be visible"
--- a/sbsv2/raptor/util/talon/tests/xcopystdin.mk	Wed Feb 24 13:16:56 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/xcopystdin.mk	Thu Feb 25 14:55:31 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -14,9 +14,7 @@
 # Description: 
 #
 
-SHELL:=$(SBS_HOME)/win32/bin/talon.exe
-TALON_SHELL:=$(SBS_HOME)/win32/cygwin/bin/bash.exe
-TALON_BUILDID:=1
+include settings.mk
 TALON_RECIPEATTRIBUTES:=123
 
 export
Binary file sbsv2/raptor/win32/bin/talon.exe has changed
Binary file sbsv2/raptor/win32/bin/talonctl.exe has changed