Commit Graph

176 Commits

Author SHA1 Message Date
Rebecca Turner
4c4455353a
Add support for \e[1;3C and \e[1;3D 2024-09-09 09:44:44 -07:00
Rebecca Turner
d0f2a5bc23
Recognize Meta+Left and Meta+Right
I'm not sure exactly where to find canonical documentation for these
codes, but this seems to match what my terminal produces (macOS + iTerm2
+ Fish + Tmux).

It might also be nice to have some more support for editing the bindings
for these characters; sequences of more than one character are not
supported by `el_bind_key` and similar.
2024-09-08 19:32:28 -07:00
Joachim Wiberg
caf4b3c0ce
Merge pull request #67 from Feoramund/respect-hist-size 2024-05-27 17:44:43 +02:00
Feoramund
e0f686506a
Respect default prompt
A prompt `"? "` is set in `rl_initialize`, but it is never seen, because
this line was replacing it with `NILSTR`.
2024-05-26 04:13:29 -04:00
Feoramund
aefda06a0c
Respect el_hist_size
It was previously subject to a sort of off-by-one error, because of the
addition of `NILSTR` in `el_prep`. This should allow a history size of 1
to function correctly now.
2024-05-26 03:38:04 -04:00
Tony Lawrence
c50d4c34d8 Avoid using (char) in <ctype.h> macros (#61) 2022-10-22 20:02:23 -04:00
Joachim Wiberg
9d4c6f7042 Drop orig. effort to support WIN32
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-02-19 22:38:55 +01:00
Jeff Huffman
ec62e11a72
handle home and end keys in urxvt 2021-06-27 22:44:30 -04:00
oxalica
265c1fb6a0
Fix Home (\e[1~) and End (\e[4~) in tmux 2021-05-29 14:30:05 +08:00
Martin Lundh
3acd6a8b60 Fixed buffer overrun issue detected by address sanitizer. 2021-02-25 10:22:50 +01:00
dvolynets
ceee039cfc added fix for multiline representing as one line 2020-01-13 12:15:27 +03:00
Joachim Nilsson
01dd4045b4 Bump ABI revision, v1.0.1 --> v1.0.2
Most notably, changes in behavior in history functions.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2020-01-05 09:49:47 +01:00
Joachim Nilsson
f619d9d788 Follow-up to d310910, use EOF instead of -1 in calls to reposition()
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2020-01-05 07:52:31 +01:00
Joachim Nilsson
b44335f413 Defensive programming, check within boundaries before deref
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2020-01-05 07:52:31 +01:00
Joachim Nilsson
e36aae07f8 Refactor move_cursor_forward() into tty_forwardn()
- Use same namespace like other tty movement functions
- Replace globally exposed itoa() and dangerous strcpy() with snprintf()

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2020-01-05 07:52:31 +01:00
Joachim Nilsson
cf8f962e4f Handle realloc() failures better
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2020-01-05 07:52:31 +01:00
Joachim Nilsson
deb2884310 Fix error return value from read_history() and write_history()
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2020-01-05 07:52:31 +01:00
Joachim Nilsson
12d5584721 Fix for() loop; "statement with no effect" warning from GCC
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-11-28 06:59:53 +01:00
Joachim Nilsson
35506cd22e Minor, coding style fixups
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-11-28 06:58:37 +01:00
Joachim Nilsson
f35af9f20d Merge branch 'simple_multiline' of https://github.com/echoprotocol/editline into echoprotocol-simple_multiline 2019-11-28 06:41:43 +01:00
dvolynets
498b041a35 fixed indentations 2019-11-20 15:14:21 +03:00
dvolynets
d3109109c4 added simple multiline support 2019-11-20 15:14:02 +03:00
Joachim Nilsson
7355f56d25 Update ChangeLog(s) and bump version for v1.16.1 release
New ABI version 1.0.1

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-06-07 12:04:01 +02:00
Joachim Nilsson
13f8d5f69c
Merge pull request #32 from abitmore/search-end-cleanup
Cleanup el_intr_pending in h_search_end()
2019-05-08 17:11:02 +02:00
Joachim Nilsson
c2b65646ea Revert "Fi #31: Aborting i-search with Ctrl-C should not generate signal"
This reverts commit e2c3b41d9a.
2019-05-08 17:10:21 +02:00
Joachim Nilsson
e2c3b41d9a Fi #31: Aborting i-search with Ctrl-C should not generate signal
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-05-08 17:04:15 +02:00
Joachim Nilsson
3e046cafd2 Clear line on failed Ctrl-R operation
The Ctrl-R search prompt and failed search text may be longer than
the regular CLI prompt.  This patch clears the line to remove any
lingering artefacts.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-05-08 16:57:40 +02:00
Joachim Nilsson
0e493addab Fix #30: Ctrl-R with empty search string clears screen
The screen should only be cleared on Ctrl-L *and* empty regular line,
not when searching with an empty string.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-05-08 16:55:33 +02:00
abitmore
842bd67dd4 Cleanup el_intr_pending in h_search_end()
Fixes an issue when user pressed Ctrl+C when searching.
2019-05-08 07:51:13 -04:00
abitmore
8f6d724e30 Add rl_set_getc_func()
So it's possible to install another implementation of rl_getc() function.
2019-05-07 17:58:06 -04:00
Joachim Nilsson
979f05a5eb Follow-up to a4b67d2: Ctrl-L redisplay line when not on empty line
Like Ctrl-D, when on an empty line we clear the screen, when editing a
garbled line we refresh the line.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-05-06 00:54:57 +02:00
Joachim Nilsson
c95d25731d Always use enums for el_status_t return values
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-05-06 00:54:17 +02:00
Abit
448a3dac08
Avoid continuously duplicate commands in history
When adding a command to history, if CONFIG_UNIQUE_HISTORY is defined, always compare current command with the last entry in history.
2019-05-03 16:54:25 +02:00
Will Dietz
8660aef4b7 editline: fix behavior when tty is narrower than column width
Fixes crash when dividing by the number of columns,
which was computed as zero in this situation.

Instead, always have at least one "column" even if it wraps.
2019-04-26 13:30:15 -05:00
Daiderd Jordan
a4b67d2268
make Ctrl-L clear the screen instead of just starting a new line 2018-12-23 20:49:25 +01:00
Joachim Nilsson
2137b9df9f Revert "Merge pull request #21 from cogutvalera/issue_1171"
This reverts commit cddd8d8de0, reversing
changes made to 4ec7d26a9d.
2018-11-15 10:27:22 +01:00
Joachim Nilsson
66d8ae84e2 Revert "Coding style and const fixes to last PR"
This reverts commit fbb1f8800a.
2018-11-15 10:26:03 +01:00
Joachim Nilsson
fbb1f8800a Coding style and const fixes to last PR
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-10-24 08:28:34 +02:00
Valera Cogut
1db83fe6c6 Fixed inconsistent indentation 2018-10-18 16:54:16 +03:00
Valera Cogut
4784fe2491 Hide secret information 2018-10-18 11:15:35 +03:00
Joachim Nilsson
ebefa8b890 Refactor, simplify helper macro
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-21 07:12:24 +02:00
Joachim Nilsson
237014f7d9 Bump ABI version
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-16 10:10:03 +02:00
Joachim Nilsson
14b6dd37d6 Fix off-by-one in forward kill word
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-16 09:29:48 +02:00
Joachim Nilsson
89d2fefbc6 Skip leading whitespace when skipping or killing forwards
When the point is on whitespace between two words skipping forward, or
killing forward, should result in the new point being moved to the next
word:

     foo    bar fox gnu
         ^
=>
     foo    bar fox gnu
                ^

Before this patch the point moved to 'b'.  After this patch the point
moves to the first letter of the next word, 'f'.  Kill forward word now
properly kills 'bar' and moves to the first whitespace letter after
'bar'.  Both are now behaving like FSF Readline.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-16 09:29:48 +02:00
Joachim Nilsson
ac522cd749 Fix potential memory leak, found by Coverity Scan
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-16 08:29:01 +02:00
Joachim Nilsson
9a16999f0e Remove GNU Readline rl_complete() prototype, for now
We should add a configure option --enable-readline-compat, or sth, so
rl_complete2() (removed in this commit) becomes the new rl_complete(),
and the current rl_complete() becomes el_complete().

The current implementation of rl_complete2() was is incomplete and also
not working properly.  To eliminate any confusion on the matter this
patch removes it.  To restore functionality we should, at the very
least, merge with complete() and possibly also refactor rl_find_token()
to share code with the legacy el_find_word().

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-13 19:06:05 +02:00
Joachim Nilsson
29b24dcf83 Clarify comment about future --enable-readline-compat interface
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-12 17:12:19 +02:00
Joachim Nilsson
097fde5267 Merge branch 'master' of github.com:troglobit/editline 2018-09-11 19:57:25 +02:00
Joachim Nilsson
77d531f5b5 Refactor completion handling and add FSF Readline callbacks
Still a bit raw, but the basic building blocks are there, waiting to be
cleaned up and released.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-11 19:55:43 +02:00
jmjatlanta
d2418161ad Fix sementation violation when displaying options 2018-07-11 18:01:48 -05:00