{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/utf8proc/issues/90","repository_url":"https://api.github.com/repos/JuliaLang/utf8proc","labels_url":"https://api.github.com/repos/JuliaLang/utf8proc/issues/90/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/utf8proc/issues/90/comments","events_url":"https://api.github.com/repos/JuliaLang/utf8proc/issues/90/events","html_url":"https://github.com/JuliaLang/utf8proc/issues/90","id":194824746,"number":90,"title":"C99 compatibility of bool declaration","user":{"login":"ennorehling","id":629521,"avatar_url":"https://avatars.githubusercontent.com/u/629521?v=3","gravatar_id":"","url":"https://api.github.com/users/ennorehling","html_url":"https://github.com/ennorehling","followers_url":"https://api.github.com/users/ennorehling/followers","following_url":"https://api.github.com/users/ennorehling/following{/other_user}","gists_url":"https://api.github.com/users/ennorehling/gists{/gist_id}","starred_url":"https://api.github.com/users/ennorehling/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ennorehling/subscriptions","organizations_url":"https://api.github.com/users/ennorehling/orgs","repos_url":"https://api.github.com/users/ennorehling/repos","events_url":"https://api.github.com/users/ennorehling/events{/privacy}","received_events_url":"https://api.github.com/users/ennorehling/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-12-11T10:36:20Z","updated_at":"2016-12-11T11:49:56Z","closed_at":null,"body":"In utf8proc.h, true, false and bool are defined. They are reserved keywords in modern C (not just C++), and clash with those definitions.\r\n\r\n    #  ifndef __cplusplus\r\n    typedef unsigned char utf8proc_bool;\r\n    enum {false, true};\r\n    #  else\r\n    typedef bool utf8proc_bool;\r\n    #  endif\r\n\r\nThis breaks compilation on MSVC, and there is no preprocessor macro I can define to let utf8proc.h know that bool is already defined elsewhere. Aside from the C99 standard, it also breaks if the utf8proc.h header is included after one that also defines false and true (like stdbool.h, which can be tested for with the __bool_true_false_are_defined feature macro).\r\n"},"comment":{"url":"https://api.github.com/repos/JuliaLang/utf8proc/issues/comments/266277590","html_url":"https://github.com/JuliaLang/utf8proc/issues/90#issuecomment-266277590","issue_url":"https://api.github.com/repos/JuliaLang/utf8proc/issues/90","id":266277590,"user":{"login":"stevengj","id":2913679,"avatar_url":"https://avatars.githubusercontent.com/u/2913679?v=3","gravatar_id":"","url":"https://api.github.com/users/stevengj","html_url":"https://github.com/stevengj","followers_url":"https://api.github.com/users/stevengj/followers","following_url":"https://api.github.com/users/stevengj/following{/other_user}","gists_url":"https://api.github.com/users/stevengj/gists{/gist_id}","starred_url":"https://api.github.com/users/stevengj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevengj/subscriptions","organizations_url":"https://api.github.com/users/stevengj/orgs","repos_url":"https://api.github.com/users/stevengj/repos","events_url":"https://api.github.com/users/stevengj/events{/privacy}","received_events_url":"https://api.github.com/users/stevengj/received_events","type":"User","site_admin":false},"created_at":"2016-12-11T11:49:56Z","updated_at":"2016-12-11T11:49:56Z","body":"(They are not technically reserved words in C; it should be safe to define them in `utf8proc.c`, where we don't include `stdbool.h`.)"}}
{"actor":{"display_login":"stevengj"}}