Error when entering part of a two-byte symbol
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Start by reproducing the crash with the listed PowerShell and PSReadLine versions, then trace the history-writing path named in the stack trace: WriteHistoryRange, IncrementalHistoryWrite, and MaybeAddToHistory. The fix is done when deleting part of the surrogate pair no longer crashes the terminal or history write, while normal history behavior remains intact.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues, especially the pinned issues.
Exception report
### Environment
PSReadLine: 2.4.5
PowerShell: 7.6.1
OS: Microsoft Windows 10.0.26100
BufferWidth: 102
BufferHeight: 51
Last 102 Keys:
s t a r h s i Backspace Backspace Backspace h Backspace s h i p Spacebar e x p l a i n Enter
Backspace Enter
\ u f 1 8 8 Enter
e c g Backspace h o Spacebar \ u f 1 8 8 Enter
e c g i Spacebar Backspace Backspace Backspace h o Spacebar Enter
e c h o Spacebar � � Enter
e c h o Spacebar Enter
e c h o Spacebar � � Enter
e c h o Spacebar � � Backspace Backspace Backspace Spacebar � � Enter
UpArrow Backspace Enter
### Exception
System.Text.EncoderFallbackException: Unable to translate Unicode character \\uDB82 at index 5 to specified code page.
at System.Text.EncoderExceptionFallbackBuffer.Fallback(Char charUnknown, Int32 index)
at System.Text.Encoding.GetBytesWithFallback(ReadOnlySpan`1 chars, Int32 originalCharsLength, Span`1 bytes, Int32 originalBytesLength, EncoderNLS encoder, Boolean throwForDestinationOverflow)
at System.Text.Encoding.GetBytesWithFallback(Char* pOriginalChars, Int32 originalCharCount, Byte* pOriginalBytes, Int32 originalByteCount, Int32 charsConsumedSoFar, Int32 bytesWrittenSoFar, EncoderNLS encoder)
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.IO.StreamWriter.Dispose(Boolean disposing)
at System.IO.TextWriter.Dispose()
at Microsoft.PowerShell.PSConsoleReadLine.<>c__DisplayClass104_0.<WriteHistoryRange>b__0()
at Microsoft.PowerShell.PSConsoleReadLine.<>c__DisplayClass104_0.<WriteHistoryRange>b__0()
at Microsoft.PowerShell.PSConsoleReadLine.WithHistoryFileMutexDo(Int32 timeout, Action action)
at Microsoft.PowerShell.PSConsoleReadLine.WriteHistoryRange(Int32 start, Int32 end, Boolean overwritten)
at Microsoft.PowerShell.PSConsoleReadLine.IncrementalHistoryWrite()
at Microsoft.PowerShell.PSConsoleReadLine.MaybeAddToHistory(String result, List`1 edits, Int32 undoEditIndex, Boolean fromDifferentSession, Boolean fromInitialRead)
at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken, Nullable`1 lastRunStatus)
Screenshot
Environment data
PS Version: 7.6.1
PS HostName: ConsoleHost (Windows Terminal)
PSReadLine Version: 2.4.5
PSReadLine EditMode: Windows
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 102
BufferHeight: 51
Steps to reproduce
- Write
echo in the terminal. The character code is\udb82\ude30 - Press up and delete the second char of the two byte symbol.
- Crash.
Expected behavior
No crash.
Actual behavior
Crash.
- Langage dominant
- C#
- Étoiles
- 4.4k
- Forks
- 342
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de PowerShell/PSReadLine
-
Get-PSReadLineOption emits the ListView window-size warning, so prompt modules trigger it on every shell startPeut-être pris @thc1006 l’a pris il y a 35 jours. OuverteNeeds-Triage :mag:
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
PowerShell/PSReadLine#5205 ·
-
Needs-Triage :mag:
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
PowerShell/PSReadLine#5195 ·
-
Needs-Triage :mag:
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
PowerShell/PSReadLine#5121 ·
-
Needs-Triage :mag:
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
PowerShell/PSReadLine#5045 ·
-
Area-CommandHelp Issue-Enhancement
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
PowerShell/PSReadLine#3470 · 3 réactions ·
Toutes les issues de PowerShell/PSReadLine
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
shimat/opencvsharp#2154 ·
Les mainteneurs répondent en général sous 1 jour
-
subsystem: UI
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Open-Systems-Pharmacology/PK-Sim#3812 ·
Les mainteneurs répondent en général sous 1 jour
-
[C#]:主页联网更新的提示投稿横幅指向错误Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
PCL-Community/PCL-CE#3652 ·
Les mainteneurs répondent en général sous 1 jour
-
bug effort:S P3
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
nightscout/nocturne#2012 ·
Les mainteneurs répondent en général sous 1 jour