1: procedure inc_char_for_sort_key (old_char IN OUT CHAR, carry_p OUT INTEGER)
2: IS
3: old_code INTEGER;
4: new_code INTEGER;
5: BEGIN
6: old_code := ascii(old_char);
7: IF old_code = 57 THEN
8: -- skip from 9 to A
9: new_code := 65;
10: carry_p := 0;
11: ELSIF old_code = 90 THEN
12: -- skip from Z to a
13: new_code := 97;
14: carry_p := 0;
15: ELSIF old_code = 122 THEN
16: -- wrap around
17: new_code := 48;
18: carry_p := 1;
19: ELSE
20: new_code := old_code + 1;
21: carry_p := 0;
22: END IF;
23: old_char := chr(new_code);
24: END inc_char_for_sort_key;
|