Neo ist eine ergonomische Tastaturbelegung, welche für die deutsche Sprache optimiert ist. https://neo-layout.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
964 B

  1. #!/usr/bin/perl -w
  2. # Dieses Skript prüft übergebene Compose-Dateien auf
  3. # Präfix-Eigenschaft und auf Code-Dopplungen
  4. #
  5. # Beispiel-Aufruf:
  6. #
  7. # ./check-compose.pl *.neo
  8. use strict;
  9. use Getopt::Std;
  10. our ($opt_q);
  11. getopts('q'); # almost quiet operation
  12. my %prefix;
  13. my %code;
  14. while (my $line = <>) {
  15. chomp $line;
  16. next unless ($line =~ /^([^#]+):/);
  17. my @codes = split (/\s+/, $1);
  18. for my $i (0..$#codes-1) {
  19. $prefix{"@codes[0..$i]"} = $line;
  20. if ($code{"@codes[0..$i]"}) {
  21. if ($opt_q) { exit 1; }
  22. print <<EOF;
  23. * @codes[0..$i] Präfix bereits terminal verwendet
  24. $line
  25. $code{"@codes[0..$i]"}
  26. EOF
  27. }
  28. }
  29. if ($code{"@codes"}) {
  30. if ($opt_q) { exit 1; }
  31. print <<EOF;
  32. * @codes Sequenz mehrfach verwendet
  33. $line
  34. $code{"@codes"}
  35. EOF
  36. }
  37. $code{"@codes"} = $line;
  38. if ($prefix{"@codes"}) {
  39. if ($opt_q) { exit 1; }
  40. print <<EOF;
  41. * @codes Sequenz bereits als Präfix verwendet
  42. $line
  43. $prefix{"@codes"}
  44. EOF
  45. }
  46. }