Skip to content

Commit

Permalink
Fix the DECTCEM reset position in the conpty stream (#17148)
Browse files Browse the repository at this point in the history
## Summary of the Pull Request

When the conpty renderer determines that it needs to hide the cursor,
it does so by inserting a `DECTCEM` reset sequence at the start of the
output buffer, assuming that is the start of the frame. But when the
`_noFlushOnEnd` flag is set, you can have multiple frames pending in the
buffer, and the `DECTCEM` sequence will then end up in the wrong place.

This PR fixes the issue by saving the buffer size at the start of the
frame, and using that saved offset as the insert position for the
`DECTCEM` sequence.

## Validation Steps Performed

I have a game that was frequently affected by this issue (the cursor
would be visible when it was meant to be hidden). With this PR applied,
it now works perfectly.

## PR Checklist
- [x] Closes #15449

(cherry picked from commit ef318a1)
Service-Card-Id: 92457089
Service-Version: 1.19
  • Loading branch information
j4james authored and DHowett committed Apr 30, 2024
1 parent d97f49b commit 244549a
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/renderer/vt/XtermEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ XtermEngine::XtermEngine(_In_ wil::unique_hfile hPipe,
// visible, then PaintCursor will be called, and we'll set this to true
// during the frame.
_nextCursorIsVisible = false;
_startOfFrameBufferIndex = _buffer.size();

// Do not perform synchronization clearing in passthrough mode.
// In passthrough, the terminal leads and we follow what it is
Expand Down Expand Up @@ -112,7 +113,7 @@ XtermEngine::XtermEngine(_In_ wil::unique_hfile hPipe,
// by prepending a cursor off.
if (_lastCursorIsVisible != Tribool::False)
{
_buffer.insert(0, "\x1b[?25l");
_buffer.insert(_startOfFrameBufferIndex, "\x1b[?25l");
_lastCursorIsVisible = Tribool::False;
}
// If the cursor was NOT previously visible, then that's fine! we don't
Expand Down
1 change: 1 addition & 0 deletions src/renderer/vt/state.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ void VtEngine::_flushImpl() noexcept
{
const auto fSuccess = WriteFile(_hFile.get(), _buffer.data(), gsl::narrow_cast<DWORD>(_buffer.size()), nullptr, nullptr);
_buffer.clear();
_startOfFrameBufferIndex = 0;
if (!fSuccess)
{
LOG_LAST_ERROR();
Expand Down
1 change: 1 addition & 0 deletions src/renderer/vt/vtrenderer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ namespace Microsoft::Console::Render
protected:
wil::unique_hfile _hFile;
std::string _buffer;
size_t _startOfFrameBufferIndex = 0;

std::string _formatBuffer;
std::string _conversionBuffer;
Expand Down

1 comment on commit 244549a

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@check-spelling-bot Report

🔴 Please review

See the 📜action log for details.

Unrecognized words (3008)
aalt
abaixo
abajo
Abandonner
Abbastanza
abbia
abbinamenti
abbrechen
aberta
aberto
Abilita
Abilitare
abilitata
abilitato
abre
abreviado
abrir
Abschnitt
Abstand
Abteilung
abvm
accedere
accedi
accelerazione
accentuato
Accepte
Accertarsi
acceso
accessi
accesso
Accetta
acci
acciaio
acciones
Aceitar
Acelera
aceleraci
Acepta
Aceptar
Acerca
acero
acessar
acesso
acima
acontece
acrescentado
acrilico
acrylique
Acrylmaterial
actif
activ
activar
Activer
activez
activo
actualizaci
actualizaciones
actualizar
actualmente
actuel
actuellement
adiacente
adicionais
adicional
Adicionar
adjacente
adjuntan
Adjuntar
administraci
administrador
administrateur
admite
advertencia
Advertir
adyacente
afectar
affichage
afficher
agente
aggiornare
Aggiungi
aggiuntive
aggiunto
Agor
agrandi
agrandie
Agrandir
Agrega
Agregar
ahicon
ahora
ainda
ajki
ajout
Ajouter
Ajoutez
ajusta
Ajustar
ajuste
ajustement
Ajuster
Aktion
Aktionen
Aktionssuchmodus
aktive
aktivem
aktiven
Aktiver
aktivieren
aktiviert
aktivierter
aktualisieren
Aktualisierungen
aktuell
aktuelle
aktuellen
Akzeptieren
Akzeptiert
alcuni
Alignement
alinea
Alineaci
alinha
Alinhamento
alisa
all'altra
all'avvio
all'indice
all'indietro
all'interno
all'ultima
all'ultimo
alla
alle
Allega
allegano
Allgemein
allinea
Allineamento
almacenada
almeno
alrededor
altera
alterados
alterar
alternador
alternancia
alternar
altre
altri
altro
altura
amarelo
ambiente
amministratore
amministrazione
amplia
ampliar
analisar
analisi
analizar
analizzare
Analysieren
anche
ancho
andere
anderen
Andernfalls
anexadas
anexar
Anfang
Anfordern
angef
angefordert
angegebene
angegebenem
angegebenen
angehalten
angepasst
angewendet
angezeigt
angrenzenden
anidado
animaciones
animazioni
aninhado
anmelden
Anmeldungen
annehmen
annidato
Annulla
anomalo
anpassen
Anpassung
anstatt
anstelle
anteprima
anteriores
anwenden
Anwendung
Anwendungsanforderungen
Anwendungsdesign
Anwendungstitel
Anwendungsversion
Anzahl
anzeigen
Anzeigesprache
anzich
anzumelden
aos
apagar
aparece
aparecem
aparecen
aparecer
apariencia
apenas
aperta
aperto
Apice
Aplica
aplicaci
aplicadas
aplicados
aplicar
aplicativo
aplikace
aplikaci
aplikacije
aplikaciji
Aplique
appara
apparaissent
Apparences
appellera
appena
Applica
applicati
applicazione
applicazioni
appliqu
appliquent
Appliquer
apportare
apporter
appunti
appuyez
Apre
Apri
aprire
aqu
aqui
Arancione
Arbeitsverzeichnis
archivo
ardesia
ardhshme
argomenti
Argumenten
argumentos
armazenadas
arokite
arquivo
arresta
arrivo
artefactos
Artefakten
artefatos
artefatti
ascoltatore
asegurarse
asignaci
Aspecto
Aspetti
aspetto
assicurarsi
Assicurati
assim
associa
associazione
associazioni
Assurez
atalho
Atidaryti
ativado
ativar
ativo
atr
attiva
attivata
attivi
attivo
attorno
attualmente
atual
atualiza
atualizadas
atualmente
Atv
atvis
aucun
aucune
auffindbar
aufgerufen
aufgetreten
Aumenta
Aumentar
aumento
Aunque
aurrebista
aurrebistarekin
aus
ausblenden
ausente
Ausgabe
ausgeblendet
ausgerichtet
ausgibt
Ausnahme
ausrichten
Ausrichtung
austauschen
Auswahl
Auswahlendpunkt
auszublenden
autentica
autenticaci
Autenticado
Autenticato
autenticazione
Authentifi
authentification
Authentifiziert
Authentifizierungs
automatica
automaticamente
Automatico
automatique
automatiquement
automatisch
Automatisches
autorisations
autorizzazioni
autour
autres
auxquelles
Avaa
avanc
avanti
avanzada
Avanzado
avanzate
avec
avertir
avertissement
avez
Avisar
avons
avr
Avvertenza
avvia
avviata
avviato
avvio
Avvisa
avvisi
Avviso
azione
azioni
azul
azulado
Baharu
baixo
Balken
barrato
Basculer
basculez
beachten
Bearbeiten
beenden
beendet
Beendigungsverhalten
befehl
Befehle
Befehlen
Befehlsausgabe
Befehlsname
Befehlspalette
Befehlszeile
Befehlszeilenanwendung
Befehlszeilenmodus
beginnend
Begriff
behandelt
bei
beim
beispielsweise
benachbarten
Benachrichtigungsstil
Benutzerdefiniert
benutzerdefinierte
Benutzereinstellungen
Berechtigungen
bereich
Bereiche
Bereichsanimationen
bereitgestellten
bereits
berria
Beschleunigung
besitzen
besser
betonter
bevorstehende
bezieht
bhfuil
bilan
bild
Bilddateipfad
Bildlauf
Bildlaufleiste
Bildlaufmarke
bildschirm
blau
Blauviolett
bleiben
blendet
blinkende
blocchi
blocco
Blockauswahl
Blockelement
bloco
bloque
bloquea
blu
bluastro
bordi
Borrar
branco
brilhante
brillant
brillantes
brillanti
Brun
Buksan
Buscando
buscar
cada
cadena
caixa
cambiados
Cambiando
cambiar
cambies
cambios
caminho
Cancelar
Cancella
Caneri
cantidad
caractere
caracteristicilor
carattere
caratteri
caratteristiche
cargar
caricamento
caricare
Carmes
Carmim
carregado
carregamento
carregar
cas
casella
caselle
caso
cela
celui
Centr
centrada
Centrado
Centralizado
Centralizar
Centrar
Centrarse
Centrato
Cerca
cerrado
cerrar
Certaines
certeza
Certifique
ces
cet
cette
chamado
changez
chaque
charg
chargement
Charte
chaves
cheia
chiamata
chiaro
chiavi
chiqish
Chiude
chiudere
Chiudi
chiusa
chiuso
chiusura
choisir
choisissez
choix
cian
ciano
cibler
ciel
cielo
Cierre
Cinza
ciri
clara
Clareia
clareza
claridade
clic
clica
clicar
cliquables
cliquant
cliquez
codice
coincidan
coincidencia
coincidente
Coincidir
colar
collegamento
coller
collez
coloca
colocada
colonne
colore
colori
columnas
colunas
comandi
comando
combina
combinaci
combinaciones
combinaison
combinazione
combinazioni
comentarios
commande
commentaires
commoncontrols
commutatore
como
Compactar
Compacto
Compatta
Compatto
compilar
compilare
completa
completata
comportamento
comportamiento
comportement
comporter
Composizione
comprendidos
compresa
compresi
Comprimento
compris
Comprueba
Compruebe
computador
Comunicazioni
comunque
conceda
concedido
Concentrer
concesso
conex
conexi
confidentialit
configur
configura
configuraci
configuraciones
configurado
configurando
configurar
configurare
configurarla
configurarlo
configurato
configurer
configurou
confira
conjunto
Conmutador
connectez
connessione
connexions
conocida
Consente
considera
considerado
considerazione
consola
conta
contenant
contendo
contenente
contenga
contenido
contenir
contenuto
contestuali
contexto
contextuel
contextuelles
contiene
contient
continuaci
continuar
continuare
contrario
contrassegna
contrassegnare
contrassegni
contrassegno
contrasto
controla
controlador
controlam
controlat
Controlla
controllano
Controllare
Controllo
convertisseur
coordenada
coordinata
coordonn
copiar
copiare
copie
COPYFROMRESOURCE
corda
corde
correctamente
corresponda
correspondance
correspondant
correspondante
corresponde
correspondente
correttamente
corretto
corrisponda
corrisponde
corrispondente
corrispondenza
Cosa
cosecha
couleurs
cours
CProc
creadas
crear
creare
crearne
creata
creato
Crenatura
criada
criado
criar
Crie
criterio
cronologia
cuadro
cuando
cuanto
cuenta
cui
cunha
curseur
cursore
Cursorfarbe
Cursorform
Cursorh
cych
dabei
Dadurch
dalam
dall'applicazione
dalla
dann
dans
Darstellung
Darstellungen
dass
dastlabki
datang
Datei
Dateipfad
Dateispeicherort
Datenschutzrichtlinien
dauern
Davantage
davon
ddod
deaktivieren
deaktiviert
Debuggen
decida
decidere
Deckkraft
deficiente
definidas
definido
definierte
definir
definiti
degli
deixando
dejarlos
deletar
Delimitadores
Delimitatori
dell'applicazione
dell'emoji
dell'immagine
dell'indice
dell'interfaccia
delle
dello
demande
demasiadas
demorar
demselben
denen
dengan
Denominatore
densidad
dentro
depende
depois
deprecata
depuis
depurador
Depurar
derecha
Derfynell
derni
derniers
derzeit
Desabilita
desabilitada
desabilitado
Desabilitar
desactivar
Desastre
desativar
Descarta
Descartar
Deschide
Deschidere
desconhecido
desconocido
desde
desea
deseja
desejado
Deseleziona
desempenho
desenfocada
desenha
desenho
desfocada
deshabilita
deshabilitada
Deshabilitar
desidera
desiderato
Desktophintergrund
Desktophintergrundbild
desplazamiento
Desplazar
desplazarse
desplegable
despu
dessin
dessine
desta
destra
desuso
detalhe
detalle
Detectar
detectaron
determinado
dettaglio
detto
devez
devrez
Dialogfeld
dialogo
dibuja
dibujo
diese
diesem
diesen
dieser
Diferencia
Diferenciar
diferente
difus
difusi
digitaliza
digitando
digitar
digitazione
Digite
dimensione
dimensioni
Diminuer
Diminuir
dinamicamente
dipende
direcci
direcionar
directo
directorio
direita
direito
diren
direzione
dirigirse
Disabilita
disabilitata
disabilitato
disattiva
disattivato
discesa
discrezione
dise
disegna
Disminuir
disponibile
disponible
Distancia
Distanza
Distinci
distintos
Distinzione
diverso
dividere
Dividi
dividida
dividido
dividir
divis
divisione
dnom
doble
Documenta
Documentaci
Documentazione
Dodgerblau
Dokumentation
donn
dopo
doppelklicken
Doppelter
doublons
Dovrai
Drittanbietern
droite
Dropdownliste
duas
Dunkel
Dunkelgrau
Dunkelorange
Duplica
duplicado
Duplicar
duplicatas
duplicati
Duplikat
Duplikate
dupliquant
Dupliquer
duplizieren
Duplo
durch
durchscheinende
Durchsuchen
dynamiquement
dynamisch
dzek
dzie
eccessiva
Echec
edi
editando
Editar
eeltutvustusega
eelvaade
eelvaates
eelversioon
efecto
efeito
effectu
effectuer
Effekte
effets
effetti
effetto
Effettua
effettuato
eginbideen
egongo
eigenem
eigenen
Eigenschaft
eiginleikum
eignen
ein
eindeutig
eine
einem
einen
einer
einfacher
Eingabe
Eingabeaufforderung
Eingaben
EINGABETASTE
Eingabezeile
eingeben
eingerichtet
Einstellung
Einstellungen
Einstellungsdatei
Eintrag
Einzelne
Einzelzeile
einzurichten
eixos
ejecuci
ejecuta
Ejecutable
ejecutando
ejecutar
ejes
ejjin
elas
ele
elegir
elementi
elemento
elenco
elige
elija
elimina
eliminar
eliminare
emite
empacotado
empaquetar
empezar
empfangen
empresarial
empresariales
encerrado
Encerrar
encima
encontr
encontrada
encontrado
encontrar
encontraron
encontrou
encre
encuentra
endast
endroit
enfoque
enger
enlazadas
enquanto
enregistr
enregistrer
entanto
entfernen
entfernenden
entfernt
Entfernung
enth
enthalten
entorno
entra
entrar
entscheiden
entweder
Enviar
environnement
Envoyer
equipo
erano
Erben
erbt
Eredita
ereditato
erediter
erfolgreich
erfolgt
erforderlich
erforderlicher
erfordert
Ergebnisse
erkennen
erlaubt
Ermessen
erminal
erneut
erneuten
erreur
erro
errore
errori
erscheinen
Erscheinungsbild
ersetzen
Ersetzt
erste
erstellen
erstellt
erstellter
ersten
erweitern
Erweitert
erweiterten
Erweiterung
Escala
Esci
esclusiva
esclusivi
escolha
escolher
Escriba
escribir
escritorio
escritura
escucha
escurece
escuro
esecuzione
Esegui
Eseguibile
eseguir
eseguire
eseguita
esempio
esikatselu
esikatselussa
esiste
esistente
esistenti
esiversio
eskuragarri
espa
espaces
espaciado
espacio
espandere
Espandi
Especifica
especificada
especificado
Especifique
Espesor
Espessura
Esporta
esportare
esportato
esquema
esquerda
esquerdo
essas
essere
esta
establece
establecer
establecida
Estableciendo
este
esteja
estesa
estilo
estiver
estiverem
esto
EXACTSIZEONLY
Examinar
excepto
exceto
exclu
exclua
excluir
exclusif
exclusives
exclusivo
execu
executada
executado
executar
exemple
exibe
exibi
exibida
exibir
existante
existe
existente
existiert
exklusiv
expandir
expansi
Experimentellen
expirar
exploraci
exportado
exportar
exportieren
exportiert
Exposant
extens
extensi
extremidade
facoltativo
fai
falha
falta
Farb
Farbauswahl
Farbe
Farben
farbschema
Farbschemaname
Farbschemen
faz
fazer
fechado
fechar
Feche
fehlende
Fehler
fehlgeschlagen
fehlschl
fehlte
feito
Feldzeichnungszeichen
Fenstergr
Fensternamen
Fensters
ferm
fermer
Festbreitenschriftarten
festgelegt
festgelegten
festlegen
fett
Fettformatierung
FFFDb
ficar
ficha
fichier
figlio
filas
filho
fina
finali
finalizaci
finden
finestre
fissa
fitur
fizer
flotante
focado
focalizado
Focalizar
focalizzato
Focar
foco
foi
Fokus
Fokusbereich
Fokusmodus
fokussieren
fokussierte
fokussierten
folgen
folgenden
fonc
fonctionnalit
fonctionne
fondo
fonte
formas
formata
Formati
formato
Formattazione
fornecida
fornecido
fornito
forsko
forsmak
fortsetzen
Fosgail
fotogramas
fotogrammi
fourni
Fracciones
fractionnement
fractionner
franja
Frazioni
frente
fuente
fuera
funciona
funcionalidades
functies
fundo
funkc
funkci
funkcij
funkcija
funkcji
funksjonar
funksjoner
Funktion
funktioner
funktioniert
Funktiounen
funktsioonide
funziona
funzionalit
fuoco
fuori
futuras
futuri
futuros
gaid
garantir
geben
gebundenen
geerbten
gefunden
Gefundene
geladen
gelb
Gelbbraun
Gemessen
generados
generar
generare
generati
generato
genere
generen
generiert
generierte
geordneten
gerado
Geral
geralmente
gerar
Gesamten
geschlossen
geschlossenen
gesetzt
gespeichert
gespeicherte
gespeicherten
gestartet
gesucht
Geteilte
geteilten
ghleusan
giallo
Gibt
gleichen
Gleichm
gli
glifi
glifos
Glocken
Glyphen
glyphes
grafica
Grafiktreiber
graphique
grassetto
Graustufe
grava
gravar
grigi
Grigio
griglia
grises
grosor
guardada
guardado
guardar
guia
gyda
haben
haber
habilita
habilitada
habilitado
Habilitar
hace
hacer
hacia
hai
haja
Halb
Halbfett
hamarosan
hamuq
haramai
hashtable
hellblau
helles
hellgelb
hellgr
Helligkeit
helllila
hellrot
Hellt
herdado
herdar
Herde
heredado
heredar
Herede
Hier
hierzu
HIGHQUALITYSCALE
Himmelblau
hintergrund
hintergrundbild
Hintergrundbilddeckkraft
Hintergrunddeckkraft
Hintergrundfarben
Hinweise
historique
hodnota
horizontale
horizontalement
horizontalmente
hpj
ici
icona
ICONINFO
icono
Identifica
Identificar
identifizieren
idioma
Ifta
ignor
Ignora
ignorada
ignorado
ignorando
ignorata
ignorati
ignorato
ignorieren
ignoriert
Igual
ihn
Iho
Ihr
ihre
Ihrem
Ihren
Ihrer
IImage
ikuspegia
ikuspegian
ILC
ILCo
ILD
Ilhas
illisible
ils
Ilumina
imagem
imayna
imbriqu
immagine
immer
Immetti
Immettine
impactar
impedir
impedire
implementa
implementaci
implementazione
Implementierungsdetail
Impossibile
imposta
Impostare
impostato
impostazione
impostazioni
imprevista
imprevisto
ina
inactif
inactivas
inactivo
inaktiv
inaktive
inativas
inativo
inattendue
inattive
inattivo
inbegriffen
inclu
incluida
incluindo
incolla
incollare
incorporati
independiente
indicado
indicateur
indicatore
indietro
indiqu
Indique
indistinguibile
indistinguible
individuais
individuales
individuels
inesperada
inesperado
Inferiori
influiranno
Infobereich
informa
informaci
Informationen
Informativa
informazioni
Ingrandisci
ingrandita
ingrandito
Inhalts
inici
inicia
iniciada
iniciado
iniciais
inicial
iniciales
inicializa
iniciar
iniciarse
Inicie
inicio
initiale
inizia
iniziale
iniziali
inizio
Inserir
Inserire
Insira
instalada
Instalar
Instale
Installa
Installare
installata
installati
Installez
installieren
installierten
instancia
Instanz
Instanzverhalten
integrada
integrados
Integrierte
integrierten
inteira
intenso
Intera
Interacci
Interaktion
Interazione
Intercambiar
intercambio
interfaccia
interfaz
intermedio
interna
interno
intero
Interrompi
Interrumpir
intervallo
intorno
Introdu
Introducci
Introduzione
introuvable
Invadir
invalidando
invalidar
invalide
invece
Invia
INVIO
invocar
ipravovan
Ireki
islas
isole
isso
istanza
istanze
izquierda
jamais
janela
Jaunais
jaune
jedes
jedoch
jetzt
Joindre
joni
jum
jumu
jusqu
kanar
Kanareyka
Kanarinac
Kanariya
kann
kaqpi
karatteristi
Karminrot
kasqanniyuqkuna
kein
keine
Kelgusi
kenmerke
Kennzeichen
keybind
Kichasqa
kichay
Kleinschreibung
klickbar
Klicken
kok
komande
Kombination
kommande
Kommas
kommende
Kompakt
kompiliert
konfiguriert
konnte
konnten
Konsolenhost
Kontextmen
Konto
Kontrast
kontrolna
kontrolv
Koordinate
Kopie
kopieren
kopiert
kullan
laissant
Laisser
lanc
lancement
Lancez
laquelle
Laranja
Largeur
larghezza
largura
Lascia
lasciandoli
lassen
lautet
lavoro
lectura
leeres
Leerzeichen
leggerezza
Legt
leichter
Leistung
leitura
lequel
letra
lettere
lettura
letzten
leuchtend
leuchtenden
leurs
liegen
liegt
limone
Limonengr
Limpar
linee
linhas
LINKSKLICK
Linktyp
lista
liste
localis
localizar
localizzati
logiciel
logon
Longitud
lorsqu
lorsque
los
LPCCH
lugar
lumineux
luminosidad
luminosit
Lunghezza
lungo
Maak
machen
mai
maintenant
MAIUSC
maiuscole
mancante
mancava
Mandanten
Mandantenname
Mandantennummer
manera
manquante
marca
marcar
marin
Markierung
Markierungen
Markierungsmodus
Marquer
Marrom
Marrone
masqu
Masquage
Masquez
materiale
matriz
Mauszeiger
maximieren
maximiert
maximierter
Maximiertes
maximis
maximizada
maximizado
Maximizar
medi
mediali
Mediano
Medido
megjelen
Megnyit
mehr
mehrere
memorizzate
mendatang
menor
menos
mensagens
mensajes
mesmo
messa
messaggi
messaggio
Mesur
mesure
mewn
mga
mientras
mindestens
Minimieren
Minimierung
minimizado
Minimizar
Minimo
minuscole
Minuten
minuti
minutos
mismo
Misurato
mithilfe
Mitte
Mittleres
modalit
modifi
modifica
modificadas
modificador
modificar
modificare
modificate
modificati
modifiche
modos
moins
moniteur
monoespacios
monospaziato
morado
mostrado
mostrar
mostrare
mostrarlo
Mostre
movi
movida
movido
muestra
muestran
muestren
Mueve
muitas
multiplo
muschio
Musuq
Nachfolgend
nachgestellten
nadchodz
nadolaze
Naranja
nas
nasconde
nascondere
Nascondi
nascosti
nascosto
naudojant
Naujasis
Navega
Navegaci
nda
neben
necesario
necessario
negli
negra
neie
nel
nell
nell'area
nell'elenco
nell'ordine
nella
nelle
Nenhum
nenhuma
nero
nesse
Nessun
nessuna
Nessuno
nesta
neste
neu
neue
neuen
neuer
Neustart
Newydd
Nie
nieuwe
ning
Ninguno
noch
nodweddion
noircit
nombre
NONCONST
normale
Notas
notifica
notificaci
nou
Noul
nouvel
nouvellement
novamente
Nua
nuanceur
nube
nueva
nuevo
Numeratore
numr
nunca
nuova
nuove
nuovo
nur
nuvem
nuwe
nya
obbligatorio
oben
oberer
oberhalb
oberste
obligatoires
Obri
Obrir
obtener
ochish
ocorrer
Oculta
ocultados
ocultar
oculto
oder
Odpri
ogni
ohne
ominaisuuksien
omite
omitir
onde
onglet
oop
opacidad
opacidade
opacit
opcional
opciones
Openen
operazione
opkomende
opmaachen
Opna
Opne
oppure
optionaler
Optionen
opzione
opzioni
ordem
orden
Ordinali
ordinateur
Ordinaux
ordre
orienta
orientaci
orientamento
orizzontale
orizzontalmente
Oscail
oscurece
oscuro
Otev
otra
otro
ottimizzato
Otvori
Otvoriti
Otw
outra
outro
ouvinte
Ouvrez
ouvrir
pacchetto
padr
Padronize
pai
painel
paketiert
palavra
paleta
paneles
pannello
pantalla
paparating
papel
papiers
paraafishim
Paraafishimi
paraafishimin
Parameterwert
Parametri
parametro
Parcourir
parede
parfois
parit
parola
Parsen
partant
partendo
partir
partire
pasa
pasar
passa
passagem
passar
passare
passato
passi
passiert
Pedice
pegar
peint
pela
pelo
pensez
percentuale
percorso
perfil
perfiles
perfis
permettent
permisos
Permitir
pero
personaje
personalizado
Personalizar
personalizzate
personalizzati
Personalizzato
personnalis
pesado
pesantezza
pesquisa
Pesquisando
Pesquisar
pesta
peut
peuvent
Pfad
phico
phicon
piena
piensa
pilote
piml
Piscar
pizarra
plac
plano
platziert
plein
plusieurs
pode
podem
poder
podgl
poids
pontos
porcentagem
porcentaje
porcentual
porque
portablen
portant
portapapeles
portierbar
posi
posible
posici
positionnement
posizionamento
posizionata
posizione
possono
potrebbe
potrebbero
pouco
pourcentage
Pourpre
pouvez
pouvons
pratinjau
pratonton
precedente
precisar
precisem
predefinita
predefiniti
predefinito
predetermina
predeterminada
predeterminado
Predogled
predogledom
predogledu
predstoje
preencher
preenchimento
pregled
pregledom
pregledu
preliminar
premere
premi
presentaci
presente
presenti
presenza
presi
presionar
Presione
presse
pressionamento
pressione
prestazioni
prestes
preterida
preto
Pretpregled
pretpregledom
previ
previa
previsualizaci
previzualizare
Previzualizarea
prihajajo
primario
primeira
primeiro
primera
prioritaire
prioritario
privacidad
privacidade
probabile
probablement
probl
problema
Problembehandlung
Procesado
procesamiento
proceso
processo
Procurar
prodotto
producir
producto
produit
Produktinformationen
produto
profil
Profilbeendigung
Profileinstellungen
Profileinstellungsseiten
Profilen
profili
Profilnamen
profilo
programie
propias
propiedad
proporcionada
proporcionado
propres
propri
propriedade
propriet
prossima
provavelmente
provisto
provocar
Prozent
prozentuale
Prozess
Prozesses
pruebas
pseudonyme
pudieron
pudo
pueda
puede
pueden
pulsante
qawarina
qaway
qu'administrateur
quadros
quand
quantit
quella
Quellcode
quelli
quello
questa
queste
Questi
questo
quiera
quiere
quita
quitar
quz
raccourci
rapida
razm
realiz
realizar
Reanudar
recarregar
receba
recente
recentemente
recenti
recevoir
rechargement
Rechercher
Recherchez
rechteckigen
rechts
rechtzeitig
reci
reciba
reciente
recientemente
reconnecter
rectangulaire
recuperado
recuperarse
recurso
Redefina
Redefinir
Redesenhar
Redessiner
Redibujar
redimensionada
redimensionamento
Redimensionar
redimensionn
redimensionne
Redimensionner
redor
reducir
reduzir
reemplazarlo
refere
referencia
Registerkarte
Registerkarten
Registerkartenbreite
Registerkartenfarbe
Registerkartenleiste
Registerkartenname
Registerkartennamen
Registerkartentitel
Registerkartentitelmodus
Registerkartenzeile
registro
Regola
regolazione
reibungslos
Reihe
Reihenfolge
Reimposta
reinicializa
reiniciar
relativa
rellenar
rellene
relleno
Remonter
removidas
removido
remplac
remplace
remplacer
Remplacez
remplie
remplir
Remplissage
rencontr
renderiza
renderizador
renderizar
renderli
renderlo
rendert
rendimiento
rendre
renomeado
renomear
renomm
renommage
renommer
Reprendre
representador
representar
requer
requiere
requise
reservada
reserviert
Restablecer
Restaurar
Restaurer
restreint
resultado
resultar
retangular
Retomar
rettangolare
Revirtiendo
rgi
rhagolwg
Rhagowlg
Riavvia
riavviare
riavviarlo
riavvio
ricaricare
ricerca
ricevere
richiede
richiedere
Richiesta
richieste
Richtung
ridenominazione
Ridimensiona
ridimensionamento
ridimensionata
Ridisegna
riduce
Riduci
riduzione
Riempi
riempimento
riempire
riferimento
righe
Rilevare
rilevato
rimosse
rimuovere
rimuovi
rinish
rinishi
Rinomina
rinominare
rinominata
riportate
Riprendi
Ripristina
ripristinato
riquadri
riquadro
riservata
risoluzione
risultati
risultato
riuscita
rojo
rolagem
rolar
rosso
ruta
rvrn
Saia
Saiba
saisie
salga
salida
Salir
salvar
salvare
salvas
salvate
Satz
Satzes
savoir
scadr
Scambia
scansione
Scanzeilen
Scarlatto
scarso
scegli
scegliere
sceglierne
scelta
scheda
schede
Schematas
schemi
schermo
Schiarisce
Schieferblau
schlechten
schlie
Schnittstelle
schreiben
Schreibschutz
Schreibzugriff
Schriftart
Schriftartachsen
Schriftarten
Schriftartfeatures
schriftgrad
Schritte
scientifici
scientifiques
scomposizione
sconosciuto
Scopri
Scorri
scorrimento
scrittura
scrivere
scrollen
scurisce
scuro
sean
secci
Seegr
seguente
seguenti
seguintes
seguir
seguito
segundo
seguro
Sehr
sein
Seite
seja
sejam
Selbst
selecci
seleccion
Selecciona
seleccionada
seleccionado
seleccionar
Seleciona
selecionada
selecionado
selecionar
seletor
Seleziona
selezionabili
selezionare
selezionata
selezionato
selezione
Semigrassetto
senden
sendo
sensibili
separada
sesi
sessione
setzen
seu
seule
sezione
Sfoglia
sfondo
shealladh
sia
sicher
sicherzustellen
sichtbar
Sichtbarkeit
sieht
siempre
siguiente
simboli
sinalizador
singola
singoli
SINISTRO
sino
sintassi
sintaxe
sintaxis
sistema
situe
Sitzung
skalieren
slu
snapcx
snapcy
sobald
sobre
sobrescribirlo
Sobrescrito
sofern
solicita
Solicitando
Solicitar
solishda
soll
sollen
sollte
solucionar
sombreador
somente
sono
Sonore
sont
sopprimendo
sopra
sorgente
sospeso
sostituir
sostituirlo
sostituisce
sostituite
sottocomandi
sottocomando
sottolineatura
souhait
soulignement
souris
Sovrascrive
sovrascrivendo
Sovrascrivere
Spalten
spammy
spazi
spaziatura
Specifica
specificare
specificata
specificato
specifico
speichern
sperimentale
Spessore
Sposta
spostamento
spostare
spostata
spostato
Sprache
Stahlblau
Stai
Standardbefehl
Standardeinstellungen
Standardeinstellungsdatei
Standardeinstellungsdateien
Standardfarben
standardm
Standardprofil
Standardprofile
Standardsprache
Standardstartposition
Standardtitel
Standardverhalten
Standardvordergrund
Standardwert
Standardwerte
starten
Startgr
Startmen
Startmodus
Startparameter
Startposition
Startverzeichnis
stati
stato
stattdessen
Stellen
stesso
steuern
Steuert
stimmt
Strahlende
strahlenden
Streckmodus
strg
stringa
stringhe
sua
Suaviza
Suavizado
subcomando
Sublinhado
Subrayado
Subscrito
substitu
Substitui
substituindo
substituir
successiva
successivo
sucede
Suchdialogfeld
Suche
suchen
Suchfeld
Suddividi
suddiviso
suele
sugerencias
sugest
suggerimenti
suivant
suivantes
suivre
sul
sull'icona
sull'indice
sull'ultimo
sulle
sullo
sunulacak
superiore
suporte
supportato
supprim
supprimant
supprimer
supprimez
suprimiendo
suprimindo
Suprimir
survol
sus
Suscribir
suspendido
suspendu
suspensa
suspenso
sustav
sustava
Sustituye
symbole
syntaxe
Syntaxfehler
Systemfarben
Systemmen
Systemstandard
tabulaci
tabulazione
tahi
talvez
tama
tamanho
tamb
tambi
tampok
tann
tant
Tapez
tapiz
tardar
tareas
tarefas
Taskleiste
Tastatur
Tastenbindung
Tastenfolge
Tastenkombination
Tastenzuordnung
Tastenzuordnungen
tasti
tastiera
tasto
tauschen
teacht
tecla
teclado
tei
teilen
Teirmin
tema
temi
temporaire
temporairement
temporalmente
temporaneamente
temporaneo
temporariamente
tendr
tener
tengas
Terceiros
terceros
Terfynell
terminaal
terminaalvoorskou
terminaci
terminado
terminais
terminaison
terminala
Terminalanwendung
terminalaren
Terminalda
Terminalde
terminale
terminalean
Terminaleffekte
terminalen
Terminalfarben
terminalfenster
terminali
terminalinhalt
Terminalinstanzen
terminalit
terminalni
terminalo
Terminalpi
Terminalska
terminalu
terminalului
terminato
terminazione
terze
testo
testovac
Textdatei
texte
Textformat
Textformate
Textformatierung
texto
Textpuffers
Textur
textura
thighinn
Tiefgestellt
tiempo
tiene
tipareve
tipo
Tippen
titel
Titelleiste
titolo
toda
todos
toekomstige
tokeninfo
tornar
torno
toujours
tous
toutes
trabajo
trabalho
traceloggingprovider
tradicional
Traditionelle
traditionnelle
tradizionale
traite
trames
tranne
translucide
Transparencia
Transparenz
traslucido
trasmissione
Trasparenza
trata
tratti
trazos
trong
Trotzdem
trouver
trouvons
Trova
trovare
Trovata
trovate
trovati
trovato
tudo
tulevaste
tulevien
tuo
tutte
Ubicaci
Udibili
Uguale
uma
umbenannt
umbenennen
Umgebungsblock
Umgebungsvariablen
Umschalt
umschalten
umschalter
un'altra
un'anteprima
Un'app
un'applicazione
un'estensione
un'icona
un'immagine
Unbekannt
unbekannter
unbenannter
Unbenanntes
une
unerwarteten
Unerwarteter
Unformatierter
Uniforma
uniforme
uniquement
univoco
uno
unscharfe
unten
unter
Unterbefehl
Unterbefehle
unterbrechen
unterer
untergeordneten
unterscheidbarem
Unterstrich
usada
usado
usando
usare
usarse
usata
usati
usato
userbase
usluge
uso
usuario
utente
utili
utilisateur
utilisation
utilisez
utilizado
Utilizar
Utilizzalo
utilizzare
utilizzata
utilizzato
Uus
Uusi
vai
valeurs
valida
valide
validi
validit
valido
valoare
valore
valori
valvurparameeter
variabile
variabili
Variablen
variante
varias
vazia
vazio
vengano
vengono
venir
ventanas
ventanilla
veraltet
Verarbeitung
Verbindung
Verbindungseinstellungen
verborgen
verborgenes
verdunkelt
Vergewissern
vergr
Verhalten
verhindern
Verifica
Verificando
Verificare
verificarsi
verificati
verifichino
Verifique
verkleinern
verkleinert
Verlaufs
Verlaufsgr
vermelho
verr
verranno
verringern
verschachtelten
verschieben
Verschiebt
verschiedenen
verschoben
versi
versione
Versionshinweise
versiyas
verticale
verticalement
verticalmente
vertikal
vertikale
verwenden
verwendet
verwendete
verwendeten
Verwendung
verwerfen
Verzeichnis
verzi
verzia
verzija
verziji
Veuillez
vez
vezes
vielen
Vielfaches
viene
vif
viitoare
vinculadas
violaceo
violeta
Violetto
Violettrot
virgole
virtuale
virtuel
virtuelles
Virusiicht
visibile
Visibilidad
Visibilidade
Visibilit
Visitez
visivi
Visivo
visuais
visuales
visualitzaci
visualiza
Visualizar
visualizza
visualizzare
visualizzata
visualizzate
visualizzati
visualizzato
visualizzazione
Visuell
Visuelle
visuellen
visuels
voci
Voici
voir
volets
Vollbild
Vollbildfokus
Vollbildmodus
Voltando
Voltar
volver
vom
voorskou
vor
vorbelegt
Vorder
Vordergrund
Vorgang
vorhanden
vorhandene
Vorherige
vorherigen
Vorschau
Vorschl
vorzunehmen
vos
vostra
votre
voulez
vous
VProc
vraiment
VRaw
vrednost
vrijednost
Vuoi
vuota
vuoti
vuoto
wahrscheinlich
Warnen
Warnung
Warnungen
wcsnicmp
Webseite
Websuche
wechseln
wei
Weile
Weitere
weiterhin
welche
Wendet
wenn
werden
Werte
Whakatuwhera
wie
wiederhergestellt
wiederherstellen
Windowsi
wirken
wirklich
Worttrennzeichen
wurde
wurden
xem
xususiyatlarni
Yangi
Zeichen
Zeichenfolgen
Zeichenfolgenwert
Zeichenraster
zeichnet
Zeigen
Zeile
Zeilen
Zeilenh
zentrieren
Zentriert
zetes
Ziel
zna
Zoomfenster
zugegriffen
zuletzt
zum
zur
zuzugreifen
zwischen
Zwischenablage
Zwischenablageinhalt
zyan
Previously acknowledged words that are now absent autocrlf DESTINATIONNAME EINS KOK NEL QUZ SUA TODOs :arrow_right:
To accept ✔️ these unrecognized words as correct and remove the previously acknowledged and now absent words, run the following commands

... in a clone of the [email protected]:microsoft/terminal.git repository
on the release-1.19 branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/v0.0.21/apply.pl' |
perl - 'https://github.com/microsoft/terminal/actions/runs/8900495715/attempts/1'
Pattern suggestions ✂️ (1)

You could add these patterns to .github/actions/spelling/patterns/244549acdcb747c1b68256c01dea598c48330653.txt:

# Automatically suggested patterns
# hit-count: 1 file-count: 1
# tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long...
\btput\s+(?:(?:-[SV]|-T\s*\w+)\s+)*\w{3,5}\b

Errors (3)

See the 📜action log for details.

❌ Errors Count
ℹ️ candidate-pattern 1
❌ check-file-path 2
❌ forbidden-pattern 1

See ❌ Event descriptions for more information.

✏️ Contributor please read this

By default the command suggestion will generate a file named based on your commit. That's generally ok as long as you add the file to your commit. Someone can reorganize it later.

⚠️ The command is written for posix shells. If it doesn't work for you, you can manually add (one word per line) / remove items to expect.txt and the excludes.txt files.

If the listed items are:

  • ... misspelled, then please correct them instead of using the command.
  • ... names, please add them to .github/actions/spelling/allow/names.txt.
  • ... APIs, you can add them to a file in .github/actions/spelling/allow/.
  • ... just things you're using, please add them to an appropriate file in .github/actions/spelling/expect/.
  • ... tokens you only need in one place and shouldn't generally be used, you can add an item in an appropriate file in .github/actions/spelling/patterns/.

See the README.md in each directory for more information.

🔬 You can test your commits without appending to a PR by creating a new branch with that extra change and pushing it to your fork. The check-spelling action will run in response to your push -- it doesn't require an open pull request. By using such a branch, you can limit the number of typos your peers see you make. 😉

If the flagged items are 🤯 false positives

If items relate to a ...

  • binary file (or some other file you wouldn't want to check at all).

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

  • well-formed pattern.

    If you can write a pattern that would match it,
    try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

Please sign in to comment.