{"action":"opened","number":5409,"pull_request":{"url":"https://api.github.com/repos/neovim/neovim/pulls/5409","id":87364681,"html_url":"https://github.com/neovim/neovim/pull/5409","diff_url":"https://github.com/neovim/neovim/pull/5409.diff","patch_url":"https://github.com/neovim/neovim/pull/5409.patch","issue_url":"https://api.github.com/repos/neovim/neovim/issues/5409","number":5409,"state":"open","locked":false,"title":"Correct logic for setting NormalState.toplevel","user":{"login":"jamessan","id":112971,"avatar_url":"https://avatars.githubusercontent.com/u/112971?v=3","gravatar_id":"","url":"https://api.github.com/users/jamessan","html_url":"https://github.com/jamessan","followers_url":"https://api.github.com/users/jamessan/followers","following_url":"https://api.github.com/users/jamessan/following{/other_user}","gists_url":"https://api.github.com/users/jamessan/gists{/gist_id}","starred_url":"https://api.github.com/users/jamessan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamessan/subscriptions","organizations_url":"https://api.github.com/users/jamessan/orgs","repos_url":"https://api.github.com/users/jamessan/repos","events_url":"https://api.github.com/users/jamessan/events{/privacy}","received_events_url":"https://api.github.com/users/jamessan/received_events","type":"User","site_admin":false},"body":"In Vim's main_loop function, the main loop is\n\n        while (!cmdwin\n    #ifdef FEAT_CMDWIN\n                || cmdwin_result == 0\n    #endif\n                )\n        {\n    ...\n    #ifdef FEAT_EVAL\n            /*\n             * May perform garbage collection when waiting for a character, but\n             * only at the very toplevel.  Otherwise we may be using a List or\n             * Dict internally somewhere.\n             * \"may_garbage_collect\" is reset in vgetc() which is invoked through\n             * do_exmode() and normal_cmd().\n             */\n            may_garbage_collect = (!cmdwin && !noexmode);\n    #endif\n            /*\n             * If we're invoked as ex, do a round of ex commands.\n             * Otherwise, get and execute a normal mode command.\n             */\n            if (exmode_active)\n            {\n                if (noexmode)   /* End of \":global/path/visual\" commands */\n                    return;\n                do_exmode(exmode_active == EXMODE_VIM);\n            }\n            else\n                normal_cmd(&oa, TRUE);\n        }\n\ncmdwin_result is set to 0 before calling main_loop to handle the cmdwin\nwindow and gets changed when the user causes a command to execute\n(either through pressing <CR> or <C-c>).  This means that when the\ncmdwin isn't active OR the user is still editing their command,\nmain_loop runs and main_loop calls normal_cmd with toplevel true as long\nas exmode isn't active.\n\nWhen the normal mode state was extracted in dae006a9, the conditions for\ntoplevel and may_garbage_collect were combined.  Since toplevel was set\nto always ignore cmdwin, the v:count(1) variables were no longer being\nupdated when a command was prefixed with a count in the cmdwin.\n\nCloses #5404","created_at":"2016-09-29T18:12:34Z","updated_at":"2016-09-29T18:12:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/neovim/neovim/pulls/5409/commits","review_comments_url":"https://api.github.com/repos/neovim/neovim/pulls/5409/comments","review_comment_url":"https://api.github.com/repos/neovim/neovim/pulls/comments{/number}","comments_url":"https://api.github.com/repos/neovim/neovim/issues/5409/comments","statuses_url":"https://api.github.com/repos/neovim/neovim/statuses/c34d9b306fb50daf499ed71f3766587cacddc95a","head":{"label":"jamessan:master","ref":"master","sha":"c34d9b306fb50daf499ed71f3766587cacddc95a","user":{"login":"jamessan","id":112971,"avatar_url":"https://avatars.githubusercontent.com/u/112971?v=3","gravatar_id":"","url":"https://api.github.com/users/jamessan","html_url":"https://github.com/jamessan","followers_url":"https://api.github.com/users/jamessan/followers","following_url":"https://api.github.com/users/jamessan/following{/other_user}","gists_url":"https://api.github.com/users/jamessan/gists{/gist_id}","starred_url":"https://api.github.com/users/jamessan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamessan/subscriptions","organizations_url":"https://api.github.com/users/jamessan/orgs","repos_url":"https://api.github.com/users/jamessan/repos","events_url":"https://api.github.com/users/jamessan/events{/privacy}","received_events_url":"https://api.github.com/users/jamessan/received_events","type":"User","site_admin":false},"repo":{"id":17712569,"name":"neovim","full_name":"jamessan/neovim","owner":{"login":"jamessan","id":112971,"avatar_url":"https://avatars.githubusercontent.com/u/112971?v=3","gravatar_id":"","url":"https://api.github.com/users/jamessan","html_url":"https://github.com/jamessan","followers_url":"https://api.github.com/users/jamessan/followers","following_url":"https://api.github.com/users/jamessan/following{/other_user}","gists_url":"https://api.github.com/users/jamessan/gists{/gist_id}","starred_url":"https://api.github.com/users/jamessan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamessan/subscriptions","organizations_url":"https://api.github.com/users/jamessan/orgs","repos_url":"https://api.github.com/users/jamessan/repos","events_url":"https://api.github.com/users/jamessan/events{/privacy}","received_events_url":"https://api.github.com/users/jamessan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jamessan/neovim","description":"vim's rebirth for the 21st century","fork":true,"url":"https://api.github.com/repos/jamessan/neovim","forks_url":"https://api.github.com/repos/jamessan/neovim/forks","keys_url":"https://api.github.com/repos/jamessan/neovim/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jamessan/neovim/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jamessan/neovim/teams","hooks_url":"https://api.github.com/repos/jamessan/neovim/hooks","issue_events_url":"https://api.github.com/repos/jamessan/neovim/issues/events{/number}","events_url":"https://api.github.com/repos/jamessan/neovim/events","assignees_url":"https://api.github.com/repos/jamessan/neovim/assignees{/user}","branches_url":"https://api.github.com/repos/jamessan/neovim/branches{/branch}","tags_url":"https://api.github.com/repos/jamessan/neovim/tags","blobs_url":"https://api.github.com/repos/jamessan/neovim/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jamessan/neovim/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jamessan/neovim/git/refs{/sha}","trees_url":"https://api.github.com/repos/jamessan/neovim/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jamessan/neovim/statuses/{sha}","languages_url":"https://api.github.com/repos/jamessan/neovim/languages","stargazers_url":"https://api.github.com/repos/jamessan/neovim/stargazers","contributors_url":"https://api.github.com/repos/jamessan/neovim/contributors","subscribers_url":"https://api.github.com/repos/jamessan/neovim/subscribers","subscription_url":"https://api.github.com/repos/jamessan/neovim/subscription","commits_url":"https://api.github.com/repos/jamessan/neovim/commits{/sha}","git_commits_url":"https://api.github.com/repos/jamessan/neovim/git/commits{/sha}","comments_url":"https://api.github.com/repos/jamessan/neovim/comments{/number}","issue_comment_url":"https://api.github.com/repos/jamessan/neovim/issues/comments{/number}","contents_url":"https://api.github.com/repos/jamessan/neovim/contents/{+path}","compare_url":"https://api.github.com/repos/jamessan/neovim/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jamessan/neovim/merges","archive_url":"https://api.github.com/repos/jamessan/neovim/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jamessan/neovim/downloads","issues_url":"https://api.github.com/repos/jamessan/neovim/issues{/number}","pulls_url":"https://api.github.com/repos/jamessan/neovim/pulls{/number}","milestones_url":"https://api.github.com/repos/jamessan/neovim/milestones{/number}","notifications_url":"https://api.github.com/repos/jamessan/neovim/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jamessan/neovim/labels{/name}","releases_url":"https://api.github.com/repos/jamessan/neovim/releases{/id}","deployments_url":"https://api.github.com/repos/jamessan/neovim/deployments","created_at":"2014-03-13T14:21:51Z","updated_at":"2016-06-01T10:53:19Z","pushed_at":"2016-09-29T18:12:33Z","git_url":"git://github.com/jamessan/neovim.git","ssh_url":"git@github.com:jamessan/neovim.git","clone_url":"https://github.com/jamessan/neovim.git","svn_url":"https://github.com/jamessan/neovim","homepage":"http://neovim.org/","size":41915,"stargazers_count":0,"watchers_count":0,"language":"VimL","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"neovim:master","ref":"master","sha":"724675061c32ce8eaf658f9633e32510a5f23b5d","user":{"login":"neovim","id":6471485,"avatar_url":"https://avatars.githubusercontent.com/u/6471485?v=3","gravatar_id":"","url":"https://api.github.com/users/neovim","html_url":"https://github.com/neovim","followers_url":"https://api.github.com/users/neovim/followers","following_url":"https://api.github.com/users/neovim/following{/other_user}","gists_url":"https://api.github.com/users/neovim/gists{/gist_id}","starred_url":"https://api.github.com/users/neovim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neovim/subscriptions","organizations_url":"https://api.github.com/users/neovim/orgs","repos_url":"https://api.github.com/users/neovim/repos","events_url":"https://api.github.com/users/neovim/events{/privacy}","received_events_url":"https://api.github.com/users/neovim/received_events","type":"Organization","site_admin":false},"repo":{"id":16408992,"name":"neovim","full_name":"neovim/neovim","owner":{"login":"neovim","id":6471485,"avatar_url":"https://avatars.githubusercontent.com/u/6471485?v=3","gravatar_id":"","url":"https://api.github.com/users/neovim","html_url":"https://github.com/neovim","followers_url":"https://api.github.com/users/neovim/followers","following_url":"https://api.github.com/users/neovim/following{/other_user}","gists_url":"https://api.github.com/users/neovim/gists{/gist_id}","starred_url":"https://api.github.com/users/neovim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neovim/subscriptions","organizations_url":"https://api.github.com/users/neovim/orgs","repos_url":"https://api.github.com/users/neovim/repos","events_url":"https://api.github.com/users/neovim/events{/privacy}","received_events_url":"https://api.github.com/users/neovim/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/neovim/neovim","description":"Vim-fork focused on extensibility and agility.","fork":false,"url":"https://api.github.com/repos/neovim/neovim","forks_url":"https://api.github.com/repos/neovim/neovim/forks","keys_url":"https://api.github.com/repos/neovim/neovim/keys{/key_id}","collaborators_url":"https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/neovim/neovim/teams","hooks_url":"https://api.github.com/repos/neovim/neovim/hooks","issue_events_url":"https://api.github.com/repos/neovim/neovim/issues/events{/number}","events_url":"https://api.github.com/repos/neovim/neovim/events","assignees_url":"https://api.github.com/repos/neovim/neovim/assignees{/user}","branches_url":"https://api.github.com/repos/neovim/neovim/branches{/branch}","tags_url":"https://api.github.com/repos/neovim/neovim/tags","blobs_url":"https://api.github.com/repos/neovim/neovim/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/neovim/neovim/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/neovim/neovim/git/refs{/sha}","trees_url":"https://api.github.com/repos/neovim/neovim/git/trees{/sha}","statuses_url":"https://api.github.com/repos/neovim/neovim/statuses/{sha}","languages_url":"https://api.github.com/repos/neovim/neovim/languages","stargazers_url":"https://api.github.com/repos/neovim/neovim/stargazers","contributors_url":"https://api.github.com/repos/neovim/neovim/contributors","subscribers_url":"https://api.github.com/repos/neovim/neovim/subscribers","subscription_url":"https://api.github.com/repos/neovim/neovim/subscription","commits_url":"https://api.github.com/repos/neovim/neovim/commits{/sha}","git_commits_url":"https://api.github.com/repos/neovim/neovim/git/commits{/sha}","comments_url":"https://api.github.com/repos/neovim/neovim/comments{/number}","issue_comment_url":"https://api.github.com/repos/neovim/neovim/issues/comments{/number}","contents_url":"https://api.github.com/repos/neovim/neovim/contents/{+path}","compare_url":"https://api.github.com/repos/neovim/neovim/compare/{base}...{head}","merges_url":"https://api.github.com/repos/neovim/neovim/merges","archive_url":"https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/neovim/neovim/downloads","issues_url":"https://api.github.com/repos/neovim/neovim/issues{/number}","pulls_url":"https://api.github.com/repos/neovim/neovim/pulls{/number}","milestones_url":"https://api.github.com/repos/neovim/neovim/milestones{/number}","notifications_url":"https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/neovim/neovim/labels{/name}","releases_url":"https://api.github.com/repos/neovim/neovim/releases{/id}","deployments_url":"https://api.github.com/repos/neovim/neovim/deployments","created_at":"2014-01-31T13:39:22Z","updated_at":"2016-09-29T18:00:49Z","pushed_at":"2016-09-29T16:59:01Z","git_url":"git://github.com/neovim/neovim.git","ssh_url":"git@github.com:neovim/neovim.git","clone_url":"https://github.com/neovim/neovim.git","svn_url":"https://github.com/neovim/neovim","homepage":"https://salt.bountysource.com/teams/neovim","size":71828,"stargazers_count":20152,"watchers_count":20152,"language":"VimL","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1441,"mirror_url":null,"open_issues_count":771,"forks":1441,"open_issues":771,"watchers":20152,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/neovim/neovim/pulls/5409"},"html":{"href":"https://github.com/neovim/neovim/pull/5409"},"issue":{"href":"https://api.github.com/repos/neovim/neovim/issues/5409"},"comments":{"href":"https://api.github.com/repos/neovim/neovim/issues/5409/comments"},"review_comments":{"href":"https://api.github.com/repos/neovim/neovim/pulls/5409/comments"},"review_comment":{"href":"https://api.github.com/repos/neovim/neovim/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/neovim/neovim/pulls/5409/commits"},"statuses":{"href":"https://api.github.com/repos/neovim/neovim/statuses/c34d9b306fb50daf499ed71f3766587cacddc95a"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":2,"deletions":2,"changed_files":1}}
{"actor":{"display_login":"jamessan"}}