/usr/lib/gnu-smalltalk/vfs/patchfs is in gnu-smalltalk 3.2.4-2.1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #!/bin/sh
# Peter Daum <gator@cs.tu-berlin.de> (Jan 1998, mc-4.1.22)
# paths to used programs:
ncat=cat # regular cat
zcat=zcat # gunzip to stdout
bzcat="bzip2 -dc" # bunzip2 to stdout
file=file # "file" command
sed=sed
filelist=FILELIST # names for "special" files
patchfs_list ()
{
date=`date +"%b %d %H:%M"`
perm="-r--r--r--"
uid=00000000
gid=00000000
size=00000000
nlink=" 1"
echo "$perm $nlink $uid $gid $size $date $filelist"
$cat $1 |
$sed -n "/^diff /{
s|^.* \([^ ]*\)$|$perm $nlink $uid $gid $size $date \1|gp
}"
}
patchfs_copyout ()
{
if [ "$2" = "$filelist" ]; then # list of all affected files
$cat $1 |
$sed -n "/^diff /{
s|^.* \([^ ]*\)$|\1|gp
}" > $3
exit 0
fi
fn=`echo $2|$sed 's|/|\\\/|g'` # escape '/' in filename
$cat $1 |
$sed -n "/^diff .*$fn/,/^diff /{
/^diff ./{
/$fn/p
d
}
p
}" > $3
}
patchfs_run ()
{
exit 0
}
type=`$file $2`
case $type in
*bzip*) cat=$bzcat ;;
*gzip*) cat=$zcat ;;
*text*) cat=$ncat ;;
*) exit 1
esac
umask 077
case "$1" in
list) patchfs_list $2; exit 0;;
copyout) patchfs_copyout $2 $3 $4; exit 0;;
run) patchfs_run; exit 0;;
esac
exit 1
|