##// END OF EJS Templates
ip-restritions: fix issue with loading empty IP rules for non-logged not-anonymous users....
ip-restritions: fix issue with loading empty IP rules for non-logged not-anonymous users. This case won't have any IP rules set. And we accidentally loaded them becuase of no empty user filter was present. This caused some odd display warnings for users.

File last commit:

r1:854a839a default
r2838:d1dcf373 default
Show More
troff.js
82 lines | 2.2 KiB | application/javascript | JavascriptLexer
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
(function(mod) {
if (typeof exports == "object" && typeof module == "object")
mod(require("../../lib/codemirror"));
else if (typeof define == "function" && define.amd)
define(["../../lib/codemirror"], mod);
else
mod(CodeMirror);
})(function(CodeMirror) {
"use strict";
CodeMirror.defineMode('troff', function() {
var words = {};
function tokenBase(stream) {
if (stream.eatSpace()) return null;
var sol = stream.sol();
var ch = stream.next();
if (ch === '\\') {
if (stream.match('fB') || stream.match('fR') || stream.match('fI') ||
stream.match('u') || stream.match('d') ||
stream.match('%') || stream.match('&')) {
return 'string';
}
if (stream.match('m[')) {
stream.skipTo(']');
stream.next();
return 'string';
}
if (stream.match('s+') || stream.match('s-')) {
stream.eatWhile(/[\d-]/);
return 'string';
}
if (stream.match('\(') || stream.match('*\(')) {
stream.eatWhile(/[\w-]/);
return 'string';
}
return 'string';
}
if (sol && (ch === '.' || ch === '\'')) {
if (stream.eat('\\') && stream.eat('\"')) {
stream.skipToEnd();
return 'comment';
}
}
if (sol && ch === '.') {
if (stream.match('B ') || stream.match('I ') || stream.match('R ')) {
return 'attribute';
}
if (stream.match('TH ') || stream.match('SH ') || stream.match('SS ') || stream.match('HP ')) {
stream.skipToEnd();
return 'quote';
}
if ((stream.match(/[A-Z]/) && stream.match(/[A-Z]/)) || (stream.match(/[a-z]/) && stream.match(/[a-z]/))) {
return 'attribute';
}
}
stream.eatWhile(/[\w-]/);
var cur = stream.current();
return words.hasOwnProperty(cur) ? words[cur] : null;
}
function tokenize(stream, state) {
return (state.tokens[0] || tokenBase) (stream, state);
};
return {
startState: function() {return {tokens:[]};},
token: function(stream, state) {
return tokenize(stream, state);
}
};
});
CodeMirror.defineMIME('troff', 'troff');
});