+++ /dev/null
---- gettext-0.10.35/src/msgmerge.c.orig Mon Feb 12 19:38:15 2001
-+++ gettext-0.10.35/src/msgmerge.c Mon Feb 12 19:40:46 2001
-@@ -47,6 +47,7 @@
-
- #define _(str) gettext (str)
-
-+extern void setmblocale(char* filename);
-
- /* This structure defines a derived class of the po_ty class. (See
- po.h for an explanation.) */
-@@ -278,6 +279,9 @@
-
- /* merge the two files */
- result = merge (argv[optind], argv[optind + 1]);
-+
-+ /* multibyte handling */
-+ setmblocale(argv[optind]);
-
- /* Sort the results. */
- if (sort_by_filepos)
---- gettext-0.10.35/src/message.c.oka Mon Feb 12 20:13:59 2001
-+++ gettext-0.10.35/src/message.c Mon Feb 12 20:15:15 2001
-@@ -81,7 +81,49 @@
- static const char *make_c_width_description_string PARAMS ((enum is_c_format));
- static int significant_c_format_p PARAMS ((enum is_c_format __is_c_format));
-
-+static int mblocale_flag = 0; /* OFF */
-
-+void setmblocale(char* filename) {
-+ int i;
-+ FILE *fp;
-+ char tmpbuf[1024];
-+ static const char* contstr =
-+ "\"Content-Type: text/plain; charset=";
-+
-+ static const char *mblocale[] =
-+ {
-+ "EUC-JP",
-+ "EUC-KR"
-+ };
-+
-+ if ( filename == NULL || *filename == '\0' )
-+ return;
-+
-+ if ( (fp = fopen(filename, "r")) == NULL )
-+ return;
-+
-+ while( fgets(tmpbuf, sizeof(tmpbuf), fp) > 0 ) {
-+ if( !strcmp(tmpbuf, "\n") )
-+ break;
-+
-+ if( !strncmp(tmpbuf, contstr, strlen(contstr)) ) {
-+ if( strlen(tmpbuf) > strlen(contstr) ) {
-+ for(i=0; i<sizeof(mblocale)/sizeof(mblocale[0]); i++) {
-+ if( !strncasecmp(tmpbuf + strlen(contstr),
-+ mblocale[i], strlen(mblocale[i])) ) {
-+ mblocale_flag = 1;
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ };
-+ fclose(fp);
-+}
-+
-+static int ismblocale() {
-+ return mblocale_flag;
-+}
-
- message_ty *
- message_alloc (msgid)
-@@ -703,6 +745,15 @@
- /* Allow 1 character for the closing quote. */
- if (ocol + cw >= (do_wrap == no ? INT_MAX : page_width))
- break;
-+ else if (ismblocale() && c >= 0xa1 && c <= 0xfe) { /* UJIS */
-+ ++ep;
-+ ++cw;
-+ c = (unsigned char) *ep;
-+ if (ocol + cw >= (do_wrap == no ? INT_MAX : page_width - 1 )) {
-+ ++ep;
-+ break;
-+ }
-+ }
- ocol += cw;
- if (c == '\n')
- {
-@@ -718,7 +769,8 @@
- const char *bp;
-
- for (bp = ep; bp > s; --bp)
-- if (bp[-1] == ' ' || bp[-1] == '\n')
-+ if (bp[-1] == ' ' || bp[-1] == '\n' ||
-+ (ismblocale() && bp[-1] >= 0xa1 && bp[-1] <= 0xfe) ) /* UJIS */
- {
- ep = bp;
- break;