[comp.os.vms] TPU Question

IMHW400@INDYVAX.BITNET (02/19/88)

Oops, I got symbols and logicals confused.  To translate a *symbol* you
must call LIB$GET_SYMBOL, not SYS$TRNLNM.  Sorry for the stupid mistake.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mark H. Wood    IMHW400@INDYVAX.BITNET   (317)274-0749 III U   U PPPP  U   U III
Indiana University - Purdue University at Indianapolis  I  U   U P   P U   U  I
799 West Michigan Street, ET 1023                       I  U   U PPPP  U   U  I
Indianapolis, IN  46202 USA                             I  U   U P     U   U  I
[@disclaimer@]                                         III  UUU  P      UUU  III

rang%cps45x@CPSWH.CPS.MSU.EDU (Anton Rang) (04/06/88)

  Directories *are* very version-dependent.  When a new version of VMS
comes out, it will always be able to read directories produced by an
earlier version, for compatibility.  This doesn't mean that its
directories will be in the same format (compare VMS 3.x with VMS 4.x,
for example--the filename length changed, for one thing).
  In any case (whether you can find a workable definition of the
directory format or not), it is not a good idea to bypass RMS for
directory management.  RMS attempts to maintain directories in a
consistent state across concurrent access, and its routines will
correctly handle changing directories.  It can also handle directories
across the network--the other machine can change the directory at any
time, and RMS won't get confused.  The low-level file locking routines
which do this are user-accessible, but RMS gets very confused if you
use them--it doesn't distinguish between its own locks and yours, and
all kinds of bugchecks start occurring.  In the worst case, at least.
  Moral: If you want to read a directory file directly, make sure that
nobody else is using it--and don't expect it to work right all the
time.

						Anton Rang

ACSNICK@UBVMS.BITNET (Nick B Triantos) (05/12/88)

I have a question regarding TPU, specifically through the EVE interface.

Is there any way that anyone knows of to remove a buffer after it is no
longer needed.  i.e.-
I have just edited a buffer called FOOBALL.  Now I get a buffer called FOOBAR.
I am done with the buffer FOOBALL, and I would like to remove it from TPU
so that the buffer name "FO" is unique enough that I am put in FOOBAR.
The reason why I don't just quit and re-enter EVE with a new file is that
I have EVE running as a continuous subprocess which I just attach to whenever
I need it.  (It speeds things up a bit.)  I have re-defined ctrl-Z to do
the EVE command "ATTACH".

Any help is greatly appreciated.
Thanks
Nick Triantos

--------------------------------------- --------------------------------------
Nick B Triantos                         BITNET:   acsnick@ubvms  (VAX/VMS)
Systems Assistant Programmer                      acsnick@ubvm   (VM/CMS)
Academic Computing Services
State University of New York at Buffalo INTERNET: acsnick@ubvms.cc.buffalo.edu
Buffalo, NY 14260                                 acsnick@ubvm.cc.buffalo.edu
--------------------------------------- --------------------------------------
"If it's not fatal, don't worry about it..."

matt@ethz.UUCP (Martin Matt) (05/18/88)

In article <8805160616.AA10464@ucbvax.Berkeley.EDU> ACSNICK@UBVMS.BITNET (Nick B Triantos) writes:
>I have a question regarding TPU, specifically through the EVE interface.
>
>Is there any way that anyone knows of to remove a buffer after it is no
>longer needed.  i.e.-


This TPU procedure deletes the curent buffer and places you in the first
non-system buffer it finds. If no such buffer is present, EVE_DELBUFFER
creates a buffer MAIN and places you there.


Martin Matt   ( ...!cernvax!ethz!matt  )


!===============================================================================
!	PROCEDURE eve_delbuffer
!===============================================================================
!

PROCEDURE eve_delbuffer

  LOCAL new_buffer, del_buffer, answer;
                              
  del_buffer := current_buffer;
  if del_buffer=0 then 
    message('not currently in buffer'); return 
  endif;
  
  if get_info(del_buffer, "system")=1 then
    message('cannot delete a system buffer'); return
  endif;
  
  if get_info(del_buffer, "modified")=1 then
    answer := read_line("delete this buffer without updating ? (Y/N) [N] : ");
    if (answer<>'Y') AND (answer<>'y') then return endif;
  endif;

  if (eve$x_number_of_windows=2) AND
     (get_info(eve$top_window,"buffer")=get_info(eve$bottom_window,"buffer")) 
  then
    eve_one_window
  endif;

  new_buffer := get_info(BUFFERS, "last");
  loop
    exitif (new_buffer=0);
    exitif (new_buffer<>del_buffer) AND (get_info(new_buffer,"system")=0);
    new_buffer := get_info(BUFFERS, "previous");
  endloop;

  if (new_buffer=0) then 
    if get_info(del_buffer,"name")<>"MAIN" then 
      new_buffer := create_buffer("MAIN")
    else
      new_buffer := erase(del_buffer); return
    endif
  endif;

  map(current_window, new_buffer); 
  eve$set_status_line (current_window);
  delete(del_buffer);
endprocedure;
-- 
Martin Matt   ( ...!cernvax!ethz!matt  )

crouch@axion.bt.co.uk (Chris Rouch) (05/20/88)

From article <8805160616.AA10464@ucbvax.Berkeley.EDU>, by ACSNICK@UBVMS.BITNET (Nick B Triantos):
> I have a question regarding TPU, specifically through the EVE interface.
> 
> Is there any way that anyone knows of to remove a buffer after it is no
> longer needed.

You could try something like:

deleted_buffer := current_buffer;
get_buffer(file);
delete (deleted_buffer);


Where file has been set up to be the main buffer. It might also be a good
idea to check that it's not the main buffer you're in, which could be done
by:

if (get_info(current_buffer,"name") = file) then
	message("Can't delete main buffer");

		Chris Rouch

--------------------------------------------------------------------------
vax to vax (UUCP)       CRouch@axion.bt.co.uk (...!ukc!btnix!crouch)
desk to desk            RT3124, 310 SSTF,
			British Telecom Research Laboratories,
			Martlesham Heath, IPSWICH, IP5 7RE, UK.
voice to voice          +44 473 646093

	"Ours is not to look back, ours to continue the crack."
--------------------------------------------------------------------------

hydrovax@nmtsun.nmt.edu (M. Warner Losh) (05/21/88)

As a side note, could someone tell me how change the default
directories in TPU (EVE interface, locally hacked).  I spend my day in
a zillion different subdirectories (with long names :-() on many
different disks.  The only way I thought of was to have soft of a
global string that you get from the last file read that tells what
device directory the file was from.  Then you use this as the default
file spec for the parses that EVE does to open a file.  Sounds kind of
hairy, but doable.  Is there an easier way (like SET (DIRECTORY, x)) that
isn't in the manuals (or that I have overlooked in my RTFM search)?

Warner

-- 
bitnet:     warner@hydrovax.nmt.csnet          M. Warner Losh
arpa/csnet: warner@hydrovax.nmt.edu
uucp:	...{cmcl2, ihnp4}!lanl!unmvax!nmtsun!warner%hydrovax

UA_RLP@nuhub.acs.northeastern.EDU (Richard Pieri aka XENON - The Heavy Metal Warrior) (05/23/88)

Nick Triantos asks:

>Is there any way that anyone knows of to remove a buffer after it is no
>longer needed.  i.e.-
>I have just edited a buffer called FOOBALL.  Now I get a buffer called FOOBAR.
>I am done with the buffer FOOBALL, and I would like to remove it from TPU
>so that the buffer name "FO" is unique enough that I am put in FOOBAR.
>The reason why I don't just quit and re-enter EVE with a new file is that
>I have EVE running as a continuous subprocess which I just attach to whenever
>I need it.  (It speeds things up a bit.)  I have re-defined ctrl-Z to do
>the EVE command "ATTACH".

I have a TPU utility that not only erases an existing buffer, but it also lists
all active buffers (ALL, USER, and SYSTEM).  It will then allow you to ERASE a
buffer, MARK a buffer as modified, UNMARK a buffer as unmodified, SELECT the
current buffer, CREATE a new buffer, and WRITE out a buffer.  I'm reluctant to
post it to the net since it is a large file (27K+), but I'll mail a copy to
anyone who requests it. (I've already forwarded a copy to Mr. Triantos).


================================================================================
            Cthulu for President:  Why choose the lesser of Evils?
--------------------------------------------------------------------------------
Internet: UA_RLP@nuhub.acs.northeastern.edu |       ________
      or: rpieri@lynx.northeastern.edu      |      /   __   \   ____
                                            |     /   /  \  /  /   /
  USnail: Richard Pieri                     |    /   /    \/  /   / Northeastern
          14 Westdale Rd.                   |   /   /  /\    /   / University -
          Holbrook, MA 02343                |  /___/  /  \__/   / Boston,
   Other: rich-pieri@twilight.zone          |         \________/ Massachusetts
--------------------------------------------------------------------------------
         Since any opinions I've stated are mine and not Northeastern
      University's, feel free to make any negative comments to what I've
                     said, just say them behind my back!
================================================================================