Browse Source

fcl-passrc: fixed case of widechar

git-svn-id: trunk@41221 -
Mattias Gaertner 6 years ago
parent
commit
b47c58dddc
2 changed files with 6 additions and 2 deletions
  1. 2 2
      packages/fcl-passrc/src/pasresolver.pp
  2. 4 0
      packages/pastojs/tests/tcmodules.pas

+ 2 - 2
packages/fcl-passrc/src/pasresolver.pp

@@ -7902,9 +7902,9 @@ type
         exit(AddString(ExprEvaluator.GetUnicodeStr(TResEvalString(Value).S,Expr)))
       else
         begin
-        if fExprEvaluator.StringToOrd(Value,nil)>$ffff then
+        RangeStart:=fExprEvaluator.StringToOrd(Value,nil);
+        if RangeStart>$ffff then
           exit(false);
-        RangeStart:=ord(TResEvalString(Value).S[1]);
         RangeEnd:=RangeStart;
         end;
     {$endif}

+ 4 - 0
packages/pastojs/tests/tcmodules.pas

@@ -7789,6 +7789,7 @@ begin
   '  case s of',
   '  ''foo'': s:=h;',
   '  ''a''..''z'': h:=s;',
+  '  ''ў'', ''ё'': ;',
   '  ''Б''..''Я'': ;',
   '  end;',
   '']);
@@ -7804,6 +7805,7 @@ begin
     '  $mod.s = $mod.h}',
     ' else if (($tmp1.length === 1) && ($tmp1 >= "a") && ($tmp1 <= "z")) {',
     '  $mod.h = $mod.s}',
+    ' else if (($tmp1 === "ў") || ($tmp1 === "ё")) {}',
     ' else if (($tmp1.length === 1) && ($tmp1 >= "Б") && ($tmp1 <= "Я")) ;',
     '']));
 end;
@@ -7817,6 +7819,7 @@ begin
   '  case s of',
   '  ''a''..''z'': h:=s;',
   '  ''ä'': ;',
+  '  ''ў'', ''ё'': ;',
   '  ''Б''..''Я'': ;',
   '  end;',
   '']);
@@ -7831,6 +7834,7 @@ begin
     'if (($tmp1 >= "a") && ($tmp1 <= "z")) {',
     '  $mod.h = $mod.s}',
     ' else if ($tmp1 === "ä") {}',
+    ' else if (($tmp1 === "ў") || ($tmp1 === "ё")) {}',
     ' else if (($tmp1 >= "Б") && ($tmp1 <= "Я")) ;',
     '']));
 end;