This fixes two bugs:
1. An invalid offset could be specified which wasn't checked to be in
the bounds of the config blob.
2. The data_len check was incorrect as it would allow reading one byte
past the config blob lenght.
Before the changes the following operation wouldn't fail:
Assuming we have blob of 64 bytes size and attempt a read with an
offset of 32 and data_len of 32, we actually try to read 32 bytes
starting from the 33. byte in the config blob. This reads exactly
one byte past array. Therefore we have to subtract one byte the get
the correct length.
* mj6xy.h: convert tabs to spaces
* info.json: convert tabs to spaces
* info.json: apply friendly formatting
Whitespace-only change.
* rename LAYOUT_60_ansi_7u_spc to LAYOUT_60_ansi_tsangan
- rename `60_ansi_7u_spc` keymap to `default_ansi_tsangan`
* add K31 position to LAYOUT_60_iso
* rename LAYOUT_60_iso_7u_spc_split_rshift to LAYOUT_60_iso_tsangan_split_rshift
- rename `60_iso_7u_spc_split_rshift` keymap to `default_iso_tsangan_split_rshift`
* add K31 position to LAYOUT_60_iso_arrow
* add K31 position to LAYOUT_60_iso_arrow_6u_spc
* add K31 position to LAYOUT_60_iso_arrow_3u_spc
* refactor LAYOUT_60_iso_7u_spc into LAYOUT_60_iso_tsangan
- add K31 position to layout macro
- rename `60_iso_7u_spc` keymap to `default_iso_tsangan`
* add K31 position to LAYOUT_64_iso
- rename `64_iso` keymap to `default_64_iso`
* add K31 position to LAYOUT_64_iso_3u_spc
- rename `64_iso_3u_spc` keymap to `default_64_iso_3u_spc`
* add K31 position to LAYOUT_64_iso_split_3u_spc
- rename `64_iso_split_3u_spc` keymap to `default_64_iso_split_3u_spc`
* remove LAYOUT_60_iso_1u_lshift_split_rshift macro and keymap
Functionally identical to `LAYOUT_60_iso_split_rshift`.
* remove LAYOUT_60_iso_1u_lshift_7u_spc_split_rshift macro and keymap
Functionally identical to `LAYOUT_60_iso_tsangan_split_rshift`.
* rename LAYOUT_60_ansi_7u_spc_split_bs to LAYOUT_60_ansi_tsangan_split_bs
- rename `60_ansi_7u_spc_split_bs` keymap to `default_60_ansi_tsangan_split_bs`
* add K31 position to LAYOUT_60_iso_split_bs
* rename LAYOUT_60_iso_7u_spc_split_bs_rshift to LAYOUT_60_iso_tsangan_split_bs_rshift
- rename `60_iso_7u_spc_split_bs_rshift` keymap to `default_60_iso_tsangan_split_bs_rshift`
* add K31 position to LAYOUT_60_iso_arrow_split_bs
* add K31 position to LAYOUT_60_iso_arrow_3u_spc_split_bs
- rename `60_iso_arrow_3u_spc_split_bs` keymap to `default_60_iso_arrow_3u_spc_split_bs`
* add K31 position to LAYOUT_60_iso_arrow_split_bs_3u_spc
- rename `60_iso_arrow_split_bs_3u_spc` keymap to `default_60_iso_arrow_split_bs_3u_spc`
* refactor LAYOUT_60_iso_7u_spc_split_bs into LAYOUT_60_iso_tsangan_split_bs
- add K31 position to layout macro
- rename `60_iso_7u_spc_split_bs` keymap to `default_60_iso_tsangan_split_bs`
* add K31 position to LAYOUT_64_iso_split_bs
- rename `64_iso_split_bs` keymap to `default_64_iso_split_bs`
* add K31 position to LAYOUT_64_iso_3u_spc_split_bs
rename `64_iso_3u_spc_split_bs` keymap to `default_64_iso_3u_spc_split_bs`
* add K31 position to LAYOUT_64_iso_split_bs_3u_spc
- rename `64_iso_split_bs_3u_spc` keymap to `default_64_iso_split_bs_3u_spc`
* remove LAYOUT_60_ansi_arrow_6u_spc macro and keymap
Functionally identical to `LAYOUT_60_ansi_arrow`.
* remove LAYOUT_64_ansi_6u_spc macro and keymap
Functionally identical to `LAYOUT_64_ansi`.
* remove LAYOUT_60_iso_arrow_6u_spc macro and keymap
Functionally identical to `LAYOUT_60_iso_arrow`.
* remove LAYOUT_64_iso_6u_spc macro and keymap
Functionally identical to `LAYOUT_64_iso`.
* remove LAYOUT_60_ansi_arrow_6u_spc_split_bs macro and keymap
Functionally identical to `LAYOUT_60_ansi_arrow_split_bs`.
* remove LAYOUT_64_ansi_6u_spc_split_bs macro and keymap
Functionally identical to `LAYOUT_64_ansi_split_bs`.
* remove LAYOUT_60_iso_arrow_6u_spc_split_bs macro and keymap
Functionally identical to `LAYOUT_60_iso_arrow_split_bs`.
* remove LAYOUT_64_iso_6u_spc_split_bs macro and keymap
Functionally identical to `LAYOUT_64_iso_split_bs`.
* remove LAYOUT_60_iso_1u_lshift_split_bs_rshift macro and keymap
Functionally identical to `LAYOUT_60_iso_split_bs_rshift`.
* remove LAYOUT_60_iso_1u_lshift_7u_spc_split_bs_rshift macro and keymap
Functionally identical to `LAYOUT_60_iso_tsangan_split_bs_rshift`.
* refactor keymaps
- convert tabs to spaces
- update keycode grid alignment
* remove LAYOUT_60_ansi_arrow_3u_spc macro and keymap
Subset of `LAYOUT_60_ansi_arrow_3u_spc_split_bs`.
* remove LAYOUT_60_iso_arrow_3u_spc macro and keymap
Subset of `LAYOUT_60_iso_arrow_3u_spc_split_bs`.
* remove LAYOUT_60_iso_tsangan_split_bs macro and keymap
Subset of `LAYOUT_60_iso_tsangan_split_bs_rshift`.
* remove LAYOUT_60_iso_tsangan_split_rshift macro and keymap
Subset of `LAYOUT_60_iso_tsangan_split_bs_rshift`.
* remove LAYOUT_64_ansi_3u_spc macro and keymap
Subset of `LAYOUT_64_ansi_3u_spc_split_bs`.
* remove LAYOUT_64_iso_3u_spc macro and keymap
Subset of `LAYOUT_64_iso_3u_spc_split_bs`.
* remove LAYOUT_60_iso_split_bs macro and keymap
Subset of `LAYOUT_60_iso_split_bs_rshift`.
* remove LAYOUT_60_iso_split_rshift macro and keymap
Subset of `LAYOUT_60_iso_split_bs_rshift`.
* add LAYOUT_60_ansi_split_bs_rshift macro and keymap
* remove LAYOUT_60_ansi_split_bs macro and keymap
Subset of `LAYOUT_60_ansi_split_bs_rshift`.
* add LAYOUT_60_tsangan_hhkb macro and keymap
* remove LAYOUT_60_ansi_tsangan_split_bs macro and keymap
Subset of `LAYOUT_60_tsangan_hhkb`.
* standardize keymap names
Rename all keymaps per QMK guidelines (e.g. keymap using `LAYOUT_60_ansi_arrow` should be named `default_60_ansi_arrow`).
* add LAYOUT_all; refactor default keymap
Add a `LAYOUT_all` macro, and update the `default` keymap to use the new macro.
* refactor via keymap
Update the `via` keymap to match the behaviour of the `default` keymap.
* improve keyboard readme
- fix broken image reference
- improve grammar on keyboard description
- fix Hardware Availability link
- fix `make` instructions
- add bootloader and flashing instructions
* fix default_60_tsangan_hhkb keymap
Fix a keycode count mismatch.
* mj6xy.h: add matrix diagram
* KC_GESC -> QK_GESC per fauxpark
* KC_SLCK -> KC_SCRL per fauxpark