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
|
<h2>Additional options</h2>
A plugin can declare command line options that should be accepted by Eskil.
They will be passed on to the plugin through the ::argv list.
If the initial "##Eskil" line is followed by comments formatted as below,
it adds options. Any empty line will end parsing for such lines.
A line like "## Option -<option>" declares an option that takes a value and
a line lile "## Flag -<option>" declares an option without value. The rest of
the line after the option name is ignored and can be used for comments.
<h1>File plugin</h1>
To process the files being compared, the following procedure should be
defined in the plugin file:
<pre>proc PreProcess {side chi cho} {...}</pre>
The arguments given to PrePrecess are:
* side : left or right, indicating which file is being handled
* chi : An input channel for reading the original file
* cho : An output channel for writing the processed file
A plugin may give a result that has a line-by-line correspondence to
the original, in which case the preprocessed data is used for comparing
while the original is used for displaying. The PreProcess procedure
should return 0 to signify this case.
If the PreProcess procedure returns 1, the processed data is used also for
displaying.
If Eskil is run with Tcl 8.6 or newer, PreProcess is run as a couroutine
and may yield. The left and right side will then be called alternately
until they return. This allows a plugin to take both sides into account
for decisions if needed.
<h1>Directory plugin</h1>
To be used for file comparison in a directory diff, the following procedure
|
|
|
|
|
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
|
<h2>Additional options</h2>
A plugin can declare command line options that should be accepted by Eskil.
They will be passed on to the plugin through the ::argv list.
If the initial "##Eskil" line is followed by comments formatted as below,
it adds options. Any empty line will end parsing for such lines.
A line like "## Option -<option>" declares an option that takes a value and
a line like "## Flag -<option>" declares an option without value. The rest of
the line after the option name is ignored and can be used for comments.
<h1>File plugin</h1>
To process the files being compared, the following procedure should be
defined in the plugin file:
<pre>proc PreProcess {side chi cho} {...}</pre>
The arguments given to PreProcess are:
* side : left or right, indicating which file is being handled
* chi : An input channel for reading the original file
* cho : An output channel for writing the processed file
A plugin may give a result that has a line-by-line correspondence to
the original, in which case the preprocessed data is used for comparing
while the original is used for displaying. The PreProcess procedure
should return 0 to signify this case.
If the PreProcess procedure returns 1, the processed data is used also for
displaying.
If Eskil is run with Tcl 8.6 or newer, PreProcess is run as a coroutine
and may yield. The left and right side will then be called alternately
until they return. This allows a plugin to take both sides into account
for decisions if needed.
<h1>Directory plugin</h1>
To be used for file comparison in a directory diff, the following procedure
|