* Fix line typed with wrong CAPS LOCK * convert all UPPERCASE to LOWERCASE and vice versa L=CURLINE.3() N='' LOW=1 UP=LENGTH(L) IF BLOCK.1()='BOX' THEN DO LOW=BLOCK.3() UP=BLOCK.5() END DO I=LOW TO UP C=SUBSTR(L, I, 1) IF DATATYPE(C,'U') THEN C=LOWER(C) ELSE IF DATATYPE(C,'L') THEN C=UPPER(C) ELSE IF ISRUP(C) THEN C=RLOWER(C) ELSE IF ISRLOW(C) THEN C=RUPPER(C) N=N||C END 'R' OVERLAY(N,L,LOW) EXIT ISRUP:PROCEDURE /* Returns is letter is uppercase cyrillic */ PARSE ARG C RETURN SIGN(POS(C,XRANGE('€','Ÿ'))) ISRLOW:PROCEDURE /* Returns is letter is lowercase cyrillic */ PARSE ARG C LOW=XRANGE(' ','¯') || XRANGE('à','ï') RETURN SIGN(POS(C,LOW)) RLOWER:PROCEDURE /* Translate string to lowercase cyrillic */ PARSE ARG C LOW=XRANGE(' ','¯') || XRANGE('à','ï') RETURN TRANSLATE(C,LOW,XRANGE('€','Ÿ')) RUPPER:PROCEDURE /* Translate string to lowercase cyrillic */ PARSE ARG C LOW=XRANGE(' ','¯') || XRANGE('à','ï') RETURN TRANSLATE(C,XRANGE('€','Ÿ'),LOW)