Subject: bug#23833: closed (Re: bug#23833: 24.5; assoc-string with CASE-FOLD may fail)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 23 Jun 2016 15:13:02 +0000

Your bug report

#23833: 24.5; assoc-string with CASE-FOLD may fail

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
23833: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23833
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#23833: 24.5; assoc-string with CASE-FOLD may fail
From: Eli Zaretskii <[email-masked]>
To: Noam Postavsky <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Thu, 23 Jun 2016 18:11:34 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Noam Postavsky <[email-masked]>
> Date: Thu, 23 Jun 2016 08:26:22 -0400
> Cc: [email-masked]
> 
> assoc-string uses compare-strings, which uses upcase to ignore case,
> but upcase is not always the inverse of downcase:
> 
> (upcase (downcase "Ǳ")) ;=> "ǲ"
> ;; Or to put it another way
> (= (upcase (downcase ?\u01F1)) ?\u01F2) ;=> t
> 
> Same behaviour seen in emacs-25 and master

Thanks.

This is a documentation issue: both 'assoc-string' and
'compare-strings' had inaccuracies in their doc strings.  I fixed this
on the emacs-25 branch, and I'm marking this bug done.

Subject: 24.5; assoc-string with CASE-FOLD may fail
From: [email-masked]
To: [email-masked]
Date: Thu, 23 Jun 2016 21:01:03 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

`assoc-string' called with non-nil CASE-FOLD argument may fail to match
with downcased key.

(let (l)
  (dotimes (c (max-char))
    (or (let ((s (string c)))
          (assoc-string (downcase s) (list s) t))
        (setq l (cons c l))))
  l)
=>(497 458 455 452)

In GNU Emacs 24.5.1 (i686-pc-mingw32)
 of 2015-04-11 on LEG570
Windowing system distributor `Microsoft Corp.', version 6.0.6002
Configured using:
 `configure --prefix=/c/usr --host=i686-pc-mingw32'

Important settings:
  value of $LANG: JPN
  locale-coding-system: cp932

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:

Quit
C-h C-b is undefined

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils advice help-fns time-date japan-util
tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
w32notify w32 multi-tty emacs)

Memory information:
((conses 8 76911 6828)
 (symbols 32 17601 0)
 (miscs 32 34 127)
 (strings 16 11124 3996)
 (string-bytes 1 279109)
 (vectors 8 10463)
 (vector-slots 4 464483 4962)
 (floats 8 57 134)
 (intervals 28 185 22)
 (buffers 508 12))