diff xdwaddatn2.cpp @ 9:cc5262d43399

small changes.
author pyon@macmini
date Thu, 05 Apr 2018 21:06:13 +0900
parents 61ce4754737e
children e421bcd3bce4
line wrap: on
line diff
--- a/xdwaddatn2.cpp	Tue Apr 03 00:11:01 2018 +0900
+++ b/xdwaddatn2.cpp	Thu Apr 05 21:06:13 2018 +0900
@@ -63,6 +63,17 @@
 	fprintf( stderr, "[ Error code : %d ]\n", code );
 }
 
+void print_help() {
+	char prog[12] = "xdwaddatn2";
+	fprintf( stderr, "Usage:\n" );
+	fprintf( stderr, " %s -m mtxt x y txt sz tr infile\n", prog );
+	fprintf( stderr, " %s -p page x y txt sz tr infile\n", prog );
+	fprintf( stderr, " %s -m -i infile\n", prog );
+	fprintf( stderr, " %s -p -i infile\n", prog );
+	fprintf( stderr, " %s -v -p -i infile\n", prog );
+	fprintf( stderr, " %s -v -m -i infile\n", prog );
+}
+
 void print_now( const char *msg ) {
    time_t now = time( NULL );
    struct tm *ts = localtime( &now );
@@ -99,6 +110,7 @@
 
 	bool pnow  = false;
 	bool mmode = false;
+	bool pmode = false;
 	bool csv   = false;
 	char c;
 	while ( --argc > 0 && ( *++argv )[0] == '-' ) {
@@ -112,24 +124,21 @@
 					mmode = true;
 					break;
 				case 'p':	/* page number: now writing... */
+					pmode = true;
 					break;
 				case 'i':	/* csv file: now writing... */
 					csv = true;
 					break;
 				default:
 					fprintf( stderr, "error: illegal option '%c'.\n", c );
+					print_help();
 					exit( 1 );
 			}
 		}
 	}
 
-	if ( argc < 1 ) {
-		fprintf( stderr, "%s -m mtxt x y txt sz tr infile\n", prog );
-		fprintf( stderr, "%s -p page x y txt sz tr infile\n", prog );
-		fprintf( stderr, "%s -m -i infile\n", prog );
-		fprintf( stderr, "%s -p -i infile\n", prog );
-		fprintf( stderr, "%s -v -p -i infile\n", prog );
-		fprintf( stderr, "%s -v -m -i infile\n", prog );
+	if ( argc < 1 || ( mmode && pmode ) || ( !mmode && !pmode )) {
+		print_help();
 		exit( 1 );
 	}
 
@@ -190,7 +199,7 @@
 			for ( int i = 0; i < alN; i++ ) {
 			}
 		}
-		else {
+		else { // pmode のはず
 		}
 	}
 	else {
@@ -224,7 +233,25 @@
 			}
 			XDW_CloseFoundHandle( pFoundHandle );
 		}
-		else {
+		else { // pmode のはず
+			int p;
+			for ( int i = 0; i < alN; i++ ) {
+				strncpy( buf, &al[ i * MAXCOL ], MAXCOL );
+				m = strtok( buf, "," );
+				p = atoi( m );
+				if ( p > 0 && p <= last_page ) {
+					x = atoi( strtok( NULL, "," ) );
+					y = atoi( strtok( NULL, "," ) );
+					s = strtok( NULL, "," );
+					sz = atoi( strtok( NULL, "," ) );
+					tr = atoi( strtok( NULL, "," ) );
+					api_result = add_annotation( h, p, x, y, s, &sz, tr );
+					if ( api_result < 0 ) {
+						print_error( api_result );
+						break;
+					}
+				}
+			}
 		}
 	}