add implicit cr and implicit lf for serial terminal similar to putty

This commit is contained in:
ChangHwan Kim 2023-12-06 10:02:50 +09:00
parent 2dc64ae51b
commit a8ef5963c3
3 changed files with 18 additions and 1 deletions

View file

@ -916,6 +916,14 @@ msgstr "CRLF 강제"
msgid "Force LF"
msgstr "LF 강제"
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:56
msgid "Implicit CR in every LF"
msgstr "LF에만 CR 추가"
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:57
msgid "Implicit LF in every CR"
msgstr "CR에만 LF 추가"
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
msgid "Forces a specific SSH agent connection type."
msgstr "특정 SSH 에이전트로 연결 유형 강제"

View file

@ -53,6 +53,8 @@ export class StreamProcessingSettingsComponent {
{ key: 'cr', name: _('Force CR') },
{ key: 'lf', name: _('Force LF') },
{ key: 'crlf', name: _('Force CRLF') },
{ key: 'implicit_cr', name: _('Implicit CR in every LF') },
{ key: 'implicit_lf', name: _('Implicit LF in every CR') },
]
getInputModeName (key) {

View file

@ -9,7 +9,7 @@ import { SessionMiddleware } from '../api/middleware'
export type InputMode = null | 'local-echo' | 'readline' | 'readline-hex'
export type OutputMode = null | 'hex'
export type NewlineMode = null | 'cr' | 'lf' | 'crlf'
export type NewlineMode = null | 'cr' | 'lf' | 'crlf' | 'implicit_cr' | 'implicit_lf'
export interface StreamProcessingOptions {
inputMode?: InputMode
@ -134,6 +134,13 @@ export class TerminalStreamProcessor extends SessionMiddleware {
if (!mode) {
return data
}
else if (mode == 'implicit_cr') {
return bufferReplace(data, '\n', '\r\n')
}
else if (mode == 'implicit_lf') {
return bufferReplace(data, '\r', '\r\n')
}
data = bufferReplace(data, '\r\n', '\n')
data = bufferReplace(data, '\r', '\n')
const replacement = {