Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
libconfig
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
libconfig
Commits
f93af2a7
Commit
f93af2a7
authored
Dec 30, 2015
by
Mark Lindner
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/hyperrealm/libconfig
parents
c4972f5d
ec2ea363
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
146 additions
and
34 deletions
+146
-34
ChangeLog
ChangeLog
+7
-0
configure
configure
+3
-1
configure.ac
configure.ac
+2
-0
debian/libconfig++9-dev.install
debian/libconfig++9-dev.install
+1
-0
debian/libconfig9-dev.install
debian/libconfig9-dev.install
+1
-0
lib/Makefile.am
lib/Makefile.am
+8
-0
lib/Makefile.in
lib/Makefile.in
+76
-18
lib/libconfig++Config.cmake.in
lib/libconfig++Config.cmake.in
+7
-0
lib/libconfig.c
lib/libconfig.c
+25
-7
lib/libconfig.h
lib/libconfig.h
+5
-8
lib/libconfigConfig.cmake.in
lib/libconfigConfig.cmake.in
+7
-0
libconfig.spec.in
libconfig.spec.in
+4
-0
No files found.
ChangeLog
View file @
f93af2a7
2015-10-14 Thomas Fischer <fischer@unix-ag.uni-kl.de>
* configure, configure.ac, debian/libconfig++9-dev.install,
debian/libconfig9-dev.install, lib/Makefile.am, lib/Makefile.in,
lib/libconfig++Config.cmake.in, lib/libconfigConfig.cmake.in,
libconfig.spec.in - locating libconfig in CMake-based projects
2015-08-14 Mark Lindner <markl@neuromancer>
* lib/wincompat.h - Fixed Windows portability issue
...
...
configure
View file @
f93af2a7
...
...
@@ -16896,7 +16896,7 @@ fi
ac_config_files
=
"
$ac_config_files
Makefile lib/Makefile lib/libconfig.pc lib/libconfig++.pc doc/Makefile examples/Makefile examples/c/Makefile examples/c++/Makefile tinytest/Makefile tests/Makefile libconfig.spec"
ac_config_files
=
"
$ac_config_files
Makefile lib/Makefile lib/libconfig.pc lib/libconfig++.pc
lib/libconfigConfig.cmake lib/libconfig++Config.cmake
doc/Makefile examples/Makefile examples/c/Makefile examples/c++/Makefile tinytest/Makefile tests/Makefile libconfig.spec"
cat
>
confcache
<<
\
_ACEOF
# This file is a shell script that caches the results of configure
...
...
@@ -18027,6 +18027,8 @@ do
"lib/Makefile") CONFIG_FILES="
$CONFIG_FILES
lib/Makefile" ;;
"lib/libconfig.pc") CONFIG_FILES="
$CONFIG_FILES
lib/libconfig.pc" ;;
"lib/libconfig++.pc") CONFIG_FILES="
$CONFIG_FILES
lib/libconfig++.pc" ;;
"lib/libconfigConfig.cmake") CONFIG_FILES="
$CONFIG_FILES
lib/libconfigConfig.cmake" ;;
"lib/libconfig++Config.cmake") CONFIG_FILES="
$CONFIG_FILES
lib/libconfig++Config.cmake" ;;
"doc/Makefile") CONFIG_FILES="
$CONFIG_FILES
doc/Makefile" ;;
"examples/Makefile") CONFIG_FILES="
$CONFIG_FILES
examples/Makefile" ;;
"examples/c/Makefile") CONFIG_FILES="
$CONFIG_FILES
examples/c/Makefile" ;;
...
...
configure.ac
View file @
f93af2a7
...
...
@@ -127,6 +127,8 @@ AC_OUTPUT(
lib/Makefile
lib/libconfig.pc
lib/libconfig++.pc
lib/libconfigConfig.cmake
lib/libconfig++Config.cmake
doc/Makefile
examples/Makefile
examples/c/Makefile
...
...
debian/libconfig++9-dev.install
View file @
f93af2a7
...
...
@@ -3,3 +3,4 @@ debian/tmp/usr/lib/libconfig++.a
debian
/
tmp
/
usr
/
lib
/
libconfig
++.
so
debian
/
tmp
/
usr
/
lib
/
libconfig
++.
la
debian
/
tmp
/
usr
/
lib
/
pkgconfig
/
libconfig
++.
pc
debian
/
tmp
/
usr
/
lib
/
cmake
/
libconfig
++/
libconfig
++
Config
.
cmake
debian/libconfig9-dev.install
View file @
f93af2a7
...
...
@@ -3,3 +3,4 @@ debian/tmp/usr/lib/libconfig.a
debian
/
tmp
/
usr
/
lib
/
libconfig
.
so
debian
/
tmp
/
usr
/
lib
/
libconfig
.
la
debian
/
tmp
/
usr
/
lib
/
pkgconfig
/
libconfig
.
pc
debian
/
tmp
/
usr
/
lib
/
cmake
/
libconfig
/
libconfigConfig
.
cmake
lib/Makefile.am
View file @
f93af2a7
...
...
@@ -78,3 +78,11 @@ pkgconfig_DATA = libconfig.pc
if
BUILDCXX
pkgconfig_DATA
+=
libconfig++.pc
endif
cmakedir
=
$(libdir)
/cmake/libconfig
cmake_DATA
=
libconfigConfig.cmake
if
BUILDCXX
cmakeppdir
=
$(libdir)
/cmake/libconfig++
cmakepp_DATA
=
libconfig++Config.cmake
endif
lib/Makefile.in
View file @
f93af2a7
...
...
@@ -90,7 +90,9 @@ subdir = lib
DIST_COMMON
=
$(srcdir)
/Makefile.in
$(srcdir)
/Makefile.am
\
$(top_srcdir)
/aux-build/mkinstalldirs
\
$(srcdir)
/libconfig.pc.in
$(srcdir)
/libconfig++.pc.in
\
scanner.c grammar.h grammar.c
$(top_srcdir)
/aux-build/depcomp
\
$(srcdir)
/libconfigConfig.cmake.in
\
$(srcdir)
/libconfig++Config.cmake.in scanner.c grammar.h
\
grammar.c
$(top_srcdir)
/aux-build/depcomp
\
$(top_srcdir)
/aux-build/ylwrap
$(am__include_HEADERS_DIST)
ACLOCAL_M4
=
$(top_srcdir)
/aclocal.m4
am__aclocal_m4_deps
=
$(top_srcdir)
/m4/libtool.m4
\
...
...
@@ -101,7 +103,8 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs
=
$(SHELL)
$(top_srcdir)
/aux-build/mkinstalldirs
CONFIG_HEADER
=
$(top_builddir)
/ac_config.h
CONFIG_CLEAN_FILES
=
libconfig.pc libconfig++.pc
CONFIG_CLEAN_FILES
=
libconfig.pc libconfig++.pc libconfigConfig.cmake
\
libconfig++Config.cmake
CONFIG_CLEAN_VPATH_FILES
=
am__vpath_adj_setup
=
srcdirstrip
=
`
echo
"
$(srcdir)
"
|
sed
's|.|.|g'
`
;
am__vpath_adj
=
case
$$
p
in
\
...
...
@@ -130,7 +133,8 @@ am__uninstall_files_from_dir = { \
||
{
echo
" ( cd '
$$
dir' && rm -f"
$$
files
")"
;
\
$(am__cd)
"
$$
dir"
&&
rm
-f
$$
files
;
}
;
\
}
am__installdirs
=
"
$(DESTDIR)$(libdir)
"
"
$(DESTDIR)$(pkgconfigdir)
"
\
am__installdirs
=
"
$(DESTDIR)$(libdir)
"
"
$(DESTDIR)$(cmakedir)
"
\
"
$(DESTDIR)$(cmakeppdir)
"
"
$(DESTDIR)$(pkgconfigdir)
"
\
"
$(DESTDIR)$(includedir)
"
LTLIBRARIES
=
$(lib_LTLIBRARIES)
libconfig___la_LIBADD
=
...
...
@@ -234,7 +238,7 @@ am__can_run_installinfo = \
n|no|NO
)
false
;;
\
*
)
(
install-info
--version
)
>
/dev/null 2>&1
;;
\
esac
DATA
=
$(pkgconfig_DATA)
DATA
=
$(
cmake_DATA)
$(cmakepp_DATA)
$(
pkgconfig_DATA)
am__include_HEADERS_DIST
=
libconfig.h libconfig.h++
HEADERS
=
$(include_HEADERS)
am__tagged_files
=
$(HEADERS)
$(SOURCES)
$(TAGS_FILES)
$(LISP)
...
...
@@ -433,6 +437,10 @@ EXTRA_DIST = \
pkgconfigdir
=
$(libdir)
/pkgconfig
pkgconfig_DATA
=
libconfig.pc
$(am__append_5)
cmakedir
=
$(libdir)
/cmake/libconfig
cmake_DATA
=
libconfigConfig.cmake
@BUILDCXX_TRUE@
cmakeppdir
=
$(libdir)
/cmake/libconfig++
@BUILDCXX_TRUE@
cmakepp_DATA
=
libconfig++Config.cmake
all
:
$(BUILT_SOURCES)
$(MAKE)
$(AM_MAKEFLAGS)
all-am
...
...
@@ -472,6 +480,10 @@ libconfig.pc: $(top_builddir)/config.status $(srcdir)/libconfig.pc.in
cd
$(top_builddir)
&&
$(SHELL)
./config.status
$(subdir)
/
$@
libconfig++.pc
:
$(top_builddir)/config.status $(srcdir)/libconfig++.pc.in
cd
$(top_builddir)
&&
$(SHELL)
./config.status
$(subdir)
/
$@
libconfigConfig.cmake
:
$(top_builddir)/config.status $(srcdir)/libconfigConfig.cmake.in
cd
$(top_builddir)
&&
$(SHELL)
./config.status
$(subdir)
/
$@
libconfig++Config.cmake
:
$(top_builddir)/config.status $(srcdir)/libconfig++Config.cmake.in
cd
$(top_builddir)
&&
$(SHELL)
./config.status
$(subdir)
/
$@
install-libLTLIBRARIES
:
$(lib_LTLIBRARIES)
@
$(NORMAL_INSTALL)
...
...
@@ -665,6 +677,48 @@ mostlyclean-libtool:
clean-libtool
:
-
rm
-rf
.libs _libs
install-cmakeDATA
:
$(cmake_DATA)
@
$(NORMAL_INSTALL)
@
list
=
'
$(cmake_DATA)
'
;
test
-n
"
$(cmakedir)
"
||
list
=
;
\
if
test
-n
"
$$
list"
;
then
\
echo
"
$(MKDIR_P)
'
$(DESTDIR)$(cmakedir)
'"
;
\
$(MKDIR_P)
"
$(DESTDIR)$(cmakedir)
"
||
exit
1
;
\
fi
;
\
for
p
in
$$
list
;
do
\
if
test
-f
"
$$
p"
;
then
d
=
;
else
d
=
"
$(srcdir)
/"
;
fi
;
\
echo
"
$$
d
$$
p"
;
\
done
|
$(am__base_list)
|
\
while
read
files
;
do
\
echo
"
$(INSTALL_DATA)
$$
files '
$(DESTDIR)$(cmakedir)
'"
;
\
$(INSTALL_DATA)
$$
files
"
$(DESTDIR)$(cmakedir)
"
||
exit
$$
?
;
\
done
uninstall-cmakeDATA
:
@
$(NORMAL_UNINSTALL)
@
list
=
'
$(cmake_DATA)
'
;
test
-n
"
$(cmakedir)
"
||
list
=
;
\
files
=
`
for
p
in
$$
list
;
do
echo
$$
p
;
done
|
sed
-e
's|^.*/||'
`
;
\
dir
=
'
$(DESTDIR)$(cmakedir)
'
;
$(am__uninstall_files_from_dir)
install-cmakeppDATA
:
$(cmakepp_DATA)
@
$(NORMAL_INSTALL)
@
list
=
'
$(cmakepp_DATA)
'
;
test
-n
"
$(cmakeppdir)
"
||
list
=
;
\
if
test
-n
"
$$
list"
;
then
\
echo
"
$(MKDIR_P)
'
$(DESTDIR)$(cmakeppdir)
'"
;
\
$(MKDIR_P)
"
$(DESTDIR)$(cmakeppdir)
"
||
exit
1
;
\
fi
;
\
for
p
in
$$
list
;
do
\
if
test
-f
"
$$
p"
;
then
d
=
;
else
d
=
"
$(srcdir)
/"
;
fi
;
\
echo
"
$$
d
$$
p"
;
\
done
|
$(am__base_list)
|
\
while
read
files
;
do
\
echo
"
$(INSTALL_DATA)
$$
files '
$(DESTDIR)$(cmakeppdir)
'"
;
\
$(INSTALL_DATA)
$$
files
"
$(DESTDIR)$(cmakeppdir)
"
||
exit
$$
?
;
\
done
uninstall-cmakeppDATA
:
@
$(NORMAL_UNINSTALL)
@
list
=
'
$(cmakepp_DATA)
'
;
test
-n
"
$(cmakeppdir)
"
||
list
=
;
\
files
=
`
for
p
in
$$
list
;
do
echo
$$
p
;
done
|
sed
-e
's|^.*/||'
`
;
\
dir
=
'
$(DESTDIR)$(cmakeppdir)
'
;
$(am__uninstall_files_from_dir)
install-pkgconfigDATA
:
$(pkgconfig_DATA)
@
$(NORMAL_INSTALL)
@
list
=
'
$(pkgconfig_DATA)
'
;
test
-n
"
$(pkgconfigdir)
"
||
list
=
;
\
...
...
@@ -795,7 +849,7 @@ check: $(BUILT_SOURCES)
$(MAKE)
$(AM_MAKEFLAGS)
check-am
all-am
:
Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
installdirs
:
for
dir
in
"
$(DESTDIR)$(libdir)
"
"
$(DESTDIR)$(pkgconfigdir)
"
"
$(DESTDIR)$(includedir)
"
;
do
\
for
dir
in
"
$(DESTDIR)$(libdir)
"
"
$(DESTDIR)$(
cmakedir)
"
"
$(DESTDIR)$(cmakeppdir)
"
"
$(DESTDIR)$(
pkgconfigdir)
"
"
$(DESTDIR)$(includedir)
"
;
do
\
test
-z
"
$$
dir"
||
$(MKDIR_P)
"
$$
dir"
;
\
done
install
:
$(BUILT_SOURCES)
...
...
@@ -856,7 +910,8 @@ info: info-am
info-am
:
install-data-am
:
install-includeHEADERS install-pkgconfigDATA
install-data-am
:
install-cmakeDATA install-cmakeppDATA
\
install-includeHEADERS install-pkgconfigDATA
install-dvi
:
install-dvi-am
...
...
@@ -902,7 +957,8 @@ ps: ps-am
ps-am
:
uninstall-am
:
uninstall-includeHEADERS uninstall-libLTLIBRARIES
\
uninstall-am
:
uninstall-cmakeDATA uninstall-cmakeppDATA
\
uninstall-includeHEADERS uninstall-libLTLIBRARIES
\
uninstall-pkgconfigDATA
.MAKE
:
all check install install-am install-strip
...
...
@@ -911,17 +967,19 @@ uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \
clean-libLTLIBRARIES clean-libtool cscopelist-am ctags
\
ctags-am distclean distclean-compile distclean-generic
\
distclean-libtool distclean-tags distdir dvi dvi-am html
\
html-am info info-am install install-am install-data
\
install-data-am install-dvi install-dvi-am install-exec
\
install-exec-am install-html install-html-am
\
install-includeHEADERS install-info install-info-am
\
install-libLTLIBRARIES install-man install-pdf install-pdf-am
\
install-pkgconfigDATA install-ps install-ps-am install-strip
\
installcheck installcheck-am installdirs maintainer-clean
\
maintainer-clean-generic mostlyclean mostlyclean-compile
\
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am
\
tags tags-am uninstall uninstall-am uninstall-includeHEADERS
\
uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
html-am info info-am install install-am install-cmakeDATA
\
install-cmakeppDATA install-data install-data-am install-dvi
\
install-dvi-am install-exec install-exec-am install-html
\
install-html-am install-includeHEADERS install-info
\
install-info-am install-libLTLIBRARIES install-man install-pdf
\
install-pdf-am install-pkgconfigDATA install-ps install-ps-am
\
install-strip installcheck installcheck-am installdirs
\
maintainer-clean maintainer-clean-generic mostlyclean
\
mostlyclean-compile mostlyclean-generic mostlyclean-libtool
\
pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am
\
uninstall-cmakeDATA uninstall-cmakeppDATA
\
uninstall-includeHEADERS uninstall-libLTLIBRARIES
\
uninstall-pkgconfigDATA
# Tell versions [3.59,3.63) of GNU make to not export all variables.
...
...
lib/libconfig++Config.cmake.in
0 → 100644
View file @
f93af2a7
set(LIBCONFIG++_FOUND 1)
set(LIBCONFIG++_VERSION "1.5")
set(LIBCONFIG++_LIBRARIES "config++")
set(LIBCONFIG++_LIBRARY_DIRS "@libdir@")
set(LIBCONFIG++_LDFLAGS "")
set(LIBCONFIG++_INCLUDE_DIRS "@includedir@")
set(LIBCONFIG++_CFLAGS "")
lib/libconfig.c
View file @
f93af2a7
...
...
@@ -47,10 +47,11 @@
#define PATH_TOKENS ":./"
#define CHUNK_SIZE 16
#define FLOAT_PRECISION
DBL_DIG
#define FLOAT_PRECISION
2
#define TAB2DIGITS(x) (((x) & 0xFF00) >> 8)
#define DIGITS2TAB(x) (((x) & 0xFF) << 8)
#define TAB2TAB(x) ((x) & 0xF)
#define _new(T) (T *)calloc(1, sizeof(T))
/* zeroed */
#define _delete(P) free((void *)(P))
...
...
@@ -371,7 +372,7 @@ static void __config_write_value(const config_t *config,
fputc
(
'\n'
,
stream
);
if
(
depth
>
1
)
__config_indent
(
stream
,
depth
,
config
->
tab_width
);
__config_indent
(
stream
,
depth
,
TAB2TAB
(
config
->
tab_width
)
);
}
fprintf
(
stream
,
"{
\n
"
);
...
...
@@ -387,7 +388,7 @@ static void __config_write_value(const config_t *config,
}
if
(
depth
>
1
)
__config_indent
(
stream
,
depth
,
config
->
tab_width
);
__config_indent
(
stream
,
depth
,
TAB2TAB
(
config
->
tab_width
)
);
if
(
depth
>
0
)
fputc
(
'}'
,
stream
);
...
...
@@ -650,7 +651,7 @@ static void __config_write_setting(const config_t *config,
config
,
CONFIG_OPTION_COLON_ASSIGNMENT_FOR_NON_GROUPS
)
?
':'
:
'='
;
if
(
depth
>
1
)
__config_indent
(
stream
,
depth
,
config
->
tab_width
);
__config_indent
(
stream
,
depth
,
TAB2TAB
(
config
->
tab_width
)
);
if
(
setting
->
name
)
...
...
@@ -758,13 +759,30 @@ void config_destroy(config_t *config)
}
/* ------------------------------------------------------------------------- */
void
config_set_tab_width
(
config_t
*
config
,
unsigned
short
width
)
{
/* As per documentation: valid range= 0..15 */
config
->
tab_width
=
(
width
<=
15
)
?
width
:
15
;
}
/* ------------------------------------------------------------------------- */
unsigned
short
config_get_tab_width
(
const
config_t
*
config
)
{
return
TAB2TAB
(
config
->
tab_width
);
}
/* ------------------------------------------------------------------------- */
void
config_set_float_precision
(
config_t
*
config
,
unsigned
short
digits
)
{
config
->
tab_width
|=
DIGITS2TAB
(
digits
);
}
unsigned
short
config_get_float_precision
(
config_t
*
config
)
unsigned
short
config_get_float_precision
(
con
st
con
fig_t
*
config
)
{
return
TAB2DIGITS
(
config
->
tab_width
);
}
...
...
@@ -786,8 +804,8 @@ void config_init(config_t *config)
* (ab)using the existing macros' 0x0F mask in order to preserve
* API & ABI compatibility ; changes are fully backwards compatible
*/
config
->
tab_width
=
2
;
config
->
tab_width
|=
DIGITS2TAB
(
FLOAT_PRECISION
);
/* float_digits */
config
->
tab_width
=
FLOAT_PRECISION
;
config
->
tab_width
|=
DIGITS2TAB
(
2
);
/* float_digits */
}
/* ------------------------------------------------------------------------- */
...
...
lib/libconfig.h
View file @
f93af2a7
...
...
@@ -144,7 +144,11 @@ extern LIBCONFIG_API void config_set_include_dir(config_t *config,
extern
LIBCONFIG_API
void
config_set_float_precision
(
config_t
*
config
,
unsigned
short
digits
);
extern
LIBCONFIG_API
unsigned
short
config_get_float_precision
(
config_t
*
config
);
extern
LIBCONFIG_API
unsigned
short
config_get_float_precision
(
const
config_t
*
config
);
extern
LIBCONFIG_API
void
config_set_tab_width
(
config_t
*
config
,
unsigned
short
width
);
extern
LIBCONFIG_API
unsigned
short
config_get_tab_width
(
const
config_t
*
config
);
extern
LIBCONFIG_API
void
config_init
(
config_t
*
config
);
extern
LIBCONFIG_API
void
config_destroy
(
config_t
*
config
);
...
...
@@ -298,13 +302,6 @@ extern LIBCONFIG_API int config_lookup_string(const config_t *config,
#define
/* short */
config_get_default_format(
/* config_t * */
C) \
((C)->default_format)
#define
/* void */
config_set_tab_width(
/* config_t * */
C, \
/* unsigned short */
W) \
(C)->tab_width = ((W) & 0x0F)
#define
/* unsigned char */
config_get_tab_width(
/* const config_t * */
C) \
((C)->tab_width & 0x0F)
#define
/* unsigned short */
config_setting_source_line( \
/* const config_setting_t * */
S) \
((S)->line)
...
...
lib/libconfigConfig.cmake.in
0 → 100644
View file @
f93af2a7
set(LIBCONFIG_FOUND 1)
set(LIBCONFIG_VERSION "1.5")
set(LIBCONFIG_LIBRARIES "config")
set(LIBCONFIG_LIBRARY_DIRS "@libdir@")
set(LIBCONFIG_LDFLAGS "")
set(LIBCONFIG_INCLUDE_DIRS "@includedir@")
set(LIBCONFIG_CFLAGS "")
libconfig.spec.in
View file @
f93af2a7
...
...
@@ -65,12 +65,16 @@ ldconfig
%{_infodir}
%{_includedir}
%{_libdir}/pkgconfig
%{_libdir}/cmake/libconfig
%{_libdir}/cmake/libconfig++
%{_libdir}/%{name}.a
%{_libdir}/%{name}.la
%{_libdir}/%{name}++.a
%{_libdir}/%{name}++.la
%changelog
* Wed Oct 14 2015 Thomas Fischer <fischer@unix-ag.uni-kl.de> 1.5
- added library directory cmake/libconfig and cmake/libconfig++
* Wed Aug 19 2007 Deneys S. Maartens <dsm@tlabs.ac.za> 1.1.3-1
- create spec file
...
...
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