aboutsummaryrefslogtreecommitdiffhomepage
path: root/TODO
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2016-08-16 05:04:54 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2016-08-19 03:29:11 +0200
commit61ff6e97c57f62ee3ad4ffc2166e433bc060e7cb (patch)
tree64c032ebdd040809d1b7e822e627e199a9c2476e /TODO
parent94b041ec331427fd63cdae3e943efe825d1bbf14 (diff)
downloadsciteco-61ff6e97c57f62ee3ad4ffc2166e433bc060e7cb.tar.gz
Integrated clipboard support
* mapped to different registers beginning with "~" * on supported platforms accessing the clipboard is as easy as X~ or G~. Naturally this also allows clipboards to be pasted in string arguments/insertions (^EQ~). * Currently, Gtk+, PDCurses and ncurses/XTerm are supported. For XTerm clipboard support, users must set 0,256ED to enable it since we cannot check for XTerm window ops programmatically (at least without libX11). * When clipboard regs exist, the clipboard can also be deemed functional. This allows macros to fall back to xclip(1) if necessary. * EOL handling has been moved into a new file eol.c and eol.h. EOL translation no longer depends on GIOChannels but can be memory-backed as well.
Diffstat (limited to 'TODO')
-rw-r--r--TODO22
1 files changed, 14 insertions, 8 deletions
diff --git a/TODO b/TODO
index 5374869..733ba9c 100644
--- a/TODO
+++ b/TODO
@@ -29,6 +29,13 @@ Known Bugs:
We should fall back silently to an (inefficient) memory copy or temporary
file strategy if this is detected.
* crashes on large files: S^EM^X$ (regexp: .*)
+ Happens because the Glib regex engine is based on a recursive
+ Perl regex library.
+ This is apparently impossible to fix as long as we do not
+ have control over the regex engine build. We should either use C++11
+ regex support, UNIX regex (unportable) or some other library.
+ Perhaps allowing us to interpret the SciTECO matching language
+ directly.
* the glib allocators are fundamentally broken:
throwing exceptions is unsafe from C-linkage callbacks.
We should abandon the custom allocators and rely on
@@ -43,6 +50,13 @@ Known Bugs:
savepoint restoration.
On Windows we could work around this using
MoveFileEx(file, NULL, MOVEFILE_DELAY_UNTIL_REBOOT)
+ * Clipboard registers are prone to race conditions if the
+ contents change between get_size() and get_string() calls.
+ Also it's a common idiom to query a string and its size,
+ so the internal API must be changed.
+ * Setting window title is broken on ncurses/XTerm.
+ Perhaps do some XTerm magic here. We can also restore
+ window titles on exit using XTerm.
Features:
* :$ and :$$ to pop/return only single values
@@ -172,14 +186,6 @@ Features:
Each Scintilla view could then be associated with at most
one curses screen.
GTK+ would simply manage a list of windows.
- * Add a command for manipulating the clipboard.
- Can be done with ECxclip$ on Unix, but other platforms have
- better methods (e.g. PDCurses has clipboard extensions, GTK+
- has native clipboard support). On ncurses/UNIX we can fall back
- to spawning xclip or copy xclip's functionality.
- Unfortunately, not every UNIX has X11 (e.g. linux console,
- OS X). What do we do on those systems?
- This will also allow us to reverse clipboard modifications.
Optimizations:
* Add G_UNLIKELY to all error throws.