mcpp index

compat.fribidi

#include

GNU FriBidi 1.0.16 — the Unicode bidirectional algorithm (UAX #9), the dependency pango needs for right-to-left text

#include <fribidi.h>
mcpp add compat.fribidi@1.0.16

Usage

From this repository's own test project — built and run by CI, not written for the website.

// compat.fribidi — the Unicode bidirectional algorithm, on text that needs it.
//
// WHAT THIS ASSERTS AND WHY
//
// The tables are the whole package. fribidi's seven `.tab.i` files encode the
// Unicode Character Database, and a build that compiled none of them would
// still link, still run, and quietly treat Arabic as left-to-right. So every
// check below asks the library a question whose answer is IN a table:
//
//   the Unicode version    fribidi-unicode-version.h, generated upstream
//   bidi character types   bidi-type.tab.i
//   base direction         the resolution algorithm over those types
//   visual reordering      UAX #9 itself, the reason pango needs this
//   mirroring              mirroring.tab.i — "(" becomes ")" in an RTL run
//   joining types          joining-type.tab.i, which shapes Arabic
//
// A pass here means the tarball's pre-generated tables really were compiled —
// the claim that lets this be a descriptor instead of a fork.

#ifdef __linux__

// ⚠️ WRAPPED IN extern "C". fribidi's public headers have no `extern "C"` of
// …

tests/examples/fribidi/tests/fribidi.cpp · project tests/examples/fribidi

Build

targets
fribidi (lib)
language
c++23
C standard
c11
import std
no
include dirs
mcpp_generated, */lib, *

Sources (1)

  • */lib/*.c

Generated files

  • mcpp_generated/config.h
  • mcpp_generated/fribidi-config.h

Versions

VersionPlatforms Mirrorssha256
1.0.16 latest Linux GLOBAL CN 1b1cde5b235d…