1 /* procedure tomake a new group_id from an original and matching */
 2 
 3 new_group_id_: proc (original, new) returns (char(32));
 4  dcl (original, new) char(32) aligned;
 5  dcl return char(32) varying init("");
 6  dcl group_id_part_ entry (char(32) aligned, fixed bin) returns (char(*));
 7  dcl i fixed bin;
 8 
 9  do i = 1 to 3;
10   if group_id_part_ (new, i) = ""
11   then return = return || group_id_part_ (original, i);
12   else return = return || group_id_part_ (new, i);
13   if i ^= 3 then return = return || ".";
14 end;
15 
16 return (return);
17 
18 end;