5748056 [rkeene@sledge /home/rkeene/projects/starkit2exe/support]$ cat -n sdx.kit.diff
  1 diff -uNr sdx.vfs/lib/app-sdx/sync.tcl sdx-1nrl.vfs/lib/app-sdx/sync.tcl
  2 --- sdx.vfs/lib/app-sdx/sync.tcl    2007-03-29 09:40:28.000000000 -0400
  3 +++ sdx-1nrl.vfs/lib/app-sdx/sync.tcl   2008-07-18 18:27:48.000000000 -0400
  4 @@ -5,6 +5,8 @@
  5  #
  6  # Recursively sync two directory structures
  7  #
  8 +package require mk4vfs
  9 +
 10  proc rsync {arr src dest} {
 11      #tclLog "rsync $src $dest"
 12      upvar 1 $arr opts
 13 @@ -12,18 +14,35 @@
 14      if {$opts(-auto)} {
 15     # Auto-mounter
 16     vfs::auto $src -readonly
 17 -   vfs::auto $dest
 18 +        if {$opts(-forcedest)} {
 19 +          if {[file exists $dest]} {
 20 +            if {[file type $dest] != "directory"} {
 21 +              set vfs_mountid [vfs::mk4::Mount $dest $dest]
 22 +            }
 23 +          }
 24 +        } else {
 25 +          vfs::auto $dest
 26 +        }
 27      }
 28  
 29      if {![file exists $src]} {
 30 +        if {[info exists vfs_mountid]} {
 31 +          vfs::mk4::Unmount $vfs_mountid $dest
 32 +        }
 33     return -code error "source \"$src\" does not exist"
 34      }
 35      if {[file isfile $src]} {
 36     #tclLog "copying file $src to $dest"
 37 +        if {[info exists vfs_mountid]} {
 38 +          vfs::mk4::Unmount $vfs_mountid $dest
 39 +        }
 40     return [rcopy opts $src $dest]
 41      }
 42      if {![file isdirectory $dest]} {
 43     #tclLog "copying non-file $src to $dest"
 44 +        if {[info exists vfs_mountid]} {
 45 +          vfs::mk4::Unmount $vfs_mountid $dest
 46 +        }
 47     return [rcopy opts $src $dest]
 48      }
 49      set contents {}
 50 @@ -74,6 +93,9 @@
 51      # Handle stray files
 52      #
 53      if {$opts(-prune) == 0} {
 54 +        if {[info exists vfs_mountid]} {
 55 +          vfs::mk4::Unmount $vfs_mountid $dest
 56 +        }
 57     return $count
 58      }
 59      set contents {}
 60 @@ -90,6 +112,9 @@
 61     rdelete opts $file
 62     incr count
 63      }
 64 +    if {[info exists vfs_mountid]} {
 65 +      vfs::mk4::Unmount $vfs_mountid $dest
 66 +    }
 67      return $count
 68  }
 69  proc _rsync {arr args} {
 70 @@ -237,6 +262,7 @@
 71      -auto  1
 72      -noerror   1
 73      -text  0
 74 +    -forcedest  0
 75  }
 76  # 2005-08-30 only ignore the CVS subdir
 77  # 2007-03-29 added .svn as well
 78 @@ -248,6 +274,7 @@
 79      Where options are:-
 80  
 81      -auto  0|1 Auto-mount starkits (default: $opts(-auto))
 82 +    -forcedest 0|1 Force mounting of dest (default: $opts(-forcedest))
 83      -compress  0|1 Enable MetaKit compression (default: $opts(-compress))
 84      -mtime n   Acceptable difference in mtimes (default: $opts(-mtime))
 85      -prune 0|1 Remove extra files in dest (default: $opts(-prune))
 86 diff -uNr sdx.vfs/lib/app-sdx/wrap.tcl sdx-1nrl.vfs/lib/app-sdx/wrap.tcl
 87 --- sdx.vfs/lib/app-sdx/wrap.tcl    2008-02-24 14:23:35.000000000 -0500
 88 +++ sdx-1nrl.vfs/lib/app-sdx/wrap.tcl   2009-02-09 00:08:21.444422513 -0500
 89 @@ -50,7 +50,7 @@
 90    return $result
 91  }
 92  
 93 -proc LoadHeader {filename} {
 94 +proc LoadHeader {filename {isWin32 0}} {
 95    if {[file normalize $filename] == [info nameofexe]} {
 96      puts stderr "file in use, cannot be prefix: [file normalize $filename]"
 97      exit 1
 98 @@ -60,7 +60,7 @@
 99      package require vfs::mk4
100      vfs::mk4::Mount $filename hdr -readonly
101      # we only look for an icon if the runtime is called *.exe (!)
102 -    if {[string tolower [file extension $filename]] == ".exe"} {
103 +    if {$isWin32} {
104        catch { set ::origicon [readfile hdr/tclkit.ico] }
105      }
106    }
107 @@ -89,6 +89,7 @@
108  set type mk4
109  set explist {}
110  set syncopts {}
111 +set pfileIsWin32 0
112  
113  set a [lindex $argv 1]
114  while {[string match -* $a]} {
115 @@ -99,10 +100,21 @@
116      }
117      -runtime {
118        set pfile [lindex $argv 2]
119 +
120 +      # Determine if runtime file is a Win32 runtime or not
121 +      set fd [open $pfile r]
122 +      fconfigure $fd -encoding binary -translation binary
123 +      set chk [read $fd 3]
124 +      if {$chk == "MZ\220"} {
125 +        set pfileIsWin32 1
126 +      }
127 +      close $fd
128 +      unset fd chk
129 +
130        if {$pfile == $out} {
131         set reusefile 1
132        } else {
133 -       set header [LoadHeader $pfile]
134 +       set header [LoadHeader $pfile $pfileIsWin32]
135        }
136        set argv [lreplace $argv 1 2]
137        set prefix 1
138 @@ -219,7 +231,7 @@
139  
140  # 2005-03-15 added AF's code to customize version/description strings in exe's
141  if {[info exists pfile] && 
142 -    [string tolower [file extension $pfile]] == ".exe" &&
143 +    $pfileIsWin32 &&
144      [file exists [file join $idir tclkit.inf]]} {
145    puts " customizing strings in executable"
146    package require stringfileinfo
5748057 [rkeene@sledge /home/rkeene/projects/starkit2exe/support]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2010-03-05 06:18:05