aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--main.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/main.cpp b/main.cpp
index e2f1df6..3c82326 100644
--- a/main.cpp
+++ b/main.cpp
@@ -76,8 +76,6 @@ static gboolean
cmdline_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer user_data __attribute__((unused)))
{
- gchar key = '\0';
-
#ifdef DEBUG
g_printf("KEY \"%s\" (%d) SHIFT=%d CNTRL=%d\n",
event->string, *event->string,
@@ -86,18 +84,29 @@ cmdline_key_pressed(GtkWidget *widget, GdkEventKey *event,
switch (event->keyval) {
case GDK_BackSpace:
- key = '\b';
+ cmdline_keypress('\b');
break;
case GDK_Tab:
- key = '\t';
+ cmdline_keypress('\t');
+ break;
+ case GDK_Return:
+ switch (editor_msg(SCI_GETEOLMODE)) {
+ case SC_EOL_CR:
+ cmdline_keypress('\r');
+ break;
+ case SC_EOL_CRLF:
+ cmdline_keypress('\r');
+ /* fall through */
+ case SC_EOL_LF:
+ default:
+ cmdline_keypress('\n');
+ }
break;
default:
- key = *event->string;
+ if (*event->string)
+ cmdline_keypress(*event->string);
}
- if (key)
- cmdline_keypress(key);
-
return TRUE;
}