From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#62573: 29.0.60; Cursor color not being inverted in emacs-29 Date: Mon, 03 Apr 2023 08:07:24 +0800 Message-ID: <87ttxxrfpf.fsf@yahoo.com> References: <83edp420lx.fsf@gnu.org> <83bkk817rr.fsf@gnu.org> <87mt3rru3q.fsf@yahoo.com> Reply-To: Po Lu Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36165"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 62573@debbugs.gnu.org, Eli Zaretskii , Al Haji-Ali To: Daniel =?UTF-8?Q?Mart=C3=ADn?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Apr 03 02:08:30 2023 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 1pj7kM-0009GT-IE for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 03 Apr 2023 02:08:30 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pj7jv-0006gr-3M; Sun, 02 Apr 2023 20:08:03 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pj7ju-0006gi-2U for bug-gnu-emacs@gnu.org; Sun, 02 Apr 2023 20:08:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pj7jt-0005ga-R8 for bug-gnu-emacs@gnu.org; Sun, 02 Apr 2023 20:08:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pj7jt-00086D-K7 for bug-gnu-emacs@gnu.org; Sun, 02 Apr 2023 20:08:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 03 Apr 2023 00:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62573 X-GNU-PR-Package: emacs Original-Received: via spool by 62573-submit@debbugs.gnu.org id=B62573.168048046231095 (code B ref 62573); Mon, 03 Apr 2023 00:08:01 +0000 Original-Received: (at 62573) by debbugs.gnu.org; 3 Apr 2023 00:07:42 +0000 Original-Received: from localhost ([127.0.0.1]:42954 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pj7jZ-00085T-UB for submit@debbugs.gnu.org; Sun, 02 Apr 2023 20:07:42 -0400 Original-Received: from sonic307-10.consmr.mail.ne1.yahoo.com ([66.163.190.33]:42965) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pj7jX-00085B-Av for 62573@debbugs.gnu.org; Sun, 02 Apr 2023 20:07:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1680480454; bh=RTCc9CSyaFDrW0THSl8Y8uAcQr9ldNVq0Lj+JRWND54=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=fby7eH/QlQe+GoUMaBV3Fqywxm9WAjFWOcpJNIpNvI2obHdfG9BXVu+V9Ii0r6w5AFyb/zorEVeV3IbXSrRE5tlR8MhgxXiW4HS0Wz7ip1fIm8WRJy/S9JBj5V37pasdgwt9lG+hklIffAteZhHIkZ98dgbGUSWy2l5HRditSLRHucwcPoesVCI3PI3gcY+lpU6IrXExOl8D2e9qGK92lk4lhZiX8VX0sKp87c+tmrVNC7Cq3ZqAOzYRhNnUAWCJBI7lJvm+ZmGIM/s2RnIADF0kyWe+sgt4RkJprcY6Yghnk9ZCgN/urdeb6rckk/f8oJeqh8lOhKrBfKTYAugWCg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1680480454; bh=A00EsqB1GXr3xOXZJ0Lo5JbeMl/Jb9+VkjIpMPtOg5N=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=gmlRhS6D/p4SQ5EYAJKyu487PlGPfQKXa7+6ZDz5ceb96ckD/9zbOtsUZyTzVzx0W9t/vCeoPAx7E16c5SSwBV5p3kONM7iGELLftCIZ/g68ekZt2FAIZkqwW8Lr0pS58QDGnHC9r74PoY6Yb9XP61BfXABC5GNVV5BcNPQ6GtVSNLJLY2YEAWEmsyFRysXnXRnyAkpV3ryHY6Ps1AvNMf5dukoTCa+vO7DldwGE8ggX2Q/NkP7sCOtbWTVlqTa54xzebFV0+8wVSVtO73UZU9U4oLaxAMzlkZ59sBAuOSonXrIAT4TmIwF4Rxj8lm7c+bbBbU0CgNV1aCBAOCOl1A== X-YMail-OSG: SA4h_PoVM1lE6jmKzACrea5GmC2P.ouJ6zAA1mxpPATFjNYSp28bPkusDA5RZ6g rFFAyH6FA6M4HyIx4J_x8LYKrIuOWstyH1oeVcf7uUQfumsvjGuHfSnHCBYKpRUGhB3N7yvwQkKV 8f73Zd1lSYTYDGPqo9fDF26ts69Rlh3X5w0T.xo8MTuo3O8aXiXT90mhf29fZtnGOpaM3mlOnf4q 7tyEZ5SpkSpmivEQwyv7lKGqP_j9jztAXybcbDJ5RJxNgGhQYbcAiin_39FcT4nEP8Rk0MEBOQ1f u9pu1iqO8wPbe3fiCwbqsCCxOl9Ey59aQ3lHhw4qOIcKcJXThdY.PQDSSKZq2F27D3C27G7x3O8H .FbeHMuh0k8LviEBTqSdTteQwMbyknFWfnLJbpz4Vc_dvAHfFS_3apvznI0mV9oWwomR0mYDiMGb bKOrFXX.o6zE3gvcoXC3RUEzGRFgYd4YLo2sh2FHbkhn4X7bC9Qae480GHFyl0prIkI.lVal0W7o phBlEmJxYhX6BYlensQBoMKG0u5wHO0k0KrzL63ZEGzX9fe.7g5xXYO3B5rbJY7GCDV2BEnCYiYk xmwUkw6ahaHB1Xu.Pp6PhsCiwBiYkhtIr_Y6E0FwXykuGsZxnqmxQEadlB1_CESU7SESp327W_F6 GBgdbbXd4Z6qb_L1KnIRaz8CdGbhZxHdeAKcHww_RAJHILLsrVK8RmTcBoFa7h3GR2IjZhDp6o6K .TK99HQo.HADfaCMNU2U9PYQ_cRmLCzer0f0OVy.BY9.EYPySG1e482LefuFDklnrrMuY8HzKdoP VWFuEO1Z1xXauxrZsJcBQnfQCqHcL.q8yTjBx6p42m X-Sonic-MF: X-Sonic-ID: d6f779ee-256e-4947-80ea-c248d22c4c0c Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.ne1.yahoo.com with HTTP; Mon, 3 Apr 2023 00:07:34 +0000 Original-Received: by hermes--production-sg3-6d6fb994f6-q52kb (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 6d3e322f245f96a09d8c20895e1a0cb0; Mon, 03 Apr 2023 00:07:29 +0000 (UTC) In-Reply-To: ("Daniel =?UTF-8?Q?Mart=C3=ADn?="'s message of "Sun, 02 Apr 2023 23:24:15 +0200") X-Mailer: WebService/1.1.21284 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:259143 Archived-At: Daniel Mart=C3=ADn writes: > +#define CG_SET_FILL_COLOR_WITH_FRAME_CURSOR(context, frame) \ > + do { \ > + CGColorRef refcol_ =3D = \ > + get_cgcolor_from_nscolor (FRAME_CURSOR_COLOR (frame), frame); \ > + CGContextSetFillColorWithColor (context, refcol_); \ > + CGColorRelease (refcol_); \ > + } while (0) > +#define CG_SET_FILL_COLOR_WITH_FRAME_BACKGROUND(context, frame) \ > + do { \ > + CGColorRef refcol_ =3D = \ > + get_cgcolor_from_nscolor (FRAME_BACKGROUND_COLOR (frame), frame); \ > + CGContextSetFillColorWithColor (context, refcol_); \ > + CGColorRelease (refcol_); \ > + } while (0) Thanks. The GNU Coding Standards split expressions, before operators. So this should read: do { CGColorRef refcol =3D ... also, since you put this in a separate block, you don't have to worry about shadowing, so there's no need to use names with a trailing underscore. > #define CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND(context, face) \ > do { \ > CGColorRef refcol_ =3D get_cgcolor (NS_FACE_FOREGROUND (face)); = \ > @@ -2933,9 +2947,12 @@ So we use CTFontDescriptorCreateMatchingFontDescri= ptor (no > { > if (s->hl =3D=3D DRAW_CURSOR) > { > - CGColorRef colorref =3D get_cgcolor_from_nscolor (FRAME_CURSOR_COLOR = (f), f); > - CGContextSetFillColorWithColor (context, colorref); > - CGColorRelease (colorref); > + if (face && (NS_FACE_BACKGROUND (face) > + =3D=3D [(NSColor *) FRAME_CURSOR_COLOR (f) > + unsignedLong])) > + CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND (context, face); > + else > + CG_SET_FILL_COLOR_WITH_FRAME_CURSOR (context, f); > } > else > CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND (context, face); > @@ -2949,9 +2966,12 @@ So we use CTFontDescriptorCreateMatchingFontDescri= ptor (no > CGContextScaleCTM (context, 1, -1); > if (s->hl =3D=3D DRAW_CURSOR) > { > - CGColorRef colorref =3D get_cgcolor_from_nscolor (FRAME_BACKGROUND_CO= LOR (f), f); > - CGContextSetFillColorWithColor (context, colorref); > - CGColorRelease (colorref); > + if (face && (NS_FACE_BACKGROUND (face) > + =3D=3D [(NSColor *) FRAME_CURSOR_COLOR (f) > + unsignedLong])) > + CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND (context, face); > + else > + CG_SET_FILL_COLOR_WITH_FRAME_BACKGROUND (context, f); > } > else > CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND (context, face); > diff --git a/src/nsterm.m b/src/nsterm.m > index 46007ec4fcb..637bc4b6419 100644 > --- a/src/nsterm.m > +++ b/src/nsterm.m > @@ -3750,14 +3750,18 @@ Function modeled after x_draw_glyph_string_box (). > { > struct face *face =3D s->face; > if (!face->stipple) > - { > - if (s->hl !=3D DRAW_CURSOR) > - [(NS_FACE_BACKGROUND (face) !=3D 0 > - ? [NSColor colorWithUnsignedLong:NS_FACE_BACKGROUND (face)] > - : FRAME_BACKGROUND_COLOR (s->f)) set]; > - else > - [FRAME_CURSOR_COLOR (s->f) set]; > - } > + { > + if (s->hl !=3D DRAW_CURSOR) > + [(NS_FACE_BACKGROUND (face) !=3D 0 > + ? [NSColor colorWithUnsignedLong:NS_FACE_BACKGROUND (f= ace)] > + : FRAME_BACKGROUND_COLOR (s->f)) set]; > + else if (face && (NS_FACE_BACKGROUND (face) > + =3D=3D [(NSColor *) FRAME_CURSOR_COLOR (= s->f) > + unsignedLong])) > + [[NSColor colorWithUnsignedLong:NS_FACE_FOREGROUND (face= )] set]; > + else > + [FRAME_CURSOR_COLOR (s->f) set]; > + } > else > { > struct ns_display_info *dpyinfo =3D FRAME_DISPLAY_INFO (s-= >f); LGTM. Thanks.