2007-11-14 02:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/common.mak
  * harbour/source/codepage/Makefile
  + harbour/source/codepage/cpesmwin.c
  - harbour/source/codepage/cpesmwi.c
    * renamed

  * harbour/source/rtl/cdpapi.c
    ! do not use '~' as accented character marker if neither ACCENTED_EQUAL
      nor ACCENTED_INTERLEAVED is set - in some CPs '~' is a letter
    ! use '~' as accented character marker only if it exists in UPPER and
      LOWER letter sets - our CP code cannot properly decode letter sets
      when this condition is not true - it should be fixed (TOFIX)
    ! use '.' as multibyte character marker only if it exists in UPPER and
      LOWER letter sets - our CP code cannot properly decode letter sets
      when this condition is not true - it should be fixed (TOFIX)

  * harbour/source/codepage/cpeldos.c
  * harbour/source/codepage/cpelwin.c
    * updated accent marker upper letters to be the same as in lower ones
      Greek users should fix me.
This commit is contained in:
Przemyslaw Czerpak
2007-11-14 01:01:01 +00:00
parent 97bbd37551
commit 8ff94c3c3d
7 changed files with 32 additions and 7 deletions

View File

@@ -8,6 +8,28 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2007-11-14 02:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
* harbour/source/codepage/Makefile
+ harbour/source/codepage/cpesmwin.c
- harbour/source/codepage/cpesmwi.c
* renamed
* harbour/source/rtl/cdpapi.c
! do not use '~' as accented character marker if neither ACCENTED_EQUAL
nor ACCENTED_INTERLEAVED is set - in some CPs '~' is a letter
! use '~' as accented character marker only if it exists in UPPER and
LOWER letter sets - our CP code cannot properly decode letter sets
when this condition is not true - it should be fixed (TOFIX)
! use '.' as multibyte character marker only if it exists in UPPER and
LOWER letter sets - our CP code cannot properly decode letter sets
when this condition is not true - it should be fixed (TOFIX)
* harbour/source/codepage/cpeldos.c
* harbour/source/codepage/cpelwin.c
* updated accent marker upper letters to be the same as in lower ones
Greek users should fix me.
2007-11-14 00:51 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/make_gcc.sh
* harbour/make_gnu.sh

View File

@@ -736,7 +736,7 @@ CODEPAGE_LIB_OBJS = \
$(OBJ_DIR)\cpeldos$(OBJEXT) \
$(OBJ_DIR)\cpelwin$(OBJEXT) \
$(OBJ_DIR)\cpesdos$(OBJEXT) \
$(OBJ_DIR)\cpesmwi$(OBJEXT) \
$(OBJ_DIR)\cpesmwin$(OBJEXT) \
$(OBJ_DIR)\cpeswin$(OBJEXT) \
$(OBJ_DIR)\cpfrdos$(OBJEXT) \
$(OBJ_DIR)\cpgedos$(OBJEXT) \

View File

@@ -18,7 +18,7 @@ C_SOURCES=\
cpelwin.c \
cpesdos.c \
cpeswin.c \
cpesmwi.c \
cpesmwin.c \
cpfrdos.c \
cpgedos.c \
cpgewin.c \

View File

@@ -85,7 +85,7 @@
static HB_CODEPAGE s_codepage = { "EL",
HB_CPID_737, HB_UNITB_737, NUMBER_OF_CHARACTERS,
"€~ê<>ƒ„ë…†~쇈~퉊Œ<E280B9>Ž~î<><C3AE>“~–—~ð",
"€~ê<>ƒ„~ë…†~쇈~퉊Œ<E280B9>Ž~î<><C3AE>“~–—~ð",
"˜~ᙚ›œ~â<>ž~㟠~å¡¢£¤¥¦~槨©ª«¬~ç­®¯à~é",
IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL };

View File

@@ -86,7 +86,7 @@
static HB_CODEPAGE s_codepage = { "ELWIN",
HB_CPID_1253, HB_UNITB_1253, NUMBER_OF_CHARACTERS,
"Á~¢ÂÃÄŸÆÇ~¹ÈÉ~ºÊËÌÍÎÏ~¼ÐÑÓÓÔÕ~¾ÖרÙ~¿",
"Á~¢ÂÃÄÅ~¸ÆÇ~¹ÈÉ~ºÊËÌÍÎÏ~¼ÐÑÓÓÔÕ~¾ÖרÙ~¿",
"á~Üâãäå~Ýæç~Þèé~ßêëìíîï~üðñóòôõ~ýö÷øù~þ",
IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL };

View File

@@ -75,7 +75,7 @@
/* If ACCENTED_EQUAL or ACCENTED_INTERLEAVED is 1, you need to mark the
accented characters with the symbol '~' before each of them, for example:
a~
a~
If there is two-character sequence, which is considered as one, it should
be marked with '.' before and after it, for example:
... h.ch.i ...

View File

@@ -337,7 +337,8 @@ HB_EXPORT BOOL hb_cdpRegister( PHB_CODEPAGE cdpage )
}
for( i = ia = 1; *ptrUpper; i++, ia++, ptrUpper++, ptrLower++ )
{
if( *ptrUpper == '~' )
if( ( cdpage->lAccEqual || cdpage->lAccInterleave ) &&
*ptrUpper == '~' && *ptrLower == '~' )
{
for( ptr = ptrUpper + 1; *ptr; ptr++ )
*( ptr - 1 ) = *ptr;
@@ -348,7 +349,9 @@ HB_EXPORT BOOL hb_cdpRegister( PHB_CODEPAGE cdpage )
if( cdpage->lAccEqual )
i--;
}
else if( *ptrUpper == '.' )
else if( *ptrUpper == '.' && *ptrLower == '.' &&
ptrUpper[1] && ptrUpper[2] && ptrUpper[3] == '.' &&
ptrLower[1] && ptrLower[2] && ptrLower[3] == '.' )
{
multi[nMulti].cFirst[0] = *( ptrUpper + 1 );
multi[nMulti].cFirst[1] = *( ptrLower + 1 );