File: compact

package info (click to toggle)
fonty 1.0-8
  • links: PTS
  • area: main
  • in suites: potato
  • size: 1,988 kB
  • ctags: 112
  • sloc: perl: 2,097; cpp: 1,114; makefile: 133; sh: 97
file content (47 lines) | stat: -rwxr-xr-x 737 bytes parent folder | download | duplicates (8)
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
#!/usr/bin/perl

$_ = <>; s/\s+$//;
while (1)
{
	if (/^\[(.*)\]$/)
	{
		unless ($juzbyl = exists $juzbyl{$1})
		{
			push @znaki, "$_\n";
			$juzbyl{$1} = 1;
		}
	}
	elsif (/^$/)
	{
		if (@znaki || $juzbyl)
		{
			if ($znak ne "")
			{
				push @{$font{$znak}}, @znaki;
			}
			else
			{
				push @font, {NAGLOWKI => [@znaki], ZNAK => ""};
			}
			@znaki = ();
			$znak = "";
			$juzbyl = 0;
		}
	}
	else
	{
		(@znaki ? /^[.0]+$/ ? $znak : $znaki[-1] : $font) .= "$_\n"
			unless $juzbyl;
	}
	last unless defined;
	$_ = <>; s/\s+$//;
}

print "$font\n";

push @font, map {{NAGLOWKI => $font{$_}, ZNAK => $_}} keys %font;

foreach (sort {${$a}{NAGLOWKI}[0] cmp ${$b}{NAGLOWKI}[0]} @font)
{
	print @{${$_}{NAGLOWKI}}, ${$_}{ZNAK}, "\n";
}