1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-07-06 03:37:55 +02:00

fix for issue #306

This commit is contained in:
charmlesscoin 2013-08-03 17:29:18 -04:00
parent e2ce3d5397
commit 99410a5100

17
chat.c
View File

@ -77,6 +77,18 @@ static void chat_onStatusChange(ToxWindow* self, int num, uint8_t* status, uint1
}
/* check that the string has one non-space character */
int string_is_empty(char *string)
{
int rc = 0;
char *copy = strdup(string);
rc = ((strtok(copy, " ") == NULL) ? 1:0);
free(copy);
return rc;
}
static void chat_onKey(ToxWindow* self, int key) {
ChatContext* ctx = (ChatContext*) self->x;
@ -92,7 +104,10 @@ static void chat_onKey(ToxWindow* self, int key) {
ctx->line[ctx->pos] = '\0';
}
}
else if(key == '\n') {
if(!string_is_empty(ctx->line)) {
/* make sure the string has at least non-space character */
wattron(ctx->history, COLOR_PAIR(2));
wprintw(ctx->history, "%02d:%02d:%02d ", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
wattron(ctx->history, COLOR_PAIR(1));
@ -109,6 +124,8 @@ static void chat_onKey(ToxWindow* self, int key) {
ctx->line[0] = '\0';
ctx->pos = 0;
}
}
else if(key == 0x107 || key == 0x8 || key == 0x7f) {
if(ctx->pos != 0) {
ctx->line[--ctx->pos] = '\0';