From a1d4a90e05215f490d78ca96d04278d245a2a78b Mon Sep 17 00:00:00 2001 From: Nathan Byrd Date: Thu, 28 Jul 2022 15:47:51 -0500 Subject: [PATCH] Added system menu method to choose encoding --- core/system_menu_method.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/core/system_menu_method.js b/core/system_menu_method.js index 2e78f964..73d604a5 100644 --- a/core/system_menu_method.js +++ b/core/system_menu_method.js @@ -16,6 +16,7 @@ const iconv = require('iconv-lite'); exports.login = login; exports.login2FA_OTP = login2FA_OTP; +exports.setClientEncoding = setClientEncoding; exports.logoff = logoff; exports.prevMenu = prevMenu; exports.nextMenu = nextMenu; @@ -241,6 +242,23 @@ function nextArea(callingMenu, formData, extraArgs, cb) { ); } +function setClientEncoding(callingMenu, formData, extraArgs, cb) { + // TODO: Also add other encoding types + const client = callingMenu.client; + let encoding = formData.value.encoding; + + client.log.info( + { encoding: encoding, currentEncoding: client.term.outputEncoding }, + 'Setting client encoding.' + ); + + encoding = encoding || client.term.outputEncoding; + + client.term.outputEncoding = encoding; + + return callingMenu.nextMenu(cb); +} + function sendForgotPasswordEmail(callingMenu, formData, extraArgs, cb) { const username = formData.value.username || callingMenu.client.user.username;