#
# dispatch-conf.conf
#

# Directory to archive replaced configs
archive-dir=${EPREFIX}/etc/config-archive

# Use rcs for storing files in the archive directory?
# NOTE: You should install dev-vcs/rcs before enabling this option.
# WARNING: When configured to use rcs, read and execute permissions of
# archived files may be inherited from the first check in of a working
# file, as documented in the ci(1) man page. This means that even if
# the permissions of the working file have since changed, the older
# permissions of the first check in may be inherited. As mentioned in
# the ci(1) man page, users can control access to RCS files by setting
# the permissions of the directory containing the files (see
# archive-dir above).
# (yes or no)
use-rcs=no

# Diff for display
# %s old file
# %s new file
# If using colordiff instead of diff, the less -R option may be required
# for correct display.
diff="diff -Nu '%s' '%s'"

# Set the pager for use with diff commands (this will
# cause the PAGER environment variable to be ignored).
# Setting pager="cat" will disable pager usage.
pager=""

# Default options used if less is the pager
less-opts="--no-init --quit-if-one-screen"

# Diff for interactive merges.
# %s output file
# %s old file
# %s new file
merge="sdiff --suppress-common-lines --output='%s' '%s' '%s'"

# Automerge files comprising only CVS interpolations (e.g. Header or Id)
# (yes or no)
replace-cvs=yes

# Automerge files comprising only whitespace and/or comments
# (yes or no)
replace-wscomments=no

# Automerge files that the user hasn't modified
# (yes or no)
replace-unmodified=no

# Ignore a version that is identical to the previously merged version,
# even though it is different from the current user modified version
# Note that emerge already has a similar feature enabled by default,
# which can be disabled by the emerge --noconfmem option.
# (yes or no)
ignore-previously-merged=no

# Per-session log file of changes made to configuration files
#log-file=/var/log/dispatch-conf.log

# List of frozen files for which dispatch-conf will automatically zap updates
#frozen-files=""
