{"action":"closed","issue":{"url":"https://api.github.com/repos/nodejs/node/issues/2890","repository_url":"https://api.github.com/repos/nodejs/node","labels_url":"https://api.github.com/repos/nodejs/node/issues/2890/labels{/name}","comments_url":"https://api.github.com/repos/nodejs/node/issues/2890/comments","events_url":"https://api.github.com/repos/nodejs/node/issues/2890/events","html_url":"https://github.com/nodejs/node/issues/2890","id":106655643,"number":2890,"title":"`process.stdin` keypress event returns `ctrl: false` in a `[control + [backspace]` event","user":{"login":"dthree","id":10319897,"avatar_url":"https://avatars.githubusercontent.com/u/10319897?v=3","gravatar_id":"","url":"https://api.github.com/users/dthree","html_url":"https://github.com/dthree","followers_url":"https://api.github.com/users/dthree/followers","following_url":"https://api.github.com/users/dthree/following{/other_user}","gists_url":"https://api.github.com/users/dthree/gists{/gist_id}","starred_url":"https://api.github.com/users/dthree/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dthree/subscriptions","organizations_url":"https://api.github.com/users/dthree/orgs","repos_url":"https://api.github.com/users/dthree/repos","events_url":"https://api.github.com/users/dthree/events{/privacy}","received_events_url":"https://api.github.com/users/dthree/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nodejs/node/labels/process","name":"process","color":"00aaff"},{"url":"https://api.github.com/repos/nodejs/node/labels/question","name":"question","color":"cc317c"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-09-15T21:53:01Z","updated_at":"2016-03-22T06:28:56Z","closed_at":"2016-03-22T06:28:56Z","body":"When logging a keypress event, the `[control]` key generally provides a `{ ... ctrl: true }` in the return keypress data returned on the event. However, peculiarly, when `[control + [backspace]` event is fired, `ctrl` is returned as false.\r\n\r\nSteps to reproduce:\r\n\r\n```js\r\nvar rl = require('readline');\r\n \r\nvar i = rl.createInterface(process.stdin, process.stdout, null);\r\ni.question(\"What do you think of node.js?\", function(answer) {\r\n  console.log(\"Thank you for your valuable feedback.\");\r\n  i.close();\r\n  process.stdin.destroy();\r\n});\r\n\r\nprocess.stdin.on('keypress', function(key, data){\r\n  console.log(data);\r\n});\r\n\r\n/*\r\n  { sequence: ',\r\n  name: 'backspace',\r\n  ctrl: false,        < -- should be true\r\n  meta: false,\r\n  shift: false }\r\n*/\r\n```\r\n\r\nThis was verified to be a situation in `v4.0.0`."}}