Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
git2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
git2
Commits
98e3b298
Commit
98e3b298
authored
Dec 23, 2010
by
nulltoken
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into repo-init
parents
2c08c3f0
51035184
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
47 additions
and
158 deletions
+47
-158
src/common.h
+0
-1
src/errors.c
+0
-28
src/errors.h
+0
-24
src/fileops.c
+10
-10
src/git2/common.h
+2
-0
src/git2/errors.h
+0
-10
src/unix/map.c
+1
-1
src/util.c
+0
-24
src/util.h
+10
-22
tests/t0001-errno.c
+0
-12
wscript
+24
-26
No files found.
src/common.h
View file @
98e3b298
...
...
@@ -49,7 +49,6 @@ typedef SSIZE_T ssize_t;
#include "git2/common.h"
#include "util.h"
#include "thread-utils.h"
#include "errors.h"
#include "bswap.h"
#define GIT_PATH_MAX 4096
...
...
src/errors.c
View file @
98e3b298
#include "common.h"
#include "thread-utils.h"
/* for GIT_TLS */
#if defined(GIT_TLS)
/* compile-time constant initialization required */
GIT_TLS
int
git_errno
=
0
;
#elif defined(GIT_HAS_PTHREAD)
static
pthread_key_t
errno_key
;
static
void
init_errno
(
void
)
__attribute__
((
constructor
));
static
void
init_errno
(
void
)
{
pthread_key_create
(
&
errno_key
,
free
);
}
int
*
git__errno_storage
(
void
)
{
int
*
e
=
pthread_getspecific
(
errno_key
);
if
(
!
e
)
{
#undef calloc
e
=
calloc
(
1
,
sizeof
(
*
e
));
#define calloc(a,b) GIT__FORBID_MALLOC
pthread_setspecific
(
errno_key
,
e
);
}
return
e
;
}
#endif
static
struct
{
int
num
;
const
char
*
str
;
...
...
src/errors.h
deleted
100644 → 0
View file @
2c08c3f0
#ifndef INCLUDE_errors_h__
#define INCLUDE_errors_h__
#include "git2/errors.h"
/* convenience functions */
GIT_INLINE
(
int
)
git_int_error
(
int
code
)
{
git_errno
=
code
;
return
code
;
}
GIT_INLINE
(
int
)
git_os_error
(
void
)
{
return
git_int_error
(
GIT_EOSERR
);
}
GIT_INLINE
(
void
)
*
git_ptr_error
(
int
code
)
{
git_errno
=
code
;
return
NULL
;
}
#endif
src/fileops.c
View file @
98e3b298
...
...
@@ -5,13 +5,13 @@
int
gitfo_open
(
const
char
*
path
,
int
flags
)
{
int
fd
=
open
(
path
,
flags
|
O_BINARY
);
return
fd
>=
0
?
fd
:
git_os_error
()
;
return
fd
>=
0
?
fd
:
GIT_EOSERR
;
}
int
gitfo_creat
(
const
char
*
path
,
int
mode
)
{
int
fd
=
open
(
path
,
O_WRONLY
|
O_CREAT
|
O_TRUNC
|
O_BINARY
,
mode
);
return
fd
>=
0
?
fd
:
git_os_error
()
;
return
fd
>=
0
?
fd
:
GIT_EOSERR
;
}
int
gitfo_read
(
git_file
fd
,
void
*
buf
,
size_t
cnt
)
...
...
@@ -22,11 +22,11 @@ int gitfo_read(git_file fd, void *buf, size_t cnt)
if
(
r
<
0
)
{
if
(
errno
==
EINTR
||
errno
==
EAGAIN
)
continue
;
return
git_os_error
()
;
return
GIT_EOSERR
;
}
if
(
!
r
)
{
errno
=
EPIPE
;
return
git_os_error
()
;
return
GIT_EOSERR
;
}
cnt
-=
r
;
b
+=
r
;
...
...
@@ -42,11 +42,11 @@ int gitfo_write(git_file fd, void *buf, size_t cnt)
if
(
r
<
0
)
{
if
(
errno
==
EINTR
||
errno
==
EAGAIN
)
continue
;
return
git_os_error
()
;
return
GIT_EOSERR
;
}
if
(
!
r
)
{
errno
=
EPIPE
;
return
git_os_error
()
;
return
GIT_EOSERR
;
}
cnt
-=
r
;
b
+=
r
;
...
...
@@ -93,7 +93,7 @@ off_t gitfo_size(git_file fd)
{
struct
stat
sb
;
if
(
gitfo_fstat
(
fd
,
&
sb
))
return
git_os_error
()
;
return
GIT_EOSERR
;
return
sb
.
st_size
;
}
...
...
@@ -152,13 +152,13 @@ int gitfo_move_file(char *from, char *to)
if
(
!
rename
(
from
,
to
))
return
GIT_SUCCESS
;
return
git_os_error
()
;
return
GIT_EOSERR
;
}
int
gitfo_map_ro
(
git_map
*
out
,
git_file
fd
,
off_t
begin
,
size_t
len
)
{
if
(
git__mmap
(
out
,
len
,
GIT_PROT_READ
,
GIT_MAP_SHARED
,
fd
,
begin
)
<
GIT_SUCCESS
)
return
git_os_error
()
;
return
GIT_EOSERR
;
return
GIT_SUCCESS
;
}
...
...
@@ -276,7 +276,7 @@ int gitfo_dirent(
dir
=
opendir
(
path
);
if
(
!
dir
)
return
git_os_error
()
;
return
GIT_EOSERR
;
while
((
de
=
readdir
(
dir
))
!=
NULL
)
{
size_t
de_len
;
...
...
src/git2/common.h
View file @
98e3b298
...
...
@@ -55,6 +55,8 @@
__attribute__((visibility("default"))) \
GIT_TLS \
type
#elif defined(_MSC_VER)
# define GIT_EXTERN_TLS(type) __declspec(dllexport) GIT_TLS type
#else
# define GIT_EXTERN_TLS(type) extern GIT_TLS type
#endif
...
...
src/git2/errors.h
View file @
98e3b298
...
...
@@ -33,16 +33,6 @@
*/
GIT_BEGIN_DECL
/** The git errno. */
#if defined(GIT_TLS)
GIT_EXTERN_TLS
(
int
)
git_errno
;
#elif defined(GIT_HAS_PTHREAD)
# define git_errno (*git__errno_storage())
GIT_EXTERN
(
int
*
)
git__errno_storage
(
void
);
#endif
/**
* strerror() for the Git library
* @param num The error code to explain
...
...
src/unix/map.c
View file @
98e3b298
...
...
@@ -40,7 +40,7 @@ int git__mmap(git_map *out, size_t len, int prot, int flags, int fd, off_t offse
out
->
data
=
mmap
(
NULL
,
len
,
mprot
,
mflag
,
fd
,
offset
);
if
(
!
out
->
data
||
out
->
data
==
MAP_FAILED
)
return
git_os_error
()
;
return
GIT_EOSERR
;
out
->
len
=
len
;
return
GIT_SUCCESS
;
...
...
src/util.c
View file @
98e3b298
...
...
@@ -3,30 +3,6 @@
#include <stdarg.h>
#include <stdio.h>
void
*
git__malloc
(
size_t
n
)
{
void
*
r
=
malloc
(
n
);
if
(
!
r
)
return
git_ptr_error
(
GIT_ENOMEM
);
return
r
;
}
void
*
git__calloc
(
size_t
a
,
size_t
b
)
{
void
*
r
=
calloc
(
a
,
b
);
if
(
!
r
)
return
git_ptr_error
(
GIT_ENOMEM
);
return
r
;
}
char
*
git__strdup
(
const
char
*
s
)
{
char
*
r
=
strdup
(
s
);
if
(
!
r
)
return
git_ptr_error
(
GIT_ENOMEM
);
return
r
;
}
int
git__fmt
(
char
*
buf
,
size_t
buf_sz
,
const
char
*
fmt
,
...)
{
va_list
va
;
...
...
src/util.h
View file @
98e3b298
...
...
@@ -3,28 +3,16 @@
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
extern
void
*
git__malloc
(
size_t
);
extern
void
*
git__calloc
(
size_t
,
size_t
);
extern
char
*
git__strdup
(
const
char
*
);
#ifndef GIT__NO_HIDE_MALLOC
# define GIT__FORBID_MALLOC do_not_use_malloc_directly
# ifdef malloc
# undef malloc
# endif
# define malloc(a) GIT__FORBID_MALLOC
# ifdef calloc
# undef calloc
# endif
# define calloc(a,b) GIT__FORBID_MALLOC
# ifdef strdup
# undef strdup
# endif
# define strdup(a) GIT__FORBID_MALLOC
#endif
/*
* Don't wrap malloc/calloc.
* Use the default versions in glibc, and make
* sure that any methods that allocate memory
* return a GIT_ENOMEM error when allocation
* fails.
*/
#define git__malloc malloc
#define git__calloc calloc
#define git__strdup strdup
extern
int
git__fmt
(
char
*
,
size_t
,
const
char
*
,
...)
GIT_FORMAT_PRINTF
(
3
,
4
);
...
...
tests/t0001-errno.c
deleted
100644 → 0
View file @
2c08c3f0
#include "test_lib.h"
#include "errors.h"
BEGIN_TEST
(
errno_zero_on_init
)
must_be_true
(
git_errno
==
0
);
END_TEST
BEGIN_TEST
(
set_ENOTOID
)
must_be_true
(
GIT_ENOTOID
!=
0
);
git_errno
=
GIT_ENOTOID
;
must_be_true
(
git_errno
==
GIT_ENOTOID
);
END_TEST
wscript
View file @
98e3b298
...
...
@@ -74,15 +74,15 @@ def build(bld):
# command '[build|clean|install|uninstall]-static'
if bld.variant == 'static':
build_library(bld, '
cstlib
')
build_library(bld, '
static
')
# command '[build|clean|install|uninstall]-shared'
elif bld.variant == 'shared':
build_library(bld, '
cshlib
')
build_library(bld, '
shared
')
# command '[build|clean]-tests'
elif bld.variant == 'tests':
build_library(bld, '
cshlib
')
build_library(bld, '
objects
')
build_tests(bld)
# command 'build|clean|install|uninstall': by default, run
...
...
@@ -91,9 +91,15 @@ def build(bld):
from waflib import Options
Options.commands = [bld.cmd + '-shared', bld.cmd + '-static'] + Options.commands
def build_library(bld, lib_str):
directory = bld.path
def build_library(bld, build_type):
BUILD = {
'shared' : bld.shlib,
'static' : bld.stlib,
'objects' : bld.objects
}
directory = bld.path
sources = directory.ant_glob('src/*.c')
# Compile platform-dependant code
...
...
@@ -106,15 +112,12 @@ def build_library(bld, lib_str):
sources.append('src/ppc/sha1.c')
else:
sources.append('src/block-sha1/sha1.c')
features = ['c', lib_str]
#------------------------------
# Build the main library
#------------------------------
# either as static or shared;
bld(features=features,
BUILD[build_type](
source=sources,
target='git2',
includes='src',
...
...
@@ -123,8 +126,8 @@ def build_library(bld, lib_str):
)
# On Unix systems, build the Pkg-config entry file
if bld.env.PLATFORM == 'unix':
bld(rule="""sed -e 's#@prefix@#$
(prefix)#' -e 's#@libdir@#$(libdir)
#' < ${SRC} > ${TGT}""",
if bld.env.PLATFORM == 'unix'
and bld.is_install
:
bld(rule="""sed -e 's#@prefix@#$
{PREFIX}#' -e 's#@libdir@#${LIBDIR}
#' < ${SRC} > ${TGT}""",
source='libgit2.pc.in',
target='libgit2.pc',
install_path='${LIBDIR}/pkgconfig',
...
...
@@ -134,6 +137,13 @@ def build_library(bld, lib_str):
bld.install_files('${PREFIX}/include', directory.find_node('src/git2.h'))
bld.install_files('${PREFIX}/include/git2', directory.ant_glob('src/git2/*.h'))
# On Unix systems, let them know about installation
if bld.env.PLATFORM == 'unix' and bld.cmd in ['install-static', 'install-shared']:
bld.add_post_fun(call_ldconfig)
def call_ldconfig(bld):
bld.exec_command('/sbin/ldconfig')
def grep_test_header(text, test_file):
return '\n'.join(l for l in test_file.read().splitlines() if text in l)
...
...
@@ -144,7 +154,7 @@ def build_tests(bld):
return
directory = bld.path
resources_path = directory.find_node('tests/resources/').abspath()
resources_path = directory.find_node('tests/resources/').abspath()
.replace('\\', '/')
# Common object with the Test library methods
bld.objects(source=['tests/test_helpers.c', 'tests/test_lib.c'], includes=['src', 'tests'], target='test_helper')
...
...
@@ -167,7 +177,6 @@ def build_tests(bld):
includes=['src', 'tests'],
defines=['TEST_TOC="%s.toc"' % test_name, 'TEST_RESOURCES="%s"' % resources_path],
install_path=None,
shlibpath=[directory.find_node('build/tests/').abspath()],
use=['test_helper', 'git2'] + ALL_LIBS # link with all the libs we know
# libraries which are not enabled won't link
)
...
...
@@ -200,28 +209,17 @@ class _run_tests(Context):
fun = 'run_tests'
def run_tests(ctx):
import shutil, tempfile, sys
, os
import shutil, tempfile, sys
failed = False
test_folder = tempfile.mkdtemp()
build_folder = ctx.path.find_node('build/tests/')
test_glob = 'build/tests/t????-*'
environ = os.environ.copy()
environ_tail = ""
if sys.platform == 'win32':
test_glob += '.exe'
environ_var, environ_separator = 'PATH', ';'
else:
environ_var, environ_separator = 'LD_LIBRARY_PATH', ':'
if environ_var in environ:
environ_tail = environ_separator + environ[environ_var]
environ[environ_var] = build_folder.abspath() + environ_tail
for test in ctx.path.ant_glob(test_glob):
if ctx.exec_command(test.abspath(), cwd=test_folder
, env=environ
) != 0:
if ctx.exec_command(test.abspath(), cwd=test_folder) != 0:
failed = True
break
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment