Hello community,
here is the log from the commit of package editorconfig-core-c for
openSUSE:Factory checked in at 2018-05-22 16:58:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/editorconfig-core-c (Old)
and /work/SRC/openSUSE:Factory/.editorconfig-core-c.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "editorconfig-core-c"
Tue May 22 16:58:34 2018 rev:5 rq:610278 version:0.12.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/editorconfig-core-c/editorconfig-core-c.changes
2017-08-24 18:26:07.467478365 +0200
+++
/work/SRC/openSUSE:Factory/.editorconfig-core-c.new/editorconfig-core-c.changes
2018-05-22 16:58:35.879570248 +0200
@@ -1,0 +2,8 @@
+Fri May 18 11:14:25 UTC 2018 - [email protected]
+
+- update to 0.12.2:
+ * Add support for pkgconfig
+ * Memory leaks and crash fixes
+ * Improve error messages
+
+-------------------------------------------------------------------
Old:
----
editorconfig-core-c-0.12.1.tar.gz
New:
----
editorconfig-core-c-0.12.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ editorconfig-core-c.spec ++++++
--- /var/tmp/diff_new_pack.uIWmMm/_old 2018-05-22 16:58:36.515547108 +0200
+++ /var/tmp/diff_new_pack.uIWmMm/_new 2018-05-22 16:58:36.519546963 +0200
@@ -1,7 +1,7 @@
#
# spec file for package editorconfig-core-c
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,10 +17,10 @@
Name: editorconfig-core-c
-Version: 0.12.1
+Version: 0.12.2
Release: 0
Summary: EditorConfig core library written in C
-License: BSD-2-Clause and BSD-3-Clause
+License: BSD-2-Clause AND BSD-3-Clause
Group: Development/Libraries/C and C++
Url: http://editorconfig.org/
Source:
https://github.com/editorconfig/editorconfig-core-c/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
@@ -30,7 +30,6 @@
BuildRequires: cmake >= 2.8.7
BuildRequires: doxygen
BuildRequires: pcre-devel >= 0.12.0
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
EditorConfig makes it easy to maintain the correct coding style when switching
@@ -100,23 +99,22 @@
%postun -n libeditorconfig0 -p /sbin/ldconfig
%files -n editorconfig
-%defattr(-,root,root)
-%doc LICENSE
+%license LICENSE
%{_bindir}/editorconfig*
%{_mandir}/man1/editorconfig*
%{_mandir}/man5/editorconfig*
%files -n libeditorconfig0
-%defattr(-,root,root)
-%doc LICENSE
+%license LICENSE
%{_libdir}/libeditorconfig.so.0*
%files -n libeditorconfig-devel
-%defattr(-,root,root)
-%doc CONTRIBUTORS LICENSE README.md
+%license LICENSE
+%doc CONTRIBUTORS README.md
%{_docdir}/libeditorconfig-devel
%{_includedir}/editorconfig
%{_libdir}/libeditorconfig.so
%{_mandir}/man3/editorconfig*
+%{_libdir}/pkgconfig/editorconfig.pc
%changelog
++++++ editorconfig-core-c-0.12.1-install_paths.patch ++++++
--- /var/tmp/diff_new_pack.uIWmMm/_old 2018-05-22 16:58:36.571545071 +0200
+++ /var/tmp/diff_new_pack.uIWmMm/_new 2018-05-22 16:58:36.571545071 +0200
@@ -4,16 +4,16 @@
Adjust the install paths
Move HTML docs to devel package
-Index: editorconfig-core-c-0.12.1/doc/CMakeLists.txt
+Index: editorconfig-core-c-0.12.2/doc/CMakeLists.txt
===================================================================
---- editorconfig-core-c-0.12.1.orig/doc/CMakeLists.txt
-+++ editorconfig-core-c-0.12.1/doc/CMakeLists.txt
+--- editorconfig-core-c-0.12.2.orig/doc/CMakeLists.txt
++++ editorconfig-core-c-0.12.2/doc/CMakeLists.txt
@@ -125,7 +125,7 @@ if(BUILD_DOCUMENTATION)
if(INSTALL_HTML_DOC)
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html"
-- DESTINATION share/doc/editorconfig)
-+ DESTINATION share/doc/packages/libeditorconfig-devel)
+- DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/doc/editorconfig")
++ DESTINATION
"${CMAKE_INSTALL_DATAROOTDIR}/doc/packages/libeditorconfig-devel")
endif(INSTALL_HTML_DOC)
else(DOXYGEN_FOUND)
++++++ editorconfig-core-c-0.12.1.tar.gz -> editorconfig-core-c-0.12.2.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/.gitignore
new/editorconfig-core-c-0.12.2/.gitignore
--- old/editorconfig-core-c-0.12.1/.gitignore 2016-03-18 05:04:05.000000000
+0100
+++ new/editorconfig-core-c-0.12.2/.gitignore 2018-03-15 22:02:13.000000000
+0100
@@ -28,3 +28,6 @@
# Generated by `make`
/bin
/lib
+
+# Eclipse
+.project
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/CMakeLists.txt
new/editorconfig-core-c-0.12.2/CMakeLists.txt
--- old/editorconfig-core-c-0.12.1/CMakeLists.txt 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/CMakeLists.txt 2018-03-15
22:02:13.000000000 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011-2016 EditorConfig Team
+# Copyright (c) 2011-2018 EditorConfig Team
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -29,12 +29,13 @@
set (editorconfig_VERSION_MAJOR 0)
set (editorconfig_VERSION_MINOR 12)
-set (editorconfig_VERSION_PATCH 1)
+set (editorconfig_VERSION_PATCH 2)
set (editorconfig_VERSION_SUFFIX "")
project(editorconfig C)
+include(GNUInstallDirs)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake_Modules")
# set default compilation directory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/INSTALL.md
new/editorconfig-core-c-0.12.2/INSTALL.md
--- old/editorconfig-core-c-0.12.1/INSTALL.md 2016-03-18 05:04:05.000000000
+0100
+++ new/editorconfig-core-c-0.12.2/INSTALL.md 2018-03-15 22:02:13.000000000
+0100
@@ -12,7 +12,7 @@
Debian (Jessie and later): `apt-get install editorconfig`
-ArchLinux: An [Arch AUR
package](https://aur.archlinux.org/packages/editorconfig-core-c) is available.
+ArchLinux: `pacman -S editorconfig-core-c`
Mac OS X users can `brew install editorconfig` with [Homebrew](http://brew.sh).
Generally Linux users can also install with
[LinuxBrew](https://github.com/Homebrew/linuxbrew)
@@ -28,8 +28,12 @@
- Homebrew on OS X: `brew install cmake pcre`
- Ubuntu/Debian: `apt-get install cmake libpcre3-dev`
-Make sure cmake is in your PATH environment variable. Switch to the root
-directory of editorconfig and execute the following command:
+Make sure cmake is in your PATH environment variable. on Windows, you also need
+to build pcre from source. If you want to build the MT version of this library,
+after running `cmake .` in the pcre source directory, please replace all
+occurrence of "MD" with "MT" in the CMakeCache.txt.
+
+Switch to the root directory of editorconfig and execute the following command:
cmake .
@@ -43,7 +47,9 @@
-DBUILD_STATICALLY_LINKED_EXE=[ON|OFF] Default: OFF
If this option is on, the executable will be linked statically to all
- libraries. This option is currently only valid for gcc.
+ libraries. On MSVC, this means that EditorConfig will be statically
+ linked to the executable. On GCC, this means all libraries (glibc and
+ EditorConfig) are statically linked to the executable.
e.g. cmake -DBUILD_STATICALLY_LINKED_EXE=ON .
-DINSTALL_HTML_DOC=[ON|OFF] Default: OFF
@@ -59,7 +65,7 @@
-DMSVC_MD=[ON|OFF] Default: OFF
Use /MD instead of /MT flag when compiling with Microsoft Visual C++. This
option takes no effect when using compilers other than Microsoft Visual
- C++.
+ C++. Note that the option chosen here must be consistent with pcre.
e.g. We want to use /MD instead of /MT when compiling with MSVC.
cmake -DMSVC_MD=ON .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/README.md
new/editorconfig-core-c-0.12.2/README.md
--- old/editorconfig-core-c-0.12.1/README.md 2016-03-18 05:04:05.000000000
+0100
+++ new/editorconfig-core-c-0.12.2/README.md 2018-03-15 22:02:13.000000000
+0100
@@ -2,6 +2,7 @@
================
[](http://travis-ci.org/editorconfig/editorconfig-core-c)
+[](https://ci.appveyor.com/project/xuhdev/editorconfig-core-c/branch/master)
EditorConfig makes it easy to maintain the correct coding style when switching
between different text editors and between different projects. The
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/appveyor.yml
new/editorconfig-core-c-0.12.2/appveyor.yml
--- old/editorconfig-core-c-0.12.1/appveyor.yml 1970-01-01 01:00:00.000000000
+0100
+++ new/editorconfig-core-c-0.12.2/appveyor.yml 2018-03-15 22:02:13.000000000
+0100
@@ -0,0 +1,42 @@
+image:
+ - Visual Studio 2017
+
+environment:
+ CMAKE_GENERATOR: 'Visual Studio 15 2017 Win64'
+ CONFIG: Release
+ ARCH: x64
+ CMAKE_INSTALL_PREFIX: ..\build
+ PCRE_DEST: C:\projects\bin\%ARCH%-static\pcre
+ CORE_DEST: C:\projects\bin\%ARCH%-static\core
+
+install:
+ - cmake --version
+ - git submodule init
+ - git submodule update
+ - cd C:\projects
+ # Download PCRE sources
+ - curl -o pcre.zip https://ftp.pcre.org/pub/pcre/pcre-8.41.zip
+ - 7z x -y pcre.zip > nul
+ - rename pcre-8.41 pcre
+ # Build and install PCRE
+ - mkdir %PCRE_DEST%
+ - cd %PCRE_DEST%
+ - cmake -G "%CMAKE_GENERATOR%"
-DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DPCRE_STATIC_RUNTIME="ON"
-DBUILD_SHARED_LIBS="OFF" -DPCRE_BUILD_PCRECPP=OFF -DPCRE_BUILD_PCREGREP=OFF
-DPCRE_BUILD_TESTS=OFF C:\projects\pcre
+ - cd %PCRE_DEST%
+ - cmake --build %PCRE_DEST% --target install -- /p:Configuration=%CONFIG%
+
+build_script:
+ # Build and install editorconfig-core-c
+ - mkdir %CORE_DEST%
+ - cd %CORE_DEST%
+ - cmake -G "%CMAKE_GENERATOR%"
-DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DMSVC_MD="OFF"
-DPCRE_STATIC="ON" C:\projects\editorconfig-core-c
+ - cmake --build %CORE_DEST% --target install -- /p:Configuration=%CONFIG%
+
+test_script:
+ # Run the core tests
+ - cd %CORE_DEST%
+ - cmake --build %CORE_DEST% --target run_tests -- /p:Configuration=%CONFIG%
+
+on_failure:
+ - echo. && echo. && echo. && echo "Tests for editorconfig-core-c failed.
Here is their detailed output:" && echo. && echo. && echo.
+ - type C:\projects\bin\x64-static\core\Testing\Temporary\LastTest.log
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/doc/CMakeLists.txt
new/editorconfig-core-c-0.12.2/doc/CMakeLists.txt
--- old/editorconfig-core-c-0.12.1/doc/CMakeLists.txt 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/doc/CMakeLists.txt 2018-03-15
22:02:13.000000000 +0100
@@ -107,17 +107,17 @@
# we need to exclude it when installing man3. Same for
# editorconfig-format.3
install(DIRECTORY ${EC_MANPAGE3_DIR}
- DESTINATION share/man
+ DESTINATION "${CMAKE_INSTALL_MANDIR}"
PATTERN editorconfig.3 EXCLUDE
PATTERN editorconfig-format.3 EXCLUDE
REGEX ._include_. EXCLUDE)
install(FILES
${EC_MANPAGE1_DIR}/editorconfig.1
- DESTINATION share/man/man1)
+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
install(FILES
${EC_MANPAGE5_DIR}/editorconfig-format.5
- DESTINATION share/man/man5)
+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man5")
# "make clean" should also clean generated docs
set_directory_properties(PROPERTIES
@@ -125,7 +125,7 @@
if(INSTALL_HTML_DOC)
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html"
- DESTINATION share/doc/editorconfig)
+ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/doc/editorconfig")
endif(INSTALL_HTML_DOC)
else(DOXYGEN_FOUND)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/include/CMakeLists.txt
new/editorconfig-core-c-0.12.2/include/CMakeLists.txt
--- old/editorconfig-core-c-0.12.1/include/CMakeLists.txt 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/include/CMakeLists.txt 2018-03-15
22:02:13.000000000 +0100
@@ -27,5 +27,5 @@
install(FILES
editorconfig/editorconfig.h
editorconfig/editorconfig_handle.h
- DESTINATION include/editorconfig)
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/editorconfig")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/editorconfig-core-c-0.12.1/include/editorconfig/editorconfig.h
new/editorconfig-core-c-0.12.2/include/editorconfig/editorconfig.h
--- old/editorconfig-core-c-0.12.1/include/editorconfig/editorconfig.h
2016-03-18 05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/include/editorconfig/editorconfig.h
2018-03-15 22:02:13.000000000 +0100
@@ -161,11 +161,17 @@
*
* @endmanonly
*
- * The backslash character (\) can be used to escape a character so it is not
interpreted as a special character.
+ * The backslash character (\) can be used to escape a character so it is not
+ * interpreted as a special character.
+ *
+ * The maximum length of a section name is 4096 characters. All sections
+ * exceeding this limit are ignored.
*
* @section properties Supported Properties
*
- * EditorConfig file sections contain properties, which are name-value pairs
separated by an equal sign (=). EditorConfig plugins will ignore unrecognized
property names and properties with invalid values.
+ * EditorConfig file sections contain properties, which are name-value pairs
+ * separated by an equal sign (=). EditorConfig plugins will ignore
unrecognized
+ * property names and properties with invalid values.
*
* Here is the list of all property names understood by EditorConfig and all
valid values for these properties:
*
@@ -180,7 +186,14 @@
* <li><strong>root</strong>: special property that should be specified at the
top of the file outside of any sections. Set to "true" to stop
<code>.editorconfig</code> files search on current file. The value is case
insensitive.</li>
* </ul>
*
- * Property names are case insensitive and all property names are lowercased
when parsing.
+ * For any property, a value of "unset" is to remove the effect of that
+ * property, even if it has been set before. For example, add "indent_size =
+ * unset" to undefine indent_size property (and use editor default).
+ *
+ * Property names are case insensitive and all property names are lowercased
+ * when parsing. The maximum length of a property name is 50 characters and the
+ * maximum length of a property value is 255 characters. Any property beyond
+ * these limits would be ignored.
*/
/*!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/mk-src-archive.sh
new/editorconfig-core-c-0.12.2/mk-src-archive.sh
--- old/editorconfig-core-c-0.12.1/mk-src-archive.sh 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/mk-src-archive.sh 2018-03-15
22:02:13.000000000 +0100
@@ -10,5 +10,5 @@
exit
fi
-curl -L https://raw.github.com/Kentzo/git-archive-all/master/git-archive-all |
python - editorconfig-core-c-$*.tar.gz
-curl -L https://raw.github.com/Kentzo/git-archive-all/master/git-archive-all |
python - editorconfig-core-c-$*.zip
+curl -L
https://raw.githubusercontent.com/Kentzo/git-archive-all/master/git_archive_all.py
| python - editorconfig-core-c-$*.tar.gz
+curl -L
https://raw.githubusercontent.com/Kentzo/git-archive-all/master/git_archive_all.py
| python - editorconfig-core-c-$*.zip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/src/bin/CMakeLists.txt
new/editorconfig-core-c-0.12.2/src/bin/CMakeLists.txt
--- old/editorconfig-core-c-0.12.1/src/bin/CMakeLists.txt 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/bin/CMakeLists.txt 2018-03-15
22:02:13.000000000 +0100
@@ -32,7 +32,7 @@
endif(CMAKE_COMPILER_IS_GNUCC)
option(BUILD_STATICALLY_LINKED_EXE
- "Link the standard library statically when building the executable.(Only
valid for gcc)"
+ "Statically link all libraries when building the executable."
${BUILD_STATICALLY_LINKED_EXE_DEFAULT_VAL})
if(CMAKE_COMPILER_IS_GNUCC)
@@ -47,12 +47,16 @@
# targets
add_executable(editorconfig_bin ${editorconfig_BINSRCS})
-target_link_libraries(editorconfig_bin editorconfig_static)
+if(BUILD_STATICALLY_LINKED_EXE)
+ target_link_libraries(editorconfig_bin editorconfig_static)
+else(BUILD_STATICALLY_LINKED_EXE)
+ target_link_libraries(editorconfig_bin editorconfig_shared)
+endif(BUILD_STATICALLY_LINKED_EXE)
set_target_properties(editorconfig_bin PROPERTIES
OUTPUT_NAME editorconfig
VERSION
${editorconfig_VERSION_MAJOR}.${editorconfig_VERSION_MINOR}.${editorconfig_VERSION_PATCH})
install(TARGETS editorconfig_bin
- RUNTIME DESTINATION bin)
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/src/bin/main.c
new/editorconfig-core-c-0.12.2/src/bin/main.c
--- old/editorconfig-core-c-0.12.1/src/bin/main.c 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/bin/main.c 2018-03-15
22:02:13.000000000 +0100
@@ -223,7 +223,8 @@
/* print error message */
fputs(editorconfig_get_error_msg(err_num), stderr);
if (err_num > 0)
- fprintf(stderr, "\"%s\"",
editorconfig_handle_get_err_file(eh));
+ fprintf(stderr, ":%d \"%s\"", err_num,
+ editorconfig_handle_get_err_file(eh));
fprintf(stderr, "\n");
exit(1);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/src/lib/CMakeLists.txt
new/editorconfig-core-c-0.12.2/src/lib/CMakeLists.txt
--- old/editorconfig-core-c-0.12.1/src/lib/CMakeLists.txt 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/lib/CMakeLists.txt 2018-03-15
22:02:13.000000000 +0100
@@ -24,8 +24,6 @@
# POSSIBILITY OF SUCH DAMAGE.
#
-include(GNUInstallDirs)
-
set(editorconfig_LIBSRCS
ec_glob.c
editorconfig.c
@@ -64,3 +62,10 @@
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/editorconfig.pc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/editorconfig.pc
+ @ONLY)
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/editorconfig.pc
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/src/lib/ec_glob.c
new/editorconfig-core-c-0.12.2/src/lib/ec_glob.c
--- old/editorconfig-core-c-0.12.1/src/lib/ec_glob.c 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/lib/ec_glob.c 2018-03-15
22:02:13.000000000 +0100
@@ -36,6 +36,9 @@
#include "ec_glob.h"
+/* Special characters */
+const char ec_special_chars[] = "?[]\\*-{},";
+
typedef struct int_pair
{
int num1;
@@ -52,7 +55,7 @@
p += string_len; \
} while(0)
-#define PATTERN_MAX 300
+#define PATTERN_MAX 4097
/*
* Whether the string matches the given glob pattern
*/
@@ -169,11 +172,21 @@
{
char * right_bracket = strchr(c, ']');
+ if (!right_bracket) /* The right bracket may not exist */
+ right_bracket = c + strlen(c);
+
strcat(p_pcre, "\\");
strncat(p_pcre, c, right_bracket - c);
- strcat(p_pcre, "\\]");
+ if (*right_bracket) /* right_bracket is a bracket */
+ strcat(p_pcre, "\\]");
p_pcre += strlen(p_pcre);
c = right_bracket;
+ if (!*c)
+ /* end of string, meaning that right_bracket is not a
+ * bracket. Then we go back one character to make the
+ * parsing end normally for the counter in the "for"
+ * loop. */
+ c -= 1;
break;
}
}
@@ -314,7 +327,10 @@
re = pcre_compile(pcre_str, 0, &error_msg, &erroffset, NULL);
if (!re) /* failed to compile */
+ {
+ utarray_free(nums);
return -1;
+ }
pcre_result_len = 3 * (utarray_len(nums) + 1);
pcre_result = (int *) calloc(pcre_result_len, sizeof(int_pair));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/src/lib/ec_glob.h
new/editorconfig-core-c-0.12.2/src/lib/ec_glob.h
--- old/editorconfig-core-c-0.12.1/src/lib/ec_glob.h 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/lib/ec_glob.h 2018-03-15
22:02:13.000000000 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Hong Xu <hong AT topbug DOT net>
+ * Copyright (c) 2014-2018 Hong Xu <hong AT topbug DOT net>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,10 @@
#endif
EDITORCONFIG_LOCAL
int ec_glob(const char * pattern, const char * string);
+
+/* Special characters. */
+extern const char ec_special_chars[];
+
#ifdef __cplusplus
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/src/lib/editorconfig.c
new/editorconfig-core-c-0.12.2/src/lib/editorconfig.c
--- old/editorconfig-core-c-0.12.1/src/lib/editorconfig.c 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/lib/editorconfig.c 2018-03-15
22:02:13.000000000 +0100
@@ -89,7 +89,7 @@
!strcmp(nv->name, "charset"))
strlwr(nv->value);
- /* set speical pointers */
+ /* set special pointers */
set_special_property_name_value_pointers(nv, spnvp);
}
@@ -228,16 +228,34 @@
return 1;
}
- /* pattern would be: /dir/of/editorconfig/file[double_star]/[section] if
+ /* Pattern would be: /dir/of/editorconfig/file[double_star]/[section] if
* section does not contain '/', or /dir/of/editorconfig/file[section]
* if section starts with a '/', or /dir/of/editorconfig/file/[section] if
- * section contains '/' but does not start with '/' */
+ * section contains '/' but does not start with '/'.
+ *
+ * If the dir part has any special characters as defined by ec_glob.c, we
+ * need to escape them.
+ */
pattern = (char*)malloc(
- strlen(hfparam->editorconfig_file_dir) * sizeof(char) +
+ /* The 2 here is for possible escaping. */
+ strlen(hfparam->editorconfig_file_dir) * sizeof(char) * 2 +
sizeof("**/") + strlen(section) * sizeof(char));
if (!pattern)
return 0;
- strcpy(pattern, hfparam->editorconfig_file_dir);
+
+ /* Escaping special characters in the directory part. */
+ char* ptr = hfparam->editorconfig_file_dir;
+ char* ptr_prev = ptr;
+ char* ptr_pattern = pattern;
+ for (; ptr = strpbrk(ptr, ec_special_chars); ++ ptr, ptr_prev = ptr)
+ {
+ ptrdiff_t s = ptr - ptr_prev;
+ memcpy(ptr_pattern, ptr_prev, s * sizeof(char));
+ ptr_pattern += s;
+ *(ptr_pattern ++) = '\\'; /* escaping char */
+ *(ptr_pattern ++) = *ptr;
+ }
+ strcpy(ptr_pattern, ptr_prev);
if (strchr(section, '/') == NULL) /* No / is found, append '[star][star]/'
*/
strcat(pattern, "**/");
@@ -409,7 +427,7 @@
if (editorconfig_compare_version(&eh->ver, &cur_ver) > 0)
return EDITORCONFIG_PARSE_VERSION_TOO_NEW;
- if (!eh->err_file) {
+ if (eh->err_file) {
free(eh->err_file);
eh->err_file = NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/editorconfig-core-c-0.12.1/src/lib/editorconfig.pc.in
new/editorconfig-core-c-0.12.2/src/lib/editorconfig.pc.in
--- old/editorconfig-core-c-0.12.1/src/lib/editorconfig.pc.in 1970-01-01
01:00:00.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/lib/editorconfig.pc.in 2018-03-15
22:02:13.000000000 +0100
@@ -0,0 +1,9 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/editorconfig
+
+Name: editorconfig
+Description: Library handling EditorConfig files, a file format defining
coding styles in projects.
+Version:
@editorconfig_VERSION_MAJOR@.@editorconfig_VERSION_MINOR@.@editorconfig_VERSION_PATCH@
+Libs: -L${libdir} -leditorconfig
+Cflags: -I${includedir}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/editorconfig-core-c-0.12.1/src/lib/editorconfig_handle.c
new/editorconfig-core-c-0.12.2/src/lib/editorconfig_handle.c
--- old/editorconfig-core-c-0.12.1/src/lib/editorconfig_handle.c
2016-03-18 05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/lib/editorconfig_handle.c
2018-03-15 22:02:13.000000000 +0100
@@ -112,7 +112,7 @@
((struct editorconfig_handle*)h)->ver.minor = minor;
if (patch >= 0)
- ((struct editorconfig_handle*)h)->ver.patch = minor;
+ ((struct editorconfig_handle*)h)->ver.patch = patch;
}
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/src/lib/ini.c
new/editorconfig-core-c-0.12.2/src/lib/ini.c
--- old/editorconfig-core-c-0.12.1/src/lib/ini.c 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/lib/ini.c 2018-03-15
22:02:13.000000000 +0100
@@ -40,7 +40,7 @@
#include "ini.h"
-#define MAX_LINE 200
+#define MAX_LINE 5000
#define MAX_SECTION MAX_SECTION_NAME
#define MAX_NAME MAX_PROPERTY_NAME
@@ -104,8 +104,8 @@
{
/* Uses a fair bit of stack (use heap instead if you need to) */
char line[MAX_LINE];
- char section[MAX_SECTION] = "";
- char prev_name[MAX_NAME] = "";
+ char section[MAX_SECTION+1] = "";
+ char prev_name[MAX_NAME+1] = "";
char* start;
char* end;
@@ -144,6 +144,9 @@
end = find_last_char_or_comment(start + 1, ']');
if (*end == ']') {
*end = '\0';
+ /* Section name too long. Skipped. */
+ if (end - start - 1 > MAX_SECTION_NAME)
+ continue;
strncpy0(section, start + 1, sizeof(section));
*prev_name = '\0';
}
@@ -167,6 +170,11 @@
*end = '\0';
rstrip(value);
+ /* Either name or value is too long. Skip it. */
+ if (strlen(name) > MAX_PROPERTY_NAME ||
+ strlen(value) > MAX_PROPERTY_VALUE)
+ continue;
+
/* Valid name[=:]value pair found, call handler */
strncpy0(prev_name, name, sizeof(prev_name));
if (!handler(user, section, name, value) && !error)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-core-c-0.12.1/src/lib/ini.h
new/editorconfig-core-c-0.12.2/src/lib/ini.h
--- old/editorconfig-core-c-0.12.1/src/lib/ini.h 2016-03-18
05:04:05.000000000 +0100
+++ new/editorconfig-core-c-0.12.2/src/lib/ini.h 2018-03-15
22:02:13.000000000 +0100
@@ -77,8 +77,9 @@
#define INI_ALLOW_MULTILINE 0
#endif
-#define MAX_SECTION_NAME 500
-#define MAX_PROPERTY_NAME 500
+#define MAX_SECTION_NAME 4096
+#define MAX_PROPERTY_NAME 50
+#define MAX_PROPERTY_VALUE 255
/* Nonzero to allow a UTF-8 BOM sequence (0xEF 0xBB 0xBF) at the start of
the file. See http://code.google.com/p/inih/issues/detail?id=21 */