You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by je...@apache.org on 2003/09/26 09:11:24 UTC
cvs commit: apr-iconv/util iconv.c
jerenkrantz 2003/09/26 00:11:24
Modified: . Tag: API_0_9_BRANCH CHANGES
util Tag: API_0_9_BRANCH iconv.c
Log:
Check in a CHANGES file, and add a -v option to iconv utility program.
Revision Changes Path
No revision
No revision
1.8.2.1 +6 -0 apr-iconv/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apr-iconv/CHANGES,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -u -u -r1.8 -r1.8.2.1
--- CHANGES 24 Apr 2003 08:08:31 -0000 1.8
+++ CHANGES 26 Sep 2003 07:11:24 -0000 1.8.2.1
@@ -1,5 +1,11 @@
Changes with APR-ICONV 0.9.4
+ *) Add -v option to iconv program. [Justin Erenkrantz]
+
+ *) Add api_version.h. [Justin Erenkrantz]
+
+ *) A fourth pass at a build system. [Justin Erenkrantz]
+
*) A third pass at a build system. [Justin Erenkrantz]
Changes with APR-ICONV 0.9.3
No revision
No revision
1.6.2.1 +46 -27 apr-iconv/util/iconv.c
Index: iconv.c
===================================================================
RCS file: /home/cvs/apr-iconv/util/iconv.c,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -u -r1.6 -r1.6.2.1
--- iconv.c 28 May 2003 14:05:50 -0000 1.6
+++ iconv.c 26 Sep 2003 07:11:24 -0000 1.6.2.1
@@ -31,6 +31,9 @@
*/
#include "apr.h"
+#include "apr_getopt.h"
+
+#include "api_version.h"
#include <stdarg.h> /* va_end, va_list, va_start */
#include <stdio.h> /* FILE, fclose, ferror, fopen, fread, stdin,
@@ -79,31 +82,55 @@
}
int
-main(int argc, char * const *argv)
+main(int argc, const char **argv)
{
apr_iconv_t cd;
iconv_stream *is;
- char *from = NULL, *to = NULL, *input = NULL;
- int opt;
+ const char *from = NULL, *to = NULL, *input = NULL;
+ char opt;
apr_pool_t *ctx;
apr_status_t status;
+ apr_getopt_t *options;
+ const char *opt_arg;
- while ((opt = getopt(argc, argv, "f:s:t:")) > 0) {
- switch (opt) {
- case 'f':
- from = optarg;
- break;
- case 't':
- to = optarg;
- break;
- case 's':
- input = optarg;
- break;
- default:
- fprintf(stderr, "Usage: iconv -f <name> -t <name> [-s <input>]\n");
- exit(3);
- }
- }
+ /* Initialize APR */
+ apr_initialize();
+ atexit(closeapr);
+ if (apr_pool_create(&ctx, NULL) != APR_SUCCESS) {
+ fprintf(stderr, "Couldn't allocate context.\n");
+ exit(-1);
+ }
+
+ apr_getopt_init(&options, ctx, argc, argv);
+
+ status = apr_getopt(options, "f:s:t:v", &opt, &opt_arg);
+
+ while (status == APR_SUCCESS) {
+ switch (opt) {
+ case 'f':
+ from = opt_arg;
+ break;
+ case 't':
+ to = opt_arg;
+ break;
+ case 's':
+ input = opt_arg;
+ break;
+ case 'v':
+ fprintf(stderr, "APR-iconv version " API_VERSION_STRING "\n");
+ exit(0);
+ default:
+ fprintf(stderr, "Usage: iconv -f <name> -t <name> [-s <input>]\n");
+ exit(3);
+ }
+
+ status = apr_getopt(options, "f:s:t:v",&opt, &opt_arg);
+ }
+
+ if (status == APR_BADCH || status == APR_BADARG) {
+ fprintf(stderr, "Usage: iconv -f <name> -t <name> [-s <input>]\n");
+ exit(3);
+ }
if (from == NULL) {
fprintf(stderr, "missing source charset (-f <name>)\n");
exit(4);
@@ -111,14 +138,6 @@
if (to == NULL) {
fprintf(stderr, "missing destination charset (-t <name>)\n");
exit(5);
- }
-
- /* Initialize APR */
- apr_initialize();
- atexit(closeapr);
- if (apr_pool_create(&ctx, NULL) != APR_SUCCESS) {
- fprintf(stderr, "Couldn't allocate context.\n");
- exit(-1);
}
/* Use it */