• fix: store and execute multiline commands in pos bank
    gates / consistency-and-conventions (push) Successful in 20s

    gitea-actions released this 2026-09-12 14:25:40 +02:00

    bank.env is line-oriented (name|description|command) so commands with
    real newlines spanned records: bank_load truncated the command to its
    first line and the remaining script lines became bogus entries. The
    bank_get+cut -f3 retrieval path also truncated at embedded tabs.

    • lib/bank-lib.sh: v2 format escapes backslash->\ and newline->\n
      in the command field, writes # BANK_VERSION: 2; bank_load decodes
      with printf %b only for v2 files, so existing v1 files load raw
      (backward compatible, verified against the real ts-google entry).
    • bin/pos-bank: cmd_show/cmd_run/cmd_edit now read fields from the
      BANK_* arrays via bank_find instead of bank_get+cut.
    • tests/t-bank.sh: +13 checks (71 total) - multiline round-trip exact
      bytes, literal backslash-n, v1 raw-backslash compat, v1+re-save
      byte-identical, CLI show/run full script.
    Downloads