aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--incdec24
1 files changed, 23 insertions, 1 deletions
diff --git a/incdec b/incdec
index fe4670b..c253028 100644
--- a/incdec
+++ b/incdec
@@ -128,10 +128,32 @@ sub incdec {
}
function __readline_incdec_increment {
+ local old_line_length="${#READLINE_LINE}"
+
__readline_incdec 1 1
+
+ local new_line_length="${#READLINE_LINE}"
+
+ if [ "$old_line_length" -gt "$new_line_length" ]; then
+ READLINE_POINT="$(($READLINE_POINT - 1))"
+ fi
+}
+
+function __readline_incdec_decrement {
+ local old_line_length="${#READLINE_LINE}"
+
+ __readline_incdec -1 1
+
+ local new_line_length="${#READLINE_LINE}"
+
+ if [ "$old_line_length" -lt "$new_line_length" ]; then
+ READLINE_POINT="$(($READLINE_POINT + 1))"
+ # elif [ "$old_line_length" -gt "$new_line_length" ]; then
+ # READLINE_POINT="$(($READLINE_POINT - 1))"
+ fi
}
-bind -x '"\C-x-": __readline_incdec -1 1'
+bind -x '"\C-x-": __readline_incdec_decrement'
bind -x '"\C-x+": __readline_incdec_increment'