From: LEVITTE@e.kth.se (Richard Levitte)
Newsgroups: comp.os.vms
Subject: Bug in VMS_SHARE 8.1, with patch.
Date: 21 Dec 92 11:44:19 GMT
Organization: Department of TeleTransmission Theory


While trying to package my Emacs patches, I noticed VMS_SHARE wouldn't
take files with an empty file type (like FOO.;1). I tracked down the bug
and made a small change. The patch is included below.

I wanted to send this to the author, Andy Harper, but I couldn't find
his address among the files, soo.... Andy, are you listening? Please add
your address somewhere in the docs!

*** EMACS_DEVELOPMENT:[000000.VMS_SHARE]VMS_SHARE.COM;66
--- vms_share.com
**************
*** 123,132
  $ PackageIdx= f$edit(f$trnlnm("SHARE_PACKAGE_INDEX"), "TRIM,COMPRESS")
  $ Part_Size = f$edit(f$trnlnm("SHARE_PART_SIZE"),     "TRIM,COMPRESS")
  $ Real_Name = f$edit(f$trnlnm("SHARE_REAL_NAME"),     "TRIM,COMPRESS")
! $ X_Files   = f$edit(f$trnlnm("SHARE_EXCLUDE_FILES"), "TRIM,UPCASE")+","
! $ X_Dirs    = f$edit(f$trnlnm("SHARE_EXCLUDE_DIRS"),  "TRIM,UPCASE")+","
! $ X_Names   = f$edit(f$trnlnm("SHARE_EXCLUDE_NAMES"), "TRIM,UPCASE")+","
! $ X_Types   = f$edit(f$trnlnm("SHARE_EXCLUDE_TYPES"), "TRIM,UPCASE")+",.DIR,"
  $ TempFile  = f$parse("SHARE_TEMP","SYS$SCRATCH:SHARE_TEMP."+f$getjpi("","PID"))
  $ TempFile  = TempFile - f$parse(TempFile,,,"VERSION")
  $
--- 123,132 -----
  $ PackageIdx= f$edit(f$trnlnm("SHARE_PACKAGE_INDEX"), "TRIM,COMPRESS")
  $ Part_Size = f$edit(f$trnlnm("SHARE_PART_SIZE"),     "TRIM,COMPRESS")
  $ Real_Name = f$edit(f$trnlnm("SHARE_REAL_NAME"),     "TRIM,COMPRESS")
! $ X_Files   = ","+f$edit(f$trnlnm("SHARE_EXCLUDE_FILES"), "TRIM,UPCASE")+","-",,"
! $ X_Dirs    = ","+f$edit(f$trnlnm("SHARE_EXCLUDE_DIRS"),  "TRIM,UPCASE")+","-",,"
! $ X_Names   = ","+f$edit(f$trnlnm("SHARE_EXCLUDE_NAMES"), "TRIM,UPCASE")+","-",,"
! $ X_Types   = ","+f$edit(f$trnlnm("SHARE_EXCLUDE_TYPES"), "TRIM,UPCASE")+",.DIR,"-",,"
  $ TempFile  = f$parse("SHARE_TEMP","SYS$SCRATCH:SHARE_TEMP."+f$getjpi("","PID"))
  $ TempFile  = TempFile - f$parse(TempFile,,,"VERSION")
  $
**************
*** 555,561
  $
  $! Check the exclusion clauses to see if we should consider this file
  $ File_Dir  = f$parse(File,,,"DIRECTORY")
! $ if f$locate(File_Dir,X_Dirs)       .ne. f$length(X_Dirs)  then $ return
  $ File_Name = f$parse(File,,,"NAME")
  $ if f$locate(File_Name,X_Names)     .ne. f$length(X_Names) then $ return
  $ File_Type = f$parse(File,,,"TYPE") 
--- 555,561 -----
  $
  $! Check the exclusion clauses to see if we should consider this file
  $ File_Dir  = f$parse(File,,,"DIRECTORY")
! $ if f$locate(","+File_Dir+",",X_Dirs)   .ne. f$length(X_Dirs)  then $ return
  $ File_Name = f$parse(File,,,"NAME")
  $ if f$locate(","+File_Name+",",X_Names) .ne. f$length(X_Names) then $ return
  $ File_Type = f$parse(File,,,"TYPE") 
**************
*** 557,563
  $ File_Dir  = f$parse(File,,,"DIRECTORY")
  $ if f$locate(File_Dir,X_Dirs)       .ne. f$length(X_Dirs)  then $ return
  $ File_Name = f$parse(File,,,"NAME")
! $ if f$locate(File_Name,X_Names)     .ne. f$length(X_Names) then $ return
  $ File_Type = f$parse(File,,,"TYPE") 
  $ if f$locate(File_Type,X_Types)     .ne. f$length(X_Types) then $ return
  $ File_Filename = File_Name + File_Type
--- 557,563 -----
  $ File_Dir  = f$parse(File,,,"DIRECTORY")
  $ if f$locate(","+File_Dir+",",X_Dirs)   .ne. f$length(X_Dirs)  then $ return
  $ File_Name = f$parse(File,,,"NAME")
! $ if f$locate(","+File_Name+",",X_Names) .ne. f$length(X_Names) then $ return
  $ File_Type = f$parse(File,,,"TYPE") 
  $ if f$locate(","+File_Type+",",X_Types) .ne. f$length(X_Types) then $ return
  $ File_Filename = File_Name + File_Type
**************
*** 559,565
  $ File_Name = f$parse(File,,,"NAME")
  $ if f$locate(File_Name,X_Names)     .ne. f$length(X_Names) then $ return
  $ File_Type = f$parse(File,,,"TYPE") 
! $ if f$locate(File_Type,X_Types)     .ne. f$length(X_Types) then $ return
  $ File_Filename = File_Name + File_Type
  $ if f$locate(File_FileName,X_Files) .ne. f$length(X_Files) then $ return
  $ File_Device   = f$parse(File,,,"DEVICE")
--- 559,565 -----
  $ File_Name = f$parse(File,,,"NAME")
  $ if f$locate(","+File_Name+",",X_Names) .ne. f$length(X_Names) then $ return
  $ File_Type = f$parse(File,,,"TYPE") 
! $ if f$locate(","+File_Type+",",X_Types) .ne. f$length(X_Types) then $ return
  $ File_Filename = File_Name + File_Type
  $ if f$locate(","+File_FileName+",",X_Files) .ne. f$length(X_Files) then $ return
  $ File_Device   = f$parse(File,,,"DEVICE")
**************
*** 561,567
  $ File_Type = f$parse(File,,,"TYPE") 
  $ if f$locate(File_Type,X_Types)     .ne. f$length(X_Types) then $ return
  $ File_Filename = File_Name + File_Type
! $ if f$locate(File_FileName,X_Files) .ne. f$length(X_Files) then $ return
  $ File_Device   = f$parse(File,,,"DEVICE")
  $ Dir_Device    = f$parse(Current_Directory,,,"DEVICE")
  $ Dir_Directory = f$parse(Current_Directory,,,"DIRECTORY")
--- 561,567 -----
  $ File_Type = f$parse(File,,,"TYPE") 
  $ if f$locate(","+File_Type+",",X_Types) .ne. f$length(X_Types) then $ return
  $ File_Filename = File_Name + File_Type
! $ if f$locate(","+File_FileName+",",X_Files) .ne. f$length(X_Files) then $ return
  $ File_Device   = f$parse(File,,,"DEVICE")
  $ Dir_Device    = f$parse(Current_Directory,,,"DEVICE")
  $ Dir_Directory = f$parse(Current_Directory,,,"DIRECTORY")
--
!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++!
! Richard Levitte, System manager         ! tel: int+46-8-790 64 23           !
! Royal Institute of Technology           ! fax: int+46-8-791 76 54           !
! Department of Telecommunication Theory  ! Internet: richard@ttt.kth.se      !
! S-100 44 Stockholm, Sweden              !                                   !
!-----------------------------------------------------------------------------!