--- a/bluetoothengine/btaudioman/inc/basrvacc.h Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btaudioman/inc/basrvacc.h Fri Aug 06 16:43:21 2010 +0300
@@ -67,6 +67,11 @@
void OpenAudioL(TAccAudioType aType);
/**
+ * Called when the audio open request is to be cancelled.
+ */
+ void CancelOpenAudio();
+
+ /**
* Called when an audio close request comes from Acc FW.
*/
void CloseAudioL(TAccAudioType aType);
--- a/bluetoothengine/btaudioman/inc/basrvaccstate.h Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btaudioman/inc/basrvaccstate.h Fri Aug 06 16:43:21 2010 +0300
@@ -102,7 +102,12 @@
* Called when an audio open request comes from Acc FW.
*/
virtual void OpenAudioL(TAccAudioType aType);
-
+
+ /**
+ * Called when the audio open request is to be cancelled.
+ */
+ virtual void CancelOpenAudio();
+
/**
* Called when an audio close request comes from Acc FW.
*/
--- a/bluetoothengine/btaudioman/inc/basrvaccstateattached.h Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btaudioman/inc/basrvaccstateattached.h Fri Aug 06 16:43:21 2010 +0300
@@ -84,6 +84,12 @@
void OpenAudioL(TAccAudioType aType);
/**
+ * Called when the audio open request is to be cancelled.
+ */
+ void CancelOpenAudio();
+
+
+ /**
* Called when an audio close request comes from Acc FW.
*/
void CloseAudioL(TAccAudioType aType);
--- a/bluetoothengine/btaudioman/src/basrvacc.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btaudioman/src/basrvacc.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -139,6 +139,12 @@
iState->CloseAudioL(aType);
}
+void CBasrvAcc::CancelOpenAudio()
+ {
+ TRACE_FUNC
+ iState->CancelOpenAudio();
+ }
+
const TAccInfo* CBasrvAcc::AccInfo(const TBTDevAddr& aAddr)
{
TRACE_FUNC
--- a/bluetoothengine/btaudioman/src/basrvaccman.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btaudioman/src/basrvaccman.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Implementation of an accessory management.
-* Version : %version: 14.1.11 %
+* Version : %version: 14.1.12 %
*
*/
@@ -619,27 +619,23 @@
TInt idx = FindAcc(aAddr);
if (idx >= 0)
{
- // Check if another audio link opened already
- TInt audiolinks = AudioLinkStatus();
-
- if ( ( audiolinks && audiolinks != aProfile) ||
- ( iAudioRequests.Count() &&
- iAudioRequests[0].iOngoing &&
- iAudioRequests[0].iAddr == aAddr) )
+ TInt audiolinks = AudioLinkStatus();
+ if ( audiolinks && audiolinks != aProfile)
{
- // another audio type is opened while we have an audio link or pending audio request.
- if (iAudioRequests.Count())
- {
- TRACE_INFO((_L(" [audio link check] existing audio link %x, audio request pending ? %d. Audio should be rejected!"),
- audiolinks, iAudioRequests[0].iOngoing))
- }
- else
- {
- TRACE_INFO((_L(" [audio link check] existing audio link %x. Audio should be rejected!"),
+ TRACE_INFO((_L(" [global audio link check] existing audio link %x. Audio should be rejected!"),
audiolinks))
- }
RejectAudioLink(aAddr, (aProfile == EStereo) ? EAccStereoAudio : EAccMonoAudio);
}
+ else if ( iAudioRequests.Count() &&
+ iAudioRequests[0].iReqType == EOpenReqFromAudioPolicy &&
+ iAudioRequests[0].iAudioType == ((aProfile == EStereo) ? EAccStereoAudio : EAccMonoAudio) &&
+ iAudioRequests[0].iOngoing &&
+ iAudioRequests[0].iAddr == aAddr)
+ {
+ TRACE_INFO((_L(" [device-specific audio request check] audio request pending ? %d. Audio request should be cancelled!"),
+ iAudioRequests[0].iOngoing))
+ iAccs[idx]->CancelOpenAudio();
+ }
else
{
iAccs[idx]->AccOpenedAudio(aProfile);
--- a/bluetoothengine/btaudioman/src/basrvaccstate.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btaudioman/src/basrvaccstate.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -86,6 +86,11 @@
TRACE_FUNC
}
+void CBasrvAccState::CancelOpenAudio()
+ {
+ TRACE_FUNC
+ }
+
void CBasrvAccState::CloseAudioL(TAccAudioType /*aType*/)
{
TRACE_FUNC
@@ -128,7 +133,7 @@
}
void CBasrvAccState::NewProfileConnection(TProfiles aProfile)
- {
+ {
AccInfo().iConnProfiles |= aProfile;
AccInfo().iSuppProfiles |= aProfile;
if (aProfile == ERemConCT &&
--- a/bluetoothengine/btaudioman/src/basrvaccstateattached.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btaudioman/src/basrvaccstateattached.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Implementation of Connected state.
-* Version : %version: 21 %
+* Version : %version: 22 %
*
*/
@@ -228,6 +228,16 @@
User::RequestComplete( myStatus, KErrNone );
}
+void CBasrvAccStateAttached::CancelOpenAudio()
+ {
+ TRACE_FUNC
+
+ if (iAudioOpener)
+ {
+ iAudioOpener->Cancel();
+ }
+ }
+
void CBasrvAccStateAttached::CloseAudioL(TAccAudioType aType)
{
TRACE_FUNC
--- a/bluetoothengine/btmac/inc/btmonobearer/bmbcmdlistener.h Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btmac/inc/btmonobearer/bmbcmdlistener.h Fri Aug 06 16:43:21 2010 +0300
@@ -90,7 +90,7 @@
RProperty iATRespProperty;
// At command buffer
- TBuf8<KDefaultCmdBufLength> iAtCmdBuf;
+ RBuf8 iAtCmdBuf;
};
#endif
--- a/bluetoothengine/btmac/inc/btmonocmdhandler/HfpAtCmdHandler.h Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btmac/inc/btmonocmdhandler/HfpAtCmdHandler.h Fri Aug 06 16:43:21 2010 +0300
@@ -133,10 +133,11 @@
MATExtObserver& iObserver;
RATExt iATExtClient;
- TBuf8<KDefaultCmdBufLength> iCmdBuffer;
- TBuf8<KDefaultCmdBufLength> iRecvBuffer;
- TBuf8<KDefaultCmdBufLength> iReplyBuffer;
- TBuf8<512> iSystemReply;
+ // reserve buffers from the heap
+ RBuf8 iCmdBuffer;
+ RBuf8 iSystemReply;
+ TBuf8<KDefaultCmdBufLength> *iRecvBuffer;
+ TBuf8<KDefaultCmdBufLength> *iReplyBuffer;
TInt iRemainingReplyLength;
TPckg<TInt> iRemainingReplyLengthPckg;
--- a/bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -49,20 +49,24 @@
{
iATExtClient.Close();
}
+ iCmdBuffer.Close();
+ iSystemReply.Close();
+ delete iRecvBuffer;
+ delete iReplyBuffer;
}
void CHFPAtCmdHandler::HandleCommand(const TDesC8& aAT, const TDesC8& aReply)
{
TRACE_INFO((_L8("default reply '%S'"), &aReply))
iCmdBuffer.Copy(aAT);
- iReplyBuffer.Zero();
+ iReplyBuffer->Zero();
if (aReply.Length())
{
- iReplyBuffer.Copy(aReply);
+ iReplyBuffer->Copy(aReply);
iSystemReply.Copy(aReply);
- }
+ }
iATExtClient.HandleCommand(iCommander->iStatus,
- iCmdBuffer, iReplyBuffer, iRemainingReplyLengthPckg, iReplyTypePckg);
+ iCmdBuffer, *iReplyBuffer, iRemainingReplyLengthPckg, iReplyTypePckg);
iCommander->GoActive();
}
@@ -79,16 +83,16 @@
if (iRemainingReplyLengthPckg())
{
TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer))
- iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer);
+ iObserver.ATExtHandleReplyReceivedL(err, *iReplyBuffer);
do
{
TRACE_INFO((_L8("iRemainingReplyLength '%d'"), iRemainingReplyLengthPckg()))
RBuf8 reply;
reply.CreateL(iRemainingReplyLengthPckg());
- err = iATExtClient.GetNextPartOfReply(iRecvBuffer, iRemainingReplyLengthPckg());
+ err = iATExtClient.GetNextPartOfReply(*iRecvBuffer, iRemainingReplyLengthPckg());
if (!err)
{
- reply.Insert(0, iRecvBuffer);
+ reply.Insert(0, *iRecvBuffer);
}
TRACE_INFO((_L8("reply '%S'"), &reply))
iObserver.ATExtHandleReplyReceivedL(err, reply);
@@ -98,8 +102,8 @@
}
else
{
- TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer))
- iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer);
+ TRACE_INFO((_L8("reply '%S'"), iReplyBuffer))
+ iObserver.ATExtHandleReplyReceivedL(err, *iReplyBuffer);
}
}
else
@@ -159,6 +163,10 @@
StartUrc();
iCommander = CBtmcActive::NewL(*this, CActive::EPriorityStandard, EHandleCommandRequest);
+ iCmdBuffer.CreateL(KDefaultCmdBufLength);
+ iRecvBuffer = new (ELeave) TBuf8<KDefaultCmdBufLength>();
+ iReplyBuffer = new (ELeave) TBuf8<KDefaultCmdBufLength>();
+ iSystemReply.CreateL(KDefaultUrcBufLength);
TRACE_FUNC_EXIT
}
--- a/bluetoothengine/btmac/src/BTMonoCmdHandler/btmccallinghandler.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btmac/src/BTMonoCmdHandler/btmccallinghandler.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -94,13 +94,15 @@
TInt result = KErrNone;
if (!aErr)
{
- TBuf8<KDefaultCmdBufLength> buf;
+ RBuf8 buf;
+ buf.CreateL(KDefaultCmdBufLength);
aErr = iRespProperty.Get(buf);
if (!aErr && buf.Length() >= sizeof(TInt))
{
const TUint8* ptr = buf.Ptr();
result = *((const TInt*)ptr);
}
+ buf.Close();
}
TRACE_INFO((_L("resp %d"), result))
TATId atid = EATOK;
--- a/bluetoothengine/btmac/src/BTMonoCmdHandler/btmcprotocol.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btmac/src/BTMonoCmdHandler/btmcprotocol.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -399,21 +399,23 @@
{
return;
}
- TBuf8<KDefaultCmdBufLength> cmddes;
- if (iInDataBuf.NextCommand(cmddes))
+ RBuf8 cmddes;
+ cmddes.CreateL(KDefaultCmdBufLength);
+ CleanupClosePushL(cmddes);
+ if (iInDataBuf.NextCommand(cmddes) || cmddes.Length() == 0)
{
+ CleanupStack::PopAndDestroy(&cmddes);
return;
}
- if (cmddes.Length() == 0)
- {
- return;
- }
+
TRACE_INFO_SEG(
{
- TBuf8<KDefaultCmdBufLength> buf;
+ RBuf8 buf;
+ buf.CreateL(KDefaultCmdBufLength);
buf = cmddes;
buf.Trim();
Trace(_L8("[HFP] [I] %S"), &buf);
+ buf.Close();
})
CATCommand* cmd = NULL;
@@ -423,13 +425,16 @@
if(iAtExt)
{
iAtExt->HandleCommand(cmddes, _L8("\n\rERROR\n\r"));
+ CleanupStack::PopAndDestroy(&cmddes);
return;
}
CATResult* nok = CATResult::NewLC(EATERROR);
SendResponseL(*nok);
CleanupStack::PopAndDestroy(nok);
+ CleanupStack::PopAndDestroy(&cmddes);
return;
}
+ CleanupStack::PopAndDestroy(&cmddes);
CleanupStack::PushL(cmd);
iHandleCmdPending = ETrue;
TATId id = cmd->Id();
@@ -1080,14 +1085,17 @@
{
TRACE_INFO((_L("credit %d"), iCredit))
TInt count = iOutgoPacketQueue->MdcaCount();
+ RBuf8 buf;
+ buf.CreateL(KDefaultCmdBufLength);
+ CleanupClosePushL(buf);
for (TInt i = 0; iCredit >0 && i < count; i++)
{
iCredit--;
- TBuf8<KDefaultCmdBufLength> buf;
buf.Copy(iOutgoPacketQueue->MdcaPoint(0));
iObserver.SendProtocolDataL(buf);
iOutgoPacketQueue->Delete(0);
}
+ CleanupStack::PopAndDestroy(&buf);
}
void CBtmcProtocol::StartTimerL(TInt aService, TInt aTimeout)
--- a/bluetoothengine/btmac/src/btmonobearer/bmbcmdlistener.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btmac/src/btmonobearer/bmbcmdlistener.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -35,6 +35,7 @@
Cancel();
iATCmdProperty.Close();
iATRespProperty.Close();
+ iAtCmdBuf.Close();
}
// ---------------------------------------------------------------------------
@@ -60,6 +61,7 @@
TRACE_FUNC
LEAVE_IF_ERROR(iATCmdProperty.Attach(KPSUidBluetoothEnginePrivateCategory, KBTHfpATCommand));
LEAVE_IF_ERROR(iATRespProperty.Attach(KPSUidBluetoothEnginePrivateCategory, KBTHfpATResponse));
+ iAtCmdBuf.CreateL(KDefaultCmdBufLength);
Subscribe();
}
--- a/bluetoothengine/btui/btcpplugin/btcpuisearchview.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuisearchview.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -146,14 +146,6 @@
BTUI_ASSERT_X( optionsMenu != 0, "BtCpUiSearchView::BtCpUiSearchView", "Options menu not found" );
this->setMenu(optionsMenu);
- mExit = static_cast<HbAction*>( mLoader->findObject( "exitAction" ) );
- BTUI_ASSERT_X( mExit, "BtCpUiSearchView::BtCpUiSearchView", "exitAction missing" );
- mExit->setText(hbTrId("txt_common_opt_exit"));
-
- mConnect = static_cast<HbAction*>( mLoader->findObject( "connectAction" ) );
- BTUI_ASSERT_X( mConnect, "BtCpUiSearchView::BtCpUiSearchView", "connectAction missing" );
- mConnect->setText(hbTrId("txt_bt_menu_connect"));
-
ret = connect(mDeviceList, SIGNAL(activated(QModelIndex)), this, SLOT(deviceSelected(QModelIndex)));
BTUI_ASSERT_X( ret, "BtCpUiSearchView::BtCpUiSearchView", "deviceSelected can't connect" );
--- a/bluetoothengine/btui/btcpplugin/btcpuisearchview.h Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuisearchview.h Fri Aug 06 16:43:21 2010 +0300
@@ -88,8 +88,6 @@
HbAction* mViewBy;
HbAction* mStop;
HbAction* mRetry;
- HbAction* mExit;
- HbAction* mConnect;
//pointer to abstract delegate, and it is instantiated at runtime
BtAbstractDelegate* mAbstractDelegate;
--- a/bluetoothengine/btui/btcpplugin/docml/bt-search-view.docml Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/docml/bt-search-view.docml Fri Aug 06 16:43:21 2010 +0300
@@ -13,12 +13,6 @@
<icon iconName="qtg_mono_search" name="icon"/>
<string name="text"/>
</object>
- <object name="exitAction" type="HbAction">
- <string locid="txt_common_opt_exit" name="text" value="Exit"/>
- </object>
- <object name="connectAction" type="HbAction">
- <string locid="txt_bt_menu_connect" name="text" value="Connect"/>
- </object>
<object name="disconnectAction" type="HbAction">
<string name="text" value="Disconnect"/>
</object>
@@ -82,17 +76,11 @@
<linearitem itemname="toolBar"/>
</layout>
</widget>
- <widget name="viewMenu" role="HbView:menu" type="HbMenu">
- <ref object="exitAction" role="HbWidget:addAction"/>
- <ref object="connectAction" role="HbWidget:addAction"/>
- </widget>
+ <widget name="viewMenu" role="HbView:menu" type="HbMenu"/>
<string locid="txt_cp_title_control_panel" name="title" value="Control Panel"/>
<real name="z" value="1"/>
</widget>
<section name="landscape">
- <widget name="label_searching" type="HbLabel">
- <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
- </widget>
<widget name="icon" type="HbLabel">
<sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
</widget>
@@ -100,6 +88,9 @@
<sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Expanding" verticalStretch="0"/>
<sizehint type="PREFERRED" width="51.19403un"/>
</widget>
+ <widget name="label_searching" type="HbLabel">
+ <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+ </widget>
<widget name="search_container" type="HbWidget">
<sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Ignored" verticalStretch="0"/>
<sizehint height="12un" type="PREFERRED" width="51.19403un"/>
--- a/bluetoothengine/btui/btuidelegate/btdelegateconnect.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegateconnect.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -162,8 +162,8 @@
QString questionText(hbTrId("txt_bt_info_to_connect_1_2_needs_to_be_disconnec")
.arg(mDeviceName).arg(conflictDevName));
- HbMessageBox::question( questionText, this, SLOT(handleUserAnswer(HbAction*)),
- hbTrId("txt_common_button_continue"), hbTrId("txt_common_button_cancel") );
+ HbMessageBox::question( questionText, this, SLOT(handleUserAnswer(int)),
+ HbMessageBox::Continue | HbMessageBox::Cancel );
}
}
else {
@@ -175,10 +175,9 @@
/*!
* handle user response to query about disconnecting conflict device
*/
-void BtDelegateConnect::handleUserAnswer( HbAction* answer )
+void BtDelegateConnect::handleUserAnswer( int answer )
{
- HbMessageBox* dlg = static_cast<HbMessageBox*>( sender() );
- if( dlg->actions().first() == answer ) {
+ if( answer == HbMessageBox::Continue ) {
// Continue, ie. disconnect conflict device and then try reconnecting again
if (!mAbstractDelegate) //if there is no other delegate running
{
--- a/bluetoothengine/btui/btuidelegate/btdelegateconnect.h Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegateconnect.h Fri Aug 06 16:43:21 2010 +0300
@@ -54,7 +54,7 @@
virtual void DisconnectComplete( TBTDevAddr& aAddr, TInt aErr );
private slots:
- void handleUserAnswer( HbAction* answer );
+ void handleUserAnswer( int answer );
void powerDelegateCompleted(int status);
void disconnectDelegateCompleted(int status);
--- a/bluetoothengine/btui/btuidelegate/btdelegatepower.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegatepower.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -91,7 +91,7 @@
if (btEnabledInOffline){
// BT is allowed to be enabled in offline mode, show query.
HbMessageBox::question( hbTrId("txt_bt_info_trun_bluetooth_on_ini_offline_mode" ),this,
- SLOT(btOnQuestionClose(HbAction*)));
+ SLOT(btOnQuestionClose(int)), HbMessageBox::Yes | HbMessageBox::No );
}
else{
@@ -113,11 +113,10 @@
}
-void BtDelegatePower::btOnQuestionClose(HbAction *action)
+void BtDelegatePower::btOnQuestionClose(int action)
{
- HbMessageBox *dlg = static_cast<HbMessageBox*>(sender());
int err = 0;
- if(action == dlg->actions().at(0))
+ if(action == HbMessageBox::Yes)
{
//user chooses "yes" for using BT in offline
mActiveHandling = true;
--- a/bluetoothengine/btui/btuidelegate/btdelegatepower.h Tue Jul 27 13:42:03 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegatepower.h Fri Aug 06 16:43:21 2010 +0300
@@ -53,7 +53,7 @@
virtual void VisibilityModeChanged( TBTVisibilityMode aState );
public slots:
- void btOnQuestionClose(HbAction *action);
+ void btOnQuestionClose(int action);
void btOnWarningClose();
--- a/btobexprofiles/obexserviceman/utils/src/obexutilsmessagehandler.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/btobexprofiles/obexserviceman/utils/src/obexutilsmessagehandler.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -54,6 +54,8 @@
const TInt KObexUtilsMaxCharToFromField = 256;
+const TInt32 KUidMsgTypeBtTInt32 = 0x10009ED5;
+
// ============================= LOCAL FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -303,6 +305,7 @@
parentTEntry.iMtm = KUidBIOMessageTypeMtm;
parentTEntry.iServiceId = KMsvLocalServiceIndexEntryId;
parentTEntry.iBioType = aBioMsgId.iUid;
+ parentTEntry.iMtmData1 = KUidMsgTypeBtTInt32;
parentTEntry.iDescription.Set(aBioDB->BifReader(index).Description());
parentEntry->ChangeL(parentTEntry);
--- a/cbsatplugin/atmisccmdplugin/src/atcommandparser.cpp Tue Jul 27 13:42:03 2010 +0300
+++ b/cbsatplugin/atmisccmdplugin/src/atcommandparser.cpp Fri Aug 06 16:43:21 2010 +0300
@@ -268,12 +268,14 @@
// Extract the token at this point
TPtrC8 retVal = iCmd.MarkedToken();
- // Skip comma, space and control chars
- while(!iCmd.Eos() && (chr == ',' || chr.IsSpace() || chr.IsControl()))
- {
- iCmd.Inc();
- chr = iCmd.Peek();
- }
+ // Skip the first delimiter and any further space and control chars
+ do
+ {
+ iCmd.Inc();
+ chr = iCmd.Peek();
+ }
+ while(!iCmd.Eos() && (chr.IsSpace() || chr.IsControl()));
+
TRACE_FUNC_EXIT
return retVal;
}