patch 8.2.0559: clearing a struct is verbose
Problem: Clearing a struct is verbose.
Solution: Define and use CLEAR_FIELD() and CLEAR_POINTER().
diff --git a/src/diff.c b/src/diff.c
index 3d61d49..16389fd 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -939,14 +939,14 @@
goto theend;
// Only use the internal method if it did not fail for one of the buffers.
- vim_memset(&diffio, 0, sizeof(diffio));
+ CLEAR_FIELD(diffio);
diffio.dio_internal = diff_internal() && !diff_internal_failed();
diff_try_update(&diffio, idx_orig, eap);
if (diffio.dio_internal && diff_internal_failed())
{
// Internal diff failed, use external diff instead.
- vim_memset(&diffio, 0, sizeof(diffio));
+ CLEAR_FIELD(diffio);
diff_try_update(&diffio, idx_orig, eap);
}
@@ -1075,9 +1075,9 @@
xdemitconf_t emit_cfg;
xdemitcb_t emit_cb;
- vim_memset(¶m, 0, sizeof(param));
- vim_memset(&emit_cfg, 0, sizeof(emit_cfg));
- vim_memset(&emit_cb, 0, sizeof(emit_cb));
+ CLEAR_FIELD(param);
+ CLEAR_FIELD(emit_cfg);
+ CLEAR_FIELD(emit_cb);
param.flags = diff_algorithm;