Subject: bug#43919: 27.1.50; Customize save may add (sort-fold-case t t)

From: Teemu Likonen <[email-masked]>
Date: Sun, 11 Oct 2020 08:54:08 +0300

This issue shows when initialization file has (custom-set-variables ...)
with sort-fold-case set, like this:

    (custom-set-variables
     '(sort-fold-case t))

Saving some other variable through the customize interface will add
additional "t" symbol to the sort-fold-case form:

    (custom-set-variables
     ;; Other variables...
     '(sort-fold-case t t))

Some other customize changes change the form back to (sort-fold-case t),
that is, with single "t" symbol.

Everything seems to be working but this behavior is harmful when Emacs
initialization files are in version control system (like Git) and
sort-fold-case variable keeps changing back and forth.

You can reproduce the bug with this recipe:

 1. Create ~/.emacs.el file with the following content (also attached
    file).

        (custom-set-variables
         '(sort-fold-case t))

 2. Start Emacs.

 3. Use customize interface to change and save some other variable, for
    example:

        M-x customize-variable RET show-trailing-whitespace RET

    Change variable's value to "t" and save it "for future sessions".

 4. Now the custom-set-variables form in ~/.emacs.el file looks like
    this:

        (custom-set-variables
         '(show-trailing-whitespace t)
         '(sort-fold-case t t))

    See the added "t" in sort-fold-case.