<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/src, branch v2.5.1</title>
<subtitle>Scintilla-based Text Editor and COrrector</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/'/>
<entry>
<title>Curses: the hardware cursor is enabled by default now on the command line</title>
<updated>2026-01-10T15:15:07+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-10T14:58:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=37d8808d4009df862da9976c765d5958ce5d2a63'/>
<id>37d8808d4009df862da9976c765d5958ce5d2a63</id>
<content type='text'>
If you dislike this, you can always revert to the old style by adding the
following to your profile:

  0,2048ED 2#16@ES/SETCARETSTYLE//$ 2048,0ED
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If you dislike this, you can always revert to the old style by adding the
following to your profile:

  0,2048ED 2#16@ES/SETCARETSTYLE//$ 2048,0ED
</pre>
</div>
</content>
</entry>
<entry>
<title>GTK: fixed bogus "(Unnamed)" strings in the message line</title>
<updated>2026-01-09T09:45:41+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-09T09:45:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=a10e3bb5da5d6e1ecfa726729b0d8aaf6320f3eb'/>
<id>a10e3bb5da5d6e1ecfa726729b0d8aaf6320f3eb</id>
<content type='text'>
* An empty message line would actually contain "(Unnamed)".
* Info popups must discern the "(Unnamed)" string (e.g. a file with that name)
  from the actual unnamed buffer since when clicking the unnamed buffer, you
  must insert nothing (`EB$`). Therefore, the unnamed buffer is represented
  as an empty string. "(Unnamed)" is just a placeholder for rendering.
  This was carried over into TecoGtkLabel which always rendered the empty string
  as "(Unnamed)".
  But TecoGtkLabels are used for the info and message lines as well.
* Therefore the fallback/placeholder string is now configurable per label.
* On the downside, this wastes one more machine word per TecoGtkLabel.
  The alternative would have been to use {NULL, 0} as the representation
  for unnamed buffers, so you can actually discern the empty string from the
  unnamed buffer representation.
  However it feels wrong to have this kind of info-popup-specific handling
  in a more generic label widget.
  Also, for consistency we'd have to touch the Curses UI as well where
  the unnamed buffer is also currently internally represented by empty
  strings (as opposed to NULL).
* Regression introduced by 0c89fb700957e411885e7e7835e15f441e8b5e84,
  so it was in v2.5.0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* An empty message line would actually contain "(Unnamed)".
* Info popups must discern the "(Unnamed)" string (e.g. a file with that name)
  from the actual unnamed buffer since when clicking the unnamed buffer, you
  must insert nothing (`EB$`). Therefore, the unnamed buffer is represented
  as an empty string. "(Unnamed)" is just a placeholder for rendering.
  This was carried over into TecoGtkLabel which always rendered the empty string
  as "(Unnamed)".
  But TecoGtkLabels are used for the info and message lines as well.
* Therefore the fallback/placeholder string is now configurable per label.
* On the downside, this wastes one more machine word per TecoGtkLabel.
  The alternative would have been to use {NULL, 0} as the representation
  for unnamed buffers, so you can actually discern the empty string from the
  unnamed buffer representation.
  However it feels wrong to have this kind of info-popup-specific handling
  in a more generic label widget.
  Also, for consistency we'd have to touch the Curses UI as well where
  the unnamed buffer is also currently internally represented by empty
  strings (as opposed to NULL).
* Regression introduced by 0c89fb700957e411885e7e7835e15f441e8b5e84,
  so it was in v2.5.0.
</pre>
</div>
</content>
</entry>
<entry>
<title>PDCurses: fixed modifiers (CTRL, ALT, SHIFT) and mouse support on XCurses</title>
<updated>2026-01-06T10:36:38+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-06T10:00:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=e55bd8e619aad30c119e8e17894337021fb16af8'/>
<id>e55bd8e619aad30c119e8e17894337021fb16af8</id>
<content type='text'>
* While xcurses-config does define PDC_WIDE, it does not
  define PDC_NCMOUSE, which we currently rely on so that
  NCURSES_MOUSE_VERSION is set correctly.
  Therefore we check for it just like when using --with-interface=pdcurses.
* The modifiers were broken on all variants of PDCurses.
  This was a regression from v2.4.0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* While xcurses-config does define PDC_WIDE, it does not
  define PDC_NCMOUSE, which we currently rely on so that
  NCURSES_MOUSE_VERSION is set correctly.
  Therefore we check for it just like when using --with-interface=pdcurses.
* The modifiers were broken on all variants of PDCurses.
  This was a regression from v2.4.0.
</pre>
</div>
</content>
</entry>
<entry>
<title>PDCurses/XCurses: fixed crashes on startup</title>
<updated>2026-01-06T09:58:59+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-06T09:58:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=68d19d800cd037a8efb210c6ebc52cf23c11ad5e'/>
<id>68d19d800cd037a8efb210c6ebc52cf23c11ad5e</id>
<content type='text'>
Must not (and don't have to) probe the clipboard on startup.
We just assume there always is a clipboard.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Must not (and don't have to) probe the clipboard on startup.
We just assume there always is a clipboard.
</pre>
</div>
</content>
</entry>
<entry>
<title>minor documentation improvement for `ED`</title>
<updated>2026-01-04T22:15:22+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-04T22:15:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=5b11e487cc24779d32723f9736b06b939e64e655'/>
<id>5b11e487cc24779d32723f9736b06b939e64e655</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Curses: fixed mouse interactions on PDCurses</title>
<updated>2026-01-04T21:56:11+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-04T21:56:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=b697806bfd5a6756bb4b40776c4499577671a167'/>
<id>b697806bfd5a6756bb4b40776c4499577671a167</id>
<content type='text'>
* There is yet another PDCurses vs. ncurses incompatibility:
  ncurses has a mouse event queue so you must call getmouse() repeatedly
  for every KEY_MOUSE, while PDCurses apparently doesn't queue and would
  end up in an infinite loop. I.e. the program would hang once
  you press any mouse button.
* This forced us to add an PDCurses-specific version of teco_interface_getmouse().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* There is yet another PDCurses vs. ncurses incompatibility:
  ncurses has a mouse event queue so you must call getmouse() repeatedly
  for every KEY_MOUSE, while PDCurses apparently doesn't queue and would
  end up in an infinite loop. I.e. the program would hang once
  you press any mouse button.
* This forced us to add an PDCurses-specific version of teco_interface_getmouse().
</pre>
</div>
</content>
</entry>
<entry>
<title>Curses: use wtimeout() consistently instead of nodelay() and halfdelay()</title>
<updated>2026-01-03T20:44:36+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-03T20:44:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c825c2fd4441ac29f6775ef5bed4143d03da3c97'/>
<id>c825c2fd4441ac29f6775ef5bed4143d03da3c97</id>
<content type='text'>
* Fixes input hangs on PDCursesMod/WinGUI, where we depend on polling for CTRL+C.
* ncurses apparently does not need this workaround as it treats all of the
  aforementioned calls as equivalent.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fixes input hangs on PDCursesMod/WinGUI, where we depend on polling for CTRL+C.
* ncurses apparently does not need this workaround as it treats all of the
  aforementioned calls as equivalent.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixup ea0a23645f03a42252ab1ce8df45ae4076ebae75: pass teco_string_t by value in Windows-only code as well</title>
<updated>2026-01-01T19:20:15+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-01T19:20:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=304c617a68c7c9dbc720a7d5c58ef4614898b915'/>
<id>304c617a68c7c9dbc720a7d5c58ef4614898b915</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>updated copyright to 2026</title>
<updated>2026-01-01T06:59:49+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-01T06:59:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c2feb2a6f71fc9adb20226fb3c2260c236e974e0'/>
<id>c2feb2a6f71fc9adb20226fb3c2260c236e974e0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>GTK: implemented --detach|-d option for detaching from controlling terminal</title>
<updated>2025-12-29T23:42:34+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2025-12-29T11:01:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=a7202a1fb911f72c309380b42c0ff995c05ba94c'/>
<id>a7202a1fb911f72c309380b42c0ff995c05ba94c</id>
<content type='text'>
This is useful to launch from a terminal without "blocking" this terminal.
There are tools like nohup and daemonize (BSD) to do the same, but having it
builtin is shorter to write.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is useful to launch from a terminal without "blocking" this terminal.
There are tools like nohup and daemonize (BSD) to do the same, but having it
builtin is shorter to write.
</pre>
</div>
</content>
</entry>
</feed>
