#
# 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-AT-EOF"

# 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=""
