blob: a0b09f02f377712d1c3978fc9544d48392a1b252 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001/*
2 * Simplistic program to correct SJIS inside strings. When a trail byte is a
3 * backslash it needs to be doubled.
4 * Public domain.
5 */
6#include <stdio.h>
7#include <string.h>
8
9 int
Bram Moolenaarb638a7b2016-01-30 21:29:58 +010010main(int argc, char **argv);
Bram Moolenaar071d4272004-06-13 20:20:40 +000011{
12 char buffer[BUFSIZ];
13 char *p;
14
15 while (fgets(buffer, BUFSIZ, stdin) != NULL)
16 {
17 for (p = buffer; *p != 0; p++)
18 {
Bram Moolenaare6ae6222013-05-21 21:01:10 +020019 if (strncmp(p, "charset=utf-8", 13) == 0)
Bram Moolenaar071d4272004-06-13 20:20:40 +000020 {
21 fputs("charset=cp932", stdout);
Bram Moolenaare6ae6222013-05-21 21:01:10 +020022 p += 12;
Bram Moolenaar071d4272004-06-13 20:20:40 +000023 }
Bram Moolenaar983c4e92014-11-12 13:07:53 +010024 else if (strncmp(p, "# Original translations", 23) == 0)
Bram Moolenaar071d4272004-06-13 20:20:40 +000025 {
Bram Moolenaar071d4272004-06-13 20:20:40 +000026 fputs("# generated from ja.po, DO NOT EDIT", stdout);
27 while (p[1] != '\n')
28 ++p;
29 }
30 else if (*(unsigned char *)p == 0x81 && p[1] == '_')
31 {
32 putchar('\\');
33 ++p;
34 }
35 else
36 {
37 if (*p & 0x80)
38 {
39 putchar(*p++);
40 if (*p == '\\')
41 putchar(*p);
42 }
43 putchar(*p);
44 }
45 }
46 }
47}