php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #75441 php_unicode.h not available
Submitted: 2017-10-25 15:36 UTC Modified: 2017-10-25 18:41 UTC
From: colin at viebrock dot ca Assigned:
Status: Open Package: mbstring related
PHP Version: 7.1.11RC1 OS: OS X
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2017-10-25 15:36 UTC] colin at viebrock dot ca
Description:
------------
I'm trying to write a C extension for PHP that would benefit from using the php_unicode_convert_case() function defined in ext/mbstring/php_unicode.h.

However, this header file does not seem to be exported or made available in the Homebrew installation of PHP (see https://github.com/Homebrew/homebrew-php/issues/4537), nor does it seem to be available in any Ubuntu packages (apart from hhvm-dev).

Is there a way to either change the header files installed by this package to include php_unicode.h, or is there some other way I can get multi-byte case conversion functions available to my C extension?

Test script:
---------------
#include "ext/mbstring/php_unicode.h"

Expected result:
----------------
Running "make" on my extension should build the .so file.

Actual result:
--------------
fatal error: 'ext/mbstring/php_unicode.h' file
      not found
#include "ext/mbstring/php_unicode.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-10-25 16:08 UTC] danack@php.net
From that issue
---------------

They are not listed in the configure files

➜  mbstring git:(master) ✗ grep PHP_INSTALL_HEADERS *
config.m4:  PHP_INSTALL_HEADERS([ext/mbstring], [$PHP_MBSTRING_INSTALL_HEADERS])
config.w32:		PHP_INSTALL_HEADERS("ext/mbstring", "mbstring.h oniguruma/oniguruma.h php_mbregex.h php_onig_compat.h");
config.w32:		PHP_INSTALL_HEADERS("ext/mbstring", "mbstring.h oniguruma/oniguruma.h php_mbregex.h php_onig_compat.h libmbfl/config.h libmbfl/mbfl/eaw_table.h libmbfl/mbfl/mbfilter.h libmbfl/mbfl/mbfilter_8bit.h libmbfl/mbfl/mbfilter_pass.h libmbfl/mbfl/mbfilter_wchar.h libmbfl/mbfl/mbfl_allocators.h libmbfl/mbfl/mbfl_consts.h libmbfl/mbfl/mbfl_convert.h libmbfl/mbfl/mbfl_defs.h libmbfl/mbfl/mbfl_encoding.h libmbfl/mbfl/mbfl_filter_output.h libmbfl/mbfl/mbfl_ident.h libmbfl/mbfl/mbfl_language.h libmbfl/mbfl/mbfl_memory_device.h libmbfl/mbfl/mbfl_string.h");
config.w32:		PHP_INSTALL_HEADERS("ext/mbstring", "php_mbregex.h");
so if they are required it seems to be an upstream issue.

--------------

So maybe it just needs to be listed.
 [2017-10-25 18:41 UTC] colin at viebrock dot ca
I suspect you are right, but I don't know enough to say if there are any consequences of doing so. Thus, my bug report. :)
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Wed Jun 19 11:01:29 2019 UTC