trust-executable-bit: fix breakage for symlinks
An earlier commit f28b34a broke symlinks when trust-executable-bit is not set because it incorrectly assumed that everything was a regular file. Reported by Juergen Ruehle. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
@ -112,13 +112,13 @@ static int add_file_to_cache(const char *path)
|
||||
ce->ce_mode = create_ce_mode(st.st_mode);
|
||||
if (!trust_executable_bit) {
|
||||
/* If there is an existing entry, pick the mode bits
|
||||
* from it, otherwise force to 644.
|
||||
* from it, otherwise assume unexecutable.
|
||||
*/
|
||||
int pos = cache_name_pos(path, namelen);
|
||||
if (0 <= pos)
|
||||
ce->ce_mode = active_cache[pos]->ce_mode;
|
||||
else
|
||||
ce->ce_mode = create_ce_mode(S_IFREG | 0644);
|
||||
else if (S_ISREG(st.st_mode))
|
||||
ce->ce_mode = create_ce_mode(S_IFREG | 0666);
|
||||
}
|
||||
|
||||
if (index_path(ce->sha1, path, &st, !info_only))
|
||||
|
Reference in New Issue
Block a user