home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pcmagazi / 1989 / 22 / jumptest.pas < prev    next >
Pascal/Delphi Source File  |  1989-11-10  |  725b  |  47 lines

  1. JUMPTEST.PAS
  2.  
  3.  
  4.  
  5.  
  6.  
  7. PROGRAM JumpTest;
  8. USES Jump;
  9. VAR
  10.   JumpBuffer : JmpBuf;
  11.   RetValue : Integer;
  12.   X : Integer;
  13.  
  14.   PROCEDURE A;
  15.   BEGIN
  16.     WriteLn('In Procedure A');
  17.     IF X = 1 THEN
  18.       LongJmp(JumpBuffer, 1)
  19.       { Return to outer level with RetValue = 1 }
  20.     ELSE
  21.       BEGIN
  22.         X := X+1;                     
  23.         WriteLn('Returning from A');
  24.       END;
  25.   END;
  26.  
  27.   PROCEDURE B;
  28.   BEGIN
  29.     WriteLn('In Procedure B');
  30.     A;
  31.     WriteLn('Returning from B');
  32.   END;
  33.  
  34. BEGIN
  35.   X := 0;
  36.   REPEAT
  37.     RetValue := SetJmp(JumpBuffer);
  38.     IF RetValue = 0 THEN
  39.       B
  40.     ELSE
  41.       WriteLn('Exit with RetValue = ', RetValue);             
  42.   UNTIL RetValue <> 0;
  43. END.
  44.  
  45.  
  46.  
  47.