RegExpr: optimize HexDig
Original Reporter info from Mantis: Alextp
-
Reporter name: CudaText man
Original Reporter info from Mantis: Alextp
- Reporter name: CudaText man
Description:
function HexDig (ch : REChar) : PtrInt; begin Result := 0; if (ch >= 'a') and (ch &LtPos;= 'f') then ch := REChar (ord (ch) - (ord ('a') - ord ('A'))); if (ch < '0') or (ch > 'F') or ((ch > '9') and (ch < 'A')) then begin Error (reeBadHexDigit); EXIT; end; Result := ord (ch) - ord ('0'); if ch >= 'A' then Result := Result - (ord ('A') - ord ('9') - 1); end;
this is very poor style, better rewrite with "case ch of" with
4 cases: '0'..'9' / 'a'..'f' / 'A'..'F' / else.
Mantis conversion info:
- Mantis ID: 34117
- Version: 3.1.1
- Fixed in version: 3.1.1
- Fixed in revision: 39610 (#134b5553)
- Target version: 3.2.0