;;; -*- Mode: Common-Lisp; Package: fs; Base: 10.; Patch-File: T -*-

;;; Reason: Fixed determine-copy-if-newer-date. It was using the wrong file to get the creation-date. [10990]

;;;                           RESTRICTED RIGHTS LEGEND
;;;
;;; Use, duplication, or disclosure by the Government is subject to
;;; restrictions as set forth in subdivision (c)(1)(ii) of the Rights in
;;; Technical Data and Computer Software clause at 52.227-7013.
;;;
;;;   TEXAS INSTRUMENTS INCORPORATED      
;;;   P.O. BOX 2909, M/S 2151             
;;;   AUSTIN, TEXAS 78769                 
;;;
;;; Copyright (C) 1989 Texas Instruments Incorporated.
;;; All rights reserved.

;;; Patch file for BASIC-FILE version 6.10
;;; Written 03/23/90 10:07:57 by BERGER,
;;; while running on Pasteur from band LOD2
;;; With SYSTEM 6.31, VIRTUAL-MEMORY 6.3, EH 6.6, MAKE-SYSTEM 6.2, MICRONET 6.0, LOCAL-FILE 6.2,
;;;  BASIC-PATHNAME 6.4, NETWORK-SUPPORT-COLD 6.2, BASIC-NAMESPACE 6.7, NETWORK-NAMESPACE 6.1,
;;;  DISK-IO 6.2, DISK-LABEL 6.0, BASIC-FILE 6.9, MAC-PATHNAME 6.0, NETWORK-PATHNAME 6.1,
;;;  COMPILER 6.14, TV 6.24, DATALINK 6.0, CHAOSNET 6.5, GC 6.3, MEMORY-AUX 6.0, NVRAM 6.2,
;;;  SYSLOG 6.2, STREAMER-TAPE 6.5, UCL 6.0, INPUT-EDITOR 6.0, METER 6.1, ZWEI 6.13,
;;;  DEBUG-TOOLS 6.4, NETWORK-SUPPORT 6.1, NETWORK-SERVICE 6.2, DATALINK-DISPLAYS 6.0,
;;;  FONT-EDITOR 6.1, SERIAL 6.0, PRINTER 6.3, MAC-PRINTER-TYPES 6.1, PRINTER-TYPES 6.2,
;;;  IMAGEN 6.1, SUGGESTIONS 6.1, MAIL-DAEMON 6.5, MAIL-READER 6.7, TELNET 6.1, VT100 6.0,
;;;  NAMESPACE-EDITOR 6.4, PROFILE 6.2, VISIDOC 6.7, TI-CLOS 6.42, CLEH 6.5, IP 3.59,
;;;  Experimental CLX 6.8, CLUE 6.85, X11M 6.20, Experimental BUG 11.18,  microcode 648,
;;;  Band Name: rel6.0 1/23

#!C
; From file OPEN.LISP#> BASIC-FILE; sys:
#10R FILE-SYSTEM#:
(COMPILER-LET ((*PACKAGE* (FIND-PACKAGE "FILE-SYSTEM"))
                          (SI:*LISP-MODE* :COMMON-LISP)
                          (*READTABLE* COMMON-LISP-READTABLE)
                          (SI:*READER-SYMBOL-SUBSTITUTIONS* SYS::*COMMON-LISP-SYMBOL-SUBSTITUTIONS*))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: BASIC-FILE; OPEN.#"


(defun determine-copy-if-newer-date (input-plist output-spec input-stream if-exists)
  (when (equal if-exists :copy-if-newer-date)           ;; mp 3/8/88
	      	 (let* ((dest-creation-date
			(if (pathnamep output-spec)
			     (ignore-errors  ; DAB 01-16-89 Don't error just because it not out there.
			       (getf (member  :creation-date
					   (fs:file-properties
					     ;;DAB 03-23-90 Merge pathname components from input-plist.
					     (send  (if (pathnamep  (car input-plist))
							(merge-pathnames output-spec (car input-plist))
							output-spec)
						    :new-pathname :version :newest)))
			       :creation-date))))
		      in-date compare-date copy-if-newer-date)
		 (setq copy-if-newer-date (if (numberp dest-creation-date)
					      (time:print-universal-time dest-creation-date nil)))
		 (setq in-date (OR (GETF (CDR INPUT-PLIST) :CREATION-DATE) (NULL INPUT-STREAM)
				   (SEND INPUT-STREAM :CREATION-DATE)))
		 (setq compare-date (if (stringp copy-if-newer-date)
					(TIME:PARSE-UNIVERSAL-TIME copy-if-newer-date)))
		 (if (AND (NUMBERP IN-DATE) (NUMBERP COMPARE-DATE))
		     (if (> IN-DATE COMPARE-DATE)
			 (setq if-exists :supersede)
			 (setq if-exists nil))
		     (setq if-exists nil))))
  if-exists)
))
