aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/qreg.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2025-07-25 01:41:37 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2025-07-26 00:42:15 +0300
commiteee669a76b3c0b1928475d55d9e1333b3d15bb8c (patch)
treea56d85bf4e92c8049bd5e308cb13ee8e46de123c /src/qreg.h
parentf7a11166d4a376867235bee213eeffddc05a8d78 (diff)
downloadsciteco-eee669a76b3c0b1928475d55d9e1333b3d15bb8c.tar.gz
implemented the <^A> command for printing arbitrary strings
* Greatly improved usability as a scripting language. * The command is in DEC TECO, but in contrast to DEC TECO, we also support string building constructs in ^A. * Required some refactoring: As we want it to write everything verbatim to stdout, the per-interface method is now teco_interface_msg_literal() and it has to deal with unprintable characters. When displaying in the UI, we use teco_curses_format_str() and TecoGtkLabel functions/widgets to deal with possible control codes. * Numbers printed with `=` have to be written with a trailing linefeed, which would also be visible as a reverse "LF" in the UI. Not sure whether this is acceptable - the alternative would be to strip the strings before displaying them. * Messages written to stdout are also auto-flushed at the moment. In the future we might want to put flushing under control of the language. Perhaps :^A could inhibit the flushing.
Diffstat (limited to 'src/qreg.h')
-rw-r--r--src/qreg.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/qreg.h b/src/qreg.h
index 27a3653..2b970aa 100644
--- a/src/qreg.h
+++ b/src/qreg.h
@@ -45,6 +45,8 @@ extern teco_view_t *teco_qreg_view;
* teco_qreg_set_integer_t set_integer;
* ...
* teco_qreg_set_integer(qreg, 23, error);
+ *
+ * But this probably won't work. Perhaps use the X-macro pattern.
*/
typedef const struct {
gboolean (*set_integer)(teco_qreg_t *qreg, teco_int_t value, GError **error);