From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#50752: 28.0.50; easy-menu-define lowers the menu-bar key Date: Tue, 19 Oct 2021 14:07:59 +0200 Message-ID: <87mtn5fc9s.fsf@gnus.org> References: <87bl4jvudm.fsf@gnus.org> <837dehp248.fsf@gnu.org> <87czo96shw.fsf@gnus.org> <87wnmh5bes.fsf@gnus.org> <87wnmh3p9k.fsf@gnus.org> <87v91tfzrw.fsf@gnus.org> <87r1chfz80.fsf@gnus.org> <83r1chcjof.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8163"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: stefan@marxist.se, shuguang79@qq.com, 50752@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Oct 19 14:15:04 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mco1H-0001tF-4V for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 19 Oct 2021 14:15:03 +0200 Original-Received: from localhost ([::1]:58976 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mco1G-0004Jo-4G for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 19 Oct 2021 08:15:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:32780) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mcnvS-0007Xd-0L for bug-gnu-emacs@gnu.org; Tue, 19 Oct 2021 08:09:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38198) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mcnvR-0000Ts-NY for bug-gnu-emacs@gnu.org; Tue, 19 Oct 2021 08:09:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mcnvR-00053h-Iv for bug-gnu-emacs@gnu.org; Tue, 19 Oct 2021 08:09:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 19 Oct 2021 12:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50752 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 50752-submit@debbugs.gnu.org id=B50752.163464529019376 (code B ref 50752); Tue, 19 Oct 2021 12:09:01 +0000 Original-Received: (at 50752) by debbugs.gnu.org; 19 Oct 2021 12:08:10 +0000 Original-Received: from localhost ([127.0.0.1]:49741 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mcnuc-00052S-HY for submit@debbugs.gnu.org; Tue, 19 Oct 2021 08:08:10 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:34386) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mcnua-00052E-UX for 50752@debbugs.gnu.org; Tue, 19 Oct 2021 08:08:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=PjoYDlNlJmF6DQSvHPXb8NRjf8RNOH8bYXepa/Fm9R8=; b=gUjHDjAOmRHJxFSeWNBS06TtpA YDvvbIgRVcoUsrbGZARd5+4mKobnc0rY8e6jP+g8972ksccFQpQKs0+fp+SAAN7OImK0mkJu9VovN ZRhReXEqPfk0g5eVZO6RBmPwurEelYP0vku3RmbuQR0Ijsqa/wTONkasEMsVgdJcsxQ0=; Original-Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mcnuR-0005mc-Ju; Tue, 19 Oct 2021 14:08:01 +0200 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEXqrHHxuHeOV0n/ //+Q3bmOAAAAAWJLR0QDEQxM8gAAAAd0SU1FB+UKEwwAGwE+8MkAAAGoSURBVCjPPZLBiqNAEIZ/ g+7Bkz2k95DTZmFA+ylM0CXkpFIVlj3NceJTyBBhN8cFL3OKgtBTT7mlMFsnv67+q/+qEoHlV3ti Yg0EzG3fWraWCkTMrhebByYsoVnpxJxFxMAypxDTrqAZv5HDklmvAWm5QKFAwBWf1wi/M/sJFUQO VUE1L5lucmyMLbQAPY0K23qpxJddJjIcw+6Pan7FqZP5OHnRTBtnTsajf6zQevk7M9eFPpq+Zu59 4LUfztLs+3lgyqEF5tTH7QCNAKTgnH1YtYjL8OKdZ2yBGMQvcv9YvT+pt6v4fc0UBzsYvqbiS27k 8g6KFMSy8z/uKDd7Jx2T807Au771oNiJwjYWeaBx2raAdC4dINMC0LPbZuq/LpAo+HPf7P7DiTar plIYOXdverZCRNhXIrN6FenzmeJJkvUdLZD7eNROF+mu/nJzt1q9KXDjklGnY8O7ilx/7LkArIrG jGLLBodV9Gw8K5Ss65FTMxoqAVL4qBrdumqarchev0qbABWn6U9mu2iQcxQlukZDtc40jL6FupHl R9IwSBAWRRL+A9HYwN1lk68TAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTEwLTE5VDEyOjAwOjI2 KzAwOjAw+KiakwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0xMC0xOVQxMjowMDoyNiswMDowMIn1 Ii8AAAAASUVORK5CYII= X-Now-Playing: 23 Skidoo's _Seven Songs_: "Vegas El Bandito" In-Reply-To: <83r1chcjof.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 19 Oct 2021 14:56:16 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:217567 Archived-At: Eli Zaretskii writes: > What would you do instead? It's a conundrum with no easy solutions. > The original string could include non-ASCII bytes. First of all, I think the code is just plain buggy: for (i = 0; i < size; i++) { ch = make_char_multibyte (SREF (obj, i)); cased = case_single_character (ctx, ch); if (ch == cased) continue; cased = make_char_unibyte (cased); /* If the char can't be converted to a valid byte, just don't change it. */ if (SINGLE_BYTE_CHAR_P (cased)) SSET (obj, i, cased); } That make_char_unibyte makes SINGLE_BYTE_CHAR_P always return true, doesn't it? Uhm... No, what happens to raw bytes... Oh, yeah, case_single_character doesn't work for raw bytes, so the "continue" is always taken for those. So the code is all kinds of confused, I think. Second of all -- to handle this specific, very unusual case (i.e., downcasing a ascii character gets us a non-ascii character), when we detect this issue, we should just abort this loop and call do_casify_multibyte_string instead. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no