Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix make-hash-table for *context-menu-commands* #3247

Merged
merged 1 commit into from
Nov 6, 2023

Conversation

defaultxr
Copy link
Contributor

Description

Since context menu labels are strings, :test should be equal rather than the default eql.

Discussion

Without this change, re-running ffi-add-context-menu-command causes additional context menu items to be added with the same label.

Checklist:

Everything in this checklist is required for each PR. Please do not approve a PR that does not have all of these items.

  • Git hygiene:
    • I have pulled from master before submitting this PR
    • There are no merge conflicts.
  • I've added the new dependencies as:
    • ASDF dependencies,
    • Git submodules,
      cd /path/to/nyxt/checkout
      git submodule add https://gitlab.common-lisp.net/nyxt/py-configparser _build/py-configparser
    • and Guix dependencies.
  • My code follows the style guidelines for Common Lisp code. See:
  • I have performed a self-review of my own code.
  • My code has been reviewed by at least one peer. (The peer review to approve a PR counts. The reviewer must download and test the code.)
  • Documentation:
    • All my code has docstrings and :documentations written in the aforementioned style. (It's OK to skip the docstring for really trivial parts.)
    • I have updated the existing documentation to match my changes.
    • I have commented my code in hard-to-understand areas.
    • I have updated the changelog.lisp with my changes if it's anything user-facing (new features, important bug fix, compatibility breakage).
      • Changelog update should be a separate commit.
    • I have added a migration.lisp entry for all compatibility-breaking changes.
    • (If this changes something about the features showcased on Nyxt website) I have these changes described in the new/existing article at Nyxt website or will notify one of maintainters to do so.
  • Compilation and tests:
    • My changes generate no new warnings.
    • I have added tests that prove my fix is effective or that my feature works. (If possible.)
    • I ran the tests locally ((asdf:test-system :nyxt) and (asdf:test-system :nyxt/gi-gtk)) and they pass.

Since context menu labels are strings, `:test` should be `equal` rather than the
default `eql`.
@aadcg
Copy link
Member

aadcg commented Nov 5, 2023

@defaultxr thank you for the fix. Can you please replace equal with string-equal?

@defaultxr
Copy link
Contributor Author

@aadcg No, I can't. As per the CLHS documentation for make-hash-table, the test argument is "a designator for one of the functions eq, eql, equal, or equalp.".

CL-USER> (make-hash-table :test #'string-equal) ;=> Unknown :TEST for MAKE-HASH-TABLE: #<FUNCTION STRING-EQUAL>

@defaultxr
Copy link
Contributor Author

If you would rather it be case-insensitive, I can change equal to equalp.

@aadcg aadcg merged commit cc1fc71 into atlas-engineer:master Nov 6, 2023
2 checks passed
@aadcg
Copy link
Member

aadcg commented Nov 6, 2023

Thanks @defaultxr.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants