<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/src/interface-curses, 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>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>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>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>teco_string_t is now passed by value like a scalar if the callee isn't expected to modify it</title>
<updated>2025-12-28T19:57:31+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2025-12-28T15:23:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=ea0a23645f03a42252ab1ce8df45ae4076ebae75'/>
<id>ea0a23645f03a42252ab1ce8df45ae4076ebae75</id>
<content type='text'>
* When passing a struct that should not be modified, I usually use a const pointer.
* Strings however are small 2-word objects and they are often now already passed via separate
  `gchar*` and gsize parameters. So it is consistent to pass teco_string_t by value as well.
  A teco_string_t will usually fit into registers just like a pointer.
* It's now obvious which function just _uses_ and which function _modifies_ a string.
  There is also no chance to pass a NULL pointer to those functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* When passing a struct that should not be modified, I usually use a const pointer.
* Strings however are small 2-word objects and they are often now already passed via separate
  `gchar*` and gsize parameters. So it is consistent to pass teco_string_t by value as well.
  A teco_string_t will usually fit into registers just like a pointer.
* It's now obvious which function just _uses_ and which function _modifies_ a string.
  There is also no chance to pass a NULL pointer to those functions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Curses: use INDIC_SQUIGGLE to render rubbed-out command lines</title>
<updated>2025-12-28T19:57:31+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2025-12-28T12:03:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=d94521fb5b5a5c3a6315c425dba5f1218f0dd323'/>
<id>d94521fb5b5a5c3a6315c425dba5f1218f0dd323</id>
<content type='text'>
* This is still rendered as underlined text.
* It uses a new Scinterm upstream feature, so we can
  switch back to the upstream repo.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* This is still rendered as underlined text.
* It uses a new Scinterm upstream feature, so we can
  switch back to the upstream repo.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed clicking the "(Unnamed)" buffer in 0EB popups</title>
<updated>2025-12-23T12:54:17+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2025-12-23T12:54:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=0c89fb700957e411885e7e7835e15f441e8b5e84'/>
<id>0c89fb700957e411885e7e7835e15f441e8b5e84</id>
<content type='text'>
* When constructing the list of popup items, the unnamed buffer is stored as the empty string
  instead of a prerendered "(Unnamed)".
  Using the empty string simplifies autocompletions, which will actually have to insert nothing
  at all (in addition to terminating the string).
* Since unnamed buffers are now special in the popup list, we can render them with special
  icons as well.
  Currently, only on Curses we use a file symbol with a question mark.
  There doesn't appear to be a fitting standard Freedesktop icon to use on GTK and there
  isn't even any fitting standard emblem to lay over the default file icon.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* When constructing the list of popup items, the unnamed buffer is stored as the empty string
  instead of a prerendered "(Unnamed)".
  Using the empty string simplifies autocompletions, which will actually have to insert nothing
  at all (in addition to terminating the string).
* Since unnamed buffers are now special in the popup list, we can render them with special
  icons as well.
  Currently, only on Curses we use a file symbol with a question mark.
  There doesn't appear to be a fitting standard Freedesktop icon to use on GTK and there
  isn't even any fitting standard emblem to lay over the default file icon.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixup: renamed "backups" to "recovery files"</title>
<updated>2025-12-19T22:25:48+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2025-12-19T22:25:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=2592ef74ab2eba57c32fe21993ce01e9698b106f'/>
<id>2592ef74ab2eba57c32fe21993ce01e9698b106f</id>
<content type='text'>
* Other editors call "backup files" previous copies of saved files.
  This role would be served by savepoint files in SciTECO.
* Likewise filename~ would point to such a backup file.
  It therefore makes sense that savepoint files also end in tildes (.teco-n-filename~).
* Security copies of modified buffers would be called "auto-saves" (Emacs) or
  "swap files" (Vim).
  Both of these terms is IMHO misleading, so SciTECO now uses the
  term "recovery file".
* "Recovery files" are now named #filename# just like in Emacs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Other editors call "backup files" previous copies of saved files.
  This role would be served by savepoint files in SciTECO.
* Likewise filename~ would point to such a backup file.
  It therefore makes sense that savepoint files also end in tildes (.teco-n-filename~).
* Security copies of modified buffers would be called "auto-saves" (Emacs) or
  "swap files" (Vim).
  Both of these terms is IMHO misleading, so SciTECO now uses the
  term "recovery file".
* "Recovery files" are now named #filename# just like in Emacs.
</pre>
</div>
</content>
</entry>
</feed>
