diff --git a/docs/SlyEdit_ReadMe.txt b/docs/SlyEdit_ReadMe.txt index f9048e1b806f0eb827e0bbf6da306c1337acde24..51263f1e1ef09810a4334c5ee48c5b98969c901d 100644 --- a/docs/SlyEdit_ReadMe.txt +++ b/docs/SlyEdit_ReadMe.txt @@ -1,6 +1,6 @@ SlyEdit message editor - Version 1.81 - Release date: 2022-11-26 + Version 1.82 + Release date: 2022-12-01 by diff --git a/exec/SlyEdit.js b/exec/SlyEdit.js index 62283ab5c713927026eda583fa497fb19cf869c4..6fe257d56e3397a19f5504b97a79e4eeeca748a8 100644 --- a/exec/SlyEdit.js +++ b/exec/SlyEdit.js @@ -18,6 +18,9 @@ * control character. * 2022-11-26 Eric Oulashin Version 1.81 * Releasing this verison. + * 2022-12-01 Eric Oulashin Version 1.82 + * Added some safety checks when reading the configuration file + * (that section of code was refactored recently). */ "use strict"; @@ -115,8 +118,8 @@ if (console.screen_columns < 80) } // Version information -var EDITOR_VERSION = "1.81"; -var EDITOR_VER_DATE = "2022-11-26"; +var EDITOR_VERSION = "1.82"; +var EDITOR_VER_DATE = "2022-12-01"; // Program variables diff --git a/exec/SlyEdit_Misc.js b/exec/SlyEdit_Misc.js index 5f807034021f1840d1908070e525864c4b9c75bd..ab5445ccaa78fe44f65c7dba2e792fdcc4fe8f49 100644 --- a/exec/SlyEdit_Misc.js +++ b/exec/SlyEdit_Misc.js @@ -45,6 +45,7 @@ * sub-board information with an empty sub-board code (in the rare * case when no sub-boards are configured). * 2022-11-19 Eric Oulashin Refactored ReadSlyEditConfigFile(). + * 2022-12-01 Eric Oulashin Added some safety checks to ReadSlyEditConfigFile(). */ "use strict"; @@ -2239,11 +2240,11 @@ function ReadSlyEditConfigFile() } // Other settings: cfgObj.inputTimeoutMS = +(behaviorSettings.inputTimeoutMS); - if (behaviorSettings.hasOwnProperty("add3rdPartyStartupScript")) + if (behaviorSettings.hasOwnProperty("add3rdPartyStartupScript") && typeof(behaviorSettings.add3rdPartyStartupScript) === "string") cfgObj.thirdPartyLoadOnStart.push(behaviorSettings.add3rdPartyStartupScript); - if (behaviorSettings.hasOwnProperty("addJSOnStart")) + if (behaviorSettings.hasOwnProperty("addJSOnStart") && typeof(behaviorSettings.addJSOnStart) === "string") cfgObj.runJSOnStart.push(behaviorSettings.addJSOnStart); - if (behaviorSettings.hasOwnProperty("addJSOnExit")) + if (behaviorSettings.hasOwnProperty("addJSOnExit") && typeof(behaviorSettings.addJSOnExit) === "string") cfgObj.runJSOnExit.push(behaviorSettings.addJSOnExit); if (behaviorSettings.hasOwnProperty("enableTextReplacements")) { @@ -2252,18 +2253,18 @@ function ReadSlyEditConfigFile() // - regex: Text replacement enabled using regular expressions // - true: Text replacement enabled using exact match // - false: Text replacement disabled - var valueUpper = behaviorSettings.enableTextReplacements.toUpperCase(); - cfgObj.textReplacementsUseRegex = (valueUpper == "REGEX"); + if (typeof(behaviorSettings.enableTextReplacements) === "string") + cfgObj.textReplacementsUseRegex = (behaviorSettings.enableTextReplacements.toUpperCase() == "REGEX"); + else if (typeof(behaviorSettings.enableTextReplacements) === "boolean") + cfgObj.enableTextReplacements = behaviorSettings.enableTextReplacements; if (cfgObj.textReplacementsUseRegex) cfgObj.enableTextReplacements = true; - else - cfgObj.enableTextReplacements = (valueUpper == "TRUE"); } - if (behaviorSettings.hasOwnProperty("taglineFilename")) + if (behaviorSettings.hasOwnProperty("tagLineFilename") && typeof(behaviorSettings.tagLineFilename) === "string") cfgObj.tagLineFilename = genFullPathCfgFilename(behaviorSettings.taglineFilename, gStartupPath); - if (behaviorSettings.hasOwnProperty("taglinePrefix")) + if (behaviorSettings.hasOwnProperty("taglinePrefix") && typeof(behaviorSettings.taglinePrefix) === "string") cfgObj.taglinePrefix = behaviorSettings.taglinePrefix; - if (behaviorSettings.hasOwnProperty("dictionaryFilenames")) + if (behaviorSettings.hasOwnProperty("dictionaryFilenames") && typeof(behaviorSettings.dictionaryFilenames) === "string") cfgObj.dictionaryFilenames = parseDictionaryConfig(behaviorSettings.dictionaryFilenames, gStartupPath); // Color settings var iceColorSettings = cfgFile.iniGetObject("ICE_COLORS"); @@ -2272,8 +2273,11 @@ function ReadSlyEditConfigFile() cfgObj.iceColors = {}; if (typeof(cfgObj.DCTColors) !== "object") cfgObj.DCTColors = {}; - cfgObj.iceColors.ThemeFilename = genFullPathCfgFilename(iceColorSettings.ThemeFilename, gStartupPath); - cfgObj.iceColors.menuOptClassicColors = iceColorSettings.menuOptClassicColors; // This is a boolean + if (iceColorSettings.hasOwnProperty("ThemeFilename") && typeof(iceColorSettings.ThemeFilename) === "string") + cfgObj.iceColors.ThemeFilename = genFullPathCfgFilename(iceColorSettings.ThemeFilename, gStartupPath); + if (iceColorSettings.hasOwnProperty("menuOptClassicColors") && typeof(iceColorSettings.menuOptClassicColors) === "boolean") + cfgObj.iceColors.menuOptClassicColors = iceColorSettings.menuOptClassicColors; // This is a boolean + if (DCTColorSettings.hasOwnProperty("ThemeFilename") && typeof(DCTColorSettings.ThemeFilename) === "string") cfgObj.DCTColors.ThemeFilename = genFullPathCfgFilename(DCTColorSettings.ThemeFilename, gStartupPath); cfgFile.close();