www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 51a3687123713ad33ff210df997a18c998fca329
parent bc47b6b17171a453958a669f0f53e873bca4253b
Author: Dan Stillman <dstillman@zotero.org>
Date:   Wed, 12 Oct 2016 19:29:32 -0400

Merge branch '4.0'

Diffstat:
Mchrome/content/zotero/xpcom/citeproc.js | 36+++++++++++++++++++++++++-----------
Minstall.rdf | 1+
Mresource/schema/repotime.txt | 2+-
3 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/chrome/content/zotero/xpcom/citeproc.js b/chrome/content/zotero/xpcom/citeproc.js @@ -23,7 +23,7 @@ * <http://www.gnu.org/licenses/> respectively. */ var CSL = { - PROCESSOR_VERSION: "1.1.136", + PROCESSOR_VERSION: "1.1.138", CONDITION_LEVEL_TOP: 1, CONDITION_LEVEL_BOTTOM: 2, PLAIN_HYPHEN_REGEX: /(?:[^\\]-|\u2013)/, @@ -126,7 +126,8 @@ var CSL = { "hearing": true, "gazette": true, "report": true, - "regulation": true + "regulation": true, + "standard": true }, NestedBraces: [ ["(", "["], @@ -227,7 +228,7 @@ var CSL = { } return lst.join("-"); }, - parseNoteFieldHacks: function(Item, allowDateOverride) { + parseNoteFieldHacks: function(Item, validFieldsForType, allowDateOverride) { if ("string" !== typeof Item.note) return; var elems = []; var lines = Item.note.split('\n'); @@ -254,6 +255,7 @@ var CSL = { } } lines = lines.join('\n').split('\n'); + var offset = 0; var names = {}; for (var i=0,ilen=lines.length;i<ilen;i++) { var line = lines[i]; @@ -264,6 +266,7 @@ var CSL = { if (i === 0) { continue; } else { + offset = i; break; } } @@ -275,7 +278,9 @@ var CSL = { } else if (CSL.DATE_VARIABLES.indexOf(key) > -1) { if (allowDateOverride) { Item[key] = {raw: val}; - lines[i] = ""; + if (!validFieldsForType || (validFieldsForType[key] && val.match(/^[0-9]{4}(?:-[0-9]{1,2}(?:-[0-9]{1,2})*)*$/))) { + lines[i] = ""; + } } } else if (!Item[key]) { if (CSL.NAME_VARIABLES.indexOf(key) > -1) { @@ -293,13 +298,25 @@ var CSL = { } else { Item[key] = val; } - lines[i] = ""; + if (!validFieldsForType || validFieldsForType[key]) { + lines[i] = ""; + } } } for (var key in names) { Item[key] = names[key]; } - Item.note = lines.join("").trim(); + if (validFieldsForType) { + if (lines[offset].trim()) { + lines[offset] = '\n' + lines[offset] + } + for (var i=offset-1;i>-1;i--) { + if (!lines[i].trim()) { + lines = lines.slice(0, i).concat(lines.slice(i + 1)); + } + } + } + Item.note = lines.join("\n").trim(); }, GENDERS: ["masculine", "feminine"], ERROR_NO_RENDERED_FORM: 1, @@ -2840,7 +2857,7 @@ CSL.Engine.prototype.retrieveItem = function (id) { } } if (this.opt.development_extensions.field_hack && Item.note) { - CSL.parseNoteFieldHacks(Item, this.opt.development_extensions.allow_field_hack_date_override); + CSL.parseNoteFieldHacks(Item, false, this.opt.development_extensions.allow_field_hack_date_override); } for (var i = 1, ilen = CSL.DATE_VARIABLES.length; i < ilen; i += 1) { var dateobj = Item[CSL.DATE_VARIABLES[i]]; @@ -6978,9 +6995,6 @@ CSL.Node.group = { state.buildTokenLists(myNodes[i], state.juris[jurisdiction][myName]); state.configureTokenList(state.juris[jurisdiction][myName]); } - if (macroCount < Object.keys(state.juris[jurisdiction].types).length) { - throw "CSL ERROR: Incomplete jurisdiction style module for: " + jurisdiction; - } } } for (var i=0,ilen=jurisdictionList.length;i<ilen;i++) { @@ -13535,7 +13549,7 @@ CSL.Engine.prototype.processNumber = function (node, ItemObject, variable, type) info.plural = 0; info.labelVisibility = false; } - var m = val.match(/^([a-zA-Z]0*)([0-9]+(?:[a-zA-Z]*|[-,a-zA-Z]+))$/); + var m = val.match(/^([a-zA-Z0]*)([0-9]+(?:[a-zA-Z]*|[-,a-zA-Z]+))$/); if (m) { info.particle = m[1]; info.value = m[2]; diff --git a/install.rdf b/install.rdf @@ -18,6 +18,7 @@ <em:aboutURL>chrome://zotero/content/about.xul</em:aboutURL> <em:iconURL>chrome://zotero/skin/zotero-new-z-48px.png</em:iconURL> <em:updateURL>https://www.zotero.org/download/update-source.rdf</em:updateURL> + <em:multiprocessCompatible>false</em:multiprocessCompatible> <em:type>2</em:type> <!-- type=extension --> <!-- Firefox --> diff --git a/resource/schema/repotime.txt b/resource/schema/repotime.txt @@ -1 +1 @@ -2016-09-10 12:00:00 +2016-10-01 04:05:00