From nobody Fri Apr 26 18:06:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+51207+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+51207+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1574591885; cv=none; d=zohomail.com; s=zohoarc; b=AWoh41CGezvdyXQSK92+ULKRXDZyxSZqZgRiYrcCUPq0ToYF52m1QPnbbTh2DUZefhVyJZkVJ6Hwt7z9HK3PvXDWgG3HGOK9OZeyB7QSNncR3qkJ4zuSq1r3HxV1BX83PVv5Z2oFxpU9Zknw6tvoaV/v6N8wSk3mysiKv0QAWds= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574591885; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=8GSXXBHLekgOpLjaZthYaho7MJN1BlilgiGoVgDg8+k=; b=fL2OzwRq/tbQRFuR8fyJ6xrVo/S/dbXZZ+GvgMoByJtdT4BjzMy2FJ4Om+aggg5HK20UJ0FFnayebpuxJMktBGfGbp0s+V0IDAt/deHJuo6xVdMAzXMz15JUK3yWNqOeemrFFQLKEYdYSHtQsPFVIjvxo21o7iMeUzC1CDdwkuc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+51207+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1574591885133953.8085537780905; Sun, 24 Nov 2019 02:38:05 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id aaaaYY1788612xaaaaaaaaaa; Sun, 24 Nov 2019 02:38:03 -0800 X-Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by mx.groups.io with SMTP id smtpd.web10.8286.1574591882600029715 for ; Sun, 24 Nov 2019 02:38:03 -0800 X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c X-Received: from LT02.fritz.box ([94.114.42.168]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MbirE-1hy6Y83wJa-00dIak; Sun, 24 Nov 2019 11:37:55 +0100 From: "Heinrich Schuchardt" To: EDK II Development , Liming Gao Cc: michael.d.kinney@intel.com, Heinrich Schuchardt Subject: [edk2-devel] [edk] [PATCH] ShellPkg/edit: allow non-ASCII characters in edit Date: Sun, 24 Nov 2019 11:37:49 +0100 Message-Id: <20191124103749.21576-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:XrUYkvFyNPWYeywPZwipmrejkt94mPX/wpIy3S4sfpKEAJHBRIY BFiK77NHoosbOiLZClnMR/I4yOkjlnF9ZOuaTKwWmt8XjSAJ6GI3yIrvY9a7wz6eXtfUEY7 NgQIYpiHVAaowF1e622bbjFedyYuK7hhuz1lmW4qp5vw2AbiDC6JoadyUlqi70Bj0ockHyQ 5UbdroLeMzTXGQj3VJQfg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:DfaYLjEbdCY=:3zD1xRvFSp0XYr3N+PT02r dCkIJCexX0/cbb0f9FB4bxA1q+ogjwuq+ZCFZHA5fqPNt0pcOrxCZ70rxoYUibrotpQmS4pxz 9pQEIYQaiRIqdbFlkNz1f/IkMTrlL/Fji1c+Kt+fsTdfqfWaKYL7F6J8Btk0NYoe9+GOJ3Dpm pqdqFW9ue3Xz5lxStYd6yjLNIkIPMa9NTwf8Y4/5mssbl5BFsmT9L3Z3CCyvGgF6DEd8kb1Z4 9TDG8XYfVmQXWRCnqic0KBk7e8b6THydn+2yVAGGt6ryA4xcUcUusUdKoS6kRVs9ClIgJ7RBY TVJvEA8oAzWdIVsQ/gLtqowmSbvfrY8V1TR2w5QQabG6p0W1qwPDnxalAG7Bi1SiMMXkcCkvY i5HWxZ/2yH+KUtep25Q8X9+utOA8lgv0kJGlc7WX7Ra1PxAmRo2MiJQBHCCiOkLazg19L9s1U wSjf63KA4tbnwfhEqMwDf5jhdoyKrw1f27XIbQl+goOXJR4nbs4b/y3OeocLhP8FQMLQ8Gd56 ZQFQ1GjMDCq8Jh2Wt32MGIvfSAaeLDIU3rVARV+/07Q34C9vxbjQjaW2PwcXiUAwl056XwQHA f74X4uVj3NpCKjUwGHFox3Sbw2fMIGT1S88xFm3ZAh+wVY1I6GAHbJIT6P+VHuRWWDeKfSiaP IBHzxFZpcK4jVli3h/qlHNzSekl5C7HLQRkbJJPwQoTu6qbpL6H6Uttf9glHgU7pAyBf7F8ZZ Yfhi9Z8tZBS14ZBPsfulupEIjW/N1ahBKZQkt/EUY91wtgj1K7B4ip9qPkM6sWRfSI73nABcN zHEuZXoDgxyYLdjq3tzkQA5tV2Mu7eiks5ogkqx0/cqP8CWG4WBvDWe+xyQcsvXzOldTQdCs+ YRYzf8lKqHQunmky4McHz4zIJoYk/eWXpEwDZ5ztaJa62wIkhkJOUZVlRimpZwS+KR19d9Ktc yX74+mva/ymeb/pCIARuDYPnjB4l4rxNpkjBeGR9ZGQyQ0LA2hBCNEzAGLhAOSRRuKLvFB6Gp DDHc/kPKsRXhLjQFNyKb+n6sL5BYjKjcSueS4L0vDWc5KCOipNikyxBrPgDTXOqEgCcsXzX4v xV5rR8rPowfxQ7hmKoDZcID9iV9u9ngy9ZVmPEEpFvD3J9jx2haFJxD2logb0HCfmMuL3Pf2H X5pYKYmiSwwm5dAm3UKJzehAE8Wb4kud9duieeq0ZUsHExZG+tt0UzqgEJbmXGKBl4ZuEAZR4 2wNbEbbDMsPMpf2qqeIUXl4MCTqDMBvkA+qMacdtEZTJ5NBEwGQsmIDc1Sz4= Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,xypron.glpk@gmx.de X-Gm-Message-State: aaaaaaaaaaaaaaaaaaaaaaaax1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1574591883; bh=1btPZpJ+NRrCWUaESIeggLI4enOhHx/GV29SWSvXuvM=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=ghUKhZb8veYCqa3gSKJqGRnpX9Dm2Emow2VbYSVNoQYSegxOMkM1RG/MGwqMP2ywX5K ehJ5MZ28EyR0/kvAs6/C6iFfxrWQ2fjTrpj13AVfuXJiuzwFmVvDOWNyMVzFoplXuBRXC 3CjNDD6OqPMiTFxF8WQYmnpqfPRufxIyyh8= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2339 Currently it is not possible to add letters outside the range U+0020 - U+007F to a file using the edit command. In Unicode the following are control characters: * U+0000=E2=80=94U+001F (C0 controls) * U+007F (DEL) * U+0080=E2=80=94U+009F (C1 controls). For reference see: * https://unicode.org/charts/PDF/U0000.pdf * https://unicode.org/charts/PDF/U0080.pdf So the characters we should exclude from the file buffer are: U+0000 - U+001f, U+007f - U009F Allow all other characters as input to the file buffer in Unicode mode. Allow only ASCII characters as input in ASCII mode. When saving a file in ASCII mode replace non-ASCII characters by a question mark ('?'). Signed-off-by: Heinrich Schuchardt --- Resent due to a typo in Limings email-address. --- .../Edit/FileBuffer.c | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c = b/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c index fd324cc4a8..12235e4e4b 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c @@ -1360,6 +1360,8 @@ GetNewLine ( /** Change a Unicode string to an ASCII string. =20 + Non-ASCII characters are replaced by '?'. + @param[in] UStr The Unicode string. @param[in] Length The maximum size of AStr. @param[out] AStr ASCII string to pass out. @@ -1378,8 +1380,12 @@ UnicodeToAscii ( // // just buffer copy, not character copy // - for (Index =3D 0; Index < Length; Index++) { - *AStr++ =3D (CHAR8) *UStr++; + for (Index =3D 0; Index < Length; Index++, UStr++) { + if (*UStr < 0x80) { + *AStr++ =3D (CHAR8) *UStr; + } else { + *AStr++ =3D '?'; + } } =20 return Index; @@ -2154,9 +2160,16 @@ FileBufferDoCharInput ( =20 default: // - // DEAL WITH ASCII CHAR, filter out thing like ctrl+f + // Do not add Unicode control characters to the file buffer: + // + // * U+0000-U+001f (C0 controls) + // * U+007f (DEL) + // * U+0080-U+009f (C1 controls) + // + // Do not add non-ASCII characters in ASCII mode. // - if (Char > 127 || Char < 32) { + if (Char < 0x20 || (Char >=3D 0x7f && + (Char <=3D 0x9f || FileBuffer.FileType =3D=3D FileTypeAscii))) { Status =3D StatusBarSetStatusString (L"Unknown Command"); } else { Status =3D FileBufferAddChar (Char); --=20 2.24.0 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#51207): https://edk2.groups.io/g/devel/message/51207 Mute This Topic: https://groups.io/mt/61872994/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-