-- rotate.c : map a->b, b->c, .. z->a
--   purpose: useful for showing tty modes

with Ada.Characters.Handling,
     POSIX,
     EUP.Text_IO.Direct_Character_IO;

use Ada.Characters.Handling,
    POSIX,
    EUP.Text_IO.Direct_Character_IO;

procedure Rotate is
   Key  : Character_Or_EOF;
   Char : POSIX_Character;
begin
   loop
      Key := Get;
      exit when End_Of_File (Key);
      Char := To_POSIX_Character (Key);
      if Char = 'z' then
         Char := 'a';
      elsif Is_ISO_646 (Character (Char)) and Is_Lower (Character (Char)) then
         Char := POSIX_Character'Succ (Char);
      end if;
      Put (Item => Char);
   end loop;
end Rotate;

