As has been mentioned partially: DESBUF may not be wise.

DESBUF does not only remove all lines stacked from keyboard (the "terminal 
input buffer"), and those stacked by programs (the "program stack"), but 
also clears the "terminal output buffer".  Everything to send to the 
console (in linemode) is first placed in the terminal output buffer. 
Somewhat later, CMS writes the lines out (I don't know what triggers 
this).  So, if the SAY from rexx is still stacked when DESBUF is executed, 
it will never appear on the screen.
If you need a DESBUF, place a CONWAIT before it: it asks CMS to flush the 
terminal output buffer to the screen.

Most of the time however, you don't need DESBUF:
DROPBUF 0 removes all lines from the program stack.  But, as already 
mentioned, EXECs should not simply remove lines stacked by other execs, 
you better use MAKEBUF and DROPBUF.  For example:
  'MAKEBUF'      /* Make a new entrypoint in the program stack */
  oq=queued()    /* How many lines are already in the program stack */
  'LISTFILE * EXEC A(STACK'
  do queued()-oq /* read only the lines we stacked */
     parse pull fn ft fm
  end
  'DROPBUF'      /* Remove the new entrypoint in the stack */
Anyhow, even that is oldfashioned: since we've got CMS Pipelines using the 
stack is most of the time no longer required.

Kris,
IBM Belgium, VM customer support


The IBM z/VM Operating System <[email protected]> wrote on 
2006-12-11 15:52:54:

> Hi again!
> 
> ...
> /* */                                                  
> 'SET IMSG OFF'                                     
> 'SET EMSG OFF'                                     
> 'ERASE INFO SAVE A'                                
> trace off                                          
> trace O                                            
> say 'Link to the DB save disk running, Please WAIT'
> /*QSQLDMK1 = '      QSQLDMK1  Pas de sauvegarde'*/ 
> 'LISTFILE SAVE LINK A (ALL STACK'                  
> Parse Pull . . . . . nb .                          
> 'DESBUF'                                           
>           Do K=1 to nb                             
>           'EXECIO 1 DISKR SAVE LINK A'             
>           Parse Pull server dsk .                  
> say 'Im here right now'
> ---------------------------------------
> I dont get back the line i inserted between the lines. So the Parse 
> Pull may be wrong. (I tried to paste the say line to other places 
> too, so i KNOW the problem is 
> with Parse Pull or EXECIO). But why?
> 
> Can you help me?
> 
> Zoltan

Reply via email to