From 7588059c7d3378baf60d12f3217324781b2f7669 Mon Sep 17 00:00:00 2001 From: Dov Grobgeld Date: Tue, 7 Nov 2017 21:55:06 +0200 Subject: Restored the old API and made it deprecated. * fribidi_get_par_embedding_levels() is now a deprecated interface to the new fribidi_get_par_embedding_levels_ex() function with a NULL pointer for the bracket type. * Removed warnings of unassigned return values from fribidi-vs-unicode test.c and test-character.c . --- fribidi-vs-unicode/test-character.c | 35 ++++++++++++++++++---------------- fribidi-vs-unicode/test.c | 38 ++++++++++++++++++++----------------- lib/fribidi-bidi.c | 2 +- lib/fribidi-bidi.h | 6 +++--- lib/fribidi-deprecated.c | 27 ++++++++++++++++++++++---- lib/fribidi-deprecated.h | 21 +++++++++++++++++--- 6 files changed, 85 insertions(+), 44 deletions(-) diff --git a/fribidi-vs-unicode/test-character.c b/fribidi-vs-unicode/test-character.c index a4087ee..545b7fa 100644 --- a/fribidi-vs-unicode/test-character.c +++ b/fribidi-vs-unicode/test-character.c @@ -298,21 +298,23 @@ main (int argc, char **argv) case 2: base_dir = FRIBIDI_PAR_ON; break; } - fribidi_get_par_embedding_levels (types, - bracket_types, - types_len, - &base_dir, - levels); + if (fribidi_get_par_embedding_levels_ex (types, + bracket_types, + types_len, + &base_dir, + levels)) + ; for (i = 0; i < types_len; i++) ltor[i] = i; - fribidi_reorder_line (0 /*FRIBIDI_FLAG_REORDER_NSM*/, - types, types_len, - 0, base_dir, - levels, - NULL, - ltor); + if (fribidi_reorder_line (0 /*FRIBIDI_FLAG_REORDER_NSM*/, + types, types_len, + 0, base_dir, + levels, + NULL, + ltor)) + ; j = 0; for (i = 0; i < types_len; i++) @@ -382,11 +384,12 @@ main (int argc, char **argv) case 2: base_dir = FRIBIDI_PAR_RTL; break; } - fribidi_get_par_embedding_levels (types, - bracket_types, - types_len, - &base_dir, - levels); + if (fribidi_get_par_embedding_levels_ex (types, + bracket_types, + types_len, + &base_dir, + levels)) + ; fribidi_set_debug (0); } diff --git a/fribidi-vs-unicode/test.c b/fribidi-vs-unicode/test.c index 35d74d2..8571142 100644 --- a/fribidi-vs-unicode/test.c +++ b/fribidi-vs-unicode/test.c @@ -274,21 +274,23 @@ main (int argc, char **argv) case 2: base_dir = FRIBIDI_PAR_RTL; break; } - fribidi_get_par_embedding_levels (types, - NULL, /* Brackets are not used in the BidiTest.txt file */ - types_len, - &base_dir, - levels); + if (fribidi_get_par_embedding_levels_ex (types, + NULL, /* Brackets are not used in the BidiTest.txt file */ + types_len, + &base_dir, + levels)) + ; for (i = 0; i < types_len; i++) ltor[i] = i; - fribidi_reorder_line (0 /*FRIBIDI_FLAG_REORDER_NSM*/, - types, types_len, - 0, base_dir, - levels, - NULL, - ltor); + if (fribidi_reorder_line (0 /*FRIBIDI_FLAG_REORDER_NSM*/, + types, types_len, + 0, base_dir, + levels, + NULL, + ltor)) + ; j = 0; for (i = 0; i < types_len; i++) @@ -347,7 +349,8 @@ main (int argc, char **argv) g_printerr (" %d", ltor[i]); g_printerr ("\n"); - if (debug) { + if (debug) + { FriBidiParType base_dir; fribidi_set_debug (1); @@ -358,11 +361,12 @@ main (int argc, char **argv) case 2: base_dir = FRIBIDI_PAR_RTL; break; } - fribidi_get_par_embedding_levels (types, - NULL, /* No bracket types */ - types_len, - &base_dir, - levels); + if (fribidi_get_par_embedding_levels_ex (types, + NULL, /* No bracket types */ + types_len, + &base_dir, + levels)) + ; fribidi_set_debug (0); } diff --git a/lib/fribidi-bidi.c b/lib/fribidi-bidi.c index 1814cb5..309c9df 100644 --- a/lib/fribidi-bidi.c +++ b/lib/fribidi-bidi.c @@ -504,7 +504,7 @@ static void free_pairing_nodes(FriBidiPairingNode *nodes) } FRIBIDI_ENTRY FriBidiLevel -fribidi_get_par_embedding_levels ( +fribidi_get_par_embedding_levels_ex ( /* input */ const FriBidiCharType *bidi_types, const FriBidiBracketType *bracket_types, diff --git a/lib/fribidi-bidi.h b/lib/fribidi-bidi.h index 1a4bbc5..d2692d7 100644 --- a/lib/fribidi-bidi.h +++ b/lib/fribidi-bidi.h @@ -68,8 +68,8 @@ FRIBIDI_ENTRY FriBidiParType fribidi_get_par_direction ( const FriBidiStrIndex len /* input string length */ ); -#define fribidi_get_par_embedding_levels FRIBIDI_NAMESPACE(get_par_embedding_levels) -/* fribidi_get_par_embedding_levels - get bidi embedding levels of a paragraph +#define fribidi_get_par_embedding_levels_ex FRIBIDI_NAMESPACE(get_par_embedding_levels_ex) +/* fribidi_get_par_embedding_levels_ex - get bidi embedding levels of a paragraph * * This function finds the bidi embedding levels of a single paragraph, * as defined by the Unicode Bidirectional Algorithm available at @@ -85,7 +85,7 @@ FRIBIDI_ENTRY FriBidiParType fribidi_get_par_direction ( * (memory allocation failure most probably). */ FRIBIDI_ENTRY FriBidiLevel -fribidi_get_par_embedding_levels ( +fribidi_get_par_embedding_levels_ex ( const FriBidiCharType *bidi_types, /* input list of bidi types as returned by fribidi_get_bidi_types() */ const FriBidiBracketType *bracket_types, /* input list of bracket types as returned by diff --git a/lib/fribidi-deprecated.c b/lib/fribidi-deprecated.c index b5ce074..a83b1cd 100644 --- a/lib/fribidi-deprecated.c +++ b/lib/fribidi-deprecated.c @@ -86,15 +86,13 @@ FRIBIDI_ENTRY FriBidiLevel fribidi_log2vis_get_embedding_levels ( const FriBidiCharType *bidi_types, /* input list of bidi types as returned by fribidi_get_bidi_types() */ - const FriBidiBracketType *bracket_types, /* input list of bidi types as returned by - fribidi_get_bracket_types() */ const FriBidiStrIndex len, /* input string length of the paragraph */ FriBidiParType *pbase_dir, /* requested and resolved paragraph * base direction */ FriBidiLevel *embedding_levels /* output list of embedding levels */ ) { - return fribidi_get_par_embedding_levels (bidi_types, bracket_types, len, pbase_dir, embedding_levels); + return fribidi_get_par_embedding_levels (bidi_types, len, pbase_dir, embedding_levels); } FRIBIDI_ENTRY FriBidiCharType @@ -241,7 +239,7 @@ fribidi_log2vis ( private_embedding_levels = true; } - max_level = fribidi_get_par_embedding_levels (bidi_types, bracket_types, len, pbase_dir, + max_level = fribidi_get_par_embedding_levels (bidi_types, len, pbase_dir, embedding_levels) - 1; if UNLIKELY (max_level < 0) goto out; @@ -316,6 +314,27 @@ out: return status ? max_level + 1 : 0; } +FRIBIDI_ENTRY FriBidiLevel +fribidi_get_par_embedding_levels ( + /* input */ + const FriBidiCharType *bidi_types, + const FriBidiStrIndex len, + /* input and output */ + FriBidiParType *pbase_dir, + /* output */ + FriBidiLevel *embedding_levels +) +{ + return fribidi_get_par_embedding_levels_ex (/* input */ + bidi_types, + NULL, /* No bracket_types */ + len, + /* input and output */ + pbase_dir, + /* output */ + embedding_levels); +} + #endif /* !FRIBIDI_NO_DEPRECATED */ /* Editor directions: diff --git a/lib/fribidi-deprecated.h b/lib/fribidi-deprecated.h index 171e279..e1e3078 100644 --- a/lib/fribidi-deprecated.h +++ b/lib/fribidi-deprecated.h @@ -107,15 +107,13 @@ /* fribidi_log2vis_get_embedding_levels - get embedding levels * - * Deprecated. Replaced by fribidi_get_par_embedding_levels. + * Deprecated. Replaced by fribidi_get_par_embedding_levels_ex. */ #define fribidi_log2vis_get_embedding_levels FRIBIDI_NAMESPACE(log2vis_get_embedding_levels) FRIBIDI_ENTRY FriBidiLevel fribidi_log2vis_get_embedding_levels ( const FriBidiCharType *bidi_types, /* input list of bidi types as returned by fribidi_get_bidi_types() */ - const FriBidiBracketType *bracket_types, /* input list of bidi types as returned by - fribidi_get_bracket_types() */ const FriBidiStrIndex len, /* input string length of the paragraph */ FriBidiParType *pbase_dir, /* requested and resolved paragraph * base direction */ @@ -213,6 +211,23 @@ fribidi_remove_bidi_marks ( FRIBIDI_GNUC_WARN_UNUSED FRIBIDI_GNUC_DEPRECATED; +#define fribidi_get_par_embedding_levels FRIBIDI_NAMESPACE(get_par_embedding_levels) +/* fribidi_get_par_embedding_levels - get bidi embedding levels of a paragraph + * + * Deprecated interface to fribidi_get_par_embedding_levels_ex(). Refer to + * it for documentation. + */ +FRIBIDI_ENTRY FriBidiLevel +fribidi_get_par_embedding_levels ( + const FriBidiCharType *bidi_types, /* input list of bidi types as returned by + fribidi_get_bidi_types() */ + const FriBidiStrIndex len, /* input string length of the paragraph */ + FriBidiParType *pbase_dir, /* requested and resolved paragraph + * base direction */ + FriBidiLevel *embedding_levels /* output list of embedding levels */ +) + FRIBIDI_GNUC_WARN_UNUSED FRIBIDI_GNUC_DEPRECATED; + #define UNI_MAX_BIDI_LEVEL FRIBIDI_BIDI_MAX_EXPLICIT_LEVEL #define UNI_LRM FRIBIDI_CHAR_LRM #define UNI_RLM FRIBIDI_CHAR_RLM -- cgit v1.2.1