prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  [request] pcre/8.44
  ### Package Details
    * Package Name/Version: **pcre/8.44**
    * Changelog: **http://www.pcre.org/original/changelog.txt**
  
  
  The above mentioned version is newly released by the upstream project and not yet available as a recipe. Please add this version.
  
  
  </issue>
  <code>
  [start of recipes/pcre/all/conanfile.py]
  1 from conans import ConanFile, CMake, tools
  2 import os
  3 
  4 
  5 class PCREConan(ConanFile):
  6     name = "pcre"
  7     url = "https://github.com/conan-io/conan-center-index"
  8     homepage = "https://www.pcre.org"
  9     description = "Perl Compatible Regular Expressions"
  10     topics = ("regex", "regexp", "PCRE")
  11     license = "BSD-3-Clause"
  12     exports_sources = ["CMakeLists.txt"]
  13     generators = "cmake"
  14     settings = "os", "arch", "compiler", "build_type"
  15     options = {
  16         "shared": [True, False],
  17         "fPIC": [True, False],
  18         "with_bzip2": [True, False],
  19         "with_zlib": [True, False],
  20         "with_jit": [True, False],
  21         "build_pcrecpp": [True, False],
  22         "build_pcregrep": [True, False],
  23         "with_utf": [True, False],
  24         "with_unicode_properties": [True, False]
  25     }
  26     default_options = {'shared': False, 'fPIC': True, 'with_bzip2': True, 'with_zlib': True, 'with_jit': False, 'build_pcrecpp': False, 'build_pcregrep': False, 'with_utf': False, 'with_unicode_properties': False}
  27     _source_subfolder = "source_subfolder"
  28     _build_subfolder = "build_subfolder"
  29 
  30     def config_options(self):
  31         if self.settings.os == "Windows":
  32             del self.options.fPIC
  33 
  34     def configure(self):
  35         if not self.options.build_pcrecpp:
  36             del self.settings.compiler.libcxx
  37             del self.settings.compiler.cppstd
  38         if self.options.with_unicode_properties:
  39             self.options.with_utf = True
  40 
  41     def patch_cmake(self):
  42         """Patch CMake file to avoid man and share during install stage
  43         """
  44         cmake_file = os.path.join(self._source_subfolder, "CMakeLists.txt")
  45         tools.replace_in_file(cmake_file, "INSTALL(FILES ${man1} DESTINATION man/man1)", "")
  46         tools.replace_in_file(cmake_file, "INSTALL(FILES ${man3} DESTINATION man/man3)", "")
  47         tools.replace_in_file(cmake_file, "INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)", "")
  48 
  49     def source(self):
  50         tools.get(**self.conan_data["sources"][self.version])
  51         extracted_dir = self.name + "-" + self.version
  52         os.rename(extracted_dir, self._source_subfolder)
  53         self.patch_cmake()
  54 
  55     def requirements(self):
  56         if self.options.with_bzip2:
  57             self.requires("bzip2/1.0.8")
  58         if self.options.with_zlib:
  59             self.requires("zlib/1.2.11")
  60 
  61     def _configure_cmake(self):
  62         cmake = CMake(self)
  63         cmake.definitions["PCRE_BUILD_TESTS"] = False
  64         cmake.definitions["PCRE_BUILD_PCREGREP"] = self.options.build_pcregrep
  65         cmake.definitions["PCRE_BUILD_PCRECPP"] = self.options.build_pcrecpp
  66         cmake.definitions["PCRE_SUPPORT_LIBZ"] = self.options.with_zlib
  67         cmake.definitions["PCRE_SUPPORT_LIBBZ2"] = self.options.with_bzip2
  68         cmake.definitions["PCRE_SUPPORT_JIT"] = self.options.with_jit
  69         cmake.definitions["PCRE_SUPPORT_UTF"] = self.options.with_utf
  70         cmake.definitions["PCRE_SUPPORT_UNICODE_PROPERTIES"] = self.options.with_unicode_properties
  71         cmake.definitions["PCRE_SUPPORT_LIBREADLINE"] = False
  72         cmake.definitions["PCRE_SUPPORT_LIBEDIT"] = False
  73         if self.settings.os == "Windows" and self.settings.compiler == "Visual Studio":
  74             cmake.definitions["PCRE_STATIC_RUNTIME"] = not self.options.shared and "MT" in self.settings.compiler.runtime
  75         cmake.configure(build_folder=self._build_subfolder)
  76         return cmake
  77 
  78     def build(self):
  79         cmake = self._configure_cmake()
  80         cmake.build()
  81 
  82     def package(self):
  83         self.copy(pattern="LICENCE", dst="licenses", src=self._source_subfolder)
  84         cmake = self._configure_cmake()
  85         cmake.install()
  86 
  87     def package_info(self):
  88         if self.settings.os == "Windows" and self.settings.build_type == 'Debug':
  89             self.cpp_info.libs = ['pcreposixd', 'pcred']
  90         else:
  91             self.cpp_info.libs = ['pcreposix', 'pcre']
  92         if not self.options.shared:
  93             self.cpp_info.defines.append("PCRE_STATIC=1")
  94         self.cpp_info.names['pkg_config'] = 'libpcre'
  95 
  96         self.cpp_info.names["cmake_find_package"] = "PCRE"
  97         self.cpp_info.names["cmake_find_package_multi"] = "PCRE"
  98
  [end of recipes/pcre/all/conanfile.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/recipes/pcre/all/conanfile.py b/recipes/pcre/all/conanfile.py
  --- a/recipes/pcre/all/conanfile.py
  +++ b/recipes/pcre/all/conanfile.py
  @@ -23,9 +23,25 @@
           "with_utf": [True, False],
           "with_unicode_properties": [True, False]
       }
  -    default_options = {'shared': False, 'fPIC': True, 'with_bzip2': True, 'with_zlib': True, 'with_jit': False, 'build_pcrecpp': False, 'build_pcregrep': False, 'with_utf': False, 'with_unicode_properties': False}
  -    _source_subfolder = "source_subfolder"
  -    _build_subfolder = "build_subfolder"
  +    default_options = {
  +        'shared': False,
  +        'fPIC': True,
  +        'with_bzip2': True,
  +        'with_zlib': True,
  +        'with_jit': False,
  +        'build_pcrecpp': False,
  +        'build_pcregrep': False,
  +        'with_utf': False,
  +        'with_unicode_properties': False
  +    }
  +
  +    @property
  +    def _source_subfolder(self):
  +        return "source_subfolder"
  +
  +    @property
  +    def _build_subfolder(self):
  +        return "build_subfolder"
   
       def config_options(self):
           if self.settings.os == "Windows":
  @@ -42,15 +58,17 @@
           """Patch CMake file to avoid man and share during install stage
           """
           cmake_file = os.path.join(self._source_subfolder, "CMakeLists.txt")
  -        tools.replace_in_file(cmake_file, "INSTALL(FILES ${man1} DESTINATION man/man1)", "")
  -        tools.replace_in_file(cmake_file, "INSTALL(FILES ${man3} DESTINATION man/man3)", "")
  -        tools.replace_in_file(cmake_file, "INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)", "")
  +        tools.replace_in_file(
  +            cmake_file, "INSTALL(FILES ${man1} DESTINATION man/man1)", "")
  +        tools.replace_in_file(
  +            cmake_file, "INSTALL(FILES ${man3} DESTINATION man/man3)", "")
  +        tools.replace_in_file(
  +            cmake_file, "INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)", "")
   
       def source(self):
           tools.get(**self.conan_data["sources"][self.version])
           extracted_dir = self.name + "-" + self.version
           os.rename(extracted_dir, self._source_subfolder)
  -        self.patch_cmake()
   
       def requirements(self):
           if self.options.with_bzip2:
  @@ -76,6 +94,7 @@
           return cmake
   
       def build(self):
  +        self.patch_cmake()
           cmake = self._configure_cmake()
           cmake.build()
  
verification_info: {"golden_diff": "diff --git a/recipes/pcre/all/conanfile.py b/recipes/pcre/all/conanfile.py\n--- a/recipes/pcre/all/conanfile.py\n+++ b/recipes/pcre/all/conanfile.py\n@@ -23,9 +23,25 @@\n         \"with_utf\": [True, False],\n         \"with_unicode_properties\": [True, False]\n     }\n-    default_options = {'shared': False, 'fPIC': True, 'with_bzip2': True, 'with_zlib': True, 'with_jit': False, 'build_pcrecpp': False, 'build_pcregrep': False, 'with_utf': False, 'with_unicode_properties': False}\n-    _source_subfolder = \"source_subfolder\"\n-    _build_subfolder = \"build_subfolder\"\n+    default_options = {\n+        'shared': False,\n+        'fPIC': True,\n+        'with_bzip2': True,\n+        'with_zlib': True,\n+        'with_jit': False,\n+        'build_pcrecpp': False,\n+        'build_pcregrep': False,\n+        'with_utf': False,\n+        'with_unicode_properties': False\n+    }\n+\n+    @property\n+    def _source_subfolder(self):\n+        return \"source_subfolder\"\n+\n+    @property\n+    def _build_subfolder(self):\n+        return \"build_subfolder\"\n \n     def config_options(self):\n         if self.settings.os == \"Windows\":\n@@ -42,15 +58,17 @@\n         \"\"\"Patch CMake file to avoid man and share during install stage\n         \"\"\"\n         cmake_file = os.path.join(self._source_subfolder, \"CMakeLists.txt\")\n-        tools.replace_in_file(cmake_file, \"INSTALL(FILES ${man1} DESTINATION man/man1)\", \"\")\n-        tools.replace_in_file(cmake_file, \"INSTALL(FILES ${man3} DESTINATION man/man3)\", \"\")\n-        tools.replace_in_file(cmake_file, \"INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)\", \"\")\n+        tools.replace_in_file(\n+            cmake_file, \"INSTALL(FILES ${man1} DESTINATION man/man1)\", \"\")\n+        tools.replace_in_file(\n+            cmake_file, \"INSTALL(FILES ${man3} DESTINATION man/man3)\", \"\")\n+        tools.replace_in_file(\n+            cmake_file, \"INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)\", \"\")\n \n     def source(self):\n         tools.get(**self.conan_data[\"sources\"][self.version])\n         extracted_dir = self.name + \"-\" + self.version\n         os.rename(extracted_dir, self._source_subfolder)\n-        self.patch_cmake()\n \n     def requirements(self):\n         if self.options.with_bzip2:\n@@ -76,6 +94,7 @@\n         return cmake\n \n     def build(self):\n+        self.patch_cmake()\n         cmake = self._configure_cmake()\n         cmake.build()\n", "issue": "[request] pcre/8.44\n### Package Details\r\n  * Package Name/Version: **pcre/8.44**\r\n  * Changelog: **http://www.pcre.org/original/changelog.txt**\r\n\r\n\r\nThe above mentioned version is newly released by the upstream project and not yet available as a recipe. Please add this version.\r\n\n", "before_files": [{"content": "from conans import ConanFile, CMake, tools\nimport os\n\n\nclass PCREConan(ConanFile):\n    name = \"pcre\"\n    url = \"https://github.com/conan-io/conan-center-index\"\n    homepage = \"https://www.pcre.org\"\n    description = \"Perl Compatible Regular Expressions\"\n    topics = (\"regex\", \"regexp\", \"PCRE\")\n    license = \"BSD-3-Clause\"\n    exports_sources = [\"CMakeLists.txt\"]\n    generators = \"cmake\"\n    settings = \"os\", \"arch\", \"compiler\", \"build_type\"\n    options = {\n        \"shared\": [True, False],\n        \"fPIC\": [True, False],\n        \"with_bzip2\": [True, False],\n        \"with_zlib\": [True, False],\n        \"with_jit\": [True, False],\n        \"build_pcrecpp\": [True, False],\n        \"build_pcregrep\": [True, False],\n        \"with_utf\": [True, False],\n        \"with_unicode_properties\": [True, False]\n    }\n    default_options = {'shared': False, 'fPIC': True, 'with_bzip2': True, 'with_zlib': True, 'with_jit': False, 'build_pcrecpp': False, 'build_pcregrep': False, 'with_utf': False, 'with_unicode_properties': False}\n    _source_subfolder = \"source_subfolder\"\n    _build_subfolder = \"build_subfolder\"\n\n    def config_options(self):\n        if self.settings.os == \"Windows\":\n            del self.options.fPIC\n\n    def configure(self):\n        if not self.options.build_pcrecpp:\n            del self.settings.compiler.libcxx\n            del self.settings.compiler.cppstd\n        if self.options.with_unicode_properties:\n            self.options.with_utf = True\n\n    def patch_cmake(self):\n        \"\"\"Patch CMake file to avoid man and share during install stage\n        \"\"\"\n        cmake_file = os.path.join(self._source_subfolder, \"CMakeLists.txt\")\n        tools.replace_in_file(cmake_file, \"INSTALL(FILES ${man1} DESTINATION man/man1)\", \"\")\n        tools.replace_in_file(cmake_file, \"INSTALL(FILES ${man3} DESTINATION man/man3)\", \"\")\n        tools.replace_in_file(cmake_file, \"INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)\", \"\")\n\n    def source(self):\n        tools.get(**self.conan_data[\"sources\"][self.version])\n        extracted_dir = self.name + \"-\" + self.version\n        os.rename(extracted_dir, self._source_subfolder)\n        self.patch_cmake()\n\n    def requirements(self):\n        if self.options.with_bzip2:\n            self.requires(\"bzip2/1.0.8\")\n        if self.options.with_zlib:\n            self.requires(\"zlib/1.2.11\")\n\n    def _configure_cmake(self):\n        cmake = CMake(self)\n        cmake.definitions[\"PCRE_BUILD_TESTS\"] = False\n        cmake.definitions[\"PCRE_BUILD_PCREGREP\"] = self.options.build_pcregrep\n        cmake.definitions[\"PCRE_BUILD_PCRECPP\"] = self.options.build_pcrecpp\n        cmake.definitions[\"PCRE_SUPPORT_LIBZ\"] = self.options.with_zlib\n        cmake.definitions[\"PCRE_SUPPORT_LIBBZ2\"] = self.options.with_bzip2\n        cmake.definitions[\"PCRE_SUPPORT_JIT\"] = self.options.with_jit\n        cmake.definitions[\"PCRE_SUPPORT_UTF\"] = self.options.with_utf\n        cmake.definitions[\"PCRE_SUPPORT_UNICODE_PROPERTIES\"] = self.options.with_unicode_properties\n        cmake.definitions[\"PCRE_SUPPORT_LIBREADLINE\"] = False\n        cmake.definitions[\"PCRE_SUPPORT_LIBEDIT\"] = False\n        if self.settings.os == \"Windows\" and self.settings.compiler == \"Visual Studio\":\n            cmake.definitions[\"PCRE_STATIC_RUNTIME\"] = not self.options.shared and \"MT\" in self.settings.compiler.runtime\n        cmake.configure(build_folder=self._build_subfolder)\n        return cmake\n\n    def build(self):\n        cmake = self._configure_cmake()\n        cmake.build()\n\n    def package(self):\n        self.copy(pattern=\"LICENCE\", dst=\"licenses\", src=self._source_subfolder)\n        cmake = self._configure_cmake()\n        cmake.install()\n\n    def package_info(self):\n        if self.settings.os == \"Windows\" and self.settings.build_type == 'Debug':\n            self.cpp_info.libs = ['pcreposixd', 'pcred']\n        else:\n            self.cpp_info.libs = ['pcreposix', 'pcre']\n        if not self.options.shared:\n            self.cpp_info.defines.append(\"PCRE_STATIC=1\")\n        self.cpp_info.names['pkg_config'] = 'libpcre'\n\n        self.cpp_info.names[\"cmake_find_package\"] = \"PCRE\"\n        self.cpp_info.names[\"cmake_find_package_multi\"] = \"PCRE\"\n", "path": "recipes/pcre/all/conanfile.py"}]}