Browse files

- Initial complete revision of the PCRE port (includes support and in…

…structions for building using make).
  • Loading branch information...
1 parent 342cbec commit 76613ef23354f9392605e7e29d58f7ed0dff7903 @chrisculy chrisculy committed Oct 4, 2011
Showing with 53,824 additions and 799 deletions.
  1. +458 −0 .cproject
  2. +8 −0 .gitignore
  3. +77 −0 .project
  4. +313 −0 132html
  5. +23 −0 AUTHORS
  6. +587 −0 CMakeLists.txt
  7. +5 −0 COPYING
  8. +4,373 −0 ChangeLog
  9. +113 −0 CleanTxt
  10. +35 −0 Detrail
  11. +453 −0 HACKING
  12. +365 −0 INSTALL
  13. +68 −0 LICENCE
  14. +8 −0 Makefile
  15. +400 −0 Makefile.am
  16. +1,575 −0 Makefile.in
  17. +505 −0 NEWS
  18. +501 −0 NON-UNIX-USE
  19. +265 −0 PrepareRelease
  20. +824 −799 README
  21. +457 −0 RunGrepTest
  22. +383 −0 RunTest
  23. +173 −0 RunTest.bat
  24. +9,391 −0 aclocal.m4
  25. +8 −0 arm/Makefile
  26. +1 −0 arm/a-le-v7-g/Makefile
  27. +1 −0 arm/a-le-v7/Makefile
  28. +22 −0 cmake/COPYING-CMAKE-SCRIPTS
  29. +58 −0 cmake/FindPackageHandleStandardArgs.cmake
  30. +29 −0 cmake/FindReadline.cmake
  31. +17 −0 common.mk
  32. +44 −0 config-cmake.h.in
  33. +1,523 −0 config.guess
  34. +339 −0 config.h
  35. +339 −0 config.h.generic
  36. +270 −0 config.h.in
  37. +1,757 −0 config.sub
  38. +19,466 −0 configure
  39. +754 −0 configure.ac
  40. +630 −0 depcomp
  41. +199 −0 dftables.c
  42. +143 −0 doc/html/index.html
  43. +88 −0 doc/html/pcre-config.html
  44. +319 −0 doc/html/pcre.html
  45. +90 −0 doc/html/pcre_compile.html
  46. +92 −0 doc/html/pcre_compile2.html
  47. +70 −0 doc/html/pcre_config.html
  48. +53 −0 doc/html/pcre_copy_named_substring.html
  49. +51 −0 doc/html/pcre_copy_substring.html
  50. +105 −0 doc/html/pcre_dfa_exec.html
  51. +92 −0 doc/html/pcre_exec.html
  52. +40 −0 doc/html/pcre_free_substring.html
  53. +40 −0 doc/html/pcre_free_substring_list.html
  54. +74 −0 doc/html/pcre_fullinfo.html
  55. +55 −0 doc/html/pcre_get_named_substring.html
  56. +49 −0 doc/html/pcre_get_stringnumber.html
  57. +52 −0 doc/html/pcre_get_stringtable_entries.html
  58. +53 −0 doc/html/pcre_get_substring.html
  59. +53 −0 doc/html/pcre_get_substring_list.html
  60. +39 −0 doc/html/pcre_info.html
  61. +42 −0 doc/html/pcre_maketables.html
  62. +45 −0 doc/html/pcre_refcount.html
  63. +56 −0 doc/html/pcre_study.html
  64. +39 −0 doc/html/pcre_version.html
  65. +2,358 −0 doc/html/pcreapi.html
  66. +370 −0 doc/html/pcrebuild.html
  67. +223 −0 doc/html/pcrecallout.html
  68. +206 −0 doc/html/pcrecompat.html
  69. +369 −0 doc/html/pcrecpp.html
  70. +426 −0 doc/html/pcredemo.html
  71. +643 −0 doc/html/pcregrep.html
  72. +229 −0 doc/html/pcrematching.html
  73. +443 −0 doc/html/pcrepartial.html
Sorry, we could not display the entire diff because it was too big.
View
458 .cproject
@@ -0,0 +1,458 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="com.qnx.qcc.configuration.staticLib.debug.1689929330">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.staticLib.debug.1689929330" moduleId="org.eclipse.cdt.core.settings" name="Device-Debug">
+ <externalSettings>
+ <externalSetting>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/pcre"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/pcre/Device-Debug"/>
+ <entry flags="RESOLVED" kind="libraryFile" name="pcre"/>
+ </externalSetting>
+ </externalSettings>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" description="" id="com.qnx.qcc.configuration.staticLib.debug.1689929330" name="Device-Debug" parent="com.qnx.qcc.configuration.staticLib.debug">
+ <folderInfo id="com.qnx.qcc.configuration.staticLib.debug.1689929330." name="/" resourcePath="">
+ <toolChain id="com.qnx.qcc.toolChain.staticLib.debug.571387560" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <option id="com.qnx.qcc.option.cpu.1372781913" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.270296694" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/pcre/Device-Debug}" id="com.qnx.nto.116095424" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool id="com.qnx.qcc.tool.compiler.1243074038" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compile.debug.1486483233" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.security.1653736738" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.1830360025" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.9370446" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.qccoptions.475353225" name="QCC Options" superClass="com.qnx.qcc.option.compiler.qccoptions" valueType="stringList">
+ <listOptionValue builtIn="false" value="-DHAVE_CONFIG_H"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.1678402643" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.assembler.1164972847" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.1186868595" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.1304781271" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.linker.1990776270" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.debug.269017870" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.langcpp.1924049975" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.security.2007664263" name="Enhanced Security (-Wl,-z,relro -Wl,-z,now)" superClass="com.qnx.qcc.option.linker.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.1024233318" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/armle-v7/lib"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/armle-v7/usr/lib"/>
+ </option>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.1841578461" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="com.qnx.qcc.configuration.staticLib.release.1328226335">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.staticLib.release.1328226335" moduleId="org.eclipse.cdt.core.settings" name="Device-Release">
+ <externalSettings>
+ <externalSetting>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/pcre"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/pcre/Device-Release"/>
+ <entry flags="RESOLVED" kind="libraryFile" name="pcre"/>
+ </externalSetting>
+ </externalSettings>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" description="" id="com.qnx.qcc.configuration.staticLib.release.1328226335" name="Device-Release" parent="com.qnx.qcc.configuration.staticLib.release">
+ <folderInfo id="com.qnx.qcc.configuration.staticLib.release.1328226335." name="/" resourcePath="">
+ <toolChain id="com.qnx.qcc.toolChain.staticLib.release.1650526430" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <option id="com.qnx.qcc.option.cpu.1437370446" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.235852559" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/pcre/Device-Release}" id="com.qnx.nto.510708572" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool id="com.qnx.qcc.tool.compiler.339751911" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compiler.optlevel.442030806" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" value="com.qnx.qcc.option.compiler.optlevel.2" valueType="enumerated"/>
+ <option id="com.qnx.qcc.option.compiler.security.440995591" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.926306787" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.291588979" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.qccoptions.591435718" name="QCC Options" superClass="com.qnx.qcc.option.compiler.qccoptions" valueType="stringList">
+ <listOptionValue builtIn="false" value="-DHAVE_CONFIG_H"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.290389574" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.assembler.152048066" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <inputType id="com.qnx.qcc.inputType.assembler.1714970500" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.linker.1834869461" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.langcpp.1028147253" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.security.497952326" name="Enhanced Security (-Wl,-z,relro -Wl,-z,now)" superClass="com.qnx.qcc.option.linker.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.1443027633" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/armle-v7/lib"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/armle-v7/usr/lib"/>
+ </option>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.87705702" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="com.qnx.qcc.configuration.staticLib.profile.1196337441">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.staticLib.profile.1196337441" moduleId="org.eclipse.cdt.core.settings" name="Device-Profile">
+ <externalSettings>
+ <externalSetting>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/pcre"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/pcre/Device-Profile"/>
+ <entry flags="RESOLVED" kind="libraryFile" name="pcre"/>
+ </externalSetting>
+ </externalSettings>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=com.qnx.buildType.profile,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" description="Build for Profiling" id="com.qnx.qcc.configuration.staticLib.profile.1196337441" name="Device-Profile" parent="com.qnx.qcc.configuration.staticLib.profile">
+ <folderInfo id="com.qnx.qcc.configuration.staticLib.profile.1196337441." name="/" resourcePath="">
+ <toolChain id="com.qnx.qcc.toolChain.staticLib.profile.356705844" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <option id="com.qnx.qcc.option.cpu.1399933812" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1732370140" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/pcre/Device-Profile}" id="com.qnx.nto.1786877684" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool id="com.qnx.qcc.tool.compiler.1729882638" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compile.debug.572428108" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.profile2.1837297339" name="Build for Profiling (Function Instrumentation) (-finstrument-functions)" superClass="com.qnx.qcc.option.compiler.profile2" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.security.24487447" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.328334876" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.271135452" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.qccoptions.277348552" name="QCC Options" superClass="com.qnx.qcc.option.compiler.qccoptions" valueType="stringList">
+ <listOptionValue builtIn="false" value="-DHAVE_CONFIG_H"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.586498132" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.assembler.490631521" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.1762196557" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.959304259" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.linker.1377783069" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.debug.1760768563" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.profile2.1159658437" name="Build for Profiling (Function Instrumentation) (-lprofiling)" superClass="com.qnx.qcc.option.linker.profile2" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.langcpp.633927663" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.security.2135958964" name="Enhanced Security (-Wl,-z,relro -Wl,-z,now)" superClass="com.qnx.qcc.option.linker.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.106457354" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/armle-v7/lib"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/armle-v7/usr/lib"/>
+ </option>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.1061046208" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="com.qnx.qcc.configuration.staticLib.coverage.1330981828">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.staticLib.coverage.1330981828" moduleId="org.eclipse.cdt.core.settings" name="Device-Coverage">
+ <externalSettings>
+ <externalSetting>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/pcre"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/pcre/Device-Coverage"/>
+ <entry flags="RESOLVED" kind="libraryFile" name="pcre"/>
+ </externalSetting>
+ </externalSettings>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=com.qnx.buildType.coverage,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" description="Build with Code Coverage" id="com.qnx.qcc.configuration.staticLib.coverage.1330981828" name="Device-Coverage" parent="com.qnx.qcc.configuration.staticLib.coverage">
+ <folderInfo id="com.qnx.qcc.configuration.staticLib.coverage.1330981828." name="/" resourcePath="">
+ <toolChain id="com.qnx.qcc.toolChain.staticLib.coverage.893802339" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <option id="com.qnx.qcc.option.cpu.2016692271" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.985878996" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/pcre/Device-Coverage}" id="com.qnx.nto.1833633237" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool id="com.qnx.qcc.tool.compiler.643840439" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compile.debug.1747767214" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.coverage.1711432112" name="Build for Code Coverage (-Wc,-ftest-coverage -Wc,-fprofile-arcs)" superClass="com.qnx.qcc.option.compiler.coverage" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.security.858738418" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.1596775413" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.1121899961" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.qccoptions.441704416" name="QCC Options" superClass="com.qnx.qcc.option.compiler.qccoptions" valueType="stringList">
+ <listOptionValue builtIn="false" value="-DHAVE_CONFIG_H"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.264608078" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.assembler.375057610" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.359555095" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.325209388" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.linker.1298462721" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.debug.1997934974" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.coverage.841315337" name="Build for Code Coverage (-ftest-coverage -fprofile-arcs -p)" superClass="com.qnx.qcc.option.linker.coverage" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.langcpp.1740506068" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.security.1764745162" name="Enhanced Security (-Wl,-z,relro -Wl,-z,now)" superClass="com.qnx.qcc.option.linker.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.483910551" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/armle-v7/lib"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/armle-v7/usr/lib"/>
+ </option>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.546157708" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="com.qnx.qcc.configuration.staticLib.debug.199533509">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.staticLib.debug.199533509" moduleId="org.eclipse.cdt.core.settings" name="Simulator">
+ <externalSettings>
+ <externalSetting>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/pcre"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/pcre/Simulator"/>
+ <entry flags="RESOLVED" kind="libraryFile" name="pcre"/>
+ </externalSetting>
+ </externalSettings>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" description="" id="com.qnx.qcc.configuration.staticLib.debug.199533509" name="Simulator" parent="com.qnx.qcc.configuration.staticLib.debug">
+ <folderInfo id="com.qnx.qcc.configuration.staticLib.debug.199533509." name="/" resourcePath="">
+ <toolChain id="com.qnx.qcc.toolChain.staticLib.debug.1112198464" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1972046276" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/pcre/Simulator}" id="com.qnx.nto.1669189451" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool id="com.qnx.qcc.tool.compiler.171609367" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compile.debug.1147592872" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.security.1759057200" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.1848643785" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.873371781" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.qccoptions.1027430256" name="QCC Options" superClass="com.qnx.qcc.option.compiler.qccoptions" valueType="stringList">
+ <listOptionValue builtIn="false" value="-DHAVE_CONFIG_H"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.1969621795" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.assembler.1645510751" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.1903761427" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.2003749946" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.linker.83999770" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.debug.968384222" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.langcpp.1201894808" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.security.46310972" name="Enhanced Security (-Wl,-z,relro -Wl,-z,now)" superClass="com.qnx.qcc.option.linker.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.180633505" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/x86/lib"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/x86/usr/lib"/>
+ </option>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.1215014265" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="com.qnx.qcc.configuration.staticLib.profile.728913545">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.staticLib.profile.728913545" moduleId="org.eclipse.cdt.core.settings" name="Simulator-Profile">
+ <externalSettings>
+ <externalSetting>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/pcre"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/pcre/Simulator-Profile"/>
+ <entry flags="RESOLVED" kind="libraryFile" name="pcre"/>
+ </externalSetting>
+ </externalSettings>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=com.qnx.buildType.profile,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" description="Build for Profiling" id="com.qnx.qcc.configuration.staticLib.profile.728913545" name="Simulator-Profile" parent="com.qnx.qcc.configuration.staticLib.profile">
+ <folderInfo id="com.qnx.qcc.configuration.staticLib.profile.728913545." name="/" resourcePath="">
+ <toolChain id="com.qnx.qcc.toolChain.staticLib.profile.1654118775" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.365317746" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/pcre/Simulator-Profile}" id="com.qnx.nto.122824978" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool id="com.qnx.qcc.tool.compiler.1710602206" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compile.debug.1826168682" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.profile2.1038347971" name="Build for Profiling (Function Instrumentation) (-finstrument-functions)" superClass="com.qnx.qcc.option.compiler.profile2" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.security.385211898" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.395335833" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.754660633" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.qccoptions.637582837" name="QCC Options" superClass="com.qnx.qcc.option.compiler.qccoptions" valueType="stringList">
+ <listOptionValue builtIn="false" value="-DHAVE_CONFIG_H"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.1089180299" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.assembler.1659744359" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.2140641981" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.716850464" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.linker.184880544" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.debug.755030651" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.profile2.1049760425" name="Build for Profiling (Function Instrumentation) (-lprofiling)" superClass="com.qnx.qcc.option.linker.profile2" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.langcpp.861883797" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.security.1767407014" name="Enhanced Security (-Wl,-z,relro -Wl,-z,now)" superClass="com.qnx.qcc.option.linker.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.904031798" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/x86/lib"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/x86/usr/lib"/>
+ </option>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.913922609" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="com.qnx.qcc.configuration.staticLib.coverage.269563754">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.staticLib.coverage.269563754" moduleId="org.eclipse.cdt.core.settings" name="Simulator-Coverage">
+ <externalSettings>
+ <externalSetting>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/pcre"/>
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/pcre/Simulator-Coverage"/>
+ <entry flags="RESOLVED" kind="libraryFile" name="pcre"/>
+ </externalSetting>
+ </externalSettings>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=com.qnx.buildType.coverage,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" description="Build with Code Coverage" id="com.qnx.qcc.configuration.staticLib.coverage.269563754" name="Simulator-Coverage" parent="com.qnx.qcc.configuration.staticLib.coverage">
+ <folderInfo id="com.qnx.qcc.configuration.staticLib.coverage.269563754." name="/" resourcePath="">
+ <toolChain id="com.qnx.qcc.toolChain.staticLib.coverage.1928056506" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1628520424" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/pcre/Simulator-Coverage}" id="com.qnx.nto.50539440" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool id="com.qnx.qcc.tool.compiler.1443037175" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compile.debug.694416426" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.coverage.373238383" name="Build for Code Coverage (-Wc,-ftest-coverage -Wc,-fprofile-arcs)" superClass="com.qnx.qcc.option.compiler.coverage" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.security.1939808004" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.240918693" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.1985626539" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.qccoptions.1973708528" name="QCC Options" superClass="com.qnx.qcc.option.compiler.qccoptions" valueType="stringList">
+ <listOptionValue builtIn="false" value="-DHAVE_CONFIG_H"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.1404750201" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.assembler.229286832" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.1049769589" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.927776573" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool id="com.qnx.qcc.tool.linker.1516982488" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.debug.1077913849" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.coverage.1094153502" name="Build for Code Coverage (-ftest-coverage -fprofile-arcs -p)" superClass="com.qnx.qcc.option.linker.coverage" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.langcpp.1812775864" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.security.602582074" name="Enhanced Security (-Wl,-z,relro -Wl,-z,now)" superClass="com.qnx.qcc.option.linker.security" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.1523543" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/x86/lib"/>
+ <listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/x86/usr/lib"/>
+ </option>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.1550308651" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="pcre.null.50520852" name="pcre"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.staticLib.coverage.269563754">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.staticLib.debug.199533509">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.staticLib.debug.1689929330">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.staticLib.profile.1196337441">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.staticLib.release.1328226335">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.staticLib.profile.728913545">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.staticLib.coverage.1330981828">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="com.qnx.tools.ide.qde.core.QNXProjectProperties"/>
+</cproject>
View
8 .gitignore
@@ -0,0 +1,8 @@
+
+/Simulator
+/Simulator-Coverage
+/Simulator-Profile
+/Device-Coverage
+/Device-Debug
+/Device-Profile
+/Device-Release
View
77 .project
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>pcre</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${workspace_loc:/pcre/Device-Debug}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.qnx.tools.bbt.xml.core.bbtXMLValidationBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ <nature>com.qnx.tools.ide.bbt.core.bbtnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ </natures>
+</projectDescription>
View
313 132html
@@ -0,0 +1,313 @@
+#! /usr/bin/perl -w
+
+# Script to turn PCRE man pages into HTML
+
+
+# Subroutine to handle font changes and other escapes
+
+sub do_line {
+my($s) = $_[0];
+
+$s =~ s/</&#60;/g; # Deal with < and >
+$s =~ s/>/&#62;/g;
+$s =~ s"\\fI(.*?)\\f[RP]"<i>$1</i>"g;
+$s =~ s"\\fB(.*?)\\f[RP]"<b>$1</b>"g;
+$s =~ s"\\e"\\"g;
+$s =~ s/(?<=Copyright )\(c\)/&copy;/g;
+$s;
+}
+
+# Subroutine to ensure not in a paragraph
+
+sub end_para {
+if ($inpara)
+ {
+ print TEMP "</PRE>\n" if ($inpre);
+ print TEMP "</P>\n";
+ }
+$inpara = $inpre = 0;
+$wrotetext = 0;
+}
+
+# Subroutine to start a new paragraph
+
+sub new_para {
+&end_para();
+print TEMP "<P>\n";
+$inpara = 1;
+}
+
+
+# Main program
+
+$innf = 0;
+$inpara = 0;
+$inpre = 0;
+$wrotetext = 0;
+$toc = 0;
+$ref = 1;
+
+while ($#ARGV >= 0 && $ARGV[0] =~ /^-/)
+ {
+ $toc = 1 if $ARGV[0] eq "-toc";
+ shift;
+ }
+
+# Initial output to STDOUT
+
+print <<End ;
+<html>
+<head>
+<title>$ARGV[0] specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>$ARGV[0] man page</h1>
+<p>
+Return to the <a href="index.html">PCRE index page</a>.
+</p>
+<p>
+This page is part of the PCRE HTML documentation. It was generated automatically
+from the original man page. If there is any nonsense in it, please consult the
+man page, in case the conversion went wrong.
+<br>
+End
+
+print "<ul>\n" if ($toc);
+
+open(TEMP, ">/tmp/$$") || die "Can't open /tmp/$$ for output\n";
+
+while (<STDIN>)
+ {
+ # Handle lines beginning with a dot
+
+ if (/^\./)
+ {
+ # Some of the PCRE man pages used to contain instances of .br. However,
+ # they should have all been removed because they cause trouble in some
+ # (other) automated systems that translate man pages to HTML. Complain if
+ # we find .br or .in (another macro that is deprecated).
+
+ if (/^\.br/ || /^\.in/)
+ {
+ print STDERR "\n*** Deprecated macro encountered - rewrite needed\n";
+ print STDERR "*** $_\n";
+ die "*** Processing abandoned\n";
+ }
+
+ # Instead of .br, relevent "literal" sections are enclosed in .nf/.fi.
+
+ elsif (/^\.nf/)
+ {
+ $innf = 1;
+ }
+
+ elsif (/^\.fi/)
+ {
+ $innf = 0;
+ }
+
+ # Handling .sp is subtle. If it is inside a literal section, do nothing if
+ # the next line is a non literal text line; similarly, if not inside a
+ # literal section, do nothing if a literal follows. The point being that
+ # the <pre> and </pre> that delimit literal sections will do the spacing.
+ # Always skip if no previous output.
+
+ elsif (/^\.sp/)
+ {
+ if ($wrotetext)
+ {
+ $_ = <STDIN>;
+ if ($inpre)
+ {
+ print TEMP "\n" if (/^[\s.]/);
+ }
+ else
+ {
+ print TEMP "<br>\n<br>\n" if (!/^[\s.]/);
+ }
+ redo; # Now process the lookahead line we just read
+ }
+ }
+ elsif (/^\.TP/ || /^\.PP/ || /^\.P/)
+ {
+ &new_para();
+ }
+ elsif (/^\.SH\s*("?)(.*)\1/)
+ {
+ # Ignore the NAME section
+ if ($2 =~ /^NAME\b/)
+ {
+ <STDIN>;
+ next;
+ }
+
+ &end_para();
+ my($title) = &do_line($2);
+ if ($toc)
+ {
+ printf("<li><a name=\"TOC%d\" href=\"#SEC%d\">$title</a>\n",
+ $ref, $ref);
+ printf TEMP ("<br><a name=\"SEC%d\" href=\"#TOC1\">$title</a><br>\n",
+ $ref, $ref);
+ $ref++;
+ }
+ else
+ {
+ print TEMP "<br><b>\n$title\n</b><br>\n";
+ }
+ }
+ elsif (/^\.SS\s*("?)(.*)\1/)
+ {
+ &end_para();
+ my($title) = &do_line($2);
+ print TEMP "<br><b>\n$title\n</b><br>\n";
+ }
+ elsif (/^\.B\s*(.*)/)
+ {
+ &new_para() if (!$inpara);
+ $_ = &do_line($1);
+ s/"(.*?)"/$1/g;
+ print TEMP "<b>$_</b>\n";
+ $wrotetext = 1;
+ }
+ elsif (/^\.I\s*(.*)/)
+ {
+ &new_para() if (!$inpara);
+ $_ = &do_line($1);
+ s/"(.*?)"/$1/g;
+ print TEMP "<i>$_</i>\n";
+ $wrotetext = 1;
+ }
+
+ # A comment that starts "HREF" takes the next line as a name that
+ # is turned into a hyperlink, using the text given, which might be
+ # in a special font. If it ends in () or (digits) or punctuation, they
+ # aren't part of the link.
+
+ elsif (/^\.\\"\s*HREF/)
+ {
+ $_=<STDIN>;
+ chomp;
+ $_ = &do_line($_);
+ $_ =~ s/\s+$//;
+ $_ =~ /^(?:<.>)?([^<(]+)(?:\(\))?(?:<\/.>)?(?:\(\d+\))?[.,;:]?$/;
+ print TEMP "<a href=\"$1.html\">$_</a>\n";
+ }
+
+ # A comment that starts "HTML" inserts literal HTML
+
+ elsif (/^\.\\"\s*HTML\s*(.*)/)
+ {
+ print TEMP $1;
+ }
+
+ # A comment that starts < inserts that HTML at the end of the
+ # *next* input line - so as not to get a newline between them.
+
+ elsif (/^\.\\"\s*(<.*>)/)
+ {
+ my($markup) = $1;
+ $_=<STDIN>;
+ chomp;
+ $_ = &do_line($_);
+ $_ =~ s/\s+$//;
+ print TEMP "$_$markup\n";
+ }
+
+ # A comment that starts JOIN joins the next two lines together, with one
+ # space between them. Then that line is processed. This is used in some
+ # displays where two lines are needed for the "man" version. JOINSH works
+ # the same, except that it assumes this is a shell command, so removes
+ # continuation backslashes.
+
+ elsif (/^\.\\"\s*JOIN(SH)?/)
+ {
+ my($one,$two);
+ $one = <STDIN>;
+ $two = <STDIN>;
+ $one =~ s/\s*\\e\s*$// if (defined($1));
+ chomp($one);
+ $two =~ s/^\s+//;
+ $_ = "$one $two";
+ redo; # Process the joined lines
+ }
+
+ # .EX/.EE are used in the pcredemo page to bracket the entire program,
+ # which is unmodified except for turning backslash into "\e".
+
+ elsif (/^\.EX\s*$/)
+ {
+ print TEMP "<PRE>\n";
+ while (<STDIN>)
+ {
+ last if /^\.EE\s*$/;
+ s/\\e/\\/g;
+ s/&/&amp;/g;
+ s/</&lt;/g;
+ s/>/&gt;/g;
+ print TEMP;
+ }
+ }
+
+ # Ignore anything not recognized
+
+ next;
+ }
+
+ # Line does not begin with a dot. Replace blank lines with new paragraphs
+
+ if (/^\s*$/)
+ {
+ &end_para() if ($wrotetext);
+ next;
+ }
+
+ # Convert fonts changes and output an ordinary line. Ensure that indented
+ # lines are marked as literal.
+
+ $_ = &do_line($_);
+ &new_para() if (!$inpara);
+
+ if (/^\s/)
+ {
+ if (!$inpre)
+ {
+ print TEMP "<pre>\n";
+ $inpre = 1;
+ }
+ }
+ elsif ($inpre)
+ {
+ print TEMP "</pre>\n";
+ $inpre = 0;
+ }
+
+ # Add <br> to the end of a non-literal line if we are within .nf/.fi
+
+ $_ .= "<br>\n" if (!$inpre && $innf);
+
+ print TEMP;
+ $wrotetext = 1;
+ }
+
+# The TOC, if present, will have been written - terminate it
+
+print "</ul>\n" if ($toc);
+
+# Copy the remainder to the standard output
+
+close(TEMP);
+open(TEMP, "/tmp/$$") || die "Can't open /tmp/$$ for input\n";
+
+print while (<TEMP>);
+
+print <<End ;
+<p>
+Return to the <a href="index.html">PCRE index page</a>.
+</p>
+End
+
+close(TEMP);
+unlink("/tmp/$$");
+
+# End
View
23 AUTHORS
@@ -0,0 +1,23 @@
+THE MAIN PCRE LIBRARY
+---------------------
+
+Written by: Philip Hazel
+Email local part: ph10
+Email domain: cam.ac.uk
+
+University of Cambridge Computing Service,
+Cambridge, England.
+
+Copyright (c) 1997-2011 University of Cambridge
+All rights reserved
+
+
+THE C++ WRAPPER LIBRARY
+-----------------------
+
+Written by: Google Inc.
+
+Copyright (c) 2007-2011 Google Inc
+All rights reserved
+
+####
View
587 CMakeLists.txt
@@ -0,0 +1,587 @@
+# CMakeLists.txt
+#
+#
+# This file allows building PCRE with the CMake configuration and build
+# tool. Download CMake in source or binary form from http://www.cmake.org/
+#
+# Original listfile by Christian Ehrlicher <Ch.Ehrlicher@gmx.de>
+# Refined and expanded by Daniel Richard G. <skunk@iSKUNK.ORG>
+# 2007-09-14 mod by Sheri so 7.4 supported configuration options can be entered
+# 2007-09-19 Adjusted by PH to retain previous default settings
+# 2007-12-26 (a) On UNIX, use names libpcre instead of just pcre
+# (b) Ensure pcretest and pcregrep link with the local library,
+# not a previously-installed one.
+# (c) Add PCRE_SUPPORT_LIBREADLINE, PCRE_SUPPORT_LIBZ, and
+# PCRE_SUPPORT_LIBBZ2.
+# 2008-01-20 Brought up to date to include several new features by Christian
+# Ehrlicher.
+# 2008-01-22 Sheri added options for backward compatibility of library names
+# when building with minGW:
+# if "ON", NON_STANDARD_LIB_PREFIX causes shared libraries to
+# be built without "lib" as prefix. (The libraries will be named
+# pcre.dll, pcreposix.dll and pcrecpp.dll).
+# if "ON", NON_STANDARD_LIB_SUFFIX causes shared libraries to
+# be built with suffix of "-0.dll". (The libraries will be named
+# libpcre-0.dll, libpcreposix-0.dll and libpcrecpp-0.dll - same names
+# built by default with Configure and Make.
+# 2008-01-23 PH removed the automatic build of pcredemo.
+# 2008-04-22 PH modified READLINE support so it finds NCURSES when needed.
+# 2008-07-03 PH updated for revised UCP property support (change of files)
+# 2009-03-23 PH applied Steven Van Ingelgem's patch to change the name
+# CMAKE_BINARY_DIR to PROJECT_BINARY_DIR so that it works when PCRE
+# is included within another project.
+# 2009-03-23 PH applied a modified version of Steven Van Ingelgem's patches to
+# add options to stop the building of pcregrep and the tests, and
+# to disable the final configuration report.
+# 2009-04-11 PH applied Christian Ehrlicher's patch to show compiler flags that
+# are set by specifying a release type.
+# 2010-01-02 PH added test for stdint.h
+# 2010-03-02 PH added test for inttypes.h
+# 2011-08-01 PH added PCREGREP_BUFSIZE
+
+PROJECT(PCRE C CXX)
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6)
+
+SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake
+
+# external packages
+FIND_PACKAGE( BZip2 )
+FIND_PACKAGE( ZLIB )
+FIND_PACKAGE( Readline )
+
+# Configuration checks
+
+INCLUDE(CheckIncludeFile)
+INCLUDE(CheckIncludeFileCXX)
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckTypeSize)
+
+CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
+CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
+CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H)
+CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
+CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
+CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H)
+
+CHECK_INCLUDE_FILE_CXX(type_traits.h HAVE_TYPE_TRAITS_H)
+CHECK_INCLUDE_FILE_CXX(bits/type_traits.h HAVE_BITS_TYPE_TRAITS_H)
+
+CHECK_FUNCTION_EXISTS(bcopy HAVE_BCOPY)
+CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
+CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR)
+CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL)
+CHECK_FUNCTION_EXISTS(strtoq HAVE_STRTOQ)
+CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64)
+
+CHECK_TYPE_SIZE("long long" LONG_LONG)
+CHECK_TYPE_SIZE("unsigned long long" UNSIGNED_LONG_LONG)
+
+# User-configurable options
+#
+# (Note: CMakeSetup displays these in alphabetical order, regardless of
+# the order we use here)
+
+SET(BUILD_SHARED_LIBS OFF CACHE BOOL
+ "Build shared libraries instead of static ones.")
+
+OPTION(PCRE_BUILD_PCRECPP "Build the PCRE C++ library (pcrecpp)." ON)
+
+SET(PCRE_EBCDIC OFF CACHE BOOL
+ "Use EBCDIC coding instead of ASCII. (This is rarely used outside of mainframe systems)")
+
+SET(PCRE_LINK_SIZE "2" CACHE STRING
+ "Internal link size (2, 3 or 4 allowed). See LINK_SIZE in config.h.in for details.")
+
+SET(PCRE_MATCH_LIMIT "10000000" CACHE STRING
+ "Default limit on internal looping. See MATCH_LIMIT in config.h.in for details.")
+
+SET(PCRE_MATCH_LIMIT_RECURSION "MATCH_LIMIT" CACHE STRING
+ "Default limit on internal recursion. See MATCH_LIMIT_RECURSION in config.h.in for details.")
+
+SET(PCREGREP_BUFSIZE "20480" CACHE STRING
+ "Buffer size parameter for pcregrep. See PCREGREP_BUFSIZE in config.h.in for details.")
+
+SET(PCRE_NEWLINE "LF" CACHE STRING
+ "What to recognize as a newline (one of CR, LF, CRLF, ANY, ANYCRLF).")
+
+SET(PCRE_NO_RECURSE OFF CACHE BOOL
+ "If ON, then don't use stack recursion when matching. See NO_RECURSE in config.h.in for details.")
+
+SET(PCRE_POSIX_MALLOC_THRESHOLD "10" CACHE STRING
+ "Threshold for malloc() usage. See POSIX_MALLOC_THRESHOLD in config.h.in for details.")
+
+SET(PCRE_SUPPORT_UNICODE_PROPERTIES OFF CACHE BOOL
+ "Enable support for Unicode properties. (If set, UTF-8 support will be enabled as well)")
+
+SET(PCRE_SUPPORT_UTF8 OFF CACHE BOOL
+ "Enable support for the Unicode UTF-8 encoding.")
+
+SET(PCRE_SUPPORT_BSR_ANYCRLF OFF CACHE BOOL
+ "ON=Backslash-R matches only LF CR and CRLF, OFF=Backslash-R matches all Unicode Linebreaks")
+
+OPTION(PCRE_SHOW_REPORT "Show the final configuration report" ON)
+OPTION(PCRE_BUILD_PCREGREP "Build pcregrep" ON)
+OPTION(PCRE_BUILD_TESTS "Build the tests" ON)
+
+IF (PCRE_BUILD_TESTS)
+ IF (NOT PCRE_BUILD_PCREGREP)
+ MESSAGE(STATUS "** Building tests requires pcregrep: PCRE_BUILD_PCREGREP forced ON")
+ SET(PCRE_BUILD_PCREGREP ON)
+ ENDIF(NOT PCRE_BUILD_PCREGREP)
+ENDIF(PCRE_BUILD_TESTS)
+
+IF (MINGW)
+ OPTION(NON_STANDARD_LIB_PREFIX
+ "ON=Shared libraries built in mingw will be named pcre.dll, etc., instead of libpcre.dll, etc."
+ OFF)
+
+ OPTION(NON_STANDARD_LIB_SUFFIX
+ "ON=Shared libraries built in mingw will be named libpcre-0.dll, etc., instead of libpcre.dll, etc."
+ OFF)
+ENDIF(MINGW)
+
+# bzip2 lib
+IF(BZIP2_FOUND)
+ OPTION (PCRE_SUPPORT_LIBBZ2 "Enable support for linking pcregrep with libbz2." ON)
+ENDIF(BZIP2_FOUND)
+IF(PCRE_SUPPORT_LIBBZ2)
+ INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR})
+ENDIF(PCRE_SUPPORT_LIBBZ2)
+
+# zlib
+IF(ZLIB_FOUND)
+ OPTION (PCRE_SUPPORT_LIBZ "Enable support for linking pcregrep with libz." ON)
+ENDIF(ZLIB_FOUND)
+IF(PCRE_SUPPORT_LIBZ)
+ INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
+ENDIF(PCRE_SUPPORT_LIBZ)
+
+# readline lib
+IF(READLINE_FOUND)
+ OPTION (PCRE_SUPPORT_LIBREADLINE "Enable support for linking pcretest with libreadline." ON)
+ENDIF(READLINE_FOUND)
+IF(PCRE_SUPPORT_LIBREADLINE)
+ INCLUDE_DIRECTORIES(${READLINE_INCLUDE_DIR})
+ENDIF(PCRE_SUPPORT_LIBREADLINE)
+
+# Prepare build configuration
+
+SET(pcre_have_type_traits 0)
+SET(pcre_have_bits_type_traits 0)
+
+IF(HAVE_TYPE_TRAITS_H)
+ SET(pcre_have_type_traits 1)
+ENDIF(HAVE_TYPE_TRAITS_H)
+
+IF(HAVE_BITS_TYPE_TRAITS_H)
+ SET(pcre_have_bits_type_traits 1)
+ENDIF(HAVE_BITS_TYPE_TRAITS_H)
+
+SET(pcre_have_long_long 0)
+SET(pcre_have_ulong_long 0)
+
+IF(HAVE_LONG_LONG)
+ SET(pcre_have_long_long 1)
+ENDIF(HAVE_LONG_LONG)
+
+IF(HAVE_UNSIGNED_LONG_LONG)
+ SET(pcre_have_ulong_long 1)
+ENDIF(HAVE_UNSIGNED_LONG_LONG)
+
+IF(NOT BUILD_SHARED_LIBS)
+ SET(PCRE_STATIC 1)
+ENDIF(NOT BUILD_SHARED_LIBS)
+
+IF(PCRE_SUPPORT_BSR_ANYCRLF)
+ SET(BSR_ANYCRLF 1)
+ENDIF(PCRE_SUPPORT_BSR_ANYCRLF)
+
+IF(PCRE_SUPPORT_UTF8 OR PCRE_SUPPORT_UNICODE_PROPERTIES)
+ SET(SUPPORT_UTF8 1)
+ENDIF(PCRE_SUPPORT_UTF8 OR PCRE_SUPPORT_UNICODE_PROPERTIES)
+
+IF(PCRE_SUPPORT_UNICODE_PROPERTIES)
+ SET(SUPPORT_UCP 1)
+ENDIF(PCRE_SUPPORT_UNICODE_PROPERTIES)
+
+# This next one used to contain
+# SET(PCRETEST_LIBS ${READLINE_LIBRARY})
+# but I was advised to add the NCURSES test as well, along with
+# some modifications to cmake/FindReadline.cmake which should
+# make it possible to override the default if necessary. PH
+
+IF(PCRE_SUPPORT_LIBREADLINE)
+ SET(SUPPORT_LIBREADLINE 1)
+ SET(PCRETEST_LIBS ${READLINE_LIBRARY} ${NCURSES_LIBRARY})
+ENDIF(PCRE_SUPPORT_LIBREADLINE)
+
+IF(PCRE_SUPPORT_LIBZ)
+ SET(SUPPORT_LIBZ 1)
+ SET(PCREGREP_LIBS ${PCREGREP_LIBS} ${ZLIB_LIBRARIES})
+ENDIF(PCRE_SUPPORT_LIBZ)
+
+IF(PCRE_SUPPORT_LIBBZ2)
+ SET(SUPPORT_LIBBZ2 1)
+ SET(PCREGREP_LIBS ${PCREGREP_LIBS} ${BZIP2_LIBRARIES})
+ENDIF(PCRE_SUPPORT_LIBBZ2)
+
+SET(NEWLINE "")
+
+IF(PCRE_NEWLINE STREQUAL "LF")
+ SET(NEWLINE "10")
+ENDIF(PCRE_NEWLINE STREQUAL "LF")
+IF(PCRE_NEWLINE STREQUAL "CR")
+ SET(NEWLINE "13")
+ENDIF(PCRE_NEWLINE STREQUAL "CR")
+IF(PCRE_NEWLINE STREQUAL "CRLF")
+ SET(NEWLINE "3338")
+ENDIF(PCRE_NEWLINE STREQUAL "CRLF")
+IF(PCRE_NEWLINE STREQUAL "ANY")
+ SET(NEWLINE "-1")
+ENDIF(PCRE_NEWLINE STREQUAL "ANY")
+IF(PCRE_NEWLINE STREQUAL "ANYCRLF")
+ SET(NEWLINE "-2")
+ENDIF(PCRE_NEWLINE STREQUAL "ANYCRLF")
+
+IF(NEWLINE STREQUAL "")
+ MESSAGE(FATAL_ERROR "The PCRE_NEWLINE variable must be set to one of the following values: \"LF\", \"CR\", \"CRLF\", \"ANY\", \"ANYCRLF\".")
+ENDIF(NEWLINE STREQUAL "")
+
+IF(PCRE_EBCDIC)
+ SET(EBCDIC 1)
+ENDIF(PCRE_EBCDIC)
+
+IF(PCRE_NO_RECURSE)
+ SET(NO_RECURSE 1)
+ENDIF(PCRE_NO_RECURSE)
+
+# Output files
+CONFIGURE_FILE(config-cmake.h.in
+ ${PROJECT_BINARY_DIR}/config.h
+ @ONLY)
+
+CONFIGURE_FILE(pcre.h.generic
+ ${PROJECT_BINARY_DIR}/pcre.h
+ COPYONLY)
+
+# What about pcre-config and libpcre.pc?
+
+IF(PCRE_BUILD_PCRECPP)
+ CONFIGURE_FILE(pcre_stringpiece.h.in
+ ${PROJECT_BINARY_DIR}/pcre_stringpiece.h
+ @ONLY)
+
+ CONFIGURE_FILE(pcrecpparg.h.in
+ ${PROJECT_BINARY_DIR}/pcrecpparg.h
+ @ONLY)
+ENDIF(PCRE_BUILD_PCRECPP)
+
+# Character table generation
+
+OPTION(PCRE_REBUILD_CHARTABLES "Rebuild char tables" OFF)
+IF(PCRE_REBUILD_CHARTABLES)
+ ADD_EXECUTABLE(dftables dftables.c)
+
+ GET_TARGET_PROPERTY(DFTABLES_EXE dftables LOCATION)
+
+ ADD_CUSTOM_COMMAND(
+ COMMENT "Generating character tables (pcre_chartables.c) for current locale"
+ DEPENDS dftables
+ COMMAND ${DFTABLES_EXE}
+ ARGS ${PROJECT_BINARY_DIR}/pcre_chartables.c
+ OUTPUT ${PROJECT_BINARY_DIR}/pcre_chartables.c
+ )
+ELSE(PCRE_REBUILD_CHARTABLES)
+ CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/pcre_chartables.c.dist
+ ${PROJECT_BINARY_DIR}/pcre_chartables.c
+ COPYONLY)
+ENDIF(PCRE_REBUILD_CHARTABLES)
+
+# Source code
+
+SET(PCRE_HEADERS ${PROJECT_BINARY_DIR}/pcre.h)
+
+SET(PCRE_SOURCES
+ ${PROJECT_BINARY_DIR}/pcre_chartables.c
+ pcre_compile.c
+ pcre_config.c
+ pcre_dfa_exec.c
+ pcre_exec.c
+ pcre_fullinfo.c
+ pcre_get.c
+ pcre_globals.c
+ pcre_info.c
+ pcre_newline.c
+ pcre_maketables.c
+ pcre_ord2utf8.c
+ pcre_refcount.c
+ pcre_study.c
+ pcre_tables.c
+ pcre_try_flipped.c
+ pcre_ucd.c
+ pcre_valid_utf8.c
+ pcre_version.c
+ pcre_xclass.c
+)
+
+SET(PCREPOSIX_HEADERS pcreposix.h)
+
+SET(PCREPOSIX_SOURCES pcreposix.c)
+
+SET(PCRECPP_HEADERS
+ pcrecpp.h
+ pcre_scanner.h
+ ${PROJECT_BINARY_DIR}/pcrecpparg.h
+ ${PROJECT_BINARY_DIR}/pcre_stringpiece.h
+)
+
+SET(PCRECPP_SOURCES
+ pcrecpp.cc
+ pcre_scanner.cc
+ pcre_stringpiece.cc
+)
+
+# Build setup
+
+ADD_DEFINITIONS(-DHAVE_CONFIG_H)
+
+IF(MSVC)
+ ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
+ENDIF(MSVC)
+
+SET(CMAKE_INCLUDE_CURRENT_DIR 1)
+# needed to make sure to not link debug libs
+# against release libs and vice versa
+IF(WIN32)
+ SET(CMAKE_DEBUG_POSTFIX "d")
+ENDIF(WIN32)
+
+SET(targets)
+
+# Libraries
+# pcre
+ADD_LIBRARY(pcre ${PCRE_HEADERS} ${PCRE_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
+SET(targets ${targets} pcre)
+ADD_LIBRARY(pcreposix ${PCREPOSIX_HEADERS} ${PCREPOSIX_SOURCES})
+SET(targets ${targets} pcreposix)
+TARGET_LINK_LIBRARIES(pcreposix pcre)
+IF(MINGW AND NOT PCRE_STATIC)
+ IF(NON_STANDARD_LIB_PREFIX)
+ SET_TARGET_PROPERTIES(pcre pcreposix
+ PROPERTIES PREFIX ""
+ )
+ ENDIF(NON_STANDARD_LIB_PREFIX)
+
+ IF(NON_STANDARD_LIB_SUFFIX)
+ SET_TARGET_PROPERTIES(pcre pcreposix
+ PROPERTIES SUFFIX "-0.dll"
+ )
+ ENDIF(NON_STANDARD_LIB_SUFFIX)
+ENDIF(MINGW AND NOT PCRE_STATIC)
+
+
+# pcrecpp
+IF(PCRE_BUILD_PCRECPP)
+ ADD_LIBRARY(pcrecpp ${PCRECPP_HEADERS} ${PCRECPP_SOURCES})
+SET(targets ${targets} pcrecpp)
+ TARGET_LINK_LIBRARIES(pcrecpp pcre)
+
+ IF(MINGW AND NOT PCRE_STATIC)
+ IF(NON_STANDARD_LIB_PREFIX)
+ SET_TARGET_PROPERTIES(pcrecpp
+ PROPERTIES PREFIX ""
+ )
+ ENDIF(NON_STANDARD_LIB_PREFIX)
+
+ IF(NON_STANDARD_LIB_SUFFIX)
+ SET_TARGET_PROPERTIES(pcrecpp
+ PROPERTIES SUFFIX "-0.dll"
+ )
+ ENDIF(NON_STANDARD_LIB_SUFFIX)
+ ENDIF(MINGW AND NOT PCRE_STATIC)
+ENDIF(PCRE_BUILD_PCRECPP)
+
+
+# Executables
+
+# Removed by PH (2008-01-23) because pcredemo shouldn't really be built
+# automatically, and it gave trouble in some environments anyway.
+# ADD_EXECUTABLE(pcredemo pcredemo.c)
+# TARGET_LINK_LIBRARIES(pcredemo pcreposix)
+# IF(NOT BUILD_SHARED_LIBS)
+# # make sure to not use declspec(dllimport) in static mode on windows
+# SET_TARGET_PROPERTIES(pcredemo PROPERTIES COMPILE_FLAGS "-DPCRE_STATIC")
+# ENDIF(NOT BUILD_SHARED_LIBS)
+
+IF(PCRE_BUILD_PCREGREP)
+ ADD_EXECUTABLE(pcregrep pcregrep.c)
+ SET(targets ${targets} pcregrep)
+ TARGET_LINK_LIBRARIES(pcregrep pcreposix ${PCREGREP_LIBS})
+ENDIF(PCRE_BUILD_PCREGREP)
+
+
+# Testing
+IF(PCRE_BUILD_TESTS)
+ ENABLE_TESTING()
+
+ ADD_EXECUTABLE(pcretest pcretest.c)
+ SET(targets ${targets} pcretest)
+ TARGET_LINK_LIBRARIES(pcretest pcreposix ${PCRETEST_LIBS})
+
+ IF(PCRE_BUILD_PCRECPP)
+ ADD_EXECUTABLE(pcrecpp_unittest pcrecpp_unittest.cc)
+ SET(targets ${targets} pcrecpp_unittest)
+ TARGET_LINK_LIBRARIES(pcrecpp_unittest pcrecpp)
+ IF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC)
+ SET_TARGET_PROPERTIES(pcrecpp
+ PROPERTIES PREFIX ""
+ )
+ ENDIF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC)
+
+
+ ADD_EXECUTABLE(pcre_scanner_unittest pcre_scanner_unittest.cc)
+ SET(targets ${targets} pcre_scanner_unittest)
+ TARGET_LINK_LIBRARIES(pcre_scanner_unittest pcrecpp)
+
+ ADD_EXECUTABLE(pcre_stringpiece_unittest pcre_stringpiece_unittest.cc)
+ SET(targets ${targets} pcre_stringpiece_unittest)
+ TARGET_LINK_LIBRARIES(pcre_stringpiece_unittest pcrecpp)
+ ENDIF(PCRE_BUILD_PCRECPP)
+
+ GET_TARGET_PROPERTY(PCREGREP_EXE pcregrep DEBUG_LOCATION)
+ GET_TARGET_PROPERTY(PCRETEST_EXE pcretest DEBUG_LOCATION)
+
+ # Write out a CTest configuration file that sets some needed environment
+ # variables for the test scripts.
+ #
+ FILE(WRITE ${PROJECT_BINARY_DIR}/CTestCustom.ctest
+ "# This is a generated file.
+ SET(ENV{srcdir} ${PROJECT_SOURCE_DIR})
+ SET(ENV{pcregrep} ${PCREGREP_EXE})
+ SET(ENV{pcretest} ${PCRETEST_EXE})
+ ")
+
+ IF(UNIX)
+ ADD_TEST(pcre_test ${PROJECT_SOURCE_DIR}/RunTest)
+ ADD_TEST(pcre_grep_test ${PROJECT_SOURCE_DIR}/RunGrepTest)
+ ENDIF(UNIX)
+ IF(WIN32)
+ ADD_TEST(pcre_test cmd /C ${PROJECT_SOURCE_DIR}/RunTest.bat)
+ ENDIF(WIN32)
+
+ GET_TARGET_PROPERTY(PCRECPP_UNITTEST_EXE
+ pcrecpp_unittest
+ DEBUG_LOCATION)
+
+ GET_TARGET_PROPERTY(PCRE_SCANNER_UNITTEST_EXE
+ pcre_scanner_unittest
+ DEBUG_LOCATION)
+
+ GET_TARGET_PROPERTY(PCRE_STRINGPIECE_UNITTEST_EXE
+ pcre_stringpiece_unittest
+ DEBUG_LOCATION)
+
+ ADD_TEST(pcrecpp_test ${PCRECPP_UNITTEST_EXE})
+ ADD_TEST(pcre_scanner_test ${PCRE_SCANNER_UNITTEST_EXE})
+ ADD_TEST(pcre_stringpiece_test ${PCRE_STRINGPIECE_UNITTEST_EXE})
+ENDIF(PCRE_BUILD_TESTS)
+
+# Installation
+SET(CMAKE_INSTALL_ALWAYS 1)
+
+INSTALL(TARGETS ${targets}
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+INSTALL(FILES ${PCRE_HEADERS} ${PCREPOSIX_HEADERS} DESTINATION include)
+
+FILE(GLOB html ${PROJECT_SOURCE_DIR}/doc/html/*.html)
+FILE(GLOB man1 ${PROJECT_SOURCE_DIR}/doc/*.1)
+FILE(GLOB man3 ${PROJECT_SOURCE_DIR}/doc/*.3)
+
+IF(PCRE_BUILD_PCRECPP)
+ INSTALL(FILES ${PCRECPP_HEADERS} DESTINATION include)
+ELSE(PCRE_BUILD_PCRECPP)
+ # Remove pcrecpp.3
+ FOREACH(man ${man3})
+ GET_FILENAME_COMPONENT(man_tmp ${man} NAME)
+ IF(NOT man_tmp STREQUAL "pcrecpp.3")
+ SET(man3_new ${man3} ${man})
+ ENDIF(NOT man_tmp STREQUAL "pcrecpp.3")
+ ENDFOREACH(man ${man3})
+ SET(man3 ${man3_new})
+ENDIF(PCRE_BUILD_PCRECPP)
+
+
+INSTALL(FILES ${man1} DESTINATION man/man1)
+INSTALL(FILES ${man3} DESTINATION man/man3)
+INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)
+
+# help, only for nice output
+IF(BUILD_SHARED_LIBS)
+ SET(BUILD_STATIC_LIBS OFF)
+ELSE(BUILD_SHARED_LIBS)
+ SET(BUILD_STATIC_LIBS ON)
+ENDIF(BUILD_SHARED_LIBS)
+
+IF(PCRE_SHOW_REPORT)
+ STRING(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype)
+ IF (CMAKE_C_FLAGS)
+ SET(cfsp " ")
+ ENDIF(CMAKE_C_FLAGS)
+ IF (CMAKE_CXX_FLAGS)
+ SET(cxxfsp " ")
+ ENDIF(CMAKE_CXX_FLAGS)
+ MESSAGE(STATUS "")
+ MESSAGE(STATUS "")
+ MESSAGE(STATUS "PCRE configuration summary:")
+ MESSAGE(STATUS "")
+ MESSAGE(STATUS " Install prefix .................. : ${CMAKE_INSTALL_PREFIX}")
+ MESSAGE(STATUS " C compiler ...................... : ${CMAKE_C_COMPILER}")
+ MESSAGE(STATUS " C++ compiler .................... : ${CMAKE_CXX_COMPILER}")
+ MESSAGE(STATUS " C compiler flags ................ : ${CMAKE_C_FLAGS}${cfsp}${CMAKE_C_FLAGS_${buildtype}}")
+ MESSAGE(STATUS " C++ compiler flags .............. : ${CMAKE_CXX_FLAGS}${cxxfsp}${CMAKE_CXX_FLAGS_${buildtype}}")
+ MESSAGE(STATUS "")
+ MESSAGE(STATUS " Build C++ library ............... : ${PCRE_BUILD_PCRECPP}")
+ MESSAGE(STATUS " Enable UTF-8 support ............ : ${PCRE_SUPPORT_UNICODE_PROPERTIES}")
+ MESSAGE(STATUS " Unicode properties .............. : ${PCRE_SUPPORT_UNICODE_PROPERTIES}")
+ MESSAGE(STATUS " Newline char/sequence ........... : ${PCRE_NEWLINE}")
+ MESSAGE(STATUS " \\R matches only ANYCRLF ......... : ${PCRE_SUPPORT_BSR_ANYCRLF}")
+ MESSAGE(STATUS " EBCDIC coding ................... : ${PCRE_EBCDIC}")
+ MESSAGE(STATUS " Rebuild char tables ............. : ${PCRE_REBUILD_CHARTABLES}")
+ MESSAGE(STATUS " No stack recursion .............. : ${PCRE_NO_RECURSE}")
+ MESSAGE(STATUS " POSIX mem threshold ............. : ${PCRE_POSIX_MALLOC_THRESHOLD}")
+ MESSAGE(STATUS " Internal link size .............. : ${PCRE_LINK_SIZE}")
+ MESSAGE(STATUS " Match limit ..................... : ${PCRE_MATCH_LIMIT}")
+ MESSAGE(STATUS " Match limit recursion ........... : ${PCRE_MATCH_LIMIT_RECURSION}")
+ MESSAGE(STATUS " Build shared libs ............... : ${BUILD_SHARED_LIBS}")
+ MESSAGE(STATUS " Build static libs ............... : ${BUILD_STATIC_LIBS}")
+ MESSAGE(STATUS " Build pcregrep .................. : ${PCRE_BUILD_PCREGREP}")
+ MESSAGE(STATUS " Buffer size for pcregrep ........ : ${PCREGREP_BUFSIZE}")
+ MESSAGE(STATUS " Build tests (implies pcretest) .. : ${PCRE_BUILD_TESTS}")
+ IF(ZLIB_FOUND)
+ MESSAGE(STATUS " Link pcregrep with libz ......... : ${PCRE_SUPPORT_LIBZ}")
+ ELSE(ZLIB_FOUND)
+ MESSAGE(STATUS " Link pcregrep with libz ......... : None" )
+ ENDIF(ZLIB_FOUND)
+ IF(BZIP2_FOUND)
+ MESSAGE(STATUS " Link pcregrep with libbz2 ....... : ${PCRE_SUPPORT_LIBBZ2}")
+ ELSE(BZIP2_FOUND)
+ MESSAGE(STATUS " Link pcregrep with libbz2 ....... : None" )
+ ENDIF(BZIP2_FOUND)
+ IF(NOT PCRE_SUPPORT_LIBREADLINE)
+ MESSAGE(STATUS " Link pcretest with libreadline .. : None" )
+ ELSE(NOT PCRE_SUPPORT_LIBREADLINE)
+ MESSAGE(STATUS " Link pcretest with libreadline .. : ${PCRE_SUPPORT_LIBREADLINE}")
+ ENDIF(NOT PCRE_SUPPORT_LIBREADLINE)
+ IF(MINGW AND NOT PCRE_STATIC)
+ MESSAGE(STATUS " Non-standard dll names (prefix) . : ${NON_STANDARD_LIB_PREFIX}")
+ MESSAGE(STATUS " Non-standard dll names (suffix) . : ${NON_STANDARD_LIB_SUFFIX}")
+ ENDIF(MINGW AND NOT PCRE_STATIC)
+ MESSAGE(STATUS "")
+ENDIF(PCRE_SHOW_REPORT)
+
+# end CMakeLists.txt
View
5 COPYING
@@ -0,0 +1,5 @@
+PCRE LICENCE
+
+Please see the file LICENCE in the PCRE distribution for licensing details.
+
+End
View
4,373 ChangeLog
4,373 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
113 CleanTxt
@@ -0,0 +1,113 @@
+#! /usr/bin/perl -w
+
+# Script to take the output of nroff -man and remove all the backspacing and
+# the page footers and the screen commands etc so that it is more usefully
+# readable online. In fact, in the latest nroff, intermediate footers don't
+# seem to be generated any more.
+
+$blankcount = 0;
+$lastwascut = 0;
+$firstheader = 1;
+
+# Input on STDIN; output to STDOUT.
+
+while (<STDIN>)
+ {
+ s/\x1b\[\d+m//g; # Remove screen controls "ESC [ number m"
+ s/.\x8//g; # Remove "char, backspace"
+
+ # Handle header lines. Retain only the first one we encounter, but remove
+ # the blank line that follows. Any others (e.g. at end of document) and the
+ # following blank line are dropped.
+
+ if (/^PCRE(\w*)\(([13])\)\s+PCRE\1\(\2\)$/)
+ {
+ if ($firstheader)
+ {
+ $firstheader = 0;
+ print;
+ $lastprinted = $_;
+ $lastwascut = 0;
+ }
+ $_=<STDIN>; # Remove a blank that follows
+ next;
+ }
+
+ # Count runs of empty lines
+
+ if (/^\s*$/)
+ {
+ $blankcount++;
+ $lastwascut = 0;
+ next;
+ }
+
+ # If a chunk of lines has been cut out (page footer) and the next line
+ # has a different indentation, put back one blank line.
+
+ if ($lastwascut && $blankcount < 1 && defined($lastprinted))
+ {
+ ($a) = $lastprinted =~ /^(\s*)/;
+ ($b) = $_ =~ /^(\s*)/;
+ $blankcount++ if ($a ne $b);
+ }
+
+ # We get here only when we have a non-blank line in hand. If it was preceded
+ # by 3 or more blank lines, read the next 3 lines and see if they are blank.
+ # If so, remove all 7 lines, and remember that we have just done a cut.
+
+ if ($blankcount >= 3)
+ {
+ for ($i = 0; $i < 3; $i++)
+ {
+ $next[$i] = <STDIN>;
+ $next[$i] = "" if !defined $next[$i];
+ $next[$i] =~ s/\x1b\[\d+m//g; # Remove screen controls "ESC [ number m"
+ $next[$i] =~ s/.\x8//g; # Remove "char, backspace"
+ }
+
+ # Cut out chunks of the form <3 blanks><non-blank><3 blanks>
+
+ if ($next[0] =~ /^\s*$/ &&
+ $next[1] =~ /^\s*$/ &&
+ $next[2] =~ /^\s*$/)
+ {
+ $blankcount -= 3;
+ $lastwascut = 1;
+ }
+
+ # Otherwise output the saved blanks, the current, and the next three
+ # lines. Remember the last printed line.
+
+ else
+ {
+ for ($i = 0; $i < $blankcount; $i++) { print "\n"; }
+ print;
+ for ($i = 0; $i < 3; $i++)
+ {
+ $next[$i] =~ s/.\x8//g;
+ print $next[$i];
+ $lastprinted = $_;
+ }
+ $lastwascut = 0;
+ $blankcount = 0;
+ }
+ }
+
+ # This non-blank line is not preceded by 3 or more blank lines. Output
+ # any blanks there are, and the line. Remember it. Force two blank lines
+ # before headings.
+
+ else
+ {
+ $blankcount = 2 if /^\S/ && !/^Last updated/ && !/^Copyright/ &&
+ defined($lastprinted);
+ for ($i = 0; $i < $blankcount; $i++) { print "\n"; }
+ print;
+ $lastprinted = $_;
+ $lastwascut = 0;
+ $blankcount = 0;
+ }
+ }
+
+# End
View
35 Detrail
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+
+# This is a script for removing trailing whitespace from lines in files that
+# are listed on the command line.
+
+# This subroutine does the work for one file.
+
+sub detrail {
+my($file) = $_[0];
+my($changed) = 0;
+open(IN, "$file") || die "Can't open $file for input";
+@lines = <IN>;
+close(IN);
+foreach (@lines)
+ {
+ if (/\s+\n$/)
+ {
+ s/\s+\n$/\n/;
+ $changed = 1;
+ }
+ }
+if ($changed)
+ {
+ open(OUT, ">$file") || die "Can't open $file for output";
+ print OUT @lines;
+ close(OUT);
+ }
+}
+
+# This is the main program
+
+$, = ""; # Output field separator
+for ($i = 0; $i < @ARGV; $i++) { &detrail($ARGV[$i]); }
+
+# End
View
453 HACKING
@@ -0,0 +1,453 @@
+Technical Notes about PCRE
+--------------------------
+
+These are very rough technical notes that record potentially useful information
+about PCRE internals. For information about testing PCRE, see the pcretest
+documentation and the comment at the head of the RunTest file.
+
+
+Historical note 1
+-----------------
+
+Many years ago I implemented some regular expression functions to an algorithm
+suggested by Martin Richards. These were not Unix-like in form, and were quite
+restricted in what they could do by comparison with Perl. The interesting part
+about the algorithm was that the amount of space required to hold the compiled
+form of an expression was known in advance. The code to apply an expression did
+not operate by backtracking, as the original Henry Spencer code and current
+Perl code does, but instead checked all possibilities simultaneously by keeping
+a list of current states and checking all of them as it advanced through the
+subject string. In the terminology of Jeffrey Friedl's book, it was a "DFA
+algorithm", though it was not a traditional Finite State Machine (FSM). When
+the pattern was all used up, all remaining states were possible matches, and
+the one matching the longest subset of the subject string was chosen. This did
+not necessarily maximize the individual wild portions of the pattern, as is
+expected in Unix and Perl-style regular expressions.
+
+
+Historical note 2
+-----------------
+
+By contrast, the code originally written by Henry Spencer (which was
+subsequently heavily modified for Perl) compiles the expression twice: once in
+a dummy mode in order to find out how much store will be needed, and then for
+real. (The Perl version probably doesn't do this any more; I'm talking about
+the original library.) The execution function operates by backtracking and
+maximizing (or, optionally, minimizing in Perl) the amount of the subject that
+matches individual wild portions of the pattern. This is an "NFA algorithm" in
+Friedl's terminology.
+
+
+OK, here's the real stuff
+-------------------------
+
+For the set of functions that form the "basic" PCRE library (which are
+unrelated to those mentioned above), I tried at first to invent an algorithm
+that used an amount of store bounded by a multiple of the number of characters
+in the pattern, to save on compiling time. However, because of the greater
+complexity in Perl regular expressions, I couldn't do this. In any case, a
+first pass through the pattern is helpful for other reasons.
+
+
+Computing the memory requirement: how it was
+--------------------------------------------
+
+Up to and including release 6.7, PCRE worked by running a very degenerate first
+pass to calculate a maximum store size, and then a second pass to do the real
+compile - which might use a bit less than the predicted amount of memory. The
+idea was that this would turn out faster than the Henry Spencer code because
+the first pass is degenerate and the second pass can just store stuff straight
+into the vector, which it knows is big enough.
+
+
+Computing the memory requirement: how it is
+-------------------------------------------
+
+By the time I was working on a potential 6.8 release, the degenerate first pass
+had become very complicated and hard to maintain. Indeed one of the early
+things I did for 6.8 was to fix Yet Another Bug in the memory computation. Then
+I had a flash of inspiration as to how I could run the real compile function in
+a "fake" mode that enables it to compute how much memory it would need, while
+actually only ever using a few hundred bytes of working memory, and without too
+many tests of the mode that might slow it down. So I refactored the compiling
+functions to work this way. This got rid of about 600 lines of source. It
+should make future maintenance and development easier. As this was such a major
+change, I never released 6.8, instead upping the number to 7.0 (other quite
+major changes were also present in the 7.0 release).
+
+A side effect of this work was that the previous limit of 200 on the nesting
+depth of parentheses was removed. However, there is a downside: pcre_compile()
+runs more slowly than before (30% or more, depending on the pattern) because it
+is doing a full analysis of the pattern. My hope was that this would not be a
+big issue, and in the event, nobody has commented on it.
+
+
+Traditional matching function
+-----------------------------
+
+The "traditional", and original, matching function is called pcre_exec(), and
+it implements an NFA algorithm, similar to the original Henry Spencer algorithm
+and the way that Perl works. This is not surprising, since it is intended to be
+as compatible with Perl as possible. This is the function most users of PCRE
+will use most of the time.
+
+
+Supplementary matching function
+-------------------------------
+
+From PCRE 6.0, there is also a supplementary matching function called
+pcre_dfa_exec(). This implements a DFA matching algorithm that searches
+simultaneously for all possible matches that start at one point in the subject
+string. (Going back to my roots: see Historical Note 1 above.) This function
+intreprets the same compiled pattern data as pcre_exec(); however, not all the
+facilities are available, and those that are do not always work in quite the
+same way. See the user documentation for details.
+
+The algorithm that is used for pcre_dfa_exec() is not a traditional FSM,
+because it may have a number of states active at one time. More work would be
+needed at compile time to produce a traditional FSM where only one state is
+ever active at once. I believe some other regex matchers work this way.
+
+
+Changeable options
+------------------
+
+The /i, /m, or /s options (PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL) may
+change in the middle of patterns. From PCRE 8.13, their processing is handled
+entirely at compile time by generating different opcodes for the different
+settings. The runtime functions do not need to keep track of an options state
+any more.
+
+
+Format of compiled patterns
+---------------------------
+
+The compiled form of a pattern is a vector of bytes, containing items of
+variable length. The first byte in an item is an opcode, and the length of the
+item is either implicit in the opcode or contained in the data bytes that
+follow it.
+
+In many cases below LINK_SIZE data values are specified for offsets within the
+compiled pattern. The default value for LINK_SIZE is 2, but PCRE can be
+compiled to use 3-byte or 4-byte values for these offsets (impairing the
+performance). This is necessary only when patterns whose compiled length is
+greater than 64K are going to be processed. In this description, we assume the
+"normal" compilation options. Data values that are counts (e.g. for
+quantifiers) are always just two bytes long.
+
+Opcodes with no following data
+------------------------------
+
+These items are all just one byte long
+
+ OP_END end of pattern
+ OP_ANY match any one character other than newline
+ OP_ALLANY match any one character, including newline
+ OP_ANYBYTE match any single byte, even in UTF-8 mode
+ OP_SOD match start of data: \A
+ OP_SOM, start of match (subject + offset): \G
+ OP_SET_SOM, set start of match (\K)
+ OP_CIRC ^ (start of data)
+ OP_CIRCM ^ multiline mode (start of data or after newline)
+ OP_NOT_WORD_BOUNDARY \W
+ OP_WORD_BOUNDARY \w
+ OP_NOT_DIGIT \D
+ OP_DIGIT \d
+ OP_NOT_HSPACE \H
+ OP_HSPACE \h
+ OP_NOT_WHITESPACE \S
+ OP_WHITESPACE \s
+ OP_NOT_VSPACE \V
+ OP_VSPACE \v
+ OP_NOT_WORDCHAR \W
+ OP_WORDCHAR \w
+ OP_EODN match end of data or \n at end: \Z
+ OP_EOD match end of data: \z
+ OP_DOLL $ (end of data, or before final newline)
+ OP_DOLLM $ multiline mode (end of data or before newline)
+ OP_EXTUNI match an extended Unicode character
+ OP_ANYNL match any Unicode newline sequence
+
+ OP_ACCEPT ) These are Perl 5.10's "backtracking control
+ OP_COMMIT ) verbs". If OP_ACCEPT is inside capturing
+ OP_FAIL ) parentheses, it may be preceded by one or more
+ OP_PRUNE ) OP_CLOSE, followed by a 2-byte number,
+ OP_SKIP ) indicating which parentheses must be closed.
+
+
+Backtracking control verbs with data
+------------------------------------
+
+OP_THEN is followed by a LINK_SIZE offset, which is the distance back to the
+start of the current branch.
+
+OP_MARK is followed by the mark name, preceded by a one-byte length, and
+followed by a binary zero. For (*PRUNE), (*SKIP), and (*THEN) with arguments,
+the opcodes OP_PRUNE_ARG, OP_SKIP_ARG, and OP_THEN_ARG are used. For the first
+two, the name follows immediately; for OP_THEN_ARG, it follows the LINK_SIZE
+offset value.
+
+
+Matching literal characters
+---------------------------
+
+The OP_CHAR opcode is followed by a single character that is to be matched
+casefully. For caseless matching, OP_CHARI is used. In UTF-8 mode, the
+character may be more than one byte long. (Earlier versions of PCRE used
+multi-character strings, but this was changed to allow some new features to be
+added.)
+
+
+Repeating single characters
+---------------------------
+
+The common repeats (*, +, ?) when applied to a single character use the
+following opcodes, which come in caseful and caseless versions:
+
+ Caseful Caseless
+ OP_STAR OP_STARI
+ OP_MINSTAR OP_MINSTARI
+ OP_POSSTAR OP_POSSTARI
+ OP_PLUS OP_PLUSI
+ OP_MINPLUS OP_MINPLUSI
+ OP_POSPLUS OP_POSPLUSI
+ OP_QUERY OP_QUERYI
+ OP_MINQUERY OP_MINQUERYI
+ OP_POSQUERY OP_POSQUERYI
+
+In ASCII mode, these are two-byte items; in UTF-8 mode, the length is variable.
+Those with "MIN" in their name are the minimizing versions. Those with "POS" in
+their names are possessive versions. Each is followed by the character that is
+to be repeated. Other repeats make use of these opcodes:
+
+ Caseful Caseless
+ OP_UPTO OP_UPTOI
+ OP_MINUPTO OP_MINUPTOI
+ OP_POSUPTO OP_POSUPTOI
+ OP_EXACT OP_EXACTI
+
+Each of these is followed by a two-byte count (most significant first) and the
+repeated character. OP_UPTO matches from 0 to the given number. A repeat with a
+non-zero minimum and a fixed maximum is coded as an OP_EXACT followed by an
+OP_UPTO (or OP_MINUPTO or OPT_POSUPTO).
+
+
+Repeating character types
+-------------------------
+
+Repeats of things like \d are done exactly as for single characters, except
+that instead of a character, the opcode for the type is stored in the data
+byte. The opcodes are:
+
+ OP_TYPESTAR
+ OP_TYPEMINSTAR
+ OP_TYPEPOSSTAR
+ OP_TYPEPLUS
+ OP_TYPEMINPLUS
+ OP_TYPEPOSPLUS
+ OP_TYPEQUERY
+ OP_TYPEMINQUERY
+ OP_TYPEPOSQUERY
+ OP_TYPEUPTO
+ OP_TYPEMINUPTO
+ OP_TYPEPOSUPTO
+ OP_TYPEEXACT
+
+
+Match by Unicode property
+-------------------------
+
+OP_PROP and OP_NOTPROP are used for positive and negative matches of a
+character by testing its Unicode property (the \p and \P escape sequences).
+Each is followed by two bytes that encode the desired property as a type and a
+value.
+
+Repeats of these items use the OP_TYPESTAR etc. set of opcodes, followed by
+three bytes: OP_PROP or OP_NOTPROP and then the desired property type and
+value.
+
+
+Character classes
+-----------------
+
+If there is only one character, OP_CHAR or OP_CHARI is used for a positive
+class, and OP_NOT or OP_NOTI for a negative one (that is, for something like
+[^a]). However, in UTF-8 mode, the use of OP_NOT[I] applies only to characters
+with values < 128, because OP_NOT[I] is confined to single bytes.
+
+Another set of 13 repeating opcodes (called OP_NOTSTAR etc.) are used for a
+repeated, negated, single-character class. The normal single-character opcodes
+(OP_STAR, etc.) are used for a repeated positive single-character class.
+
+When there is more than one character in a class and all the characters are
+less than 256, OP_CLASS is used for a positive class, and OP_NCLASS for a
+negative one. In either case, the opcode is followed by a 32-byte bit map
+containing a 1 bit for every character that is acceptable. The bits are counted
+from the least significant end of each byte. In caseless mode, bits for both
+cases are set.
+
+The reason for having both OP_CLASS and OP_NCLASS is so that, in UTF-8 mode,
+subject characters with values greater than 256 can be handled correctly. For
+OP_CLASS they do not match, whereas for OP_NCLASS they do.
+
+For classes containing characters with values > 255, OP_XCLASS is used. It
+optionally uses a bit map (if any characters lie within it), followed by a list
+of pairs (for a range) and single characters. In caseless mode, both cases are
+explicitly listed. There is a flag character than indicates whether it is a
+positive or a negative class.
+
+
+Back references
+---------------
+
+OP_REF (caseful) or OP_REFI (caseless) is followed by two bytes containing the
+reference number.
+
+
+Repeating character classes and back references
+-----------------------------------------------
+
+Single-character classes are handled specially (see above). This section
+applies to OP_CLASS and OP_REF[I]. In both cases, the repeat information
+follows the base item. The matching code looks at the following opcode to see
+if it is one of
+
+ OP_CRSTAR
+ OP_CRMINSTAR
+ OP_CRPLUS
+ OP_CRMINPLUS
+ OP_CRQUERY
+ OP_CRMINQUERY
+ OP_CRRANGE
+ OP_CRMINRANGE
+
+All but the last two are just single-byte items. The others are followed by
+four bytes of data, comprising the minimum and maximum repeat counts. There are
+no special possessive opcodes for these repeats; a possessive repeat is
+compiled into an atomic group.
+
+
+Brackets and alternation
+------------------------
+
+A pair of non-capturing (round) brackets is wrapped round each expression at
+compile time, so alternation always happens in the context of brackets.
+
+[Note for North Americans: "bracket" to some English speakers, including
+myself, can be round, square, curly, or pointy. Hence this usage.]
+
+Non-capturing brackets use the opcode OP_BRA. Originally PCRE was limited to 99
+capturing brackets and it used a different opcode for each one. From release
+3.5, the limit was removed by putting the bracket number into the data for
+higher-numbered brackets. From release 7.0 all capturing brackets are handled
+this way, using the single opcode OP_CBRA.
+
+A bracket opcode is followed by LINK_SIZE bytes which give the offset to the
+next alternative OP_ALT or, if there aren't any branches, to the matching
+OP_KET opcode. Each OP_ALT is followed by LINK_SIZE bytes giving the offset to
+the next one, or to the OP_KET opcode. For capturing brackets, the bracket
+number immediately follows the offset, always as a 2-byte item.
+
+OP_KET is used for subpatterns that do not repeat indefinitely, while
+OP_KETRMIN and OP_KETRMAX are used for indefinite repetitions, minimally or
+maximally respectively (see below for possessive repetitions). All three are
+followed by LINK_SIZE bytes giving (as a positive number) the offset back to
+the matching bracket opcode.
+
+If a subpattern is quantified such that it is permitted to match zero times, it
+is preceded by one of OP_BRAZERO, OP_BRAMINZERO, or OP_SKIPZERO. These are
+single-byte opcodes that tell the matcher that skipping the following
+subpattern entirely is a valid branch. In the case of the first two, not
+skipping the pattern is also valid (greedy and non-greedy). The third is used
+when a pattern has the quantifier {0,0}. It cannot be entirely discarded,
+because it may be called as a subroutine from elsewhere in the regex.
+
+A subpattern with an indefinite maximum repetition is replicated in the
+compiled data its minimum number of times (or once with OP_BRAZERO if the
+minimum is zero), with the final copy terminating with OP_KETRMIN or OP_KETRMAX
+as appropriate.
+
+A subpattern with a bounded maximum repetition is replicated in a nested
+fashion up to the maximum number of times, with OP_BRAZERO or OP_BRAMINZERO
+before each replication after the minimum, so that, for example, (abc){2,5} is
+compiled as (abc)(abc)((abc)((abc)(abc)?)?)?, except that each bracketed group
+has the same number.
+
+When a repeated subpattern has an unbounded upper limit, it is checked to see
+whether it could match an empty string. If this is the case, the opcode in the
+final replication is changed to OP_SBRA or OP_SCBRA. This tells the matcher
+that it needs to check for matching an empty string when it hits OP_KETRMIN or
+OP_KETRMAX, and if so, to break the loop.
+
+Possessive brackets
+-------------------
+
+When a repeated group (capturing or non-capturing) is marked as possessive by
+the "+" notation, e.g. (abc)++, different opcodes are used. Their names all
+have POS on the end, e.g. OP_BRAPOS instead of OP_BRA and OP_SCPBRPOS instead
+of OP_SCBRA. The end of such a group is marked by OP_KETRPOS. If the minimum
+repetition is zero, the group is preceded by OP_BRAPOSZERO.
+
+
+Assertions
+----------
+
+Forward assertions are just like other subpatterns, but starting with one of
+the opcodes OP_ASSERT or OP_ASSERT_NOT. Backward assertions use the opcodes
+OP_ASSERTBACK and OP_ASSERTBACK_NOT, and the first opcode inside the assertion
+is OP_REVERSE, followed by a two byte count of the number of characters to move
+back the pointer in the subject string. When operating in UTF-8 mode, the count
+is a character count rather than a byte count. A separate count is present in
+each alternative of a lookbehind assertion, allowing them to have different
+fixed lengths.
+
+
+Once-only (atomic) subpatterns
+------------------------------
+
+These are also just like other subpatterns, but they start with the opcode
+OP_ONCE. The check for matching an empty string in an unbounded repeat is
+handled entirely at runtime, so there is just this one opcode.
+
+
+Conditional subpatterns <