path.c: simplify adjust_shared_perm()

All calls to set_shared_perm() use mode == 0, so simplify the
function.

Because all callers use the macro adjust_shared_perm(path) from
cache.h to call this function, convert it to a proper function,
losing set_shared_perm().

Since path.c has much more functions than just mkpath() these days,
drop the stale comment about it.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Torsten Bögershausen 2013-03-30 10:53:32 +01:00 committed by Junio C Hamano
parent 0117c2f043
commit 3a429d3b8d
2 changed files with 8 additions and 22 deletions

View File

@ -713,8 +713,7 @@ enum sharedrepo {
PERM_EVERYBODY = 0664 PERM_EVERYBODY = 0664
}; };
int git_config_perm(const char *var, const char *value); int git_config_perm(const char *var, const char *value);
int set_shared_perm(const char *path, int mode); int adjust_shared_perm(const char *path);
#define adjust_shared_perm(path) set_shared_perm((path), 0)
int safe_create_leading_directories(char *path); int safe_create_leading_directories(char *path);
int safe_create_leading_directories_const(const char *path); int safe_create_leading_directories_const(const char *path);
int mkdir_in_gitdir(const char *path); int mkdir_in_gitdir(const char *path);

27
path.c
View File

@ -1,14 +1,5 @@
/* /*
* I'm tired of doing "vsnprintf()" etc just to open a * Utilities for paths and pathnames
* file, so here's a "return static buffer with printf"
* interface for paths.
*
* It's obviously not thread-safe. Sue me. But it's quite
* useful for doing things like
*
* f = open(mkpath("%s/%s.git", base, name), O_RDONLY);
*
* which is what it's designed for.
*/ */
#include "cache.h" #include "cache.h"
#include "strbuf.h" #include "strbuf.h"
@ -405,21 +396,17 @@ const char *enter_repo(const char *path, int strict)
return NULL; return NULL;
} }
int set_shared_perm(const char *path, int mode) int adjust_shared_perm(const char *path)
{ {
int tweak, shared, orig_mode; int tweak, shared, orig_mode, mode;
if (!shared_repository) { if (!shared_repository) {
if (mode)
return chmod(path, mode & ~S_IFMT);
return 0; return 0;
} }
if (!mode) { if (get_st_mode_bits(path, &mode) < 0)
if (get_st_mode_bits(path, &mode) < 0) return -1;
return -1;
orig_mode = mode; orig_mode = mode;
} else
orig_mode = 0;
if (shared_repository < 0) if (shared_repository < 0)
shared = -shared_repository; shared = -shared_repository;
else else