)]}'
{
  "commit": "07ba2622e073850bbdd6acd8dff88b391cc5ad5c",
  "tree": "c22ace59f80a927fcac12e24862c4d8c4245d9a8",
  "parents": [
    "aafe6c300e59ed1b4407c71917fb2034fdc7798a"
  ],
  "author": {
    "name": "Laslo Hunhold",
    "email": "dev@frign.de",
    "time": "Mon Nov 21 08:53:14 2022 +0100"
  },
  "committer": {
    "name": "Laslo Hunhold",
    "email": "dev@frign.de",
    "time": "Mon Nov 21 08:53:14 2022 +0100"
  },
  "message": "Split bidi-level-processing into preprocessing and line step\n\nThe bidirectional algorithm is a bit convoluted in this regard,\nbut the canonical choice for the implementation is to do\npreprocessing on all paragraphs first (applying all rules up to\nL1.3) and applying rule L1.4 separately.\n\nThe reason for this is that rule L1.4 requires the knowledge\nabout line break positions, which we don\u0027t have (yet). We could\ntake it as a parameter for the preprocessing-function, however,\nline breaks may change often (think of an ncurses-context with\nwindow resizes), making constant complete reprocessings very\nwasteful.\n\nThus, the line-specific processing is put into a separate\nfunction. This way, the user passes each individual line together\nwith its preprocessing data.\n\nRule L1.4 will be implemented in a later commit.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fbb8e4ac3a1d76b6514d7d7921cfd619a73aa9b7",
      "old_mode": 33188,
      "old_path": "grapheme.h",
      "new_id": "f8d39bd6dbc2df5c7070c54fa16a61b2bb1af172",
      "new_mode": 33188,
      "new_path": "grapheme.h"
    },
    {
      "type": "modify",
      "old_id": "fa468532891e6e5836fc19d996df4b3b479ec661",
      "old_mode": 33188,
      "old_path": "src/bidirectional.c",
      "new_id": "be19a59e50ec615e5f90872d8db59e7abe4c5db6",
      "new_mode": 33188,
      "new_path": "src/bidirectional.c"
    },
    {
      "type": "modify",
      "old_id": "9240b9d48a189880a1117bee671438d2b67ac196",
      "old_mode": 33188,
      "old_path": "test/bidirectional.c",
      "new_id": "c32cacd1a082023cba92e379057fcadc592b912b",
      "new_mode": 33188,
      "new_path": "test/bidirectional.c"
    }
  ]
}
