fix for issue #306

This commit is contained in:
charmlesscoin 2013-08-03 17:29:18 -04:00
parent 09a6d2d351
commit a65715e811

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) { static void chat_onKey(ToxWindow* self, int key) {
ChatContext* ctx = (ChatContext*) self->x; ChatContext* ctx = (ChatContext*) self->x;
@ -92,7 +104,10 @@ static void chat_onKey(ToxWindow* self, int key) {
ctx->line[ctx->pos] = '\0'; ctx->line[ctx->pos] = '\0';
} }
} }
else if(key == '\n') { 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)); wattron(ctx->history, COLOR_PAIR(2));
wprintw(ctx->history, "%02d:%02d:%02d ", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec); wprintw(ctx->history, "%02d:%02d:%02d ", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
wattron(ctx->history, COLOR_PAIR(1)); wattron(ctx->history, COLOR_PAIR(1));
@ -109,6 +124,8 @@ static void chat_onKey(ToxWindow* self, int key) {
ctx->line[0] = '\0'; ctx->line[0] = '\0';
ctx->pos = 0; ctx->pos = 0;
} }
}
else if(key == 0x107 || key == 0x8 || key == 0x7f) { else if(key == 0x107 || key == 0x8 || key == 0x7f) {
if(ctx->pos != 0) { if(ctx->pos != 0) {
ctx->line[--ctx->pos] = '\0'; ctx->line[--ctx->pos] = '\0';