static void CursorEnd(void) { UINT8 len; if ( (GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) != GET_CURSOR()) { len = GET_LEN_RX_CMD_STRING() - GET_CURSOR() + gCmdLinePromptLength; CursorRight_N(len); } }
static tZGVoidReturn CursorEnd(tZGVoidInput) { tZGU8 len; if ( (GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) != GET_CURSOR()) { len = GET_LEN_RX_CMD_STRING() - GET_CURSOR() + gCmdLinePromptLength; CursorRight_N(len); } }
/*= Backspace ================================================================ Purpose: Performs a backspace operation on the command line Inputs: none Returns: none ============================================================================*/ static void Backspace(void) { UINT8 num_chars; UINT8 orig_index = GET_CURSOR(); /* if cursor is not at the left-most position */ if (GET_CURSOR() != gCmdLinePromptLength) { /* Null out tmp cmd line */ memset(gTmpCmdLine, 0x00, sizeof(gTmpCmdLine)); /* get characters before the backspace */ num_chars = GET_CURSOR() - gCmdLinePromptLength - 1; strncpy( (char *) gTmpCmdLine, (const char *) g_ConsoleContext.rxBuf, num_chars); /* append characters after the deleted char (if there are any) */ if ( (GET_LEN_RX_CMD_STRING() - 1) > 0u) { strcpy( (char *) &gTmpCmdLine[num_chars], (const char *) &g_ConsoleContext.rxBuf[num_chars + 1]); } EraseEntireLine(); /* leaves g_ConsoleContext.cursorIndex at 0 */ strcpy( (char *) g_ConsoleContext.rxBuf, (const char *) gTmpCmdLine); putrsUART( (ROM FAR char *) gCmdLinePrompt); putsUART( (char *) g_ConsoleContext.rxBuf); SET_CURSOR(gCmdLinePromptLength + GET_LEN_RX_CMD_STRING()); CursorHome(); /* to first character after prompt */ /* move cursor to point of backspace */ CursorRight_N(orig_index - 1 - gCmdLinePromptLength); } }
static void Delete(void) { unsigned int num_chars; unsigned int orig_index = GET_CURSOR(); /* if cursor is not at the end of the line */ if (GET_CURSOR() != GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) { /* Null out tmp cmd line */ memset(gTmpCmdLine, 0x00, sizeof(gTmpCmdLine)); /* get characters before the deleted key */ num_chars = GET_CURSOR() - gCmdLinePromptLength; strncpy( (char *) gTmpCmdLine, (const char *) g_ConsoleContext.rxBuf, num_chars); /* append characters after the deleted char (if there are any) */ if (strlen( (char *) g_ConsoleContext.rxBuf) - 1 > 0u) { strcpy( (char *) &gTmpCmdLine[num_chars], (const char *) &g_ConsoleContext.rxBuf[num_chars + 1]); } EraseEntireLine(); /* leaves g_ConsoleContext.cursorIndex at 0 */ putrsUART( (ROM FAR char *) gCmdLinePrompt); strcpy( (char *) g_ConsoleContext.rxBuf, (const char *) gTmpCmdLine); putsUART( (char *) g_ConsoleContext.rxBuf ); SET_CURSOR(gCmdLinePromptLength + GET_LEN_RX_CMD_STRING()); CursorHome(); /* to first character after prompt */ /* move cursor to point of delete */ CursorRight_N(orig_index - gCmdLinePromptLength); } }