From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Ergus Newsgroups: gmane.emacs.devel Subject: Re: Question about display engine Date: Tue, 3 Sep 2019 13:23:37 +0200 Message-ID: <20190903112337.txj2ahuv547tbwy7@Ergus> References: <83mufr9gya.fsf@gnu.org> <03a80221-5222-9b8b-86a1-67cef18df463@gmx.at> <83zhjp937v.fsf@gnu.org> <8acd9fc1-e6ce-9a86-cfb6-e00a672c154a@gmx.at> <20190901122628.aynhzwwpvqbgyydh@Ergus> <20190902110504.zniyfmd7bi53iyxe@Ergus> <83zhjm7juc.fsf@gnu.org> <20190903053331.i36bn2i5ytta2ma7@Ergus> <5fa51eff-75bc-9760-3e6e-af343dedc12e@gmx.at> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="136587"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: NeoMutt/20180716 Cc: Eli Zaretskii , emacs-devel@gnu.org To: martin rudalics Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 03 13:24:35 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i56vL-000ZQd-FZ for ged-emacs-devel@m.gmane.org; Tue, 03 Sep 2019 13:24:35 +0200 Original-Received: from localhost ([::1]:44226 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i56vK-0004cl-9B for ged-emacs-devel@m.gmane.org; Tue, 03 Sep 2019 07:24:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51753) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i56ud-0004cR-DJ for emacs-devel@gnu.org; Tue, 03 Sep 2019 07:23:52 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i56ub-00050K-NV for emacs-devel@gnu.org; Tue, 03 Sep 2019 07:23:50 -0400 Original-Received: from sonic312-25.consmr.mail.ir2.yahoo.com ([77.238.178.96]:40185) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i56ub-0004yq-I9 for emacs-devel@gnu.org; Tue, 03 Sep 2019 07:23:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1567509827; bh=7S2SLuR70YV3dKYnFg6+2nfIn+Gw6nEUcHKHBcMPsGk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From:Subject; b=OPfe7dCHRsZLhAYIFFBEnw2ZW13jWdZ11dJgxSu5V5Zd4bfhpfQOPmjp/QyssxI4QRPFom5hmWsBMf2eprF7PNBAEopp/jhFjwoOPizQVLpq2yKqhx2VD8G6Re5YuEx6b2R9ERqLv8T76Cwd4z6IduMxK0PcL8Bf2wDCNfcK74fGat0CurdjSeM5OOjjZLt6fWEQ/DwGHIFHk2rNhx1nx1HmRDsz05rOe3pApCpYLYhmoRtTkXnUqFSslKvkXCos/xrCXCugCR4KJ6scJq/i1p9DY80z0Qg+hhImkskmpcQP6h45AadWBZWTrRj4COTO3eoC1QNXNef54gtxA/WvgQ== X-YMail-OSG: OPgqufUVM1lWjIDP8w1EHobl7QnY0_1wi5xhz7AdKUv8JC1kJPSRohtDDHZD8h0 a6XmBvfUITt7n0CNRbupdqNtvm2gRBj5YQBVXWGb75bv5CTiue_QPqyEbOgj8DkiuN1XTyhjRqhA Tn60E2BCCSoGImo9H2bBBFTnFgsVAfnB1KQ1PfnnkMRom594DnRsU1nvNn74dAZTCCJX.k7VWeY8 nG2WKYfiwDv3VzsTnhHHDOypvNa9TIhgSNAiiTVqbMZipRp8Z5JLIdc82faNEPRS1uwqEGf6O9AI zlQ.i9whLC3Ety0whLCeDXTGJkWu1H4kV_tRTnQRj_oxzfg1COno4osFS_ltA_lLaOPBKraOyrMO oCjWX2_BymTbu9sZRbhk2jufIqfPjs8FKLvvvtc0zmHRp64W9mTE03NFCWVn7OkyVbr1jSeymdQ2 xJO6b2TIe9pWZ9iHtIAnM2ba3AsBo6Hn355nof7wkah_9e7SIsa6feASF2_Z5QntPMshRuKnVpto vMii0p2ICdCQSlFKqrazRVkW.78pYjXXZGAmDIWyXGwf_p5hyErb8KJ.YEeWwYK.7VEftOXNZPk7 O2mleLHj8LE5BYxVCTpcu0b7WsNUqTWD7JlVEojulM.I_Gjs_8LGJrSLJ76CyETsjPfTb_fLCxV_ bHpG5yjdORQFf3ytASFhl344.c5nHq.xv7sbnEqf1QGqvuH02sKRQXGQPwn6jpEjpFUM0TwxEKvh IPGxerpyTRZWX8aEpKnh0HoYTW_Gn3M9oTFg3WdDEe2N15bOb9fjTNvoXYq5WExa_dD9_s_8_tqS NNptQPr6Txnq5p3jiItrZHDm01ueOZDz7u62PhOK4W Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.ir2.yahoo.com with HTTP; Tue, 3 Sep 2019 11:23:47 +0000 Original-Received: by smtp407.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 3d683b47dcae3083fbb45b78e50cc26b; Tue, 03 Sep 2019 11:23:44 +0000 (UTC) Content-Disposition: inline In-Reply-To: <5fa51eff-75bc-9760-3e6e-af343dedc12e@gmx.at> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 77.238.178.96 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:239804 Archived-At: On Tue, Sep 03, 2019 at 10:45:46AM +0200, martin rudalics wrote: >> Could any of you give a look to the patch > >I cannot build Emacs on Windows with the patch due to > > > CC w32select.o >../../src/w32term.c: In function 'w32_draw_glyph_string': >../../src/w32term.c:2482:20: error: 'struct face' has no member named 'underline_p'; did you mean 'underline'? > if (s->face->underline_p) > ^~~~~~~~~~~ > underline >../../src/w32term.c:2484:24: error: 'struct face' has no member named 'underline_type'; did you mean 'underline_color'? > if (s->face->underline_type == FACE_UNDER_WAVE) > ^~~~~~~~~~~~~~ > underline_color >../../src/w32term.c:2495:29: error: 'struct face' has no member named 'underline_type'; did you mean 'underline_color'? > else if (s->face->underline_type == FACE_UNDER_LINE) > ^~~~~~~~~~~~~~ > underline_color >../../src/w32term.c:2500:45: error: 'struct face' has no member named 'underline_p'; did you mean 'underline'? > if (s->prev && s->prev->face->underline_p > ^~~~~~~~~~~ > underline >../../src/w32term.c:2501:23: error: 'struct face' has no member named 'underline_type'; did you mean 'underline_color'? > && s->prev->face->underline_type == FACE_UNDER_LINE) > ^~~~~~~~~~~~~~ > underline_color >make[1]: *** [Makefile:402: w32term.o] Fehler 1 >make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet.... >make[1]: Verzeichnis ???/c/emacs/trunk/non-64/src??? wird verlassen >make: *** [Makefile:424: src] Fehler 2 > > >and since I don't understand the underline_p/_type rationale I have no >good idea how to proceed. > Ohh sorry. My bad I made a code simplify and removed this member. I will fix it now. >> to detect what is failing at >> least to triger the merge and extend? >> Probably the initialization. (which btw the lisp glue code may be buggy >> for sure.) > >I'd run Emacs under gdb to find out whether merge_extend_glyph_face >gets called in the first place. And if it doesn't get called, I would >continue investigating the places where it should get called. > >martin > > After a while I made it to be called, so, forget the patch I will email a different one in a while. I found also that we where very concerned about what happen when merging, but there was not any comment about face_id changes in other cases (like reassign). For example, when we select a word in the middle of a line. The extend_face will be set to the region face when the iterator iterates throw the word, but then it shouldn't be extended at EOL. So we are dealing with a 2D problem here. Iterate on X (the line) vs merging on Y (the face). So I am not sure we have a criteria about when to propagate the extend in both dimensions; because as I see in most of the cases the face_id in X changes due to reassign associated to text properties. So we have been talking all the time about the Y problem? maybe we should test only the last face in the line before EOL to check for the extend flag; but then the extend_face_id will be again an intrinsic parameter of that face. I feel I am missing something for sure.