Run vim to find differences from RFC 1345.
Much easier than trying to parse the source code, and not really a problem
as it's usually installed and rarely changes.
data/digraphs-shiar.inc.pl: tools/mkdigraphs-shiar shiar.inc.txt
$< $(word 2,$^) >$@
+data/digraphs-vim.inc.pl: tools/mkdigraphs-vim
+ $< >$@
+
digraphs.inc.pl: tools/mkdigraphlist data/digraphs-rfc.inc.pl data/digraphs-shiar.inc.pl unicode-char.inc.pl
$< >$@
.X {background: #FFF} /* unidentified */
#digraphs .Xa {color: #0A0} /* ascii */
#digraphs .Xl {color: #070} /* latin1 */
-#digraphs .Xz {color: #D00} /* proposed */
+#digraphs .u-prop {color: #D00} /* proposed */
+#digraphs .u-prop.ex {color: #A44} /* experimental, disfavoured */
.Lm, .Mc, .Me, .Zl, .Zp {background: #F00} /* unstyled */
.X > span {background: #888} /* invisible contents */
.Xr:hover {background: #FFF} /* reserved */
.Xa:hover {outline: 1px solid #0F0} /* ascii */
.Xl:hover {outline: 1px solid #0C0} /* latin1 */
-.Xz:hover {outline: 1px solid #F00} /* proposed */
+.u-prop:hover {outline: 1px solid #F00} /* proposed */
.l0:hover {background: #888}
.l1:hover {background: #F88}
.l2:hover {background: #FC8}
<p>i^k in <a href="/vi">Vim</a>.
Also see <a href="/unicode">common digraphs</a>.</p>
-<p class="aside">Unofficial <span class="Xz">proposals</span>
+<p class="aside">Unofficial <span class="u-prop ex">proposals</span>
are available as <a href="/digraphs.vim">ex commands</a>.</p>
<:
<td class="X">unicode
<td class="X Xl">latin1
<td class="X Xa">ascii
- <td class="X Xz">proposed
+ <td class="X u-prop">vim extension
+ <td class="X u-prop ex">proposal
+ <td class="X ex">not in vim
</table>
</div>
my %diinc = (
'data/digraphs-rfc.inc.pl' => 'u-di',
- 'data/digraphs-shiar.inc.pl' => 'u-prop Xz',
+ 'data/digraphs-shiar.inc.pl' => 'u-prop ex',
+ 'data/digraphs-vim.inc.pl' => 'u-prop',
);
-for (keys %diinc) {
+for (sort keys %diinc) {
-e $_ or next;
my $di = do $_ or die "Error reading digraphs file $_: ", $@ || $!;
while (my ($mnem, $cp) = each %$di) {
$info->{$_} = $info{$chr}->{$_} for keys %{ $info{$chr} };
+ # official digraphs either lose vim flag or gain experimental
+ delete $info->{class}->{'u-prop'} or $info->{class}->{ex}++
+ if $info->{class}->{'u-di'};
+
# categorise by unicode types and writing script
$info->{class}->{$_}++ for $info->{category};
$info->{class}->{$_}++ for $info->{script} || ();
--- /dev/null
+#!/bin/sh
+vim -e -cdigraphs -cq | perl -CSD -nE '
+ BEGIN {
+ say "+{";
+ }
+ say "q{$1} => $3," while /\G(\S\S) (.[^ ]*) +([0-9]+)\s+/g;
+ END {
+ say "}";
+ }
+'