diff options
Diffstat (limited to 'Master/texmf-doc/doc/russian/mpman-ru/bm-to-utf16be.awk')
-rw-r--r-- | Master/texmf-doc/doc/russian/mpman-ru/bm-to-utf16be.awk | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Master/texmf-doc/doc/russian/mpman-ru/bm-to-utf16be.awk b/Master/texmf-doc/doc/russian/mpman-ru/bm-to-utf16be.awk new file mode 100644 index 00000000000..1b6fc262666 --- /dev/null +++ b/Master/texmf-doc/doc/russian/mpman-ru/bm-to-utf16be.awk @@ -0,0 +1,29 @@ +function to_utf16be(s) { + s1="\\376\\377" + for (i = 1; i <= length(s); i++) { + k = x[substr(s, i, 1)] + if (k == 208) + s1=s1 sprintf("\\004\\%03o", x[substr(s, ++i, 1)] + 128) + else if (k == 209) + s1=s1 sprintf("\\004\\%03o", x[substr(s, ++i, 1)] - 64) + else + s1=s1 sprintf("\\000\\%03o", k) + } + return s1 +} + +BEGIN { + for (i = 0; i < 256; i++) { + x[sprintf("%c", i)] = i + } +} + +{ + p=index($0,"}{") + s1=substr($0,1,p+1) + s=substr($0,p+2) + p=index(s,"}") + s2=substr(s,p) + s=substr(s,1,p-1) + print s1 to_utf16be(s) s2 +} |