Mercurial > vim
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 |
rev | line source |
---|---|
7 | 1 /* |
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 | |
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 | 11 { |
12 char buffer[BUFSIZ]; | |
13 char *p; | |
14 | |
15 while (fgets(buffer, BUFSIZ, stdin) != NULL) | |
16 { | |
17 for (p = buffer; *p != 0; p++) | |
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 | 20 { |
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 | 23 } |
6351 | 24 else if (strncmp(p, "# Original translations", 23) == 0) |
7 | 25 { |
26 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 } |