=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/extract_func.c,v retrieving revision 1.3 retrieving revision 1.5 diff -u -p -r1.3 -r1.5 --- OpenXM/src/asir-doc/extract_func.c 2005/02/09 03:25:50 1.3 +++ OpenXM/src/asir-doc/extract_func.c 2009/02/22 17:59:25 1.5 @@ -1,8 +1,16 @@ -/* $OpenXM: OpenXM/src/asir-doc/extract_func.c,v 1.2 2000/01/20 03:26:22 noro Exp $ */ +/* $OpenXM: OpenXM/src/asir-doc/extract_func.c,v 1.4 2006/02/12 08:55:26 noro Exp $ */ #include #include +#include +#include +#include +#include +void create_dir(char *); +int fname(char *,char **); + +int main(argc,argv) int argc; char **argv; @@ -67,7 +75,7 @@ char **argv; } else fputs(buf1,fp); } - } else if ( fp ) + } else if ( fp ) { if ( buf[0] == 0x1f ) { fclose(fp); fp = 0; if ( jis ) { @@ -75,12 +83,14 @@ char **argv; fn,fn,fn,fn,fn); system(cmd); } - } else + } else { fputs(buf,fp); + } + } } } -int create_dir(char *fname) +void create_dir(char *fname) { char *p; @@ -99,12 +109,16 @@ char *buf; char **name; { int i,len; - char *quote,*bquote,*comma; + char *quote,*bquote,*comma,*space,*p; - /* XXX */ - if ( *buf != '`' ) - return 0; - + if ( *buf != '`' ) { + /* skip X.X.X if exists */ + space = index(buf,' '); + if ( !space ) return 0; + for ( p = buf; p < space; p++ ) + if ( !isdigit(*p) && *p != '.' ) return 0; + buf = space+1; + } i = 0; while ( 1 ) { /* search a back quote */