#!/usr/bin/ruby # # $Id$ # The script finds best matching xkb_symbols in symbols/in # # Parameters: $0 - the name of the file with new xkb_symbols # $1 - max number of non-matching mappings (0 by default) # require "xkbparser.rb" baseDir = "../.." symbolsDir = "#{baseDir}/symbols" #symbolsDir = "." parser = Parser.new allSyms = parser.parse("#{symbolsDir}/inet") newSyms = parser.parse(ARGV[0]) limit = ARGV[1].to_i newSyms.find_all do | key, value | if value.hidden? next end puts "Existing xkb_symbols matching #{key}: " sorted = allSyms.match_symbols(value,limit).sort_by do | symsName, diff | sprintf "%03d_%s", diff.size, symsName end sorted.find_all do | symsName, diff | puts " #{symsName}, up to #{allSyms[symsName].size} keys (difference #{diff.size})-> #{diff}" end end