- Comment style.
- Change 'heuristic' from 'int' to 'bool'.
- Remove the 'const' from the context parameter. Needed because in the
  fstrcmp case, the NOTE_INSERT and NOTE_DELETE macros modify fields
  in the context, and an extra indirection would only cost performance:
    #define EXTRA_CONTEXT_FIELDS \
      /* The number of elements inserted or deleted. */ \
      int xvec_edit_count; \
      int yvec_edit_count;
    #define NOTE_DELETE(ctxt, xoff) ctxt->xvec_edit_count++
    #define NOTE_INSERT(ctxt, yoff) ctxt->yvec_edit_count++
- In 'diag', keep two blocks of code in sync (lines 191 and 224).
- Undefine the macro USE_HEURISTIC after use.