?? RIGHT := 110 ??
MODULE osm$character_translation_mgr;

{ NOTE:  OSM$CHARACTER_TRANSLATION_MGR cannot be moved to system core because      }
{ the tables OSV$LOWER_TO_UPPER and OSV$UPPER_TO_LOWER must be able to be changed  }
{ on a job by job basis.                                                           }

*IF NOT $true(osv$unix)
*copyc oss$job_paged_literal
*copyc oss$task_shared
*IFEND

?? NEWTITLE := 'osv$lower_to_upper_26', EJECT ??

  VAR
*IF NOT $true(osv$unix)
    osv$lower_to_upper_26: [XDCL, #GATE, READ, oss$job_paged_literal] string (256) := $CHAR (00) CAT
*ELSE
    osv$lower_to_upper_26: [XDCL, #GATE, READ] string (256) := $CHAR (00) CAT
*IFEND
          $CHAR (01) CAT $CHAR (02) CAT $CHAR (03) CAT $CHAR (04) CAT $CHAR (05) CAT $CHAR (06) CAT
          $CHAR (07) CAT $CHAR (08) CAT $CHAR (09) CAT $CHAR (10) CAT $CHAR (11) CAT $CHAR (12) CAT
          $CHAR (13) CAT $CHAR (14) CAT $CHAR (15) CAT $CHAR (16) CAT $CHAR (17) CAT $CHAR (18) CAT
          $CHAR (19) CAT $CHAR (20) CAT $CHAR (21) CAT $CHAR (22) CAT $CHAR (23) CAT $CHAR (24) CAT
          $CHAR (25) CAT $CHAR (26) CAT $CHAR (27) CAT $CHAR (28) CAT $CHAR (29) CAT $CHAR (30) CAT
          $CHAR (31) CAT ' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLM' CAT
          'NOPQRSTUVWXYZ{|}~' CAT $CHAR (127) CAT $CHAR (128) CAT $CHAR (129) CAT $CHAR (130) CAT
          $CHAR (131) CAT $CHAR (132) CAT $CHAR (133) CAT $CHAR (134) CAT $CHAR (135) CAT $CHAR (136) CAT
          $CHAR (137) CAT $CHAR (138) CAT $CHAR (139) CAT $CHAR (140) CAT $CHAR (141) CAT $CHAR (142) CAT
          $CHAR (143) CAT $CHAR (144) CAT $CHAR (145) CAT $CHAR (146) CAT $CHAR (147) CAT $CHAR (148) CAT
          $CHAR (149) CAT $CHAR (150) CAT $CHAR (151) CAT $CHAR (152) CAT $CHAR (153) CAT $CHAR (154) CAT
          $CHAR (155) CAT $CHAR (156) CAT $CHAR (157) CAT $CHAR (158) CAT $CHAR (159) CAT $CHAR (160) CAT
          $CHAR (161) CAT $CHAR (162) CAT $CHAR (163) CAT $CHAR (164) CAT $CHAR (165) CAT $CHAR (166) CAT
          $CHAR (167) CAT $CHAR (168) CAT $CHAR (169) CAT $CHAR (170) CAT $CHAR (171) CAT $CHAR (172) CAT
          $CHAR (173) CAT $CHAR (174) CAT $CHAR (175) CAT $CHAR (176) CAT $CHAR (177) CAT $CHAR (178) CAT
          $CHAR (179) CAT $CHAR (180) CAT $CHAR (181) CAT $CHAR (182) CAT $CHAR (183) CAT $CHAR (184) CAT
          $CHAR (185) CAT $CHAR (186) CAT $CHAR (187) CAT $CHAR (188) CAT $CHAR (189) CAT $CHAR (190) CAT
          $CHAR (191) CAT $CHAR (192) CAT $CHAR (193) CAT $CHAR (194) CAT $CHAR (195) CAT $CHAR (196) CAT
          $CHAR (197) CAT $CHAR (198) CAT $CHAR (199) CAT $CHAR (200) CAT $CHAR (201) CAT $CHAR (202) CAT
          $CHAR (203) CAT $CHAR (204) CAT $CHAR (205) CAT $CHAR (206) CAT $CHAR (207) CAT $CHAR (208) CAT
          $CHAR (209) CAT $CHAR (210) CAT $CHAR (211) CAT $CHAR (212) CAT $CHAR (213) CAT $CHAR (214) CAT
          $CHAR (215) CAT $CHAR (216) CAT $CHAR (217) CAT $CHAR (218) CAT $CHAR (219) CAT $CHAR (220) CAT
          $CHAR (221) CAT $CHAR (222) CAT $CHAR (223) CAT $CHAR (224) CAT $CHAR (225) CAT $CHAR (226) CAT
          $CHAR (227) CAT $CHAR (228) CAT $CHAR (229) CAT $CHAR (230) CAT $CHAR (231) CAT $CHAR (232) CAT
          $CHAR (233) CAT $CHAR (234) CAT $CHAR (235) CAT $CHAR (236) CAT $CHAR (237) CAT $CHAR (238) CAT
          $CHAR (239) CAT $CHAR (240) CAT $CHAR (241) CAT $CHAR (242) CAT $CHAR (243) CAT $CHAR (244) CAT
          $CHAR (245) CAT $CHAR (246) CAT $CHAR (247) CAT $CHAR (248) CAT $CHAR (249) CAT $CHAR (250) CAT
          $CHAR (251) CAT $CHAR (252) CAT $CHAR (253) CAT $CHAR (254) CAT $CHAR (255);

?? TITLE := 'osv$upper_to_lower_26', EJECT ??

  VAR
*IF NOT $true(osv$unix)
    osv$upper_to_lower_26: [XDCL, #GATE, READ, oss$job_paged_literal] string (256) := $CHAR (00) CAT
*ELSE
    osv$upper_to_lower_26: [XDCL, #GATE, READ] string (256) := $CHAR (00) CAT
*IFEND
          $CHAR (01) CAT $CHAR (02) CAT $CHAR (03) CAT $CHAR (04) CAT $CHAR (05) CAT $CHAR (06) CAT
          $CHAR (07) CAT $CHAR (08) CAT $CHAR (09) CAT $CHAR (10) CAT $CHAR (11) CAT $CHAR (12) CAT
          $CHAR (13) CAT $CHAR (14) CAT $CHAR (15) CAT $CHAR (16) CAT $CHAR (17) CAT $CHAR (18) CAT
          $CHAR (19) CAT $CHAR (20) CAT $CHAR (21) CAT $CHAR (22) CAT $CHAR (23) CAT $CHAR (24) CAT
          $CHAR (25) CAT $CHAR (26) CAT $CHAR (27) CAT $CHAR (28) CAT $CHAR (29) CAT $CHAR (30) CAT
          $CHAR (31) CAT ' !"#$%&''()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklm' CAT
          'nopqrstuvwxyz{|}~' CAT $CHAR (127) CAT $CHAR (128) CAT $CHAR (129) CAT $CHAR (130) CAT
          $CHAR (131) CAT $CHAR (132) CAT $CHAR (133) CAT $CHAR (134) CAT $CHAR (135) CAT $CHAR (136) CAT
          $CHAR (137) CAT $CHAR (138) CAT $CHAR (139) CAT $CHAR (140) CAT $CHAR (141) CAT $CHAR (142) CAT
          $CHAR (143) CAT $CHAR (144) CAT $CHAR (145) CAT $CHAR (146) CAT $CHAR (147) CAT $CHAR (148) CAT
          $CHAR (149) CAT $CHAR (150) CAT $CHAR (151) CAT $CHAR (152) CAT $CHAR (153) CAT $CHAR (154) CAT
          $CHAR (155) CAT $CHAR (156) CAT $CHAR (157) CAT $CHAR (158) CAT $CHAR (159) CAT $CHAR (160) CAT
          $CHAR (161) CAT $CHAR (162) CAT $CHAR (163) CAT $CHAR (164) CAT $CHAR (165) CAT $CHAR (166) CAT
          $CHAR (167) CAT $CHAR (168) CAT $CHAR (169) CAT $CHAR (170) CAT $CHAR (171) CAT $CHAR (172) CAT
          $CHAR (173) CAT $CHAR (174) CAT $CHAR (175) CAT $CHAR (176) CAT $CHAR (177) CAT $CHAR (178) CAT
          $CHAR (179) CAT $CHAR (180) CAT $CHAR (181) CAT $CHAR (182) CAT $CHAR (183) CAT $CHAR (184) CAT
          $CHAR (185) CAT $CHAR (186) CAT $CHAR (187) CAT $CHAR (188) CAT $CHAR (189) CAT $CHAR (190) CAT
          $CHAR (191) CAT $CHAR (192) CAT $CHAR (193) CAT $CHAR (194) CAT $CHAR (195) CAT $CHAR (196) CAT
          $CHAR (197) CAT $CHAR (198) CAT $CHAR (199) CAT $CHAR (200) CAT $CHAR (201) CAT $CHAR (202) CAT
          $CHAR (203) CAT $CHAR (204) CAT $CHAR (205) CAT $CHAR (206) CAT $CHAR (207) CAT $CHAR (208) CAT
          $CHAR (209) CAT $CHAR (210) CAT $CHAR (211) CAT $CHAR (212) CAT $CHAR (213) CAT $CHAR (214) CAT
          $CHAR (215) CAT $CHAR (216) CAT $CHAR (217) CAT $CHAR (218) CAT $CHAR (219) CAT $CHAR (220) CAT
          $CHAR (221) CAT $CHAR (222) CAT $CHAR (223) CAT $CHAR (224) CAT $CHAR (225) CAT $CHAR (226) CAT
          $CHAR (227) CAT $CHAR (228) CAT $CHAR (229) CAT $CHAR (230) CAT $CHAR (231) CAT $CHAR (232) CAT
          $CHAR (233) CAT $CHAR (234) CAT $CHAR (235) CAT $CHAR (236) CAT $CHAR (237) CAT $CHAR (238) CAT
          $CHAR (239) CAT $CHAR (240) CAT $CHAR (241) CAT $CHAR (242) CAT $CHAR (243) CAT $CHAR (244) CAT
          $CHAR (245) CAT $CHAR (246) CAT $CHAR (247) CAT $CHAR (248) CAT $CHAR (249) CAT $CHAR (250) CAT
          $CHAR (251) CAT $CHAR (252) CAT $CHAR (253) CAT $CHAR (254) CAT $CHAR (255);

?? TITLE := 'osv$lower_to_upper_full', EJECT ??

  VAR
*IF NOT $true(osv$unix)
    osv$lower_to_upper_full: [XDCL, #GATE, READ, oss$job_paged_literal] string (256) := $CHAR (00) CAT
*ELSE
    osv$lower_to_upper_full: [XDCL, #GATE, READ] string (256) := $CHAR (00) CAT
*IFEND
          $CHAR (01) CAT $CHAR (02) CAT $CHAR (03) CAT $CHAR (04) CAT $CHAR (05) CAT $CHAR (06) CAT
          $CHAR (07) CAT $CHAR (08) CAT $CHAR (09) CAT $CHAR (10) CAT $CHAR (11) CAT $CHAR (12) CAT
          $CHAR (13) CAT $CHAR (14) CAT $CHAR (15) CAT $CHAR (16) CAT $CHAR (17) CAT $CHAR (18) CAT
          $CHAR (19) CAT $CHAR (20) CAT $CHAR (21) CAT $CHAR (22) CAT $CHAR (23) CAT $CHAR (24) CAT
          $CHAR (25) CAT $CHAR (26) CAT $CHAR (27) CAT $CHAR (28) CAT $CHAR (29) CAT $CHAR (30) CAT
          $CHAR (31) CAT ' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@ABCDEFGHIJKLM' CAT
          'NOPQRSTUVWXYZ[\]^' CAT $CHAR (127) CAT $CHAR (128) CAT $CHAR (129) CAT $CHAR (130) CAT
          $CHAR (131) CAT $CHAR (132) CAT $CHAR (133) CAT $CHAR (134) CAT $CHAR (135) CAT $CHAR (136) CAT
          $CHAR (137) CAT $CHAR (138) CAT $CHAR (139) CAT $CHAR (140) CAT $CHAR (141) CAT $CHAR (142) CAT
          $CHAR (143) CAT $CHAR (144) CAT $CHAR (145) CAT $CHAR (146) CAT $CHAR (147) CAT $CHAR (148) CAT
          $CHAR (149) CAT $CHAR (150) CAT $CHAR (151) CAT $CHAR (152) CAT $CHAR (153) CAT $CHAR (154) CAT
          $CHAR (155) CAT $CHAR (156) CAT $CHAR (157) CAT $CHAR (158) CAT $CHAR (159) CAT $CHAR (160) CAT
          $CHAR (161) CAT $CHAR (162) CAT $CHAR (163) CAT $CHAR (164) CAT $CHAR (165) CAT $CHAR (166) CAT
          $CHAR (167) CAT $CHAR (168) CAT $CHAR (169) CAT $CHAR (170) CAT $CHAR (171) CAT $CHAR (172) CAT
          $CHAR (173) CAT $CHAR (174) CAT $CHAR (175) CAT $CHAR (176) CAT $CHAR (177) CAT $CHAR (178) CAT
          $CHAR (179) CAT $CHAR (180) CAT $CHAR (181) CAT $CHAR (182) CAT $CHAR (183) CAT $CHAR (184) CAT
          $CHAR (185) CAT $CHAR (186) CAT $CHAR (187) CAT $CHAR (188) CAT $CHAR (189) CAT $CHAR (190) CAT
          $CHAR (191) CAT $CHAR (192) CAT $CHAR (193) CAT $CHAR (194) CAT $CHAR (195) CAT $CHAR (196) CAT
          $CHAR (197) CAT $CHAR (198) CAT $CHAR (199) CAT $CHAR (200) CAT $CHAR (201) CAT $CHAR (202) CAT
          $CHAR (203) CAT $CHAR (204) CAT $CHAR (205) CAT $CHAR (206) CAT $CHAR (207) CAT $CHAR (208) CAT
          $CHAR (209) CAT $CHAR (210) CAT $CHAR (211) CAT $CHAR (212) CAT $CHAR (213) CAT $CHAR (214) CAT
          $CHAR (215) CAT $CHAR (216) CAT $CHAR (217) CAT $CHAR (218) CAT $CHAR (219) CAT $CHAR (220) CAT
          $CHAR (221) CAT $CHAR (222) CAT $CHAR (223) CAT $CHAR (224) CAT $CHAR (225) CAT $CHAR (226) CAT
          $CHAR (227) CAT $CHAR (228) CAT $CHAR (229) CAT $CHAR (230) CAT $CHAR (231) CAT $CHAR (232) CAT
          $CHAR (233) CAT $CHAR (234) CAT $CHAR (235) CAT $CHAR (236) CAT $CHAR (237) CAT $CHAR (238) CAT
          $CHAR (239) CAT $CHAR (240) CAT $CHAR (241) CAT $CHAR (242) CAT $CHAR (243) CAT $CHAR (244) CAT
          $CHAR (245) CAT $CHAR (246) CAT $CHAR (247) CAT $CHAR (248) CAT $CHAR (249) CAT $CHAR (250) CAT
          $CHAR (251) CAT $CHAR (252) CAT $CHAR (253) CAT $CHAR (254) CAT $CHAR (255);

?? TITLE := 'osv$upper_to_lower_full', EJECT ??

  VAR
*IF NOT $true(osv$unix)
    osv$upper_to_lower_full: [XDCL, #GATE, READ, oss$job_paged_literal] string (256) := $CHAR (00) CAT
*ELSE
    osv$upper_to_lower_full: [XDCL, #GATE, READ] string (256) := $CHAR (00) CAT
*IFEND
          $CHAR (01) CAT $CHAR (02) CAT $CHAR (03) CAT $CHAR (04) CAT $CHAR (05) CAT $CHAR (06) CAT
          $CHAR (07) CAT $CHAR (08) CAT $CHAR (09) CAT $CHAR (10) CAT $CHAR (11) CAT $CHAR (12) CAT
          $CHAR (13) CAT $CHAR (14) CAT $CHAR (15) CAT $CHAR (16) CAT $CHAR (17) CAT $CHAR (18) CAT
          $CHAR (19) CAT $CHAR (20) CAT $CHAR (21) CAT $CHAR (22) CAT $CHAR (23) CAT $CHAR (24) CAT
          $CHAR (25) CAT $CHAR (26) CAT $CHAR (27) CAT $CHAR (28) CAT $CHAR (29) CAT $CHAR (30) CAT
          $CHAR (31) CAT ' !"#$%&''()*+,-./0123456789:;<=>?`abcdefghijklmnopqrstuvwxyz{|}~_`abcdefghijklm' CAT
          'nopqrstuvwxyz{|}~' CAT $CHAR (127) CAT $CHAR (128) CAT $CHAR (129) CAT $CHAR (130) CAT
          $CHAR (131) CAT $CHAR (132) CAT $CHAR (133) CAT $CHAR (134) CAT $CHAR (135) CAT $CHAR (136) CAT
          $CHAR (137) CAT $CHAR (138) CAT $CHAR (139) CAT $CHAR (140) CAT $CHAR (141) CAT $CHAR (142) CAT
          $CHAR (143) CAT $CHAR (144) CAT $CHAR (145) CAT $CHAR (146) CAT $CHAR (147) CAT $CHAR (148) CAT
          $CHAR (149) CAT $CHAR (150) CAT $CHAR (151) CAT $CHAR (152) CAT $CHAR (153) CAT $CHAR (154) CAT
          $CHAR (155) CAT $CHAR (156) CAT $CHAR (157) CAT $CHAR (158) CAT $CHAR (159) CAT $CHAR (160) CAT
          $CHAR (161) CAT $CHAR (162) CAT $CHAR (163) CAT $CHAR (164) CAT $CHAR (165) CAT $CHAR (166) CAT
          $CHAR (167) CAT $CHAR (168) CAT $CHAR (169) CAT $CHAR (170) CAT $CHAR (171) CAT $CHAR (172) CAT
          $CHAR (173) CAT $CHAR (174) CAT $CHAR (175) CAT $CHAR (176) CAT $CHAR (177) CAT $CHAR (178) CAT
          $CHAR (179) CAT $CHAR (180) CAT $CHAR (181) CAT $CHAR (182) CAT $CHAR (183) CAT $CHAR (184) CAT
          $CHAR (185) CAT $CHAR (186) CAT $CHAR (187) CAT $CHAR (188) CAT $CHAR (189) CAT $CHAR (190) CAT
          $CHAR (191) CAT $CHAR (192) CAT $CHAR (193) CAT $CHAR (194) CAT $CHAR (195) CAT $CHAR (196) CAT
          $CHAR (197) CAT $CHAR (198) CAT $CHAR (199) CAT $CHAR (200) CAT $CHAR (201) CAT $CHAR (202) CAT
          $CHAR (203) CAT $CHAR (204) CAT $CHAR (205) CAT $CHAR (206) CAT $CHAR (207) CAT $CHAR (208) CAT
          $CHAR (209) CAT $CHAR (210) CAT $CHAR (211) CAT $CHAR (212) CAT $CHAR (213) CAT $CHAR (214) CAT
          $CHAR (215) CAT $CHAR (216) CAT $CHAR (217) CAT $CHAR (218) CAT $CHAR (219) CAT $CHAR (220) CAT
          $CHAR (221) CAT $CHAR (222) CAT $CHAR (223) CAT $CHAR (224) CAT $CHAR (225) CAT $CHAR (226) CAT
          $CHAR (227) CAT $CHAR (228) CAT $CHAR (229) CAT $CHAR (230) CAT $CHAR (231) CAT $CHAR (232) CAT
          $CHAR (233) CAT $CHAR (234) CAT $CHAR (235) CAT $CHAR (236) CAT $CHAR (237) CAT $CHAR (238) CAT
          $CHAR (239) CAT $CHAR (240) CAT $CHAR (241) CAT $CHAR (242) CAT $CHAR (243) CAT $CHAR (244) CAT
          $CHAR (245) CAT $CHAR (246) CAT $CHAR (247) CAT $CHAR (248) CAT $CHAR (249) CAT $CHAR (250) CAT
          $CHAR (251) CAT $CHAR (252) CAT $CHAR (253) CAT $CHAR (254) CAT $CHAR (255);

?? TITLE := 'osv$control_codes_to_quest_mark', EJECT ??

  VAR
*IF NOT $true(osv$unix)
    osv$control_codes_to_quest_mark: [XDCL, #GATE, READ, oss$job_paged_literal] string (256) :=
*ELSE
    osv$control_codes_to_quest_mark: [XDCL, #GATE, READ] string (256) :=
*IFEND
          '????????????' CAT '???????????????????? !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU' CAT
          'VWXYZ[\]^_`abcdefghijkl' CAT 'mnopqrstuvwxyz{|}~?' CAT $CHAR (128) CAT $CHAR (129) CAT
          $CHAR (130) CAT $CHAR (131) CAT $CHAR (132) CAT $CHAR (133) CAT $CHAR (134) CAT $CHAR (135) CAT
          $CHAR (136) CAT $CHAR (137) CAT $CHAR (138) CAT $CHAR (139) CAT $CHAR (140) CAT $CHAR (141) CAT
          $CHAR (142) CAT $CHAR (143) CAT $CHAR (144) CAT $CHAR (145) CAT $CHAR (146) CAT $CHAR (147) CAT
          $CHAR (148) CAT $CHAR (149) CAT $CHAR (150) CAT $CHAR (151) CAT $CHAR (152) CAT $CHAR (153) CAT
          $CHAR (154) CAT $CHAR (155) CAT $CHAR (156) CAT $CHAR (157) CAT $CHAR (158) CAT $CHAR (159) CAT
          $CHAR (160) CAT $CHAR (161) CAT $CHAR (162) CAT $CHAR (163) CAT $CHAR (164) CAT $CHAR (165) CAT
          $CHAR (166) CAT $CHAR (167) CAT $CHAR (168) CAT $CHAR (169) CAT $CHAR (170) CAT $CHAR (171) CAT
          $CHAR (172) CAT $CHAR (173) CAT $CHAR (174) CAT $CHAR (175) CAT $CHAR (176) CAT $CHAR (177) CAT
          $CHAR (178) CAT $CHAR (179) CAT $CHAR (180) CAT $CHAR (181) CAT $CHAR (182) CAT $CHAR (183) CAT
          $CHAR (184) CAT $CHAR (185) CAT $CHAR (186) CAT $CHAR (187) CAT $CHAR (188) CAT $CHAR (189) CAT
          $CHAR (190) CAT $CHAR (191) CAT $CHAR (192) CAT $CHAR (193) CAT $CHAR (194) CAT $CHAR (195) CAT
          $CHAR (196) CAT $CHAR (197) CAT $CHAR (198) CAT $CHAR (199) CAT $CHAR (200) CAT $CHAR (201) CAT
          $CHAR (202) CAT $CHAR (203) CAT $CHAR (204) CAT $CHAR (205) CAT $CHAR (206) CAT $CHAR (207) CAT
          $CHAR (208) CAT $CHAR (209) CAT $CHAR (210) CAT $CHAR (211) CAT $CHAR (212) CAT $CHAR (213) CAT
          $CHAR (214) CAT $CHAR (215) CAT $CHAR (216) CAT $CHAR (217) CAT $CHAR (218) CAT $CHAR (219) CAT
          $CHAR (220) CAT $CHAR (221) CAT $CHAR (222) CAT $CHAR (223) CAT $CHAR (224) CAT $CHAR (225) CAT
          $CHAR (226) CAT $CHAR (227) CAT $CHAR (228) CAT $CHAR (229) CAT $CHAR (230) CAT $CHAR (231) CAT
          $CHAR (232) CAT $CHAR (233) CAT $CHAR (234) CAT $CHAR (235) CAT $CHAR (236) CAT $CHAR (237) CAT
          $CHAR (238) CAT $CHAR (239) CAT $CHAR (240) CAT $CHAR (241) CAT $CHAR (242) CAT $CHAR (243) CAT
          $CHAR (244) CAT $CHAR (245) CAT $CHAR (246) CAT $CHAR (247) CAT $CHAR (248) CAT $CHAR (249) CAT
          $CHAR (250) CAT $CHAR (251) CAT $CHAR (252) CAT $CHAR (253) CAT $CHAR (254) CAT $CHAR (255);

?? TITLE := 'osv$lower_to_upper', EJECT ??

{ This table is initially the same as osv$lower_to_upper_26. }

  VAR
*IF NOT $true(osv$unix)
    osv$lower_to_upper: [XDCL, #GATE, oss$task_shared] string (256) := $CHAR (00) CAT
*ELSE
    osv$lower_to_upper: [XDCL, #GATE] string (256) := $CHAR (00) CAT
*IFEND
          $CHAR (01) CAT $CHAR (02) CAT $CHAR (03) CAT $CHAR (04) CAT $CHAR (05) CAT $CHAR (06) CAT
          $CHAR (07) CAT $CHAR (08) CAT $CHAR (09) CAT $CHAR (10) CAT $CHAR (11) CAT $CHAR (12) CAT
          $CHAR (13) CAT $CHAR (14) CAT $CHAR (15) CAT $CHAR (16) CAT $CHAR (17) CAT $CHAR (18) CAT
          $CHAR (19) CAT $CHAR (20) CAT $CHAR (21) CAT $CHAR (22) CAT $CHAR (23) CAT $CHAR (24) CAT
          $CHAR (25) CAT $CHAR (26) CAT $CHAR (27) CAT $CHAR (28) CAT $CHAR (29) CAT $CHAR (30) CAT
          $CHAR (31) CAT ' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLM' CAT
          'NOPQRSTUVWXYZ{|}~' CAT $CHAR (127) CAT $CHAR (128) CAT $CHAR (129) CAT $CHAR (130) CAT
          $CHAR (131) CAT $CHAR (132) CAT $CHAR (133) CAT $CHAR (134) CAT $CHAR (135) CAT $CHAR (136) CAT
          $CHAR (137) CAT $CHAR (138) CAT $CHAR (139) CAT $CHAR (140) CAT $CHAR (141) CAT $CHAR (142) CAT
          $CHAR (143) CAT $CHAR (144) CAT $CHAR (145) CAT $CHAR (146) CAT $CHAR (147) CAT $CHAR (148) CAT
          $CHAR (149) CAT $CHAR (150) CAT $CHAR (151) CAT $CHAR (152) CAT $CHAR (153) CAT $CHAR (154) CAT
          $CHAR (155) CAT $CHAR (156) CAT $CHAR (157) CAT $CHAR (158) CAT $CHAR (159) CAT $CHAR (160) CAT
          $CHAR (161) CAT $CHAR (162) CAT $CHAR (163) CAT $CHAR (164) CAT $CHAR (165) CAT $CHAR (166) CAT
          $CHAR (167) CAT $CHAR (168) CAT $CHAR (169) CAT $CHAR (170) CAT $CHAR (171) CAT $CHAR (172) CAT
          $CHAR (173) CAT $CHAR (174) CAT $CHAR (175) CAT $CHAR (176) CAT $CHAR (177) CAT $CHAR (178) CAT
          $CHAR (179) CAT $CHAR (180) CAT $CHAR (181) CAT $CHAR (182) CAT $CHAR (183) CAT $CHAR (184) CAT
          $CHAR (185) CAT $CHAR (186) CAT $CHAR (187) CAT $CHAR (188) CAT $CHAR (189) CAT $CHAR (190) CAT
          $CHAR (191) CAT $CHAR (192) CAT $CHAR (193) CAT $CHAR (194) CAT $CHAR (195) CAT $CHAR (196) CAT
          $CHAR (197) CAT $CHAR (198) CAT $CHAR (199) CAT $CHAR (200) CAT $CHAR (201) CAT $CHAR (202) CAT
          $CHAR (203) CAT $CHAR (204) CAT $CHAR (205) CAT $CHAR (206) CAT $CHAR (207) CAT $CHAR (208) CAT
          $CHAR (209) CAT $CHAR (210) CAT $CHAR (211) CAT $CHAR (212) CAT $CHAR (213) CAT $CHAR (214) CAT
          $CHAR (215) CAT $CHAR (216) CAT $CHAR (217) CAT $CHAR (218) CAT $CHAR (219) CAT $CHAR (220) CAT
          $CHAR (221) CAT $CHAR (222) CAT $CHAR (223) CAT $CHAR (224) CAT $CHAR (225) CAT $CHAR (226) CAT
          $CHAR (227) CAT $CHAR (228) CAT $CHAR (229) CAT $CHAR (230) CAT $CHAR (231) CAT $CHAR (232) CAT
          $CHAR (233) CAT $CHAR (234) CAT $CHAR (235) CAT $CHAR (236) CAT $CHAR (237) CAT $CHAR (238) CAT
          $CHAR (239) CAT $CHAR (240) CAT $CHAR (241) CAT $CHAR (242) CAT $CHAR (243) CAT $CHAR (244) CAT
          $CHAR (245) CAT $CHAR (246) CAT $CHAR (247) CAT $CHAR (248) CAT $CHAR (249) CAT $CHAR (250) CAT
          $CHAR (251) CAT $CHAR (252) CAT $CHAR (253) CAT $CHAR (254) CAT $CHAR (255);

?? TITLE := 'osv$upper_to_lower', EJECT ??

{ This table is initially the same as osv$upper_to_lower_26. }

  VAR
*IF NOT $true(osv$unix)
    osv$upper_to_lower: [XDCL, #GATE, oss$task_shared] string (256) := $CHAR (00) CAT
*ELSE
    osv$upper_to_lower: [XDCL, #GATE] string (256) := $CHAR (00) CAT
*IFEND
          $CHAR (01) CAT $CHAR (02) CAT $CHAR (03) CAT $CHAR (04) CAT $CHAR (05) CAT $CHAR (06) CAT
          $CHAR (07) CAT $CHAR (08) CAT $CHAR (09) CAT $CHAR (10) CAT $CHAR (11) CAT $CHAR (12) CAT
          $CHAR (13) CAT $CHAR (14) CAT $CHAR (15) CAT $CHAR (16) CAT $CHAR (17) CAT $CHAR (18) CAT
          $CHAR (19) CAT $CHAR (20) CAT $CHAR (21) CAT $CHAR (22) CAT $CHAR (23) CAT $CHAR (24) CAT
          $CHAR (25) CAT $CHAR (26) CAT $CHAR (27) CAT $CHAR (28) CAT $CHAR (29) CAT $CHAR (30) CAT
          $CHAR (31) CAT ' !"#$%&''()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklm' CAT
          'nopqrstuvwxyz{|}~' CAT $CHAR (127) CAT $CHAR (128) CAT $CHAR (129) CAT $CHAR (130) CAT
          $CHAR (131) CAT $CHAR (132) CAT $CHAR (133) CAT $CHAR (134) CAT $CHAR (135) CAT $CHAR (136) CAT
          $CHAR (137) CAT $CHAR (138) CAT $CHAR (139) CAT $CHAR (140) CAT $CHAR (141) CAT $CHAR (142) CAT
          $CHAR (143) CAT $CHAR (144) CAT $CHAR (145) CAT $CHAR (146) CAT $CHAR (147) CAT $CHAR (148) CAT
          $CHAR (149) CAT $CHAR (150) CAT $CHAR (151) CAT $CHAR (152) CAT $CHAR (153) CAT $CHAR (154) CAT
          $CHAR (155) CAT $CHAR (156) CAT $CHAR (157) CAT $CHAR (158) CAT $CHAR (159) CAT $CHAR (160) CAT
          $CHAR (161) CAT $CHAR (162) CAT $CHAR (163) CAT $CHAR (164) CAT $CHAR (165) CAT $CHAR (166) CAT
          $CHAR (167) CAT $CHAR (168) CAT $CHAR (169) CAT $CHAR (170) CAT $CHAR (171) CAT $CHAR (172) CAT
          $CHAR (173) CAT $CHAR (174) CAT $CHAR (175) CAT $CHAR (176) CAT $CHAR (177) CAT $CHAR (178) CAT
          $CHAR (179) CAT $CHAR (180) CAT $CHAR (181) CAT $CHAR (182) CAT $CHAR (183) CAT $CHAR (184) CAT
          $CHAR (185) CAT $CHAR (186) CAT $CHAR (187) CAT $CHAR (188) CAT $CHAR (189) CAT $CHAR (190) CAT
          $CHAR (191) CAT $CHAR (192) CAT $CHAR (193) CAT $CHAR (194) CAT $CHAR (195) CAT $CHAR (196) CAT
          $CHAR (197) CAT $CHAR (198) CAT $CHAR (199) CAT $CHAR (200) CAT $CHAR (201) CAT $CHAR (202) CAT
          $CHAR (203) CAT $CHAR (204) CAT $CHAR (205) CAT $CHAR (206) CAT $CHAR (207) CAT $CHAR (208) CAT
          $CHAR (209) CAT $CHAR (210) CAT $CHAR (211) CAT $CHAR (212) CAT $CHAR (213) CAT $CHAR (214) CAT
          $CHAR (215) CAT $CHAR (216) CAT $CHAR (217) CAT $CHAR (218) CAT $CHAR (219) CAT $CHAR (220) CAT
          $CHAR (221) CAT $CHAR (222) CAT $CHAR (223) CAT $CHAR (224) CAT $CHAR (225) CAT $CHAR (226) CAT
          $CHAR (227) CAT $CHAR (228) CAT $CHAR (229) CAT $CHAR (230) CAT $CHAR (231) CAT $CHAR (232) CAT
          $CHAR (233) CAT $CHAR (234) CAT $CHAR (235) CAT $CHAR (236) CAT $CHAR (237) CAT $CHAR (238) CAT
          $CHAR (239) CAT $CHAR (240) CAT $CHAR (241) CAT $CHAR (242) CAT $CHAR (243) CAT $CHAR (244) CAT
          $CHAR (245) CAT $CHAR (246) CAT $CHAR (247) CAT $CHAR (248) CAT $CHAR (249) CAT $CHAR (250) CAT
          $CHAR (251) CAT $CHAR (252) CAT $CHAR (253) CAT $CHAR (254) CAT $CHAR (255);

*IF NOT $true(osv$unix)
?? TITLE := 'osp$change_translation_tables', EJECT ??

?? PUSH (LISTEXT := ON) ??
*copyc clt$name_folding_level
*copyc ost$status
?? POP ??

  PROCEDURE [XDCL, #GATE] osp$change_translation_tables
    (    name_folding_level: clt$name_folding_level;
     VAR status: ost$status);


    status.normal := TRUE;

    IF name_folding_level = clc$full_folding THEN
      osv$lower_to_upper := osv$lower_to_upper_full;
      osv$upper_to_lower := osv$upper_to_lower_full;
    ELSE
      osv$lower_to_upper := osv$lower_to_upper_26;
      osv$upper_to_lower := osv$upper_to_lower_26;
    IFEND;

  PROCEND osp$change_translation_tables;
*IFEND

MODEND osm$character_translation_mgr;
