From: Muraoka Taro Date: Tue, 20 Jan 2026 19:07:02 +0000 (+0000) Subject: patch 9.1.2099: different line endings in ja.sjis.po and ja.po X-Git-Tag: v9.1.2099^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cbb72e42160f0b827a748ebacd995ebbadbab4e5;p=thirdparty%2Fvim.git patch 9.1.2099: different line endings in ja.sjis.po and ja.po Problem: Depending on the worker's environment, the line endings in ja.sjis.po may differ from those in the source ja.po. Solution: By setting standard input and output to binary mode, the line endings for input and output will match (Muraoka Taro) This occurs when using MINGW gcc on Windows and git with autocrlf=false. In this case, the line endings in ja.po are LF, but because sjiscorr compiled with MINGW gcc uses text mode for standard input and output, the line endings in the output ja.sjis.po will be CRLF. This mismatch in line endings confuses git, causing large differences to occur when updating. In addition, the comment style has been changed to // to match the rest of Vim's code. closes: #19226 Signed-off-by: Muraoka Taro Signed-off-by: Christian Brabandt --- diff --git a/src/po/sjiscorr.c b/src/po/sjiscorr.c index c6c39833de..6decb9216a 100644 --- a/src/po/sjiscorr.c +++ b/src/po/sjiscorr.c @@ -1,17 +1,28 @@ -/* - * Simplistic program to correct SJIS inside strings. When a trail byte is a - * backslash it needs to be doubled. - * Public domain. - */ +// Simplistic program to correct SJIS inside strings. When a trail byte is a +// backslash it needs to be doubled. +// Public domain. + #include #include +#ifdef _WIN32 +# include +# include +#endif + int main(int argc, char **argv) { char buffer[BUFSIZ]; char *p; + // Windows only: put standard input and output into binary mode so that the + // line endings in the output match those in the input. +#ifdef _WIN32 + _setmode(_fileno(stdin), _O_BINARY); + _setmode(_fileno(stdout), _O_BINARY); +#endif + while (fgets(buffer, BUFSIZ, stdin) != NULL) { for (p = buffer; *p != 0; p++) @@ -22,11 +33,10 @@ main(int argc, char **argv) fputs("charset=CP932", stdout); p += 12; } - else if (strncmp(p, "# Original translations", 23) == 0) + else if (strncmp(p, "# Original translations.", 24) == 0) { + p += 24 - 1; // subtracting 1 by considering "p++" in the loop. fputs("# Generated from ja.po, DO NOT EDIT.", stdout); - while (p[1] != '\n') - ++p; } else if (*(unsigned char *)p == 0x81 && p[1] == '_') { @@ -46,3 +56,5 @@ main(int argc, char **argv) } } } + +// vim:set ts=4 sts=4 sw=4 noet: diff --git a/src/version.c b/src/version.c index 4790f8de2e..71388c23ed 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2099, /**/ 2098, /**/