simon-git: puzzles (main): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Thu Jul 13 08:13:04 BST 2023


TL;DR:
  a95796e osx.m: avoid division by zero in startConfigureSheet.

Repository:     https://git.tartarus.org/simon/puzzles.git
On the web:     https://git.tartarus.org/?p=simon/puzzles.git
Branch updated: main
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2023-07-13 08:13:04

commit a95796ebca53a7b7e0412860f3a38ec518d838be
web diff https://git.tartarus.org/?p=simon/puzzles.git;a=commitdiff;h=a95796ebca53a7b7e0412860f3a38ec518d838be;hp=61e9c782487ea982498955b93d1b94921131059e
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Jul 13 08:09:17 2023 +0100

    osx.m: avoid division by zero in startConfigureSheet.
    
    When we set up a configuration sheet, we track the minimum overall
    width that the controls will fit into (in a variable 'totalw'), and
    separately, the minimum width needed by each of the left and right
    columns containing control labels and actual controls ('leftw' and
    'rightw'). If totalw > leftw+rightw at the end of the process, then we
    must expand the two columns so that they have the right sum.
    
    However, sometimes leftw+rightw can be zero, while totalw > 0. This
    occurs if _no_ control in the box was of a type that used the left and
    right columns for different things, so that the entire loop over the
    controls only incremented totalw, and not leftw or rightw. For
    example, in a puzzle such as Cube that defines no preferences of its
    own, the only control in the preferences pane is midend.c's standard
    "Keyboard shortcuts without Ctrl" preference, which is C_BOOLEAN and
    only uses totalw.
    
    In that situation, the code for proportionate distribution of the
    excess divides by zero. So it needs a special case.

 osx.m | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)



More information about the tartarus-commits mailing list