platform/upstream/libHarfBuzzSharp.git
7 years agoFix vertical glyph origin with hb-ot-font
Behdad Esfahbod [Wed, 26 Oct 2016 15:44:16 +0000 (17:44 +0200)]
Fix vertical glyph origin with hb-ot-font

7 years agoFix vertical font metrics
Behdad Esfahbod [Wed, 26 Oct 2016 15:19:07 +0000 (17:19 +0200)]
Fix vertical font metrics

Ouch!

7 years ago1.3.3
Behdad Esfahbod [Wed, 26 Oct 2016 14:17:15 +0000 (16:17 +0200)]
1.3.3

7 years agoFix "make distcheck"
Behdad Esfahbod [Wed, 26 Oct 2016 14:04:30 +0000 (16:04 +0200)]
Fix "make distcheck"

7 years ago[ci] Fix appveyor.yml syntax error
Behdad Esfahbod [Wed, 26 Oct 2016 08:33:33 +0000 (10:33 +0200)]
[ci] Fix appveyor.yml syntax error

7 years ago[gobject] Update for new MATH structs
Behdad Esfahbod [Sun, 23 Oct 2016 12:39:43 +0000 (14:39 +0200)]
[gobject] Update for new MATH structs

7 years agoMerge pull request #352 from fred-wang/makefile-am
Khaled Hosny [Mon, 24 Oct 2016 21:31:36 +0000 (00:31 +0300)]
Merge pull request #352 from fred-wang/makefile-am

Remove inexistent file ttx file from test/api/Makefile.am

7 years agoRemove inexistent file ttx file from test/api/Makefile.am
Frédéric Wang [Mon, 24 Oct 2016 19:42:04 +0000 (21:42 +0200)]
Remove inexistent file ttx file from test/api/Makefile.am

7 years agoMerge pull request #349 from ebraminio/mergebackvcpkgpatches
Ebrahim Byagowi [Sat, 22 Oct 2016 08:53:05 +0000 (12:23 +0330)]
Merge pull request #349 from ebraminio/mergebackvcpkgpatches

[ci] Enable hb-freetype on Windows build tests

7 years ago[ci] Enable freetype on msvc using vcpkg
Ebrahim Byagowi [Fri, 21 Oct 2016 08:18:58 +0000 (11:48 +0330)]
[ci] Enable freetype on msvc using vcpkg

7 years agoMerge back @vlj's local patches of vcpkg
Ebrahim Byagowi [Tue, 18 Oct 2016 11:00:00 +0000 (14:30 +0330)]
Merge back @vlj's local patches of vcpkg

7 years agoMerge pull request #340 from ebraminio/nouniscribe
Ebrahim Byagowi [Fri, 14 Oct 2016 10:24:55 +0000 (13:54 +0330)]
Merge pull request #340 from ebraminio/nouniscribe

Make Uniscribe optional on nmake win32 builds

7 years agoMake Uniscribe optional on nmake win32 builds
Ebrahim Byagowi [Sun, 9 Oct 2016 05:36:05 +0000 (09:06 +0330)]
Make Uniscribe optional on nmake win32 builds

Most of harfbuzz clients don't need Uniscribe and DirectWrite support at all
as harfbuzz is a replacement for Uniscribe so Chromium and Firefox are using
harfbuzz without them on Windows.

This removal also helps win32 nmake clients to have reduced binary size and
libs count.

7 years agoFix configure on iOS
Behdad Esfahbod [Tue, 11 Oct 2016 20:45:22 +0000 (13:45 -0700)]
Fix configure on iOS

Fixes https://github.com/behdad/harfbuzz/issues/342

7 years agoMerge pull request #344 from ebraminio/fixmacci
Ebrahim Byagowi [Tue, 11 Oct 2016 13:53:41 +0000 (17:23 +0330)]
Merge pull request #344 from ebraminio/fixmacci

[ci] Whitelist more symbols and unbreak mac CI

7 years ago[ci] Whitelist more symbols and unbreak mac CI
Ebrahim Byagowi [Mon, 10 Oct 2016 13:57:52 +0000 (17:27 +0330)]
[ci] Whitelist more symbols and unbreak mac CI

Thanks to @khaledhosny, actually this is his work :)

7 years agoLFS (large file system?) support in hb-*shap*, hb-view
Behdad Esfahbod [Tue, 4 Oct 2016 21:53:17 +0000 (14:53 -0700)]
LFS (large file system?) support in hb-*shap*, hb-view

Fixes https://github.com/behdad/harfbuzz/issues/336

7 years agoFix dist
Behdad Esfahbod [Wed, 28 Sep 2016 17:17:27 +0000 (19:17 +0200)]
Fix dist

7 years agoAim math API for 1.3.3 instead of 1.4.0
Behdad Esfahbod [Wed, 28 Sep 2016 17:11:22 +0000 (19:11 +0200)]
Aim math API for 1.3.3 instead of 1.4.0

7 years agoFix building math docs (#335)
Khaled Hosny [Fri, 30 Sep 2016 11:01:24 +0000 (04:01 -0700)]
Fix building math docs (#335)

7 years agoRequire glib >= 2.38.0 for G_TEST_DIST
Behdad Esfahbod [Tue, 27 Sep 2016 15:56:35 +0000 (17:56 +0200)]
Require glib >= 2.38.0 for G_TEST_DIST

7 years agoMerge branch 'math'
Behdad Esfahbod [Tue, 27 Sep 2016 15:15:59 +0000 (17:15 +0200)]
Merge branch 'math'

Supercedes https://github.com/behdad/harfbuzz/pull/326
Fixes https://github.com/behdad/harfbuzz/pull/331

7 years ago[MATH] Fix more docs
Behdad Esfahbod [Tue, 27 Sep 2016 14:51:38 +0000 (16:51 +0200)]
[MATH] Fix more docs

7 years ago[MATH] Rename hb_math_*_t types to hb_ot_math_*_t
Behdad Esfahbod [Tue, 27 Sep 2016 14:44:22 +0000 (16:44 +0200)]
[MATH] Rename hb_math_*_t types to hb_ot_math_*_t

With this, I believe MATH table API is not ready to be merged.

7 years agoUpdate docs
Behdad Esfahbod [Tue, 27 Sep 2016 14:42:25 +0000 (16:42 +0200)]
Update docs

7 years agoDocument API for MathVariants (#330)
Frédéric Wang [Tue, 27 Sep 2016 13:28:35 +0000 (15:28 +0200)]
Document API for MathVariants (#330)

7 years agoAdd tests for get_mathvariant (#329)
Frédéric Wang [Tue, 27 Sep 2016 11:53:34 +0000 (13:53 +0200)]
Add tests for get_mathvariant (#329)

7 years ago1.3.2
Behdad Esfahbod [Tue, 27 Sep 2016 11:50:54 +0000 (13:50 +0200)]
1.3.2

7 years agoAdd tests for hb_ot_math_get_glyph_variants (#328)
Frédéric Wang [Tue, 27 Sep 2016 11:18:00 +0000 (13:18 +0200)]
Add tests for hb_ot_math_get_glyph_variants (#328)

7 years agoAllow building with graphite2 without pkg-config (#318)
Phil Krylov [Tue, 27 Sep 2016 10:38:49 +0000 (12:38 +0200)]
Allow building with graphite2 without pkg-config (#318)

7 years ago[MATH] Simplify test
Behdad Esfahbod [Tue, 27 Sep 2016 09:30:44 +0000 (11:30 +0200)]
[MATH] Simplify test

7 years agotest-ot-math: Use different scales for vertical and horizontal directions and add...
Frédéric Wang [Tue, 27 Sep 2016 09:02:08 +0000 (11:02 +0200)]
test-ot-math: Use different scales for vertical and horizontal directions and add test for hb_ot_math_get_min_connector_overlap. (#327)

7 years ago[MATH] Add HB_OT_MATH_SCRIPT
Behdad Esfahbod [Tue, 27 Sep 2016 08:58:08 +0000 (10:58 +0200)]
[MATH] Add HB_OT_MATH_SCRIPT

7 years ago[MATH] Enable tests for glyph-assembly italics-correction
Behdad Esfahbod [Mon, 26 Sep 2016 20:18:41 +0000 (22:18 +0200)]
[MATH] Enable tests for glyph-assembly italics-correction

7 years ago[MATH] Rename all API to hb_ot_math_*
Behdad Esfahbod [Mon, 26 Sep 2016 20:12:48 +0000 (22:12 +0200)]
[MATH] Rename all API to hb_ot_math_*

7 years ago[MATH] Move API from hb-ot-layout.h to hb-ot-math.h
Behdad Esfahbod [Mon, 26 Sep 2016 19:57:14 +0000 (21:57 +0200)]
[MATH] Move API from hb-ot-layout.h to hb-ot-math.h

7 years agoWhitespace
Behdad Esfahbod [Mon, 26 Sep 2016 19:53:25 +0000 (21:53 +0200)]
Whitespace

7 years ago[MATH] Wire up get_glyph_assembly()
Behdad Esfahbod [Mon, 26 Sep 2016 19:46:05 +0000 (21:46 +0200)]
[MATH] Wire up get_glyph_assembly()

7 years ago[MATH] Wire up get_glyph_variants()
Behdad Esfahbod [Mon, 26 Sep 2016 19:22:48 +0000 (21:22 +0200)]
[MATH] Wire up get_glyph_variants()

7 years ago[MATH] Start fleshing out glyph variant API
Behdad Esfahbod [Mon, 26 Sep 2016 16:51:47 +0000 (17:51 +0100)]
[MATH] Start fleshing out glyph variant API

7 years ago[MATH] Clean up math variants
Behdad Esfahbod [Mon, 26 Sep 2016 15:10:08 +0000 (16:10 +0100)]
[MATH] Clean up math variants

7 years agoMATH table: Add API to access math variants.
Frédéric Wang [Thu, 25 Aug 2016 09:17:50 +0000 (11:17 +0200)]
MATH table: Add API to access math variants.

7 years agoUse G_TEST_DIST to build the path of math test fonts
Frédéric Wang [Mon, 26 Sep 2016 09:51:36 +0000 (11:51 +0200)]
Use G_TEST_DIST to build the path of math test fonts

7 years ago[MATH] Fix get_kerning() with negative y-scale
Behdad Esfahbod [Mon, 26 Sep 2016 12:39:58 +0000 (13:39 +0100)]
[MATH] Fix get_kerning() with negative y-scale

7 years ago[MATH] Clean up get_kerning()
Behdad Esfahbod [Mon, 26 Sep 2016 12:31:47 +0000 (13:31 +0100)]
[MATH] Clean up get_kerning()

7 years ago[MATH] Clean up get_top_accent_attachment()
Behdad Esfahbod [Mon, 26 Sep 2016 11:18:32 +0000 (12:18 +0100)]
[MATH] Clean up get_top_accent_attachment()

Note, the function now returns "half of horizontal advance width"
if top accent attachment for glyph is not explicitly defined.
This is what the spec requires.  Updated tests.

7 years ago[MATH] Clean up get_italics_correction()
Behdad Esfahbod [Mon, 26 Sep 2016 11:12:41 +0000 (12:12 +0100)]
[MATH] Clean up get_italics_correction()

7 years ago[MATH] Clean up a bit more
Behdad Esfahbod [Mon, 26 Sep 2016 11:07:29 +0000 (12:07 +0100)]
[MATH] Clean up a bit more

7 years ago[MATH] Clean up get_math_constant implementation
Behdad Esfahbod [Mon, 26 Sep 2016 10:56:40 +0000 (11:56 +0100)]
[MATH] Clean up get_math_constant implementation

7 years ago[MATH] Cleanup previous commit a bit
Behdad Esfahbod [Mon, 26 Sep 2016 10:47:05 +0000 (11:47 +0100)]
[MATH] Cleanup previous commit a bit

7 years agoMATH Table: Add API to access glyph info.
Frédéric Wang [Thu, 25 Aug 2016 09:15:31 +0000 (11:15 +0200)]
MATH Table: Add API to access glyph info.

7 years ago[MATH] Fixup math constants commit a bit more
Behdad Esfahbod [Mon, 26 Sep 2016 10:24:39 +0000 (11:24 +0100)]
[MATH] Fixup math constants commit a bit more

7 years ago[MATH] Fixups for math constants commit
Behdad Esfahbod [Mon, 26 Sep 2016 10:15:59 +0000 (11:15 +0100)]
[MATH] Fixups for math constants commit

7 years agoMATH Table: Add API to access math contants.
Frédéric Wang [Thu, 25 Aug 2016 09:06:41 +0000 (11:06 +0200)]
MATH Table: Add API to access math contants.

7 years ago[MATH] Fixups for previous commit
Behdad Esfahbod [Mon, 26 Sep 2016 09:45:58 +0000 (10:45 +0100)]
[MATH] Fixups for previous commit

7 years agoMATH Table: Add API to check availability of math data.
Frédéric Wang [Thu, 25 Aug 2016 08:47:15 +0000 (10:47 +0200)]
MATH Table: Add API to check availability of math data.

7 years agoUpdate detectenv-msvc.mak (#316)
Gregory Morse [Mon, 12 Sep 2016 08:22:15 +0000 (10:22 +0200)]
Update detectenv-msvc.mak (#316)

Windows x86 ARM capability

7 years ago[coretext] Use intended coretext version check logic (#315)
Ebrahim Byagowi [Fri, 9 Sep 2016 18:58:28 +0000 (23:28 +0430)]
[coretext] Use intended coretext version check logic (#315)

7 years agoTry to unbreak building on older macOS again (#314)
Khaled Hosny [Thu, 8 Sep 2016 01:44:37 +0000 (04:44 +0300)]
Try to unbreak building on older macOS again (#314)

7 years ago1.3.1
Behdad Esfahbod [Wed, 7 Sep 2016 21:28:47 +0000 (14:28 -0700)]
1.3.1

7 years agoDo reconfigure the cascade list for Emoji font on OS X 10.9.5 (#313)
Dominik Röttsches [Wed, 7 Sep 2016 20:56:57 +0000 (23:56 +0300)]
Do reconfigure the cascade list for Emoji font on OS X 10.9.5 (#313)

This seems to fix crash issues on 10.9.5 reported on Chrome, compare
crbug.com/549610

7 years agoBlacklist Padauk 2.80 and 3.00 (#311)
Dominik Röttsches [Mon, 5 Sep 2016 08:27:25 +0000 (11:27 +0300)]
Blacklist Padauk 2.80 and 3.00 (#311)

According to comments in issue #305 broken GDEF tables lead
to incorrect rendering of Latin characters. Blacklisting
this font.

7 years ago[ci] Add msys2 build to CI and run its testsuite on Windows (#310)
Ebrahim Byagowi [Thu, 1 Sep 2016 20:51:48 +0000 (01:21 +0430)]
[ci] Add msys2 build to CI and run its testsuite on Windows (#310)

7 years ago[dwrite] Minor, don't include unnecessary headers (#309)
Ebrahim Byagowi [Thu, 1 Sep 2016 15:35:45 +0000 (20:05 +0430)]
[dwrite] Minor, don't include unnecessary headers (#309)

7 years ago[ci] Add Windows CI support, provided by AppVeyor (#308)
Ebrahim Byagowi [Thu, 1 Sep 2016 13:01:16 +0000 (17:31 +0430)]
[ci] Add Windows CI support, provided by AppVeyor (#308)

7 years agoShow the shaper name in the debug message (#306)
Khaled Hosny [Sat, 27 Aug 2016 13:38:42 +0000 (16:38 +0300)]
Show the shaper name in the debug message (#306)

7 years agoMerge pull request #303 from behdad/fonnapa
Sascha Brawer [Thu, 18 Aug 2016 20:33:14 +0000 (22:33 +0200)]
Merge pull request #303 from behdad/fonnapa

Support Americanist Phonetic Notation

7 years agoSupport Americanist Phonetic Notation
Sascha Brawer [Thu, 18 Aug 2016 10:48:38 +0000 (12:48 +0200)]
Support Americanist Phonetic Notation

OpenType language system tag: `APPH`
https://www.microsoft.com/typography/otspec/languagetags.htm

IETF BCP47 variant tag: `fonnapa`
http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

7 years agoMerge pull request #302 from khaledhosny/master
Sascha Brawer [Thu, 18 Aug 2016 11:59:38 +0000 (13:59 +0200)]
Merge pull request #302 from khaledhosny/master

[travis] Fix MacOS libtool issue

7 years ago[coretext] Blind fix for build on MacOS 10.9
Khaled Hosny [Tue, 16 Aug 2016 01:09:04 +0000 (03:09 +0200)]
[coretext] Blind fix for build on MacOS 10.9

7 years ago[travis] Fix MacOS libtool issue
Khaled Hosny [Tue, 16 Aug 2016 00:49:48 +0000 (02:49 +0200)]
[travis] Fix MacOS libtool issue

Reveals another MacOS build breakage in the Core Text shaper.

7 years agoFix build
Behdad Esfahbod [Tue, 9 Aug 2016 20:03:14 +0000 (13:03 -0700)]
Fix build

7 years agoActually add test
Behdad Esfahbod [Tue, 9 Aug 2016 01:08:08 +0000 (18:08 -0700)]
Actually add test

7 years agoAdd tests for Chinese language tags
Behdad Esfahbod [Tue, 9 Aug 2016 01:06:09 +0000 (18:06 -0700)]
Add tests for Chinese language tags

Using font from https://github.com/behdad/harfbuzz/issues/300

7 years agoMap Macao to ZHH lang tag
Behdad Esfahbod [Tue, 9 Aug 2016 00:57:06 +0000 (17:57 -0700)]
Map Macao to ZHH lang tag

Fixes https://github.com/behdad/harfbuzz/issues/300

7 years agoLimit bits-per-feature to eight
Behdad Esfahbod [Tue, 9 Aug 2016 00:28:54 +0000 (17:28 -0700)]
Limit bits-per-feature to eight

Limits number of alternatives per glyph per feature to 255, so be it.
That's better than possibly breaking shaping because of one bad feature
value.

7 years agoFix sign of shift operators
Behdad Esfahbod [Tue, 9 Aug 2016 00:24:04 +0000 (17:24 -0700)]
Fix sign of shift operators

This one:

  map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit);

before the fix, the shift was done as an int, causing overflow
if it ever got to 1 << 31.  Sprinkle 'u's around.

Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805

7 years agoMap zh-Hant-HK to ZHH
Behdad Esfahbod [Mon, 8 Aug 2016 23:51:08 +0000 (16:51 -0700)]
Map zh-Hant-HK to ZHH

Fixes https://github.com/behdad/harfbuzz/issues/300

8 years agoDon’t build UCDN support when building with GLib (#296)
Khaled Hosny [Thu, 21 Jul 2016 23:26:54 +0000 (02:26 +0300)]
Don’t build UCDN support when building with GLib (#296)

Regression from: b424b6c372dfe4c0ed75a49761eb34a416819446.

8 years ago[coretext] "Fix" crashes on CoreText < 10.10
Behdad Esfahbod [Sat, 23 Jul 2016 00:41:43 +0000 (17:41 -0700)]
[coretext] "Fix" crashes on CoreText < 10.10

Fixes https://github.com/behdad/harfbuzz/issues/297

8 years ago1.3.0
Behdad Esfahbod [Thu, 21 Jul 2016 08:58:00 +0000 (01:58 -0700)]
1.3.0

8 years ago[ucdn] Update to Unicode 9.0.0
Behdad Esfahbod [Thu, 21 Jul 2016 08:23:33 +0000 (01:23 -0700)]
[ucdn] Update to Unicode 9.0.0

Fixes https://github.com/grigorig/ucdn/issues/12

8 years agoBlacklist GDEF tables of more fonts
jfkthame [Wed, 15 Jun 2016 23:10:42 +0000 (00:10 +0100)]
Blacklist GDEF tables of more fonts

This is based on bug reports that have been filed against Firefox since it
updated to a version of harfbuzz that uses zeroing by GDEF rather than by
Unicode. I'm sure there are a bunch more font versions that should also be
included; these are just the ones I have on hand and have confirmed as having
bad GDEF data.

Given how the list here is growing, I think we should reconsider the approach,
and perhaps revert to zeroing by Unicode instead.

Fixes https://github.com/behdad/harfbuzz/issues/264
Fixes https://github.com/behdad/harfbuzz/pull/266

8 years agoImplement symbol cmap in ft and ot fonts
Behdad Esfahbod [Wed, 20 Jul 2016 09:35:54 +0000 (02:35 -0700)]
Implement symbol cmap in ft and ot fonts

Fixes https://github.com/behdad/harfbuzz/issues/236
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=627953

8 years agoClean up buffer area when rewinding
Behdad Esfahbod [Wed, 20 Jul 2016 08:43:56 +0000 (01:43 -0700)]
Clean up buffer area when rewinding

Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=614647
If allocation fails, we might be leaving junk behind.  At least
clear it up.

8 years agoWhitespace
Behdad Esfahbod [Tue, 12 Jul 2016 18:18:26 +0000 (11:18 -0700)]
Whitespace

8 years ago[coretext] Speculative fix for CoreText nullptr access (#288)
Ebrahim Byagowi [Mon, 11 Jul 2016 23:19:21 +0000 (03:49 +0430)]
[coretext] Speculative fix for CoreText nullptr access (#288)

8 years ago[ft] Fix unsafe cast of FT_Done_Face in hb_ft_{face,font}_create_referenced (#289)
Birunthan Mohanathas [Mon, 11 Jul 2016 20:38:23 +0000 (13:38 -0700)]
[ft] Fix unsafe cast of FT_Done_Face in hb_ft_{face,font}_create_referenced (#289)

Prior to this change the function `FT_Error FT_Done_Face(FT_Face *)` was
called through a pointer with the signature `void (void *)` resulting in
undefined behaviour.

8 years agoclang in MSVC mode doesn't like when we redefine __attribute__ (#283)
Steve Lhomme [Mon, 11 Jul 2016 19:57:26 +0000 (21:57 +0200)]
clang in MSVC mode doesn't like when we redefine __attribute__ (#283)

8 years agoMerge pull request #286 from khaledhosny/gi-tag_from_string
Behdad Esfahbod [Sat, 2 Jul 2016 00:09:28 +0000 (17:09 -0700)]
Merge pull request #286 from khaledhosny/gi-tag_from_string

[introspection] Fix hb_tag_from_string annotation

8 years ago[introspection] Fix hb_tag_from_string annotation
Khaled Hosny [Fri, 1 Jul 2016 22:04:57 +0000 (00:04 +0200)]
[introspection] Fix hb_tag_from_string annotation

8 years ago[python] Use utf-32 / utf-16 based on build of Python
Behdad Esfahbod [Thu, 30 Jun 2016 18:01:22 +0000 (11:01 -0700)]
[python] Use utf-32 / utf-16 based on build of Python

Fixes https://github.com/behdad/harfbuzz/pull/271

8 years agoComments
Behdad Esfahbod [Thu, 30 Jun 2016 16:46:52 +0000 (09:46 -0700)]
Comments

8 years agoMerge pull request #268 from drott/conflictingFontFix
Behdad Esfahbod [Thu, 30 Jun 2016 16:41:03 +0000 (09:41 -0700)]
Merge pull request #268 from drott/conflictingFontFix

Discard reconfigured CTFont if URL changes

8 years agoMerge branch 'master' into conflictingFontFix
Dominik Röttsches [Wed, 29 Jun 2016 10:10:41 +0000 (12:10 +0200)]
Merge branch 'master' into conflictingFontFix

8 years ago[gobject] Fix a few warnings
Behdad Esfahbod [Wed, 29 Jun 2016 04:00:37 +0000 (21:00 -0700)]
[gobject] Fix a few warnings

Part of https://github.com/behdad/harfbuzz/issues/277

8 years agoMerge pull request #280 from behdad/revert-271-patch-2
Behdad Esfahbod [Wed, 29 Jun 2016 04:15:28 +0000 (21:15 -0700)]
Merge pull request #280 from behdad/revert-271-patch-2

Revert "use utf32"

8 years agoRevert "use utf32"
Behdad Esfahbod [Wed, 29 Jun 2016 04:14:38 +0000 (21:14 -0700)]
Revert "use utf32"

8 years agoMerge branch 'master' into conflictingFontFix
Dominik Röttsches [Tue, 28 Jun 2016 07:52:18 +0000 (09:52 +0200)]
Merge branch 'master' into conflictingFontFix

8 years agoMerge pull request #273 from ebraminio/master
Behdad Esfahbod [Mon, 27 Jun 2016 18:33:27 +0000 (14:33 -0400)]
Merge pull request #273 from ebraminio/master

[dwrite] Use stream font loader instead GDI interop