annotate xdwsplit2.cpp @ 5:55f10a3aacb0

add xdwaddpage2.
author pyon@macmini
date Sun, 29 Oct 2017 14:48:51 +0900
parents af8f454d20ed
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
1 /* Makefile
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
2 debug: xdwsplit2.c
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
3 #rm -rf tempXXXX
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
4 #cls
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
5 gcc -g -O0 -I. xdwsplit2.c xdwapi.lib
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
6
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
7 release: xdwsplit2.c
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
8 gcc -I. xdwsplit2.c xdwapi.lib -static -o xdwsplit2.exe
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
9 strip xdwsplit2.exe
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
10
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
11 clean:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
12 rm -rf tempXXXX
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
13 */
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
14
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
15 #include <stdio.h>
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
16 #include <string.h>
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
17 #include <stdlib.h>
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
18 #include <time.h>
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
19 #include <glob.h>
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
20 #include <io.h>
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
21 #include <windows.h>
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
22 #include <xdw_api.h>
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
23
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
24
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
25 void print_error( int code ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
26 fprintf( stderr, "Error code : %d\n", code );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
27 switch ( code ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
28 case XDW_E_NOT_INSTALLED:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
29 fprintf( stderr, "DocuWorksがインストールされていません。" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
30 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
31 case XDW_E_FILE_NOT_FOUND:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
32 fprintf( stderr, "指定されたファイルが見つかりません。" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
33 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
34 case XDW_E_FILE_EXISTS:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
35 fprintf( stderr, "指定されたファイルはすでに存在します。" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
36 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
37 case XDW_E_ACCESSDENIED:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
38 case XDW_E_INVALID_NAME:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
39 case XDW_E_BAD_NETPATH:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
40 fprintf( stderr, "指定されたファイルを開くことができません。" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
41 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
42 case XDW_E_BAD_FORMAT:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
43 fprintf( stderr, "指定されたファイルは正しいフォーマットではありません。" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
44 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
45 case XDW_E_INVALID_ACCESS:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
46 fprintf( stderr, "指定された操作をする権利がありません。" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
47 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
48 default:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
49 fprintf( stderr, "エラーが発生しました。" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
50 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
51 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
52 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
53
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
54 void print_now( char *msg ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
55 time_t now = time( NULL );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
56 struct tm *ts = localtime( &now );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
57
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
58 char buf[80];
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
59 strftime( buf, sizeof( buf ), "%H:%M:%S %Z", ts );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
60 printf( "%s\t%s\n", buf, msg );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
61 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
62
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
63 int main( int argc, char* argv[] ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
64
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
65 /* オプションの解析 */
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
66 char prog[128];
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
67 strcpy( prog, argv[0] );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
68
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
69 int pnow = 0;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
70 int text = 0;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
71 int pstart = 0;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
72 char c;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
73 while ( --argc > 0 && ( *++argv )[0] == '-' ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
74 while ( c = *++argv[0] ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
75 switch ( c ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
76 case 'v':
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
77 pnow = 1;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
78 print_now( "start." );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
79 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
80 case 's':
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
81 pstart = 1;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
82 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
83 case 't':
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
84 text = 1;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
85 break;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
86 default:
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
87 fprintf( stderr, "error: illegal option '%c'.\n", c );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
88 exit( 1 );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
89 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
90 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
91 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
92
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
93 int sp;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
94 char in_path[ _MAX_PATH ];
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
95 if ( argc == 1 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
96 sp = 1;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
97 pstart = 1;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
98 _fullpath( in_path, argv[0], _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
99 } else if ( argc == 2 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
100 if ( pstart == 1 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
101 sp = 1;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
102 pstart = atoi( argv[0] );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
103 _fullpath( in_path, argv[1], _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
104 } else {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
105 sp = atoi( argv[0] );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
106 _fullpath( in_path, argv[1], _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
107 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
108 } else {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
109 fprintf( stderr, "%s infile\n", prog );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
110 fprintf( stderr, "%s P infile\n", prog );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
111 fprintf( stderr, "%s -t infile\n", prog );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
112 fprintf( stderr, "%s -s S infile\n", prog );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
113 fprintf( stderr, "%s -v P infile\n", prog );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
114 exit( 1 );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
115 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
116
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
117 /* 本処理 */
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
118 if ( pnow ) print_now( "splitting xdw-file." );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
119
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
120 int api_result = 0;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
121
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
122 XDW_DOCUMENT_HANDLE h = NULL; // 文書ハンドルを開く
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
123 XDW_OPEN_MODE_EX mode = {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
124 sizeof( XDW_OPEN_MODE_EX ), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
125 };
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
126 api_result = XDW_OpenDocumentHandle( in_path, &h, (XDW_OPEN_MODE*)&mode );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
127 if ( api_result < 0 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
128 print_error( api_result );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
129 return 0;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
130 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
131
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
132 XDW_DOCUMENT_INFO info = { sizeof( XDW_DOCUMENT_INFO ), 0, 0, 0 }; // 総ページ数を得る
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
133 XDW_GetDocumentInformation( h, &info );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
134 int last_page = info.nPages;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
135 if ( last_page <= sp ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
136 fprintf( stderr, "bad num. ( %d <= %d )\n", last_page, sp );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
137 exit( 1 );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
138 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
139
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
140 if ( pnow ) print_now( "extracting pages." );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
141
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
142 if ( sp != 1 ) mkdir( "tempXXXX" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
143
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
144 char buf[ _MAX_PATH ];
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
145 long datasize;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
146 char* lpszvalue;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
147
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
148 for ( int p = 0; p < last_page; p++ ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
149 if ( sp == 1 )
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
150 sprintf( buf, "%05d.xdw", pstart++ );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
151 else
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
152 sprintf( buf, "tempXXXX/%05d.xdw", p + 1 );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
153
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
154 _fullpath( in_path, buf, _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
155 api_result = XDW_GetPage( h, p + 1, in_path, NULL );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
156 if ( api_result < 0 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
157 print_error( api_result );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
158 exit( 1 );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
159 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
160 if ( text == 1 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
161 datasize = XDW_GetPageTextToMemory( h, p, NULL, 0, NULL );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
162 lpszvalue = (char*)malloc( sizeof(char) * datasize );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
163 XDW_GetPageTextToMemory( h, p, lpszvalue, datasize, NULL );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
164 //printf( "%s\n", lpszvalue );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
165 free( lpszvalue );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
166 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
167 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
168 XDW_CloseDocumentHandle( h, NULL ); // 文書ハンドルを閉じる
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
169
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
170 /* 1ページ毎ならマージする必要なし */
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
171 if ( sp == 1 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
172 if ( pnow ) print_now( "done." );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
173 return 0;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
174 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
175
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
176 /* マージ */
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
177 if ( pnow ) print_now( "merging pages." );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
178
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
179 char *blk_path = (char*)malloc( sp * sizeof( char ) * _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
180 const char **blk_path_addr = (const char**)malloc( ( last_page / sp + 1 ) * sizeof( char* ) * _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
181
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
182 int bn = 0;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
183 // ブロック毎の処理
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
184 for ( int p = 0, m = 0; p < last_page; p++ ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
185 m = p % sp;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
186 if ( m == 0 && p > 0 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
187 sprintf( buf, "%05d.xdw", ++bn );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
188 _fullpath( in_path, buf, _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
189 api_result = XDW_MergeXdwFiles( blk_path_addr, sp, in_path, NULL );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
190 if ( api_result < 0 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
191 print_error( api_result );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
192 exit( 1 );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
193 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
194 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
195 sprintf( buf, "tempXXXX/%05d.xdw", p + 1 );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
196 _fullpath( in_path, buf, _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
197 strncpy( &blk_path[ m * _MAX_PATH ], in_path, _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
198 blk_path_addr[m] = &blk_path[ m * _MAX_PATH ];
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
199 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
200 if ( last_page % sp != 0 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
201 sprintf( buf, "%05d.xdw", ++bn );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
202 _fullpath( in_path, buf, _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
203 api_result = XDW_MergeXdwFiles( blk_path_addr, last_page % sp, in_path, NULL );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
204 if ( api_result < 0 ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
205 print_error( api_result );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
206 exit( 1 );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
207 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
208 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
209
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
210 free( blk_path );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
211 free( blk_path_addr );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
212
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
213 /* 後処理 */
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
214 if ( pnow ) print_now( "cleaning." );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
215 glob_t globbuf;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
216 glob( "tempXXXX/*.*", 0, NULL, &globbuf );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
217 for ( int i = 0; i < globbuf.gl_pathc; i++ ) {
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
218 _fullpath( in_path, globbuf.gl_pathv[i], _MAX_PATH );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
219 remove( in_path );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
220 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
221 globfree( &globbuf );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
222 rmdir( "tempXXXX" );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
223
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
224 if ( pnow ) print_now( "done." );
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
225 return 0;
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
226 }
af8f454d20ed add xdwsplit2.
pyon@macmini
parents:
diff changeset
227