Skip to content

Instantly share code, notes, and snippets.

@flatcap
Last active June 27, 2021 13:36
Show Gist options
  • Save flatcap/72ffafc0fb4bb6942bceab8fc67851b7 to your computer and use it in GitHub Desktop.
Save flatcap/72ffafc0fb4bb6942bceab8fc67851b7 to your computer and use it in GitHub Desktop.
Functions that need upgrading to mutt_qsort_r()

Good

These sorting functions don't rely on global variables.

maildir_parse_dir()

  • Uses: ARRAY_SORT()
  • Sort:
    • maildir_cmp_inode()

mh_delayed_parsing()

  • Uses: ARRAY_SORT()
  • Sort:
    • mh_cmp_path()

commands_register()

  • Uses: ARRAY_SORT()
  • Sort:
    • commands_cmp()

Bad

These sorting functions use global variables.

dlg_select_gpgme_key()

  • Uses: qsort()
  • Global: (c_pgp_sort_keys & SORT_REVERSE)
  • Sort:
    • crypt_compare_address_qsort()
    • crypt_compare_date_qsort()
    • crypt_compare_trust_qsort()
    • crypt_crypt_compare_keyid_qsort() -- naming!

dlg_select_pgp_key()

  • Uses: qsort()
  • Global: (c_pgp_sort_keys & SORT_REVERSE)
  • Sort:
    • pgp_compare_address_qsort()
    • pgp_compare_date_qsort()
    • pgp_compare_keyid_qsort()
    • pgp_compare_trust_qsort()

sb_sort_entries()

  • Uses: ARRAY_SORT()
  • Global: (sort & SORT_REVERSE)
  • Sort:
    • sb_sort_count()
    • sb_sort_desc()
    • sb_sort_flagged()
    • sb_sort_order()
    • sb_sort_path()
    • sb_sort_unread()

alias_array_sort() / alias_get_sort_function()

  • Uses: ARRAY_SORT()
  • Global: (sort_alias & SORT_REVERSE)
  • Sort:
    • alias_sort_address()
    • alias_sort_name()
    • alias_sort_name()
    • alias_sort_unsort()

Ugly

This sort function takes a function multiplexor.

browser_sort()

  • Uses: ARRAY_SORT()
  • Global: (c_sort_browser & SORT_REVERSE)
  • Sort: browser_compare()
    • browser_compare_count()
    • browser_compare_count_new()
    • browser_compare_date()
    • browser_compare_desc()
    • browser_compare_order()
    • browser_compare_size()
    • browser_compare_subject()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment