Subject: bug#40600: 27.0.90; M-x strokes-list-strokes error

From: tsuucat <[email-masked]>
Date: Tue, 14 Apr 2020 00:51:17 +0900

I browsed Emacs source repository and found strokes.el package.
This is very awesome but I found a bug.

When two or more strokes are defined including string returning strokes, 
M-x strokes-list-strokes causes an error.

Reproduce steps:
1. emacs -Q
2. M-x strokes-global-set-stroke (and define a stroke and corresponding command(emacs-version))
3. M-x strokes-global-set-stroke-string (and define a stroke and corresponding string(emacs))
4. M-x strokes-list-strokes => error message
;; when (setq debug-on-error t)
Debugger entered--Lisp error: (wrong-type-argument symbolp "emacs")
  symbol-name("emacs")
  strokes-alphabetic-lessp((((6 . 0) (5 . 0) (4 . 0) (3 . 0) (2 . 0) (1 . 0) (0 . 1) (0 . 2) (0 . 3) (0 . 4) (0 . 5) (1 . 5) (2 . 6) (3 . 6) (4 . 6) (4 . 5) (5 . 4) (5 . 3) (6 . 3) (6 . 2) (6 . 1) (6 . 2) (6 . 3) (6 . 4) (7 . 5) (7 . 6) (8 . 6) (8 . 7) (8 . 8)) . emacs-version) (((5 . 2) (5 . 1) (4 . 1) (4 . 0) (3 . 0) (2 . 0) (2 . 1) (1 . 1) (1 . 2) (0 . 2) (0 . 3) (0 . 4) (0 . 5) (0 . 6) (0 . 7) (1 . 7) (2 . 7) (3 . 7) (4 . 7) (5 . 7) (6 . 7) (6 . 6) (7 . 5) (7 . 4) (7 . 5) (7 . 6) (7 . 7) (8 . 7) (8 . 8)) . "emacs"))
  sort(((((5 . 2) (5 . 1) (4 . 1) (4 . 0) (3 . 0) (2 . 0) (2 . 1) (1 . 1) (1 . 2) (0 . 2) (0 . 3) (0 . 4) (0 . 5) (0 . 6) (0 . 7) (1 . 7) (2 . 7) (3 . 7) (4 . 7) (5 . 7) (6 . 7) (6 . 6) (7 . 5) (7 . 4) (7 . 5) (7 . 6) (7 . 7) (8 . 7) (8 . 8)) . "emacs")) strokes-alphabetic-lessp)
  strokes-list-strokes(nil)
  funcall-interactively(strokes-list-strokes nil)
  call-interactively(strokes-list-strokes record nil)
  command-execute(strokes-list-strokes record)
  execute-extended-command(nil "strokes-list-strokes" "strokes-lis")
  funcall-interactively(execute-extended-command nil "strokes-list-strokes" "strokes-lis")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

Thanks.

--
tsuucat