Code coverage report for lib/parser/commands/diff.js

Statements: 100% (38 / 38)      Branches: 75% (3 / 4)      Functions: 100% (5 / 5)      Lines: 100% (35 / 35)      Ignored: none     

All files » lib/parser/commands/ » diff.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235                                                                                                                                                                                                                                                                          1 1 1 1 1   1 1 1 1   1                                                       1                                               1         1   1   1 1   1 1   1 1 1 5 5 5   1   1   1 5 5 5 5       1 1 1 1  
/*
NAME
diff - compare files line by line
SYNOPSIS
diff [OPTION]... FILES
DESCRIPTION
Compare FILES line by line.
Mandatory arguments to long options are mandatory for short options too.
--normal
output a normal diff (the default)
-q, --brief
report only when files differ
-s, --report-identical-files
report when two files are the same
-c, -C NUM, --context[=NUM]
output NUM (default 3) lines of copied context
-u, -U NUM, --unified[=NUM]
output NUM (default 3) lines of unified context
-e, --ed
output an ed script
-n, --rcs
output an RCS format diff
-y, --side-by-side
output in two columns
-W, --width=NUM
output at most NUM (default 130) print columns
--left-column
output only the left column of common lines
--suppress-common-lines
do not output common lines
-p, --show-c-function
show which C function each change is in
-F, --show-function-line=RE
show the most recent line matching RE
--label LABEL
use LABEL instead of file name (can be repeated)
-t, --expand-tabs
expand tabs to spaces in output
-T, --initial-tab
make tabs line up by prepending a tab
--tabsize=NUM
tab stops every NUM (default 8) print columns
--suppress-blank-empty
suppress space or tab before empty output lines
-l, --paginate
pass output through `pr' to paginate it
-r, --recursive
recursively compare any subdirectories found
-N, --new-file
treat absent files as empty
--unidirectional-new-file
treat absent first files as empty
--ignore-file-name-case
ignore case when comparing file names
--no-ignore-file-name-case
consider case when comparing file names
-x, --exclude=PAT
exclude files that match PAT
-X, --exclude-from=FILE
exclude files that match any pattern in FILE
-S, --starting-file=FILE
start with FILE when comparing directories
--from-file=FILE1
compare FILE1 to all operands; FILE1 can be a directory
--to-file=FILE2
compare all operands to FILE2; FILE2 can be a directory
-i, --ignore-case
ignore case differences in file contents
-E, --ignore-tab-expansion
ignore changes due to tab expansion
-b, --ignore-space-change
ignore changes in the amount of white space
-w, --ignore-all-space
ignore all white space
-B, --ignore-blank-lines
ignore changes whose lines are all blank
-I, --ignore-matching-lines=RE
ignore changes whose lines all match RE
-a, --text
treat all files as text
--strip-trailing-cr
strip trailing carriage return on input
-D, --ifdef=NAME
output merged file with `#ifdef NAME' diffs
--GTYPE-group-format=GFMT
format GTYPE input groups with GFMT
--line-format=LFMT
format all input lines with LFMT
--LTYPE-line-format=LFMT
format LTYPE input lines with LFMT
These format options provide fine-grained control over the output
of diff, generalizing -D/--ifdef.
LTYPE is `old', `new', or `unchanged'.
GTYPE is LTYPE or `changed'.
GFMT (only) may contain:
%<     lines from FILE1
%>     lines from FILE2
%=     lines common to FILE1 and FILE2
%[-][WIDTH][.[PREC]]{doxX}LETTER
printf-style spec for LETTER
LETTERs are as follows for new group, lower case for old group:
F      first line number
L      last line number
N      number of lines = L-F+1
E      F-1
M      L+1
%(A=B?T:E)
if A equals B then T else E
LFMT (only) may contain:
%L     contents of line
%l     contents of line, excluding any trailing newline
%[-][WIDTH][.[PREC]]{doxX}n
printf-style spec for input line number
Both GFMT and LFMT may contain:
%%     %
%c'C'  the single character C
%c'\OOO'
the character with octal code OOO
C      the character C (other characters represent themselves)
-d, --minimal
try hard to find a smaller set of changes
--horizon-lines=NUM
keep NUM lines of the common prefix and suffix
--speed-large-files
assume large files and many scattered small changes
--help display this help and exit
-v, --version
output version information and exit
FILES  are  `FILE1  FILE2'  or  `DIR1  DIR2'  or `DIR FILE...' or `FILE... DIR'.  If
--from-file or --to-file is given, there are no restrictions on FILE(s).  If a  FILE
is  `-', read standard input.  Exit status is 0 if inputs are the same, 1 if differ‐
ent, 2 if trouble.
*/
var __extends = this.__extends || function (d, b) {
    for (var p in b) Eif (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
};
var $ = require("../utils/optionsParser");
var parserModule = require("../utils/parserData");
var common = require("../utils/init");
var GraphModule = require("../../common/graph");
 
var selectors = {
    format: {
        name: "format",
        description: "select attribute to sort",
        options: {
            normal: {
                name: 'normal',
                option: null,
                longOption: 'normal',
                description: 'do not print line numbers',
                default: true
            },
            RCS: {
                name: 'RCS',
                option: 'n',
                longOption: 'rcs',
                description: 'print line numbers on all lines'
            },
            edScript: {
                name: 'ed script',
                option: 'e',
                longOption: 'ed',
                description: 'print line numbers on non empty lines'
            }
        }
    }
};
 
var flags = {
    ignoreCase: {
        name: "ignore case",
        option: 'i',
        longOption: 'ignore-case',
        description: "print TAB characters like ^I",
        active: false
    },
    ignoreBlankLines: {
        name: "ignore blank lines",
        option: 'B',
        longOption: 'ignore-blank-lines',
        description: "use ^ and M- notation, except for LFD and TAB",
        active: false
    },
    ignoreSpaceChange: {
        name: "ignore space change",
        option: 'b',
        longOption: 'ignore-blank-sapce',
        description: "suppress repeated empty output lines",
        active: false
    }
};
 
var config = {
    selectors: selectors,
    flags: flags
};
 
var bzipData = new parserModule.ParserData(config);
 
var optionsParser = $.optionParserFromConfig(config);
 
var shortOptions = optionsParser.shortOptions;
shortOptions['q'] = $.ignore;
 
var longOptions = optionsParser.shortOptions;
longOptions['brief'] = shortOptions['q'];
 
var DiffComponent = (function (_super) {
    __extends(DiffComponent, _super);
    function DiffComponent() {
        _super.apply(this, arguments);
        this.exec = "diff";
        this.files = [];
    }
    return DiffComponent;
})(GraphModule.CommandComponent);
exports.DiffComponent = DiffComponent;
 
function defaultComponentData() {
    var graph = new DiffComponent();
    graph.selectors = bzipData.componentSelectors;
    graph.flags = bzipData.componentFlags;
    return graph;
}
;
 
exports.parseCommand = common.commonParseCommand(optionsParser, defaultComponentData);
exports.parseComponent = common.commonParseComponent(bzipData.flagOptions, bzipData.selectorOptions);
exports.VisualSelectorOptions = bzipData.visualSelectorOptions;
exports.componentClass = DiffComponent;