• exec/xtrn_sec.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Friday, April 18, 2025 17:18:20
    https://gitlab.synchro.net/main/sbbs/-/commit/ce108b52438d07f19ec3efc8
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Add 'indent_list_items' option

    For use when multi/singlecolumn_fmt strings don't contain padded integer specifiers (e.g. %3u).

    Fix issue #911

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Saturday, April 19, 2025 13:25:59
    https://gitlab.synchro.net/main/sbbs/-/commit/2fbab2bb71549f3edd74184f
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Renamed 'indent_list_items' option to 'align_prog_list'

    Add 'align_section_list' option too for good measure, for instances where 'section_fmt' (by default, the text.dat SelectItemFmt string) does not contain any integer alignment/padding (e.g. %3u).

    This is related to issue #911

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wednesday, April 23, 2025 12:23:55
    https://gitlab.synchro.net/main/sbbs/-/commit/0b50d69f76f17dc94ae0b3a1
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Support multicolumn xtrn program *section* listing

    While we've long supported multicolumn program lists (for long lists
    that would likely cause a user's terminal to scroll), we've never supported multicolumn external program *section* listings.

    So if the multicolumn option is set to true (the default) and the list of sections is longer than would fit on the user's terminal screen, split into
    2 columns (just two).

    This introduces the new configurable string-option: multicolumn_section_fmt

    This fixes issue #915

    Hopefully Nelgin will be in a better mood as a result.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wednesday, April 23, 2025 12:57:10
    https://gitlab.synchro.net/main/sbbs/-/commit/b844660207c360d4ad3429df
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Define 'xtrn_sec' in the global JS scope when an section is listed

    This allows the use of JS:xtrn_sec @-code in the 'which' prompt string.
    For Nelgin.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tuesday, January 20, 2026 22:26:38
    https://gitlab.synchro.net/main/sbbs/-/commit/d9a7709c7f9afc0d7af6ec9b
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Remove extraneous character ("statement")

    added in commit 0b50d69f76f17dc94ae0b3a16253801685d2a190

    Caught by running libmozjs in "strict" mode (which is stricter than "use strict")

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tuesday, July 21, 2026 01:49:54
    https://gitlab.synchro.net/main/sbbs/-/commit/0d838a1664d3281c45314e3c
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Fix centering (margin calculation) for widths not modulo 4

    e.g. program lists would be centered for a 116 column terminal, but not
    for a 117 column terminal.
    `

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thursday, July 23, 2026 00:08:00
    https://gitlab.synchro.net/main/sbbs/-/commit/08dab3e8d41ca038f76d4c9a
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    xtrn_sec.js: center the program list on its content, not screen/4

    The single-column program list used a fixed left margin of screen_columns/4, which only lands near center at 80 columns and drifts steadily left as the terminal widens -- at 132 columns the list sits in the left third (left gap 32, right gap 69). It is not well centered even at 80 (left 19, right 30).

    Measure the widest row's DISPLAYED width instead -- strip_ctrl() drops the zero-width \x01 attribute codes -- and split the remaining slack. That balances the list to within the odd-column rounding at every width, and stays correct when a sysop customizes singlecolumn_fmt (a cost column, different separators), because it measures the rendered rows rather than assuming a layout. This is the same measure-the-content approach the section list a few blocks down already uses.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thursday, July 23, 2026 00:08:00
    https://gitlab.synchro.net/main/sbbs/-/commit/0986ce16e012c80d9deec348
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    xtrn_sec.js: center the section list on its content too

    Follow-up to centering the program list. The section list used
    (screen_columns - longest)/2 - 5, where longest was the longest section NAME and 5 was a guessed allowance for the "%3d: " numbering. That misjudges the real row width both ways: with the default format the list sits a few columns left of center at every width, and a customized section_fmt (wider numbering,
    a suffix) throws it off in the other direction.

    Measure the widest rendered row with strip_ctrl(), exactly as the program list now does, and split the slack -- dead center regardless of screen width or how section_fmt is themed. The separate longest-name precomputation at the top of external_section_menu() is now unused and removed.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net