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

@@ -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 = {