{"action":"created","comment":{"url":"https://api.github.com/repos/shapesecurity/salvation/pulls/comments/44194044","id":44194044,"diff_hunk":"@@ -98,7 +100,8 @@ private String next() {\n                 continue;\n             while (this.hasNext()) {\n                 if (!this.eatDirectiveValue()) {\n-                    throw this.createError(\"expecting directive-value but found \" + this.next());\n+                    int cp = this.next().codePointAt(0);\n+                    throw this.createError(String.format(\"expecting directive-value but found %s (U+%04x). Non-whitespace characters outside ASCII 0x21-0x7E must be percent-encoded\", this.next(), cp));","path":"src/main/java/com/shapesecurity/salvation/Tokeniser.java","position":25,"original_position":25,"commit_id":"2b1d3a051674feb01c155eb6ffe7a749f92bbad0","original_commit_id":"2b1d3a051674feb01c155eb6ffe7a749f92bbad0","user":{"login":"michaelficarra","id":218840,"avatar_url":"https://avatars.githubusercontent.com/u/218840?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelficarra","html_url":"https://github.com/michaelficarra","followers_url":"https://api.github.com/users/michaelficarra/followers","following_url":"https://api.github.com/users/michaelficarra/following{/other_user}","gists_url":"https://api.github.com/users/michaelficarra/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelficarra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelficarra/subscriptions","organizations_url":"https://api.github.com/users/michaelficarra/orgs","repos_url":"https://api.github.com/users/michaelficarra/repos","events_url":"https://api.github.com/users/michaelficarra/events{/privacy}","received_events_url":"https://api.github.com/users/michaelficarra/received_events","type":"User","site_admin":false},"body":"Capitalise the message. Might also want to just say non-ASCII and non-printable characters. That's simpler than specifying the code point range.","created_at":"2015-11-06T22:18:27Z","updated_at":"2015-11-06T22:18:27Z","html_url":"https://github.com/shapesecurity/salvation/pull/92#discussion_r44194044","pull_request_url":"https://api.github.com/repos/shapesecurity/salvation/pulls/92","_links":{"self":{"href":"https://api.github.com/repos/shapesecurity/salvation/pulls/comments/44194044"},"html":{"href":"https://github.com/shapesecurity/salvation/pull/92#discussion_r44194044"},"pull_request":{"href":"https://api.github.com/repos/shapesecurity/salvation/pulls/92"}}},"pull_request":{"url":"https://api.github.com/repos/shapesecurity/salvation/pulls/92","id":49986996,"html_url":"https://github.com/shapesecurity/salvation/pull/92","diff_url":"https://github.com/shapesecurity/salvation/pull/92.diff","patch_url":"https://github.com/shapesecurity/salvation/pull/92.patch","issue_url":"https://api.github.com/repos/shapesecurity/salvation/issues/92","number":92,"state":"open","locked":false,"title":"fixes #90","user":{"login":"shekyan","id":1631049,"avatar_url":"https://avatars.githubusercontent.com/u/1631049?v=3","gravatar_id":"","url":"https://api.github.com/users/shekyan","html_url":"https://github.com/shekyan","followers_url":"https://api.github.com/users/shekyan/followers","following_url":"https://api.github.com/users/shekyan/following{/other_user}","gists_url":"https://api.github.com/users/shekyan/gists{/gist_id}","starred_url":"https://api.github.com/users/shekyan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shekyan/subscriptions","organizations_url":"https://api.github.com/users/shekyan/orgs","repos_url":"https://api.github.com/users/shekyan/repos","events_url":"https://api.github.com/users/shekyan/events{/privacy}","received_events_url":"https://api.github.com/users/shekyan/received_events","type":"User","site_admin":false},"body":" verbose error in tokeniser for bad characters in directive-value","created_at":"2015-11-06T18:20:18Z","updated_at":"2015-11-06T22:18:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9627b61ff11b42c4e4b3402df67300674328103a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/shapesecurity/salvation/pulls/92/commits","review_comments_url":"https://api.github.com/repos/shapesecurity/salvation/pulls/92/comments","review_comment_url":"https://api.github.com/repos/shapesecurity/salvation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/shapesecurity/salvation/issues/92/comments","statuses_url":"https://api.github.com/repos/shapesecurity/salvation/statuses/2b1d3a051674feb01c155eb6ffe7a749f92bbad0","head":{"label":"shapesecurity:GH-90","ref":"GH-90","sha":"2b1d3a051674feb01c155eb6ffe7a749f92bbad0","user":{"login":"shapesecurity","id":7728313,"avatar_url":"https://avatars.githubusercontent.com/u/7728313?v=3","gravatar_id":"","url":"https://api.github.com/users/shapesecurity","html_url":"https://github.com/shapesecurity","followers_url":"https://api.github.com/users/shapesecurity/followers","following_url":"https://api.github.com/users/shapesecurity/following{/other_user}","gists_url":"https://api.github.com/users/shapesecurity/gists{/gist_id}","starred_url":"https://api.github.com/users/shapesecurity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shapesecurity/subscriptions","organizations_url":"https://api.github.com/users/shapesecurity/orgs","repos_url":"https://api.github.com/users/shapesecurity/repos","events_url":"https://api.github.com/users/shapesecurity/events{/privacy}","received_events_url":"https://api.github.com/users/shapesecurity/received_events","type":"Organization","site_admin":false},"repo":{"id":35701371,"name":"salvation","full_name":"shapesecurity/salvation","owner":{"login":"shapesecurity","id":7728313,"avatar_url":"https://avatars.githubusercontent.com/u/7728313?v=3","gravatar_id":"","url":"https://api.github.com/users/shapesecurity","html_url":"https://github.com/shapesecurity","followers_url":"https://api.github.com/users/shapesecurity/followers","following_url":"https://api.github.com/users/shapesecurity/following{/other_user}","gists_url":"https://api.github.com/users/shapesecurity/gists{/gist_id}","starred_url":"https://api.github.com/users/shapesecurity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shapesecurity/subscriptions","organizations_url":"https://api.github.com/users/shapesecurity/orgs","repos_url":"https://api.github.com/users/shapesecurity/repos","events_url":"https://api.github.com/users/shapesecurity/events{/privacy}","received_events_url":"https://api.github.com/users/shapesecurity/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/shapesecurity/salvation","description":"Parse Content Security Policy headers, warn about policy errors, safely manipulate, render, and optimise policies","fork":false,"url":"https://api.github.com/repos/shapesecurity/salvation","forks_url":"https://api.github.com/repos/shapesecurity/salvation/forks","keys_url":"https://api.github.com/repos/shapesecurity/salvation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shapesecurity/salvation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shapesecurity/salvation/teams","hooks_url":"https://api.github.com/repos/shapesecurity/salvation/hooks","issue_events_url":"https://api.github.com/repos/shapesecurity/salvation/issues/events{/number}","events_url":"https://api.github.com/repos/shapesecurity/salvation/events","assignees_url":"https://api.github.com/repos/shapesecurity/salvation/assignees{/user}","branches_url":"https://api.github.com/repos/shapesecurity/salvation/branches{/branch}","tags_url":"https://api.github.com/repos/shapesecurity/salvation/tags","blobs_url":"https://api.github.com/repos/shapesecurity/salvation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shapesecurity/salvation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shapesecurity/salvation/git/refs{/sha}","trees_url":"https://api.github.com/repos/shapesecurity/salvation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shapesecurity/salvation/statuses/{sha}","languages_url":"https://api.github.com/repos/shapesecurity/salvation/languages","stargazers_url":"https://api.github.com/repos/shapesecurity/salvation/stargazers","contributors_url":"https://api.github.com/repos/shapesecurity/salvation/contributors","subscribers_url":"https://api.github.com/repos/shapesecurity/salvation/subscribers","subscription_url":"https://api.github.com/repos/shapesecurity/salvation/subscription","commits_url":"https://api.github.com/repos/shapesecurity/salvation/commits{/sha}","git_commits_url":"https://api.github.com/repos/shapesecurity/salvation/git/commits{/sha}","comments_url":"https://api.github.com/repos/shapesecurity/salvation/comments{/number}","issue_comment_url":"https://api.github.com/repos/shapesecurity/salvation/issues/comments{/number}","contents_url":"https://api.github.com/repos/shapesecurity/salvation/contents/{+path}","compare_url":"https://api.github.com/repos/shapesecurity/salvation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shapesecurity/salvation/merges","archive_url":"https://api.github.com/repos/shapesecurity/salvation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shapesecurity/salvation/downloads","issues_url":"https://api.github.com/repos/shapesecurity/salvation/issues{/number}","pulls_url":"https://api.github.com/repos/shapesecurity/salvation/pulls{/number}","milestones_url":"https://api.github.com/repos/shapesecurity/salvation/milestones{/number}","notifications_url":"https://api.github.com/repos/shapesecurity/salvation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shapesecurity/salvation/labels{/name}","releases_url":"https://api.github.com/repos/shapesecurity/salvation/releases{/id}","created_at":"2015-05-15T23:14:49Z","updated_at":"2015-10-19T19:34:05Z","pushed_at":"2015-11-06T18:20:19Z","git_url":"git://github.com/shapesecurity/salvation.git","ssh_url":"git@github.com:shapesecurity/salvation.git","clone_url":"https://github.com/shapesecurity/salvation.git","svn_url":"https://github.com/shapesecurity/salvation","homepage":"http://cspvalidator.org","size":1153,"stargazers_count":11,"watchers_count":11,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":6,"forks":1,"open_issues":6,"watchers":11,"default_branch":"master"}},"base":{"label":"shapesecurity:master","ref":"master","sha":"d8ba75f2e0bce517439ab38f335f0c80701d9454","user":{"login":"shapesecurity","id":7728313,"avatar_url":"https://avatars.githubusercontent.com/u/7728313?v=3","gravatar_id":"","url":"https://api.github.com/users/shapesecurity","html_url":"https://github.com/shapesecurity","followers_url":"https://api.github.com/users/shapesecurity/followers","following_url":"https://api.github.com/users/shapesecurity/following{/other_user}","gists_url":"https://api.github.com/users/shapesecurity/gists{/gist_id}","starred_url":"https://api.github.com/users/shapesecurity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shapesecurity/subscriptions","organizations_url":"https://api.github.com/users/shapesecurity/orgs","repos_url":"https://api.github.com/users/shapesecurity/repos","events_url":"https://api.github.com/users/shapesecurity/events{/privacy}","received_events_url":"https://api.github.com/users/shapesecurity/received_events","type":"Organization","site_admin":false},"repo":{"id":35701371,"name":"salvation","full_name":"shapesecurity/salvation","owner":{"login":"shapesecurity","id":7728313,"avatar_url":"https://avatars.githubusercontent.com/u/7728313?v=3","gravatar_id":"","url":"https://api.github.com/users/shapesecurity","html_url":"https://github.com/shapesecurity","followers_url":"https://api.github.com/users/shapesecurity/followers","following_url":"https://api.github.com/users/shapesecurity/following{/other_user}","gists_url":"https://api.github.com/users/shapesecurity/gists{/gist_id}","starred_url":"https://api.github.com/users/shapesecurity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shapesecurity/subscriptions","organizations_url":"https://api.github.com/users/shapesecurity/orgs","repos_url":"https://api.github.com/users/shapesecurity/repos","events_url":"https://api.github.com/users/shapesecurity/events{/privacy}","received_events_url":"https://api.github.com/users/shapesecurity/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/shapesecurity/salvation","description":"Parse Content Security Policy headers, warn about policy errors, safely manipulate, render, and optimise policies","fork":false,"url":"https://api.github.com/repos/shapesecurity/salvation","forks_url":"https://api.github.com/repos/shapesecurity/salvation/forks","keys_url":"https://api.github.com/repos/shapesecurity/salvation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shapesecurity/salvation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shapesecurity/salvation/teams","hooks_url":"https://api.github.com/repos/shapesecurity/salvation/hooks","issue_events_url":"https://api.github.com/repos/shapesecurity/salvation/issues/events{/number}","events_url":"https://api.github.com/repos/shapesecurity/salvation/events","assignees_url":"https://api.github.com/repos/shapesecurity/salvation/assignees{/user}","branches_url":"https://api.github.com/repos/shapesecurity/salvation/branches{/branch}","tags_url":"https://api.github.com/repos/shapesecurity/salvation/tags","blobs_url":"https://api.github.com/repos/shapesecurity/salvation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shapesecurity/salvation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shapesecurity/salvation/git/refs{/sha}","trees_url":"https://api.github.com/repos/shapesecurity/salvation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shapesecurity/salvation/statuses/{sha}","languages_url":"https://api.github.com/repos/shapesecurity/salvation/languages","stargazers_url":"https://api.github.com/repos/shapesecurity/salvation/stargazers","contributors_url":"https://api.github.com/repos/shapesecurity/salvation/contributors","subscribers_url":"https://api.github.com/repos/shapesecurity/salvation/subscribers","subscription_url":"https://api.github.com/repos/shapesecurity/salvation/subscription","commits_url":"https://api.github.com/repos/shapesecurity/salvation/commits{/sha}","git_commits_url":"https://api.github.com/repos/shapesecurity/salvation/git/commits{/sha}","comments_url":"https://api.github.com/repos/shapesecurity/salvation/comments{/number}","issue_comment_url":"https://api.github.com/repos/shapesecurity/salvation/issues/comments{/number}","contents_url":"https://api.github.com/repos/shapesecurity/salvation/contents/{+path}","compare_url":"https://api.github.com/repos/shapesecurity/salvation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shapesecurity/salvation/merges","archive_url":"https://api.github.com/repos/shapesecurity/salvation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shapesecurity/salvation/downloads","issues_url":"https://api.github.com/repos/shapesecurity/salvation/issues{/number}","pulls_url":"https://api.github.com/repos/shapesecurity/salvation/pulls{/number}","milestones_url":"https://api.github.com/repos/shapesecurity/salvation/milestones{/number}","notifications_url":"https://api.github.com/repos/shapesecurity/salvation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shapesecurity/salvation/labels{/name}","releases_url":"https://api.github.com/repos/shapesecurity/salvation/releases{/id}","created_at":"2015-05-15T23:14:49Z","updated_at":"2015-10-19T19:34:05Z","pushed_at":"2015-11-06T18:20:19Z","git_url":"git://github.com/shapesecurity/salvation.git","ssh_url":"git@github.com:shapesecurity/salvation.git","clone_url":"https://github.com/shapesecurity/salvation.git","svn_url":"https://github.com/shapesecurity/salvation","homepage":"http://cspvalidator.org","size":1153,"stargazers_count":11,"watchers_count":11,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":6,"forks":1,"open_issues":6,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/shapesecurity/salvation/pulls/92"},"html":{"href":"https://github.com/shapesecurity/salvation/pull/92"},"issue":{"href":"https://api.github.com/repos/shapesecurity/salvation/issues/92"},"comments":{"href":"https://api.github.com/repos/shapesecurity/salvation/issues/92/comments"},"review_comments":{"href":"https://api.github.com/repos/shapesecurity/salvation/pulls/92/comments"},"review_comment":{"href":"https://api.github.com/repos/shapesecurity/salvation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/shapesecurity/salvation/pulls/92/commits"},"statuses":{"href":"https://api.github.com/repos/shapesecurity/salvation/statuses/2b1d3a051674feb01c155eb6ffe7a749f92bbad0"}}}}