default_pre_build      &&
cd ${SOURCE_DIRECTORY} &&

if [[ $DMENU_PASSWORD == y ]]; then
  verify_file 2 &&

  interdiff ${SOURCE_CACHE}/${SOURCE2} /dev/null > "${SOURCE_DIRECTORY}/${SOURCE2}" &&
  patch -p0 < "${SPELL_DIRECTORY}/password.patch" &&
  patch -p1 < "${SOURCE_DIRECTORY}/${SOURCE2}" || exit 1
fi &&

if [[ $DMENU_LINEHEIGHT == y ]]; then
  verify_file 3 &&

  cat ${SOURCE_CACHE}/${SOURCE3} | sed "s:@@ -683,6 +684,7 @@:@@ -686,6 +687,7 @@:" | patch -p1 -F3 || exit 1 # ignore context in case previous patch was applied
fi &&

if [[ $DMENU_XRESOURCES_ALT == y ]]; then
  verify_file 9 &&

  cat ${SOURCE_CACHE}/${SOURCE9} > "${SOURCE_DIRECTORY}/${SOURCE9}" &&
  patch -p0 < "${SPELL_DIRECTORY}/xresources-alt.patch" &&

  if [[ $DMENU_FUZZYHIGHLIGHT == y ]]; then
    patch -p0 < "${SPELL_DIRECTORY}/xresources-alt_fhl.patch" || exit 1
  fi

  patch -p1 < "${SOURCE_DIRECTORY}/${SOURCE9}" || exit 1
fi &&

if [[ $DMENU_MOUSE_SUPPORT == y ]]; then
  verify_file 4 &&

  cat ${SOURCE_CACHE}/${SOURCE4} | patch -p1 || exit 1
fi &&

if [[ $DMENU_NUMBERS == y ]]; then
  verify_file 5 &&

  cat ${SOURCE_CACHE}/${SOURCE5} | patch -p1 || exit 1
fi &&

if [[ $DMENU_XYW == y ]]; then
  verify_file 6 &&

  if [[ $DMENU_PASSWORD == y ]] || [[ $DMENU_LINEHEIGHT == y ]]; then
    if [[ $DMENU_MOUSE_SUPPORT == y ]]; then
      cat ${SOURCE_CACHE}/${SOURCE6} | sed "s:@@ -690,6 +693,7 @@:@@ -694,6 +696,7 @@:" | patch -p1 -F3 || exit 1 # ignore context in case password/lineheight patch was applied
    else
      cat ${SOURCE_CACHE}/${SOURCE6} | patch -p1 -F3 || exit 1 # ignore context in case password/lineheight patch was applied
    fi
  else
    cat ${SOURCE_CACHE}/${SOURCE6} | patch -p1 || exit 1
  fi
fi &&

if [[ $DMENU_FUZZYMATCH == y ]]; then
  verify_file 7 &&

  cat ${SOURCE_CACHE}/${SOURCE7} > "${SOURCE_DIRECTORY}/${SOURCE7}" &&

  if [[ $DMENU_XRESOURCES_ALT == y ]]; then
    patch -p0 < "${SPELL_DIRECTORY}/fuzzymatch_xra.patch" || exit 1
  else
    patch -p0 < "${SPELL_DIRECTORY}/fuzzymatch.patch" || exit 1
  fi &&

  patch -p1 < "${SOURCE_DIRECTORY}/${SOURCE7}" &&

  sedit "s:-bfi:-bfiF:" "${SOURCE_DIRECTORY}/dmenu.c"
fi &&

if [[ $DMENU_FUZZYHIGHLIGHT == y ]]; then
  verify_file 8 &&

  cat ${SOURCE_CACHE}/${SOURCE8} > "${SOURCE_DIRECTORY}/${SOURCE8}" &&
  patch -p0 < "${SPELL_DIRECTORY}/fuzzyhighlight.patch" &&

  if [[ $DMENU_XRESOURCES_ALT == y ]]; then
    patch -p0 < "${SPELL_DIRECTORY}/fuzzyhighlight_xra.patch" || exit 1
  fi &&

  patch -p1 -F3 < "${SOURCE_DIRECTORY}/${SOURCE8}" || exit 1
fi &&

if is_version_less $(installed_version fontconfig) 2.11.91; then
  echo '#define FC_COLOR "color"' >> drw.h
fi &&

if [[ $DMENU_CONFIG == y ]]; then
  if [[ -e "${INSTALL_ROOT}/usr/share/doc/dmenu/config.def.h" ]]; then
    cp -v "${INSTALL_ROOT}/usr/share/doc/dmenu/config.def.h" ./
  fi &&

  if query "Do you want to edit your config now?" n; then
    if [ -z"$EDITOR" ]; then
      . /etc/profile.d/editor.sh
    fi
    ${EDITOR:-nano} config.def.h
  fi
fi &&

# Fix flags and system paths
sedit '
	/^PREFIX *=/{s@=.*@= '"$INSTALL_ROOT"'/usr@}
	/^\(C\|LD\)FLAGS *=/{s@=@+=@}
	s@= *-[IL][$](X11...)@=@
'     config.mk
