diff --git a/core/door.js b/core/door.js
index 88f4ec46..dd01c0ec 100644
--- a/core/door.js
+++ b/core/door.js
@@ -5,7 +5,7 @@ var spawn = require('child_process').spawn;
var events = require('events');
var _ = require('lodash');
-var pty = require('pty.js');
+var pty = require('ptyw.js');
exports.Door = Door;
@@ -47,6 +47,7 @@ Door.prototype.run = function() {
// :TODO: do this with pluggable pipe/filter classes
+ // :TODO: This causes an error to be thrown when e.g. 'cp437' is used due to Node buffer changes
door.setEncoding(this.exeInfo.encoding);
door.on('data', function doorData(data) {
diff --git a/core/dropfile.js b/core/dropfile.js
index 7eed7daa..52cfc1f9 100644
--- a/core/dropfile.js
+++ b/core/dropfile.js
@@ -8,6 +8,7 @@ var paths = require('path');
var _ = require('lodash');
var async = require('async');
var moment = require('moment');
+var iconv = require('iconv-lite');
exports.DropFile = DropFile;
@@ -84,7 +85,7 @@ function DropFile(client, fileType) {
// :TODO: fix time remaining
// :TODO: fix default protocol -- user prop: transfer_protocol
- return new Buffer( [
+ return iconv.encode( [
'COM1:', // "Comm Port - COM0: = LOCAL MODE"
'57600', // "Baud Rate - 300 to 38400" (Note: set as 57600 instead!)
'8', // "Parity - 7 or 8"
@@ -158,7 +159,7 @@ function DropFile(client, fileType) {
var un = /[^\s]*/.exec(self.client.user.username)[0];
var secLevel = self.client.user.getLegacySecurityLevel().toString();
- return new Buffer( [
+ return iconv.encode( [
Config.general.boardName, // "The name of the system."
opUn, // "The sysop's name up to the first space."
opUn, // "The sysop's name following the first space."
diff --git a/core/menu_stack.js b/core/menu_stack.js
index dbf3c8d6..eebfbaec 100644
--- a/core/menu_stack.js
+++ b/core/menu_stack.js
@@ -107,7 +107,7 @@ MenuStack.prototype.goto = function(name, options, cb) {
loadMenu(loadOpts, function menuLoaded(err, modInst) {
if(err) {
- var errCb = cb || self.defaultHandlerMissingMod();
+ var errCb = cb || currentModuleInfo.instance.defaultHandlerMissingMod();
errCb(err);
} else {
// :TODO: Move this log to caller
diff --git a/docs/index.md b/docs/index.md
index 57ede2ab..e77366fb 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -14,7 +14,12 @@ git clone https://github.com/NuSkooler/enigma-bbs.git
npm install
```
-3\. Generate a SSH Private Key
+**Note for Windows users**:
+Some dependencies require compilation. You will need at least the following installed for `npm install` to succeed:
+* A recent copy of Visual Studio (Express editions OK)
+* Python 2.7.x
+
+3\. Generate a SSH Private Key
Note that you can skip this step and disable the SSH server in your `config.hjson` if desired.
```bash
diff --git a/package.json b/package.json
index 64b75705..f02cc5c1 100644
--- a/package.json
+++ b/package.json
@@ -23,9 +23,9 @@
"lodash": "^3.10.1",
"mkdirp": "0.5.x",
"moment": "^2.10.6",
- "node-uuid": "1.4.x",
- "pty.js": "0.3.x",
- "sqlite3": "3.1.x",
+ "node-uuid": "^1.4.7",
+ "ptyw.js": "^0.3.4",
+ "sqlite3": "^3.1.1",
"ssh2": "^0.4.12",
"string-format": "davidchambers/string-format#mini-language"
},