=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/extract_func.c,v retrieving revision 1.5 retrieving revision 1.8 diff -u -p -r1.5 -r1.8 --- OpenXM/src/asir-doc/extract_func.c 2009/02/22 17:59:25 1.5 +++ OpenXM/src/asir-doc/extract_func.c 2020/09/05 00:57:16 1.8 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/asir-doc/extract_func.c,v 1.4 2006/02/12 08:55:26 noro Exp $ */ +/* $OpenXM: OpenXM/src/asir-doc/extract_func.c,v 1.7 2016/08/29 04:56:58 noro Exp $ */ #include #include @@ -7,6 +7,11 @@ #include #include +#if defined(__MINGW32__) +#include +#define mkdir(d,m) ((mkdir)((d))) +#endif + void create_dir(char *); int fname(char *,char **); @@ -68,8 +73,8 @@ char **argv; if ( buf1[0] == 0x1f ) { fclose(fp); fp = 0; if ( jis ) { - sprintf(cmd,"nkf %s > %s.tmp; rm -f %s; mv %s.tmp %s", - name[0],name[0],name[0]); + sprintf(cmd,"nkf -w %s > %s.tmp; rm -f %s; mv %s.tmp %s", + name[0],name[0],name[0],name[0]); system(cmd); } } else @@ -79,7 +84,7 @@ char **argv; if ( buf[0] == 0x1f ) { fclose(fp); fp = 0; if ( jis ) { - sprintf(cmd,"nkf %s > %s.tmp; rm -f %s; mv %s.tmp %s", + sprintf(cmd,"nkf -w %s > %s.tmp; rm -f %s; mv %s.tmp %s", fn,fn,fn,fn,fn); system(cmd); } @@ -113,7 +118,7 @@ char **name; if ( *buf != '`' ) { /* skip X.X.X if exists */ - space = index(buf,' '); + space = strchr(buf,' '); if ( !space ) return 0; for ( p = buf; p < space; p++ ) if ( !isdigit(*p) && *p != '.' ) return 0; @@ -121,14 +126,16 @@ char **name; } i = 0; while ( 1 ) { - /* search a back quote */ - bquote = index(buf,'`' ); + /* makeinfo v5 outputs 'fname', while makeinfo v4 output `fname' */ + /* search a (back) quote */ + bquote = strchr(buf,'`' ); if ( !bquote ) - return 0; + bquote = strchr(buf,'\''); + if ( !bquote ) return 0; buf = bquote+1; /* buf points to a function; search a quote */ - quote = index(buf,'\''); + quote = strchr(buf,'\''); if ( !quote ) return 0; len = quote-buf; @@ -138,7 +145,7 @@ char **name; i++; buf = quote+1; /* buf points to ',' or a space char; search a comma */ - comma = index(buf,','); + comma = strchr(buf,','); if ( !comma ) { /* if the rest chars include a non-space char, then return 0 */ while ( *buf && isspace(*buf) ) buf++;