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;