Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jlib
Project
Project
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
captainwong
jlib
Commits
1e56221e
Commit
1e56221e
authored
Jul 27, 2020
by
captainwong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix version
parent
da3a109b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
38 deletions
+42
-38
version.h
jlib/util/version.h
+26
-31
FileOper.h
jlib/win32/mfc/FileOper.h
+4
-7
test_version.cpp
test/test_version/test_version.cpp
+12
-0
No files found.
jlib/util/version.h
View file @
1e56221e
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
#include <sstream>
#include <sstream>
#include <fstream>
#include <fstream>
#include <vector>
#include <vector>
#include <stdint.h>
namespace
jlib
namespace
jlib
{
{
...
@@ -47,26 +48,28 @@ inline Branch branchFromString(const std::string& name) {
...
@@ -47,26 +48,28 @@ inline Branch branchFromString(const std::string& name) {
//! 应用程序版本号
//! 应用程序版本号
struct
Version
{
struct
Version
{
//! 主版本
//! 主版本
in
t
major
=
0
;
uint16_
t
major
=
0
;
//! 功能更新
//! 功能更新
in
t
minor
=
0
;
uint16_
t
minor
=
0
;
//! bug 修复
//! bug 修复
in
t
revision
=
0
;
uint16_
t
revision
=
0
;
//! 随意,我一般用来表示程序总迭代(编译成功)次数
//! 随意,我一般用来表示程序总迭代(编译成功)次数
in
t
build
=
0
;
uint16_
t
build
=
0
;
Version
()
=
default
;
Version
()
=
default
;
Version
(
int
major
,
int
minor
,
int
revision
,
in
t
build
)
Version
(
uint16_t
major
,
uint16_t
minor
,
uint16_t
revision
,
uint16_
t
build
)
:
major
(
major
),
minor
(
minor
),
revision
(
revision
),
build
(
build
)
{}
:
major
(
major
),
minor
(
minor
),
revision
(
revision
),
build
(
build
)
{}
Version
(
const
std
::
string
&
s
)
{
_fromString
(
s
);
}
Version
(
const
std
::
string
&
s
)
{
_fromString
(
s
);
}
Version
(
uint64_t
v
)
{
fromUInt64
(
v
);
}
Version
&
fromString
(
const
std
::
string
&
s
)
{
_fromString
(
s
);
return
*
this
;
}
Version
&
fromString
(
const
std
::
string
&
s
)
{
_fromString
(
s
);
return
*
this
;
}
Version
&
operator
=
(
const
std
::
string
&
s
)
{
_fromString
(
s
);
return
*
this
;
}
Version
&
operator
=
(
const
std
::
string
&
s
)
{
_fromString
(
s
);
return
*
this
;
}
Version
&
operator
=
(
uint64_t
v
)
{
fromUInt64
(
v
);
return
*
this
;
}
bool
valid
()
const
{
return
!
(
major
==
0
&&
minor
==
0
&&
revision
==
0
&&
build
==
0
);
}
bool
valid
()
const
{
return
!
(
major
==
0
&&
minor
==
0
&&
revision
==
0
&&
build
==
0
);
}
void
reset
()
{
major
=
minor
=
revision
=
build
=
0
;
}
void
reset
()
{
major
=
minor
=
revision
=
build
=
0
;
}
bool
_fromString
(
const
std
::
string
&
s
)
{
bool
_fromString
(
const
std
::
string
&
s
)
{
if
(
std
::
sscanf
(
s
.
c_str
(),
"%
d.%d.%d.%d
"
,
&
major
,
&
minor
,
&
revision
,
&
build
)
!=
4
)
{
if
(
std
::
sscanf
(
s
.
c_str
(),
"%
hu.%hu.%hu.%hu
"
,
&
major
,
&
minor
,
&
revision
,
&
build
)
!=
4
)
{
reset
();
return
false
;
reset
();
return
false
;
}
}
if
(
major
<
0
)
major
=
0
;
if
(
minor
<
0
)
minor
=
0
;
if
(
major
<
0
)
major
=
0
;
if
(
minor
<
0
)
minor
=
0
;
...
@@ -81,6 +84,17 @@ struct Version {
...
@@ -81,6 +84,17 @@ struct Version {
std
::
to_string
(
build
);
std
::
to_string
(
build
);
}
}
void
fromUInt64
(
uint64_t
v
)
{
major
=
(
v
>>
48
)
&
0xFFFF
;
minor
=
(
v
>>
32
)
&
0xFFFF
;
revision
=
(
v
>>
16
)
&
0xFFFF
;
build
=
v
&
0xFFFF
;
}
uint64_t
toUInt64
()
const
{
return
((
uint64_t
)
major
<<
48
)
|
((
uint64_t
)
minor
<<
32
)
|
((
uint64_t
)
revision
<<
16
)
|
(
uint64_t
)
build
;
}
//! require cpp17
//! require cpp17
template
<
typename
T
>
template
<
typename
T
>
bool
fromFile
(
T
const
&
path
)
{
bool
fromFile
(
T
const
&
path
)
{
...
@@ -106,42 +120,23 @@ struct Version {
...
@@ -106,42 +120,23 @@ struct Version {
}
}
bool
operator
==
(
const
Version
&
ver
)
const
{
bool
operator
==
(
const
Version
&
ver
)
const
{
return
major
==
ver
.
major
return
toUInt64
()
==
ver
.
toUInt64
();
&&
minor
==
ver
.
minor
&&
revision
==
ver
.
revision
&&
build
==
ver
.
build
;
}
}
bool
operator
<
(
const
Version
&
ver
)
const
{
bool
operator
<
(
const
Version
&
ver
)
const
{
if
(
major
>
ver
.
major
)
return
false
;
return
toUInt64
()
<
ver
.
toUInt64
();
if
(
minor
>
ver
.
minor
)
return
false
;
if
(
revision
>
ver
.
revision
)
return
false
;
if
(
build
>
ver
.
build
)
return
false
;
if
(
this
->
operator
==
(
ver
))
return
false
;
return
true
;
}
}
bool
operator
>
(
const
Version
&
ver
)
const
{
bool
operator
>
(
const
Version
&
ver
)
const
{
if
(
major
<
ver
.
major
)
return
false
;
return
toUInt64
()
>
ver
.
toUInt64
();
if
(
minor
<
ver
.
minor
)
return
false
;
if
(
revision
<
ver
.
revision
)
return
false
;
if
(
build
<
ver
.
build
)
return
false
;
if
(
this
->
operator
==
(
ver
))
return
false
;
return
true
;
}
}
bool
operator
<=
(
const
Version
&
ver
)
const
{
bool
operator
<=
(
const
Version
&
ver
)
const
{
return
(
major
<=
ver
.
major
)
return
toUInt64
()
<=
ver
.
toUInt64
();
&&
(
minor
<=
ver
.
minor
)
&&
(
revision
<=
ver
.
revision
)
&&
(
build
<=
ver
.
build
);
}
}
bool
operator
>=
(
const
Version
&
ver
)
const
{
bool
operator
>=
(
const
Version
&
ver
)
const
{
return
(
major
>=
ver
.
major
)
return
toUInt64
()
>=
ver
.
toUInt64
();
&&
(
minor
>=
ver
.
minor
)
&&
(
revision
>=
ver
.
revision
)
&&
(
build
>=
ver
.
build
);
}
}
};
};
...
...
jlib/win32/mfc/FileOper.h
View file @
1e56221e
...
@@ -74,9 +74,8 @@ public:
...
@@ -74,9 +74,8 @@ public:
char
cmd
[
64
]
=
{
0
};
char
cmd
[
64
]
=
{
0
};
#if defined(_UNICODE) || defined(UNICODE)
#if defined(_UNICODE) || defined(UNICODE)
char
*
path
=
Utf16ToAnsi
(
folderPath
);
auto
path
=
utf16_to_mbcs
(
folderPath
);
sprintf_s
(
cmd
,
"rd /s /q
\"
%s
\"
"
,
path
);
sprintf_s
(
cmd
,
"rd /s /q
\"
%s
\"
"
,
path
.
data
());
SAFEDELETEARR
(
path
);
#else
#else
sprintf_s
(
cmd
,
"rd /s /q
\"
%s
\"
"
,
folderPath
);
sprintf_s
(
cmd
,
"rd /s /q
\"
%s
\"
"
,
folderPath
);
#endif
#endif
...
@@ -90,14 +89,12 @@ public:
...
@@ -90,14 +89,12 @@ public:
static
long
GetFileSize
(
const
CString
&
path
){
static
long
GetFileSize
(
const
CString
&
path
){
FILE
*
p
=
NULL
;
FILE
*
p
=
NULL
;
#if defined(_UNICODE) || defined(UNICODE)
#if defined(_UNICODE) || defined(UNICODE)
char
*
cpath
=
Utf16ToAnsi
(
path
);
auto
cpath
=
utf16_to_mbcs
((
LPCTSTR
)
path
);
fopen_s
(
&
p
,
cpath
,
"r"
);
fopen_s
(
&
p
,
cpath
.
data
()
,
"r"
);
if
(
p
==
NULL
)
if
(
p
==
NULL
)
{
{
SAFEDELETEARR
(
cpath
);
return
0
;
return
0
;
}
}
SAFEDELETEARR
(
cpath
);
#else
#else
fopen_s
(
&
p
,
path
,
"r"
);
fopen_s
(
&
p
,
path
,
"r"
);
if
(
p
==
NULL
)
if
(
p
==
NULL
)
...
...
test/test_version/test_version.cpp
View file @
1e56221e
...
@@ -37,6 +37,18 @@ int main()
...
@@ -37,6 +37,18 @@ int main()
assert
(
!
(
v4
<
v3
));
assert
(
!
(
v4
<
v3
));
assert
(
!
(
v4
<=
v3
));
assert
(
!
(
v4
<=
v3
));
v3
=
"0.9.0.0"
;
v4
=
"1.0.0.0"
;
assert
(
!
(
v3
==
v4
));
assert
(
v3
<
v4
);
assert
(
v3
<=
v4
);
assert
(
!
(
v3
>
v4
));
assert
(
!
(
v3
>=
v4
));
assert
(
v4
>
v3
);
assert
(
v4
>=
v3
);
assert
(
!
(
v4
<
v3
));
assert
(
!
(
v4
<=
v3
));
Curl
curl
;
Curl
curl
;
curl
.
init
();
curl
.
init
();
...
...
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