70 lines
4.3 KiB
Bash
70 lines
4.3 KiB
Bash
#!/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
|