=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/help.c,v retrieving revision 1.4 retrieving revision 1.10 diff -u -p -r1.4 -r1.10 --- OpenXM_contrib2/asir2000/builtin/help.c 2000/08/22 05:03:58 1.4 +++ OpenXM_contrib2/asir2000/builtin/help.c 2015/08/08 14:19:41 1.10 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/builtin/help.c,v 1.3 2000/08/21 08:31:20 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/help.c,v 1.9 2015/08/06 10:01:52 fujimoto Exp $ */ #include "ca.h" #include "parse.h" @@ -93,22 +93,24 @@ char *s; extern char *asir_pager; char *e; static char helpdir[16]; + static int ja_JP_UTF_8 = 0; if ( !helpdir[0] ) { e = (char *)getenv("LANG"); if ( !e ) strcpy(helpdir,"help"); else if ( !strncmp(e,"japan",strlen("japan")) - || !strncmp(e,"ja_JP",strlen("ja_JP")) ) - strcpy(helpdir,"help-jp"); - else - strcpy(helpdir,"help-eg"); + || !strncmp(e,"ja_JP",strlen("ja_JP")) ) { + strcpy(helpdir,"help-ja"); + if (strcmp(e,"ja_JP.UTF-8")==0) ja_JP_UTF_8 = 1; + }else + strcpy(helpdir,"help-en"); } if ( !s ) ghelp(); else { -#if !defined(VISUAL) +#if !defined(VISUAL) && !defined(__MINGW32__) && !defined(__MINGW64__) int i; FUNC f; char name[BUFSIZ],com[BUFSIZ]; @@ -117,14 +119,26 @@ char *s; sprintf(name,"%s/%s/%s",asir_libdir,helpdir,s); if ( fp = fopen(name,"r") ) { fclose(fp); - sprintf(com,"%s %s",asir_pager,name); + if (!ja_JP_UTF_8) + sprintf(com,"%s %s",asir_pager,name); + else + sprintf(com,"nkf -w %s | %s ",name,asir_pager); system(com); } else { - searchf(usrf,s,&f); - if ( f && f->f.usrf->desc ) + gen_searchf_searchonly(s,&f); + if ( f && f->id == A_USR && f->f.usrf->desc ) fprintf(stderr,"%s\n",f->f.usrf->desc); } +#else + FUNC f; + gen_searchf_searchonly(s,&f); + if ( f && f->id == A_USR && f->f.usrf->desc ) + fprintf(stderr,"%s\n",f->f.usrf->desc); + #endif +#if defined(__MINGW32__) || defined(__MINGW64__) + fflush(stderr); +#endif } } @@ -133,4 +147,7 @@ void ghelp() { for ( i = 0; ghelpstr[i]; i++ ) fprintf(stderr,"%s\n",ghelpstr[i]); +#if defined(__MINGW32__) || defined(__MINGW64__) + fflush(stderr); +#endif }