<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/src/interface-curses/curses-info-popup.c, branch v2.5.2</title>
<subtitle>Scintilla-based Text Editor and COrrector</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/'/>
<entry>
<title>fixup: high-color-pair support was still broken in Scinterm</title>
<updated>2026-01-30T13:36:20+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-30T13:22:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=e624826447d83f1b79e5442d3695a7528cf578cf'/>
<id>e624826447d83f1b79e5442d3695a7528cf578cf</id>
<content type='text'>
* Also updated A_XXX attributes to WA_XXX, where the "new" wattr_set() APIs
  are used. This doesn't make a difference on ncurses and PDCurses, but the
  X/Open standard demands it.
* Allow color pairs up to 32767 instead of only up to 32766.
* We now always require Curses wide-character APIs due to Scinterm,
  which has to use mvwin_wch(). We were practically depending on wide-character
  support anyway, so this shouldn't really restrict portability.
* teco_curses_add_wc() has been simplified, now that we can rely on
  wide-char APIs. Perhaps it should be removed altogether?
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Also updated A_XXX attributes to WA_XXX, where the "new" wattr_set() APIs
  are used. This doesn't make a difference on ncurses and PDCurses, but the
  X/Open standard demands it.
* Allow color pairs up to 32767 instead of only up to 32766.
* We now always require Curses wide-character APIs due to Scinterm,
  which has to use mvwin_wch(). We were practically depending on wide-character
  support anyway, so this shouldn't really restrict portability.
* teco_curses_add_wc() has been simplified, now that we can rely on
  wide-char APIs. Perhaps it should be removed altogether?
</pre>
</div>
</content>
</entry>
<entry>
<title>Curses: support up to 32767 color pairs</title>
<updated>2026-01-26T18:50:03+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-01-26T18:50:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=7fa9feae452ea05a083b17d3f0cdf69bf5d37822'/>
<id>7fa9feae452ea05a083b17d3f0cdf69bf5d37822</id>
<content type='text'>
* Instead of ORing COLOR_PAIR() into attributes, always pass separate `pair` arguments.
  Since they are `short` this allows for up to 32767 color pairs.
  Previously, we could only count on 256 color pairs (or 128 for SciTECO and Scinterm each).
* Analoguous changes have been made to Scinterm.
  See also https://github.com/orbitalquark/scinterm/pull/37
  Since it only correctly checks for overflows at the end of the color pair space, we allocate the second
  half of that space to Scinterm.
  It is now very unlikely to overflow the color pair space, though.
* This wasn't critical of course since even the 128 pairs would be unlikely to exhaust as long
  as we support only 16 ANSI colors.
  Scinterm however supports arbitrary RGB colors and we might want to do so soon as well.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Instead of ORing COLOR_PAIR() into attributes, always pass separate `pair` arguments.
  Since they are `short` this allows for up to 32767 color pairs.
  Previously, we could only count on 256 color pairs (or 128 for SciTECO and Scinterm each).
* Analoguous changes have been made to Scinterm.
  See also https://github.com/orbitalquark/scinterm/pull/37
  Since it only correctly checks for overflows at the end of the color pair space, we allocate the second
  half of that space to Scinterm.
  It is now very unlikely to overflow the color pair space, though.
* This wasn't critical of course since even the 128 pairs would be unlikely to exhaust as long
  as we support only 16 ANSI colors.
  Scinterm however supports arbitrary RGB colors and we might want to do so soon as well.
</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>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>Curses: fixed displaying the popup with multi-line command lines</title>
<updated>2025-11-18T00:10:34+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2025-11-18T00:10:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=b6e364efeedd6466bba2f995c7a7976f7b54363e'/>
<id>b6e364efeedd6466bba2f995c7a7976f7b54363e</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 positioning of auto completion popups above the command line</title>
<updated>2025-11-09T21:38:28+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2025-11-09T21:38:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c39f8bdbef0cd17f4b864bbea2398f2b0f099c18'/>
<id>c39f8bdbef0cd17f4b864bbea2398f2b0f099c18</id>
<content type='text'>
This was broken if you configured a command line with a height &gt; 1.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was broken if you configured a command line with a height &gt; 1.
</pre>
</div>
</content>
</entry>
<entry>
<title>Curses: replaced getmaxyx(stdscr) with LINES and COLS</title>
<updated>2025-11-08T12:00:47+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2025-11-08T11:10:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c80a29ba487e7767af0a4ee00d8e42c3c737283b'/>
<id>c80a29ba487e7767af0a4ee00d8e42c3c737283b</id>
<content type='text'>
These are equivalent, but LINES and COLS are shorter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are equivalent, but LINES and COLS are shorter.
</pre>
</div>
</content>
</entry>
<entry>
<title>further improved monochrome terminal support: fixed reverse text on reverse backgrounds</title>
<updated>2025-03-16T12:13:39+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2025-03-16T12:13:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=327d749ce03d25897447ec36ed4c46c0da4a72cb'/>
<id>327d749ce03d25897447ec36ed4c46c0da4a72cb</id>
<content type='text'>
* Unfortunately we cannot use `wbkgdset(win, A_REVERSE)` if we plan to
  use reverse text on this background, i.e. if we want to cancel out the background A_REVERSE.
* SciTECO therefore no longer uses background attributes, but only foreground attributes.
  When setting a reverse text, we XOR A_REVERSE into the previous attributes.
* This fixes control characters especially in the info line and popups, as well as rendering
  of the popup scroll bars.
* The command-line should now be rendered properly even on a dark-on-bright color theme
  (which does not yet exist).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Unfortunately we cannot use `wbkgdset(win, A_REVERSE)` if we plan to
  use reverse text on this background, i.e. if we want to cancel out the background A_REVERSE.
* SciTECO therefore no longer uses background attributes, but only foreground attributes.
  When setting a reverse text, we XOR A_REVERSE into the previous attributes.
* This fixes control characters especially in the info line and popups, as well as rendering
  of the popup scroll bars.
* The command-line should now be rendered properly even on a dark-on-bright color theme
  (which does not yet exist).
</pre>
</div>
</content>
</entry>
<entry>
<title>Curses: avoid completing filenames when clicking the upper border of the popup window</title>
<updated>2025-02-23T23:24:22+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2025-02-23T23:24:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=53dfbfec4bd58615eb049ed0cd06fdf8e2844360'/>
<id>53dfbfec4bd58615eb049ed0cd06fdf8e2844360</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
