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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user