]> git.ipfire.org Git - thirdparty/vim.git/commit
patch 9.2.0365: using int as bool v9.2.0365
authorHirohito Higashi <h.east.727@gmail.com>
Sun, 19 Apr 2026 20:10:20 +0000 (20:10 +0000)
committerChristian Brabandt <cb@256bit.org>
Sun, 19 Apr 2026 20:10:20 +0000 (20:10 +0000)
commit1966a1c8963f59c00a9f25d129bec90366205e1b
tree698785535cd1d27e35a14d314b47e2bb3796aee8
parent618a327ce6f6c7a47bdbf2a4f5d1c329d97e6037
patch 9.2.0365: using int as bool

Problem:  using int as bool
Solution: refactor: use bool type for internal flags in buf_T
          (Hirohito Higashi)

Change the type of 23 internal state flag fields in buf_T from int
to bool for improved type clarity and code readability.

These fields are pure boolean flags that are never accessed via the
option system's varp (which uses *(int *)varp = value), never compared
with int fields holding non-0/1 values, and never use tristate values.

Converted fields:
- State flags: b_dev_valid, b_saving, b_mod_set, b_new_change,
  b_marks_read, b_modified_was_set, b_did_filetype, b_keep_filetype,
  b_au_did_filetype, b_u_synced, b_scanned, b_p_initialized
- Characteristic flags: b_has_textprop, b_may_swap, b_did_warn,
  b_help, b_spell, b_shortname, b_has_sign_column, b_netbeans_file,
  b_was_netbeans_file, b_write_to_channel, b_diff_failed

All TRUE/FALSE assignments to these fields have been updated to
true/false accordingly. The type of temporary save variables
(e.g. help_save in tag.c) has also been adjusted to bool.

Option value fields (b_p_XXX) are kept as int because they are
accessed via the option system and some use tristate (-1) semantics.
Fields compared with int option values (b_start_eof, b_start_eol,
b_start_bomb) are also kept as int to preserve comparison integrity.

closes: #20020

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
27 files changed:
src/autocmd.c
src/buffer.c
src/bufwrite.c
src/change.c
src/channel.c
src/diff.c
src/drawscreen.c
src/ex_cmds.c
src/ex_docmd.c
src/fileio.c
src/help.c
src/insexpand.c
src/memline.c
src/netbeans.c
src/option.c
src/optionstr.c
src/popupwin.c
src/quickfix.c
src/sign.c
src/spell.c
src/structs.h
src/tag.c
src/terminal.c
src/textprop.c
src/undo.c
src/version.c
src/viminfo.c