{"action":"created","comment":{"url":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/comments/68917067","id":68917067,"diff_hunk":"@@ -393,4 +395,147 @@ void CtrlCHandler::handler(void*)\n \tterminated = true;\n }\n \n+namespace {\n+\n+\tclass Converter\n+\t{\n+\tpublic:\n+\t\tvirtual char* convert(const char* fromBuf, size_t fromLen) = 0;\n+\t\tvirtual void destroy(char* &outBuf) = 0;\n+\t};\n+\n+\t// No real conversion, system locale is UTF-8 or iconv is not available\n+\tclass NullConverter : public Converter\n+\t{\n+\t\tchar* convert(const char* fromBuf, size_t fromLen) override\n+\t\t{\n+\t\t\treturn const_cast<char*>(fromBuf);\n+\t\t}\n+\t\tvoid destroy(char* &outBuf)\n+\t\t{\n+\t\t\toutBuf = NULL;\n+\t\t}\n+\t};\n+\n+#ifdef HAVE_ICONV_H\n+\tclass IConverter : public Converter\n+\t{\n+\tpublic:\n+\n+\t\tIConverter(const char* sysLocale) : ic(NULL)","path":"src/common/os/posix/os_utils.cpp","position":null,"original_position":113,"commit_id":"5df19a8112788bfeb7b6b29344d88400822bf39b","original_commit_id":"1709e09c1337cb55a09ea502aa3971627d1ca06a","user":{"login":"AlexPeshkoff","id":3786577,"avatar_url":"https://avatars.githubusercontent.com/u/3786577?v=3","gravatar_id":"","url":"https://api.github.com/users/AlexPeshkoff","html_url":"https://github.com/AlexPeshkoff","followers_url":"https://api.github.com/users/AlexPeshkoff/followers","following_url":"https://api.github.com/users/AlexPeshkoff/following{/other_user}","gists_url":"https://api.github.com/users/AlexPeshkoff/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexPeshkoff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexPeshkoff/subscriptions","organizations_url":"https://api.github.com/users/AlexPeshkoff/orgs","repos_url":"https://api.github.com/users/AlexPeshkoff/repos","events_url":"https://api.github.com/users/AlexPeshkoff/events{/privacy}","received_events_url":"https://api.github.com/users/AlexPeshkoff/received_events","type":"User","site_admin":false},"body":"> This is just a copy-paste from isc_file.cpp::IConv class.\r\n\r\nclass IConv is a helper for calling function iconv(): http://linux.die.net/man/3/iconv\r\nIt has nothing to do with interfaces but exactly in this form I treat it's name as good.\r\n\r\nWhat about copy-paste - this is what I do not understand. Why have 2 same (may be almost same) classes with different names? You should have single class performing all actions required from iconv() and use them in all c++ modules where you need. I'm strongly against copyNpaste techology!","created_at":"2016-06-29T09:51:00Z","updated_at":"2016-06-29T09:51:00Z","html_url":"https://github.com/FirebirdSQL/firebird/pull/15#discussion_r68917067","pull_request_url":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/15","_links":{"self":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/comments/68917067"},"html":{"href":"https://github.com/FirebirdSQL/firebird/pull/15#discussion_r68917067"},"pull_request":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/15"}}},"pull_request":{"url":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/15","id":66736466,"html_url":"https://github.com/FirebirdSQL/firebird/pull/15","diff_url":"https://github.com/FirebirdSQL/firebird/pull/15.diff","patch_url":"https://github.com/FirebirdSQL/firebird/pull/15.patch","issue_url":"https://api.github.com/repos/FirebirdSQL/firebird/issues/15","number":15,"state":"open","locked":false,"title":"Basic support for Unicode file names","user":{"login":"aafemt","id":17592921,"avatar_url":"https://avatars.githubusercontent.com/u/17592921?v=3","gravatar_id":"","url":"https://api.github.com/users/aafemt","html_url":"https://github.com/aafemt","followers_url":"https://api.github.com/users/aafemt/followers","following_url":"https://api.github.com/users/aafemt/following{/other_user}","gists_url":"https://api.github.com/users/aafemt/gists{/gist_id}","starred_url":"https://api.github.com/users/aafemt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aafemt/subscriptions","organizations_url":"https://api.github.com/users/aafemt/orgs","repos_url":"https://api.github.com/users/aafemt/repos","events_url":"https://api.github.com/users/aafemt/events{/privacy}","received_events_url":"https://api.github.com/users/aafemt/received_events","type":"User","site_admin":false},"body":"Unicode file names and pathes work at API level. Little glitches can be fixed after Pavel Zotov create test suite.\r\nMuch more must be done for unicode support in utilities command lines.","created_at":"2016-04-16T12:12:16Z","updated_at":"2016-06-29T09:51:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a0bbbd18041da8bc1dcea12f4c5db08d10bd9c6a","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/15/commits","review_comments_url":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/15/comments","review_comment_url":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/comments{/number}","comments_url":"https://api.github.com/repos/FirebirdSQL/firebird/issues/15/comments","statuses_url":"https://api.github.com/repos/FirebirdSQL/firebird/statuses/5df19a8112788bfeb7b6b29344d88400822bf39b","head":{"label":"aafemt:unicode","ref":"unicode","sha":"5df19a8112788bfeb7b6b29344d88400822bf39b","user":{"login":"aafemt","id":17592921,"avatar_url":"https://avatars.githubusercontent.com/u/17592921?v=3","gravatar_id":"","url":"https://api.github.com/users/aafemt","html_url":"https://github.com/aafemt","followers_url":"https://api.github.com/users/aafemt/followers","following_url":"https://api.github.com/users/aafemt/following{/other_user}","gists_url":"https://api.github.com/users/aafemt/gists{/gist_id}","starred_url":"https://api.github.com/users/aafemt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aafemt/subscriptions","organizations_url":"https://api.github.com/users/aafemt/orgs","repos_url":"https://api.github.com/users/aafemt/repos","events_url":"https://api.github.com/users/aafemt/events{/privacy}","received_events_url":"https://api.github.com/users/aafemt/received_events","type":"User","site_admin":false},"repo":{"id":54150440,"name":"firebird","full_name":"aafemt/firebird","owner":{"login":"aafemt","id":17592921,"avatar_url":"https://avatars.githubusercontent.com/u/17592921?v=3","gravatar_id":"","url":"https://api.github.com/users/aafemt","html_url":"https://github.com/aafemt","followers_url":"https://api.github.com/users/aafemt/followers","following_url":"https://api.github.com/users/aafemt/following{/other_user}","gists_url":"https://api.github.com/users/aafemt/gists{/gist_id}","starred_url":"https://api.github.com/users/aafemt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aafemt/subscriptions","organizations_url":"https://api.github.com/users/aafemt/orgs","repos_url":"https://api.github.com/users/aafemt/repos","events_url":"https://api.github.com/users/aafemt/events{/privacy}","received_events_url":"https://api.github.com/users/aafemt/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/aafemt/firebird","description":"Firebird server, client and tools","fork":true,"url":"https://api.github.com/repos/aafemt/firebird","forks_url":"https://api.github.com/repos/aafemt/firebird/forks","keys_url":"https://api.github.com/repos/aafemt/firebird/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aafemt/firebird/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aafemt/firebird/teams","hooks_url":"https://api.github.com/repos/aafemt/firebird/hooks","issue_events_url":"https://api.github.com/repos/aafemt/firebird/issues/events{/number}","events_url":"https://api.github.com/repos/aafemt/firebird/events","assignees_url":"https://api.github.com/repos/aafemt/firebird/assignees{/user}","branches_url":"https://api.github.com/repos/aafemt/firebird/branches{/branch}","tags_url":"https://api.github.com/repos/aafemt/firebird/tags","blobs_url":"https://api.github.com/repos/aafemt/firebird/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aafemt/firebird/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aafemt/firebird/git/refs{/sha}","trees_url":"https://api.github.com/repos/aafemt/firebird/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aafemt/firebird/statuses/{sha}","languages_url":"https://api.github.com/repos/aafemt/firebird/languages","stargazers_url":"https://api.github.com/repos/aafemt/firebird/stargazers","contributors_url":"https://api.github.com/repos/aafemt/firebird/contributors","subscribers_url":"https://api.github.com/repos/aafemt/firebird/subscribers","subscription_url":"https://api.github.com/repos/aafemt/firebird/subscription","commits_url":"https://api.github.com/repos/aafemt/firebird/commits{/sha}","git_commits_url":"https://api.github.com/repos/aafemt/firebird/git/commits{/sha}","comments_url":"https://api.github.com/repos/aafemt/firebird/comments{/number}","issue_comment_url":"https://api.github.com/repos/aafemt/firebird/issues/comments{/number}","contents_url":"https://api.github.com/repos/aafemt/firebird/contents/{+path}","compare_url":"https://api.github.com/repos/aafemt/firebird/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aafemt/firebird/merges","archive_url":"https://api.github.com/repos/aafemt/firebird/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aafemt/firebird/downloads","issues_url":"https://api.github.com/repos/aafemt/firebird/issues{/number}","pulls_url":"https://api.github.com/repos/aafemt/firebird/pulls{/number}","milestones_url":"https://api.github.com/repos/aafemt/firebird/milestones{/number}","notifications_url":"https://api.github.com/repos/aafemt/firebird/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aafemt/firebird/labels{/name}","releases_url":"https://api.github.com/repos/aafemt/firebird/releases{/id}","deployments_url":"https://api.github.com/repos/aafemt/firebird/deployments","created_at":"2016-03-17T20:49:05Z","updated_at":"2016-03-17T20:52:22Z","pushed_at":"2016-06-28T20:20:51Z","git_url":"git://github.com/aafemt/firebird.git","ssh_url":"git@github.com:aafemt/firebird.git","clone_url":"https://github.com/aafemt/firebird.git","svn_url":"https://github.com/aafemt/firebird","homepage":"http://www.firebirdsql.org/","size":112554,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":true,"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":"unicode"}},"base":{"label":"FirebirdSQL:master","ref":"master","sha":"869f6c7c3c2191f0f104f127f78d2233b194dfdf","user":{"login":"FirebirdSQL","id":6057940,"avatar_url":"https://avatars.githubusercontent.com/u/6057940?v=3","gravatar_id":"","url":"https://api.github.com/users/FirebirdSQL","html_url":"https://github.com/FirebirdSQL","followers_url":"https://api.github.com/users/FirebirdSQL/followers","following_url":"https://api.github.com/users/FirebirdSQL/following{/other_user}","gists_url":"https://api.github.com/users/FirebirdSQL/gists{/gist_id}","starred_url":"https://api.github.com/users/FirebirdSQL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FirebirdSQL/subscriptions","organizations_url":"https://api.github.com/users/FirebirdSQL/orgs","repos_url":"https://api.github.com/users/FirebirdSQL/repos","events_url":"https://api.github.com/users/FirebirdSQL/events{/privacy}","received_events_url":"https://api.github.com/users/FirebirdSQL/received_events","type":"Organization","site_admin":false},"repo":{"id":54005538,"name":"firebird","full_name":"FirebirdSQL/firebird","owner":{"login":"FirebirdSQL","id":6057940,"avatar_url":"https://avatars.githubusercontent.com/u/6057940?v=3","gravatar_id":"","url":"https://api.github.com/users/FirebirdSQL","html_url":"https://github.com/FirebirdSQL","followers_url":"https://api.github.com/users/FirebirdSQL/followers","following_url":"https://api.github.com/users/FirebirdSQL/following{/other_user}","gists_url":"https://api.github.com/users/FirebirdSQL/gists{/gist_id}","starred_url":"https://api.github.com/users/FirebirdSQL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FirebirdSQL/subscriptions","organizations_url":"https://api.github.com/users/FirebirdSQL/orgs","repos_url":"https://api.github.com/users/FirebirdSQL/repos","events_url":"https://api.github.com/users/FirebirdSQL/events{/privacy}","received_events_url":"https://api.github.com/users/FirebirdSQL/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/FirebirdSQL/firebird","description":"Firebird server, client and tools","fork":false,"url":"https://api.github.com/repos/FirebirdSQL/firebird","forks_url":"https://api.github.com/repos/FirebirdSQL/firebird/forks","keys_url":"https://api.github.com/repos/FirebirdSQL/firebird/keys{/key_id}","collaborators_url":"https://api.github.com/repos/FirebirdSQL/firebird/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/FirebirdSQL/firebird/teams","hooks_url":"https://api.github.com/repos/FirebirdSQL/firebird/hooks","issue_events_url":"https://api.github.com/repos/FirebirdSQL/firebird/issues/events{/number}","events_url":"https://api.github.com/repos/FirebirdSQL/firebird/events","assignees_url":"https://api.github.com/repos/FirebirdSQL/firebird/assignees{/user}","branches_url":"https://api.github.com/repos/FirebirdSQL/firebird/branches{/branch}","tags_url":"https://api.github.com/repos/FirebirdSQL/firebird/tags","blobs_url":"https://api.github.com/repos/FirebirdSQL/firebird/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/FirebirdSQL/firebird/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/FirebirdSQL/firebird/git/refs{/sha}","trees_url":"https://api.github.com/repos/FirebirdSQL/firebird/git/trees{/sha}","statuses_url":"https://api.github.com/repos/FirebirdSQL/firebird/statuses/{sha}","languages_url":"https://api.github.com/repos/FirebirdSQL/firebird/languages","stargazers_url":"https://api.github.com/repos/FirebirdSQL/firebird/stargazers","contributors_url":"https://api.github.com/repos/FirebirdSQL/firebird/contributors","subscribers_url":"https://api.github.com/repos/FirebirdSQL/firebird/subscribers","subscription_url":"https://api.github.com/repos/FirebirdSQL/firebird/subscription","commits_url":"https://api.github.com/repos/FirebirdSQL/firebird/commits{/sha}","git_commits_url":"https://api.github.com/repos/FirebirdSQL/firebird/git/commits{/sha}","comments_url":"https://api.github.com/repos/FirebirdSQL/firebird/comments{/number}","issue_comment_url":"https://api.github.com/repos/FirebirdSQL/firebird/issues/comments{/number}","contents_url":"https://api.github.com/repos/FirebirdSQL/firebird/contents/{+path}","compare_url":"https://api.github.com/repos/FirebirdSQL/firebird/compare/{base}...{head}","merges_url":"https://api.github.com/repos/FirebirdSQL/firebird/merges","archive_url":"https://api.github.com/repos/FirebirdSQL/firebird/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/FirebirdSQL/firebird/downloads","issues_url":"https://api.github.com/repos/FirebirdSQL/firebird/issues{/number}","pulls_url":"https://api.github.com/repos/FirebirdSQL/firebird/pulls{/number}","milestones_url":"https://api.github.com/repos/FirebirdSQL/firebird/milestones{/number}","notifications_url":"https://api.github.com/repos/FirebirdSQL/firebird/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/FirebirdSQL/firebird/labels{/name}","releases_url":"https://api.github.com/repos/FirebirdSQL/firebird/releases{/id}","deployments_url":"https://api.github.com/repos/FirebirdSQL/firebird/deployments","created_at":"2016-03-16T06:10:37Z","updated_at":"2016-06-14T12:15:12Z","pushed_at":"2016-06-29T00:05:40Z","git_url":"git://github.com/FirebirdSQL/firebird.git","ssh_url":"git@github.com:FirebirdSQL/firebird.git","clone_url":"https://github.com/FirebirdSQL/firebird.git","svn_url":"https://github.com/FirebirdSQL/firebird","homepage":"http://www.firebirdsql.org/","size":188163,"stargazers_count":48,"watchers_count":48,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":3,"forks":20,"open_issues":3,"watchers":48,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/15"},"html":{"href":"https://github.com/FirebirdSQL/firebird/pull/15"},"issue":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/issues/15"},"comments":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/issues/15/comments"},"review_comments":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/15/comments"},"review_comment":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/pulls/15/commits"},"statuses":{"href":"https://api.github.com/repos/FirebirdSQL/firebird/statuses/5df19a8112788bfeb7b6b29344d88400822bf39b"}}}}
{"actor":{"display_login":"AlexPeshkoff"}}