From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?UTF-8?Q?Aur=C3=A9lien_Aptel?= Newsgroups: gmane.emacs.devel Subject: Re: Does face support underline other than a straight line? Date: Wed, 25 Jan 2012 18:32:52 +0100 Message-ID: References: <87r4yoiaiv.fsf@gnu.org> <8739b446qj.fsf@uwakimon.sk.tsukuba.ac.jp> <871uqo3zge.fsf@uwakimon.sk.tsukuba.ac.jp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=14dae9399ac13ab5ca04b75da75c X-Trace: dough.gmane.org 1327525376 16212 80.91.229.12 (25 Jan 2012 21:02:56 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 25 Jan 2012 21:02:56 +0000 (UTC) Cc: Eli Zaretskii , cyd@gnu.org, sdl.web@gmail.com, emacs-devel@gnu.org To: "Stephen J. Turnbull" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jan 25 22:02:51 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Rq9zW-00041d-Jv for ged-emacs-devel@m.gmane.org; Wed, 25 Jan 2012 22:02:50 +0100 Original-Received: from localhost ([::1]:54964 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rq9zW-0007Ec-2q for ged-emacs-devel@m.gmane.org; Wed, 25 Jan 2012 16:02:50 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:45408) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rq6ie-0008QH-6Q for emacs-devel@gnu.org; Wed, 25 Jan 2012 12:33:18 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rq6iZ-0002qY-5D for emacs-devel@gnu.org; Wed, 25 Jan 2012 12:33:11 -0500 Original-Received: from mail-tul01m020-f169.google.com ([209.85.214.169]:63244) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rq6iM-0002oK-1Y; Wed, 25 Jan 2012 12:32:54 -0500 Original-Received: by obbta7 with SMTP id ta7so7494560obb.0 for ; Wed, 25 Jan 2012 09:32:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=j6XC/ntXbB0eQsq0gWboyozadez2KuhQR+xtnLxA+dI=; b=InJ7wiTowcTPyUn2V+ELzbvE/Pd42AdJIbA4YOxRdAlSt6ultrbr8oitQN+iuDnh1w Nzsdb5nX7Ua94IctuGnrJKtJwplGnvHnK3TFqT+Rh+wdiWLBxB7bQw7nvHRqJoDIZrsb m6r254PbYwXzgsO+c890y661WamB+O/5lzFI0= Original-Received: by 10.182.116.38 with SMTP id jt6mr16514450obb.52.1327512772326; Wed, 25 Jan 2012 09:32:52 -0800 (PST) Original-Received: by 10.182.165.40 with HTTP; Wed, 25 Jan 2012 09:32:52 -0800 (PST) In-Reply-To: <871uqo3zge.fsf@uwakimon.sk.tsukuba.ac.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.214.169 X-Mailman-Approved-At: Wed, 25 Jan 2012 16:02:48 -0500 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:147925 Archived-At: --14dae9399ac13ab5ca04b75da75c Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, Jan 25, 2012 at 10:26 AM, Stephen J. Turnbull wrote: > In XEmacs you can specify a color or a pixmap as background (bitmaps > are promoted to pixmaps, but with -- until about a week ago -- less > than satisfactory results). =C2=A0So you could specify a background pixma= p > (eg, as an XPM) as > [...] > and it will be tiled appropriately over the extent of the face, and > the text will be printed over that in the foreground color. =C2=A0Sort of > like poor man's image layers. I think it would be simpler to do directly in C. I'm new to this but it should be simple to add a new field "underwave_p" in struct face ( with underline_p, overline_p) in dispextern.h:1590 and handle it (for X11) near xterm.c:2756. See POC program attached for drawing underwaved text in X11. --14dae9399ac13ab5ca04b75da75c Content-Type: text/x-csrc; charset=US-ASCII; name="underwave.c" Content-Disposition: attachment; filename="underwave.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gxumnrgh0 LyogCiAgIFgxMSB1bmRlcndhdmVkIHRleHQgZXhhbXBsZSBieSA8YXVyZWxpZW4uYXB0ZWxAZ21h aWwuY29tPgogICBVc2FnZTogZ2NjIC1sWDExIHVuZGVyd2F2ZS5jICYmIC4vYS5vdXQgCiAgIFBy ZXNzIEVTQyB0byBxdWl0LCBhbnkgb3RoZXIga2V5IHRvIGNoYW5nZSB0aGUgc3RyaW5ncwoqLwoj aW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+ CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxYMTEvWGxpYi5oPgojaW5jbHVkZSA8WDExL2tl eXN5bS5oPgoKI2RlZmluZSBSQU5EKG1pbixtYXgpIChyYW5kKCklKChtYXgpLShtaW4pKSsobWlu KSkKCiNkZWZpbmUgRk9OVF9OQU1FICAgICItKi1maXhlZC0qLSotKi0qLTEzLSotKi0qLSotKi1p c284ODU5LSoiCiNkZWZpbmUgV0FWRV9DT0xPUiAgICJyZWQiCiNkZWZpbmUgV0FWRV9IRUlHSFQg IDIKI2RlZmluZSBXQVZFX1RISUNLICAgMQoKV2luZG93IHdpbjsKRGlzcGxheSogZHB5OwpHQyBn YzsKaW50IHNjcmVlbjsKaW50IHdpZHRoLCBoZWlnaHQ7ClhGb250U3RydWN0KiBmb250X2luZm87 CmNoYXIqIGZvbnRfbmFtZSA9IEZPTlRfTkFNRTsKaW50IGZvbnRfaGVpZ2h0OwppbnQgc2VlZCA9 IDQyOwp1bnNpZ25lZCBsb25nIHVuZGVyY29sb3IsIGJsYWNrOwoKdm9pZCBpbml0IChpbnQgdywg aW50IGgpCnsKICAgIFhDb2xvciBjb2xvcjsKICAgIFhDb2xvck1hcCBjbWFwOwogICAgdW5zaWdu ZWQgaW50IGxpbmVfd2lkdGggPSBXQVZFX1RISUNLOwogICAgaW50IGxpbmVfc3R5bGUgPSBMaW5l U29saWQ7CiAgICBpbnQgY2FwX3N0eWxlID0gQ2FwQnV0dDsKICAgIGludCBqb2luX3N0eWxlID0g Sm9pbkJldmVsOwoKICAgIHdpZHRoID0gdywgaGVpZ2h0ID0gaDsKICAgIAogICAgZHB5ID0gWE9w ZW5EaXNwbGF5KE5VTEwpOwoKICAgIGlmKCFkcHkpCiAgICAgICAgcHV0cygiZXJyOiBYT3BlbkRp c3BsYXkiKSwgZXhpdCgxKTsKCiAgICBzY3JlZW4gPSBYRGVmYXVsdFNjcmVlbihkcHkpOwogICAg d2luID0gWENyZWF0ZVNpbXBsZVdpbmRvdyhkcHksIFJvb3RXaW5kb3coZHB5LCBzY3JlZW4pLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsIDEwMCwgd2lkdGgsIGhlaWdodCwgMCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxhY2tQaXhlbChkcHksIHNjcmVlbiksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaXRlUGl4ZWwoZHB5LCBzY3JlZW4pKTsKCiAg ICBjbWFwID0gWERlZmF1bHRDb2xvcm1hcChkcHksIHNjcmVlbik7CiAgICBibGFjayA9IEJsYWNr UGl4ZWwoZHB5LCBzY3JlZW4pOwogICAgWEFsbG9jTmFtZWRDb2xvcihkcHksIGNtYXAsIFdBVkVf Q09MT1IsICZjb2xvciwgJmNvbG9yKTsKICAgIHVuZGVyY29sb3IgPSBjb2xvci5waXhlbDsKICAg IAogICAgZ2MgPSBYQ3JlYXRlR0MoZHB5LCB3aW4sIDAsIE5VTEwpOwogICAgWFNldEZvcmVncm91 bmQoZHB5LCBnYywgQmxhY2tQaXhlbChkcHksIHNjcmVlbikpOwogICAgWFNldEJhY2tncm91bmQo ZHB5LCBnYywgV2hpdGVQaXhlbChkcHksIHNjcmVlbikpOwogICAgWFNldExpbmVBdHRyaWJ1dGVz KGRweSwgZ2MsIGxpbmVfd2lkdGgsIGxpbmVfc3R5bGUsIGNhcF9zdHlsZSwgam9pbl9zdHlsZSk7 CgogICAgZm9udF9pbmZvID0gWExvYWRRdWVyeUZvbnQoZHB5LCBmb250X25hbWUpOwogICAgWFNl dEZvbnQoZHB5LCBnYywgZm9udF9pbmZvLT5maWQpOwogICAgZm9udF9oZWlnaHQgPSBmb250X2lu Zm8tPmFzY2VudCArIGZvbnRfaW5mby0+ZGVzY2VudDsKfQoKdm9pZCBkcmF3X3dhdmUgKGludCB4 MCwgaW50IHkwLCBpbnQgdykKewogICAgaW50IGR4ID0gV0FWRV9IRUlHSFQ7CiAgICBpbnQgZHkg PSBkeC8yOwogICAgaW50IHgxLCB5MSwgeDIsIHkyLCBpLCB0aW1lcyA9IHcvZHg7CgogICAgZm9y KGkgPSAwOyBpIDwgdGltZXM7IGkrKykgewogICAgICAgIHgxID0geDAgKyBpKmR4OwogICAgICAg IHkxID0geTAgKyAoaSUyID8gMSA6IC0xKSAqIGR5OwogICAgICAgIHgyID0geDAgKyAoaSsxKSpk eDsKICAgICAgICB5MiA9IHkwICsgKChpKzEpJTIgPyAxIDogLTEpICogZHk7CiAgICAgICAgWERy YXdMaW5lKGRweSwgd2luLCBnYywgeDEsIHkxLCB4MiwgeTIpOwogICAgfQp9Cgp2b2lkIGRyYXdf dW5kZXJ3YXZlX3N0cmluZyAoY2hhciogc3RyLCBpbnQgeSkKewogICAgaW50IGxlbiA9IHN0cmxl bihzdHIpOwogICAgaW50IHcgPSBYVGV4dFdpZHRoKGZvbnRfaW5mbywgc3RyLCBsZW4pOwogICAg aW50IHggPSAod2lkdGgtdykvMjsKCiAgICBYU2V0Rm9yZWdyb3VuZChkcHksIGdjLCBibGFjayk7 CiAgICBYRHJhd1N0cmluZyhkcHksIHdpbiwgZ2MsIHgsIHkrZm9udF9pbmZvLT5hc2NlbnQsIHN0 ciwgbGVuKTsKICAgIFhTZXRGb3JlZ3JvdW5kKGRweSwgZ2MsIHVuZGVyY29sb3IpOwogICAgZHJh d193YXZlKHgsIHkrZm9udF9oZWlnaHQsIHcpOwp9Cgp2b2lkIGRyYXcgKHZvaWQpCnsKICAgIGNo YXIgYnVmWzI1Nl07CiAgICBpbnQgaSwgaiwgeSwgbiA9IDIwOwoKICAgIHNyYW5kKHNlZWQpOwog ICAgWENsZWFyV2luZG93KGRweSwgd2luKTsKCiAgICBmb3IoaSA9IDE7IGkgPD0gbjsgaSsrKSB7 CiAgICAgICAgeSA9IChoZWlnaHQtZm9udF9oZWlnaHQqMS41Km4pLzIrZm9udF9oZWlnaHQqMS41 Kmk7CgogICAgICAgIC8qIHJhbmRvbSBhc2NpaSBzdHJpbmcgKi8KICAgICAgICBtZW1zZXQoYnVm LCAwLCBzaXplb2YgYnVmKTsKICAgICAgICBmb3IoaiA9IDA7IGogPCBpOyBqKyspCiAgICAgICAg ICAgIGJ1ZltqXSA9IFJBTkQoMzIsIDEyNik7CiAgICAgICAgYnVmW2pdID0gMDsKCiAgICAgICAg ZHJhd191bmRlcndhdmVfc3RyaW5nKGJ1ZiwgeSk7CiAgICB9Cn0KCmludCBtYWluICh2b2lkKQp7 CiAgICBpbnQgZG9uZSA9IDA7CiAgICBYRXZlbnQgZTsKICAgIGludCBtYXNrID0gRXhwb3N1cmVN YXNrIHwgS2V5UHJlc3NNYXNrIHwgU3RydWN0dXJlTm90aWZ5TWFzazsKCiAgICBpbml0KDMwMCwg MzAwKTsKCiAgICBYU2VsZWN0SW5wdXQoZHB5LCB3aW4sIG1hc2spOwogICAgWE1hcFdpbmRvdyhk cHksIHdpbik7CgogICAgd2hpbGUgKCFkb25lKSB7CiAgICAgICAgWE5leHRFdmVudChkcHksICZl KTsKICAgICAgICBzd2l0Y2ggKGUudHlwZSkgewogICAgICAgIGNhc2UgRXhwb3NlOgogICAgICAg ICAgICAgICAgZHJhdygpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIENvbmZpZ3Vy ZU5vdGlmeToKICAgICAgICAgICAgd2lkdGggPSBlLnhjb25maWd1cmUud2lkdGg7CiAgICAgICAg ICAgIGhlaWdodCA9IGUueGNvbmZpZ3VyZS5oZWlnaHQ7CiAgICAgICAgICAgIGRyYXcoKTsKICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBLZXlQcmVzczoKICAgICAgICAgICAgaWYoWExv b2t1cEtleXN5bSgmZS54a2V5LCAwKSA9PSBYS19Fc2NhcGUpCiAgICAgICAgICAgICAgICBkb25l ID0gMTsKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBzZWVkID0gdGltZShOVUxM KStyYW5kKCk7CiAgICAgICAgICAgICAgICBkcmF3KCk7CiAgICAgICAgICAgIH0KICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIFhGcmVlR0MoZHB5LCBnYyk7CiAgICBYQ2xv c2VEaXNwbGF5KGRweSk7CgogICAgcmV0dXJuIDA7Cn0K --14dae9399ac13ab5ca04b75da75c--