telephonyprotocols/csdagt/script/SCOMMAND.CPP
branchRCL_3
changeset 20 07a122eea281
parent 19 630d2f34d719
equal deleted inserted replaced
19:630d2f34d719 20:07a122eea281
     1 // Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    17 
    17 
    18 /**
    18 /**
    19  @file Scommand.cpp 
    19  @file Scommand.cpp 
    20 */
    20 */
    21 
    21 
    22 
       
    23 #include "OstTraceDefinitions.h"
       
    24 #ifdef OST_TRACE_COMPILER_IN_USE
       
    25 #include "SCOMMANDTraces.h"
       
    26 #endif
       
    27 
       
    28 #include "SSCRREAD.H"
    22 #include "SSCRREAD.H"
    29 #include "SSCREXEC.H"
    23 #include "SSCREXEC.H"
    30 #include "SIO.H"
    24 #include "SIO.H"
       
    25 #include "SLOGGER.H"
    31 
    26 
    32 // Command names
    27 // Command names
    33 
    28 
    34 _LIT(KSetCommand,"SET");
    29 _LIT(KSetCommand,"SET");
    35 _LIT(KSendCommand,"SEND");
    30 _LIT(KSendCommand,"SEND");
   475 	TInt end=FindTokenEnd(iStatus.iOffset);
   470 	TInt end=FindTokenEnd(iStatus.iOffset);
   476 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KSetCommand)==KErrNone)
   471 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KSetCommand)==KErrNone)
   477 		{
   472 		{
   478 		if (!iStatus.iSkip)
   473 		if (!iStatus.iSkip)
   479 			{
   474 			{
   480 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSETCOMMAND_PARSEL_1, "Script:\tExecuting Set");
   475 			__FLOG_STMT(_LIT8(KLogStringExecutingSet,"Script:\tExecuting Set");)
       
   476 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),KLogStringExecutingSet());
   481 			}
   477 			}
   482 		iStatus.iOffset=end;
   478 		iStatus.iOffset=end;
   483 		EatSpaces(iStatus.iOffset);
   479 		EatSpaces(iStatus.iOffset);
   484 		end=FindTokenEnd(iStatus.iOffset);
   480 		end=FindTokenEnd(iStatus.iOffset);
   485 		TPtrC varName=iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset);
   481 		TPtrC varName=iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset);
   489 		EatSpaces(end);
   485 		EatSpaces(end);
   490 		TPtrC value=ParseCompoundExpressionL(end);
   486 		TPtrC value=ParseCompoundExpressionL(end);
   491 		if (!iStatus.iSkip)
   487 		if (!iStatus.iSkip)
   492 			{
   488 			{
   493 			iVarMan->AddVariableL(varName,value);
   489 			iVarMan->AddVariableL(varName,value);
   494 			OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSETCOMMAND_PARSEL_2, "Script:\tSet Var: %S  To %S",varName,value);
   490 			__FLOG_STMT(_LIT(KLogStringSetVar,"Script:\tSet Var: %S  To %S"));
       
   491 			__FLOG_STATIC2(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC>(KLogStringSetVar()),&varName,&value);
   495 			}
   492 			}
   496 		iStatus.iOffset=end;
   493 		iStatus.iOffset=end;
   497 		return ETrue;		// Consumed
   494 		return ETrue;		// Consumed
   498 		}
   495 		}
   499 	return EFalse;			// Not Consumed
   496 	return EFalse;			// Not Consumed
   551 	TInt end=FindTokenEnd(iStatus.iOffset);
   548 	TInt end=FindTokenEnd(iStatus.iOffset);
   552 	if(iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KSendCommand)==0)
   549 	if(iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KSendCommand)==0)
   553 		{
   550 		{
   554 		if(!iStatus.iSkip)
   551 		if(!iStatus.iSkip)
   555 			{
   552 			{
   556 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSENDCOMMAND_PARSEL_1,"Script:\tExecuting Send");
   553 			__FLOG_STMT(_LIT8(KLogStringExecutingSend,"Script:\tExecuting Send");)
       
   554 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),KLogStringExecutingSend());
   557 			}
   555 			}
   558 		iStatus.iOffset=end;
   556 		iStatus.iOffset=end;
   559 		EatSpaces(iStatus.iOffset);
   557 		EatSpaces(iStatus.iOffset);
   560 		TPtrC temp;
   558 		TPtrC temp;
   561 		temp.Set(ParseCompoundExpressionL(iStatus.iOffset));
   559 		temp.Set(ParseCompoundExpressionL(iStatus.iOffset));
   562 		HBufC8* buf=ConvertLC(temp,iStatus.iOffset);
   560 		HBufC8* buf=ConvertLC(temp,iStatus.iOffset);
   563 		iSendString.Set(buf->Des());
   561 		iSendString.Set(buf->Des());
   564 		if(!iStatus.iSkip)
   562 		if(!iStatus.iSkip)
   565 			{
   563 			{
   566 			iScriptIO->Write(iSendString);
   564 			iScriptIO->Write(iSendString);
   567 			OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSENDCOMMAND_PARSEL_2, "Script:\tSending %s",iSendString);
   565 #ifdef __FLOG_ACTIVE
       
   566 			_LIT(KLogStringSending,"Script:\tSending %S");
       
   567 			TBuf16<KLogBufferSize> temp;
       
   568 			temp.Copy(iSendString.Left(Min(iSendString.Length(),KLogBufferSize)));
       
   569 			__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC>(KLogStringSending()),&temp);
       
   570 #endif
   568 			}
   571 			}
   569 		CleanupStack::PopAndDestroy();
   572 		CleanupStack::PopAndDestroy();
   570 		return ETrue;		// Consumed
   573 		return ETrue;		// Consumed
   571 		}
   574 		}
   572 	return EFalse;			// Not Consumed
   575 	return EFalse;			// Not Consumed
   709 /**
   712 /**
   710 Parses WAIT command when not in skip mode.  Parses wait period, strings and labels and 
   713 Parses WAIT command when not in skip mode.  Parses wait period, strings and labels and 
   711 queue a read.
   714 queue a read.
   712 */
   715 */
   713 	{
   716 	{
   714 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAITCOMMAND_PARSEACTIONL_1, "Script:\tExecuting Wait");
   717 	__FLOG_STMT(_LIT8(KLogStringExecutingWait,"Script:\tExecuting Wait");)
       
   718 	__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),KLogStringExecutingWait());
   715 	EatSpaces(iStatus.iOffset);
   719 	EatSpaces(iStatus.iOffset);
   716 	TReal waitPeriod=ParseRealL(iStatus.iOffset);
   720 	TReal waitPeriod=ParseRealL(iStatus.iOffset);
   717 	EatSpacesAndLinesAndCommentsL();
   721 	EatSpacesAndLinesAndCommentsL();
   718 	if (iStatus.iLine[iStatus.iOffset++]!=KOpenExprChar)
   722 	if (iStatus.iLine[iStatus.iOffset++]!=KOpenExprChar)
   719 		User::Leave(KErrNoOpenExpression);
   723 		User::Leave(KErrNoOpenExpression);
   734 			HBufC8* buf=ConvertLC(temp,iStatus.iOffset);
   738 			HBufC8* buf=ConvertLC(temp,iStatus.iOffset);
   735 			CLabelSearch* label=ParseLabelLC();
   739 			CLabelSearch* label=ParseLabelLC();
   736 			TPtrC8 waitString(buf->Des());	
   740 			TPtrC8 waitString(buf->Des());	
   737 			label->CreateCommChatStringL(waitString,EFalse);
   741 			label->CreateCommChatStringL(waitString,EFalse);
   738 			iLabelArray->AppendL(label);
   742 			iLabelArray->AppendL(label);
   739 			OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAITCOMMAND_PARSEACTIONL_2, "Script:\tIf %s is found, Goto %S",waitString,label->LabelName());
   743 			// for logging
       
   744 			TBuf<KLogBufferSize> labelName;
       
   745 			labelName.Copy(label->LabelName().Left(Min(KLogBufferSize,label->LabelName().Length())));
       
   746 			//
       
   747 #ifdef __FLOG_ACTIVE
       
   748 			_LIT(KLogStringGog,"Script:\tIf %S is found, Goto %S");
       
   749 			TBuf16<KLogBufferSize> string;
       
   750 			string.Copy(waitString.Left(Min(waitString.Length(),KLogBufferSize)));
       
   751 			__FLOG_STATIC2(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC>(KLogStringGog()),&string,&labelName);
       
   752 #endif
   740 			CleanupStack::Pop();			// label - will be deleted from array
   753 			CleanupStack::Pop();			// label - will be deleted from array
   741 			CleanupStack::PopAndDestroy();	// buf - will have been copied into label array
   754 			CleanupStack::PopAndDestroy();	// buf - will have been copied into label array
   742 			}			
   755 			}			
   743 		}
   756 		}
   744 	// Tell the script executor how long we are going to wait since it
   757 	// Tell the script executor how long we are going to wait since it
   878 		{
   891 		{
   879 		if (iLoop)
   892 		if (iLoop)
   880 			User::Leave(KErrNestedLoop);
   893 			User::Leave(KErrNestedLoop);
   881 		if (!iStatus.iSkip)
   894 		if (!iStatus.iSkip)
   882 			{
   895 			{
   883 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CLOOPCOMMAND_PARSEL_1,"Script:\tExecuting Loop");
   896 			__FLOG_STMT(_LIT8(KLogStringExecutingLoop,"Script:\tExecuting Loop");)
       
   897 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),KLogStringExecutingLoop());
   884 			}
   898 			}
   885 		iStatus.iOffset=end;
   899 		iStatus.iOffset=end;
   886 		EatSpaces(iStatus.iOffset);
   900 		EatSpaces(iStatus.iOffset);
   887 		iLoopCounter=ParseIntegerL(iStatus.iOffset);
   901 		iLoopCounter=ParseIntegerL(iStatus.iOffset);
   888 		if ((iLoopCounter<KMinLoopCounter) || (iLoopCounter>KMaxLoopCounter))
   902 		if ((iLoopCounter<KMinLoopCounter) || (iLoopCounter>KMaxLoopCounter))
   892 			User::Leave(KErrNoOpenExpression);
   906 			User::Leave(KErrNoOpenExpression);
   893 		iLoop=ETrue;
   907 		iLoop=ETrue;
   894 		iScriptReader->CurrentPos(iLoopPosition,iStatus.iOffset);
   908 		iScriptReader->CurrentPos(iLoopPosition,iStatus.iOffset);
   895 		if (!iStatus.iSkip)
   909 		if (!iStatus.iSkip)
   896 			{
   910 			{
   897 			OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CLOOPCOMMAND_PARSEL_2, "Script:\tLoop Counter %d",iLoopCounter);
   911 			__FLOG_STMT(_LIT(KLogStringLoopCounter,"Script:\tLoop Counter %d");)
       
   912 			__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),KLogStringLoopCounter(),iLoopCounter);
   898 			}
   913 			}
   899 		return ETrue;		// Consumed
   914 		return ETrue;		// Consumed
   900 		}
   915 		}
   901 	return EFalse;			// Not Consumed
   916 	return EFalse;			// Not Consumed
   902 	}
   917 	}
   917 				iStatus.iOffset++;
   932 				iStatus.iOffset++;
   918 				}
   933 				}
   919 			else
   934 			else
   920 				{
   935 				{
   921 				iScriptReader->SetCurrentPos(iLoopPosition);
   936 				iScriptReader->SetCurrentPos(iLoopPosition);
   922 				OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CLOOPCOMMAND_CHECKLOOPL_1,"Script:\tRepeat Loop");
   937 				__FLOG_STMT(_LIT8(logString1,"Script:\tRepeat Loop");)
   923 				OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CLOOPCOMMAND_CHECKLOOPL_2,"Script:\tLoop Counter %d",iLoopCounter);
   938 				__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString1());
       
   939 				__FLOG_STMT(_LIT8(logString2,"Script:\tLoop Counter %d");)
       
   940 				__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),logString2(),iLoopCounter);
   924 				}
   941 				}
   925 			return ETrue;				// Consumed Something
   942 			return ETrue;				// Consumed Something
   926 			}
   943 			}
   927 		}
   944 		}
   928 	return EFalse;						// Nothing doing...
   945 	return EFalse;						// Nothing doing...
   980 	TInt end=FindTokenEnd(iStatus.iOffset);
   997 	TInt end=FindTokenEnd(iStatus.iOffset);
   981 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KGotoCommand)==KErrNone)
   998 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KGotoCommand)==KErrNone)
   982 		{
   999 		{
   983 		if(!iStatus.iSkip)
  1000 		if(!iStatus.iSkip)
   984 			{
  1001 			{
   985 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CGOTOCOMMAND_PARSEL_1,"Script:\tExecuting Goto");
  1002 			__FLOG_STMT(_LIT8(logString,"Script:\tExecuting Goto");)
       
  1003 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString());
   986 			}
  1004 			}
   987 		iStatus.iOffset=end;
  1005 		iStatus.iOffset=end;
   988 		EatSpaces(iStatus.iOffset);
  1006 		EatSpaces(iStatus.iOffset);
   989 		end=FindTokenEnd(iStatus.iOffset);
  1007 		end=FindTokenEnd(iStatus.iOffset);
   990 		TPtrC var=iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset);
  1008 		TPtrC var=iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset);
  1009 		{
  1027 		{
  1010 		if (iLabelMan->FindLabel(aLabelName,pos)==KErrNotFound)
  1028 		if (iLabelMan->FindLabel(aLabelName,pos)==KErrNotFound)
  1011 			{
  1029 			{
  1012 			iSearchName.Copy(aLabelName);
  1030 			iSearchName.Copy(aLabelName);
  1013 			iStatus.iSkipModeToggleReq=ETrue;
  1031 			iStatus.iSkipModeToggleReq=ETrue;
  1014 			OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CGOTOCOMMAND_GOTO_1,"Script:\tSearching for Label %S",aLabelName);
  1032 			__FLOG_STMT(_LIT(logString1,"Script:\tSearching for Label %S");)
  1015 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CGOTOCOMMAND_GOTO_2, "Script:\tEntering Skip Mode");
  1033 			__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC>(logString1()),&aLabelName);
       
  1034 			__FLOG_STMT(_LIT8(logString2,"Script:\tEntering Skip Mode");)
       
  1035 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString2());
  1016 			}
  1036 			}
  1017 		else
  1037 		else
  1018 			iScriptReader->SetCurrentPos(pos);
  1038 			iScriptReader->SetCurrentPos(pos);
  1019 		}
  1039 		}
  1020 	}
  1040 	}
  1035 		iStatus.iOffset=++end;
  1055 		iStatus.iOffset=++end;
  1036 		TLinePosition dummyPos;
  1056 		TLinePosition dummyPos;
  1037 		if (iStatus.iSkip && (iLabelMan->FindLabel(iSearchName,dummyPos)==KErrNone))
  1057 		if (iStatus.iSkip && (iLabelMan->FindLabel(iSearchName,dummyPos)==KErrNone))
  1038 			{
  1058 			{
  1039 			iStatus.iSkipModeToggleReq=ETrue;
  1059 			iStatus.iSkipModeToggleReq=ETrue;
  1040 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CGOTOCOMMAND_PARSELABELL_1,"Script:\tExiting Skip Mode");
  1060 			__FLOG_STMT(_LIT8(logString,"Script:\tExiting Skip Mode");)
       
  1061 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString());
  1041 			}
  1062 			}
  1042 		return ETrue;
  1063 		return ETrue;
  1043 		}
  1064 		}
  1044 	return EFalse;
  1065 	return EFalse;
  1045 	}
  1066 	}
  1108 	TInt end=FindTokenEnd(iStatus.iOffset);
  1129 	TInt end=FindTokenEnd(iStatus.iOffset);
  1109 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KDTRCommand)==KErrNone)
  1130 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KDTRCommand)==KErrNone)
  1110 		{
  1131 		{
  1111 		if(!iStatus.iSkip)
  1132 		if(!iStatus.iSkip)
  1112 			{
  1133 			{
  1113 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CDTRCOMMAND_PARSEL_1,"Script:\tExecuting DTR");
  1134 			__FLOG_STMT(_LIT8(logString1,"Script:\tExecuting DTR");)
       
  1135 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString1());
  1114 			}
  1136 			}
  1115 		iStatus.iOffset=end;
  1137 		iStatus.iOffset=end;
  1116 		EatSpaces(iStatus.iOffset);
  1138 		EatSpaces(iStatus.iOffset);
  1117 		end=FindTokenEnd(iStatus.iOffset);
  1139 		end=FindTokenEnd(iStatus.iOffset);
  1118 		if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KRaiseDTRCommand)==KErrNone)
  1140 		if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KRaiseDTRCommand)==KErrNone)
  1119 			{
  1141 			{
  1120 			if(!iStatus.iSkip)
  1142 			if(!iStatus.iSkip)
  1121 				{
  1143 				{
  1122 				OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CDTRCOMMAND_PARSEL_2,"Script:\tRaising DTR");
  1144 				__FLOG_STMT(_LIT8(logString2,"Script:\tRaising DTR");)
       
  1145 				__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString2());
  1123 				iScriptIO->RaiseDTR(NULL);
  1146 				iScriptIO->RaiseDTR(NULL);
  1124 				}	
  1147 				}	
  1125 			}
  1148 			}
  1126 		else if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KDropDTRCommand)==KErrNone)
  1149 		else if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KDropDTRCommand)==KErrNone)
  1127 			{
  1150 			{
  1128 			if(!iStatus.iSkip)
  1151 			if(!iStatus.iSkip)
  1129 				{
  1152 				{
  1130 				OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CDTRCOMMAND_PARSEL_3,"Script:\tDropping DTR");
  1153 				__FLOG_STMT(_LIT8(logString3,"Script:\tDropping DTR");)
       
  1154 				__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString3());
  1131 				iScriptIO->DropDTR(NULL);
  1155 				iScriptIO->DropDTR(NULL);
  1132 				}	
  1156 				}	
  1133 			}
  1157 			}
  1134 		else
  1158 		else
  1135 			User::Leave(KErrNoDropOrRaise);
  1159 			User::Leave(KErrNoDropOrRaise);
  1191 	TInt end=FindTokenEnd(iStatus.iOffset);
  1215 	TInt end=FindTokenEnd(iStatus.iOffset);
  1192 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KReadCommand)==KErrNone)
  1216 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KReadCommand)==KErrNone)
  1193 		{
  1217 		{
  1194 		if (!iStatus.iSkip)
  1218 		if (!iStatus.iSkip)
  1195 			{
  1219 			{
  1196 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CREADPCTCOMMAND_PARSEL_1, "Script:\tExecuting Read");
  1220 			__FLOG_STMT(_LIT8(logString,"Script:\tExecuting Read");)
       
  1221 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString());
  1197 			iCharSet=ParseCharacterTypeL(iStatus.iOffset);
  1222 			iCharSet=ParseCharacterTypeL(iStatus.iOffset);
  1198 			iScriptExec->ReadPct();
  1223 			iScriptExec->ReadPct();
  1199 			}
  1224 			}
  1200 		iStatus.iOffset=end;
  1225 		iStatus.iOffset=end;
  1201 		return ETrue;		// Consumed
  1226 		return ETrue;		// Consumed
  1334 	TInt end=FindTokenEnd(iStatus.iOffset);
  1359 	TInt end=FindTokenEnd(iStatus.iOffset);
  1335 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KExitCommand)==KErrNone)
  1360 	if (iStatus.iLine.Mid(iStatus.iOffset,end-iStatus.iOffset).CompareF(KExitCommand)==KErrNone)
  1336 		{
  1361 		{
  1337 		if (!iStatus.iSkip)
  1362 		if (!iStatus.iSkip)
  1338 			{
  1363 			{
  1339 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CEXITCOMMAND_PARSEL_1,"Script:\tExecuting Exit");
  1364 			__FLOG_STMT(_LIT8(logString1,"Script:\tExecuting Exit");)
       
  1365 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString1());
  1340 			}
  1366 			}
  1341 		iStatus.iOffset=end;
  1367 		iStatus.iOffset=end;
  1342 		EatSpaces(iStatus.iOffset);
  1368 		EatSpaces(iStatus.iOffset);
  1343 		TPtrC exitStatus;
  1369 		TPtrC exitStatus;
  1344 		TRAPD(ret,(exitStatus.Set(ParseCompoundExpressionL(iStatus.iOffset))));
  1370 		TRAPD(ret,(exitStatus.Set(ParseCompoundExpressionL(iStatus.iOffset))));
  1358 				}
  1384 				}
  1359 			else if (ret==KErrNoExpression)
  1385 			else if (ret==KErrNoExpression)
  1360 				User::Leave(KErrScriptCompleted);
  1386 				User::Leave(KErrScriptCompleted);
  1361 			else
  1387 			else
  1362 				{
  1388 				{
  1363 				OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CEXITCOMMAND_PARSEL_2,"Script:\tExit With Error %d",ret);
  1389 				__FLOG_STMT(_LIT8(logString2,"Script:\tExit With Error %d");)
       
  1390 				__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC8>(logString2()),ret);
  1364 				User::Leave(ret);
  1391 				User::Leave(ret);
  1365 				}
  1392 				}
  1366 			}
  1393 			}
  1367 		return ETrue;		// Consumed
  1394 		return ETrue;		// Consumed
  1368 		}
  1395 		}