Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liblongpath-rsync
Project
Project
Details
Activity
Releases
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liblongpath
liblongpath-rsync
Commits
3a8fad78
Commit
3a8fad78
authored
Jul 17, 2008
by
Wayne Davison
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moving big_num() into lib/compat.c so tls.c can use it.
parent
0c096e29
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
43 additions
and
43 deletions
+43
-43
compat.c
lib/compat.c
+43
-0
util.c
util.c
+0
-43
No files found.
lib/compat.c
View file @
3a8fad78
...
...
@@ -151,3 +151,46 @@ int sys_gettimeofday(struct timeval *tv)
return
gettimeofday
(
tv
);
#endif
}
/* Return the int64 number as a string. If the human_flag arg is non-zero,
* we may output the number in K, M, or G units. We can return up to 4
* buffers at a time. */
char
*
big_num
(
int64
num
,
int
human_flag
)
{
static
char
bufs
[
4
][
128
];
/* more than enough room */
static
unsigned
int
n
;
char
*
s
;
n
=
(
n
+
1
)
%
(
sizeof
bufs
/
sizeof
bufs
[
0
]);
if
(
human_flag
)
{
char
units
=
'\0'
;
int
mult
=
human_flag
==
1
?
1000
:
1024
;
double
dnum
=
0
;
if
(
num
>
mult
*
mult
*
mult
)
{
dnum
=
(
double
)
num
/
(
mult
*
mult
*
mult
);
units
=
'G'
;
}
else
if
(
num
>
mult
*
mult
)
{
dnum
=
(
double
)
num
/
(
mult
*
mult
);
units
=
'M'
;
}
else
if
(
num
>
mult
)
{
dnum
=
(
double
)
num
/
mult
;
units
=
'K'
;
}
if
(
units
)
{
snprintf
(
bufs
[
n
],
sizeof
bufs
[
0
],
"%.2f%c"
,
dnum
,
units
);
return
bufs
[
n
];
}
}
s
=
bufs
[
n
]
+
sizeof
bufs
[
0
]
-
1
;
*
s
=
'\0'
;
if
(
!
num
)
*--
s
=
'0'
;
while
(
num
)
{
*--
s
=
(
char
)(
num
%
10
)
+
'0'
;
num
/=
10
;
}
return
s
;
}
util.c
View file @
3a8fad78
...
...
@@ -1188,49 +1188,6 @@ int unsafe_symlink(const char *dest, const char *src)
return
(
depth
<
0
);
}
/* Return the int64 number as a string. If the human_flag arg is non-zero,
* we may output the number in K, M, or G units. We can return up to 4
* buffers at a time. */
char
*
big_num
(
int64
num
,
int
human_flag
)
{
static
char
bufs
[
4
][
128
];
/* more than enough room */
static
unsigned
int
n
;
char
*
s
;
n
=
(
n
+
1
)
%
(
sizeof
bufs
/
sizeof
bufs
[
0
]);
if
(
human_flag
)
{
char
units
=
'\0'
;
int
mult
=
human_flag
==
1
?
1000
:
1024
;
double
dnum
=
0
;
if
(
num
>
mult
*
mult
*
mult
)
{
dnum
=
(
double
)
num
/
(
mult
*
mult
*
mult
);
units
=
'G'
;
}
else
if
(
num
>
mult
*
mult
)
{
dnum
=
(
double
)
num
/
(
mult
*
mult
);
units
=
'M'
;
}
else
if
(
num
>
mult
)
{
dnum
=
(
double
)
num
/
mult
;
units
=
'K'
;
}
if
(
units
)
{
snprintf
(
bufs
[
n
],
sizeof
bufs
[
0
],
"%.2f%c"
,
dnum
,
units
);
return
bufs
[
n
];
}
}
s
=
bufs
[
n
]
+
sizeof
bufs
[
0
]
-
1
;
*
s
=
'\0'
;
if
(
!
num
)
*--
s
=
'0'
;
while
(
num
)
{
*--
s
=
(
char
)(
num
%
10
)
+
'0'
;
num
/=
10
;
}
return
s
;
}
/* Return the double number as a string. If the --human-readable option was
* specified, we may output the number in K, M, or G units. We use a buffer
* from big_num() to return our result. */
...
...
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