diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp --- a/localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -53,6 +53,11 @@ * Refer to test specification if planning to change the heuristic. * Note2: Input buffer management (ExtractLineFromInputBuffer()) can be tested * with non-line based terminals such as HyperTerminal or Realterm. + * Note3: If there is a need to handle commands with random data, the extended + * command checking can interfere with the character set of this random data. + * Best way to handle this random data is to create a handler for these commands + * which skips the valid "not to be parsed" data or use quotes. For these cases + * the CDunAtSpecialCmdHandler could be extended. */ #include "DunAtCmdHandler.h" @@ -978,7 +983,7 @@ for ( TInt i=aStartIndex; i| // border must be detected but only for a "basic" command, not for - // extended. + // extended. This type of case is in active use in initialization + // strings where "ATS7=60L1M1X3" is one example if ( iDecodeInfo.iExtendedIndex<0 && iDecodeInfo.iPrevExists && iDecodeInfo.iPrevChar.IsDigit() && aCharacter.IsAlpha() ) { @@ -1497,6 +1562,7 @@ TInt startIndex = iDecodeInfo.iDecodeIndex; aEndIndex = startIndex; TBool found = EFalse; + TBool skipZone = EFalse; TInt lineLength = iLineBuffer.Length(); iDecodeInfo.iAssignFound = EFalse; iDecodeInfo.iInQuotes = EFalse; @@ -1506,11 +1572,22 @@ for ( ; aEndIndex - if ( IsDelimiterCharacter(character) ) + if ( IsDelimiterCharacter(character,ETrue,ETrue) ) { aEndIndex--; FTRACE(FPrint( _L("CDunAtCmdHandler::FindSubCommand() (delimiter) complete") ));