fix:添加ish修正。

This commit is contained in:
taynpg 2025-01-10 15:14:47 +08:00
parent ce813baf04
commit 715c9155bf
5 changed files with 33 additions and 13 deletions

View File

@ -88,6 +88,7 @@
"xlocmon": "cpp",
"xloctime": "cpp",
"xtree": "cpp",
"deque": "cpp"
"deque": "cpp",
"array": "cpp"
}
}

View File

@ -6,14 +6,19 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (MSVC)
add_compile_options(/source-charset:utf-8)
add_definitions(-DSTRCODE_GBK)
add_definitions(-DBINARY_GBK)
endif()
if(DEFINED IOS_ISH)
add_definitions(-DIOS_ISH)
add_definitions(-DMFLUSH_STDOUT)
endif()
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
MESSAGE(STATUS "Add MinGW Param.")
add_compile_options(-finput-charset=utf-8)
add_compile_options(-fexec-charset=gbk)
add_definitions(-DSTRCODE_GBK)
add_definitions(-DBINARY_GBK)
endif()
set(CMAKE_DEBUG_POSTFIX "d")
@ -26,10 +31,12 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}
add_library(filecomplete STATIC filecomplete.h filecomplete.cpp)
target_include_directories(filecomplete PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
add_executable(key_value key_value.cxx)
if(DEFINED GEN_EXAMPLE)
message(STATUS "USE TEST")
add_executable(example main.cpp)
target_link_libraries(example PRIVATE filecomplete)
endif()
endif()
if(DEFINED GEN_KEYVALUE)
message(STATUS "USE GEN_KEYVALUE")
add_executable(key_value key_value.cxx)
endif()

View File

@ -4,4 +4,9 @@
`tab`键补全仅命中唯一项时可以直接补全,所以需要配合补全提示,两者配合能达到一个基本够用的状态(本项目达到此目标即结束,不开发更复杂的补全和提示)。
本项目修改自 [https://github.com/DieTime/cli-autocomplete](https://github.com/DieTime/cli-autocomplete) 。
本项目修改自 [https://github.com/DieTime/cli-autocomplete](https://github.com/DieTime/cli-autocomplete) 。
# 编译
- `iSh``enter`键位是与`win`相同,需要定义`IOS_ISH`宏。
- 部分终端,需要每个字符添删都主动调用`fflush`,如有需要定义`MFLUSH_STDOUT`宏。

View File

@ -60,7 +60,11 @@ namespace fs = std::filesystem;
#define DEFAULT_PREDICT_COLOR 8
#define DEFAULT_MAIN_COLOR 7
#elif defined(OS_UNIX)
#ifdef IOS_ISH
#define ENTER 13
#else
#define ENTER 10
#endif
#define BACKSPACE 127
#define LEFT 68
#define RIGHT 67
@ -231,7 +235,7 @@ size_t get_u8_len(unsigned char ch)
void supply(std::vector<char>& wch, char ch)
{
#if defined(STRCODE_GBK)
#if defined(BINARY_GBK)
wch.push_back(ch);
if (ch >= 0 && ch < 128) {
return;
@ -437,8 +441,8 @@ char* fc_readline()
}
// Move cursor
size_t cur_pos{};
#if defined(STRCODE_GBK)
for (int i = 0; i < buf.size() && i < wo; ++i) {
#if defined(BINARY_GBK)
for (size_t i = 0; i < buf.size() && i < wo; ++i) {
cur_pos += buf[i].size();
}
#else
@ -485,7 +489,7 @@ char* fc_readline()
temp.push_back(b);
++i;
} else {
#if defined(STRCODE_GBK)
#if defined(BINARY_GBK)
size_t length = 2;
#else
size_t length = get_u8_len(curch);
@ -638,5 +642,8 @@ void color_print(const char* text, const COLOR_TYPE color)
}
// Resets the text to default color
printf("\033[0m");
#if defined(MFLUSH_STDOUT)
fflush(stdout);
#endif
#endif
}

View File

@ -2,8 +2,8 @@
#define FILE_COMPLETE_H
/* ***************************************************
GBK,
STRCODE_GBK
GBK,
BINARY_GBK
UTF-8
******************************************************