Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
git
提交
041a7308
G
git
项目概览
李少辉-开发者
/
git
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
git
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
041a7308
编写于
4月 19, 2006
作者:
J
Junio C Hamano
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sha1_name.c: prepare to make get_tree_entry() reusable from others.
Signed-off-by:
N
Junio C Hamano
<
junkio@cox.net
>
上级
5119602a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
9 deletion
+10
-9
sha1_name.c
sha1_name.c
+10
-9
未找到文件。
sha1_name.c
浏览文件 @
041a7308
...
...
@@ -450,18 +450,17 @@ static int get_sha1_1(const char *name, int len, unsigned char *sha1)
return
get_short_sha1
(
name
,
len
,
sha1
,
0
);
}
static
int
get_tree_entry
(
const
unsigned
char
*
,
const
char
*
,
unsigned
char
*
);
static
int
get_tree_entry
(
const
unsigned
char
*
,
const
char
*
,
unsigned
char
*
,
unsigned
*
);
static
int
find_tree_entry
(
struct
tree_desc
*
t
,
const
char
*
name
,
unsigned
char
*
result
)
static
int
find_tree_entry
(
struct
tree_desc
*
t
,
const
char
*
name
,
unsigned
char
*
result
,
unsigned
*
mode
)
{
int
namelen
=
strlen
(
name
);
while
(
t
->
size
)
{
const
char
*
entry
;
const
unsigned
char
*
sha1
;
int
entrylen
,
cmp
;
unsigned
mode
;
sha1
=
tree_entry_extract
(
t
,
&
entry
,
&
mode
);
sha1
=
tree_entry_extract
(
t
,
&
entry
,
mode
);
update_tree_entry
(
t
);
entrylen
=
strlen
(
entry
);
if
(
entrylen
>
namelen
)
...
...
@@ -477,18 +476,18 @@ static int find_tree_entry(struct tree_desc *t, const char *name, unsigned char
}
if
(
name
[
entrylen
]
!=
'/'
)
continue
;
if
(
!
S_ISDIR
(
mode
))
if
(
!
S_ISDIR
(
*
mode
))
break
;
if
(
++
entrylen
==
namelen
)
{
memcpy
(
result
,
sha1
,
20
);
return
0
;
}
return
get_tree_entry
(
sha1
,
name
+
entrylen
,
result
);
return
get_tree_entry
(
sha1
,
name
+
entrylen
,
result
,
mode
);
}
return
-
1
;
}
static
int
get_tree_entry
(
const
unsigned
char
*
tree_sha1
,
const
char
*
name
,
unsigned
char
*
sha1
)
static
int
get_tree_entry
(
const
unsigned
char
*
tree_sha1
,
const
char
*
name
,
unsigned
char
*
sha1
,
unsigned
*
mode
)
{
int
retval
;
void
*
tree
;
...
...
@@ -498,7 +497,7 @@ static int get_tree_entry(const unsigned char *tree_sha1, const char *name, unsi
if
(
!
tree
)
return
-
1
;
t
.
buf
=
tree
;
retval
=
find_tree_entry
(
&
t
,
name
,
sha1
);
retval
=
find_tree_entry
(
&
t
,
name
,
sha1
,
mode
);
free
(
tree
);
return
retval
;
}
...
...
@@ -510,6 +509,7 @@ static int get_tree_entry(const unsigned char *tree_sha1, const char *name, unsi
int
get_sha1
(
const
char
*
name
,
unsigned
char
*
sha1
)
{
int
ret
;
unsigned
unused
;
prepare_alt_odb
();
ret
=
get_sha1_1
(
name
,
strlen
(
name
),
sha1
);
...
...
@@ -518,7 +518,8 @@ int get_sha1(const char *name, unsigned char *sha1)
if
(
cp
)
{
unsigned
char
tree_sha1
[
20
];
if
(
!
get_sha1_1
(
name
,
cp
-
name
,
tree_sha1
))
return
get_tree_entry
(
tree_sha1
,
cp
+
1
,
sha1
);
return
get_tree_entry
(
tree_sha1
,
cp
+
1
,
sha1
,
&
unused
);
}
}
return
ret
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录