/***************************************************************************** * FUNCTION * mmi_vt_make_video_call * DESCRIPTION * Make video call * This function is exported to UCM * PARAMETERS * strNumber [IN] * RETURNS * void *****************************************************************************/ void mmi_vt_make_video_call(S8 *strNumber) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if ((GetExitScrnID() == SCR_ID_VT_INCALL) || (IsScreenPresent(SCR_ID_VT_INCALL))) { /* camera status should be set before entering vt incall screen */ } else { if (g_vt_p->setting.dial_mode == MMI_VT_DIAL_MODE_STOP_CAMERA) { mmi_vt_set_camera_status(MMI_FALSE); } else { mmi_vt_set_camera_status(MMI_TRUE); } } mmi_ucs2ncpy((S8*)g_vt_p->mo_info.dial_pad_buffer, (S8*)strNumber, MMI_UCM_MAX_NUM_URI_LEN); MakeCallEx(strNumber, FALSE, CSMCC_VIDEO_CALL); }
/***************************************************************************** * FUNCTION * srv_ctm_med_send_text_req * DESCRIPTION * * PARAMETERS * text [IN] * RETURNS * void *****************************************************************************/ void srv_ctm_med_send_text_req(CHAR* text) { #ifndef __CTM_DEBUG /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ media_ctm_send_text_req_struct *param; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ MMI_TRACE(MMI_COMMON_TRC_G5_CALL, FUNC_SRV_CTM_MED_SEND_TEXT_REQ); ClearInputEventHandler(MMI_DEVICE_ALL); param = OslAllocDataPtr(media_ctm_send_text_req_struct); param->num_of_char = mmi_ucs2strlen(text); mmi_ucs2ncpy((CHAR*)param->text, text, CTM_SEND_TEXT_CHAR_MAX_NUM); SetProtocolEventHandler(srv_ctm_phdlr_send_text_rsp, MSG_ID_MEDIA_CTM_SEND_TEXT_CNF); mmi_frm_send_ilm(MOD_MED, MSG_ID_MEDIA_CTM_SEND_TEXT_REQ, (oslParaType*)param, NULL); #else /* __CTM_DEBUG */ StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) srv_ctm_phdlr_send_text_rsp); #endif /* __CTM_DEBUG */ }
/***************************************************************************** * FUNCTION * CBackCallDeflectNumberFromPB * DESCRIPTION * Call deflect function specific for phonebook * PARAMETERS * number [IN] * RETURNS * void *****************************************************************************/ void CBackCallDeflectNumberFromPB(PS8 number) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ memset(g_ucm_p->mo_info.dial_pad_buffer, 0x00, sizeof(g_ucm_p->mo_info.dial_pad_buffer)); mmi_ucs2ncpy((S8*)g_ucm_p->mo_info.dial_pad_buffer, (S8*)number, MMI_UCM_MAX_NUM_URI_LEN); mmi_ucm_deflect(); }
S32 mmi_rmgr_get_alias_item(S32 start_index, gui_iconlist_menu_item *menu_data, S32 data_size) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_wchar *ptr; kal_int32 result; S32 index =0; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ for (index = 0; index < data_size; index++) { result = DRM_get_ro_list((start_index+index), (char *)&ro_alias[0], SRV_FMGR_PATH_MAX_FILE_NAME_LEN * ENCODING_LENGTH,DRM_DB_GET_VALID); if (result < 0) { return index; } menu_data[index].image_list[0] = get_image(IMG_ID_RMGR_UNLOCK); mmi_ucs2ncpy((S8 *)menu_data[index].item_list[0], (const S8 *)&ro_alias[0], MAX_SUBMENU_CHARACTERS); ptr = app_ucs2_strstr(menu_data[index].item_list[0] + (app_ucs2_strlen((kal_int8 *)menu_data[index].item_list[0]) - 4), (kal_wchar *)L".mp3"); if (ptr) { *ptr = 0; } ptr = app_ucs2_strstr(menu_data[index].item_list[0] + (app_ucs2_strlen((kal_int8 *)menu_data[index].item_list[0]) - 4), (kal_wchar *)L".mp2"); if (ptr) { *ptr = 0; } } return data_size; }
/***************************************************************************** * FUNCTION * jma_audio_recorder_set_record_location * DESCRIPTION * The function sets record location * PARAMETERS * mma_type [IN] * java_recorder [IN] * path [?] * RETURNS * int - 0 *****************************************************************************/ kal_bool jma_mvm_audio_recorder_set_record_location(kal_int32 vm_id, kal_int32 java_recorder, kal_char *path) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_int32 file_handle; kal_int32 result, length; kal_wchar *ext_name; kal_char *file_name; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MVM_AUDIO_RECORDER_SET_RECORD_LOCATION, vm_id, java_recorder, audio_recorder[vm_id].state); JMA_CS_ENTER(vm_id, KAL_FALSE); if (audio_recorder[vm_id].id != java_recorder) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_RESOURCE_ERROR, audio_recorder[vm_id].id); JMA_CS_LEAVE(KAL_FALSE); } mmi_ucs2ncpy((PS8) audio_recorder[vm_id].filename, (PS8) path, J2ME_PATH_BUFFER_SIZE); length = mmi_ucs2strlen((S8*) audio_recorder[vm_id].filename); if (length < 4) { JMA_CS_LEAVE(KAL_FALSE); } /* Drive name can not equal to SYSTEM DRIVE */ if ((int)audio_recorder[vm_id].filename[0] == SRV_FMGR_SYSTEM_DRV) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } /* assign format */ ext_name = &audio_recorder[vm_id].filename[length - 4]; if (kal_wstrcmp(ext_name, L".amr") == 0 || kal_wstrcmp(ext_name, L".AMR") == 0) { audio_recorder[vm_id].format = MED_TYPE_AMR; } else if (kal_wstrcmp(ext_name, L".wav") == 0 || kal_wstrcmp(ext_name, L".WAV") == 0) { audio_recorder[vm_id].format = MED_TYPE_WAV; } #if defined (AMRWB_ENCODE) else if (kal_wstrcmp(ext_name, L".awb") == 0 || kal_wstrcmp(ext_name, L".AWB") == 0) { audio_recorder[vm_id].format = MED_TYPE_AMR_WB; } #endif #if defined (__VORBIS_ENCODE__) else if (kal_wstrcmp(ext_name, L".ogg") == 0 || kal_wstrcmp(ext_name, L".OGG") == 0) { audio_recorder[vm_id].format = MED_TYPE_VORBIS; } #endif else { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, audio_recorder[vm_id].format); /* Check if valid file path and delete the file */ result = FS_GetDevStatus(audio_recorder[vm_id].filename[0], FS_MOUNT_STATE_ENUM); if (result == FS_NO_ERROR) { /* Check if valid file name */ file_name = kal_dchar_strrchr((S8*) audio_recorder[vm_id].filename, '\\'); if (file_name) { file_name += 2; if (!srv_fmgr_path_is_filename_valid((const WCHAR*)file_name)) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } /* File name can not start with space: FS API restriction */ if (*file_name == ' ' && *(file_name + 1) == 0) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } } else /* Do not contain '\\' */ { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } /* Check if dir exist or if valid dir */ *((kal_int16*)file_name) = 0; file_handle = FS_Open(audio_recorder[vm_id].filename, FS_OPEN_DIR | FS_READ_ONLY); if (file_handle > 0) { FS_Close(file_handle); } else { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } /* Copy again to repair audio_recorder.filename */ mmi_ucs2ncpy((PS8) audio_recorder[vm_id].filename, (PS8) path, J2ME_PATH_BUFFER_SIZE); /* Check if file exist */ file_handle = FS_Open(audio_recorder[vm_id].filename, FS_READ_ONLY); if (file_handle > 0) { result = FS_Close(file_handle); /* need to close file before delete */ result = FS_Delete(audio_recorder[vm_id].filename); if (result != FS_NO_ERROR) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, result); JMA_CS_LEAVE(KAL_FALSE); } } JMA_CS_LEAVE(KAL_TRUE); } else { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, result); JMA_CS_LEAVE(KAL_FALSE); } }
/***************************************************************************** * FUNCTION * mmi_brw_service_inbox_list_get_item * DESCRIPTION * Item call back function for dynamic list of push messages * PARAMETERS * item_index [IN] * str_buff [IN] * img_buff_p [IN] * str_img_mask [IN] * RETURNS * void *****************************************************************************/ pBOOL mmi_brw_service_inbox_list_get_item(S32 item_index, UI_string_type str_buff, PU8 *img_buff_p, U8 str_img_mask) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ struct tm expiry_timestamp = {0}; U64 expiry_secs_since_1970 = {0}; U64 current_secs_since_1970 = {0}; U32 rcvd_message_href_len = 0; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if ((item_index < 0) || (item_index > g_mmi_brw_push_cntx.max_push_messages)) { return FALSE; } /* Edited by Vivek - 5th july 2006 */ if (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->service_flag == SERVICE_INDICATION) { if ((NULL == g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmMessage) || !mmi_ucs2strlen((S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmMessage)) { rcvd_message_href_len = mmi_ucs2strlen((S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmHref); if (rcvd_message_href_len > MAX_SUBMENU_CHARACTERS - 1) { mmi_ucs2ncpy( (S8*) str_buff, (S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmHref, MAX_SUBMENU_CHARACTERS - 3); mmi_ucs2cat((S8*) str_buff, ".\0.\0.\0"); } else { mmi_ucs2cpy((S8*) str_buff, (S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmHref); } } else { rcvd_message_href_len = mmi_ucs2strlen((S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmMessage); if (rcvd_message_href_len > MAX_SUBMENU_CHARACTERS - 1) { mmi_ucs2ncpy( (S8*) str_buff, (S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmMessage, MAX_SUBMENU_CHARACTERS - 3); mmi_ucs2cat((S8*) str_buff, ".\0.\0.\0"); } else { mmi_ucs2cpy((S8*) str_buff, (S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmMessage); } } } else if (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->service_flag == SERVICE_LOADING) { rcvd_message_href_len = mmi_ucs2strlen((S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmHref); if (rcvd_message_href_len > MAX_SUBMENU_CHARACTERS - 1) { mmi_ucs2ncpy( (S8*) str_buff, (S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmHref, MAX_SUBMENU_CHARACTERS - 3); mmi_ucs2cat((S8*) str_buff, ".\0.\0.\0"); } else { mmi_ucs2cpy((S8*) str_buff, (S8*) g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pmHref); } } else { /* ERROR */ } /* Expiry time is to be calculated in case of SI to display expired message in case of expired message */ if (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->service_flag == SERVICE_INDICATION) { if (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires != NULL) { expiry_timestamp.tm_mon = g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires->month - 1; /* month scale to 0 to 11 */ expiry_timestamp.tm_year = g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires->year - 1900; /* offset since 1900 */ expiry_timestamp.tm_mday = g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires->day; expiry_timestamp.tm_hour = g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires->hour; expiry_timestamp.tm_min = g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires->minute; expiry_timestamp.tm_sec = g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires->seconds; /* Get difference of seconds of expiry time from 1970 (as per UTC standard) */ expiry_secs_since_1970 = (time_t) mktime(&expiry_timestamp); /* Get difference of seconds of current time from 1970 (as per UTC standard) */ current_secs_since_1970 = get_current_utc_time(); } /* Show icon depending on whether it is read,unread,read but expired and unread but expired */ if (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->bIsRead == 0) { if ((expiry_secs_since_1970 > current_secs_since_1970) || (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires == NULL)) { *img_buff_p = get_image(IMG_ID_BRW_PUSH_UNREAD); } else { *img_buff_p = get_image(IMG_ID_BRW_PUSH_EXPIRED_UNREAD); } } else { if ((expiry_secs_since_1970 > current_secs_since_1970) || (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->pSIExpires == NULL)) { *img_buff_p = get_image(IMG_ID_BRW_PUSH_READ); } else { *img_buff_p = get_image(IMG_ID_BRW_PUSH_EXPIRED_READ); } } } else if (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->service_flag == SERVICE_LOADING) { if (g_mmi_brw_push_cntx.service_msg_list_p[item_index]->bIsRead == 0) { *img_buff_p = get_image(IMG_ID_BRW_PUSH_UNREAD); } else { *img_buff_p = get_image(IMG_ID_BRW_PUSH_READ); } } else { /* error */ } return TRUE; }
/***************************************************************************** * FUNCTION * bidi_main * DESCRIPTION * fill the string buffer to bidirectional algorithm * PARAMETERS * logicalStr [IN] Input string for bidi * logicalStrLen [IN] String length of input string * logicalCurPos [IN] Current cursor position of input string * visualStr [OUT] Final output string from bidi algorithm * visualStrLen [OUT] String length of final output string * visualCurPos [OUT] Cursor position of final output string * fSwap [IN] If true, then reserse the string after apply bidi algorithm * inputMode [IN] * logicalHilightStart [IN] Word hilight start position of input string * logicalHilightEnd [IN] Word hilight end position of input string * visualHilightStart [OUT] Word hilight start position of output string * visualHilightEnd [OUT] Word hilight end position of output string * RETURNS * void *****************************************************************************/ void bidi_main( U8 *logicalStr, U16 logicalStrLen, U16 logicalCurPos, U8 *visualStr, U16 *visualStrLen, U16 *visualCurPos, pBOOL fSwap, U8 inputMode, U16 logicalHilightStart, U16 logicalHilightEnd, U16 *visualHilightStart, U16 *visualHilightEnd) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 paragraphEmbeddingLevel = 0; #if BIDI_CONSIDER_DIFF_INPUT_METHOD_BEHAVIOR U8 lastType; pBOOL flag = FALSE; #endif /* BIDI_CONSIDER_DIFF_INPUT_METHOD_BEHAVIOR */ pBOOL bCheckFlag; S16 iCount, nParaCount = 0; U8 *pInputType = input_types; U8 *pInputLevels = input_levels; U8 *pDestLevels = dest_levels; U8 *pDestTypes = dest_types; U8 *pLogicalBuffer = localLogicalBuffer; U8 *pVisualBuffer = visualStr; U16 mark; /* START TARUN PMT 20050202 */ U8 newLineflag = 0; /* END TARUN PMT 20050202 */ U8 testHilighOneCharFlag = 0; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ memset(input_types, 0,sizeof(input_types)); memset(input_levels, 0,sizeof(input_levels)); memset(dest_levels, 0,sizeof(dest_levels)); memset(dest_types, 0,sizeof(dest_types)); memset(localLogicalBuffer, 0,sizeof(localLogicalBuffer)); if (logicalStrLen == 0) { /* *visualCurPos = 0; */ *visualCurPos = 0xFFFF; *visualStr = 0; *(visualStr + 1) = 0; *visualStrLen = 0; *visualHilightStart = 0; *visualHilightEnd = 0; return; } if (logicalCurPos != 0xFFFF) { if (logicalCurPos < logicalHilightEnd) { logicalCurPos = logicalHilightEnd; } if (logicalHilightStart > logicalHilightEnd) { logicalHilightStart = logicalHilightEnd; } } /*PMT IRE START*/ /*removed unwanted code*/ /*PMT IRE END*/ mmi_ucs2ncpy((S8*) localLogicalBuffer, (const S8*)logicalStr, (U32) logicalStrLen); #if BIDI_CONSIDER_DIFF_INPUT_METHOD_BEHAVIOR if (inputMode == BIDI_R) { bidi_get_char_type((U8*) & localLogicalBuffer[(logicalStrLen - 1) * BIDI_ENCODING_LENGTH], (U8*) & lastType); if (lastType == WS) { localLogicalBuffer[(logicalStrLen - 1) * BIDI_ENCODING_LENGTH] = 0; localLogicalBuffer[(logicalStrLen - 1) * BIDI_ENCODING_LENGTH + 1] = 0; if (logicalCurPos == logicalStrLen) { flag = TRUE; logicalCurPos--; } logicalStrLen--; } set_bidi_cursor_pos((U8*) localLogicalBuffer, logicalCurPos, (U16) CURSOR_MARK); logicalStrLen = (U16) mmi_ucs2strlen((const S8*)localLogicalBuffer); set_bidi_cursor_pos((U8*) localLogicalBuffer, logicalStrLen, (U16) LAST_MARK); } else #endif /* BIDI_CONSIDER_DIFF_INPUT_METHOD_BEHAVIOR */ { if (logicalCurPos != 0xFFFF) { set_bidi_cursor_pos((U8*) localLogicalBuffer, logicalCurPos, (U16) CURSOR_MARK); } } set_bidi_cursor_pos((U8*) localLogicalBuffer, logicalHilightEnd, (U16) SECOND_HIGHLT); set_bidi_cursor_pos((U8*) localLogicalBuffer, (U16) (logicalHilightStart), (U16) FIRST_HIGHLT); mmi_ucs2cpy((S8*) visualStr, (const S8*)localLogicalBuffer); logicalStrLen = get_direction_codes((U8*) input_types, (U8*) localLogicalBuffer, 0); iCount = 0; while (iCount < logicalStrLen) { bCheckFlag = FALSE; nParaCount = identify_paragraphs(pInputType, (U16) (logicalStrLen - iCount), &bCheckFlag); if (logicalCurPos < nParaCount) { newLineflag = 1; } copy_direction_codes(pDestTypes, pInputType, (U16) nParaCount); if (bCheckFlag) { pDestTypes[nParaCount] = 0; pInputType[nParaCount] = 0; if (pInputType[nParaCount - 1] == BIDI_B) { pDestTypes[nParaCount - 1] = 0; pInputType[nParaCount - 1] = 0; } } /*----------------------------------------------------------------*/ /* We use bidi_main line by line, so we can't get the paragraph */ /* embedding level from the current line. */ /* Now change to set the paragraph embedding */ /* level by the flag: fSwap. */ /*----------------------------------------------------------------*/ /* paragraphEmbeddingLevel = get_para_embedding_level(pInputType, nParaCount); */ paragraphEmbeddingLevel = (fSwap == 1) ? 1 : 0; set_dest_levels(0, nParaCount, paragraphEmbeddingLevel, pDestLevels); get_run_level(nParaCount, paragraphEmbeddingLevel, pDestLevels, pDestTypes); resolve_lines(paragraphEmbeddingLevel, pVisualBuffer, nParaCount, TRUE, pDestTypes, pDestLevels); if (bCheckFlag) { nParaCount++; } pInputType += nParaCount; pInputLevels += nParaCount; pDestLevels += nParaCount; pDestTypes += nParaCount; pLogicalBuffer += nParaCount * 2; pVisualBuffer += nParaCount * 2; iCount += nParaCount; } *visualStrLen = (U16) mmi_ucs2strlen((const S8*)visualStr); if (fSwap) { bidi_reverse((U8*) visualStr, *visualStrLen); } *visualCurPos = 0xFFFF; /* START Changed by YOGESH PMT 20050912 */ while (find_mark(visualStr, *visualStrLen, &mark, (U16*) & iCount)) /* END YOGESH PMT 20050912 */ { switch (mark) { case LAST_MARK: case CURSOR_MARK: #if BIDI_CONSIDER_DIFF_INPUT_METHOD_BEHAVIOR if (inputMode == BIDI_R) { *visualCurPos = get_bidi_cursor_pos(visualStr, (U16) LAST_MARK); if (lastType == WS) { set_bidi_cursor_pos(visualStr, *visualCurPos, (U16) (0x0020)); } *visualCurPos = get_bidi_cursor_pos(visualStr, (U16) CURSOR_MARK); } else #endif /* BIDI_CONSIDER_DIFF_INPUT_METHOD_BEHAVIOR */ { *visualCurPos = get_bidi_cursor_pos(visualStr, (U16) CURSOR_MARK); } testHilighOneCharFlag = 1; break; case SECOND_HIGHLT: *visualHilightEnd = get_bidi_cursor_pos(visualStr, (U16) SECOND_HIGHLT); testHilighOneCharFlag = 0; break; case FIRST_HIGHLT: *visualHilightStart = get_bidi_cursor_pos(visualStr, (U16) FIRST_HIGHLT); testHilighOneCharFlag = 0; break; } } if (testHilighOneCharFlag == 0 && *visualHilightEnd == *visualHilightStart) { *visualHilightEnd = *visualHilightStart = *visualCurPos + 1; } if ((logicalHilightStart == 0) && (logicalHilightEnd == 0)) { *visualHilightEnd = 0; *visualHilightStart = 0; } if ((*visualHilightEnd < /*=*/ *visualHilightStart) /* && (!(*visualHilightStart == 0 && *visualHilightEnd == 0)) */ ) { (*visualHilightEnd)++; (*visualHilightStart)++; } *visualStrLen = (U16) mmi_ucs2strlen((const S8*)visualStr); }