*copyc OSD$DEFAULT_PRAGMATS
MODULE iim$fetch_context;
?? TITLE := 'MODULE iim$fetch_context' ??

?? PUSH (LISTEXT := ON) ??
*copyc ift$fetch_context_attributes
*copyc iiv$interactive_terminated
*copyc OST$STATUS
*copyc nat$data_fragments
?? POP ??

?? NEWTITLE := 'PROCEDURE iip$fetch_context', EJECT ??

  PROCEDURE [XDCL, #GATE] iip$fetch_context (VAR {i/o} context_attributes:
    ift$fetch_context_attributes;
    VAR status: ost$status);

    VAR
      i: integer;

    status.normal := TRUE;

    FOR i := LOWERBOUND (context_attributes) TO UPPERBOUND (context_attributes) DO
      CASE context_attributes [i].key OF
      = ifc$previous_mode =
        CASE iiv$previous_mode OF
        = iic$line =
          context_attributes [i].previous_mode := ifc$line;
        = iic$screen =
          context_attributes [i].previous_mode := ifc$screen;
        CASEND;
      = ifc$previous_file_id =
        context_attributes [i].previous_file_id := iiv$previous_file_id;
      = ifc$previous_operation =
        context_attributes [i].previous_operation := iiv$previous_operation;
        IF iiv$previous_blank_flag THEN
          context_attributes [i].previous_operation := amc$get_next_req;
        IFEND;
      ELSE
      CASEND;
    FOREND;

  PROCEND iip$fetch_context;

MODEND iim$fetch_context;
