странное поведение backspace в работающем коде readline

Я написал код C ++ с readline библиотека:

#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <readline/readline.h>
#include <readline/history.h>

int main(int argc, char** argv) {

char* buf;
while ((buf = readline(">> ")) != nullptr) {
if (strlen(buf) > 0) add_history(buf);

printf("[%s]\n", buf);
free(buf);
}

return 0;
}

Код работает нормально, но проблема в backspace ключ. Когда я делаю ошибку с вводом и пытаюсь удалить символ с помощью клавиши, вместо удаления последнего символа, он дает пробел. первоначально

>> Hellow

После удара backspace, это дает мне место вместо удаления w:

>> Hellow(there_is_a_space_here!)

Я работаю в Bash, используя tmux, и это странное поведение появляется только при запуске этого кода с readline, Может ли кто-нибудь сказать мне, как исправить это странное поведение backspace?

ОБНОВИТЬ

Такое же поведение также появляется при запуске кода на tcsh,

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …