From patchwork Sat Feb 27 13:08:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1445170 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=LebSurae; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dnn0v28Hsz9sBJ for ; Sun, 28 Feb 2021 00:09:19 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9934381C7C; Sat, 27 Feb 2021 14:09:12 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="LebSurae"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6486081FDF; Sat, 27 Feb 2021 14:09:09 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 53C1E81C7C for ; Sat, 27 Feb 2021 14:09:05 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1614431344; bh=6H5cnGy9lneVCNsaUeYsCoEwd/uCJ1xztyQM+taAynQ=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=LebSuraeI/Pb9vdxycjIZDwaeJHapnMOJ6cQ12fRj3dA3czWidFRBbSNrG/hsWHYA TCZVd04HjUJxnBbTdMCPZ2K9W80V7yB7AkllaoY25WTP2liR1WV+LEb4UkBUbws9AE nSyxlGi4HRJB8knP7rJiMWEH9qYVMF+KTf6xgQcE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([62.143.246.89]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MdNcG-1lpK9w0UjY-00ZNaz; Sat, 27 Feb 2021 14:09:04 +0100 From: Heinrich Schuchardt To: Alexander Graf , Anatolij Gustschin Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH 0/6] efi_loader: Unicode output in UEFI applications Date: Sat, 27 Feb 2021 14:08:34 +0100 Message-Id: <20210227130840.166193-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.30.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:ftVPmLZ1djokqB/mAfCNkiRwh/fmaNUddegEm/oxt6Ju/c/pz3F +3Gx4ZFg8e6QZ3wC529UCsKaUUdWJz7O/V43mE4Z4W76X1l49+CE5bd8TQStFxmwwwYkV9H mzaTn71Dt7CNEtTG2Z2Rk+6Arbp0uLDnEob2Tu1JV6/XUbq+0EDiczNeZiP5+fw+jkzS0Bj farMxpDOYLwb6oIprIrMw== X-UI-Out-Filterresults: notjunk:1;V03:K0:lic8MzItPwA=:mBzZVfP3lPFOXZiLY6cl+d ub4VVlwXBFiJxwyrkvOogV9BlaiUwNI3rr0XBX8c5jZTU1LxB2KkJIQUQwcdFSpdyumqra2dT ganCnCEqj+hPkgI5eNPFi2/1njtkrtqfnEDdYD2oNpZj3rkA+t538hnnlMLmxy1/10KsQZAZ6 tSQ4gTSOINUayITWJY12xoGdW1aHnUAN51q+UJZPNodqXvRWVBgYcHp44DgtfQoLPrgSDOUTC 6XTdm1nMk59SEpLBna6LzrN2vu6ud2g8Mm/eTxQqVxDqHPKaeDqxsg0f8Zj9R85G4Df6Cz35W +SaG5g04DaCTWqO3v5SFJE5dBI/nYGaSGw/6EQYyTJ99MEUThw0cmkqzhTpN9JswwsmNX4BW0 5YWN0fskZ9iDym8hp0eE9JX7TqPoe7jlWSuj1F8DO5EYPaYHRVItNZdshHpzk8u1y8iLyt5Jx u2BtfXvDBLY1pxHpN1xiD9l5hbClhcZftHcOuFYeigq+8LYTYHZjZ7HbjcXkNEe5dhN1Rnl2U vhmeiixJ9S37To2rmjN3Y7bfxfUvUqN1UyRUy3GEjHejZBX6eV6KWdGJe2KlfNu2jPm4m1dQn 5BvoUX3gPmhEqvHFg4Om5Fe4lsoqtF53nMXzf1ZEeKqxrKo7Dlp9D7uRfAwaBp+1V+A/cZMq+ nl5MS8RgkN705TebvHFbR17pUoiW653SjVf9tQ+v6vDNxl6HV2E8+0eShfzCM9WgWuNK6QY/x qePHjIuXBYv2vmKyxmV2U01nhJxCmKdSeTdTNGjOWNkHfW3P2VF39a9QC/zUYRwgy++FqhXQj 2v261bhPny9CjsDIloxKrg1S0VwMWffVwbxRsw5SgTmJ7nALZy/suhiG1iQx2aANJdmH4zY96 gutfm9Y0lfvE7X5QkynA== X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.4 at phobos.denx.de X-Virus-Status: Clean UEFI programs use Unicode for console output, e.g. GRUB uses characters from the 0x2500 code block to draw a box around the menu. The video console does not understand the UTF-8 codes and renders each byte individually. The series adds the necessary conversions both for the TrueType as well as for the normal and rotated consoles which only support code page 437. Signed-off-by: Heinrich Schuchardt Heinrich Schuchardt (6): efi_loader: move codepage 437 table efi_loader: carve out utf_to_cp() lib/charset: utf8_get() should return error lib/charset: UTF-8 stream conversion video: use int for character in putc_xy() video: support Unicode in video console drivers/video/console_normal.c | 2 +- drivers/video/console_rotate.c | 6 +- drivers/video/console_truetype.c | 2 +- drivers/video/vidconsole-uclass.c | 29 ++++++- include/charset.h | 34 ++++++++ include/video_console.h | 4 +- lib/charset.c | 96 +++++++++++++++++++-- lib/efi_loader/efi_unicode_collation.c | 21 +---- test/unicode_ut.c | 114 +++++++++++++++++++++++++ 9 files changed, 271 insertions(+), 37 deletions(-) --- 2.30.0