diff options
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -1,3 +1,9 @@ + * submit patch for Scintilla and libglib (initialization when + linking statically with win32 threads - see glib/glib-init.c). + Also gspawn helpers should probably link with -all-static when compiling + a static glib. Why would be build a static glib but have the programs + depend on other libraries? + Known Bugs: * Null-byte in strings not always handled transparently * Saving another user's file will only preserve the user when run as root. @@ -8,6 +14,14 @@ Known Bugs: * crashes on large files: S^EM^X$ (regexp: .*) * the glib allocators are fundamentally broken: throwing exceptions is unsafe from C-linkage callbacks. + * Batch mode is broken in PDCurses/win32. Apparently, there is no + way to initialize curses without clearing the screen. + * PDCurses/win32a defines a default function key CTRL+V that + pastes the clipboard into the keyboard queue. + Unfortunately, the declarations for turning off that feature + are in the internal pdcwin.h. + Also batch mode is broken in PDCurses/win32 - endwin() does not + work. Features: * Support loading from stdin (--stdin) and writing to @@ -80,15 +94,35 @@ 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. + This will also allow us to reverse clipboard modifications. + * Program termination should be handled more elaborately. + We should register a SIGTERM handler and react window close + button presses. PDCurses/win32a allows that by defining a + "SHUT_DOWN" function key (see pdcwin.h). Optimizations: * Curses UI: Command line window can be modelled as a pad instead of a window. This simplifies things. + * Instead of using RTTI to implement the immediate editing command + behaviours in Cmdline::process_edit_cmd() depending on the current + state, this could be modelled via virtual methods in State. + This would almost eradicate Cmdline::process_edit_cmd() and the + huge switch-case statement, would be more efficient (but who cares + in this case?) and would allow us to -fno-rtti saving a few bytes. + However, this would mean to make some more Cmdline methods public and + it distributes command line behaviour all over SciTECO instead of + concentrating it in the Cmdline class... * C++14 is supported by GCC 5 and supports new() and delete() operators with a size argument. Replacing these operators with versions using g_slice_alloc() and g_slice_free() should speed up things, especially Q-Register handling and the undo stack. + This compiler capability should be checked by the build system. * Scintilla: SETDOCPOINTER resets representations, so we have to set SciTECO representations up again often * commonly used (special) Q-Registers could be cached, |