{"thread":{"id":"33332","subject":"[PATCH 1/2] optimize set_shared_perm() in path.c:","startedAt":"2013-03-30T09:53:32Z","lastAt":"2013-03-30T09:53:32Z","messageCount":1,"participants":["Torsten Bögershausen"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"212696","messageId":"201303301053.34555.tboegi@web.de","threadId":"33332","inReplyTo":null,"subject":"[PATCH 1/2] optimize set_shared_perm() in path.c:","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-03-30T09:53:32Z","receivedAt":"2013-03-30T09:53:32Z","isPatch":true,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"All calls to set_shared_perm() use mode == 0, so simplify the function.\n\nAll callers use the macro adjust_shared_perm(path) from cache.h,\nconvert adjust_shared_perm() from a macro into a function prototype\n\nSince path.c has much more functions than just mkpath(),\nimprove a stale comment about path.c\n\nSigned-off-by: Torsten Bögershausen <tboegi@web.de>\n---\n cache.h |  3 +--\n path.c  | 27 +++++++--------------------\n 2 files changed, 8 insertions(+), 22 deletions(-)\n\ndiff --git a/cache.h b/cache.h\nindex c12957b..e1e8ce8 100644\n--- a/cache.h\n+++ b/cache.h\n@@ -719,8 +719,7 @@ enum sharedrepo {\n \tPERM_EVERYBODY      = 0664\n };\n int git_config_perm(const char *var, const char *value);\n-int set_shared_perm(const char *path, int mode);\n-#define adjust_shared_perm(path) set_shared_perm((path), 0)\n+int adjust_shared_perm(const char *path);\n int safe_create_leading_directories(char *path);\n int safe_create_leading_directories_const(const char *path);\n int mkdir_in_gitdir(const char *path);\ndiff --git a/path.c b/path.c\nindex 2fdccc2..427312e 100644\n--- a/path.c\n+++ b/path.c\n@@ -1,14 +1,5 @@\n /*\n- * I'm tired of doing \"vsnprintf()\" etc just to open a\n- * file, so here's a \"return static buffer with printf\"\n- * interface for paths.\n- *\n- * It's obviously not thread-safe. Sue me. But it's quite\n- * useful for doing things like\n- *\n- *   f = open(mkpath(\"%s/%s.git\", base, name), O_RDONLY);\n- *\n- * which is what it's designed for.\n+ * Different utilitiy functions for path and path names\n  */\n #include \"cache.h\"\n #include \"strbuf.h\"\n@@ -405,21 +396,17 @@ const char *enter_repo(const char *path, int strict)\n \treturn NULL;\n }\n \n-int set_shared_perm(const char *path, int mode)\n+int adjust_shared_perm(const char *path)\n {\n-\tint tweak, shared, orig_mode;\n+\tint tweak, shared, orig_mode, mode;\n \n \tif (!shared_repository) {\n-\t\tif (mode)\n-\t\t\treturn chmod(path, mode & ~S_IFMT);\n \t\treturn 0;\n \t}\n-\tif (!mode) {\n-\t\tif (get_st_mode_bits(path, &mode) < 0)\n-\t\t\treturn -1;\n-\t\torig_mode = mode;\n-\t} else\n-\t\torig_mode = 0;\n+\tif (get_st_mode_bits(path, &mode) < 0)\n+\t\treturn -1;\n+\n+\torig_mode = mode;\n \tif (shared_repository < 0)\n \t\tshared = -shared_repository;\n \telse\n-- \n1.8.2.341.g543621f\n"}]}