From 458727a5600af8683101e9362eca9c9a003462f8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 5 Apr 2011 21:35:26 -0600 Subject: [PATCH] ... --- src/calibre/ebooks/metadata/book/base.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index 328ab7be26..ff22cd3608 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -125,7 +125,10 @@ class Metadata(object): _data = object.__getattribute__(self, '_data') if field in TOP_LEVEL_IDENTIFIERS: field, val = self._clean_identifier(field, val) - _data['identifiers'].update({field: val}) + identifiers = _data['identifiers'] + identifiers.pop(field, None) + if val: + identifiers[field] = val elif field == 'identifiers': if not val: val = copy.copy(NULL_VALUES.get('identifiers', None)) @@ -224,8 +227,7 @@ class Metadata(object): identifiers = object.__getattribute__(self, '_data')['identifiers'] - if not val and typ in identifiers: - identifiers.pop(typ) + identifiers.pop(typ, None) if val: identifiers[typ] = val @@ -647,7 +649,7 @@ class Metadata(object): fmt('Tags', u', '.join([unicode(t) for t in self.tags])) if self.series: fmt('Series', self.series + ' #%s'%self.format_series_index()) - if self.language: + if not self.is_null('language'): fmt('Language', self.language) if self.rating is not None: fmt('Rating', self.rating)