[comp.archives] [vmsnet.sources.d...] VMS TAR version 1.1-2 now available

timcc@csv.viccol.edu.au (Tim Cook) (07/07/90)

Archive-name: vms-tar/06-Jul-90
Original-posting-by: timcc@csv.viccol.edu.au (Tim Cook)
Original-subject: VMS TAR version 1.1-2 now available
Archive-site: acfcluster.nyu.edu [128.122.128.11]
Archive-directory: [.VMSTAR]
Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti)

The latest version of VMS TAR, version 1.1-2, is now available.  The new
version only contains a few bugfixes, no new features.

The only significant bug is one where VMS TAR packs up when it finds an
archive entry that is a hard or soft link.  If you just want to fix this
bug in your sources, see the end of this posting.

If you want to get the latest sources, they are available via anonymous FTP
from sao.aarnet.edu.au for Australia (IP address 130.56.5.21, in directory
[.VMSTAR]), and from acfcluster.nyu.edu for the rest of the world (IP
address 128.122.128.11, in directory [.VMS]).

I am not going to post the sources, and I will consider requests to be
mailed the sources only from people in Australia.


The End of This Posting:
-----------------------

Now, for those who just want to fix the hard/soft link bug, the following
needs to be done:

   1. Go to your directory containing your sources for VMS TAR version
      1.1-1.
   2. Create a file called TAR_VERSION.PAS containing the string
      "IDENT ('T1.1-2')" (minus the double quotes).
   3. Update the file TAR_EXTRACT.PAS according to the cdif at the end of
      this posting.
   4. Re-compile TAR_EXTRACT and re-link TAR.

Please note that I have made a few changes to other VMS TAR source files,
so this "quick-fix" will not give you a full, official set of sources for
VMS TAR version 1.1-2.  For the sake of history, let's say you have VMS TAR
version 1.1-2QF.

Keep those bug reports, fixes, war-stories, eulogies, cheques and
money-orders rolling in :-)  (Although I would note that this bug is the
only one that has been found for over 6 months).

------------ Cut here for TAR_EXTRACT.PAS-CDIF ------------
*** tar_extract.pas-old
--- tar_extract.pas
**************
*** 1,4
! [INHERIT ('SYS$LIBRARY:STARLET', 'VCDEFS', 'TAR'),
!    IDENT ('T1.1')]
  
  MODULE extract ;
--- 1,10 -----
! { TAR_EXTRACT.PAS -	Routines to support TAR/EXTRACT
! !
! ! Copyright:	Copyright 1989,1990, Victoria College Computer Services.
! !		All rights reserved except those granted in the file
! !		AAAREADME.1ST, which is distributed with this file.
! !
! ! Author:	Tim Cook (timcc@viccol.edu.au)
! }
  
  [INHERIT ('SYS$LIBRARY:STARLET', 'VCDEFS', 'TAR'),
**************
*** 2,5
     IDENT ('T1.1')]
  
  MODULE extract ;
  
--- 8,14 -----
  }
  
+ [INHERIT ('SYS$LIBRARY:STARLET', 'VCDEFS', 'TAR'),
+    %INCLUDE 'TAR_VERSION.PAS']
+ 
  MODULE extract ;
  
**************
*** 12,16
          have been wrapped by TAR }
  
!       out_buffer_size = 8193 ;
  
     TYPE
--- 21,25 -----
          have been wrapped by TAR }
  
!       out_buffer_size = 8192 ;
  
     TYPE
**************
*** 187,190
              VMS_spec : filespec_type ;
              absolute : boolean ;
  
  
--- 196,200 -----
              VMS_spec : filespec_type ;
              absolute : boolean ;
+             output_file_open : [STATIC] boolean := false ;
  
  
**************
*** 259,262
                       VMS_spec := VMS_filespec (file_spec, absolute) ;
                       open_output_file (VMS_spec, file_size) ;
                       no_records := 0 END ;
                    END END
--- 269,273 -----
                       VMS_spec := VMS_filespec (file_spec, absolute) ;
                       open_output_file (VMS_spec, file_size) ;
+                      output_file_open := true ;
                       no_records := 0 END ;
                    END END
**************
*** 272,276
                    IF bytes_written = file_size THEN
                       more := false END END ;
!             close_output_file (no_records, file_mtime, file_mode) END ;
  
  
--- 283,290 -----
                    IF bytes_written = file_size THEN
                       more := false END END ;
!             IF output_file_open THEN BEGIN
!                close_output_file (no_records, file_mtime, file_mode) ;
!                output_file_open := false END ;
!             END ;
  
  
--
Tim Cook     Systems Administrator, Victoria College Computer Services

parrot - n.  An animal that has the ability to imitate man, but not the
             intelligence to refrain from doing so.