# This is a config file for bibtool, see
#    http://www.gerd-neugebauer.de/software/TeX/BibTool/en/
# To use it, invoke bibtool as follows:
#   bibtool docs/src/refs.bib -o docs/src/refs.bib
#
# This file was copied from https://github.com/oscar-system/Oscar.jl version 1.1.0

sort = on

# sort order for fields
sort.order{* =
    bibkey
    author
    title
    editor
    booktitle
    mrnumber
    zbl
    journal
    fjournal
    series
    volume
    number
    note
    howpublished
    address
    organization
    publisher
    edition
    pages
    year
    month
    doi
    url
}

print.align.key = 0
print.line.length = 120
preserve.key.case = on
sort.cased = off
print.use.tab = off

delete.field = { hal_id }
delete.field = { hal_version }
delete.field = { isbn }
delete.field = { issn }
delete.field = { keywords }
delete.field = { mrclass }
delete.field = { mrreviewer }
delete.field = { msc2010 }

fmt.name.name = { }
fmt.inter.name = { x }

key.format =
{
    %s(bibkey)
 #
    %.1#n(author)
    { %1.3n(author) }
    { %2d(year) }
 #
    { %+8.1n(author) }
    { %2d(year) }
}

# Enforce "{...}" around fields
rewrite.rule {"^\"\([^#]*\)\"$" "{\1}"}
rewrite.rule {"^ *\([0-9]*\) *$" "{\1}"}

# Remove empty fields
rewrite.rule {"^{ *}$"}

# Unify page range separator
rewrite.rule {pages "\([0-9]+\) *\(-\|---\|–\) *\([0-9]+\)" "\1--\3"}

# Check that 1800<=year<=2029
check.rule { year "^[\"{]1[89][0-9][0-9][\"}]$" }
check.rule { year "^[\"{]20[0-2][0-9][\"}]$" }
check.error.rule { year "" "\@ \$: Year has to be a suitable number" }

# Check that the doi field is not a URL
check.error.rule { doi "\://" "\@ \$: doi field should not be a URL" }

# Check that the url field is not a DOI
check.error.rule { url "doi\.org/" "\@ \$: url field should not contain a doi. Use the doi field instead" }
