annotate src/po/sjiscorr.c @ 14061:47b2db8a5709 v8.1.0048

patch 8.1.0048: vim_str2nr() does not handle numbers close to the maximum commit https://github.com/vim/vim/commit/07ccf7ce7fb948fd4d080b817e9fbaea9e721dab Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jun 12 17:25:36 2018 +0200 patch 8.1.0048: vim_str2nr() does not handle numbers close to the maximum Problem: vim_str2nr() does not handle numbers close to the maximum. Solution: Check for overflow more precisely. (Ken Takata, closes https://github.com/vim/vim/issues/2746)
author Christian Brabandt <cb@256bit.org>
date Tue, 12 Jun 2018 17:30:06 +0200
parents 226ed297307f
children b79453d0d01c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 * Simplistic program to correct SJIS inside strings. When a trail byte is a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 * backslash it needs to be doubled.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 * Public domain.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 #include <stdio.h>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 #include <string.h>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 int
7856
226ed297307f commit https://github.com/vim/vim/commit/d14e00ea67afbaa8cb4a7e6b1eb306da6a2d5adb
Christian Brabandt <cb@256bit.org>
parents: 7837
diff changeset
10 main(int argc, char **argv)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 char buffer[BUFSIZ];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 char *p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 while (fgets(buffer, BUFSIZ, stdin) != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 for (p = buffer; *p != 0; p++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 {
4502
605c9ce57ec3 Updated runtime files, language files and translations.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
19 if (strncmp(p, "charset=utf-8", 13) == 0)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 fputs("charset=cp932", stdout);
4502
605c9ce57ec3 Updated runtime files, language files and translations.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
22 p += 12;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 }
6351
65df2fba429b updated for version 7.4.508
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
24 else if (strncmp(p, "# Original translations", 23) == 0)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 fputs("# generated from ja.po, DO NOT EDIT", stdout);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 while (p[1] != '\n')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 ++p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 else if (*(unsigned char *)p == 0x81 && p[1] == '_')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 putchar('\\');
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 ++p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 if (*p & 0x80)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 putchar(*p++);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 if (*p == '\\')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 putchar(*p);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 putchar(*p);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 }