• exec/xtrn_sec.js

    From rswindell@VERT to CVS commit on Sat Mar 14 01:28:56 2020
    exec xtrn_sec.js 1.21 1.22
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv24290

    Modified Files:
    xtrn_sec.js
    Log Message:
    Forced-reset the console attributes when returning from a door.


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Sun Mar 22 02:45:25 2020
    exec xtrn_sec.js 1.22 1.23
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv3690

    Modified Files:
    xtrn_sec.js
    Log Message:
    This change allow with an upcoming change to text.dat allows > 25 chars
    of external program names to be displayed:
    32 chars in multicolumn mode
    40 chars in singlecolumn mode

    New modopts.ini [xtrn_sec] keys:
    - multicolumn_separator (default: " ")
    - singlecolumn_margin (default: 7)
    - singlecolumn_height (default: screen rows - singlecolumn_margin)
    - singlecolumn_lstfmt (default: "\x01h\x01c%3u \xb3 \x01n\x01c%s\x01h ")



    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Wed Apr 22 16:01:18 2020
    exec xtrn_sec.js 1.23 1.24
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv19256

    Modified Files:
    xtrn_sec.js
    Log Message:
    For Nelgin: if text/menu/xtrn#_head.* exists, display it before the auto-generated program list for that section # or the custom menu for that section.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Wed Apr 22 18:33:31 2020
    exec xtrn_sec.js 1.24 1.25
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv7529

    Modified Files:
    xtrn_sec.js
    Log Message:
    Allow all the displayed strings to be over-ridden with modopts.ini [xtrn_sec] key values (the defaults of which mostly come from text.dat).

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Wed Apr 22 18:58:48 2020
    exec xtrn_sec.js 1.25 1.26
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv10788

    Modified Files:
    xtrn_sec.js
    Log Message:
    Clear the screen from here (rather than depending on menu/header files or text.dat strings to do it) by default. Set "clear_screen = false" in
    [xtrn_sec] of modopts.ini to disable.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Sat May 9 03:05:15 2020
    exec xtrn_sec.js 1.27 1.28
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv18348

    Modified Files:
    xtrn_sec.js
    Log Message:
    Add hotspots to 2nd column, when multicolumn.


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Sat May 9 03:11:23 2020
    exec xtrn_sec.js 1.28 1.29
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv19425

    Modified Files:
    xtrn_sec.js
    Log Message:
    Define "use strict" - insure no \001's sneak into this file.


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Sun Sep 13 22:58:30 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/45afbcddaede90ca17cafd10
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Reset to attributes to normal (lightgray, black bg) before executing xtrns
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Tue Nov 3 12:44:51 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/8dfb469c0581ef03ec736dae
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Support text/menu/xtrn<sec-code>.* and text/menu/xtrn<sec-code>_head.* files

    Using the xtrn program section internal code protects against renumbering upon configuration changes (inserting/removing program sections).
    At Nelgin's suggestion/request.
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to Main/master on Tue Nov 24 15:37:04 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/dc70b7de09629773a2303acd
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Refactor commit b63b3bb3a85 (customizable xtrn program section menu)

    Use the text.dat strings that corresponded with the previous behavior
    (used by console.uselect()). The defaults include new-lines, so removed
    some hard-coded console.crlf() calls that were added. If you have a
    custom section_header_fmt, you'll likely need to add a \r\n to it.

    Allow the "External Program Section" title string to be customized
    (separately from section_header_fmt, e.g. for localization).

    Save/use the current section.

    Mouse-enable the program section list.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Nigel Reed@VERT to Git commit to main/sbbs/master on Mon Nov 30 18:18:25 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/15c4611531def3af43843599
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Add similar functionality to the xtrn<secnum>_head file but will
    display the file after the list of external programs.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Nov 30 18:18:25 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/0d0863d2a79c3803146b4173
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Merge branch 'nelgin/xtrn_tail' into 'master'

    Nelgin/xtrn tail

    See merge request main/sbbs!48
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Nov 30 18:37:03 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/b4fbc321e479305a3afe809b
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Support text/menu/xtrn*_tail even when xtrn<secnum|name> menu exists.

    Previously, the xtrn*_tail menu was only displayed in the programmatic menu mode.

    Also, using the P_NOERROR mode flag for bbs.menu() to simplify all the if/else logic.

    And use require() instead of load().
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Michael Long@VERT to Git commit to main/sbbs/master on Mon Nov 30 20:19:24 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/bab4a66824b99bb9f940d6d7
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    add global head and tail for both section menu and external program menu
    use options.clear_screen for clear instead of hardcoded value in SelectItemHdr remove redundant code for input in main section menu
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Nov 30 20:19:24 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/d995e889e9ad303dc1a01bde
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Merge branch 'mlong/xtrnheadtail' into 'master'

    add global head and tail for both section menu and external program menu

    See merge request main/sbbs!49
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Dec 6 14:30:20 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/3470d723eb6163b64fed0734
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    "center" feature/option added and text.dat section header suppression

    Add support for modopts.ini "center=true" option to center single-column program listing in the terminal.

    When a custom section header files (xtrn<sec>_head.*) is displayed, don't
    print the XtrnProgLstHdr string from the text.dat.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Dec 6 15:56:46 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/400c5e0b0f452096aeeeae55
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Give the section selection menu the same center & header suppression treatment

    Don't display the text.dat SelectItemHdr if an xtrn_sec_head.* file was shown. Center the sections and the "Which" prompt when the "center=true" modopts.ini option is set.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Michael Long@VERT to Git commit to main/sbbs/master on Fri Jan 1 18:21:34 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/62c559efa674be5d6e2fdcd1
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    If you aren't using a custom xtrn menu head per section, then you might fall back on a global one...but the prior logic would not display the actual section heading if it used a global (xtrn_head) file. If you are using xtrn_head, you don't have anything in there with a section name, so display the section name from code again
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri Jan 1 18:21:34 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/b71a818491f7a3b500d89491
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Merge branch 'xtrnhead' into 'master'

    If using xtrn_head, display section name/header as well

    See merge request main/sbbs!67
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri Jan 1 20:10:28 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/b3b4d332acd1b61cdbbd6d8d
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Please test before you commit and a submit merge request.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wed Jan 26 20:22:19 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/0deb94c785d2f6223a00e258
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Fix default program section selection

    Hitting [Enter] is supposed to select the current/default program
    section. Instead, it was quitting. This was apparently broken as
    part of the xtrn_sec.js refactor a year or so ago by/with mlong.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Jul 3 16:04:04 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/0021b378b3edf3ebd36df174
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Add a carriage-return to the mouse hotspot value when needed

    For program listings, if the program number is fewer digits than the total program list count (number of digits), then a carriage return is required
    to launch that program. Automate this for the mouse hotspot value, so clicking Program #1 in a list of 10+ will just run that program and not require the
    user to hit the Enter key.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Jul 16 17:43:28 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/8651f2afd696e49a0eb783eb
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Don't treat Enter as choosing default section when no prompt was shown

    As pointed out via DOVE-Net by DesotoFireflite (VALHALLA):
    When xtrn_sec.* display file/menu is used, there's no auto-generated
    prompt (with a default section number indicated). So hitting Enter
    in this case and having the previous/default program section selected
    would be surprising behavior to a user. So, only support a default
    section selection when there was no xtrn_sec.* menu/display file.
    ---
    ■ 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 Sat Mar 2 18:40:01 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/ec6e617029885b4e1ebd7a0e
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Don't try to center on terminals < 80 columns wide
    ---
    ■ 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 Wed Jan 1 23:47:29 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/5acb54dd1cbaa6e4c678f1d3
    Modified Files:
    exec/xtrn_sec.js
    Log Message:
    Fix typo
    ---
    ■ 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 Fri Apr 18 17:18:20 2025
    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 Sat Apr 19 13:25:59 2025
    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 Wed Apr 23 12:23:55 2025
    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 Wed Apr 23 12:57:10 2025
    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 Tue Jan 20 22:26:38 2026
    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 Tue Jul 21 01:49:54 2026
    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 Thu Jul 23 00:08:00 2026
    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 Thu Jul 23 00:08:00 2026
    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