113
115
local patch=$1 patch_file=$2
116
[ -s $patch_file ] || return 0
118
[ -s "$patch_file" ] || return 0
118
set -- patch $QUILT_PATCH_OPTS $(push_patch_args $patch) \
120
set -- patch $QUILT_PATCH_OPTS $(push_patch_args "$patch") \
119
121
--backup --prefix="$QUILT_PC/$patch/" \
120
122
$no_reject_files -E $more_patch_args
122
124
if [ "${patch_file:(-3)}" = ".gz" ]
124
gzip -cd $patch_file | "$@" 2>&1
126
gzip -cd "$patch_file" | "$@" 2>&1
125
127
elif [ "${patch_file:(-4)}" = ".bz2" ]
127
bzip2 -cd $patch_file | "$@" 2>&1
129
bzip2 -cd "$patch_file" | "$@" 2>&1
128
130
elif [ "${patch_file:(-3)}" = ".xz" ]
130
xz -cd $patch_file | "$@" 2>&1
132
xz -cd "$patch_file" | "$@" 2>&1
131
133
elif [ "${patch_file:(-5)}" = ".lzma" ]
133
lzma -cd $patch_file | "$@" 2>&1
135
lzma -cd "$patch_file" | "$@" 2>&1
135
"$@" -i $patch_file 2>&1
137
"$@" -i "$patch_file" 2>&1
175
local patch_file=$(patch_file_name $patch)
177
local patch_file=$(patch_file_name "$patch")
176
178
local file status tmp
178
printf $"Applying patch %s\n" "$(print_patch $patch)"
180
printf $"Applying patch %s\n" "$(print_patch "$patch")"
179
181
trap "interrupt $patch" SIGINT
182
184
if [ -z "$opt_leave_rejects" ]; then
183
tmp="$(gen_tempfile)"
184
186
no_reject_files="-r $tmp"
187
apply_patch $patch "$patch_file"
189
apply_patch "$patch" "$patch_file"
191
193
[ -n "$tmp" ] && rm -f $tmp
193
if [ $status -eq 0 -o \
194
\( $status -eq 1 -a -n "$opt_force" \) ]
195
if [ $status -eq 0 -o -n "$opt_force" ]
197
198
if [ $status -eq 0 ]
199
rm -f $QUILT_PC/$patch~refresh
200
rm -f "$QUILT_PC/$patch~refresh"
201
touch $QUILT_PC/$patch~refresh
202
touch "$QUILT_PC/$patch~refresh"
204
205
if [ -e "$QUILT_PC/$patch" ]
206
touch $QUILT_PC/$patch/.timestamp
207
touch "$QUILT_PC/$patch/.timestamp"
208
209
mkdir "$QUILT_PC/$patch"
211
if ! [ -e $patch_file ]
212
if ! [ -e "$patch_file" ]
213
214
printf $"Patch %s does not exist; applied empty patch\n" \
214
"$(print_patch $patch)"
215
"$(print_patch "$patch")"
215
216
elif [ -z "$(shopt -s nullglob ; echo "$QUILT_PC/$patch/"*)" ]
217
218
printf $"Patch %s appears to be empty; applied\n" \
218
"$(print_patch $patch)"
219
"$(print_patch "$patch")"
219
220
elif [ $status -ne 0 ]
221
222
printf $"Applied patch %s (forced; needs refresh)\n" \
222
"$(print_patch $patch)"
223
"$(print_patch "$patch")"
225
rollback_patch $patch
226
tmp="$(gen_tempfile)"
226
rollback_patch "$patch"
227
228
no_reject_files="-r $tmp"
229
if apply_patch $patch "$patch_file" > /dev/null 2> /dev/null
230
if apply_patch "$patch" "$patch_file" > /dev/null 2> /dev/null
231
232
printf $"Patch %s can be reverse-applied\n" \
232
233
"$(print_patch "$patch")"
234
235
printf $"Patch %s does not apply (enforce with -f)\n" \
235
"$(print_patch $patch)"
236
"$(print_patch "$patch")"
237
rollback_patch $patch
238
rollback_patch "$patch"
371
372
[ -n "$opt_fuzz" ] && more_patch_args="$more_patch_args -F$opt_fuzz"
374
if [ -n "$top" -a -e $QUILT_PC/$top~refresh ]
375
if [ -n "$top" -a -e "$QUILT_PC/$top~refresh" ]
376
377
printf $"The topmost patch %s needs to be refreshed first.\n" \
377
"$(print_patch $top)"
378
"$(print_patch "$top")"