1
0
mirror of https://github.com/Tha14/toxic.git synced 2026-01-24 19:13:15 +01:00

Enable multiline input

Adds a nonl() call to avoid translation from \r to \n when pressing
enter.
C-J -> \n
Enter -> \r
To allow multiline input, \n chars (e.g. when pressing C-J) are replaced
with a pilcrow. After hitting enter, every pilcrow is substituted with
\n again.
This commit is contained in:
Marvin Ewald
2015-12-04 20:15:31 +01:00
parent eb02424f8a
commit e6f839f9ac
11 changed files with 112 additions and 64 deletions

View File

@@ -166,19 +166,19 @@ void reset_buf(ChatContext *ctx)
ctx->start = 0;
}
/* Removes trailing spaces from line. */
/* Removes trailing spaces and newlines from line. */
void rm_trailing_spaces_buf(ChatContext *ctx)
{
if (ctx->len <= 0)
return;
if (ctx->line[ctx->len - 1] != ' ')
if (ctx->line[ctx->len - 1] != ' ' && ctx->line[ctx->len - 1] != L'')
return;
int i;
for (i = ctx->len - 1; i >= 0; --i) {
if (ctx->line[i] != ' ')
if (ctx->line[i] != ' ' && ctx->line[i] != L'')
break;
}
@@ -242,3 +242,19 @@ void fetch_hist_item(ChatContext *ctx, int key_dir)
ctx->pos = h_len;
ctx->len = h_len;
}
void strsubst(char* str, char old, char new)
{
int i;
for (i = 0; str[i] != '\0'; ++i)
if (str[i] == old)
str[i] = new;
}
void wstrsubst(wchar_t* str, wchar_t old, wchar_t new)
{
int i;
for (i = 0; str[i] != L'\0'; ++i)
if (str[i] == old)
str[i] = new;
}