commit 865ad8584c4290f6a55d7d35433e2480798cca73 parent 1f37c2230a72556053b9fefd1fe1dac7692f32d9 Author: Sam Tobin-Hochstadt <samth@racket-lang.org> Date: Tue, 16 Nov 2010 13:27:50 -0500 Sort bib entries by year when authors are equal. Works only when just the year is specified. original commit: d50eac2effe61bcd7e3fa9584b5dab652b54938f Diffstat:
| M | collects/scriblib/autobib.rkt | | | 15 | ++++++++++++--- |
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/collects/scriblib/autobib.rkt b/collects/scriblib/autobib.rkt @@ -88,12 +88,21 @@ (define (extract-bib-key b) (author-element-names (auto-bib-author b))) +(define (extract-bib-year b) + (string->number (auto-bib-date b))) + + (define (gen-bib tag group) - (let* ([author<? (lambda (a b) - (string<? (extract-bib-key a) (extract-bib-key b)))] + (let* ([author/date<? + (lambda (a b) + (or + (string<? (extract-bib-key a) (extract-bib-key b)) + (and (string=? (extract-bib-key a) (extract-bib-key b)) + (extract-bib-year a) (extract-bib-year b) + (< (extract-bib-year a) (extract-bib-year b)))))] [bibs (sort (hash-map (bib-group-ht group) (lambda (k v) k)) - author<?)]) + author/date<?)]) (make-part #f `((part ,tag))