From 41362a9e75302c1ded15a59b6c688a36eb0ea920 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Fri, 22 Feb 2013 00:10:18 +0100 Subject: resolved enter-key handling by introducing get_eol() --- src/cmdline.cpp | 14 ++++++++++++++ src/cmdline.h | 2 ++ src/interface-gtk.cpp | 12 +----------- src/interface-ncurses.cpp | 13 ++----------- 4 files changed, 19 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/cmdline.cpp b/src/cmdline.cpp index 2a46a75..ac71548 100644 --- a/src/cmdline.cpp +++ b/src/cmdline.cpp @@ -288,6 +288,20 @@ cmdline_fnmacro(const gchar *name) } } +const gchar * +get_eol(void) +{ + switch (interface.ssm(SCI_GETEOLMODE)) { + case SC_EOL_CR: + return "\r"; + case SC_EOL_CRLF: + return "\r\n"; + case SC_EOL_LF: + default: + return "\n"; + } +} + static gchar * macro_echo(const gchar *macro) { diff --git a/src/cmdline.h b/src/cmdline.h index ca7dfc0..eaf522d 100644 --- a/src/cmdline.h +++ b/src/cmdline.h @@ -38,6 +38,8 @@ cmdline_keypress(const gchar *keys) void cmdline_fnmacro(const gchar *name); +const gchar *get_eol(void); + /* * Command states */ diff --git a/src/interface-gtk.cpp b/src/interface-gtk.cpp index 8436e2b..e27e5f4 100644 --- a/src/interface-gtk.cpp +++ b/src/interface-gtk.cpp @@ -246,17 +246,7 @@ cmdline_key_pressed(GtkWidget *widget, GdkEventKey *event, cmdline_keypress('\t'); break; case GDK_Return: - switch (interface.ssm(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'); - } + cmdline_keypress(get_eol()); break; /* diff --git a/src/interface-ncurses.cpp b/src/interface-ncurses.cpp index b0a5276..e078005 100644 --- a/src/interface-ncurses.cpp +++ b/src/interface-ncurses.cpp @@ -384,17 +384,8 @@ InterfaceNCurses::event_loop(void) break; case KEY_ENTER: case '\r': - switch (ssm(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'); - } + case '\n': + cmdline_keypress(get_eol()); break; /* -- cgit v1.2.3