CB-9836 Add .gitattributes to prevent CRLF line endings in repos

Normalizes plist line endings to be LF

github: close #231
This commit is contained in:
daserge 2015-11-05 12:02:49 +03:00
parent 32edaee3a2
commit dac02bef8c
6 changed files with 2614 additions and 2520 deletions

94
.gitattributes vendored Normal file
View File

@ -0,0 +1,94 @@
* text eol=lf
# source code
*.php text
*.css text
*.sass text
*.scss text
*.less text
*.styl text
*.js text
*.coffee text
*.json text
*.htm text
*.html text
*.xml text
*.svg text
*.txt text
*.ini text
*.inc text
*.pl text
*.rb text
*.py text
*.scm text
*.sql text
*.sh text
*.bat text
# templates
*.ejs text
*.hbt text
*.jade text
*.haml text
*.hbs text
*.dot text
*.tmpl text
*.phtml text
# server config
.htaccess text
# git config
.gitattributes text
.gitignore text
.gitconfig text
# code analysis config
.jshintrc text
.jscsrc text
.jshintignore text
.csslintrc text
# misc config
*.yaml text
*.yml text
.editorconfig text
# build config
*.npmignore text
*.bowerrc text
# Heroku
Procfile text
.slugignore text
# Documentation
*.md text
LICENSE text
AUTHORS text
#
## These files are binary and should be left untouched
#
# (binary is a macro for -text -diff)
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.mov binary
*.mp4 binary
*.mp3 binary
*.flv binary
*.fla binary
*.swf binary
*.gz binary
*.zip binary
*.7z binary
*.ttf binary
*.eot binary
*.woff binary
*.pyc binary
*.pdf binary

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
this.addScript('dom.js',['DOMImplementation','XMLSerializer']); this.addScript('dom.js',['DOMImplementation','XMLSerializer']);
this.addScript('dom-parser.js',['DOMHandler','DOMParser'], this.addScript('dom-parser.js',['DOMHandler','DOMParser'],
['DOMImplementation','XMLReader']); ['DOMImplementation','XMLReader']);
this.addScript('sax.js','XMLReader'); this.addScript('sax.js','XMLReader');

View File

@ -1,255 +1,255 @@
function DOMParser(options){ function DOMParser(options){
this.options = options ||{locator:{}}; this.options = options ||{locator:{}};
} }
DOMParser.prototype.parseFromString = function(source,mimeType){ DOMParser.prototype.parseFromString = function(source,mimeType){
var options = this.options; var options = this.options;
var sax = new XMLReader(); var sax = new XMLReader();
var domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler var domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler
var errorHandler = options.errorHandler; var errorHandler = options.errorHandler;
var locator = options.locator; var locator = options.locator;
var defaultNSMap = options.xmlns||{}; var defaultNSMap = options.xmlns||{};
var entityMap = {'lt':'<','gt':'>','amp':'&','quot':'"','apos':"'"} var entityMap = {'lt':'<','gt':'>','amp':'&','quot':'"','apos':"'"}
if(locator){ if(locator){
domBuilder.setDocumentLocator(locator) domBuilder.setDocumentLocator(locator)
} }
sax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator); sax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);
sax.domBuilder = options.domBuilder || domBuilder; sax.domBuilder = options.domBuilder || domBuilder;
if(/\/x?html?$/.test(mimeType)){ if(/\/x?html?$/.test(mimeType)){
entityMap.nbsp = '\xa0'; entityMap.nbsp = '\xa0';
entityMap.copy = '\xa9'; entityMap.copy = '\xa9';
defaultNSMap['']= 'http://www.w3.org/1999/xhtml'; defaultNSMap['']= 'http://www.w3.org/1999/xhtml';
} }
if(source){ if(source){
sax.parse(source,defaultNSMap,entityMap); sax.parse(source,defaultNSMap,entityMap);
}else{ }else{
sax.errorHandler.error("invalid document source"); sax.errorHandler.error("invalid document source");
} }
return domBuilder.document; return domBuilder.document;
} }
function buildErrorHandler(errorImpl,domBuilder,locator){ function buildErrorHandler(errorImpl,domBuilder,locator){
if(!errorImpl){ if(!errorImpl){
if(domBuilder instanceof DOMHandler){ if(domBuilder instanceof DOMHandler){
return domBuilder; return domBuilder;
} }
errorImpl = domBuilder ; errorImpl = domBuilder ;
} }
var errorHandler = {} var errorHandler = {}
var isCallback = errorImpl instanceof Function; var isCallback = errorImpl instanceof Function;
locator = locator||{} locator = locator||{}
function build(key){ function build(key){
var fn = errorImpl[key]; var fn = errorImpl[key];
if(!fn){ if(!fn){
if(isCallback){ if(isCallback){
fn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl; fn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;
}else{ }else{
var i=arguments.length; var i=arguments.length;
while(--i){ while(--i){
if(fn = errorImpl[arguments[i]]){ if(fn = errorImpl[arguments[i]]){
break; break;
} }
} }
} }
} }
errorHandler[key] = fn && function(msg){ errorHandler[key] = fn && function(msg){
fn(msg+_locator(locator)); fn(msg+_locator(locator));
}||function(){}; }||function(){};
} }
build('warning','warn'); build('warning','warn');
build('error','warn','warning'); build('error','warn','warning');
build('fatalError','warn','warning','error'); build('fatalError','warn','warning','error');
return errorHandler; return errorHandler;
} }
/** /**
* +ContentHandler+ErrorHandler * +ContentHandler+ErrorHandler
* +LexicalHandler+EntityResolver2 * +LexicalHandler+EntityResolver2
* -DeclHandler-DTDHandler * -DeclHandler-DTDHandler
* *
* DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler
* DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2 * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2
* @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html
*/ */
function DOMHandler() { function DOMHandler() {
this.cdata = false; this.cdata = false;
} }
function position(locator,node){ function position(locator,node){
node.lineNumber = locator.lineNumber; node.lineNumber = locator.lineNumber;
node.columnNumber = locator.columnNumber; node.columnNumber = locator.columnNumber;
} }
/** /**
* @see org.xml.sax.ContentHandler#startDocument * @see org.xml.sax.ContentHandler#startDocument
* @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html
*/ */
DOMHandler.prototype = { DOMHandler.prototype = {
startDocument : function() { startDocument : function() {
this.document = new DOMImplementation().createDocument(null, null, null); this.document = new DOMImplementation().createDocument(null, null, null);
if (this.locator) { if (this.locator) {
this.document.documentURI = this.locator.systemId; this.document.documentURI = this.locator.systemId;
} }
}, },
startElement:function(namespaceURI, localName, qName, attrs) { startElement:function(namespaceURI, localName, qName, attrs) {
var doc = this.document; var doc = this.document;
var el = doc.createElementNS(namespaceURI, qName||localName); var el = doc.createElementNS(namespaceURI, qName||localName);
var len = attrs.length; var len = attrs.length;
appendElement(this, el); appendElement(this, el);
this.currentElement = el; this.currentElement = el;
this.locator && position(this.locator,el) this.locator && position(this.locator,el)
for (var i = 0 ; i < len; i++) { for (var i = 0 ; i < len; i++) {
var namespaceURI = attrs.getURI(i); var namespaceURI = attrs.getURI(i);
var value = attrs.getValue(i); var value = attrs.getValue(i);
var qName = attrs.getQName(i); var qName = attrs.getQName(i);
var attr = doc.createAttributeNS(namespaceURI, qName); var attr = doc.createAttributeNS(namespaceURI, qName);
if( attr.getOffset){ if( attr.getOffset){
position(attr.getOffset(1),attr) position(attr.getOffset(1),attr)
} }
attr.value = attr.nodeValue = value; attr.value = attr.nodeValue = value;
el.setAttributeNode(attr) el.setAttributeNode(attr)
} }
}, },
endElement:function(namespaceURI, localName, qName) { endElement:function(namespaceURI, localName, qName) {
var current = this.currentElement var current = this.currentElement
var tagName = current.tagName; var tagName = current.tagName;
this.currentElement = current.parentNode; this.currentElement = current.parentNode;
}, },
startPrefixMapping:function(prefix, uri) { startPrefixMapping:function(prefix, uri) {
}, },
endPrefixMapping:function(prefix) { endPrefixMapping:function(prefix) {
}, },
processingInstruction:function(target, data) { processingInstruction:function(target, data) {
var ins = this.document.createProcessingInstruction(target, data); var ins = this.document.createProcessingInstruction(target, data);
this.locator && position(this.locator,ins) this.locator && position(this.locator,ins)
appendElement(this, ins); appendElement(this, ins);
}, },
ignorableWhitespace:function(ch, start, length) { ignorableWhitespace:function(ch, start, length) {
}, },
characters:function(chars, start, length) { characters:function(chars, start, length) {
chars = _toString.apply(this,arguments) chars = _toString.apply(this,arguments)
//console.log(chars) //console.log(chars)
if(this.currentElement && chars){ if(this.currentElement && chars){
if (this.cdata) { if (this.cdata) {
var charNode = this.document.createCDATASection(chars); var charNode = this.document.createCDATASection(chars);
this.currentElement.appendChild(charNode); this.currentElement.appendChild(charNode);
} else { } else {
var charNode = this.document.createTextNode(chars); var charNode = this.document.createTextNode(chars);
this.currentElement.appendChild(charNode); this.currentElement.appendChild(charNode);
} }
this.locator && position(this.locator,charNode) this.locator && position(this.locator,charNode)
} }
}, },
skippedEntity:function(name) { skippedEntity:function(name) {
}, },
endDocument:function() { endDocument:function() {
this.document.normalize(); this.document.normalize();
}, },
setDocumentLocator:function (locator) { setDocumentLocator:function (locator) {
if(this.locator = locator){// && !('lineNumber' in locator)){ if(this.locator = locator){// && !('lineNumber' in locator)){
locator.lineNumber = 0; locator.lineNumber = 0;
} }
}, },
//LexicalHandler //LexicalHandler
comment:function(chars, start, length) { comment:function(chars, start, length) {
chars = _toString.apply(this,arguments) chars = _toString.apply(this,arguments)
var comm = this.document.createComment(chars); var comm = this.document.createComment(chars);
this.locator && position(this.locator,comm) this.locator && position(this.locator,comm)
appendElement(this, comm); appendElement(this, comm);
}, },
startCDATA:function() { startCDATA:function() {
//used in characters() methods //used in characters() methods
this.cdata = true; this.cdata = true;
}, },
endCDATA:function() { endCDATA:function() {
this.cdata = false; this.cdata = false;
}, },
startDTD:function(name, publicId, systemId) { startDTD:function(name, publicId, systemId) {
var impl = this.document.implementation; var impl = this.document.implementation;
if (impl && impl.createDocumentType) { if (impl && impl.createDocumentType) {
var dt = impl.createDocumentType(name, publicId, systemId); var dt = impl.createDocumentType(name, publicId, systemId);
this.locator && position(this.locator,dt) this.locator && position(this.locator,dt)
appendElement(this, dt); appendElement(this, dt);
} }
}, },
/** /**
* @see org.xml.sax.ErrorHandler * @see org.xml.sax.ErrorHandler
* @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html
*/ */
warning:function(error) { warning:function(error) {
console.warn(error,_locator(this.locator)); console.warn(error,_locator(this.locator));
}, },
error:function(error) { error:function(error) {
console.error(error,_locator(this.locator)); console.error(error,_locator(this.locator));
}, },
fatalError:function(error) { fatalError:function(error) {
console.error(error,_locator(this.locator)); console.error(error,_locator(this.locator));
throw error; throw error;
} }
} }
function _locator(l){ function _locator(l){
if(l){ if(l){
return '\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']' return '\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'
} }
} }
function _toString(chars,start,length){ function _toString(chars,start,length){
if(typeof chars == 'string'){ if(typeof chars == 'string'){
return chars.substr(start,length) return chars.substr(start,length)
}else{//java sax connect width xmldom on rhino(what about: "? && !(chars instanceof String)") }else{//java sax connect width xmldom on rhino(what about: "? && !(chars instanceof String)")
if(chars.length >= start+length || start){ if(chars.length >= start+length || start){
return new java.lang.String(chars,start,length)+''; return new java.lang.String(chars,start,length)+'';
} }
return chars; return chars;
} }
} }
/* /*
* @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html
* used method of org.xml.sax.ext.LexicalHandler: * used method of org.xml.sax.ext.LexicalHandler:
* #comment(chars, start, length) * #comment(chars, start, length)
* #startCDATA() * #startCDATA()
* #endCDATA() * #endCDATA()
* #startDTD(name, publicId, systemId) * #startDTD(name, publicId, systemId)
* *
* *
* IGNORED method of org.xml.sax.ext.LexicalHandler: * IGNORED method of org.xml.sax.ext.LexicalHandler:
* #endDTD() * #endDTD()
* #startEntity(name) * #startEntity(name)
* #endEntity(name) * #endEntity(name)
* *
* *
* @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html
* IGNORED method of org.xml.sax.ext.DeclHandler * IGNORED method of org.xml.sax.ext.DeclHandler
* #attributeDecl(eName, aName, type, mode, value) * #attributeDecl(eName, aName, type, mode, value)
* #elementDecl(name, model) * #elementDecl(name, model)
* #externalEntityDecl(name, publicId, systemId) * #externalEntityDecl(name, publicId, systemId)
* #internalEntityDecl(name, value) * #internalEntityDecl(name, value)
* @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html
* IGNORED method of org.xml.sax.EntityResolver2 * IGNORED method of org.xml.sax.EntityResolver2
* #resolveEntity(String name,String publicId,String baseURI,String systemId) * #resolveEntity(String name,String publicId,String baseURI,String systemId)
* #resolveEntity(publicId, systemId) * #resolveEntity(publicId, systemId)
* #getExternalSubset(name, baseURI) * #getExternalSubset(name, baseURI)
* @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html
* IGNORED method of org.xml.sax.DTDHandler * IGNORED method of org.xml.sax.DTDHandler
* #notationDecl(name, publicId, systemId) {}; * #notationDecl(name, publicId, systemId) {};
* #unparsedEntityDecl(name, publicId, systemId, notationName) {}; * #unparsedEntityDecl(name, publicId, systemId, notationName) {};
*/ */
"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(key){ "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(key){
DOMHandler.prototype[key] = function(){return null} DOMHandler.prototype[key] = function(){return null}
}) })
/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ /* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */
function appendElement (hander,node) { function appendElement (hander,node) {
if (!hander.currentElement) { if (!hander.currentElement) {
hander.document.appendChild(node); hander.document.appendChild(node);
} else { } else {
hander.currentElement.appendChild(node); hander.currentElement.appendChild(node);
} }
}//appendChild and setAttributeNS are preformance key }//appendChild and setAttributeNS are preformance key
if(typeof require == 'function'){ if(typeof require == 'function'){
var XMLReader = require('./sax').XMLReader; var XMLReader = require('./sax').XMLReader;
var DOMImplementation = exports.DOMImplementation = require('./dom').DOMImplementation; var DOMImplementation = exports.DOMImplementation = require('./dom').DOMImplementation;
exports.XMLSerializer = require('./dom').XMLSerializer ; exports.XMLSerializer = require('./dom').XMLSerializer ;
exports.DOMParser = DOMParser; exports.DOMParser = DOMParser;
} }

File diff suppressed because it is too large Load Diff