*DECK CURTT 
USETEXT TENVIRN 
USETEXT TEXPRES 
USETEXT TREPORT 
USETEXT TXSTD 
      PROC CURTT;                                                        QU3A334
#----------------------------------------------------------------------#
#                                                                      #
#  THE FOLLOWING PROCS ARE XDEF"D WITHIN THIS DECK:                    #
#                                                                      #
#     CURTT                        STORE ATTRIBUTES FOR *CURRENT-XXX*  #
#                                                                      #
#----------------------------------------------------------------------#
  
#                                                                      #
#     C U R T T                                                        #
#                                                                      #
#  THIS PROC PICKS UP ATTRIBUTES FOR ALL THE -CURRENT-XXX- ITEMS AND   #
#  THEIR LOCATIONS AND STORES THEM AS REQUESTED. THE INPUT PARAMETER,  #
#  -LXNUM-, IDENTIFIES WHICH ITEM IS OF INTEREST TO THE CALLER.        #
  
      BEGIN 
  
  
  
      XREF ARRAY ACURANY;;         # ATTRIBUTES OF *CURRENT-ANY*       #
      XREF ITEM CURANY       I;    # VALUE OF *CURRENT-ANY* REGISTER   #
      XREF ITEM CURREG B;          # TRUE IF CURRENT-REGISTER          # QU3A334
  
      ITEM LXNUM I;                # LEXICAL NUMBER OF THE CURRENT-XXX #
  
      SWITCH CURT  DUMMY,          # LXNUM = O"400" + 0                #
                   CURTDATE,       # LXNUM = O"400" + 1                #
                   CURTLINE,       # LXNUM = O"400" + 2                #
                   CURTPAGE,       # LXNUM = O"400" + 3                #
                   CURTRPT,        # LXNUM = O"400" + 4                #
                   CURTIME,        # LXNUM = O"400" + 5                #
                   CURTSESS,       # LXNUM = O"400" + 6                #
                   DUMMY,          # LXNUM = O"400" + 7                #
                   CURTANY,        # LXNUM = O"400" + 8                #
                   USRID;          # LXNUM = O"400" + 9                #
  
  
#  START OF EXECUTABLE CODE FOR -CURTT-                                #
  
      IF RECORDFLAG                # IF RECORDING                      # QU3A334
        OR (NOT FULLSYNTX          # IF NOT PREPARING A REPORT         # QU3A334
          AND STKFLAG)             # AND THIS IS A REPORT DIRECTIVE    # QU3A334
      THEN                                                               QU3A334
        BEGIN                                                            QU3A334
        STDYES;                                                          QU3A334
        END                                                              QU3A334
      CURREG = TRUE;               # CURRENT-REGISTER                  # QU3A334
      INDICED = FALSE;             # NOT AN INDEXED ITEM               # QU3A334
      INDCTBLOC = 0;               # NO INDEX TABLE                    # QU3A334
      EXCLKEYITEM = FALSE;                                               QU3A334
      LXNUM = CLXNUM[0];           # LEXICAL NUMBER OF THE CURRENT-XXX # QU3A334
      LOGICALRESLT = FALSE;                                              QU3A334
      FIGLITDATA = 2;                                                    QU3A334
      DATATYPE = 0;                                                      QU3A334
      DATACHARPOS = 0;                                                   QU3A334
      ABSADDRESS = TRUE;                                                 QU3A334
      DATANAMEEXPR = 0;                                                  QU3A334
      DATANAMEPIC = FALSE;                                               QU3A334
      DATANAMEPTR = 0;                                                   QU3A334
      DATANAMEBASE = 0;                                                  QU3A334
      DATANAMEUSE = 0;                                                   QU3A334
      AREAITM = FALSE;                                                   QU3A334
      DESITM = FALSE;                                                    QU3A334
      ALTKEYITEM = FALSE;                                                QU3A334
      AKEYITEM = FALSE;                                                  QU3A334
      AMAJKEYITEM = FALSE;                                               QU3A334
      PMAJKEYITEM = FALSE;                                               QU3A334
      DATAITEMORD = 0;
      DATARECDORD = 0;
      GOTO CURT[LXNUM - O"400"];   # CHOOSE CODE TO EXECUTE BASED ON   #
                                   # THE LEXICAL VALUE OF THE TOKEN.   #
  
            CURTSESS: # #                                               017840
                  #CURRENT SESSION NAME#                                008800
                  DATALENG = 6;                                         017850
          DATACHARPOS = 4;
          DATANAMEPTR = LOC(CURSEATT)-1;
                  DATAWORDADDR = LOC(CURRSESS);                         017860
                  GOTO SETRLTSZ;                                        017870
       CURTPAGE: # #
                  #CURRENT PAGE NUMBER#                                 008820
              DATACHARPOS = 5;
          DATANAMEPTR = LOC(CURPGATT) - 1;
          DATATYPE = 1;            # DEFINE CURRENT-PAGE AS NUMERIC    #
              DATALENG = 5; 
              DATAWORDADDR = LOC(PAGENUM);
          GOTO SETRLTSZ;
       CURTDATE: # #
                  #CURRENT DATE#                                        008840
              DATALENG = 10;
          DATANAMEPTR = LOC(DATEATT) - 1; 
              DATAWORDADDR = LOC(DATE); 
          GOTO SETRLTSZ;
       CURTIME: # # 
                  #CURRENT TIME#                                        008860
              DATALENG = 10;
          DATANAMEPTR = LOC(TIMEATT) - 1; 
              DATAWORDADDR = LOC(TIME); 
          GOTO SETRLTSZ;
       CURTLINE: # #
                  #CURRENT LINE#                                        008900
         RESULTSIZE = 3;                                                004610
         DATALENG = 10;                                                 004620
          DATANAMEPTR = LOC(XLINEATT) - 1;
         DATATYPE = 2;             # INTEGER                           #
         DATANAMEUSE = DATATYPE;
         RESULTUSAGE = DATATYPE;                                        004640
              DATAWORDADDR= LOC(XLINE); 
         STDYES;                                                         QU3A334
  
       DUMMY:                      # THIS TAG ACTS AS A SPACE HOLDER   #
                                   # FOR PREVIOUS TAGS THAT HAVE BEEN  #
                                   # PERMANENTLY REMOVED.              #
  
CURTANY:                           # SAVE ATTRIBUTES FOR CURRENT-ANY   #
      DATATYPE = 2;                # CURRENT-ANY IS TYPE -INTEGER-     #
      DATANAMEUSE = DATATYPE; 
      DATANAMEPTR = LOC(ACURANY) - 1;  # DEFDESC ENTRY FOR CURRENT-ANY #
      DATALENG = 10;               # CHAR LENGTH FOR VALUE             #
      RESULTSIZE = 5;              # CHAR SIZE OF THE EXPRESS. RESULT  #
      RESULTUSAGE = DATATYPE;      # RESULT IS SAME TYPE AS VALUE      #
      DATAWORDADDR = LOC(CURANY);  # LOCATION OF THE VALUE             #
      STDYES;                                                            QU3A334
  
       CURTRPT: # # 
                  #CURRENT REPORT NAME#                                 008920
              DATALENG = 7; 
          DATANAMEPTR = LOC(CURRPTATT) - 1; 
              DATAWORDADDR = LOC(CURREPT);
              GOTO SETRLTSZ;
       USRID: 
                  #USER-ID# 
          DATALENG = 10;                  # CHAR LENGTH FOR VALUE      #
          DATANAMEPTR = LOC(UIATTR) - 1;  # DEFDESC ENTRY FOR USER-ID  #
          DATAWORDADDR = LOC(USERID);     # LOCATION OF THE VALUE      #
          IF DIRLEXID NQ O"205"           # IF NOT *ERASE* DIRECTIVE   #
          THEN
            BEGIN 
            CURREG = FALSE;        # CLEAR CURREG SO USER-ID CAN BE    #
                                   # UPDATED                           #
            END 
       SETRLTSZ: # #
          RESULTSIZE = DATALENG;
         RESULTUSAGE = DATATYPE;                                        004700
          STDYES;                                                        QU3A334
          END 
      TERM
