diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1bc363c..eb8592e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -30,6 +30,7 @@ For major (breaking) changes - version 3 and 2 see end of page.
| Version | Date | Comment |
| -------------- | -------------- | -------- |
+| 4.1.7 | 2019-05-08 | `users()` parsing fix (windows) |
| 4.1.6 | 2019-04-24 | `memory()` swap used fix (linux) |
| 4.1.5 | 2019-04-19 | refactored `wmic` calls to work also on Windows XP |
| 4.1.4 | 2019-03-26 | `networkInterfaces()` speed bug (windows) |
diff --git a/docs/history.html b/docs/history.html
index 57bef67..ef4e577 100644
--- a/docs/history.html
+++ b/docs/history.html
@@ -80,6 +80,11 @@
+
+ | 4.1.7 |
+ 2019-05-08 |
+ users() parsing fix (windows) |
+
| 4.1.6 |
2019-04-24 |
diff --git a/lib/users.js b/lib/users.js
index bdabd4e..1f23fae 100644
--- a/lib/users.js
+++ b/lib/users.js
@@ -150,7 +150,7 @@ function parseUsersWin(lines) {
headerDelimiter.push(start - 1);
let nextSpace = 0;
for (let i = start + 1; i < header.length; i++) {
- if (header[i] === ' ' && header[i - 1] === ' ') {
+ if (header[i] === ' ' && ((header[i - 1] === ' ') || (header[i - 1] === '.'))) {
nextSpace = i;
} else {
if (nextSpace) {
@@ -159,20 +159,20 @@ function parseUsersWin(lines) {
}
}
}
- }
- for (let i = 1; i < lines.length; i++) {
- if (lines[i].trim()) {
- const user = lines[i].substring(headerDelimiter[0] + 1, headerDelimiter[1]).trim() || '';
- const tty = lines[i].substring(headerDelimiter[1] + 1, headerDelimiter[2] - 2).trim() || '';
- const dateTime = util.parseDateTime(lines[i].substring(headerDelimiter[5] + 1, 2000).trim()) || '';
- result.push({
- user: user,
- tty: tty,
- date: dateTime.date,
- time: dateTime.time,
- ip: '',
- command: ''
- });
+ for (let i = 1; i < lines.length; i++) {
+ if (lines[i].trim()) {
+ const user = lines[i].substring(headerDelimiter[0] + 1, headerDelimiter[1]).trim() || '';
+ const tty = lines[i].substring(headerDelimiter[1] + 1, headerDelimiter[2] - 2).trim() || '';
+ const dateTime = util.parseDateTime(lines[i].substring(headerDelimiter[5] + 1, 2000).trim()) || '';
+ result.push({
+ user: user,
+ tty: tty,
+ date: dateTime.date,
+ time: dateTime.time,
+ ip: '',
+ command: ''
+ });
+ }
}
}
return result;
diff --git a/lib/util.js b/lib/util.js
index 3cb4494..860ff58 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -111,7 +111,7 @@ function decodeEscapeSequence(str, base) {
function parseTime(t) {
t = t.toUpperCase();
const parts = t.split(':');
- let isPM = (parts[1] && parts[1].indexOf('PM') > -1);
+ let isPM = (parts[1] && (parts[1].toLowerCase().indexOf('pm') > -1) || (parts[1].toLowerCase().indexOf('p.m.') > -1));
let hour = parseInt(parts[0], 10);
const min = parseInt(parts[1], 10);
hour = isPM && hour < 12 ? hour + 12 : hour;