#!/bin/sh
# vim:set sw=4 ts=8 fileencoding=utf8::Кодировка:UTF-8[АБЁЪЯабёъя] 
#
#   Авторское право (с) 2015, Сергей Леонтьев, leo@sai.msu.ru
#
#   Разрешается повторное распространение и использование как в виде
#   исходника так и в двоичной форме, с модификациями или без, при
#   соблюдении следующих условий:
#
#   1. При повторном распространении исходного кода должно оставаться
#   указанное выше уведомление об авторском праве, этот список условий и
#   нижеследующий отказ от гарантий.
#
#   2. При повторном распространении двоичного кода должно
#   воспроизводиться указанное выше уведомление об авторском праве, этот
#   список условий и нижеследующий отказ от гарантий в документации
#   и/или в других материалах, поставляемых при распространении.
#
#   3. Ни название Крипто-Про, ни имена его сотрудников не могут быть
#   использованы в качестве поддержки или продвижения продуктов,
#   основанных на этом ПО без предварительного письменного разрешения.
#
#   ЭТО ПРОГРАММА ПРЕДОСТАВЛЕНА БЕСПЛАТНО ДЕРЖАТЕЛЯМИ АВТОРСКИХ ПРАВ
#   И/ИЛИ ДРУГИМИ СТОРОНАМИ "КАК ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА
#   ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ
#   ОГРАНИЧИВАЯСЬ ИМИ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И
#   ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. НИ В КОЕМ СЛУЧАЕ, ЕСЛИ НЕ ТРЕБУЕТСЯ
#   СООТВЕТСТВУЮЩИМ ЗАКОНОМ, ИЛИ НЕ УСТАНОВЛЕНО В УСТНОЙ ФОРМЕ, НИ ОДИН
#   ДЕРЖАТЕЛЬ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ МОЖЕТ
#   ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, КАК БЫЛО РАЗРЕШЕНО
#   ВЫШЕ, НЕ ОТВЕТСТВЕННЫ ПЕРЕД ВАМИ ЗА УБЫТКИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ,
#   СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ ПОСЛЕДОВАВШИЕ УБЫТКИ, ПРОИСТЕКАЮЩИЕ ИЗ
#   ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ, НО
#   НЕ ОГРАНИЧИВАЯСЬ ПОТЕРЕЙ ДАННЫХ, ИЛИ ДАННЫМИ, СТАВШИМИ
#   НЕПРАВИЛЬНЫМИ, ИЛИ ПОТЕРЯМИ ПРИНЕСЕННЫМИ ИЗ-ЗА ВАС ИЛИ ТРЕТЬИХ ЛИЦ,
#   ИЛИ ОТКАЗОМ ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ),
#   ДАЖЕ ЕСЛИ ТАКОЙ ДЕРЖАТЕЛЬ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О
#   ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ.
#

#
# Построение содержимого ресурса VT100.translations для xterm
#

keysymdef=/opt/local/include/X11/keysymdef.h

national='ёъявертыуиопшщэасдфгхйклчюзьцжбнм'
ascii='`=qwertyuiop[]\\asdfghjkl;'"'"'zxcvbnm'

national_unicode=$(
	    printf "${national}" | 
	    iconv -t UCS-4LE | 
	    od -t x4 | 
	    cut -b 10- |
	    tr '[a-z]' '[A-Z]' | 
	    sed 's/ 0*\([0-9A-F][0-9A-F][0-9A-F][0-9A-F]\)/U+\1/g'
	)

i=0
for nc in $national_unicode ; do
    nc_name=$( sed -n \
	    "/$nc/s/^[[:space:]]*#[[:space:]]*define[[:space:]]*XK_\([^[:space:]]*\).*/\1/p" \
	    "${keysymdef}" \
	)
    i=$(($i + 1))
    printf "    Alt <Key>%s:\tstring(0x1b) string(\"%s\") \\\\n\\\\\n" \
	    $nc_name \
	    $(echo "${ascii}" | cut -b $i)
done
