1.1 --- a/scripts/functions Mon Aug 31 11:57:13 2009 +0200
1.2 +++ b/scripts/functions Mon Aug 31 12:05:52 2009 +0200
1.3 @@ -585,8 +585,10 @@
1.4 local nochdir="$2"
1.5 local base_file="${basename%%-*}"
1.6 local ver_file="${basename#*-}"
1.7 - local official_patch_dir
1.8 - local custom_patch_dir
1.9 + local d
1.10 + local -a patch_dirs
1.11 + local bundled_patch_dir
1.12 + local local_patch_dir
1.13
1.14 # Check if already patched
1.15 if [ -e "${CT_SRC_DIR}/.${basename}.patched" ]; then
1.16 @@ -609,13 +611,19 @@
1.17
1.18 CT_DoLog EXTRA "Patching '${basename}'"
1.19
1.20 - official_patch_dir=
1.21 - custom_patch_dir=
1.22 - [ "${CT_CUSTOM_PATCH_ONLY}" = "y" ] || official_patch_dir="${CT_LIB_DIR}/patches/${base_file}/${ver_file}"
1.23 - [ "${CT_CUSTOM_PATCH}" = "y" ] && custom_patch_dir="${CT_CUSTOM_PATCH_DIR}/${base_file}/${ver_file}"
1.24 - for patch_dir in "${official_patch_dir}" "${custom_patch_dir}"; do
1.25 - if [ -n "${patch_dir}" -a -d "${patch_dir}" ]; then
1.26 - for p in "${patch_dir}"/*.patch; do
1.27 + bundled_patch_dir="${CT_LIB_DIR}/patches/${base_file}/${ver_file}"
1.28 + local_patch_dir="${CT_CUSTOM_PATCH_DIR}/${base_file}/${ver_file}"
1.29 +
1.30 + case "${CT_PATCH_ORDER}" in
1.31 + bundled) patch_dirs=("${bundled_patch_dir}");;
1.32 + local) patch_dirs=("${local_patch_dir}");;
1.33 + bundled,local) patch_dirs=("${bundled_patch_dir}" "${local_patch_dir}");;
1.34 + esac
1.35 +
1.36 + for d in "${patch_dirs[@]}"; do
1.37 + CT_DoLog DEBUG "Looking for patches in '${d}'..."
1.38 + if [ -n "${d}" -a -d "${d}" ]; then
1.39 + for p in "${d}"/*.patch; do
1.40 if [ -f "${p}" ]; then
1.41 CT_DoLog DEBUG "Applying patch '${p}'"
1.42 CT_DoExecLog ALL patch -g0 -F1 -p1 -f <"${p}"