From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Suggest installing more fonts? Date: Sat, 17 Oct 2020 18:36:47 +0000 Message-ID: References: <87wnzqa1be.fsf@gnus.org> <83zh4lthv4.fsf@gnu.org> <83a6wlt5ie.fsf@gnu.org> <837drpt1tb.fsf@gnu.org> <83wnzostl0.fsf@gnu.org> <83r1pwspik.fsf@gnu.org> Reply-To: Gregory Heytings Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21201"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Alpine 2.22 (NEB 394 2020-01-19) Cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Oct 17 20:37:42 2020 Return-path: Envelope-to: ged-emacs-devel@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 1kTr5K-0005Rd-Qu for ged-emacs-devel@m.gmane-mx.org; Sat, 17 Oct 2020 20:37:42 +0200 Original-Received: from localhost ([::1]:48058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kTr5J-0003i4-SG for ged-emacs-devel@m.gmane-mx.org; Sat, 17 Oct 2020 14:37:41 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46650) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kTr4b-0002sf-Ls for emacs-devel@gnu.org; Sat, 17 Oct 2020 14:36:57 -0400 Original-Received: from mx.sdf.org ([205.166.94.24]:54141) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kTr4Z-0008LZ-BF; Sat, 17 Oct 2020 14:36:57 -0400 Original-Received: from sdf.org (IDENT:ghe@faeroes.freeshell.org [205.166.94.9]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 09HIanSW025993 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sat, 17 Oct 2020 18:36:50 GMT Original-Received: (from ghe@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 09HIansm018231; Sat, 17 Oct 2020 18:36:49 GMT In-Reply-To: <83r1pwspik.fsf@gnu.org> Received-SPF: pass client-ip=205.166.94.24; envelope-from=ghe@sdf.org; helo=mx.sdf.org X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/17 12:09:16 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:257960 Archived-At: >>>> Apparently it's not clear, so I'll say one last time that the feature >>>> I propose does _not_ require to install Unifont system-wide. It is >>>> to include Unifont in Emacs (say in etc/unifont), and to offer it as >>>> an additional option for glyphless-char-display, along with hex-code, >>>> empty-box, thin-space, and zero-width. The bitmap data would be used >>>> to draw the glyph in produce_glyphless_glyph() . >>> >>> I don't understand this proposal. Are you saying Emacs can already >>> use a font that is not installed? If so, can you tell how to do that? >> >> I don't (yet) know, but I'd be surprised if this could not be done. >> Emacs already creates glyphs dynamically for tofus > > No, Emacs doesn't create any glyphs dynamically for tofus, it simply > uses a smaller font in a box it itself draws. See > xterm.c:x_draw_glyphless_glyph_string_foreground for how this is done on > X (w32 and ns do it very similarly). > Yes, but Emacs draws the box itself, and I suppose that if it can draw a box, it could instead draw a small black-and-white (8x16 or 16x16) bitmap. Emacs already does this for fringe bitmaps AFAIU. >>> The way Emacs uses fonts is by using various system libraries, such as >>> Fontconfig, to find fonts that match certain criteria (script, >>> encoding, character codepoint, size, slant, etc.). How do you propose >>> to do that if, for example, Fontconfig knows nothing about a font? >> >> The proposal is not to change anything to the way Emacs uses fonts, but >> to change something to the way Emacs behaves when it does not find an >> appropriate font to display a character. In that case Emacs would >> display a "degraded" glyph (from Unifont), and would issue a warning >> that the user should install another font. > > I don't see how this can be done without serious changes in the code > that finds and uses fonts. We _need_ the Fontconfig functionality. > With the proposal, there is no need to find the font, it is already included, and only used as a fallback when no appropriate font has been found. Unifont is just a long sequence of small bitmaps, Emacs only has to pick the bitmap corresponding to a given character in that list and to draw it. For example, the character "A" in Unifont is the 8x16 bitmap "0000000018242442427E424242420000" which occupies only 16 bytes.