summaryrefslogtreecommitdiff
path: root/language/cyrillic/programs/gost2ascii.c
diff options
context:
space:
mode:
Diffstat (limited to 'language/cyrillic/programs/gost2ascii.c')
-rw-r--r--language/cyrillic/programs/gost2ascii.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/language/cyrillic/programs/gost2ascii.c b/language/cyrillic/programs/gost2ascii.c
new file mode 100644
index 0000000000..9622c6b91b
--- /dev/null
+++ b/language/cyrillic/programs/gost2ascii.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+#define CYR_A (0260)
+#define CYR_ya (0357)
+
+static char* map[] = {
+ "A", "B", "V", "G", "D", "E", "{\\Zh}", "Z", "I", "{\\Ui}", "K", "L", "M",
+ "N", "O", "P", "R", "S", "T", "U", "F", "{\\Kh}", "{\\Ts}", "{\\Ch}",
+ "{\\Sh}", "{\\Shch}", "{\\cDprime}", "Y", "{\\cPrime}", "{\\Ee}", "{\\Yu}",
+ "{\\Ya}",
+
+ "a", "b", "v", "g", "d", "e", "{\\zh}", "z", "i", "{\\ui}", "k", "l", "m",
+ "n", "o", "p", "r", "s", "t", "u", "f", "{\\kh}", "{\\ts}", "{\\ch}",
+ "{\\sh}", "{\\shch}", "{\\cdprime}", "y", "{\\cprime}", "{\\ee}", "{\\yu}",
+ "{\\ya}"
+};
+
+main()
+{
+ int c;
+ while ((c = getchar()) != EOF) {
+ if (c >= CYR_A && c <= CYR_ya) {
+ fputs(map[c-CYR_A], stdout);
+ } else {
+ putchar(c);
+ }
+ }
+}