From 63b5cbc5757ce0487ed1d557c491b46079add64e Mon Sep 17 00:00:00 2001 From: Nick Hopper Date: Wed, 22 Jan 2014 21:39:14 -0600 Subject: Changes to allow comma-split www_sections --- BibTeX.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'BibTeX.py') diff --git a/BibTeX.py b/BibTeX.py index 110e5ff..e076200 100644 --- a/BibTeX.py +++ b/BibTeX.py @@ -10,6 +10,7 @@ import cStringIO import re import sys import os +import copy import config @@ -160,10 +161,15 @@ def splitEntriesBy(entries, field): result = {} for ent in entries: key = ent.get(field) - try: - result[key].append(ent) - except: - result[key] = [ent] + if field in config.MULTI_VAL_FIELDS: + key = [k.strip() for k in key.split(',')] + else: + key = [key] + for k in key: + try: + result[k].append(ent) + except: + result[k] = [ent] return result def splitSortedEntriesBy(entries, field): @@ -195,7 +201,12 @@ def sortEntriesBy(entries, field, default): v = ent.get(field, default) if v.startswith(""): v = default - tmp.append((txtize(v), i, ent)) + if field in config.MULTI_VAL_FIELDS: + for v_j in v.split(','): + ent_j = copy.deepcopy(ent) + ent_j.__setitem__(field, v_j.strip()) + tmp.append((txtize(v_j.strip()), i, ent_j)) + else: tmp.append((txtize(v), i, ent)) tmp.sort() return [ t[2] for t in tmp ] -- cgit v1.2.3-70-g09d2