Project

General

Profile

Bug #10678

~u#### escape sequences which have no equivalent in the cpinternal should be not converted

Added by Delia Mitric 10 months ago. Updated 10 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:
reviewer:
production:
No
env_name:
topics:

Related issues

Related to Base Language - Bug #4766: fix CHR and ASC WIP

History

#1 Updated by Delia Mitric 10 months ago

Testcase:
cpinternal = ISO8859-1

FUNCTION toHex RETURNS CHARACTER (INPUT vInt AS INTEGER):
   IF vInt = 0 THEN RETURN "00". /* Ensure two-digit hex */
   IF vInt = ? THEN RETURN "??".

   DEFINE VARIABLE hexDigits AS CHARACTER INITIAL "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F".
   DEFINE VARIABLE hexResult AS CHARACTER.
   DEFINE VARIABLE r AS INTEGER NO-UNDO.
   DO WHILE vInt > 0:
      r = vInt MODULO 16.
      hexResult = ENTRY(r + 1, hexDigits) + hexResult.
      vInt = TRUNCATE(vInt / 16, 0).
   END.

   /* Pad to ensure two digits */
   IF LENGTH(hexResult) = 1 THEN hexResult = "0" + hexResult.
   IF hexResult = "" THEN hexResult = "00".
   RETURN hexResult.
END FUNCTION.

DEF VAR m AS RAW.
DEF VAR txt AS CHARACTER NO-UNDO.
txt = "~u2591". //a character which is not encoded in ISO8859-1

PUT-STRING(m, 1) = txt.
MESSAGE txt. //will display "~u2591" 
MESSAGE "Hex representation of the character: " + toHex(GET-BYTE(m, 1))  + toHex(GET-BYTE(m, 2)) + toHex(GET-BYTE(m, 3)) + toHex(GET-BYTE(m, 4)) + toHex(GET-BYTE(m, 5)) + toHex(GET-BYTE(m, 6)). // will display 7E 75 32 35 39 31

See #4766-161, #4766-164 and #4766-165 for more details.

#2 Updated by Greg Shah 10 months ago

  • Related to Bug #4766: fix CHR and ASC added

Also available in: Atom PDF