From nobody Fri Apr 26 18:59:41 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+51205+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+51205+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1574590533; cv=none; d=zohomail.com; s=zohoarc; b=VNow4ky6i9dDSGbdmaJFiclEmHsW7cIG+eTtmBJ2CwSFaYgdhmqTRnSdyXpBf0AYZKgaQmi4yAIW9B6ISBO7trYpt5KS3cQ7b3ETdkfGOCr8BHLke7lwx8GucLfQEBaTWrrlwJ1/hJxvJTZOazjMqa+EsJgWGUWMJA51pU5hifc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574590533; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=JO/iDDL04E/wpJJ3RpTexdle1KXKP1JxRaZbuUq5wAI=; b=dHjQXwtxmYP7Ie7gUrWZR5VH3WT3SXNhv7lFD2vYPS7zjI1BGWHRwRdOYk25NFRYxQTnXaz30vQLcWX8U3SUOqpc9/brzANUBLqxaaJqimtR6X0IJ8Pfj/sxzs+Ip2rfkyz4wO9ohVOVCrgcl4uiZwVKGUhG6WJ8yZ/LsRQVvW8= 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+51205+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1574590533223807.7216976317284; Sun, 24 Nov 2019 02:15:33 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id aaaaYY1788612xaaaaaaaaaa; Sun, 24 Nov 2019 02:15:32 -0800 X-Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by mx.groups.io with SMTP id smtpd.web10.8146.1574590530243743714 for ; Sun, 24 Nov 2019 02:15:30 -0800 X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c X-Received: from LT02.fritz.box ([94.114.42.168]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MfYLQ-1ht8RV2vNo-00fzSE; Sun, 24 Nov 2019 11:15:21 +0100 From: "Heinrich Schuchardt" To: EDK II Development , liminig.gao@intel.com 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:15:12 +0100 Message-Id: <20191124101512.20964-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:FEddyqiArzPoO9p9gU/jqlHwSawYQ3sRBX5rO5MB1kAzcAJfMoO sHz6uwnmPdhH1AcChB+ScU7CFLMh2GEyYchUYqdJ41Rh72h+Zf+QNRDOpdq3aPMOKzOKEuD HqHUx3mMkhGcyHlgQ2GKN4kY+rMfRoSL7/eBPG0djK9KxcLMJASLLESvg+ii5dgFWeSaCix JTMfs4TnB/+u86TAltG2Q== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:udNQi9UrLYk=:YvBwS36XcMhAMyCWjMgGuH rDfAyva9KKR08QqkFkGWnxAuzdmxLSjdBI1RdDyUEBy7weN03bA0e5xIaorLllzYa8pCK9omq kUnNGibIrfU16gR8oLZgshN6D01rQzulAU8lgOxrTuK3oHvyA67uVmYuStfyEt2VshJeeoz7z UlO+MEujHIKDVhsK/mqzpudejv7e+fvcHGUoC8YKjODLCqp2M8088+7zHzXp9vk4UfdxIzFYs UQ7DFq5rGj/qBkPCNOp0nC2BhKt1DcAHfrNX4qTG2bWe8gqMm9yVrCpweXThMnfkzOBQdseok 4x9Dee2h6ZgjWHx3Dm7o3cmw3PruQfKX4MAEDZfKcb+UgUCEHwttcwoWHIUODObHASZ6hMxUh oVnmMhdS4qrCDSQHC54tZA+LYCZ//rEeysOlBYfhLqA03jiv+wbpU/t+tZ7XqUygdwf9xI9Tx WNrH4LEpoLcR/p+fZz4TT+2pgK1gpw/gWbGZ0K6SFjUGunWQb/IJRwYNyRCYHAo8buNuJt9p7 tJPy0jBDcsLCNVihJw1rr70nOFAAoWg1OnOAqDMD94fLk6d3sAASQBXa/xmJ4SLmYb1s1Lcai hGX/O4I6h3KDebLi7WNZuotykRflJDULP+LC/mFLnFox01k/RCDepUJKcH8HzIBM4IGxS0gbu iC4hiNmUuen/SnqGG5qe5eF6P14Nal2DoVho35l0MEqd+Lzvw55d2jX7ye4QB5upt4Ep4EVFY bdVG8XAKMxWRxZ7f1w+p5Lp1jd0MgKl5LBqL3ttqW8mkZ2reGwGqcjUKXhCqbjyWxqJcNFxDu +XRskQEvhCHpdftOGjneWAuDLnqWvGcp46P4b3xLauaxRQthVp97r/EeJRD56AXKFh9t3jFDa RvDNq2W1B6KOWLdPa4Qdd8MVkhrzyvwju7lY+lDDmNTnpuaadTwq20flKBEDCS3DYItIokxZl yDK5OlqnMgKomAMRARAfaHlBVWuu0w8dJbr2Oyu/VFs1f77uY8E4BhhToCpVrrb7ACK+UZyoF hGs6mHzUSov1G6psJt0BMan9jxxy26PhWf5ViQIYIQf5OAvTJKj0vFr7n5J7n/qjYOH4GWt7E T9d0KFuJhU2eD0fZsnwXzlQSG+emQmdfT/zZnJ+G5NvNM3lC3S8eIgxtjGa6QFpADmYG9GZ5p 4JYvfxEE7Vwdl2TY4Qer/q3jEa9QbjFRKrBzm4+EcS7MVKH5pbRy/gBwVoaoHb0wtRRF9ldiX Klo8Y8fBT6nZkubWkRmHi4xVVRnY48uY0g6Pqy+UUC4MGgiBH7ChwJIjdR5g= 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=1574590532; bh=w6UV5PRp4qIFfre/d4a9c02F0kJNUUzo2bF7Kb5Mp0Q=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=I18tl0LEXBvIVieU71dhBNTxNiEQDLi3sUPqaiWvrhjKsIwiS9UOeNDgDok0PF05Szj A8Qj8wO0B/3utLetdSExnb7hPj3Vrdifosb73UxDAdGHz1K//oAiNh1Ja+GPhWuCr4FOP PksZqV+wAQOF6HAciHvUxGlF8bIq4bO6OfI= 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 --- .../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 (#51205): https://edk2.groups.io/g/devel/message/51205 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-