9 Commits

Author SHA1 Message Date
Le Philousophe
db8559ff3e COMMON: Initialize _pbase_dir in all constructors
Fixes bug #12337
2021-03-20 21:04:06 +01:00
Le Philousophe
75833aba29 COMMON: Don't use unavailable macros in unicode-bidi.h
Use Fribidi ones directly in implementation and tag the constructor as
"private"
Fix a warning on Common::CodePage
2021-03-15 16:29:28 +02:00
Orgad Shaneh
2de08c0717 COMMON: Fix FriBidiParType failure on 3ds
/data/src/master/common/unicode-bidi.cpp: In member function 'void
Common::UnicodeBiDiText::initWithU32String(const Common::U32String&)':
/data/src/master/common/unicode-bidi.cpp:78:3: error: invalid conversion
from 'uint32*' {aka 'unsigned int*'} to 'FriBidiParType*' {aka 'long
unsigned int*'} [-fpermissive]
   78 |   &_pbase_dir,
      |   ^~~~~~~~~~~
      |   |
      |   uint32* {aka unsigned int*}
2021-03-14 22:18:15 +01:00
Zvika Haramaty
dc5783c910 COMMON: Add String::forEachLine and convertBiDiStringByLines
`convertBiDiStringByLines` calls the BiDi algo for each line in isolation,
and returns a joined result.
That's needed to support BiDi in AGI, and might be needed for other engines
in the future.

In order to do that, a new utility function was added:
`String::forEachLine` which gets a function as input, and its arg(s) (if it has any),
and calls the function on each line, and returns a new string which is all
concatenation of all the lines results (with '\n' added between them).
2021-03-14 18:52:36 +01:00
aryanrawlani28
22842d1a88 GUI: RTL: Do not repeatedly print warnings if fribidi is not available
- Previously, if using an RTL-based language and disabled fribidi, console would repeatedly have the same messages spamming.
- Reduce this to only print warning one time.
2020-07-25 00:32:34 +02:00
SupSuper
4d855ff6c0 COMMON: Fix warning from incorrect parameter type in fribidi call
fribidi_log2vis takes a FriBidiParType, not a FriBidiCharType
(though the values are identical)
2020-07-21 07:11:09 +01:00
Philippe Valembois
66b8cf9cac COMMON: Fix build when uint32_t and uint32 are not defined the same
FriBidiChar is mapped to uint32_t (from stdint.h) while U32String is
composed of uint32 (from scummsys.h/config.h). On some platforms those
two types aren't defined using the same base type (long int vs int) and
compilation errors occur.
2020-06-07 12:02:55 +02:00
Zvika Haramaty
1f9d421558 COMMON: moved convertBiDiString(..lang) to unicode-bidi.h
Continuing the work at https://github.com/scummvm/scummvm/pull/2236,
which moved `convertBiDiString(..page)` to unicode-bidi.h,
now moving to there also the `(..lang)` flavour.

Thus, translation.h has only the SVM-GUI related function, and the
two util functions page+code are in unicode-bidi.
2020-05-19 12:32:58 +02:00
BLooperZ
ec83715b43 COMMON: add UnicodeBiDiText wrapper 2020-05-12 14:36:09 +02:00